diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-09 12:09:24 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-04-09 12:09:24 +0000 |
commit | a9ced7da447785c57477b3d8dbccc73a78cface1 (patch) | |
tree | 5179d27ab9d801748ee4ed1c64c985974e799812 /lib/gitlab | |
parent | ad0265eead72a624ce7a020847db4f0f0c877e57 (diff) | |
download | gitlab-ce-a9ced7da447785c57477b3d8dbccc73a78cface1.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab')
-rw-r--r-- | lib/gitlab/application_rate_limiter.rb | 4 | ||||
-rw-r--r-- | lib/gitlab/background_migration/populate_canonical_emails.rb | 28 | ||||
-rw-r--r-- | lib/gitlab/grafana_embed_usage_data.rb | 16 | ||||
-rw-r--r-- | lib/gitlab/jira_import/base_importer.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/usage_data.rb | 10 |
5 files changed, 41 insertions, 19 deletions
diff --git a/lib/gitlab/application_rate_limiter.rb b/lib/gitlab/application_rate_limiter.rb index 211c59fe841..c1066d8fa62 100644 --- a/lib/gitlab/application_rate_limiter.rb +++ b/lib/gitlab/application_rate_limiter.rb @@ -25,7 +25,9 @@ module Gitlab project_generate_new_export: { threshold: 1, interval: 5.minutes }, project_import: { threshold: 30, interval: 5.minutes }, play_pipeline_schedule: { threshold: 1, interval: 1.minute }, - show_raw_controller: { threshold: -> { Gitlab::CurrentSettings.current_application_settings.raw_blob_request_limit }, interval: 1.minute } + show_raw_controller: { threshold: -> { Gitlab::CurrentSettings.current_application_settings.raw_blob_request_limit }, interval: 1.minute }, + group_export: { threshold: 1, interval: 5.minutes }, + group_download_export: { threshold: 10, interval: 10.minutes } }.freeze end diff --git a/lib/gitlab/background_migration/populate_canonical_emails.rb b/lib/gitlab/background_migration/populate_canonical_emails.rb new file mode 100644 index 00000000000..052e75c5655 --- /dev/null +++ b/lib/gitlab/background_migration/populate_canonical_emails.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +module Gitlab + module BackgroundMigration + # Class to populate new rows of UserCanonicalEmail based on existing email addresses + class PopulateCanonicalEmails + def perform(start_id, stop_id) + ActiveRecord::Base.connection.execute <<~SQL + INSERT INTO + user_canonical_emails ( + user_id, + canonical_email, + created_at, + updated_at + ) + SELECT users.id AS user_id, + concat(translate(split_part(split_part(users.email, '@', 1), '+', 1), '.', ''), '@gmail.com') AS canonical_email, + NOW() AS created_at, + NOW() AS updated_at + FROM users + WHERE users.email ILIKE '%@gmail.com' + AND users.id BETWEEN #{start_id} AND #{stop_id} + ON CONFLICT DO NOTHING; + SQL + end + end + end +end diff --git a/lib/gitlab/grafana_embed_usage_data.rb b/lib/gitlab/grafana_embed_usage_data.rb deleted file mode 100644 index 78a87623e1f..00000000000 --- a/lib/gitlab/grafana_embed_usage_data.rb +++ /dev/null @@ -1,16 +0,0 @@ -# frozen_string_literal: true - -module Gitlab - class GrafanaEmbedUsageData - class << self - def issue_count - # rubocop:disable CodeReuse/ActiveRecord - Issue.joins('JOIN grafana_integrations USING (project_id)') - .where("issues.description LIKE '%' || grafana_integrations.grafana_url || '%'") - .where(grafana_integrations: { enabled: true }) - .count - # rubocop:enable CodeReuse/ActiveRecord - end - end - end -end diff --git a/lib/gitlab/jira_import/base_importer.rb b/lib/gitlab/jira_import/base_importer.rb index 24158b8e734..afb443020b7 100644 --- a/lib/gitlab/jira_import/base_importer.rb +++ b/lib/gitlab/jira_import/base_importer.rb @@ -9,7 +9,7 @@ module Gitlab raise Projects::ImportService::Error, _('Jira import feature is disabled.') unless Feature.enabled?(:jira_issue_import, project) raise Projects::ImportService::Error, _('Jira integration not configured.') unless project.jira_service&.active? - @jira_project_key = project&.import_data&.becomes(JiraImportData)&.current_project&.key + @jira_project_key = project.latest_jira_import&.jira_project_key raise Projects::ImportService::Error, _('Unable to find Jira project to import data from.') unless @jira_project_key @project = project diff --git a/lib/gitlab/usage_data.rb b/lib/gitlab/usage_data.rb index 6333e7923c6..6c98f8f5585 100644 --- a/lib/gitlab/usage_data.rb +++ b/lib/gitlab/usage_data.rb @@ -90,7 +90,7 @@ module Gitlab issues_created_from_gitlab_error_tracking_ui: count(SentryIssue), issues_with_associated_zoom_link: count(ZoomMeeting.added_to_issue), issues_using_zoom_quick_actions: distinct_count(ZoomMeeting, :issue_id), - issues_with_embedded_grafana_charts_approx: ::Gitlab::GrafanaEmbedUsageData.issue_count, + issues_with_embedded_grafana_charts_approx: grafana_embed_usage_data, incident_issues: count(::Issue.authored(::User.alert_bot)), keys: count(Key), label_lists: count(List.label), @@ -133,6 +133,14 @@ module Gitlab { avg_cycle_analytics: {} } end + # rubocop:disable CodeReuse/ActiveRecord + def grafana_embed_usage_data + count(Issue.joins('JOIN grafana_integrations USING (project_id)') + .where("issues.description LIKE '%' || grafana_integrations.grafana_url || '%'") + .where(grafana_integrations: { enabled: true })) + end + # rubocop: enable CodeReuse/ActiveRecord + def features_usage_data features_usage_data_ce end |