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

klesh 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 a58b109e8 fix: fix jira issue url (#4328)
a58b109e8 is described below

commit a58b109e8c37c6c4fe4ec0df5a42fddb174cdec8
Author: mindlesscloud <[email protected]>
AuthorDate: Mon Feb 6 14:00:25 2023 +0800

    fix: fix jira issue url (#4328)
---
 backend/plugins/jira/tasks/issue_convertor.go      | 15 +++++++++------
 backend/plugins/jira/tasks/issue_convertor_test.go | 10 ++++++++++
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/backend/plugins/jira/tasks/issue_convertor.go 
b/backend/plugins/jira/tasks/issue_convertor.go
index b726b0cb2..143503a29 100644
--- a/backend/plugins/jira/tasks/issue_convertor.go
+++ b/backend/plugins/jira/tasks/issue_convertor.go
@@ -18,6 +18,11 @@ limitations under the License.
 package tasks
 
 import (
+       "net/url"
+       "path/filepath"
+       "reflect"
+       "strings"
+
        "github.com/apache/incubator-devlake/core/dal"
        "github.com/apache/incubator-devlake/core/errors"
        "github.com/apache/incubator-devlake/core/models/domainlayer"
@@ -26,9 +31,6 @@ import (
        "github.com/apache/incubator-devlake/core/plugin"
        "github.com/apache/incubator-devlake/helpers/pluginhelper/api"
        "github.com/apache/incubator-devlake/plugins/jira/models"
-       "net/url"
-       "path/filepath"
-       "reflect"
 )
 
 var ConvertIssuesMeta = plugin.SubTaskMeta{
@@ -48,8 +50,8 @@ func ConvertIssues(taskCtx plugin.SubTaskContext) 
errors.Error {
        clauses := []dal.Clause{
                dal.Select("_tool_jira_issues.*"),
                dal.From(jiraIssue),
-               dal.Join(`left join _tool_jira_board_issues 
-                       on _tool_jira_board_issues.issue_id = 
_tool_jira_issues.issue_id 
+               dal.Join(`left join _tool_jira_board_issues
+                       on _tool_jira_board_issues.issue_id = 
_tool_jira_issues.issue_id
                        and _tool_jira_board_issues.connection_id = 
_tool_jira_issues.connection_id`),
                dal.Where(
                        "_tool_jira_board_issues.connection_id = ? AND 
_tool_jira_board_issues.board_id = ?",
@@ -141,6 +143,7 @@ func convertURL(api, issueKey string) string {
        if err != nil {
                return api
        }
-       u.Path = filepath.Join("/browse", issueKey)
+       before, _, _ := strings.Cut(u.Path, "/rest/agile/1.0/issue")
+       u.Path = filepath.Join(before, "browse", issueKey)
        return u.String()
 }
diff --git a/backend/plugins/jira/tasks/issue_convertor_test.go 
b/backend/plugins/jira/tasks/issue_convertor_test.go
index 88f4b531d..674a7591a 100644
--- a/backend/plugins/jira/tasks/issue_convertor_test.go
+++ b/backend/plugins/jira/tasks/issue_convertor_test.go
@@ -39,6 +39,16 @@ func Test_convertURL(t *testing.T) {
                        
args{"http://8.142.68.162:8080/rest/agile/1.0/issue/10003";, "TEST-4"},
                        "http://8.142.68.162:8080/browse/TEST-4";,
                },
+               {
+                       "",
+                       
args{"http://8.142.68.162:8080/prefix/rest/agile/1.0/issue/10003";, "TEST-4"},
+                       "http://8.142.68.162:8080/prefix/browse/TEST-4";,
+               },
+               {
+                       "",
+                       
args{"http://8.142.68.162:8080/prefix1/prefix2/rest/agile/1.0/issue/10003";, 
"TEST-4"},
+                       
"http://8.142.68.162:8080/prefix1/prefix2/browse/TEST-4";,
+               },
        }
        for _, tt := range tests {
                t.Run(tt.name, func(t *testing.T) {

Reply via email to