From 29aa8ff4193bbabf631561260e45e42c0cd978ef Mon Sep 17 00:00:00 2001 From: Peter Leitzen Date: Wed, 27 Mar 2019 18:58:44 +0100 Subject: [PATCH] Let the GitLab Alert bot open incident issues --- ee/app/models/ee/user.rb | 12 +++++++++++- .../incident_management/create_issue_service.rb | 4 +--- ...9-open-issues-from-alerts-as-gitlab-alert-bot.yml | 5 +++++ ee/spec/models/user_spec.rb | 4 +++- .../incident_management/create_issue_service_spec.rb | 2 +- 5 files changed, 21 insertions(+), 6 deletions(-) create mode 100644 ee/changelogs/unreleased/10159-open-issues-from-alerts-as-gitlab-alert-bot.yml diff --git a/ee/app/models/ee/user.rb b/ee/app/models/ee/user.rb index 9f08bbea781d53..6a6568a3b4873f 100644 --- a/ee/app/models/ee/user.rb +++ b/ee/app/models/ee/user.rb @@ -74,7 +74,8 @@ module User scope :group_view_details, -> { where('group_view = ? OR group_view IS NULL', group_view[:details]) } enum bot_type: { - support_bot: 1 + support_bot: 1, + alert_bot: 2 } end @@ -90,6 +91,15 @@ def support_bot end end + def alert_bot + email_pattern = "alert%s@#{Settings.gitlab.host}" + + unique_internal(where(bot_type: :alert_bot), 'alert-bot', email_pattern) do |u| + u.bio = 'The GitLab alert bot' + u.name = 'GitLab Alert Bot' + end + end + override :internal def internal super.or(where.not(bot_type: nil)) diff --git a/ee/app/services/incident_management/create_issue_service.rb b/ee/app/services/incident_management/create_issue_service.rb index f30629d3cdfb62..5fc8f9aac97f18 100644 --- a/ee/app/services/incident_management/create_issue_service.rb +++ b/ee/app/services/incident_management/create_issue_service.rb @@ -24,9 +24,7 @@ def create_issue def issue_author strong_memoize(:issue_author) do - # This is a temporary solution before we've implemented User.alert_bot - # https://gitlab.com/gitlab-org/gitlab-ee/issues/10159 - User.ghost + User.alert_bot end end diff --git a/ee/changelogs/unreleased/10159-open-issues-from-alerts-as-gitlab-alert-bot.yml b/ee/changelogs/unreleased/10159-open-issues-from-alerts-as-gitlab-alert-bot.yml new file mode 100644 index 00000000000000..dd21e25135fcab --- /dev/null +++ b/ee/changelogs/unreleased/10159-open-issues-from-alerts-as-gitlab-alert-bot.yml @@ -0,0 +1,5 @@ +--- +title: Let the GitLab Alert bot open incident issues +merge_request: 10460 +author: +type: added diff --git a/ee/spec/models/user_spec.rb b/ee/spec/models/user_spec.rb index d5cf39ccff2938..bd05cd42ea0433 100644 --- a/ee/spec/models/user_spec.rb +++ b/ee/spec/models/user_spec.rb @@ -524,8 +524,9 @@ let!(:user) { create(:user) } let!(:ghost) { described_class.ghost } let!(:support_bot) { described_class.support_bot } + let!(:alert_bot) { described_class.alert_bot } let!(:non_internal) { [user] } - let!(:internal) { [ghost, support_bot] } + let!(:internal) { [ghost, support_bot, alert_bot] } it 'returns non internal users' do expect(described_class.internal).to eq(internal) @@ -543,6 +544,7 @@ expect(ghost.bot?).to eq(false) expect(support_bot.bot?).to eq(true) + expect(alert_bot.bot?).to eq(true) end end end diff --git a/ee/spec/services/incident_management/create_issue_service_spec.rb b/ee/spec/services/incident_management/create_issue_service_spec.rb index f0841dae9ea898..21d0b97b39371c 100644 --- a/ee/spec/services/incident_management/create_issue_service_spec.rb +++ b/ee/spec/services/incident_management/create_issue_service_spec.rb @@ -28,7 +28,7 @@ expect(subject).to include(status: :success) issue = subject[:issue] - expect(issue.author).to eq(User.ghost) + expect(issue.author).to eq(User.alert_bot) expect(issue.title).to eq(alert_title) expect(issue.description).to include('Summary') expect(issue.description).to include(alert_title) -- GitLab