Fix JIRA not working when a trailing slash is included

Leaving a trailing slash in the context option causes the jira-ruby
gem to add an extra slash in HTTP requests to the URL, preventing
JIRA from working properly.

Closes #42494
This commit is contained in:
Stan Hu 2018-01-26 16:06:01 -08:00
parent 1f309b69df
commit 8f965d0fa3
3 changed files with 29 additions and 1 deletions

View File

@ -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,

View File

@ -0,0 +1,5 @@
---
title: Fix JIRA not working when a trailing slash is included
merge_request:
author:
type: fixed

View File

@ -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 }