summaryrefslogtreecommitdiff
path: root/lib/gitlab
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-04-09 12:09:24 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-04-09 12:09:24 +0000
commita9ced7da447785c57477b3d8dbccc73a78cface1 (patch)
tree5179d27ab9d801748ee4ed1c64c985974e799812 /lib/gitlab
parentad0265eead72a624ce7a020847db4f0f0c877e57 (diff)
downloadgitlab-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.rb4
-rw-r--r--lib/gitlab/background_migration/populate_canonical_emails.rb28
-rw-r--r--lib/gitlab/grafana_embed_usage_data.rb16
-rw-r--r--lib/gitlab/jira_import/base_importer.rb2
-rw-r--r--lib/gitlab/usage_data.rb10
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