diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-26 15:06:18 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2019-11-26 15:06:18 +0300 |
commit | 6a4ffad42050949fcf08e78147575734ae99627e (patch) | |
tree | 723bb2480948ba4ec29ca9ac10f8728dc2a831b6 /app/models/project_services/jira_service.rb | |
parent | 23d237110e6a646dec08e1f5b4696d2d9c51cfef (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/models/project_services/jira_service.rb')
-rw-r--r-- | app/models/project_services/jira_service.rb | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb index ba61810e26f..128cbc6fa82 100644 --- a/app/models/project_services/jira_service.rb +++ b/app/models/project_services/jira_service.rb @@ -32,6 +32,10 @@ class JiraService < IssueTrackerService %w(commit merge_request) end + def self.supported_event_actions + %w(comment) + end + # {PROJECT-KEY}-{NUMBER} Examples: JIRA-1, PROJECT-1 def self.reference_pattern(only_long: true) @reference_pattern ||= /(?<issue>\b#{Gitlab::Regex.jira_issue_key_regex})/ @@ -268,19 +272,27 @@ class JiraService < IssueTrackerService return unless client_url.present? jira_request do - remote_link = find_remote_link(issue, remote_link_props[:object][:url]) - if remote_link - remote_link.save!(remote_link_props) - elsif issue.comments.build.save!(body: message) - new_remote_link = issue.remotelink.build - new_remote_link.save!(remote_link_props) - end + create_issue_link(issue, remote_link_props) + create_issue_comment(issue, message) log_info("Successfully posted", client_url: client_url) "SUCCESS: Successfully posted to #{client_url}." 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) + return unless comment_on_event_enabled + + issue.comments.build.save!(body: message) + end + def find_remote_link(issue, url) links = jira_request { issue.remotelink.all } return unless links |