From 7555dde7bb532e5bffa61fc74c2f3456716b0107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Carpintero?= Date: Thu, 4 Apr 2024 16:44:15 +0200 Subject: [PATCH 1/2] Improve url tracker generation --- pkg/tracking/jira/tickets.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/pkg/tracking/jira/tickets.go b/pkg/tracking/jira/tickets.go index c2f6145..635c26e 100644 --- a/pkg/tracking/jira/tickets.go +++ b/pkg/tracking/jira/tickets.go @@ -6,6 +6,8 @@ package jira import ( "fmt" + "net/url" + "path" "github.com/adevinta/vulcan-tracker/pkg/model" ) @@ -32,7 +34,9 @@ func (tc *TrackerClient) GetTicket(id string) (model.Ticket, error) { if err != nil { return model.Ticket{}, err } - ticket.URLTracker = fmt.Sprintf("%s/browse/%s", tc.URL, ticket.Key) + if ticket.URLTracker, err = url.JoinPath(tc.URL, path.Join("browse", ticket.Key)); err != nil { + return model.Ticket{}, err + } return ticket, nil } @@ -46,7 +50,9 @@ func (tc *TrackerClient) CreateTicket(ticket model.Ticket) (model.Ticket, error) return model.Ticket{}, err } - createdTicket.URLTracker = fmt.Sprintf("%s/browse/%s", tc.URL, createdTicket.Key) + if createdTicket.URLTracker, err = url.JoinPath(tc.URL, path.Join("browse", createdTicket.Key)); err != nil { + return model.Ticket{}, err + } return createdTicket, nil } From 75728a8c22a7eeb579d85e0b8a29487daa1111de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Carpintero?= Date: Fri, 5 Apr 2024 14:45:50 +0200 Subject: [PATCH 2/2] Fix tests --- pkg/tracking/jira/tickets_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/tracking/jira/tickets_test.go b/pkg/tracking/jira/tickets_test.go index 81800d4..7a42c48 100644 --- a/pkg/tracking/jira/tickets_test.go +++ b/pkg/tracking/jira/tickets_test.go @@ -130,6 +130,7 @@ func TestGetTicket(t *testing.T) { tickets: tickets, }, Logger: &mockLogger{}, + URL: "https://www.example.com/jira/", }, want: model.Ticket{ ID: "1000", @@ -142,7 +143,7 @@ func TestGetTicket(t *testing.T) { Status: ToDo, TicketType: "Vulnerability", Labels: []string{"Vulnerability"}, - URLTracker: "/browse/TEST-1", + URLTracker: "https://www.example.com/jira/browse/TEST-1", }, wantErr: nil, },