You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by GitBox <gi...@apache.org> on 2022/06/09 15:24:12 UTC

[GitHub] [incubator-devlake] klesh commented on a diff in pull request #2128: save github connection in db and support create multi connection

klesh commented on code in PR #2128:
URL: https://github.com/apache/incubator-devlake/pull/2128#discussion_r893617864


##########
plugins/github/github.go:
##########
@@ -95,7 +96,16 @@ func (plugin Github) PrepareTaskData(taskCtx core.TaskContext, options map[strin
 	if op.Repo == "" {
 		return nil, fmt.Errorf("repo is required for GitHub execution")
 	}
-	apiClient, err := tasks.CreateApiClient(taskCtx)
+
+	// find the only github now
+	// FIXME to query by connection id when multi connection support
+	connection := &models.GithubConnection{}
+	err = taskCtx.GetDb().First(connection, "name = ?", `GitHub`).Error

Review Comment:
   Use `GetDal` pls



##########
plugins/github/models/connection.go:
##########
@@ -17,31 +17,33 @@ limitations under the License.
 
 package models
 
-type GithubConnection struct {
-	Endpoint string `mapstructure:"endpoint" validate:"required" env:"GITHUB_ENDPOINT" json:"endpoint"`
-	Auth     string `mapstructure:"auth" validate:"required" env:"GITHUB_AUTH" json:"auth"`
-	Proxy    string `mapstructure:"proxy" env:"GITHUB_PROXY" json:"proxy"`
+import "github.com/apache/incubator-devlake/plugins/helper"
 
-	Config `mapstructure:",squash"`
+type TestConnectionRequest struct {
+	Endpoint string `json:"endpoint" validate:"required,url"`
+	Auth     string `json:"auth" validate:"required"`
+	Proxy    string `json:"proxy"`
 }
 
-type Config struct {
-	PrType               string `mapstructure:"prType" env:"GITHUB_PR_TYPE" json:"prType"`
-	PrComponent          string `mapstructure:"prComponent" env:"GITHUB_PR_COMPONENT" json:"prComponent"`
-	IssueSeverity        string `mapstructure:"issueSeverity" env:"GITHUB_ISSUE_SEVERITY" json:"issueSeverity"`
-	IssuePriority        string `mapstructure:"issuePriority" env:"GITHUB_ISSUE_PRIORITY" json:"issuePriority"`
-	IssueComponent       string `mapstructure:"issueComponent" env:"GITHUB_ISSUE_COMPONENT" json:"issueComponent"`
-	IssueTypeBug         string `mapstructure:"issueTypeBug" env:"GITHUB_ISSUE_TYPE_BUG" json:"issueTypeBug"`
-	IssueTypeIncident    string `mapstructure:"issueTypeIncident" env:"GITHUB_ISSUE_TYPE_INCIDENT" json:"issueTypeIncident"`
-	IssueTypeRequirement string `mapstructure:"issueTypeRequirement" env:"GITHUB_ISSUE_TYPE_REQUIREMENT" json:"issueTypeRequirement"`
+type GithubConnection struct {
+	helper.RestConnection `mapstructure:",squash"`
+	Auth                  string `mapstructure:"auth" validate:"required" json:"auth"`

Review Comment:
   I think this one should be `helper.AccessToken` instead



##########
plugins/github/models/connection.go:
##########
@@ -17,31 +17,33 @@ limitations under the License.
 
 package models
 
-type GithubConnection struct {
-	Endpoint string `mapstructure:"endpoint" validate:"required" env:"GITHUB_ENDPOINT" json:"endpoint"`
-	Auth     string `mapstructure:"auth" validate:"required" env:"GITHUB_AUTH" json:"auth"`
-	Proxy    string `mapstructure:"proxy" env:"GITHUB_PROXY" json:"proxy"`
+import "github.com/apache/incubator-devlake/plugins/helper"
 
-	Config `mapstructure:",squash"`
+type TestConnectionRequest struct {
+	Endpoint string `json:"endpoint" validate:"required,url"`
+	Auth     string `json:"auth" validate:"required"`
+	Proxy    string `json:"proxy"`
 }
 
-type Config struct {
-	PrType               string `mapstructure:"prType" env:"GITHUB_PR_TYPE" json:"prType"`
-	PrComponent          string `mapstructure:"prComponent" env:"GITHUB_PR_COMPONENT" json:"prComponent"`
-	IssueSeverity        string `mapstructure:"issueSeverity" env:"GITHUB_ISSUE_SEVERITY" json:"issueSeverity"`
-	IssuePriority        string `mapstructure:"issuePriority" env:"GITHUB_ISSUE_PRIORITY" json:"issuePriority"`
-	IssueComponent       string `mapstructure:"issueComponent" env:"GITHUB_ISSUE_COMPONENT" json:"issueComponent"`
-	IssueTypeBug         string `mapstructure:"issueTypeBug" env:"GITHUB_ISSUE_TYPE_BUG" json:"issueTypeBug"`
-	IssueTypeIncident    string `mapstructure:"issueTypeIncident" env:"GITHUB_ISSUE_TYPE_INCIDENT" json:"issueTypeIncident"`
-	IssueTypeRequirement string `mapstructure:"issueTypeRequirement" env:"GITHUB_ISSUE_TYPE_REQUIREMENT" json:"issueTypeRequirement"`
+type GithubConnection struct {
+	helper.RestConnection `mapstructure:",squash"`
+	Auth                  string `mapstructure:"auth" validate:"required" json:"auth"`
+	Config                `mapstructure:",squash"`
 }
 
-// This object conforms to what the frontend currently expects.
-type GithubResponse struct {
-	Name string `json:"name"`
-	ID   int    `json:"id"`
+type Config struct {

Review Comment:
   These are `TransformationRules` in the new user flow, we don't need to save them with connection anymore.
   They will be passed in by `task.options` in the new user flow



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@devlake.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org