Add latest changes from gitlab-org/gitlab@master
This commit is contained in:
parent
5a18614e48
commit
6a65a78125
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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'] ||= {}
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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?
|
||||
|
|
|
|||
|
|
@ -7,4 +7,4 @@ feature_categories:
|
|||
- subscription_management
|
||||
classes:
|
||||
- GitlabSubscriptions::AddOn
|
||||
gitlab_schema: gitlab_main
|
||||
gitlab_schema: gitlab_main_clusterwide
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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: [
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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'
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue