This is an automated email from the ASF dual-hosted git repository. warren pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
commit 8b4c27db61d90c2d5e5791b5078c80a0f2f476c8 Author: Mr.An <[email protected]> AuthorDate: Sat Jun 18 16:58:39 2022 +0800 multi-data connections support for gitee --- plugins/gitee/README.md | 8 +-- plugins/gitee/gitee.go | 44 ++++++++---- plugins/gitee/impl/impl.go | 79 ++++++++++++++++++++-- plugins/gitee/models/connection.go | 4 ++ .../{ => migrationscripts/archived}/connection.go | 40 ++++++++--- .../gitee/models/migrationscripts/init_schema.go | 76 ++++++++++++++++++++- plugins/gitee/tasks/api_client.go | 30 ++++---- plugins/gitee/tasks/commit_collector.go | 1 - plugins/gitee/tasks/commit_stats_collector.go | 1 - plugins/gitee/tasks/issue_collector.go | 1 - plugins/gitee/tasks/issue_comment_collector.go | 1 - plugins/gitee/tasks/issue_comment_extractor.go | 16 ++++- plugins/gitee/tasks/pr_collector.go | 1 - plugins/gitee/tasks/pr_commit_collector.go | 1 - plugins/gitee/tasks/pr_review_collector.go | 1 - plugins/gitee/tasks/repo_collector.go | 1 - plugins/gitee/tasks/shared.go | 12 ---- plugins/gitee/tasks/task_data.go | 13 ++-- 18 files changed, 247 insertions(+), 83 deletions(-) diff --git a/plugins/gitee/README.md b/plugins/gitee/README.md index ce1bc6b6..cfb2b925 100644 --- a/plugins/gitee/README.md +++ b/plugins/gitee/README.md @@ -57,8 +57,7 @@ In order to collect data, you have to compose a JSON looks like following one, a "plugin": "gitee", "options": { "repo": "lake", - "owner": "merico-dev", - "token": "xxxx" + "owner": "merico-dev" } } ] @@ -73,8 +72,7 @@ and if you want to perform certain subtasks. "subtasks": ["collectXXX", "extractXXX", "convertXXX"], "options": { "repo": "lake", - "owner": "merico-dev", - "token": "xxxx" + "owner": "merico-dev" } } ] @@ -94,7 +92,6 @@ curl --location --request POST 'localhost:8080/pipelines' \ "options": { "repo": "lake", "owner": "merico-dev" - "token": "xxxx" } }]] } @@ -113,7 +110,6 @@ curl --location --request POST 'localhost:8080/pipelines' \ "options": { "repo": "lake", "owner": "merico-dev" - "token": "xxxx" } }]] } diff --git a/plugins/gitee/gitee.go b/plugins/gitee/gitee.go index c6f19cf9..7c239996 100644 --- a/plugins/gitee/gitee.go +++ b/plugins/gitee/gitee.go @@ -26,19 +26,39 @@ import ( var PluginEntry impl.Gitee //nolint func main() { - giteeCmd := &cobra.Command{Use: "gitee"} - owner := giteeCmd.Flags().StringP("owner", "o", "", "gitee owner") - repo := giteeCmd.Flags().StringP("repo", "r", "", "gitee repo") - token := giteeCmd.Flags().StringP("auth", "a", "", "access token") - _ = giteeCmd.MarkFlagRequired("owner") - _ = giteeCmd.MarkFlagRequired("repo") - - giteeCmd.Run = func(cmd *cobra.Command, args []string) { + cmd := &cobra.Command{Use: "github"} + connectionId := cmd.Flags().Uint64P("connectionId", "c", 0, "gitee connection id") + owner := cmd.Flags().StringP("owner", "o", "", "gitee owner") + repo := cmd.Flags().StringP("repo", "r", "", "gitee repo") + _ = cmd.MarkFlagRequired("connectionId") + _ = cmd.MarkFlagRequired("owner") + _ = cmd.MarkFlagRequired("repo") + + prType := cmd.Flags().String("prType", "type/(.*)$", "pr type") + prComponent := cmd.Flags().String("prComponent", "component/(.*)$", "pr component") + prBodyClosePattern := cmd.Flags().String("prBodyClosePattern", "(?mi)(fix|close|resolve|fixes|closes|resolves|fixed|closed|resolved)[\\s]*.*(((and )?(#|https:\\/\\/github.com\\/%s\\/%s\\/issues\\/)\\d+[ ]*)+)", "pr body close pattern") + issueSeverity := cmd.Flags().String("issueSeverity", "severity/(.*)$", "issue severity") + issuePriority := cmd.Flags().String("issuePriority", "^(highest|high|medium|low)$", "issue priority") + issueComponent := cmd.Flags().String("issueComponent", "component/(.*)$", "issue component") + issueTypeBug := cmd.Flags().String("issueTypeBug", "^(bug|failure|error)$", "issue type bug") + issueTypeIncident := cmd.Flags().String("issueTypeIncident", "", "issue type incident") + issueTypeRequirement := cmd.Flags().String("issueTypeRequirement", "^(feat|feature|proposal|requirement)$", "issue type requirement") + + cmd.Run = func(cmd *cobra.Command, args []string) { runner.DirectRun(cmd, args, PluginEntry, map[string]interface{}{ - "owner": *owner, - "repo": *repo, - "token": *token, + "connectionId": *connectionId, + "owner": *owner, + "repo": *repo, + "prType": *prType, + "prComponent": *prComponent, + "prBodyClosePattern": *prBodyClosePattern, + "issueSeverity": *issueSeverity, + "issuePriority": *issuePriority, + "issueComponent": *issueComponent, + "issueTypeBug": *issueTypeBug, + "issueTypeIncident": *issueTypeIncident, + "issueTypeRequirement": *issueTypeRequirement, }) } - runner.RunCmd(giteeCmd) + runner.RunCmd(cmd) } diff --git a/plugins/gitee/impl/impl.go b/plugins/gitee/impl/impl.go index 9cde8eb3..c7589f66 100644 --- a/plugins/gitee/impl/impl.go +++ b/plugins/gitee/impl/impl.go @@ -18,11 +18,15 @@ limitations under the License. package impl import ( + "fmt" + "github.com/apache/incubator-devlake/migration" "github.com/apache/incubator-devlake/plugins/core" "github.com/apache/incubator-devlake/plugins/gitee/api" + "github.com/apache/incubator-devlake/plugins/gitee/models" "github.com/apache/incubator-devlake/plugins/gitee/models/migrationscripts" "github.com/apache/incubator-devlake/plugins/gitee/tasks" + "github.com/apache/incubator-devlake/plugins/helper" "github.com/mitchellh/mapstructure" "github.com/spf13/viper" "gorm.io/gorm" @@ -37,6 +41,7 @@ var _ core.Migratable = (*Gitee)(nil) type Gitee string func (plugin Gitee) Init(config *viper.Viper, logger core.Logger, db *gorm.DB) error { + api.Init(config, logger, db) return nil } @@ -86,7 +91,67 @@ func (plugin Gitee) PrepareTaskData(taskCtx core.TaskContext, options map[string return nil, err } - apiClient, err := tasks.NewGiteeApiClient(taskCtx) + if op.Owner == "" { + return nil, fmt.Errorf("owner is required for Gitee execution") + } + + if op.Repo == "" { + return nil, fmt.Errorf("repo is required for Gitee execution") + } + + if op.PrType == "" { + op.PrType = "type/(.*)$" + } + + if op.PrComponent == "" { + op.PrComponent = "component/(.*)$" + } + + if op.IssueSeverity == "" { + op.IssueSeverity = "severity/(.*)$" + } + + if op.IssuePriority == "" { + op.IssuePriority = "^(highest|high|medium|low)$" + } + + if op.IssueComponent == "" { + op.IssueComponent = "component/(.*)$" + } + + if op.IssueTypeBug == "" { + op.IssueTypeBug = "^(bug|failure|error)$" + } + + if op.IssueTypeIncident == "" { + op.IssueTypeIncident = "" + } + + if op.IssueTypeRequirement == "" { + op.IssueTypeRequirement = "^(feat|feature|proposal|requirement)$" + } + + if op.ConnectionId == 0 { + return nil, fmt.Errorf("connectionId is invalid") + } + + connection := &models.GiteeConnection{} + connectionHelper := helper.NewConnectionHelper( + taskCtx, + nil, + ) + + if err != nil { + return nil, err + } + + err = connectionHelper.FirstById(connection, op.ConnectionId) + + if err != nil { + return nil, err + } + apiClient, err := tasks.NewGiteeApiClient(taskCtx, connection) + if err != nil { return nil, err } @@ -102,7 +167,9 @@ func (plugin Gitee) RootPkgPath() string { } func (plugin Gitee) MigrationScripts() []migration.Script { - return []migration.Script{new(migrationscripts.InitSchemas), new(migrationscripts.InitSchemas)} + return []migration.Script{ + new(migrationscripts.InitSchemas), + } } func (plugin Gitee) ApiResources() map[string]map[string]core.ApiResourceHandler { @@ -111,11 +178,13 @@ func (plugin Gitee) ApiResources() map[string]map[string]core.ApiResourceHandler "POST": api.TestConnection, }, "connections": { - "GET": api.ListConnections, + "POST": api.PostConnections, + "GET": api.ListConnections, }, "connections/:connectionId": { - "GET": api.GetConnection, - "PATCH": api.PatchConnection, + "GET": api.GetConnection, + "PATCH": api.PatchConnection, + "DELETE": api.DeleteConnection, }, } } diff --git a/plugins/gitee/models/connection.go b/plugins/gitee/models/connection.go index f161df73..a5360449 100644 --- a/plugins/gitee/models/connection.go +++ b/plugins/gitee/models/connection.go @@ -51,3 +51,7 @@ type Config struct { IssueTypeIncident string `mapstructure:"issueTypeIncident" env:"GITEE_ISSUE_TYPE_INCIDENT" json:"issueTypeIncident"` IssueTypeRequirement string `mapstructure:"issueTypeRequirement" env:"GITEE_ISSUE_TYPE_REQUIREMENT" json:"issueTypeRequirement"` } + +func (GiteeConnection) TableName() string { + return "_tool_gitee_connections" +} diff --git a/plugins/gitee/models/connection.go b/plugins/gitee/models/migrationscripts/archived/connection.go similarity index 66% copy from plugins/gitee/models/connection.go copy to plugins/gitee/models/migrationscripts/archived/connection.go index f161df73..c1fc5daf 100644 --- a/plugins/gitee/models/connection.go +++ b/plugins/gitee/models/migrationscripts/archived/connection.go @@ -15,32 +15,46 @@ See the License for the specific language governing permissions and limitations under the License. */ -package models +package archived -import "github.com/apache/incubator-devlake/plugins/helper" +import ( + "github.com/apache/incubator-devlake/models/migrationscripts/archived" +) type GiteeConnection struct { - helper.RestConnection `mapstructure:",squash"` - helper.AccessToken `mapstructure:",squash"` + RestConnection `mapstructure:",squash"` + AccessToken `mapstructure:",squash"` } -type GiteeResponse struct { +type RestConnection struct { + BaseConnection `mapstructure:",squash"` + Endpoint string `mapstructure:"endpoint" validate:"required" json:"endpoint"` + Proxy string `mapstructure:"proxy" json:"proxy"` + RateLimit int `comment:"api request rate limt per hour" json:"rateLimit"` +} + +type BaseConnection struct { + Name string `gorm:"type:varchar(100);uniqueIndex" json:"name" validate:"required"` + archived.Model +} + +type AccessToken struct { + Token string `mapstructure:"token" validate:"required" json:"token" encrypt:"yes"` +} + +// This object conforms to what the frontend currently expects. +type GitlabResponse struct { Name string `json:"name"` ID int `json:"id"` GiteeConnection } +// Using User because it requires authentication. type ApiUserResponse struct { Id int Name string `json:"name"` } -type TestConnectionRequest struct { - Endpoint string `json:"endpoint" validate:"required"` - Proxy string `json:"proxy"` - helper.AccessToken `mapstructure:",squash"` -} - type Config struct { PrType string `mapstructure:"prType" env:"GITEE_PR_TYPE" json:"prType"` PrComponent string `mapstructure:"prComponent" env:"GITEE_PR_COMPONENT" json:"prComponent"` @@ -51,3 +65,7 @@ type Config struct { IssueTypeIncident string `mapstructure:"issueTypeIncident" env:"GITEE_ISSUE_TYPE_INCIDENT" json:"issueTypeIncident"` IssueTypeRequirement string `mapstructure:"issueTypeRequirement" env:"GITEE_ISSUE_TYPE_REQUIREMENT" json:"issueTypeRequirement"` } + +func (GiteeConnection) TableName() string { + return "_tool_gitee_connections" +} diff --git a/plugins/gitee/models/migrationscripts/init_schema.go b/plugins/gitee/models/migrationscripts/init_schema.go index 44e3e33a..305d4702 100644 --- a/plugins/gitee/models/migrationscripts/init_schema.go +++ b/plugins/gitee/models/migrationscripts/init_schema.go @@ -19,6 +19,12 @@ package migrationscripts import ( "context" + "fmt" + + "github.com/apache/incubator-devlake/config" + "gorm.io/gorm/clause" + + "github.com/apache/incubator-devlake/plugins/core" "github.com/apache/incubator-devlake/plugins/gitee/models/migrationscripts/archived" "gorm.io/gorm" @@ -27,7 +33,25 @@ import ( type InitSchemas struct{} func (*InitSchemas) Up(ctx context.Context, db *gorm.DB) error { - return db.Migrator().AutoMigrate( + rawTableList := []string{ + "_raw_gitee_api_commit", + "_raw_gitee_api_issues", + "_raw_gitee_api_pull_requests", + "_raw_gitee_api_pull_request_commits", + "_raw_gitee_api_pull_request_reviews", + "_raw_gitee_api_repo", + "_raw_gitee_api_comments", + "_raw_gitee_api_commits", + "_raw_gitee_issue_comments", + } + for _, v := range rawTableList { + err := db.Exec(fmt.Sprintf("DROP TABLE IF EXISTS %s CASCADE", v)).Error + if err != nil { + return err + } + } + + err := db.Migrator().DropTable( &archived.GiteeRepo{}, &archived.GiteeCommit{}, &archived.GiteeRepoCommit{}, @@ -42,11 +66,59 @@ func (*InitSchemas) Up(ctx context.Context, db *gorm.DB) error { &archived.GiteePullRequestCommit{}, &archived.GiteePullRequestIssue{}, &archived.GiteeReviewer{}, + &archived.GiteeConnection{}, ) + + if err != nil { + return err + } + + err = db.Migrator().AutoMigrate( + &archived.GiteeRepo{}, + &archived.GiteeCommit{}, + &archived.GiteeRepoCommit{}, + &archived.GiteePullRequest{}, + &archived.GiteePullRequestLabel{}, + &archived.GiteeUser{}, + &archived.GiteePullRequestComment{}, + &archived.GiteeIssue{}, + &archived.GiteeIssueComment{}, + &archived.GiteeCommitStat{}, + &archived.GiteeIssueLabel{}, + &archived.GiteePullRequestCommit{}, + &archived.GiteePullRequestIssue{}, + &archived.GiteeReviewer{}, + &archived.GiteeConnection{}, + ) + + if err != nil { + return err + } + + conn := &archived.GiteeConnection{} + v := config.GetConfig() + encKey := v.GetString(core.EncodeKeyEnvStr) + + conn.Name = "init gitee connection" + conn.ID = 1 + conn.Endpoint = v.GetString("GITEE_ENDPOINT") + conn.Token, err = core.Encrypt(encKey, v.GetString("GITEE_AUTH")) + if err != nil { + return err + } + conn.Proxy = v.GetString("GITEE_PROXY") + conn.RateLimit = v.GetInt("GITEE_API_REQUESTS_PER_HOUR") + + err = db.Clauses(clause.OnConflict{DoNothing: true}).Create(conn).Error + + if err != nil { + return err + } + return nil } func (*InitSchemas) Version() uint64 { - return 20220617201204 + return 20220617231243 } func (*InitSchemas) Name() string { diff --git a/plugins/gitee/tasks/api_client.go b/plugins/gitee/tasks/api_client.go index 94c63256..0f567186 100644 --- a/plugins/gitee/tasks/api_client.go +++ b/plugins/gitee/tasks/api_client.go @@ -23,32 +23,26 @@ import ( "strconv" "time" + "github.com/apache/incubator-devlake/plugins/gitee/models" + "github.com/apache/incubator-devlake/plugins/core" "github.com/apache/incubator-devlake/plugins/helper" - "github.com/apache/incubator-devlake/utils" ) -func NewGiteeApiClient(taskCtx core.TaskContext) (*helper.ApiAsyncClient, error) { - endpoint := taskCtx.GetConfig("GITEE_ENDPOINT") - if endpoint == "" { - return nil, fmt.Errorf("endpint is required") - } - userRateLimit, err := utils.StrToIntOr(taskCtx.GetConfig("GITEE_API_REQUESTS_PER_HOUR"), 0) +func NewGiteeApiClient(taskCtx core.TaskContext, connection *models.GiteeConnection) (*helper.ApiAsyncClient, error) { + + apiClient, err := helper.NewApiClient(connection.Endpoint, nil, 0, connection.Proxy, taskCtx.GetContext()) if err != nil { return nil, err } - auth := taskCtx.GetConfig("GITEE_AUTH") - if auth == "" { - return nil, fmt.Errorf("GITEE_AUTH is required") - } - proxy := taskCtx.GetConfig("GITEE_PROXY") - headers := map[string]string{} + apiClient.SetBeforeFunction(func(req *http.Request) error { + query := req.URL.Query() + query.Set("access_token", connection.Token) + req.URL.RawQuery = query.Encode() + return nil + }) - apiClient, err := helper.NewApiClient(endpoint, headers, 0, proxy, taskCtx.GetContext()) - if err != nil { - return nil, err - } apiClient.SetAfterFunction(func(res *http.Response) error { if res.StatusCode == http.StatusUnauthorized { return fmt.Errorf("authentication failed, please check your Basic Auth Token") @@ -57,7 +51,7 @@ func NewGiteeApiClient(taskCtx core.TaskContext) (*helper.ApiAsyncClient, error) }) rateLimiter := &helper.ApiRateLimitCalculator{ - UserRateLimitPerHour: userRateLimit, + UserRateLimitPerHour: connection.RateLimit, DynamicRateLimit: func(res *http.Response) (int, time.Duration, error) { rateLimitHeader := res.Header.Get("RateLimit-Limit") if rateLimitHeader == "" { diff --git a/plugins/gitee/tasks/commit_collector.go b/plugins/gitee/tasks/commit_collector.go index dc834e53..0d37a632 100644 --- a/plugins/gitee/tasks/commit_collector.go +++ b/plugins/gitee/tasks/commit_collector.go @@ -45,7 +45,6 @@ func CollectApiCommits(taskCtx core.SubTaskContext) error { UrlTemplate: "repos/{{ .Params.Owner }}/{{ .Params.Repo }}/commits", Query: func(reqData *helper.RequestData) (url.Values, error) { query := url.Values{} - query.Set("access_token", data.Options.Token) query.Set("with_stats", "true") query.Set("sort", "asc") query.Set("page", strconv.Itoa(reqData.Pager.Page)) diff --git a/plugins/gitee/tasks/commit_stats_collector.go b/plugins/gitee/tasks/commit_stats_collector.go index cdc23c1d..83902bf4 100644 --- a/plugins/gitee/tasks/commit_stats_collector.go +++ b/plugins/gitee/tasks/commit_stats_collector.go @@ -85,7 +85,6 @@ func CollectApiCommitStats(taskCtx core.SubTaskContext) error { */ Query: func(reqData *helper.RequestData) (url.Values, error) { query := url.Values{} - query.Set("access_token", data.Options.Token) query.Set("state", "all") query.Set("direction", "asc") query.Set("page", fmt.Sprintf("%v", reqData.Pager.Page)) diff --git a/plugins/gitee/tasks/issue_collector.go b/plugins/gitee/tasks/issue_collector.go index 4b882233..5b325084 100644 --- a/plugins/gitee/tasks/issue_collector.go +++ b/plugins/gitee/tasks/issue_collector.go @@ -67,7 +67,6 @@ func CollectApiIssues(taskCtx core.SubTaskContext) error { UrlTemplate: "repos/{{ .Params.Owner }}/{{ .Params.Repo }}/issues", Query: func(reqData *helper.RequestData) (url.Values, error) { query := url.Values{} - query.Set("access_token", data.Options.Token) query.Set("state", "all") if since != nil { query.Set("since", since.String()) diff --git a/plugins/gitee/tasks/issue_comment_collector.go b/plugins/gitee/tasks/issue_comment_collector.go index a74b08fb..df0d6364 100644 --- a/plugins/gitee/tasks/issue_comment_collector.go +++ b/plugins/gitee/tasks/issue_comment_collector.go @@ -87,7 +87,6 @@ func CollectApiIssueComments(taskCtx core.SubTaskContext) error { UrlTemplate: "repos/{{ .Params.Owner }}/{{ .Params.Repo }}/issues/comments", Query: func(reqData *helper.RequestData) (url.Values, error) { query := url.Values{} - query.Set("access_token", data.Options.Token) query.Set("state", "all") if since != nil { query.Set("since", since.String()) diff --git a/plugins/gitee/tasks/issue_comment_extractor.go b/plugins/gitee/tasks/issue_comment_extractor.go index 8e321b05..2fcfb76c 100644 --- a/plugins/gitee/tasks/issue_comment_extractor.go +++ b/plugins/gitee/tasks/issue_comment_extractor.go @@ -36,11 +36,21 @@ var ExtractApiIssueCommentsMeta = core.SubTaskMeta{ type IssueComment struct { GiteeId int `json:"id"` Body string - User struct { + + User struct { Login string Id int } - IssueUrl string `json:"issue_url"` + + Target struct { + Issue struct { + Id int `json:"id"` + Title string `json:"title"` + Number string `json:"number"` + } + PullRequest string `json:"pull_request"` + } + GiteeCreatedAt helper.Iso8601Time `json:"created_at"` GiteeUpdatedAt helper.Iso8601Time `json:"updated_at"` } @@ -69,7 +79,7 @@ func ExtractApiIssueComments(taskCtx core.SubTaskContext) error { return nil, nil } //If this is a pr, ignore - issueINumber, err := GetIssueIdByIssueUrl(apiComment.IssueUrl) + issueINumber := apiComment.Target.Issue.Number if err != nil { return nil, err } diff --git a/plugins/gitee/tasks/pr_collector.go b/plugins/gitee/tasks/pr_collector.go index 31f80ddc..c20a308d 100644 --- a/plugins/gitee/tasks/pr_collector.go +++ b/plugins/gitee/tasks/pr_collector.go @@ -68,7 +68,6 @@ func CollectApiPullRequests(taskCtx core.SubTaskContext) error { Query: func(reqData *helper.RequestData) (url.Values, error) { query := url.Values{} - query.Set("access_token", data.Options.Token) query.Set("state", "all") if since != nil { query.Set("since", since.String()) diff --git a/plugins/gitee/tasks/pr_commit_collector.go b/plugins/gitee/tasks/pr_commit_collector.go index 8a5a1388..5cdd8e3e 100644 --- a/plugins/gitee/tasks/pr_commit_collector.go +++ b/plugins/gitee/tasks/pr_commit_collector.go @@ -71,7 +71,6 @@ func CollectApiPullRequestCommits(taskCtx core.SubTaskContext) error { Query: func(reqData *helper.RequestData) (url.Values, error) { query := url.Values{} - query.Set("access_token", data.Options.Token) query.Set("state", "all") query.Set("page", fmt.Sprintf("%v", reqData.Pager.Page)) query.Set("direction", "asc") diff --git a/plugins/gitee/tasks/pr_review_collector.go b/plugins/gitee/tasks/pr_review_collector.go index 468236f6..bfc21cec 100644 --- a/plugins/gitee/tasks/pr_review_collector.go +++ b/plugins/gitee/tasks/pr_review_collector.go @@ -67,7 +67,6 @@ func CollectApiPullRequestReviews(taskCtx core.SubTaskContext) error { Query: func(reqData *helper.RequestData) (url.Values, error) { query := url.Values{} - query.Set("access_token", data.Options.Token) query.Set("page", fmt.Sprintf("%v", reqData.Pager.Page)) query.Set("per_page", fmt.Sprintf("%v", reqData.Pager.Size)) query.Set("sort", "asc") diff --git a/plugins/gitee/tasks/repo_collector.go b/plugins/gitee/tasks/repo_collector.go index 15111300..ad2670c1 100644 --- a/plugins/gitee/tasks/repo_collector.go +++ b/plugins/gitee/tasks/repo_collector.go @@ -47,7 +47,6 @@ func CollectApiRepositories(taskCtx core.SubTaskContext) error { UrlTemplate: "repos/{{ .Params.Owner }}/{{ .Params.Repo }}", Query: func(reqData *helper.RequestData) (url.Values, error) { query := url.Values{} - query.Set("access_token", data.Options.Token) query.Set("state", "all") query.Set("page", fmt.Sprintf("%v", reqData.Pager.Page)) query.Set("direction", "asc") diff --git a/plugins/gitee/tasks/shared.go b/plugins/gitee/tasks/shared.go index 48238dcb..76b2de18 100644 --- a/plugins/gitee/tasks/shared.go +++ b/plugins/gitee/tasks/shared.go @@ -48,7 +48,6 @@ type RateLimitInfo struct { type GiteeApiParams struct { Repo string Owner string - Token string } type GiteeInput struct { @@ -96,7 +95,6 @@ func CreateRawDataSubTaskArgs(taskCtx core.SubTaskContext, Table string) (*helpe Params: GiteeApiParams{ Repo: data.Options.Repo, Owner: data.Options.Owner, - Token: data.Options.Token, }, Table: Table, } @@ -194,13 +192,3 @@ func GetPagingFromLinkHeader(link string) (PagingInfo, error) { return result, errors.New("the link string provided is invalid. There is likely no next page of data to fetch") } } - -func GetIssueIdByIssueUrl(s string) (int, error) { - regex := regexp.MustCompile(`.*/issues/(\d+)`) - groups := regex.FindStringSubmatch(s) - if len(groups) > 0 { - return strconv.Atoi(groups[1]) - } else { - return 0, errors.New("invalid issue url") - } -} diff --git a/plugins/gitee/tasks/task_data.go b/plugins/gitee/tasks/task_data.go index 76956641..c990378b 100644 --- a/plugins/gitee/tasks/task_data.go +++ b/plugins/gitee/tasks/task_data.go @@ -25,12 +25,13 @@ import ( ) type GiteeOptions struct { - Tasks []string `json:"tasks,omitempty"` - Since string - Owner string - Repo string - Token string - models.Config + ConnectionId uint64 `json:"connectionId"` + Tasks []string `json:"tasks,omitempty"` + Since string + Owner string + Repo string + Token string + models.Config `mapstructure:",squash"` } type GiteeTaskData struct {
