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 {

Reply via email to