diff options
author | Robert Speicher <robert@gitlab.com> | 2018-01-30 01:24:13 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2018-01-30 01:24:13 +0000 |
commit | 2d6a017d50fe5f42782648c6e64425c5dd5ae337 (patch) | |
tree | 4eebf2b20547df741d90b7a7156df38d21727a9e | |
parent | 1f309b69df3f71d988d4d31b08a1b683099a46e5 (diff) | |
parent | 8f965d0fa39b5800b0bb135791a6817a41007d56 (diff) | |
download | gitlab-ce-2d6a017d50fe5f42782648c6e64425c5dd5ae337.tar.gz |
Merge branch 'sh-fix-jira-trailing-slash' into 'master'
Fix JIRA not working when a trailing slash is included
Closes #42494
See merge request gitlab-org/gitlab-ce!16748
-rw-r--r-- | app/models/project_services/jira_service.rb | 2 | ||||
-rw-r--r-- | changelogs/unreleased/sh-fix-jira-trailing-slash.yml | 5 | ||||
-rw-r--r-- | spec/models/project_services/jira_service_spec.rb | 23 |
3 files changed, 29 insertions, 1 deletions
diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb index 2be35b6ea9d..23147d7f666 100644 --- a/app/models/project_services/jira_service.rb +++ b/app/models/project_services/jira_service.rb @@ -43,7 +43,7 @@ class JiraService < IssueTrackerService username: self.username, password: self.password, site: URI.join(url, '/').to_s, - context_path: url.path, + context_path: url.path.chomp('/'), auth_type: :basic, read_timeout: 120, use_cookies: true, diff --git a/changelogs/unreleased/sh-fix-jira-trailing-slash.yml b/changelogs/unreleased/sh-fix-jira-trailing-slash.yml new file mode 100644 index 00000000000..786f6cd3727 --- /dev/null +++ b/changelogs/unreleased/sh-fix-jira-trailing-slash.yml @@ -0,0 +1,5 @@ +--- +title: Fix JIRA not working when a trailing slash is included +merge_request: +author: +type: fixed diff --git a/spec/models/project_services/jira_service_spec.rb b/spec/models/project_services/jira_service_spec.rb index c9b3c6cf602..1eaaadf56c5 100644 --- a/spec/models/project_services/jira_service_spec.rb +++ b/spec/models/project_services/jira_service_spec.rb @@ -3,6 +3,29 @@ require 'spec_helper' describe JiraService do include Gitlab::Routing + describe '#options' do + let(:service) do + described_class.new( + project: build_stubbed(:project), + active: true, + username: 'username', + password: 'test', + jira_issue_transition_id: 24, + url: 'http://jira.test.com/path/' + ) + end + + it 'sets the URL properly' do + # jira-ruby gem parses the URI and handles trailing slashes + # fine: https://github.com/sumoheavy/jira-ruby/blob/v1.4.1/lib/jira/http_client.rb#L59 + expect(service.options[:site]).to eq('http://jira.test.com/') + end + + it 'leaves out trailing slashes in context' do + expect(service.options[:context_path]).to eq('/path') + end + end + describe "Associations" do it { is_expected.to belong_to :project } it { is_expected.to have_one :service_hook } |