Commit 4fb5d866 authored by Mayra Cabrera's avatar Mayra Cabrera

Merge branch '195794-jira-integration-not-working-since-upgrade-to-12-6-2' into 'master'

Change Jira service to create comments first

See merge request gitlab-org/gitlab!26052
parents cc9eb19a 0f53ccd1
...@@ -280,21 +280,17 @@ class JiraService < IssueTrackerService ...@@ -280,21 +280,17 @@ class JiraService < IssueTrackerService
return unless client_url.present? return unless client_url.present?
jira_request do jira_request do
create_issue_link(issue, remote_link_props) remote_link = find_remote_link(issue, remote_link_props[:object][:url])
create_issue_comment(issue, message)
create_issue_comment(issue, message) unless remote_link
remote_link ||= issue.remotelink.build
remote_link.save!(remote_link_props)
log_info("Successfully posted", client_url: client_url) log_info("Successfully posted", client_url: client_url)
"SUCCESS: Successfully posted to #{client_url}." "SUCCESS: Successfully posted to #{client_url}."
end end
end end
def create_issue_link(issue, remote_link_props)
remote_link = find_remote_link(issue, remote_link_props[:object][:url])
remote_link ||= issue.remotelink.build
remote_link.save!(remote_link_props)
end
def create_issue_comment(issue, message) def create_issue_comment(issue, message)
return unless comment_on_event_enabled return unless comment_on_event_enabled
......
...@@ -15,7 +15,7 @@ module Gitlab ...@@ -15,7 +15,7 @@ module Gitlab
unless result.response.is_a?(Net::HTTPSuccess) unless result.response.is_a?(Net::HTTPSuccess)
Gitlab::ErrorTracking.track_and_raise_exception( Gitlab::ErrorTracking.track_and_raise_exception(
JIRA::HTTPError.new(result.response), JIRA::HTTPError.new(result.response),
response_body: result.body response: result.body
) )
end end
......
...@@ -440,6 +440,27 @@ describe JiraService do ...@@ -440,6 +440,27 @@ describe JiraService do
end end
end end
context 'when Remote Link already exists' do
let(:remote_link) do
double(
'remote link',
object: {
url: "#{Gitlab.config.gitlab.url}/#{project.full_path}/-/commit/#{commit_id}"
}.with_indifferent_access
)
end
it 'does not create comment' do
allow(JIRA::Resource::Remotelink).to receive(:all).and_return([remote_link])
expect(remote_link).to receive(:save!)
@jira_service.close_issue(resource, ExternalIssue.new('JIRA-123', project))
expect(WebMock).not_to have_requested(:post, @comment_url)
end
end
it 'does not send comment or remote links to issues already closed' do it 'does not send comment or remote links to issues already closed' do
allow_any_instance_of(JIRA::Resource::Issue).to receive(:resolution).and_return(true) allow_any_instance_of(JIRA::Resource::Issue).to receive(:resolution).and_return(true)
......
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