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
Pipeline #72178208 failed with stages
in 55 minutes and 35 seconds
......@@ -54,7 +54,7 @@ class JiraService < IssueTrackerService
username: self.username,
password: self.password,
site: URI.join(url, '/').to_s, # Intended to find the root
context_path: url.path.chomp('/'),
context_path: url.path,
auth_type: :basic,
read_timeout: 120,
use_cookies: true,
......@@ -103,6 +103,12 @@ class JiraService < IssueTrackerService
"#{url}/secure/CreateIssue.jspa"
end
alias_method :original_url, :url
def url
original_url&.chomp('/')
end
def execute(push)
# This method is a no-op, because currently JiraService does not
# 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
allow(JIRA::Resource::Remotelink).to receive(:all).and_return(nil)
expect { @jira_service.close_issue(resource, ExternalIssue.new('JIRA-123', project)) }
.not_to raise_error(NoMethodError)
.not_to raise_error
end
# 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
expect(service.properties['api_url']).to eq('http://jira.sample/api')
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
describe 'favicon urls', :request_store 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$}
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
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