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


The following commit(s) were added to refs/heads/main by this push:
     new 0a69bd74 fix(gitlab): fix issue assignee id type
0a69bd74 is described below

commit 0a69bd749d8f85db2c4a96658ac23436087fd202
Author: Yingchu Chen <[email protected]>
AuthorDate: Mon Jun 6 12:19:00 2022 +0800

    fix(gitlab): fix issue assignee id type
    
    closes #2085
---
 plugins/gitlab/gitlab.go                |  32 ++-----
 plugins/gitlab/impl/impl.go             |   2 +-
 plugins/gitlab/models/issue.go          |   8 +-
 plugins/gitlab/tasks/issue_convertor.go |  33 ++++---
 plugins/gitlab/tasks/issue_extractor.go | 149 ++++++++++++++++----------------
 5 files changed, 102 insertions(+), 122 deletions(-)

diff --git a/plugins/gitlab/gitlab.go b/plugins/gitlab/gitlab.go
index d6c8a5f2..88ce9f10 100644
--- a/plugins/gitlab/gitlab.go
+++ b/plugins/gitlab/gitlab.go
@@ -18,10 +18,7 @@ limitations under the License.
 package main // must be main for plugin entry point
 
 import (
-       "github.com/apache/incubator-devlake/config"
-       "github.com/apache/incubator-devlake/logger"
        "github.com/apache/incubator-devlake/plugins/gitlab/impl"
-       "github.com/apache/incubator-devlake/plugins/tapd/models"
        "github.com/apache/incubator-devlake/runner"
        "github.com/spf13/cobra"
 )
@@ -32,28 +29,13 @@ var PluginEntry impl.Gitlab //nolint
 // standalone mode for debugging
 func main() {
        gitlabCmd := &cobra.Command{Use: "gitlab"}
-       gitlabCmd.Run = func(c *cobra.Command, args []string) {
-               cfg := config.GetConfig()
-               log := logger.Global.Nested(gitlabCmd.Use)
-               db, err := runner.NewGormDb(cfg, log)
-               if err != nil {
-                       panic(err)
-               }
-               wsList := make([]*models.TapdWorkspace, 0)
-               err = db.Find(&wsList, "parent_id = ?", 59169984).Error
-               projectList := []uint64{63281714,
-                       34276182,
-                       46319043,
-                       50328292,
-                       63984859,
-                       55805854,
-                       38496185,
-               }
-               for _, v := range projectList {
-                       runner.DirectRun(gitlabCmd, args, PluginEntry, 
map[string]interface{}{
-                               "projectId": v,
-                       })
-               }
+       projectId := gitlabCmd.Flags().IntP("project-id", "p", 0, "gitlab 
project id")
+
+       _ = gitlabCmd.MarkFlagRequired("project-id")
+       gitlabCmd.Run = func(cmd *cobra.Command, args []string) {
+               runner.DirectRun(cmd, args, PluginEntry, map[string]interface{}{
+                       "projectId": *projectId,
+               })
        }
 
        runner.RunCmd(gitlabCmd)
diff --git a/plugins/gitlab/impl/impl.go b/plugins/gitlab/impl/impl.go
index 7caeff84..9a21548a 100644
--- a/plugins/gitlab/impl/impl.go
+++ b/plugins/gitlab/impl/impl.go
@@ -116,7 +116,7 @@ func (plugin Gitlab) ApiResources() 
map[string]map[string]core.ApiResourceHandle
                        "GET": api.ListConnections,
                },
                "connections/:connectionId": {
-                       "GET": api.GetConnection,
+                       "GET":   api.GetConnection,
                        "PATCH": api.PatchConnection,
                },
        }
diff --git a/plugins/gitlab/models/issue.go b/plugins/gitlab/models/issue.go
index 36628433..3fed54e8 100644
--- a/plugins/gitlab/models/issue.go
+++ b/plugins/gitlab/models/issue.go
@@ -15,7 +15,7 @@ type GitlabIssue struct {
        Priority        string `gorm:"type:varchar(255)"`
        Type            string `gorm:"type:varchar(100)"`
        Status          string `gorm:"type:varchar(255)"`
-       AssigneeId      string
+       AssigneeId      int
        AssigneeName    string `gorm:"type:varchar(255)"`
        LeadTimeMinutes uint
        Url             string `gorm:"type:varchar(255)"`
@@ -24,11 +24,11 @@ type GitlabIssue struct {
        GitlabUpdatedAt time.Time `gorm:"index"`
        Severity        string    `gorm:"type:varchar(255)"`
        Component       string    `gorm:"type:varchar(255)"`
-       TimeEstimate    int64
-       TotalTimeSpent  int64
+       TimeEstimate    int64
+       TotalTimeSpent  int64
        common.NoPKModel
 }
+
 func (GitlabIssue) TableName() string {
        return "_tool_gitlab_issues"
 }
-
diff --git a/plugins/gitlab/tasks/issue_convertor.go 
b/plugins/gitlab/tasks/issue_convertor.go
index e8ee6060..3133dea9 100644
--- a/plugins/gitlab/tasks/issue_convertor.go
+++ b/plugins/gitlab/tasks/issue_convertor.go
@@ -49,24 +49,23 @@ func ConvertIssues(taskCtx core.SubTaskContext) error {
                Convert: func(inputRow interface{}) ([]interface{}, error) {
                        issue := inputRow.(*gitlabModels.GitlabIssue)
                        domainIssue := &ticket.Issue{
-                               DomainEntity:    domainlayer.DomainEntity{Id: 
issueIdGen.Generate(issue.GitlabId)},
-                               Number:          strconv.Itoa(issue.Number),
-                               Title:           issue.Title,
-                               Description:     issue.Body,
-                               Priority:        issue.Priority,
-                               Type:            issue.Type,
-                               AssigneeId:      issue.AssigneeId,
-                               AssigneeName:    issue.AssigneeName,
-                               LeadTimeMinutes: issue.LeadTimeMinutes,
-                               Url:             issue.Url,
-                               CreatedDate:     &issue.GitlabCreatedAt,
-                               UpdatedDate:     &issue.GitlabUpdatedAt,
-                               ResolutionDate:  issue.ClosedAt,
-                               Severity:        issue.Severity,
-                               Component:       issue.Component,
-                               OriginalStatus:  issue.Status,
+                               DomainEntity:            
domainlayer.DomainEntity{Id: issueIdGen.Generate(issue.GitlabId)},
+                               Number:                  
strconv.Itoa(issue.Number),
+                               Title:                   issue.Title,
+                               Description:             issue.Body,
+                               Priority:                issue.Priority,
+                               Type:                    issue.Type,
+                               AssigneeName:            issue.AssigneeName,
+                               LeadTimeMinutes:         issue.LeadTimeMinutes,
+                               Url:                     issue.Url,
+                               CreatedDate:             &issue.GitlabCreatedAt,
+                               UpdatedDate:             &issue.GitlabUpdatedAt,
+                               ResolutionDate:          issue.ClosedAt,
+                               Severity:                issue.Severity,
+                               Component:               issue.Component,
+                               OriginalStatus:          issue.Status,
                                OriginalEstimateMinutes: issue.TimeEstimate,
-                               TimeSpentMinutes: issue.TotalTimeSpent,
+                               TimeSpentMinutes:        issue.TotalTimeSpent,
                        }
                        if issue.State == "opened" {
                                domainIssue.Status = ticket.TODO
diff --git a/plugins/gitlab/tasks/issue_extractor.go 
b/plugins/gitlab/tasks/issue_extractor.go
index 7e18120f..d4870483 100644
--- a/plugins/gitlab/tasks/issue_extractor.go
+++ b/plugins/gitlab/tasks/issue_extractor.go
@@ -16,94 +16,93 @@ var ExtractApiIssuesMeta = core.SubTaskMeta{
 }
 
 type IssuesResponse struct {
-       ProjectId    int `json:"project_id"`
-       Milestone    struct {
-               Due_date        string
-               Project_id      int
-               State           string
+       ProjectId int `json:"project_id"`
+       Milestone struct {
+               Due_date    string
+               Project_id  int
+               State       string
                Description string
-               Iid             int
-               Id                      int
-               Title           string
-               CreatedAt helper.Iso8601Time
-               UpdatedAt helper.Iso8601Time
+               Iid         int
+               Id          int
+               Title       string
+               CreatedAt   helper.Iso8601Time
+               UpdatedAt   helper.Iso8601Time
        }
-       Author struct{
-               State           string
-               WebUrl          string
-               AvatarUrl       string
-               Username        string
-               Id                      int
-               Name            string
+       Author struct {
+               State     string
+               WebUrl    string
+               AvatarUrl string
+               Username  string
+               Id        int
+               Name      string
        }
-       Description     string
-       State                   string
-       Iid                     int
-       Assignees []struct {
-               AvatarUrl       string
-               WebUrl          string
-               State           string
-               Username        string
-               Id                      string
-               Name            string
+       Description string
+       State       string
+       Iid         int
+       Assignees   []struct {
+               AvatarUrl string
+               WebUrl    string
+               State     string
+               Username  string
+               Id        int
+               Name      string
        }
        Assignee *struct {
-               AvatarUrl       string
-               WebUrl          string
-               State           string
-               Username        string
-               Id                      string
-               Name            string
+               AvatarUrl string
+               WebUrl    string
+               State     string
+               Username  string
+               Id        int
+               Name      string
        }
-       Type                            string
-       Labels                          []string `json:"labels"`
-       UpVotes                         int
-       DownVotes                       int
-       MergeRequestsCount      int
-       Id                                      int     `json:"id"`
-       Title                   string
-       GitlabUpdatedAt helper.Iso8601Time  `json:"updated_at"`
-       GitlabCreatedAt helper.Iso8601Time  `json:"created_at"`
-       GitlabClosedAt  *helper.Iso8601Time `json:"closed_at"`
-       ClosedBy struct{
-               State           string
-               WebUrl          string
-               AvatarUrl       string
-               Username        string
-               Id                      int
-               Name            string
+       Type               string
+       Labels             []string `json:"labels"`
+       UpVotes            int
+       DownVotes          int
+       MergeRequestsCount int
+       Id                 int `json:"id"`
+       Title              string
+       GitlabUpdatedAt    helper.Iso8601Time  `json:"updated_at"`
+       GitlabCreatedAt    helper.Iso8601Time  `json:"created_at"`
+       GitlabClosedAt     *helper.Iso8601Time `json:"closed_at"`
+       ClosedBy           struct {
+               State     string
+               WebUrl    string
+               AvatarUrl string
+               Username  string
+               Id        int
+               Name      string
        }
        UserNotesCount int
-       DueDate helper.Iso8601Time
-       WebUrl string   `json:"web_url"`
-       References struct {
-               Short           string
-               Relative        string
-               Full            string
+       DueDate        helper.Iso8601Time
+       WebUrl         string `json:"web_url"`
+       References     struct {
+               Short    string
+               Relative string
+               Full     string
        }
        TimeStats struct {
-               TimeEstimate            int64
-               TotalTimeSpent          int64
-               HumanTimeEstimate       string
+               TimeEstimate        int64
+               TotalTimeSpent      int64
+               HumanTimeEstimate   string
                HumanTotalTimeSpent string
        }
-       HasTasks                bool
-       TaskStatus              string
-       Confidential    bool
+       HasTasks         bool
+       TaskStatus       string
+       Confidential     bool
        DiscussionLocked bool
-       IssueType               string
-       Serverity               string
-       Links struct {
-               Self            string  `json:"url"`
-               Notes           string
-               AwardEmoji      string
-               Project         string
+       IssueType        string
+       Serverity        string
+       Links            struct {
+               Self       string `json:"url"`
+               Notes      string
+               AwardEmoji string
+               Project    string
        }
        TaskCompletionStatus struct {
-               Count                   int
-               CompletedCount  int
+               Count          int
+               CompletedCount int
        }
-
 }
 
 func ExtractApiIssues(taskCtx core.SubTaskContext) error {
@@ -135,7 +134,7 @@ func ExtractApiIssues(taskCtx core.SubTaskContext) error {
                                return nil, nil
                        }
                        //If this is not Issue, ignore
-                       if body.IssueType != "ISSUE" && body.Type != "ISSUE"{
+                       if body.IssueType != "ISSUE" && body.Type != "ISSUE" {
                                return nil, nil
                        }
                        results := make([]interface{}, 0, 2)
@@ -175,8 +174,8 @@ func convertGitlabIssue(issue *IssuesResponse, projectId 
int) (*models.GitlabIss
                ClosedAt:        helper.Iso8601TimeToTime(issue.GitlabClosedAt),
                GitlabCreatedAt: issue.GitlabCreatedAt.ToTime(),
                GitlabUpdatedAt: issue.GitlabUpdatedAt.ToTime(),
-               TimeEstimate: issue.TimeStats.TimeEstimate,
-               TotalTimeSpent: issue.TimeStats.TotalTimeSpent,
+               TimeEstimate:    issue.TimeStats.TimeEstimate,
+               TotalTimeSpent:  issue.TimeStats.TotalTimeSpent,
        }
 
        if issue.Assignee != nil {

Reply via email to