You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by kl...@apache.org on 2023/02/06 06:00:31 UTC

[incubator-devlake] branch main updated: fix: fix jira issue url (#4328)

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 <li...@merico.dev>
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) {