This is an automated email from the ASF dual-hosted git repository.

zhangliang2022 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 b31ec914  fix: support jira server collect users
b31ec914 is described below

commit b31ec914f586ee043af6be18bb734dcbb29d6c59
Author: jinzhu2002 <[email protected]>
AuthorDate: Fri Aug 12 22:24:25 2022 +0800

     fix: support jira server collect users
    
    * fix bug #2550
    
    * support jira server collect users
    
    * support jira server collect users
    
    * support jira server collect users
    
    * fix:support jira server collect users
    
    * fix(jira): support jira server collect users
    
    * fix: support jira server collect users
---
 plugins/jira/tasks/account_collector.go | 25 +++++++++++++++++++------
 plugins/jira/tasks/account_extractor.go |  1 +
 2 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/plugins/jira/tasks/account_collector.go 
b/plugins/jira/tasks/account_collector.go
index 59fc4430..cf0036da 100644
--- a/plugins/jira/tasks/account_collector.go
+++ b/plugins/jira/tasks/account_collector.go
@@ -57,9 +57,12 @@ func CollectAccounts(taskCtx core.SubTaskContext) error {
                return err
        }
        queryKey := "accountId"
+       urlTemplate := "api/2/user"
        if data.JiraServerInfo.DeploymentType == models.DeploymentServer {
                queryKey = "username"
+               urlTemplate = "api/2/user/search"
        }
+
        collector, err := helper.NewApiCollector(helper.ApiCollectorArgs{
                RawDataSubTaskArgs: helper.RawDataSubTaskArgs{
                        Ctx: taskCtx,
@@ -71,7 +74,7 @@ func CollectAccounts(taskCtx core.SubTaskContext) error {
                },
                ApiClient:   data.ApiClient,
                Input:       iterator,
-               UrlTemplate: "api/2/user",
+               UrlTemplate: urlTemplate,
                Query: func(reqData *helper.RequestData) (url.Values, error) {
                        user := reqData.Input.(*models.JiraAccount)
                        query := url.Values{}
@@ -79,12 +82,22 @@ func CollectAccounts(taskCtx core.SubTaskContext) error {
                        return query, nil
                },
                ResponseParser: func(res *http.Response) ([]json.RawMessage, 
error) {
-                       var result json.RawMessage
-                       err := helper.UnmarshalResponse(res, &result)
-                       if err != nil {
-                               return nil, err
+                       if data.JiraServerInfo.DeploymentType == 
models.DeploymentServer {
+                               var results []json.RawMessage
+                               err := helper.UnmarshalResponse(res, &results)
+                               if err != nil {
+                                       return nil, err
+                               }
+
+                               return results, nil
+                       } else {
+                               var result json.RawMessage
+                               err := helper.UnmarshalResponse(res, &result)
+                               if err != nil {
+                                       return nil, err
+                               }
+                               return []json.RawMessage{result}, nil
                        }
-                       return []json.RawMessage{result}, nil
                },
        })
        if err != nil {
diff --git a/plugins/jira/tasks/account_extractor.go 
b/plugins/jira/tasks/account_extractor.go
index 9ff3b917..8da8e784 100644
--- a/plugins/jira/tasks/account_extractor.go
+++ b/plugins/jira/tasks/account_extractor.go
@@ -53,6 +53,7 @@ func ExtractAccounts(taskCtx core.SubTaskContext) error {
                                return nil, err
                        }
                        return 
[]interface{}{user.ToToolLayer(data.Options.ConnectionId)}, nil
+
                },
        })
 

Reply via email to