Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-03-04 09:12:26 +00:00
parent 5a18614e48
commit 6a65a78125
77 changed files with 127 additions and 137 deletions

View File

@ -67,7 +67,7 @@ review-build-cng:
GITLAB_IMAGE_REPOSITORY: "registry.gitlab.com/gitlab-org/build/cng-mirror"
GITLAB_IMAGE_SUFFIX: "ee"
GITLAB_REVIEW_APP_BASE_CONFIG_FILE: "scripts/review_apps/base-config.yaml"
GITLAB_HELM_CHART_REF: "c91feed6983b24a1b0dbacaf5050ca5c59af3d46" # 7.8.0: https://gitlab.com/gitlab-org/charts/gitlab/-/commit/c91feed6983b24a1b0dbacaf5050ca5c59af3d46
GITLAB_HELM_CHART_REF: "1ec3db1320cfe5a5e96881e53b92a0644aaa149e" # 7.9.1: https://gitlab.com/gitlab-org/charts/gitlab/-/commit/1ec3db1320cfe5a5e96881e53b92a0644aaa149e
environment:
name: review/${CI_COMMIT_REF_SLUG}${SCHEDULE_TYPE} # No separator for SCHEDULE_TYPE so it's compatible as before and looks nice without it
url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}

View File

@ -98,7 +98,6 @@ Database/AvoidUsingPluckWithoutLimit:
- 'ee/app/finders/namespaces/free_user_cap/users_without_added_members_finder.rb'
- 'ee/app/models/ai/ai_resource/concerns/noteable.rb'
- 'ee/app/models/allowed_email_domain.rb'
- 'ee/app/models/analytics/issues_analytics.rb'
- 'ee/app/models/approval_wrapped_rule.rb'
- 'ee/app/models/concerns/audit_events/streaming/streamable_event_type_filter.rb'
- 'ee/app/models/concerns/ee/ci/artifactable.rb'

View File

@ -10,7 +10,6 @@ Performance/FlatMap:
- 'ee/app/services/elastic/process_bookkeeping_service.rb'
- 'ee/lib/elastic/latest/issue_class_proxy.rb'
- 'ee/spec/lib/elastic/latest/user_class_proxy_spec.rb'
- 'ee/spec/models/analytics/issues_analytics_spec.rb'
- 'ee/spec/requests/api/members_spec.rb'
- 'ee/spec/support/helpers/license_scanning_report_helpers.rb'
- 'ee/spec/support/shared_examples/finders/security/findings_finder_shared_examples.rb'

View File

@ -74,7 +74,6 @@ Performance/MapCompact:
- 'ee/lib/gitlab/ci/reports/license_scanning/report.rb'
- 'ee/lib/gitlab/ci/reports/metrics/reports_comparer.rb'
- 'ee/lib/gitlab/search/aggregation_parser.rb'
- 'ee/spec/models/analytics/issues_analytics_spec.rb'
- 'ee/spec/models/ee/member_spec.rb'
- 'ee/spec/requests/api/audit_events_spec.rb'
- 'ee/spec/requests/api/search_spec.rb'

View File

@ -917,7 +917,6 @@ RSpec/FeatureCategory:
- 'ee/spec/models/analytics/cycle_analytics/aggregation_context_spec.rb'
- 'ee/spec/models/analytics/devops_adoption/enabled_namespace_spec.rb'
- 'ee/spec/models/analytics/devops_adoption/snapshot_spec.rb'
- 'ee/spec/models/analytics/issues_analytics_spec.rb'
- 'ee/spec/models/analytics/language_trend/repository_language_spec.rb'
- 'ee/spec/models/app_sec/fuzzing/api/ci_configuration_spec.rb'
- 'ee/spec/models/app_sec/fuzzing/coverage/corpus_spec.rb'

View File

@ -540,7 +540,6 @@ RSpec/NamedSubject:
- 'ee/spec/models/analytics/cycle_analytics/group_level_spec.rb'
- 'ee/spec/models/analytics/forecasting/deployment_frequency_forecast_spec.rb'
- 'ee/spec/models/analytics/forecasting/forecast_spec.rb'
- 'ee/spec/models/analytics/issues_analytics_spec.rb'
- 'ee/spec/models/application_setting_spec.rb'
- 'ee/spec/models/approval_merge_request_rule_spec.rb'
- 'ee/spec/models/approval_project_rule_spec.rb'

View File

@ -430,7 +430,6 @@ Style/ClassAndModuleChildren:
- 'ee/app/models/analytics/devops_adoption.rb'
- 'ee/app/models/analytics/devops_adoption/enabled_namespace.rb'
- 'ee/app/models/analytics/devops_adoption/snapshot.rb'
- 'ee/app/models/analytics/issues_analytics.rb'
- 'ee/app/models/analytics/language_trend.rb'
- 'ee/app/models/analytics/language_trend/repository_language.rb'
- 'ee/app/models/concerns/geo/replicable_registry.rb'

View File

@ -81,6 +81,9 @@ export const initGitlabWebIDE = async (el) => {
userPreferences: el.dataset.userPreferencesPath,
signIn: el.dataset.signInPath,
},
featureFlags: {
settingsSync: gon.features.webIdeSettingsSync || false,
},
editorFont,
codeSuggestionsEnabled,
handleTracking,

View File

@ -12,6 +12,7 @@ class IdeController < ApplicationController
before_action do
push_frontend_feature_flag(:build_service_proxy)
push_frontend_feature_flag(:reject_unsigned_commits_by_gitlab)
push_frontend_feature_flag(:web_ide_settings_sync, current_user)
end
feature_category :web_ide

View File

@ -570,6 +570,15 @@
:weight: 1
:idempotent: true
:tags: []
- :name: cronjob:gitlab_performance_bar_stats
:worker_name: GitlabPerformanceBarStatsWorker
:feature_category: :metrics
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
:idempotent: true
:tags: []
- :name: cronjob:gitlab_service_ping
:worker_name: GitlabServicePingWorker
:feature_category: :service_ping
@ -3126,15 +3135,6 @@
:weight: 1
:idempotent: false
:tags: []
- :name: gitlab_performance_bar_stats
:worker_name: GitlabPerformanceBarStatsWorker
:feature_category: :metrics
:has_external_dependencies: false
:urgency: :low
:resource_boundary: :cpu
:weight: 1
:idempotent: true
:tags: []
- :name: google_cloud_create_cloudsql_instance
:worker_name: GoogleCloud::CreateCloudsqlInstanceWorker
:feature_category: :not_owned

View File

@ -2,24 +2,23 @@
class GitlabPerformanceBarStatsWorker
include ApplicationWorker
include CronjobQueue # rubocop:disable Scalability/CronWorkerContext -- context is not needed
data_consistency :always
worker_resource_boundary :cpu
sidekiq_options retry: 3
LEASE_KEY = 'gitlab:performance_bar_stats'
LEASE_TIMEOUT = 600
WORKER_DELAY = 120
STATS_KEY = 'performance_bar_stats:pending_request_ids'
STATS_KEY_EXPIRE = 30.minutes.to_i
feature_category :metrics
idempotent!
def perform(lease_uuid)
# _uuid is kept for backward compatibility, but it's not used anymore
def perform(_uuid = nil)
with_redis do |redis|
request_ids = fetch_request_ids(redis, lease_uuid)
request_ids = fetch_request_ids(redis)
stats = Gitlab::PerformanceBar::Stats.new(redis)
request_ids.each do |id|
@ -34,10 +33,9 @@ class GitlabPerformanceBarStatsWorker
Gitlab::Redis::Cache.with(&block) # rubocop:disable CodeReuse/ActiveRecord
end
def fetch_request_ids(redis, lease_uuid)
def fetch_request_ids(redis)
ids = redis.smembers(STATS_KEY)
redis.del(STATS_KEY)
Gitlab::ExclusiveLease.cancel(LEASE_KEY, lease_uuid)
ids
end

View File

@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134223
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/428258
milestone: '16.5'
type: development
group: group::purchase
group: group::subscription management
default_enabled: false

View File

@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134034
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/428574
milestone: '16.5'
type: development
group: group::purchase
group: group::subscription management
default_enabled: false

View File

@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/136858
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/431365
milestone: '16.7'
type: development
group: group::purchase
group: group::subscription management
default_enabled: false

View File

@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/126964
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/419175
milestone: '16.3'
type: development
group: group::purchase
group: group::subscription management
default_enabled: false

View File

@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79644/
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/350265
milestone: '14.8'
type: development
group: group::purchase
group: group::subscription management
default_enabled: false

View File

@ -4,5 +4,5 @@ introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/138490
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/432983
milestone: '16.7'
type: development
group: group::purchase
group: group::subscription management
default_enabled: true

View File

@ -0,0 +1,9 @@
---
name: web_ide_settings_sync
feature_issue_url: https://gitlab.com/gitlab-org/gitlab-web-ide/-/issues/282
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/146061
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/443652
milestone: '16.10'
group: group::ide
type: gitlab_com_derisk
default_enabled: false

View File

@ -709,6 +709,9 @@ Settings.cron_jobs['ci_catalog_resources_process_sync_events_worker']['job_class
Settings.cron_jobs['namespaces_process_outdated_namespace_descendants_cron_worker'] ||= {}
Settings.cron_jobs['namespaces_process_outdated_namespace_descendants_cron_worker']['cron'] ||= '*/1 * * * *'
Settings.cron_jobs['namespaces_process_outdated_namespace_descendants_cron_worker']['job_class'] = 'Namespaces::ProcessOutdatedNamespaceDescendantsCronWorker'
Settings.cron_jobs['performance_bar_stats'] ||= {}
Settings.cron_jobs['performance_bar_stats']['cron'] ||= '*/2 * * * *'
Settings.cron_jobs['performance_bar_stats']['job_class'] = 'GitlabPerformanceBarStatsWorker'
Gitlab.ee do
Settings.cron_jobs['analytics_devops_adoption_create_all_snapshots_worker'] ||= {}

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_serverless_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: removed
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_go_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_scala_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_latex_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_android_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_indeni_cloudrail_monthl
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_deploy_ecs_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_aws_cf_provision_and_de
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_gradle_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_chef_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_terraform_latest_monthl
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_swift_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_dart_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_docker_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_julia_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_npm_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_dotnet_core_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_5_minute_production_app
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_ruby_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_android_latest_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: "14.3"

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_liquibase_monthly
description: ""
product_section: ""
product_stage: ""
product_group: ""
product_group: pipeline_authoring
value_type: number
status: active
milestone: "14.9"

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_matlab_monthly
description: ""
product_section: ""
product_stage: ""
product_group: ""
product_group: pipeline_authoring
value_type: number
status: active
milestone: "14.10"

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_themekit_monthly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: "14.10"

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_serverless_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: removed
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_go_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_scala_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_latex_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_android_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_indeni_cloudrail_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_deploy_ecs_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_aws_cf_provision_and_de
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_gradle_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_chef_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_terraform_latest_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_swift_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_dart_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_docker_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_julia_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_npm_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_dotnet_core_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_5_minute_production_app
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_ruby_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: '14.3'

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_android_latest_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: "14.3"

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_liquibase_weekly
description: ""
product_section: ""
product_stage: ""
product_group: ""
product_group: pipeline_authoring
value_type: number
status: active
milestone: "14.9"

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_matlab_weekly
description: ""
product_section: ""
product_stage: ""
product_group: ""
product_group: pipeline_authoring
value_type: number
status: active
milestone: "14.10"

View File

@ -3,7 +3,7 @@ key_path: redis_hll_counters.ci_templates.p_ci_templates_themekit_weekly
description: ''
product_section: ''
product_stage: ''
product_group: ''
product_group: pipeline_authoring
value_type: number
status: active
milestone: "14.10"

View File

@ -333,8 +333,6 @@
- 1
- - github_importer
- 1
- - gitlab_performance_bar_stats
- 1
- - gitlab_subscriptions_add_on_purchases_bulk_refresh_user_assignments
- 1
- - gitlab_subscriptions_add_on_purchases_cleanup_user_add_on_assignment

View File

@ -15,7 +15,7 @@ BLUEPRINT_LONG_MESSAGE = <<~MSG
#{BLUEPRINT_SHORT_MESSAGE}
Following files, that may require the additional review, have been changed:
The following files, which might require the additional review, have been changed:
#{helper.markdown_list(blueprint_changes.to_set)}
MSG

View File

@ -13,8 +13,9 @@ docs_paths_to_review = helper.changes_by_category[:docs]
# Some docs do not need a review from a Technical Writer.
# In these cases, we'll output a message specific to the section.
sections_with_no_tw_review = {
'doc/solutions' => [],
'doc/development' => []
'doc/architecture' => [],
'doc/development' => [],
'doc/solutions' => []
}.freeze
# One exception to the exceptions above: Technical Writing docs should get a TW review.
@ -36,12 +37,12 @@ def add_labels(labels)
helper.labels_to_add.concat(%w[documentation type::maintenance maintenance::refactor] + labels)
end
SOLUTIONS_MESSAGE = <<~MSG
This MR contains docs in the /solutions directory and should be reviewed by a Solutions Architect approver. You do not need tech writer review.
ANY_MAINTAINER_CAN_MERGE_MESSAGE = <<~MSG
This MR contains docs in the /%<directory>s directory, but any Maintainer (other than the author) can merge. You do not need tech writer review.
MSG
DEVELOPMENT_MESSAGE = <<~MSG
This MR contains docs in the /development directory. Any Maintainer, other than the author, can merge. You do not need tech writer review.
SOLUTIONS_MESSAGE = <<~MSG
This MR contains docs in the /doc/solutions directory and should be reviewed by a Solutions Architect approver. You do not need tech writer review.
MSG
# For regular pages, prompt for a TW review
@ -76,14 +77,18 @@ MSG
# Output messages
warn(DOCUMENTATION_UPDATE_MISSING) if docs_paths_to_review.empty? && feature_mr?
if sections_with_no_tw_review["doc/solutions"].any?
add_labels(SOLUTIONS_LABELS)
message(SOLUTIONS_MESSAGE)
if sections_with_no_tw_review["doc/architecture"].any?
message(format(ANY_MAINTAINER_CAN_MERGE_MESSAGE, directory: 'doc/architecture'))
end
if sections_with_no_tw_review["doc/development"].any?
add_labels(DEVELOPMENT_LABELS)
message(DEVELOPMENT_MESSAGE)
message(format(ANY_MAINTAINER_CAN_MERGE_MESSAGE, directory: 'doc/development'))
end
if sections_with_no_tw_review["doc/solutions"].any?
add_labels(SOLUTIONS_LABELS)
message(SOLUTIONS_MESSAGE)
end
unless docs_paths_to_review.empty?

View File

@ -7,4 +7,4 @@ feature_categories:
- subscription_management
classes:
- GitlabSubscriptions::AddOn
gitlab_schema: gitlab_main
gitlab_schema: gitlab_main_clusterwide

View File

@ -129,13 +129,18 @@ endpoint, while several features that summarize issues or merge
requests could use the same endpoint but make the distinction on what
information is provided in the payload.
The end goal is to build an API that exposes AI for building
features without having to touch the AI-gateway. This is analogous to
how we built Gitaly, adding features to Gitaly where it was needed,
and reusing existing endpoints when that was possible. We had some
cost to pay up-front in the case where we needed to implement a new
endpoint (RPC), but pays off in the long run when most of the required
functionality is implemented.
Our goal is to minimize code that we can't update on a customer's behalf, which means avoiding hard-coding AI-related logic in the GitLab monolith codebase:
- We want to minimize the time required for customers to adopt our latest features, and
- We want to retain the flexibility to make changes in our product without breaking support for a long-tail of older instances.
- We want to be able to serve all GitLab distributions (.com SaaS, Self-managed, and Dedicated) with minimal complexity.
- We want to isolate AI capabilities to reduce risk and have a unified control plane.
- We want to provide a unified implementation that can support our "best-in-class" multi-model ensemble approach allowing us to easily support many AI models and AI vendors.
- We want a single point for controlling and measuring cost.
- As much as possible, we want to track metrics (usage statistics, failures to respond, usage pattern, question categories, etc.) in the gateway rather than distributed across many points. (Of course some metrics can only be captured on the client side.)
Having the business logic in GitLab-Rails requires customers to upgrade their GitLab instances, which affects the first point. Some of the on-premises users can't upgrade their instances immediately due to their company policy.
For example, if we had a bug in a prompt template in GitLab-Rails and fixed it in 16.6, and customers are using 16.5 and the next upgrade is scheduled in 3 months, they have to use the buggy feature for 3 months.
**This does not mean that prompts need to be built inside the
AI-gateway.** But if prompts are part of the payload to a single

View File

@ -16,39 +16,27 @@ module Gitlab
# schedules a job which parses peek profile data and adds them
# to a structured log
# rubocop:disable Gitlab/ModuleWithInstanceVariables
# rubocop:disable CodeReuse/ActiveRecord -- needed because of `.exists?` method
# usage (which is actually not AR method)
def enqueue_stats_job(request_id)
return unless Feature.enabled?(:performance_bar_stats, type: :ops)
cache_existed = @client.exists?(GitlabPerformanceBarStatsWorker::STATS_KEY)
@client.sadd?(GitlabPerformanceBarStatsWorker::STATS_KEY, request_id)
# We skip transaction check as the transaction check fails the system spec for
# spec/features/user_can_display_performance_bar_spec.rb.
# See issue: https://gitlab.com/gitlab-org/gitlab/-/issues/441535
uuid = Gitlab::ExclusiveLease.skipping_transaction_check do
Gitlab::ExclusiveLease.new(
GitlabPerformanceBarStatsWorker::LEASE_KEY,
timeout: GitlabPerformanceBarStatsWorker::LEASE_TIMEOUT
).try_obtain
end
return unless uuid
return if cache_existed
# stats key should be periodically processed and deleted by
# GitlabPerformanceBarStatsWorker but if it doesn't happen for
# some reason, we set expiration for the stats key to avoid
# keeping millions of request ids which would be already expired
# anyway
# rubocop:disable Gitlab/ModuleWithInstanceVariables
@client.expire(
GitlabPerformanceBarStatsWorker::STATS_KEY,
GitlabPerformanceBarStatsWorker::STATS_KEY_EXPIRE
)
GitlabPerformanceBarStatsWorker.perform_in(
GitlabPerformanceBarStatsWorker::WORKER_DELAY,
uuid
)
end
# rubocop:enable CodeReuse/ActiveRecord
# rubocop:enable Gitlab/ModuleWithInstanceVariables
end
end

View File

@ -26,7 +26,7 @@ gem 'rspec-parameterized', '~> 1.0.0'
gem 'octokit', '~> 8.1.0'
gem "faraday-retry", "~> 2.2"
gem 'zeitwerk', '~> 2.6', '>= 2.6.13'
gem 'influxdb-client', '~> 3.0'
gem 'influxdb-client', '~> 3.1'
gem 'terminal-table', '~> 3.0.2', require: false
gem 'slack-notifier', '~> 2.4', require: false
gem 'fog-google', '~> 1.19', require: false

View File

@ -185,7 +185,7 @@ GEM
httpclient (2.8.3)
i18n (1.14.1)
concurrent-ruby (~> 1.0)
influxdb-client (3.0.0)
influxdb-client (3.1.0)
jwt (2.5.0)
knapsack (4.0.0)
rake
@ -361,7 +361,7 @@ DEPENDENCIES
gitlab-qa (~> 14, >= 14.2.1)
gitlab-utils!
gitlab_quality-test_tooling (~> 1.11.0)
influxdb-client (~> 3.0)
influxdb-client (~> 3.1)
knapsack (~> 4.0)
nokogiri (~> 1.16, >= 1.16.2)
octokit (~> 8.1.0)

View File

@ -87,6 +87,7 @@ describe('ide/init_gitlab_web_ide', () => {
beforeEach(() => {
gon.current_username = TEST_USERNAME;
gon.features = { webIdeSettingsSync: true };
process.env.GITLAB_WEB_IDE_PUBLIC_PATH = TEST_GITLAB_WEB_IDE_PUBLIC_PATH;
confirmAction.mockImplementation(
@ -134,6 +135,9 @@ describe('ide/init_gitlab_web_ide', () => {
feedbackIssue: GITLAB_WEB_IDE_FEEDBACK_ISSUE,
signIn: TEST_SIGN_IN_PATH,
},
featureFlags: {
settingsSync: gon.features.webIdeSettingsSync,
},
editorFont: {
fallbackFontFamily: 'monospace',
fontFaces: [

View File

@ -2,7 +2,7 @@
require 'spec_helper'
RSpec.describe Gitlab::PerformanceBar::RedisAdapterWhenPeekEnabled do
RSpec.describe Gitlab::PerformanceBar::RedisAdapterWhenPeekEnabled, feature_category: :metrics do
include ExclusiveLeaseHelpers
let(:peek_adapter) do
@ -28,8 +28,7 @@ RSpec.describe Gitlab::PerformanceBar::RedisAdapterWhenPeekEnabled do
end
it 'stores request id and enqueues stats job' do
expect_to_obtain_exclusive_lease(GitlabPerformanceBarStatsWorker::LEASE_KEY, uuid)
expect(GitlabPerformanceBarStatsWorker).to receive(:perform_in).with(GitlabPerformanceBarStatsWorker::WORKER_DELAY, uuid)
expect(client).to receive(:exists?).with(GitlabPerformanceBarStatsWorker::STATS_KEY).and_return(false)
expect(client).to receive(:sadd?).with(GitlabPerformanceBarStatsWorker::STATS_KEY, uuid)
expect(client).to receive(:expire).with(GitlabPerformanceBarStatsWorker::STATS_KEY, GitlabPerformanceBarStatsWorker::STATS_KEY_EXPIRE)
@ -42,24 +41,10 @@ RSpec.describe Gitlab::PerformanceBar::RedisAdapterWhenPeekEnabled do
end
it 'ignores stats processing for the request' do
expect(GitlabPerformanceBarStatsWorker).not_to receive(:perform_in)
expect(client).not_to receive(:sadd)
peek_adapter.new(client).save('foo')
end
end
context 'when exclusive lease has been already taken' do
before do
stub_exclusive_lease_taken(GitlabPerformanceBarStatsWorker::LEASE_KEY)
end
it 'stores request id but does not enqueue any job' do
expect(GitlabPerformanceBarStatsWorker).not_to receive(:perform_in)
expect(client).to receive(:sadd?).with(GitlabPerformanceBarStatsWorker::STATS_KEY, uuid)
peek_adapter.new(client).save('foo')
end
end
end
end

View File

@ -1487,7 +1487,6 @@
- './ee/spec/models/analytics/cycle_analytics/group_level_spec.rb'
- './ee/spec/models/analytics/devops_adoption/enabled_namespace_spec.rb'
- './ee/spec/models/analytics/devops_adoption/snapshot_spec.rb'
- './ee/spec/models/analytics/issues_analytics_spec.rb'
- './ee/spec/models/analytics/language_trend/repository_language_spec.rb'
- './ee/spec/models/application_setting_spec.rb'
- './ee/spec/models/approval_merge_request_rule_spec.rb'

View File

@ -9,11 +9,9 @@ RSpec.describe GitlabPerformanceBarStatsWorker, feature_category: :metrics do
describe '#perform' do
let(:redis) { double(Gitlab::Redis::SharedState) }
let(:uuid) { 1 }
before do
expect(Gitlab::Redis::Cache).to receive(:with).and_yield(redis)
expect_to_cancel_exclusive_lease(GitlabPerformanceBarStatsWorker::LEASE_KEY, uuid)
end
it 'fetches list of request ids and processes them' do
@ -24,7 +22,7 @@ RSpec.describe GitlabPerformanceBarStatsWorker, feature_category: :metrics do
expect(stats).to receive(:process).with(2)
end
worker.perform(uuid)
worker.perform
end
end
end