Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-10 21:07:43 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-10 21:07:43 +0300
commit6f0f893bd87535b61e0ecb1ce069eaa7fcb9e5be (patch)
tree8af92b29c838e9af2fd70f9a4a2314a08f4af922 /lib
parent8b1228b0d409d7751f01d9fb72ebfbbf62399486 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib')
-rw-r--r--lib/api/releases.rb19
-rw-r--r--lib/gitlab/background_migration/activate_prometheus_services_for_shared_cluster_applications.rb52
-rw-r--r--lib/gitlab/error_tracking/detailed_error.rb4
-rw-r--r--lib/gitlab/import_export/import_export.yml5
-rw-r--r--lib/sentry/client/issue.rb9
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)