Commit c5fac103 authored by Ash McKenzie's avatar Ash McKenzie

Merge branch '63833-fix-jira-issues-url' into 'master'

Handle trailing slashes when generating issue URLs

See merge request gitlab-org/gitlab-ce!30911
parents ab5185e8 589d1797
...@@ -54,7 +54,7 @@ class JiraService < IssueTrackerService ...@@ -54,7 +54,7 @@ class JiraService < IssueTrackerService
username: self.username, username: self.username,
password: self.password, password: self.password,
site: URI.join(url, '/').to_s, # Intended to find the root site: URI.join(url, '/').to_s, # Intended to find the root
context_path: url.path.chomp('/'), context_path: url.path,
auth_type: :basic, auth_type: :basic,
read_timeout: 120, read_timeout: 120,
use_cookies: true, use_cookies: true,
...@@ -103,6 +103,12 @@ class JiraService < IssueTrackerService ...@@ -103,6 +103,12 @@ class JiraService < IssueTrackerService
"#{url}/secure/CreateIssue.jspa" "#{url}/secure/CreateIssue.jspa"
end end
alias_method :original_url, :url
def url
original_url&.chomp('/')
end
def execute(push) def execute(push)
# This method is a no-op, because currently JiraService does not # This method is a no-op, because currently JiraService does not
# support any events. # support any events.
......
---
title: Handle trailing slashes when generating Jira issue URLs
merge_request: 30911
author:
type: fixed
...@@ -236,7 +236,7 @@ describe JiraService do ...@@ -236,7 +236,7 @@ describe JiraService do
allow(JIRA::Resource::Remotelink).to receive(:all).and_return(nil) allow(JIRA::Resource::Remotelink).to receive(:all).and_return(nil)
expect { @jira_service.close_issue(resource, ExternalIssue.new('JIRA-123', project)) } expect { @jira_service.close_issue(resource, ExternalIssue.new('JIRA-123', project)) }
.not_to raise_error(NoMethodError) .not_to raise_error
end end
# Check https://developer.atlassian.com/jiradev/jira-platform/guides/other/guide-jira-remote-issue-links/fields-in-remote-issue-links # Check https://developer.atlassian.com/jiradev/jira-platform/guides/other/guide-jira-remote-issue-links/fields-in-remote-issue-links
...@@ -606,6 +606,12 @@ describe JiraService do ...@@ -606,6 +606,12 @@ describe JiraService do
expect(service.properties['api_url']).to eq('http://jira.sample/api') expect(service.properties['api_url']).to eq('http://jira.sample/api')
end end
end end
it 'removes trailing slashes from url' do
service = described_class.new(url: 'http://jira.test.com/path/')
expect(service.url).to eq('http://jira.test.com/path')
end
end end
describe 'favicon urls', :request_store do describe 'favicon urls', :request_store do
...@@ -621,4 +627,20 @@ describe JiraService do ...@@ -621,4 +627,20 @@ describe JiraService do
expect(props[:object][:icon][:url16x16]).to match %r{^http://localhost/uploads/-/system/appearance/favicon/\d+/dk.png$} expect(props[:object][:icon][:url16x16]).to match %r{^http://localhost/uploads/-/system/appearance/favicon/\d+/dk.png$}
end end
end end
context 'generating external URLs' do
let(:service) { described_class.new(url: 'http://jira.test.com/path/') }
describe '#issues_url' do
it 'handles trailing slashes' do
expect(service.issues_url).to eq('http://jira.test.com/path/browse/:id')
end
end
describe '#new_issue_url' do
it 'handles trailing slashes' do
expect(service.new_issue_url).to eq('http://jira.test.com/path/secure/CreateIssue.jspa')
end
end
end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment