diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-10 21:07:43 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-10 21:07:43 +0300 |
commit | 6f0f893bd87535b61e0ecb1ce069eaa7fcb9e5be (patch) | |
tree | 8af92b29c838e9af2fd70f9a4a2314a08f4af922 /lib | |
parent | 8b1228b0d409d7751f01d9fb72ebfbbf62399486 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/releases.rb | 19 | ||||
-rw-r--r-- | lib/gitlab/background_migration/activate_prometheus_services_for_shared_cluster_applications.rb | 52 | ||||
-rw-r--r-- | lib/gitlab/error_tracking/detailed_error.rb | 4 | ||||
-rw-r--r-- | lib/gitlab/import_export/import_export.yml | 5 | ||||
-rw-r--r-- | lib/sentry/client/issue.rb | 9 |
5 files changed, 84 insertions, 5 deletions
diff --git a/lib/api/releases.rb b/lib/api/releases.rb index 2df6050967b..506d2b0f985 100644 --- a/lib/api/releases.rb +++ b/lib/api/releases.rb @@ -66,6 +66,8 @@ module API .execute if result[:status] == :success + log_release_created_audit_event(result[:release]) + present result[:release], with: Entities::Release, current_user: current_user else render_api_error!(result[:message], result[:http_status]) @@ -91,6 +93,9 @@ module API .execute if result[:status] == :success + log_release_updated_audit_event + log_release_milestones_updated_audit_event if result[:milestones_updated] + present result[:release], with: Entities::Release, current_user: current_user else render_api_error!(result[:message], result[:http_status]) @@ -147,6 +152,20 @@ module API def release @release ||= user_project.releases.find_by_tag(params[:tag]) end + + def log_release_created_audit_event(release) + # This is a separate method so that EE can extend its behaviour + end + + def log_release_updated_audit_event + # This is a separate method so that EE can extend its behaviour + end + + def log_release_milestones_updated_audit_event + # This is a separate method so that EE can extend its behaviour + end end end end + +API::Releases.prepend_if_ee('EE::API::Releases') diff --git a/lib/gitlab/background_migration/activate_prometheus_services_for_shared_cluster_applications.rb b/lib/gitlab/background_migration/activate_prometheus_services_for_shared_cluster_applications.rb new file mode 100644 index 00000000000..19f5821d449 --- /dev/null +++ b/lib/gitlab/background_migration/activate_prometheus_services_for_shared_cluster_applications.rb @@ -0,0 +1,52 @@ +# frozen_string_literal: true + +module Gitlab + module BackgroundMigration + # Create missing PrometheusServices records or sets active attribute to true + # for all projects which belongs to cluster with Prometheus Application installed. + class ActivatePrometheusServicesForSharedClusterApplications + module Migratable + # Migration model namespace isolated from application code. + class PrometheusService < ActiveRecord::Base + self.inheritance_column = :_type_disabled + self.table_name = 'services' + + default_scope { where("services.type = 'PrometheusService'") } + + def self.for_project(project_id) + new( + project_id: project_id, + active: true, + properties: '{}', + type: 'PrometheusService', + template: false, + push_events: true, + issues_events: true, + merge_requests_events: true, + tag_push_events: true, + note_events: true, + category: 'monitoring', + default: false, + wiki_page_events: true, + pipeline_events: true, + confidential_issues_events: true, + commit_events: true, + job_events: true, + confidential_note_events: true, + deployment_events: false + ) + end + + def managed? + properties == '{}' + end + end + end + + def perform(project_id) + service = Migratable::PrometheusService.find_by(project_id: project_id) || Migratable::PrometheusService.for_project(project_id) + service.update!(active: true) if service.managed? + end + end + end +end diff --git a/lib/gitlab/error_tracking/detailed_error.rb b/lib/gitlab/error_tracking/detailed_error.rb index a95e367c8b8..47ed88b2ab1 100644 --- a/lib/gitlab/error_tracking/detailed_error.rb +++ b/lib/gitlab/error_tracking/detailed_error.rb @@ -12,10 +12,12 @@ module Gitlab :external_url, :first_release_last_commit, :first_release_short_version, + :first_release_version, :first_seen, :frequency, - :gitlab_project, + :gitlab_commit, :gitlab_issue, + :gitlab_project, :id, :last_release_last_commit, :last_release_short_version, diff --git a/lib/gitlab/import_export/import_export.yml b/lib/gitlab/import_export/import_export.yml index 055110c0655..3208e6648a7 100644 --- a/lib/gitlab/import_export/import_export.yml +++ b/lib/gitlab/import_export/import_export.yml @@ -16,6 +16,7 @@ tree: - :timelogs - notes: - :author + - :award_emoji - events: - :push_event_payload - label_links: @@ -32,18 +33,22 @@ tree: - :issue_assignees - :zoom_meetings - :sentry_issue + - :award_emoji - snippets: - :award_emoji - notes: - :author + - :award_emoji - releases: - :links - project_members: - :user - merge_requests: - :metrics + - :award_emoji - notes: - :author + - :award_emoji - events: - :push_event_payload - :suggestions diff --git a/lib/sentry/client/issue.rb b/lib/sentry/client/issue.rb index eb5b32289ba..b3b3776624b 100644 --- a/lib/sentry/client/issue.rb +++ b/lib/sentry/client/issue.rb @@ -143,7 +143,7 @@ module Sentry end def map_to_detailed_error(issue) - Gitlab::ErrorTracking::DetailedError.new( + Gitlab::ErrorTracking::DetailedError.new({ id: issue.fetch('id'), first_seen: issue.fetch('firstSeen', nil), last_seen: issue.fetch('lastSeen', nil), @@ -159,15 +159,16 @@ module Sentry short_id: issue.fetch('shortId', nil), status: issue.fetch('status', nil), frequency: issue.dig('stats', '24h'), + gitlab_issue: parse_gitlab_issue(issue.fetch('pluginIssues', nil)), project_id: issue.dig('project', 'id'), project_name: issue.dig('project', 'name'), project_slug: issue.dig('project', 'slug'), - gitlab_issue: parse_gitlab_issue(issue.fetch('pluginIssues', nil)), first_release_last_commit: issue.dig('firstRelease', 'lastCommit'), - last_release_last_commit: issue.dig('lastRelease', 'lastCommit'), first_release_short_version: issue.dig('firstRelease', 'shortVersion'), + first_release_version: issue.dig('firstRelease', 'version'), + last_release_last_commit: issue.dig('lastRelease', 'lastCommit'), last_release_short_version: issue.dig('lastRelease', 'shortVersion') - ) + }) end def extract_tags(issue) |