diff options
author | Felipe Artur <felipefac@gmail.com> | 2016-11-14 19:30:01 -0200 |
---|---|---|
committer | Felipe Artur <felipefac@gmail.com> | 2016-11-18 15:17:51 -0200 |
commit | d399e1ae2b92bc399962a286fddc59eaa09670a7 (patch) | |
tree | ea30c59e125b8086cbe5939ef58f03ba3051f872 /app | |
parent | 88479f7f3071c2d79447896deeea63fb78b175df (diff) | |
download | gitlab-ce-d399e1ae2b92bc399962a286fddc59eaa09670a7.tar.gz |
Allow enabling and disabling commit and MR events for JIRAissue_5541
Diffstat (limited to 'app')
-rw-r--r-- | app/helpers/services_helper.rb | 2 | ||||
-rw-r--r-- | app/models/project_services/jira_service.rb | 43 | ||||
-rw-r--r-- | app/models/service.rb | 1 |
3 files changed, 22 insertions, 24 deletions
diff --git a/app/helpers/services_helper.rb b/app/helpers/services_helper.rb index 3d4abf76419..9bab140e60a 100644 --- a/app/helpers/services_helper.rb +++ b/app/helpers/services_helper.rb @@ -17,6 +17,8 @@ module ServicesHelper "Event will be triggered when a build status changes" when "wiki_page" "Event will be triggered when a wiki page is created/updated" + when "commit" + "Event will be triggered when a commit is created/updated" end end diff --git a/app/models/project_services/jira_service.rb b/app/models/project_services/jira_service.rb index 8915c06b633..2caf6179ef8 100644 --- a/app/models/project_services/jira_service.rb +++ b/app/models/project_services/jira_service.rb @@ -1,24 +1,3 @@ -# == Schema Information -# -# Table name: services -# -# id :integer not null, primary key -# type :string(255) -# title :string(255) -# project_id :integer -# created_at :datetime -# updated_at :datetime -# active :boolean default(FALSE), not null -# properties :text -# template :boolean default(FALSE) -# push_events :boolean default(TRUE) -# issues_events :boolean default(TRUE) -# merge_requests_events :boolean default(TRUE) -# tag_push_events :boolean default(TRUE) -# note_events :boolean default(TRUE), not null -# build_events :boolean default(FALSE), not null -# - class JiraService < IssueTrackerService include Gitlab::Routing.url_helpers @@ -30,6 +9,10 @@ class JiraService < IssueTrackerService before_update :reset_password + def supported_events + %w(commit merge_request) + end + # {PROJECT-KEY}-{NUMBER} Examples: JIRA-1, PROJECT-1 def reference_pattern @reference_pattern ||= %r{(?<issue>\b([A-Z][A-Z0-9_]+-)\d+)} @@ -137,12 +120,16 @@ class JiraService < IssueTrackerService end def create_cross_reference_note(mentioned, noteable, author) + unless can_cross_reference?(noteable) + return "Events for #{noteable.model_name.plural.humanize(capitalize: false)} are disabled." + end + jira_issue = jira_request { client.Issue.find(mentioned.id) } - return false unless jira_issue.present? + return unless jira_issue.present? project = self.project - noteable_name = noteable.class.name.underscore.downcase + noteable_name = noteable.model_name.singular noteable_id = if noteable.is_a?(Commit) noteable.id else @@ -193,8 +180,16 @@ class JiraService < IssueTrackerService private + def can_cross_reference?(noteable) + case noteable + when Commit then commit_events + when MergeRequest then merge_requests_events + else true + end + end + def close_issue(entity, issue) - return if issue.nil? || issue.resolution.present? + return if issue.nil? || issue.resolution.present? || !jira_issue_transition_id.present? commit_id = if entity.is_a?(Commit) entity.id diff --git a/app/models/service.rb b/app/models/service.rb index 9d6ff190cdf..e10805f5a1f 100644 --- a/app/models/service.rb +++ b/app/models/service.rb @@ -8,6 +8,7 @@ class Service < ActiveRecord::Base default_value_for :push_events, true default_value_for :issues_events, true default_value_for :confidential_issues_events, true + default_value_for :commit_events, true default_value_for :merge_requests_events, true default_value_for :tag_push_events, true default_value_for :note_events, true |