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
diff options
context:
space:
mode:
-rw-r--r--.gitlab/CODEOWNERS16
-rw-r--r--.gitlab/ci/rules.gitlab-ci.yml2
-rw-r--r--Dangerfile20
-rw-r--r--Gemfile2
-rw-r--r--Gemfile.lock6
-rw-r--r--app/assets/javascripts/ide/lib/themes/monokai.js2
-rw-r--r--app/assets/javascripts/ide/lib/themes/solarized_dark.js2
-rw-r--r--app/assets/javascripts/ide/lib/themes/solarized_light.js2
-rw-r--r--app/assets/javascripts/runner/components/runner_list.vue11
-rw-r--r--app/assets/stylesheets/utilities.scss7
-rw-r--r--app/graphql/types/ci/job_type.rb14
-rw-r--r--config/events/202108302307_security__ci_configuration__sast_create_service_create.yml21
-rw-r--r--config/events/202108302307_security__ci_configuration__sast_create_service_update.yml21
-rw-r--r--config/events/202108302307_security__ci_configuration__secret_detection_create_service_create.yml21
-rw-r--r--config/events/202108302307_security__ci_configuration__secret_detection_create_service_update.yml21
-rw-r--r--config/events/202109151015_api__group_container_repositories_list_repositories.yml (renamed from config/events/api__group_container_repositories_list_repositories.yml)5
-rw-r--r--config/events/202109151015_api__project_container_repositories_delete_repository.yml (renamed from config/events/api__project_container_repositories_delete_repository.yml)5
-rw-r--r--config/events/202109151015_api__project_container_repositories_delete_tag.yml (renamed from config/events/api__project_container_repositories_delete_tag.yml)5
-rw-r--r--config/events/202109151015_api__project_container_repositories_delete_tag_bulk.yml (renamed from config/events/api__project_container_repositories_delete_tag_bulk.yml)5
-rw-r--r--config/events/202109151015_api__project_container_repositories_list_repositories.yml (renamed from config/events/api__project_container_repositories_list_repositories.yml)5
-rw-r--r--config/events/202109151015_api__project_container_repositories_list_tags.yml (renamed from config/events/api__project_container_repositories_list_tags.yml)5
-rw-r--r--config/events/202109151015_api__pypi_packages_list_package.yml (renamed from config/events/api__pypi_packages_list_package.yml)5
-rw-r--r--config/events/202109151015_cluster_applications_cluster_application_name.yml (renamed from config/events/cluster_applications_cluster_application_name.yml)5
-rw-r--r--config/events/202109151015_cluster_services_prometheus_disabled_manual_prometheus.yml (renamed from config/events/cluster_services_prometheus_disabled_manual_prometheus.yml)3
-rw-r--r--config/events/202109151015_cluster_services_prometheus_enabled_manual_prometheus.yml (renamed from config/events/cluster_services_prometheus_enabled_manual_prometheus.yml)3
-rw-r--r--config/events/202109151015_container_registry_notification_create_repository.yml (renamed from config/events/container_registry_notification_create_repository.yml)5
-rw-r--r--config/events/202109151015_container_registry_notification_delete_repository.yml (renamed from config/events/container_registry_notification_delete_repository.yml)5
-rw-r--r--config/events/202109151015_container_registry_notification_delete_tag.yml (renamed from config/events/container_registry_notification_delete_tag.yml)5
-rw-r--r--config/events/202109151015_container_registry_notification_push_repository.yml (renamed from config/events/container_registry_notification_push_repository.yml)5
-rw-r--r--config/events/202109151015_container_registry_notification_push_tag.yml (renamed from config/events/container_registry_notification_push_tag.yml)5
-rw-r--r--config/events/202109151015_delete_repository_container.yml (renamed from config/events/delete_repository_container.yml)5
-rw-r--r--config/events/202109151015_delete_tag_bulk_tag.yml (renamed from config/events/delete_tag_bulk_tag.yml)5
-rw-r--r--config/events/202109151015_experiment_name_initial_write.yml (renamed from config/events/experiment_name_initial_write.yml)5
-rw-r--r--config/events/202109151015_experiment_name_write.yml (renamed from config/events/experiment_name_write.yml)5
-rw-r--r--config/events/202109151015_groups__email_campaigns_controller_click.yml (renamed from config/events/groups__email_campaigns_controller_click.yml)5
-rw-r--r--config/events/202109151015_groups__registry__repositories_controller_list_repositories.yml (renamed from config/events/groups__registry__repositories_controller_list_repositories.yml)5
-rw-r--r--config/events/202109151015_incident_management__zoom_integration_add_zoom_meeting.yml (renamed from config/events/incident_management__zoom_integration_add_zoom_meeting.yml)5
-rw-r--r--config/events/202109151015_incident_management__zoom_integration_remove_zoom_meeting.yml (renamed from config/events/incident_management__zoom_integration_remove_zoom_meeting.yml)5
-rw-r--r--config/events/202109151015_list_repositories_container.yml (renamed from config/events/list_repositories_container.yml)5
-rw-r--r--config/events/202109151015_notes__create_service_execute.yml (renamed from config/events/notes__create_service_execute.yml)5
-rw-r--r--config/events/202109151015_package_class_pull_package.yml (renamed from config/events/package_class_pull_package.yml)5
-rw-r--r--config/events/202109151015_package_class_push_package.yml (renamed from config/events/package_class_push_package.yml)5
-rw-r--r--config/events/202109151015_projects__registry__repositories_controller_delete_repository.yml (renamed from config/events/projects__registry__repositories_controller_delete_repository.yml)5
-rw-r--r--config/events/202109151015_projects__registry__repositories_controller_list_repositories.yml (renamed from config/events/projects__registry__repositories_controller_list_repositories.yml)5
-rw-r--r--config/events/202109151015_projects__registry__tags_controller_delete_tag.yml (renamed from config/events/projects__registry__tags_controller_delete_tag.yml)5
-rw-r--r--config/events/202109151015_projects__registry__tags_controller_delete_tag_bulk.yml (renamed from config/events/projects__registry__tags_controller_delete_tag_bulk.yml)5
-rw-r--r--config/events/202109151015_projects__registry__tags_controller_list_tags.yml (renamed from config/events/projects__registry__tags_controller_list_tags.yml)5
-rw-r--r--danger/ci_templates/Dangerfile2
-rw-r--r--danger/database/Dangerfile2
-rw-r--r--danger/documentation/Dangerfile2
-rw-r--r--danger/product_intelligence/Dangerfile2
-rw-r--r--danger/roulette/Dangerfile6
-rw-r--r--danger/specialization_labels/Dangerfile2
-rw-r--r--danger/specs/Dangerfile2
-rw-r--r--doc/administration/audit_events.md2
-rw-r--r--doc/administration/auth/ldap/index.md4
-rw-r--r--doc/administration/geo/replication/version_specific_updates.md18
-rw-r--r--doc/administration/geo/secondary_proxy/index.md2
-rw-r--r--doc/administration/instance_limits.md2
-rw-r--r--doc/administration/package_information/deprecation_policy.md26
-rw-r--r--doc/administration/repository_storage_types.md4
-rw-r--r--doc/api/graphql/reference/index.md2
-rw-r--r--doc/api/members.md6
-rw-r--r--doc/api/projects.md2
-rw-r--r--doc/ci/environments/protected_environments.md2
-rw-r--r--doc/ci/git_submodules.md2
-rw-r--r--doc/ci/pipelines/merge_trains.md2
-rw-r--r--doc/development/adding_database_indexes.md4
-rw-r--r--doc/development/contributing/merge_request_workflow.md2
-rw-r--r--doc/development/fe_guide/vue.md2
-rw-r--r--doc/development/fe_guide/vue3_migration.md2
-rw-r--r--doc/development/image_scaling.md4
-rw-r--r--doc/development/service_ping/implement.md2
-rw-r--r--doc/development/service_ping/index.md6
-rw-r--r--doc/development/sidekiq_style_guide.md2
-rw-r--r--doc/development/snowplow/implementation.md38
-rw-r--r--doc/development/testing_guide/img/review-app-parent-pipeline.pngbin136842 -> 42721 bytes
-rw-r--r--doc/integration/elasticsearch.md2
-rw-r--r--doc/integration/img/ding_talk_menu.pngbin66465 -> 22685 bytes
-rw-r--r--doc/integration/img/omniauth_providers_v_14_6.pngbin37256 -> 12165 bytes
-rw-r--r--doc/integration/jira/dvcs.md2
-rw-r--r--doc/security/webhooks.md2
-rw-r--r--doc/subscriptions/gitlab_com/index.md2
-rw-r--r--doc/topics/cron/index.md2
-rw-r--r--doc/update/deprecations.md2
-rw-r--r--doc/user/admin_area/index.md2
-rw-r--r--doc/user/analytics/img/product_analytics_commits_per_mr_v14_4.pngbin135480 -> 35894 bytes
-rw-r--r--doc/user/analytics/img/productivity_analytics_time_to_merge_v14_4.pngbin96144 -> 21953 bytes
-rw-r--r--doc/user/analytics/img/productivity_analytics_trendline_v14_4.pngbin47250 -> 13089 bytes
-rw-r--r--doc/user/analytics/index.md28
-rw-r--r--doc/user/analytics/productivity_analytics.md14
-rw-r--r--doc/user/application_security/api_fuzzing/index.md2
-rw-r--r--doc/user/application_security/dast/browser_based.md2
-rw-r--r--doc/user/application_security/dast/index.md2
-rw-r--r--doc/user/application_security/index.md2
-rw-r--r--doc/user/application_security/security_dashboard/img/pipeline_security_dashboard_v14_4.pngbin126412 -> 44152 bytes
-rw-r--r--doc/user/application_security/security_dashboard/index.md2
-rw-r--r--doc/user/clusters/agent/index.md2
-rw-r--r--doc/user/clusters/agent/install/index.md2
-rw-r--r--doc/user/compliance/license_compliance/img/policies_maintainer_edit_v14_3.pngbin25383 -> 26480 bytes
-rw-r--r--doc/user/compliance/license_compliance/index.md7
-rw-r--r--doc/user/group/devops_adoption/index.md16
-rw-r--r--doc/user/group/index.md2
-rw-r--r--doc/user/group/saml_sso/index.md6
-rw-r--r--doc/user/group/value_stream_analytics/index.md6
-rw-r--r--doc/user/img/award_emoji_select_v14_6.pngbin50200 -> 17252 bytes
-rw-r--r--doc/user/profile/index.md2
-rw-r--r--doc/user/project/integrations/img/webhook_testing.pngbin96374 -> 30732 bytes
-rw-r--r--doc/user/project/repository/gpg_signed_commits/index.md2
-rw-r--r--doc/user/project/repository/jupyter_notebooks/img/jupyter_notebook_diff_v14_5.pngbin249380 -> 71585 bytes
-rw-r--r--locale/gitlab.pot3
-rw-r--r--qa/qa/resource/project_deploy_token.rb (renamed from qa/qa/resource/deploy_token.rb)49
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/container_registry/container_registry_omnibus_spec.rb16
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb2
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb2
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/package_registry/maven_repository_spec.rb2
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb12
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_project_level_spec.rb12
-rw-r--r--qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb6
-rw-r--r--qa/spec/support/shared_contexts/packages_registry_shared_context.rb10
-rw-r--r--spec/factories/ci/pipelines.rb6
-rw-r--r--spec/graphql/types/ci/job_type_spec.rb2
-rw-r--r--spec/policies/namespaces/user_namespace_policy_spec.rb8
-rw-r--r--spec/requests/api/commit_statuses_spec.rb30
-rw-r--r--spec/requests/api/graphql/ci/jobs_spec.rb50
-rw-r--r--spec/support/database/cross-database-modification-allowlist.yml2
-rw-r--r--spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb22
-rw-r--r--spec/tooling/danger/project_helper_spec.rb105
-rw-r--r--spec/tooling/danger/specs_spec.rb2
-rw-r--r--spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb4
-rw-r--r--tooling/danger/changelog.rb6
-rw-r--r--tooling/danger/project_helper.rb23
132 files changed, 538 insertions, 425 deletions
diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS
index ed96b185ab2..5eb96d1addd 100644
--- a/.gitlab/CODEOWNERS
+++ b/.gitlab/CODEOWNERS
@@ -11,19 +11,19 @@
/doc/.markdownlint @marcel.amirault @eread @aqualls @cnorris
/doc/ @gl-docsteam
/doc/.vale/ @marcel.amirault @eread @aqualls @cnorris
-/doc/administration/geo/ @marcel.amirault
+/doc/administration/geo/ @axil
/doc/administration/gitaly/ @eread
/doc/administration/lfs/ @aqualls
/doc/administration/monitoring/ @ngaskill
-/doc/administration/operations/ @marcel.amirault @eread @marcia
+/doc/administration/operations/ @axil @eread @marcia
/doc/administration/packages/ @ngaskill
/doc/administration/pages/ @rdickenson @kpaizee
/doc/administration/postgresql/ @marcia
-/doc/administration/raketasks/ @marcel.amirault @eread
-/doc/administration/redis/ @marcel.amirault
-/doc/administration/reference_architectures/ @marcel.amirault
+/doc/administration/raketasks/ @axil @eread
+/doc/administration/redis/ @axil
+/doc/administration/reference_architectures/ @axil
/doc/administration/snippets/ @aqualls
-/doc/administration/troubleshooting @marcel.amirault @marcia @eread
+/doc/administration/troubleshooting @axil @marcia @eread
/doc/api/graphql/ @msedlakjakubowski @kpaizee
/doc/api/graphql/reference/ @kpaizee
/doc/api/group_activity_analytics.md @fneill
@@ -37,7 +37,7 @@
/doc/development/i18n/ @ngaskill
/doc/development/value_stream_analytics.md @fneill
/doc/gitlab-basics/ @aqualls
-/doc/install/ @marcel.amirault
+/doc/install/ @axil
/doc/operations/ @ngaskill @rdickenson
/doc/push_rules/ @aqualls
/doc/security/ @eread
@@ -45,7 +45,7 @@
/doc/subscriptions/ @sselhorn
/doc/topics/autodevops/ @marcia
/doc/topics/git/ @aqualls
-/doc/update/ @marcel.amirault @marcia
+/doc/update/ @axil @marcia
/doc/user/analytics/ @fneill @ngaskill
/doc/user/application_security/ @rdickenson
/doc/user/application_security/container_scanning/ @ngaskill
diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml
index 0d6c81c9624..ec28488fe05 100644
--- a/.gitlab/ci/rules.gitlab-ci.yml
+++ b/.gitlab/ci/rules.gitlab-ci.yml
@@ -1367,7 +1367,7 @@
- <<: *if-not-ee
when: never
- <<: *if-merge-request-labels-skip-undercoverage
- allow_failure: true
+ when: never
- <<: *if-merge-request-labels-run-all-rspec
- <<: *if-merge-request
changes: *backend-patterns
diff --git a/Dangerfile b/Dangerfile
index 212097f6a68..ca729f1b941 100644
--- a/Dangerfile
+++ b/Dangerfile
@@ -2,14 +2,24 @@
require 'gitlab-dangerfiles'
-gitlab_dangerfiles = Gitlab::Dangerfiles::Engine.new(self)
-gitlab_dangerfiles.import_plugins
+def ee?
+ # Support former project name for `dev` and support local Danger run
+ %w[gitlab gitlab-ee].include?(ENV['CI_PROJECT_NAME']) || Dir.exist?(File.expand_path('ee', __dir__))
+end
-return if helper.release_automation?
+project_name = ee? ? 'gitlab' : 'gitlab-foss'
-danger.import_plugin('danger/plugins/*.rb')
+Gitlab::Dangerfiles.for_project(self, project_name) do |gitlab_dangerfiles|
+ gitlab_dangerfiles.import_plugins
-gitlab_dangerfiles.import_dangerfiles
+ unless helper.release_automation?
+ danger.import_plugin('danger/plugins/*.rb')
+ gitlab_dangerfiles.import_dangerfiles(except: %w[simple_roulette])
+ gitlab_dangerfiles.config.files_to_category = ProjectHelper::CATEGORIES
+ end
+end
+
+return if helper.release_automation?
project_helper.rule_names.each do |rule|
danger.import_dangerfile(path: File.join('danger', rule))
diff --git a/Gemfile b/Gemfile
index 1d379042099..38ffccf1778 100644
--- a/Gemfile
+++ b/Gemfile
@@ -400,7 +400,7 @@ group :development, :test do
end
group :development, :test, :danger do
- gem 'gitlab-dangerfiles', '~> 2.5.0', require: false
+ gem 'gitlab-dangerfiles', '~> 2.6.1', require: false
end
group :development, :test, :coverage do
diff --git a/Gemfile.lock b/Gemfile.lock
index 8a1a1a65757..e417b8da225 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -222,7 +222,7 @@ GEM
css_parser (1.7.0)
addressable
daemons (1.3.1)
- danger (8.4.1)
+ danger (8.4.2)
claide (~> 1.0)
claide-plugins (>= 0.9.2)
colored2 (~> 3.1)
@@ -458,7 +458,7 @@ GEM
terminal-table (~> 1.5, >= 1.5.1)
gitlab-chronic (0.10.5)
numerizer (~> 0.2)
- gitlab-dangerfiles (2.5.0)
+ gitlab-dangerfiles (2.6.1)
danger (>= 8.3.1)
danger-gitlab (>= 8.0.0)
gitlab-experiment (0.6.5)
@@ -1475,7 +1475,7 @@ DEPENDENCIES
gitaly (~> 14.4.0.pre.rc43)
github-markup (~> 1.7.0)
gitlab-chronic (~> 0.10.5)
- gitlab-dangerfiles (~> 2.5.0)
+ gitlab-dangerfiles (~> 2.6.1)
gitlab-experiment (~> 0.6.5)
gitlab-fog-azure-rm (~> 1.2.0)
gitlab-labkit (~> 0.21.1)
diff --git a/app/assets/javascripts/ide/lib/themes/monokai.js b/app/assets/javascripts/ide/lib/themes/monokai.js
index d7636574754..36fa5039be7 100644
--- a/app/assets/javascripts/ide/lib/themes/monokai.js
+++ b/app/assets/javascripts/ide/lib/themes/monokai.js
@@ -162,8 +162,8 @@ export default {
'editor.selectionBackground': '#49483E',
'editor.lineHighlightBackground': '#3E3D32',
'editorCursor.foreground': '#F8F8F0',
- 'editorWhitespace.foreground': '#3B3A32',
'editorIndentGuide.activeBackground': '#9D550FB0',
'editor.selectionHighlightBorder': '#222218',
+ 'editorWhitespace.foreground': '#75715e',
},
};
diff --git a/app/assets/javascripts/ide/lib/themes/solarized_dark.js b/app/assets/javascripts/ide/lib/themes/solarized_dark.js
index 3c9414b9dc9..8ae609285ac 100644
--- a/app/assets/javascripts/ide/lib/themes/solarized_dark.js
+++ b/app/assets/javascripts/ide/lib/themes/solarized_dark.js
@@ -1105,6 +1105,6 @@ export default {
'editor.selectionBackground': '#073642',
'editor.lineHighlightBackground': '#073642',
'editorCursor.foreground': '#819090',
- 'editorWhitespace.foreground': '#073642',
+ 'editorWhitespace.foreground': '#586e75',
},
};
diff --git a/app/assets/javascripts/ide/lib/themes/solarized_light.js b/app/assets/javascripts/ide/lib/themes/solarized_light.js
index b7bfcf33b0f..2c9f3d904f1 100644
--- a/app/assets/javascripts/ide/lib/themes/solarized_light.js
+++ b/app/assets/javascripts/ide/lib/themes/solarized_light.js
@@ -1096,6 +1096,6 @@ export default {
'editor.selectionBackground': '#EEE8D5',
'editor.lineHighlightBackground': '#EEE8D5',
'editorCursor.foreground': '#000000',
- 'editorWhitespace.foreground': '#EAE3C9',
+ 'editorWhitespace.foreground': '#93a1a1',
},
};
diff --git a/app/assets/javascripts/runner/components/runner_list.vue b/app/assets/javascripts/runner/components/runner_list.vue
index bb91d1a6e1d..d70a28a2421 100644
--- a/app/assets/javascripts/runner/components/runner_list.vue
+++ b/app/assets/javascripts/runner/components/runner_list.vue
@@ -9,20 +9,17 @@ import RunnerSummaryCell from './cells/runner_summary_cell.vue';
import RunnerStatusCell from './cells/runner_status_cell.vue';
import RunnerTags from './runner_tags.vue';
-const tableField = ({ key, label = '', width = 10 }) => {
+const tableField = ({ key, label = '', thClasses = [] }) => {
return {
key,
label,
thClass: [
- `gl-w-${width}p`,
'gl-bg-transparent!',
'gl-border-b-solid!',
'gl-border-b-gray-100!',
- 'gl-py-5!',
- 'gl-px-0!',
'gl-border-b-1!',
+ ...thClasses,
],
- tdClass: ['gl-py-5!', 'gl-px-1!'],
tdAttr: {
'data-testid': `td-${key}`,
},
@@ -66,10 +63,10 @@ export default {
},
fields: [
tableField({ key: 'status', label: s__('Runners|Status') }),
- tableField({ key: 'summary', label: s__('Runners|Runner ID'), width: 30 }),
+ tableField({ key: 'summary', label: s__('Runners|Runner ID'), thClasses: ['gl-lg-w-25p'] }),
tableField({ key: 'version', label: __('Version') }),
tableField({ key: 'ipAddress', label: __('IP Address') }),
- tableField({ key: 'tagList', label: __('Tags'), width: 20 }),
+ tableField({ key: 'tagList', label: __('Tags'), thClasses: ['gl-lg-w-25p'] }),
tableField({ key: 'contactedAt', label: __('Last contact') }),
tableField({ key: 'actions', label: '' }),
],
diff --git a/app/assets/stylesheets/utilities.scss b/app/assets/stylesheets/utilities.scss
index 65961edb833..d2cc1f8640f 100644
--- a/app/assets/stylesheets/utilities.scss
+++ b/app/assets/stylesheets/utilities.scss
@@ -302,3 +302,10 @@ $gl-line-height-42: px-to-rem(42px);
.gl-z-index-200 {
z-index: 200;
}
+
+// Will be moved to @gitlab/ui by https://gitlab.com/gitlab-org/gitlab-ui/-/issues/1637
+.gl-lg-w-25p {
+ @include gl-media-breakpoint-up(lg) {
+ width: 25%;
+ }
+}
diff --git a/app/graphql/types/ci/job_type.rb b/app/graphql/types/ci/job_type.rb
index 57ff35bcaa5..115cc611072 100644
--- a/app/graphql/types/ci/job_type.rb
+++ b/app/graphql/types/ci/job_type.rb
@@ -50,8 +50,8 @@ module Types
null: true,
description: 'How long the job was enqueued before starting.'
- field :previous_stage_jobs_and_needs, Types::Ci::JobType.connection_type, null: true,
- description: 'All prerequisite jobs.'
+ field :previous_stage_jobs_or_needs, Types::Ci::JobType.connection_type, null: true,
+ description: 'Jobs that must complete before the job runs. Returns needed jobs if the job uses the `needs` keyword, and returns previous stage jobs otherwise.'
field :detailed_status, Types::Ci::DetailedStatusType, null: true,
description: 'Detailed status of the job.'
field :artifacts, Types::Ci::JobArtifactType.connection_type, null: true,
@@ -103,9 +103,13 @@ module Types
end
end
- def previous_stage_jobs_and_needs
- Gitlab::Graphql::Lazy.with_value(previous_stage_jobs) do |jobs|
- (jobs + object.needs).uniq(&:name)
+ def previous_stage_jobs_or_needs
+ if object.scheduling_type == 'stage'
+ Gitlab::Graphql::Lazy.with_value(previous_stage_jobs) do |jobs|
+ jobs
+ end
+ else
+ object.needs
end
end
diff --git a/config/events/202108302307_security__ci_configuration__sast_create_service_create.yml b/config/events/202108302307_security__ci_configuration__sast_create_service_create.yml
new file mode 100644
index 00000000000..6fb2c1878be
--- /dev/null
+++ b/config/events/202108302307_security__ci_configuration__sast_create_service_create.yml
@@ -0,0 +1,21 @@
+description: Create SAST
+category: Security::CiConfiguration::SastCreateService
+action: create
+label_description: One of "true", "false"
+property_description:
+value_description:
+extra_properties:
+identifiers:
+product_section: sec
+product_stage: secure
+product_group: group::static_analysis
+product_category:
+milestone: "13.12"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58230
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/config/events/202108302307_security__ci_configuration__sast_create_service_update.yml b/config/events/202108302307_security__ci_configuration__sast_create_service_update.yml
new file mode 100644
index 00000000000..c4e65e47847
--- /dev/null
+++ b/config/events/202108302307_security__ci_configuration__sast_create_service_update.yml
@@ -0,0 +1,21 @@
+description: Update SAST
+category: Security::CiConfiguration::SastCreateService
+action: update
+label_description: One of "true", "false"
+property_description:
+value_description:
+extra_properties:
+identifiers:
+product_section: sec
+product_stage: secure
+product_group: group::static_analysis
+product_category:
+milestone: "13.12"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58230
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/config/events/202108302307_security__ci_configuration__secret_detection_create_service_create.yml b/config/events/202108302307_security__ci_configuration__secret_detection_create_service_create.yml
new file mode 100644
index 00000000000..c0c295978f1
--- /dev/null
+++ b/config/events/202108302307_security__ci_configuration__secret_detection_create_service_create.yml
@@ -0,0 +1,21 @@
+description: Create secret detection
+category: Security::CiConfiguration::SecretDetectionCreateService
+action: create
+label_description: One of "true", "false"
+property_description:
+value_description:
+extra_properties:
+identifiers:
+product_section: sec
+product_stage: secure
+product_group: group::static_analysis
+product_category:
+milestone: "13.12"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58230
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/config/events/202108302307_security__ci_configuration__secret_detection_create_service_update.yml b/config/events/202108302307_security__ci_configuration__secret_detection_create_service_update.yml
new file mode 100644
index 00000000000..d2875a8e89f
--- /dev/null
+++ b/config/events/202108302307_security__ci_configuration__secret_detection_create_service_update.yml
@@ -0,0 +1,21 @@
+description: Update secret detection
+category: Security::CiConfiguration::SecretDetectionCreateService
+action: update
+label_description: One of "true", "false"
+property_description:
+value_description:
+extra_properties:
+identifiers:
+product_section: sec
+product_stage: secure
+product_group: group::static_analysis
+product_category:
+milestone: "13.12"
+introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58230
+distributions:
+- ce
+- ee
+tiers:
+- free
+- premium
+- ultimate
diff --git a/config/events/api__group_container_repositories_list_repositories.yml b/config/events/202109151015_api__group_container_repositories_list_repositories.yml
index 4df063ec758..e5a28374fb7 100644
--- a/config/events/api__group_container_repositories_list_repositories.yml
+++ b/config/events/202109151015_api__group_container_repositories_list_repositories.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/api__project_container_repositories_delete_repository.yml b/config/events/202109151015_api__project_container_repositories_delete_repository.yml
index 196f7273a5c..2d3004e7a98 100644
--- a/config/events/api__project_container_repositories_delete_repository.yml
+++ b/config/events/202109151015_api__project_container_repositories_delete_repository.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/api__project_container_repositories_delete_tag.yml b/config/events/202109151015_api__project_container_repositories_delete_tag.yml
index cb2c7748faa..88da16d02a1 100644
--- a/config/events/api__project_container_repositories_delete_tag.yml
+++ b/config/events/202109151015_api__project_container_repositories_delete_tag.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/api__project_container_repositories_delete_tag_bulk.yml b/config/events/202109151015_api__project_container_repositories_delete_tag_bulk.yml
index e36f835308b..9a0f6d7f037 100644
--- a/config/events/api__project_container_repositories_delete_tag_bulk.yml
+++ b/config/events/202109151015_api__project_container_repositories_delete_tag_bulk.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/api__project_container_repositories_list_repositories.yml b/config/events/202109151015_api__project_container_repositories_list_repositories.yml
index 9c8063891af..d80928f92c9 100644
--- a/config/events/api__project_container_repositories_list_repositories.yml
+++ b/config/events/202109151015_api__project_container_repositories_list_repositories.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/api__project_container_repositories_list_tags.yml b/config/events/202109151015_api__project_container_repositories_list_tags.yml
index 5e269e2d69e..ccac708c0fc 100644
--- a/config/events/api__project_container_repositories_list_tags.yml
+++ b/config/events/202109151015_api__project_container_repositories_list_tags.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/api__pypi_packages_list_package.yml b/config/events/202109151015_api__pypi_packages_list_package.yml
index adb9d91bcee..a2382523561 100644
--- a/config/events/api__pypi_packages_list_package.yml
+++ b/config/events/202109151015_api__pypi_packages_list_package.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/cluster_applications_cluster_application_name.yml b/config/events/202109151015_cluster_applications_cluster_application_name.yml
index e993c7ce9f5..bc0196c776d 100644
--- a/config/events/cluster_applications_cluster_application_name.yml
+++ b/config/events/202109151015_cluster_applications_cluster_application_name.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: monitor
-product_group: monitor
+product_group: group::monitor
product_category:
milestone: "12.7"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/23000
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/cluster_services_prometheus_disabled_manual_prometheus.yml b/config/events/202109151015_cluster_services_prometheus_disabled_manual_prometheus.yml
index 805929b01b6..c98ac8323d4 100644
--- a/config/events/cluster_services_prometheus_disabled_manual_prometheus.yml
+++ b/config/events/202109151015_cluster_services_prometheus_disabled_manual_prometheus.yml
@@ -14,5 +14,8 @@ milestone: "14.0"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62645
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/cluster_services_prometheus_enabled_manual_prometheus.yml b/config/events/202109151015_cluster_services_prometheus_enabled_manual_prometheus.yml
index d9377a07cf2..c453b2f035c 100644
--- a/config/events/cluster_services_prometheus_enabled_manual_prometheus.yml
+++ b/config/events/202109151015_cluster_services_prometheus_enabled_manual_prometheus.yml
@@ -14,5 +14,8 @@ milestone: "14.0"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/62645
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/container_registry_notification_create_repository.yml b/config/events/202109151015_container_registry_notification_create_repository.yml
index fa455140468..f2063748eca 100644
--- a/config/events/container_registry_notification_create_repository.yml
+++ b/config/events/202109151015_container_registry_notification_create_repository.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "12.10"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27001
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/container_registry_notification_delete_repository.yml b/config/events/202109151015_container_registry_notification_delete_repository.yml
index ceb7c5e4155..f366a101f81 100644
--- a/config/events/container_registry_notification_delete_repository.yml
+++ b/config/events/202109151015_container_registry_notification_delete_repository.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "12.10"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27001
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/container_registry_notification_delete_tag.yml b/config/events/202109151015_container_registry_notification_delete_tag.yml
index 8e33c901e0e..c322972ab50 100644
--- a/config/events/container_registry_notification_delete_tag.yml
+++ b/config/events/202109151015_container_registry_notification_delete_tag.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "12.10"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27001
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/container_registry_notification_push_repository.yml b/config/events/202109151015_container_registry_notification_push_repository.yml
index 10edf3ceafd..7bdb2b157f2 100644
--- a/config/events/container_registry_notification_push_repository.yml
+++ b/config/events/202109151015_container_registry_notification_push_repository.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "12.10"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27001
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/container_registry_notification_push_tag.yml b/config/events/202109151015_container_registry_notification_push_tag.yml
index 9679dd4e52f..d250e8b2022 100644
--- a/config/events/container_registry_notification_push_tag.yml
+++ b/config/events/202109151015_container_registry_notification_push_tag.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "12.10"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/27001
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/delete_repository_container.yml b/config/events/202109151015_delete_repository_container.yml
index 491cf9a7e4a..162f92ccffd 100644
--- a/config/events/delete_repository_container.yml
+++ b/config/events/202109151015_delete_repository_container.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.6"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/47175
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/delete_tag_bulk_tag.yml b/config/events/202109151015_delete_tag_bulk_tag.yml
index feaca98bd38..2757cb48c0c 100644
--- a/config/events/delete_tag_bulk_tag.yml
+++ b/config/events/202109151015_delete_tag_bulk_tag.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.7"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/48617
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/experiment_name_initial_write.yml b/config/events/202109151015_experiment_name_initial_write.yml
index f2233f7dabb..94f685af02a 100644
--- a/config/events/experiment_name_initial_write.yml
+++ b/config/events/202109151015_experiment_name_initial_write.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: growth
product_stage: growth
-product_group: adoption
+product_group: group::adoption
product_category:
milestone: "13.12"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59713
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/experiment_name_write.yml b/config/events/202109151015_experiment_name_write.yml
index 82b5d18bd91..d4645ecc6ae 100644
--- a/config/events/experiment_name_write.yml
+++ b/config/events/202109151015_experiment_name_write.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: growth
product_stage: growth
-product_group: adoption
+product_group: group::adoption
product_category:
milestone: "13.12"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/59713
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/groups__email_campaigns_controller_click.yml b/config/events/202109151015_groups__email_campaigns_controller_click.yml
index bbc2abb8707..e758abcce28 100644
--- a/config/events/groups__email_campaigns_controller_click.yml
+++ b/config/events/202109151015_groups__email_campaigns_controller_click.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: growth
product_stage: growth
-product_group: activation
+product_group: group::activation
product_category:
milestone: "13.11"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/56015
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/groups__registry__repositories_controller_list_repositories.yml b/config/events/202109151015_groups__registry__repositories_controller_list_repositories.yml
index 1fafbf75103..23c58662b61 100644
--- a/config/events/groups__registry__repositories_controller_list_repositories.yml
+++ b/config/events/202109151015_groups__registry__repositories_controller_list_repositories.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/incident_management__zoom_integration_add_zoom_meeting.yml b/config/events/202109151015_incident_management__zoom_integration_add_zoom_meeting.yml
index 7b9331d3244..6b77ec83275 100644
--- a/config/events/incident_management__zoom_integration_add_zoom_meeting.yml
+++ b/config/events/202109151015_incident_management__zoom_integration_add_zoom_meeting.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: monitor
-product_group: monitor
+product_group: group::monitor
product_category:
milestone: "12.4"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18620
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/incident_management__zoom_integration_remove_zoom_meeting.yml b/config/events/202109151015_incident_management__zoom_integration_remove_zoom_meeting.yml
index 5abc1b8bbc7..edf8e7feacd 100644
--- a/config/events/incident_management__zoom_integration_remove_zoom_meeting.yml
+++ b/config/events/202109151015_incident_management__zoom_integration_remove_zoom_meeting.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: monitor
-product_group: monitor
+product_group: group::monitor
product_category:
milestone: "12.4"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18620
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/list_repositories_container.yml b/config/events/202109151015_list_repositories_container.yml
index ec3775cb9f8..c17cee5378a 100644
--- a/config/events/list_repositories_container.yml
+++ b/config/events/202109151015_list_repositories_container.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.6"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/44926
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/notes__create_service_execute.yml b/config/events/202109151015_notes__create_service_execute.yml
index 39c24f05551..e42e9856cd5 100644
--- a/config/events/notes__create_service_execute.yml
+++ b/config/events/202109151015_notes__create_service_execute.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: verify
-product_group: testing
+product_group: group::testing
product_category:
milestone: "12.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/18890
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/package_class_pull_package.yml b/config/events/202109151015_package_class_pull_package.yml
index 2a35ce0dd3a..c4f5ea53f71 100644
--- a/config/events/package_class_pull_package.yml
+++ b/config/events/202109151015_package_class_pull_package.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/package_class_push_package.yml b/config/events/202109151015_package_class_push_package.yml
index 26945c7cb9e..566ee6a9c8f 100644
--- a/config/events/package_class_push_package.yml
+++ b/config/events/202109151015_package_class_push_package.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/projects__registry__repositories_controller_delete_repository.yml b/config/events/202109151015_projects__registry__repositories_controller_delete_repository.yml
index 44c769a03a0..ea27e7d6ae5 100644
--- a/config/events/projects__registry__repositories_controller_delete_repository.yml
+++ b/config/events/202109151015_projects__registry__repositories_controller_delete_repository.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/projects__registry__repositories_controller_list_repositories.yml b/config/events/202109151015_projects__registry__repositories_controller_list_repositories.yml
index 6dc67091a9a..6d587cc6a9e 100644
--- a/config/events/projects__registry__repositories_controller_list_repositories.yml
+++ b/config/events/202109151015_projects__registry__repositories_controller_list_repositories.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/projects__registry__tags_controller_delete_tag.yml b/config/events/202109151015_projects__registry__tags_controller_delete_tag.yml
index 73bee5f7318..d2c27320054 100644
--- a/config/events/projects__registry__tags_controller_delete_tag.yml
+++ b/config/events/202109151015_projects__registry__tags_controller_delete_tag.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/projects__registry__tags_controller_delete_tag_bulk.yml b/config/events/202109151015_projects__registry__tags_controller_delete_tag_bulk.yml
index 715e3549ed3..7b1c7199843 100644
--- a/config/events/projects__registry__tags_controller_delete_tag_bulk.yml
+++ b/config/events/202109151015_projects__registry__tags_controller_delete_tag_bulk.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/config/events/projects__registry__tags_controller_list_tags.yml b/config/events/202109151015_projects__registry__tags_controller_list_tags.yml
index 5b655ee6c39..b8e18922ffb 100644
--- a/config/events/projects__registry__tags_controller_list_tags.yml
+++ b/config/events/202109151015_projects__registry__tags_controller_list_tags.yml
@@ -8,11 +8,14 @@ extra_properties:
identifiers:
product_section: ops
product_stage: package
-product_group: package
+product_group: group::package
product_category:
milestone: "13.5"
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41846
distributions:
- ce
+- ee
tiers:
- free
+- premium
+- ultimate
diff --git a/danger/ci_templates/Dangerfile b/danger/ci_templates/Dangerfile
index fcd9080e7d1..3d57436ef94 100644
--- a/danger/ci_templates/Dangerfile
+++ b/danger/ci_templates/Dangerfile
@@ -17,7 +17,7 @@ MSG
return unless helper.ci?
-template_paths_to_review = project_helper.changes_by_category[:ci_template]
+template_paths_to_review = helper.changes_by_category[:ci_template]
if gitlab.mr_labels.include?('ci::templates') || template_paths_to_review.any?
message 'This merge request adds or changes files that require a ' \
diff --git a/danger/database/Dangerfile b/danger/database/Dangerfile
index 70adbb4c139..b4e06c21fe4 100644
--- a/danger/database/Dangerfile
+++ b/danger/database/Dangerfile
@@ -51,7 +51,7 @@ end
return unless helper.ci?
return if gitlab.mr_labels.include?(DATABASE_APPROVED_LABEL)
-db_paths_to_review = project_helper.changes_by_category[:database]
+db_paths_to_review = helper.changes_by_category[:database]
if gitlab.mr_labels.include?('database') || db_paths_to_review.any?
message 'This merge request adds or changes files that require a ' \
diff --git a/danger/documentation/Dangerfile b/danger/documentation/Dangerfile
index 01ef5dbb49e..918c787075e 100644
--- a/danger/documentation/Dangerfile
+++ b/danger/documentation/Dangerfile
@@ -13,7 +13,7 @@ For more information, see:
- The [definition of done](https://docs.gitlab.com/ee/development/contributing/merge_request_workflow.html#definition-of-done) documentation.
MSG
-docs_paths_to_review = project_helper.changes_by_category[:docs]
+docs_paths_to_review = helper.changes_by_category[:docs]
# Documentation should be updated for feature::addition and feature::enhancement
if docs_paths_to_review.empty?
diff --git a/danger/product_intelligence/Dangerfile b/danger/product_intelligence/Dangerfile
index eedb9b89d22..1c0c918dbfc 100644
--- a/danger/product_intelligence/Dangerfile
+++ b/danger/product_intelligence/Dangerfile
@@ -12,7 +12,7 @@ For MR review guidelines, see the [Service Ping review guidelines](https://docs.
MSG
# exit if not matching files or if no product intelligence labels
-product_intelligence_paths_to_review = project_helper.changes_by_category[:product_intelligence]
+product_intelligence_paths_to_review = helper.changes_by_category[:product_intelligence]
labels_to_add = product_intelligence.missing_labels
return if product_intelligence_paths_to_review.empty? || labels_to_add.empty?
diff --git a/danger/roulette/Dangerfile b/danger/roulette/Dangerfile
index 6b0c196dc5d..cdea635e808 100644
--- a/danger/roulette/Dangerfile
+++ b/danger/roulette/Dangerfile
@@ -89,7 +89,7 @@ def markdown_row_for_spins(category, spins_array)
"| #{helper.label_for_category(category)} | #{reviewer_note} | #{maintainer_note} |"
end
-changes = project_helper.changes_by_category
+changes = helper.changes_by_category
# Ignore any files that are known but uncategorized. Prompt for any unknown files
changes.delete(:none)
@@ -114,9 +114,7 @@ categories << :product_intelligence if helper.mr_labels.include?("product intell
categories.delete(:product_intelligence) unless helper.mr_labels.include?("growth experiment")
if changes.any?
- project = project_helper.project_name
-
- random_roulette_spins = roulette.spin(project, categories, timezone_experiment: false)
+ random_roulette_spins = roulette.spin(nil, categories, timezone_experiment: false)
rows = random_roulette_spins.map do |spin|
markdown_row_for_spins(spin.category, [spin])
diff --git a/danger/specialization_labels/Dangerfile b/danger/specialization_labels/Dangerfile
index 24a759cddc8..cb4c8c96f4f 100644
--- a/danger/specialization_labels/Dangerfile
+++ b/danger/specialization_labels/Dangerfile
@@ -14,7 +14,7 @@ SPECIALIZATIONS = {
feature_flag: 'feature flag'
}.freeze
-labels_to_add = project_helper.changes_by_category.each_with_object([]) do |(category, _changes), memo|
+labels_to_add = helper.changes_by_category.each_with_object([]) do |(category, _changes), memo|
label = SPECIALIZATIONS[category]
next unless label
next if gitlab.mr_labels.include?(label)
diff --git a/danger/specs/Dangerfile b/danger/specs/Dangerfile
index 067fb62807a..c4f609f5806 100644
--- a/danger/specs/Dangerfile
+++ b/danger/specs/Dangerfile
@@ -50,7 +50,7 @@ if has_ee_app_changes && has_spec_changes && !(has_app_changes || has_ee_spec_ch
end
# Forbidding a new file addition under `/spec/controllers` or `/ee/spec/controllers`
-if project_helper.changes.added.files.grep(%r{^(ee/)?spec/controllers/}).any?
+if helper.changes.added.files.grep(%r{^(ee/)?spec/controllers/}).any?
warn CONTROLLER_SPEC_DEPRECATION_MESSAGE
end
diff --git a/doc/administration/audit_events.md b/doc/administration/audit_events.md
index 11790e3a58e..7c597bd5f0f 100644
--- a/doc/administration/audit_events.md
+++ b/doc/administration/audit_events.md
@@ -208,7 +208,7 @@ Events visible in Audit Events views until more events are logged.
### "Deleted User" events
-Audit events can be created for a user after the user is deleted. The user name associated with the event is set to
+Audit events can be created for a user after the user is deleted. The user name associated with the event is set to
"Deleted User" because the actual user name is unknowable. For example, if a deleted user's access to a project is
removed automatically due to expiration, the audit event is created for "Deleted User". We are [investigating](https://gitlab.com/gitlab-org/gitlab/-/issues/343933)
whether this is avoidable.
diff --git a/doc/administration/auth/ldap/index.md b/doc/administration/auth/ldap/index.md
index d2a783972dc..f551c362784 100644
--- a/doc/administration/auth/ldap/index.md
+++ b/doc/administration/auth/ldap/index.md
@@ -23,7 +23,7 @@ Users added through LDAP:
- Take a [licensed seat](../../../subscriptions/self_managed/index.md#billable-users).
- Can authenticate with Git using either their GitLab username or their email and LDAP password,
- even if password authentication for Git
+ even if password authentication for Git
[is disabled](../../../user/admin_area/settings/sign_in_restrictions.md#password-authentication-enabled).
The LDAP DN is associated with existing GitLab users when:
@@ -41,7 +41,7 @@ If an existing GitLab user wants to enable LDAP sign-in for themselves, they sho
GitLab has multiple mechanisms to verify a user is still active in LDAP. If the user is no longer active in
LDAP, they are placed in an `ldap_blocked` status and are signed out. They are unable to sign in using any authentication provider until they are
-reactivated in LDAP.
+reactivated in LDAP.
Users are considered inactive in LDAP when they:
diff --git a/doc/administration/geo/replication/version_specific_updates.md b/doc/administration/geo/replication/version_specific_updates.md
index 1b22a5f0991..c65cbb0b3ad 100644
--- a/doc/administration/geo/replication/version_specific_updates.md
+++ b/doc/administration/geo/replication/version_specific_updates.md
@@ -50,7 +50,7 @@ If you are running a version prior to 14.1 and are using Geo and multi-arch cont
### Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode
-GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) will cause Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
+GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) causes Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
## Updating to GitLab 14.0/14.1
@@ -64,7 +64,7 @@ If you are running an affected version and need to remove your Primary site, you
### Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode
-GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) will cause Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
+GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) causes Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
## Updating to GitLab 13.12
@@ -90,7 +90,7 @@ Geo::LfsObjectRegistry.where(state: 0, success: true).update_all(state: 2)
### Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode
-GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) will cause Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
+GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) causes Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
## Updating to GitLab 13.11
@@ -98,20 +98,20 @@ We found an [issue with Git clone/pull through HTTP(s)](https://gitlab.com/gitla
### Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode
-GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) will cause Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
+GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) causes Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
## Updating to GitLab 13.10
### Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode
-GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) will cause Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
+GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) causes Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
## Updating to GitLab 13.9
### Error during zero-downtime update: "cannot drop column asset_proxy_whitelist"
We've detected an issue [with a column rename](https://gitlab.com/gitlab-org/gitlab/-/issues/324160)
-that will prevent upgrades to GitLab 13.9.0, 13.9.1, 13.9.2 and 13.9.3 when following the zero-downtime steps. It is necessary
+that prevents upgrades to GitLab 13.9.0, 13.9.1, 13.9.2 and 13.9.3 when following the zero-downtime steps. It is necessary
to perform the following additional steps for the zero-downtime update:
1. Before running the final `sudo gitlab-rake db:migrate` command on the deploy node,
@@ -132,7 +132,7 @@ to perform the following additional steps for the zero-downtime update:
```
If you have already run the final `sudo gitlab-rake db:migrate` command on the deploy node and have
-encountered the [column rename issue](https://gitlab.com/gitlab-org/gitlab/-/issues/324160), you will
+encountered the [column rename issue](https://gitlab.com/gitlab-org/gitlab/-/issues/324160), you might
see the following error:
```shell
@@ -148,7 +148,7 @@ More details are available [in this issue](https://gitlab.com/gitlab-org/gitlab/
### Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode
-GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) will cause Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
+GitLab 13.9 through GitLab 14.3 are affected by a bug in which enabling [GitLab Maintenance Mode](../../maintenance_mode/index.md) causes Geo secondary site statuses to appear to stop updating and become unhealthy. For more information, see [Troubleshooting - Geo Admin Area shows 'Unhealthy' after enabling Maintenance Mode](troubleshooting.md#geo-admin-area-shows-unhealthy-after-enabling-maintenance-mode).
## Updating to GitLab 13.7
@@ -168,7 +168,7 @@ on Geo secondaries. This issue is fixed in GitLab 13.6.1 and later.
In GitLab 13.3, Geo removed the PostgreSQL [Foreign Data Wrapper](https://www.postgresql.org/docs/11/postgres-fdw.html)
dependency for the tracking database.
-The FDW server, user, and the extension will be removed during the upgrade
+The FDW server, user, and the extension is removed during the upgrade
process on each secondary node. The GitLab settings related to the FDW in the
`/etc/gitlab/gitlab.rb` have been deprecated and can be safely removed.
diff --git a/doc/administration/geo/secondary_proxy/index.md b/doc/administration/geo/secondary_proxy/index.md
index 0f5f60fcd8e..a7a6c5056b2 100644
--- a/doc/administration/geo/secondary_proxy/index.md
+++ b/doc/administration/geo/secondary_proxy/index.md
@@ -68,7 +68,7 @@ a single URL used by all Geo sites, including the primary.
In the Geo administration page of the **primary** site, edit each Geo secondary that
is using the secondary proxying and set the `URL` field to the single URL.
Make sure the primary site is also using this URL.
-
+
## Disable Geo proxying
You can disable the secondary proxying on each Geo site, separately, by following these steps with Omnibus-based packages:
diff --git a/doc/administration/instance_limits.md b/doc/administration/instance_limits.md
index 942bc0af8dd..12dd7e459bf 100644
--- a/doc/administration/instance_limits.md
+++ b/doc/administration/instance_limits.md
@@ -551,7 +551,7 @@ Plan.default.actual_limits.update!(pages_file_entries: 100)
> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/321368) in GitLab 13.12. Disabled by default.
> - Enabled on GitLab.com in GitLab 14.3.
> - Enabled on self-managed in GitLab 14.4.
-> - Feature flag `ci_runner_limits` removed in GitLab 14.4.
+> - Feature flag `ci_runner_limits` removed in GitLab 14.4.
> - Feature flag `ci_runner_limits_override` removed in GitLab 14.6.
The total number of registered runners is limited at the group and project levels. Each time a new runner is registered,
diff --git a/doc/administration/package_information/deprecation_policy.md b/doc/administration/package_information/deprecation_policy.md
index d45c2ea3127..164c0eb5c07 100644
--- a/doc/administration/package_information/deprecation_policy.md
+++ b/doc/administration/package_information/deprecation_policy.md
@@ -16,18 +16,18 @@ setup, various configuration requires removal.
### Policy
-The Omnibus GitLab package will retain configuration for at least **one major**
-version. We cannot guarantee that deprecated configuration
-will be available in the next major release. See [example](#example) for more details.
+The Omnibus GitLab package retains configuration for at least **one major**
+version. We can't guarantee that deprecated configuration
+is available in the next major release. See [example](#example) for more details.
### Notice
-If the configuration becomes obsolete, we will announce the deprecation:
+If the configuration becomes obsolete, we announce the deprecation:
- via release blog post on `https://about.gitlab.com/blog/`. The blog post item
- will contain the deprecation notice together with the target removal date.
+ contains the deprecation notice together with the target removal date.
- via installation/reconfigure output (if applicable).
-- via official documentation on `https://docs.gitlab.com/`. The documentation update will contain the corrected syntax (if applicable) or a date of configuration removal.
+- via official documentation on `https://docs.gitlab.com/`. The documentation update contains the corrected syntax (if applicable) or a date of configuration removal.
### Procedure
@@ -82,16 +82,16 @@ The final comment in the issue **has to have**:
## Example
-User configuration available in `/etc/gitlab/gitlab.rb` was introduced in GitLab version 10.0, `gitlab_rails['configuration'] = true`. In GitLab version 10.4.0, a new change was introduced that requires rename of this configuration option. New configuration option is `gitlab_rails['better_configuration'] = true`. Development team will translate the old configuration into new one
-and trigger a deprecation procedure.
+User configuration available in `/etc/gitlab/gitlab.rb` was introduced in GitLab version 10.0, `gitlab_rails['configuration'] = true`. In GitLab version 10.4.0, a new change was introduced that requires rename of this configuration option. New configuration option is `gitlab_rails['better_configuration'] = true`. Development team translates the old configuration into a new one
+and triggers a deprecation procedure.
This means that these two configuration
-options will both be valid through GitLab version 10. In other words,
+options are valid through GitLab version 10. In other words,
if you still have `gitlab_rails['configuration'] = true` set in GitLab 10.8.0
-the feature will continue working the same way as if you had `gitlab_rails['better_configuration'] = true` set.
-However, setting the old version of configuration will print out a deprecation
+the feature continues working the same way as if you had `gitlab_rails['better_configuration'] = true` set.
+However, setting the old version of the configuration prints out a deprecation
notice at the end of installation/upgrade/reconfigure run.
-With GitLab 11, `gitlab_rails['configuration'] = true` will no longer work and you will have to manually change the configuration in `/etc/gitlab/gitlab.rb` to the new valid configuration.
+In GitLab 11, `gitlab_rails['configuration'] = true` no longer works and you must manually change the configuration in `/etc/gitlab/gitlab.rb` to the new valid configuration.
**Note** If this configuration option is sensitive and can put integrity of the installation or
-data in danger, installation/upgrade will be aborted.
+data in danger,the installation or upgrade is aborted.
diff --git a/doc/administration/repository_storage_types.md b/doc/administration/repository_storage_types.md
index a85f678fe95..f33d494f638 100644
--- a/doc/administration/repository_storage_types.md
+++ b/doc/administration/repository_storage_types.md
@@ -101,10 +101,10 @@ To look up a project's hash path using a Rails console:
#### From hashed path to project name
-Administrators can look up a project's name from its hashed storage path using:
+Administrators can look up a project's name from its hashed storage path using:
- A Rails console.
-- The `config` file in the `*.git` directory.
+- The `config` file in the `*.git` directory.
To look up a project's name using the Rails console:
diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md
index 36b56054c8d..b4f69b379ee 100644
--- a/doc/api/graphql/reference/index.md
+++ b/doc/api/graphql/reference/index.md
@@ -8687,7 +8687,7 @@ Represents the total number of issues and their weights for a particular day.
| <a id="cijobneeds"></a>`needs` | [`CiBuildNeedConnection`](#cibuildneedconnection) | References to builds that must complete before the jobs run. (see [Connections](#connections)) |
| <a id="cijobpipeline"></a>`pipeline` | [`Pipeline`](#pipeline) | Pipeline the job belongs to. |
| <a id="cijobplayable"></a>`playable` | [`Boolean!`](#boolean) | Indicates the job can be played. |
-| <a id="cijobpreviousstagejobsandneeds"></a>`previousStageJobsAndNeeds` | [`CiJobConnection`](#cijobconnection) | All prerequisite jobs. (see [Connections](#connections)) |
+| <a id="cijobpreviousstagejobsorneeds"></a>`previousStageJobsOrNeeds` | [`CiJobConnection`](#cijobconnection) | Jobs that must complete before the job runs. Returns needed jobs if the job uses the `needs` keyword, and returns previous stage jobs otherwise. (see [Connections](#connections)) |
| <a id="cijobqueuedat"></a>`queuedAt` | [`Time`](#time) | When the job was enqueued and marked as pending. |
| <a id="cijobqueuedduration"></a>`queuedDuration` | [`Duration`](#duration) | How long the job was enqueued before starting. |
| <a id="cijobrefname"></a>`refName` | [`String`](#string) | Ref name of the job. |
diff --git a/doc/api/members.md b/doc/api/members.md
index 51f7b74f110..2e2b403eea1 100644
--- a/doc/api/members.md
+++ b/doc/api/members.md
@@ -596,9 +596,9 @@ curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://git
curl --request DELETE --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/:id/members/:user_id"
```
-## Approve a member for a group
+## Approve a member for a group
-Approves a pending user for a group and its subgroups and projects.
+Approves a pending user for a group and its subgroups and projects.
```plaintext
PUT /groups/:id/members/:user_id/approve
@@ -615,7 +615,7 @@ Example request:
curl --request PUT --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/groups/:id/members/:user_id/approve"
```
-## Approve all pending members for a group
+## Approve all pending members for a group
Approves all pending users for a group and its subgroups and projects.
diff --git a/doc/api/projects.md b/doc/api/projects.md
index 19a4b3d3224..9d7566f6967 100644
--- a/doc/api/projects.md
+++ b/doc/api/projects.md
@@ -1072,7 +1072,7 @@ If the project is a fork, and you provide a valid token to authenticate, the
"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-foss.git",
"http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-foss.git",
"web_url":"https://gitlab.com/gitlab-org/gitlab-foss",
- "avatar_url":"https://assets.gitlab-static.net/uploads/-/system/project/avatar/13083/logo-extra-whitespace.png",
+ "avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/13083/logo-extra-whitespace.png",
"license_url": "https://gitlab.com/gitlab-org/gitlab/-/blob/master/LICENSE",
"license": {
"key": "mit",
diff --git a/doc/ci/environments/protected_environments.md b/doc/ci/environments/protected_environments.md
index 5ea603e0b7c..57fd72863c1 100644
--- a/doc/ci/environments/protected_environments.md
+++ b/doc/ci/environments/protected_environments.md
@@ -79,7 +79,7 @@ Alternatively, you can use the API to protect an environment:
$ curl --request POST --header "PRIVATE-TOKEN: <your_access_token>" \
--data "user_id=3222377&access_level=20" "https://gitlab.com/api/v4/groups/9899826/members"
- {"id":3222377,"name":"Sean Carroll","username":"sfcarroll","state":"active","avatar_url":"https://assets.gitlab-static.net/uploads/-/system/user/avatar/3222377/avatar.png","web_url":"https://gitlab.com/sfcarroll","access_level":20,"created_at":"2020-10-26T17:37:50.309Z","expires_at":null}
+ {"id":3222377,"name":"Sean Carroll","username":"sfcarroll","state":"active","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3222377/avatar.png","web_url":"https://gitlab.com/sfcarroll","access_level":20,"created_at":"2020-10-26T17:37:50.309Z","expires_at":null}
```
1. Use the API to add the group to the project as a reporter:
diff --git a/doc/ci/git_submodules.md b/doc/ci/git_submodules.md
index dc5faf0188e..2a002b8fb9f 100644
--- a/doc/ci/git_submodules.md
+++ b/doc/ci/git_submodules.md
@@ -59,7 +59,7 @@ To make submodules work correctly in CI/CD jobs:
variables:
GIT_SUBMODULE_STRATEGY: recursive
```
-
+
If you use the [`CI_JOB_TOKEN`](jobs/ci_job_token.md) to clone a submodule in a
pipeline job, the user executing the job must be assigned to a role that has
[permission](../user/permissions.md#gitlab-cicd-permissions) to trigger a pipeline
diff --git a/doc/ci/pipelines/merge_trains.md b/doc/ci/pipelines/merge_trains.md
index be267ec1da1..f9e4f3fbdea 100644
--- a/doc/ci/pipelines/merge_trains.md
+++ b/doc/ci/pipelines/merge_trains.md
@@ -39,7 +39,7 @@ If the pipeline for the merge request at the front of the train completes succes
the changes are merged into the target branch, and the other pipelines continue to
run.
-To add a merge request to a merge train, you need [permissions](../../user/permissions.md) to merge or push to the
+To add a merge request to a merge train, you need [permissions](../../user/permissions.md) to merge or push to the
target branch.
Each merge train can run a maximum of **twenty** pipelines in parallel.
diff --git a/doc/development/adding_database_indexes.md b/doc/development/adding_database_indexes.md
index 571d2f353d4..0e8e8289464 100644
--- a/doc/development/adding_database_indexes.md
+++ b/doc/development/adding_database_indexes.md
@@ -317,11 +317,11 @@ end
You must test the database index changes locally before creating a merge request.
-### Verify indexes created asynchronously
+### Verify indexes created asynchronously
Use the asynchronous index helpers on your local environment to test changes for creating an index:
1. Enable the feature flags by running `Feature.enable(:database_async_index_creation)` and `Feature.enable(:database_reindexing)` in the Rails console.
1. Run `bundle exec rails db:migrate` so that it creates an entry in the `postgres_async_indexes` table.
1. Run `bundle exec rails gitlab:db:reindex` so that the index is created asynchronously.
-1. To verify the index, open the PostgreSQL console using the [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/postgresql.md) command `gdk psql` and run the command `\d <index_name>` to check that your newly created index exists.
+1. To verify the index, open the PostgreSQL console using the [GDK](https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/doc/howto/postgresql.md) command `gdk psql` and run the command `\d <index_name>` to check that your newly created index exists.
diff --git a/doc/development/contributing/merge_request_workflow.md b/doc/development/contributing/merge_request_workflow.md
index 82fd62d8d79..cc6997e1a20 100644
--- a/doc/development/contributing/merge_request_workflow.md
+++ b/doc/development/contributing/merge_request_workflow.md
@@ -100,7 +100,7 @@ request is as follows:
There isn't a way to know anything about our customers' data on their
[self-managed instances](../../subscriptions/self_managed/index.md), so keep
that in mind for any data implications with your merge request.
-
+
1. Merge requests **must** adhere to the [merge request performance guidelines](../merge_request_performance_guidelines.md).
1. For tests that use Capybara, read
[how to write reliable, asynchronous integration tests](https://thoughtbot.com/blog/write-reliable-asynchronous-integration-tests-with-capybara).
diff --git a/doc/development/fe_guide/vue.md b/doc/development/fe_guide/vue.md
index 5d5d37e0398..ab808e6f1b7 100644
--- a/doc/development/fe_guide/vue.md
+++ b/doc/development/fe_guide/vue.md
@@ -73,7 +73,7 @@ component, is that you avoid the need to create a fixture or an HTML element in
##### provide/inject
Vue supports dependency injection through [provide/inject](https://vuejs.org/v2/api/#provide-inject).
-In the component the `inject` configuration accesses the values `provide` passes down.
+In the component the `inject` configuration accesses the values `provide` passes down.
This example of a Vue app initialization shows how the `provide` configuration passes a value from HAML to the component:
```javascript
diff --git a/doc/development/fe_guide/vue3_migration.md b/doc/development/fe_guide/vue3_migration.md
index c6f480deb22..2b783eb21b7 100644
--- a/doc/development/fe_guide/vue3_migration.md
+++ b/doc/development/fe_guide/vue3_migration.md
@@ -31,7 +31,7 @@ Component's computed properties / methods or external helpers.
**When to use**
-If you are in a Vue app that doesn't use any event hub, try to avoid adding a new one unless absolutely necessary. For example, if you need a child component to react to its parent's event, it's preferred to pass a prop down. Then, use the watch property on that prop in the child component to create the desired side effect.
+If you are in a Vue app that doesn't use any event hub, try to avoid adding a new one unless absolutely necessary. For example, if you need a child component to react to its parent's event, it's preferred to pass a prop down. Then, use the watch property on that prop in the child component to create the desired side effect.
If you need cross-component communication (between different Vue apps), then perhaps introducing a hub is the right decision.
diff --git a/doc/development/image_scaling.md b/doc/development/image_scaling.md
index 82ca8cf8e83..e1ffbdb766a 100644
--- a/doc/development/image_scaling.md
+++ b/doc/development/image_scaling.md
@@ -37,8 +37,8 @@ Furthermore, configuration in Workhorse can lead to the image scaler rejecting a
For instance, here are two different URLs that serve the GitLab project avatar both in its
original size and scaled down to 64 pixels. Only the second request will trigger the image scaler:
-- [`/uploads/-/system/project/avatar/278964/logo-extra-whitespace.png`](https://assets.gitlab-static.net/uploads/-/system/project/avatar/278964/logo-extra-whitespace.png)
-- [`/uploads/-/system/project/avatar/278964/logo-extra-whitespace.png?width=64`](https://assets.gitlab-static.net/uploads/-/system/project/avatar/278964/logo-extra-whitespace.png?width=64)
+- [`/uploads/-/system/project/avatar/278964/logo-extra-whitespace.png`](https://gitlab.com/uploads/-/system/project/avatar/278964/logo-extra-whitespace.png)
+- [`/uploads/-/system/project/avatar/278964/logo-extra-whitespace.png?width=64`](https://gitlab.com/uploads/-/system/project/avatar/278964/logo-extra-whitespace.png?width=64)
## Where do we scale images?
diff --git a/doc/development/service_ping/implement.md b/doc/development/service_ping/implement.md
index b38696263b4..c32789740c3 100644
--- a/doc/development/service_ping/implement.md
+++ b/doc/development/service_ping/implement.md
@@ -27,7 +27,7 @@ To implement a new metric in Service Ping, follow these steps:
1. [Set up and test Service Ping locally](#set-up-and-test-service-ping-locally)
NOTE:
-When you add or change a Service Metric, you must migrate metrics to [instrumentation classes](metrics_instrumentation.md).
+When you add or change a Service Metric, you must migrate metrics to [instrumentation classes](metrics_instrumentation.md).
For information about the progress on migrating Service ping metrics, see this [epic](https://gitlab.com/groups/gitlab-org/-/epics/5547).
## Instrumentation classes
diff --git a/doc/development/service_ping/index.md b/doc/development/service_ping/index.md
index 0b8bc42276c..1f751eea4d8 100644
--- a/doc/development/service_ping/index.md
+++ b/doc/development/service_ping/index.md
@@ -21,7 +21,7 @@ and sales teams understand how GitLab is used. The data helps to:
Service Ping information is not anonymous. It's linked to the instance's hostname, but does
not contain project names, usernames, or any other specific data.
-Sending a Service Ping payload is optional and you can [disable](#disable-service-ping) it on any
+Sending a Service Ping payload is optional and you can [disable](#disable-service-ping) it on any
self-managed instance. When Service Ping is enabled, GitLab gathers data from the other instances
and can show your instance's usage statistics to your users.
@@ -41,10 +41,10 @@ We use the following terminology to describe the Service Ping components:
The main purpose of Service Ping is to build a better GitLab. We collect data about how GitLab is used
to understand feature or stage adoption and usage. This data gives an insight into how GitLab adds
-value and helps our team understand the reasons why people use GitLab, and with this knowledge we're able to
+value and helps our team understand the reasons why people use GitLab, and with this knowledge we're able to
make better product decisions.
-There are several other benefits to enabling Service Ping:
+There are several other benefits to enabling Service Ping:
- As a benefit of having Service Ping active, GitLab lets you analyze the users' activities over time of your GitLab installation.
- As a benefit of having Service Ping active, GitLab provides you with [DevOps Score](../../user/admin_area/analytics/dev_ops_report.md#devops-score), which gives you an overview of your entire instance's adoption of Concurrent DevOps from planning to monitoring.
diff --git a/doc/development/sidekiq_style_guide.md b/doc/development/sidekiq_style_guide.md
index f4fe80ad15e..a643b89b7ff 100644
--- a/doc/development/sidekiq_style_guide.md
+++ b/doc/development/sidekiq_style_guide.md
@@ -354,7 +354,7 @@ This way we are always comparing the latest binary replication pointer,
making sure that we read from the replica that is fully caught up.
FLAG:
-On self-managed GitLab, by default this feature is available. To hide the feature, ask an administrator to
+On self-managed GitLab, by default this feature is available. To hide the feature, ask an administrator to
[disable the feature flag](../administration/feature_flags.md) named preserve_latest_wal_locations_for_idempotent_jobs flag.
This feature flag is related to GitLab development and is not intended to be used by GitLab administrators, though.
diff --git a/doc/development/snowplow/implementation.md b/doc/development/snowplow/implementation.md
index fe1de789eae..3ffacc5af67 100644
--- a/doc/development/snowplow/implementation.md
+++ b/doc/development/snowplow/implementation.md
@@ -13,12 +13,12 @@ This page describes how to:
## Snowplow JavaScript frontend tracking
-GitLab provides a `Tracking` interface that wraps the [Snowplow JavaScript tracker](https://docs.snowplowanalytics.com/docs/collecting-data/collecting-from-own-applications/javascript-trackers/)
-to track custom events.
+GitLab provides a `Tracking` interface that wraps the [Snowplow JavaScript tracker](https://docs.snowplowanalytics.com/docs/collecting-data/collecting-from-own-applications/javascript-trackers/)
+to track custom events.
For the recommended frontend tracking implementation, see [Usage recommendations](#usage-recommendations).
-Tracking implementations must have an `action` and a `category`. You can provide additional
+Tracking implementations must have an `action` and a `category`. You can provide additional
categories from the [structured event taxonomy](index.md#structured-event-taxonomy) with an `extra` object
that accepts key-value pairs.
@@ -67,8 +67,8 @@ The following example shows `data-track-*` attributes assigned to a button:
#### Event listeners
Event listeners bind at the document level to handle click events in elements with data attributes.
-This allows them to be handled when the DOM re-renders or changes. Document-level binding reduces
-the likelihood that click events stop propagating up the DOM tree.
+This allows them to be handled when the DOM re-renders or changes. Document-level binding reduces
+the likelihood that click events stop propagating up the DOM tree.
If click events stop propagating, you must implement listeners and [Vue component tracking](#implement-vue-component-tracking) or [raw JavaScript tracking](#implement-raw-javascript-tracking).
@@ -102,12 +102,12 @@ track_action: "click_button" })
### Implement Vue component tracking
For custom event tracking, use a Vue `mixin` in components. Vue `mixin` exposes the `Tracking.event`
-static method and the `track` method. You can specify tracking options in `data` or `computed`.
-These options override any defaults and allow the values to be dynamic from props or based on state.
+static method and the `track` method. You can specify tracking options in `data` or `computed`.
+These options override any defaults and allow the values to be dynamic from props or based on state.
-Several default options are passed when an event is tracked from the component:
+Several default options are passed when an event is tracked from the component:
-- `category`: If you don't specify, by default `document.body.dataset.page` is used.
+- `category`: If you don't specify, by default `document.body.dataset.page` is used.
- `label`
- `property`
- `value`
@@ -121,7 +121,7 @@ To implement Vue component tracking:
const trackingMixin = Tracking.mixin;
```
-1. Provide categories to track the event from the component. For example, to track all events in a
+1. Provide categories to track the event from the component. For example, to track all events in a
component with a label, use the `label` category:
```javascript
@@ -293,14 +293,14 @@ describe('MyTracking', () => {
### Form tracking
-To enable Snowplow automatic [form tracking](https://docs.snowplowanalytics.com/docs/collecting-data/collecting-from-own-applications/javascript-trackers/javascript-tracker/javascript-tracker-v2/tracking-specific-events/#form-tracking):
+To enable Snowplow automatic [form tracking](https://docs.snowplowanalytics.com/docs/collecting-data/collecting-from-own-applications/javascript-trackers/javascript-tracker/javascript-tracker-v2/tracking-specific-events/#form-tracking):
-1. Call `Tracking.enableFormTracking` when the DOM is ready.
+1. Call `Tracking.enableFormTracking` when the DOM is ready.
1. Provide a `config` object that includes at least one of the following elements:
- `forms` determines the forms to track. Identified by the CSS class name.
- `fields` determines the fields inside the tracked forms to track. Identified by the field `name`.
1. Optional. Provide a list of contexts as the second argument. The [`gitlab_standard`](schemas.md#gitlab_standard) schema is excluded from these events.
-
+
```javascript
Tracking.enableFormTracking({
forms: { allow: ['sign-in-form', 'password-recovery-form'] },
@@ -339,7 +339,7 @@ Backend tracking provides:
- User behavior tracking
- Instrumentation to monitor and visualize performance over time in a section or aspect of code.
-To add custom event tracking and instrumentation, call the `GitLab::Tracking.event` class method.
+To add custom event tracking and instrumentation, call the `GitLab::Tracking.event` class method.
For example:
```ruby
@@ -370,7 +370,7 @@ Use the following arguments:
### Unit testing
-To test backend Snowplow events, use the `expect_snowplow_event` helper. For more information, see
+To test backend Snowplow events, use the `expect_snowplow_event` helper. For more information, see
[testing best practices](../testing_guide/best_practices.md#test-snowplow-events).
### Performance
@@ -419,17 +419,17 @@ Snowplow Inspector Chrome Extension is a browser extension for testing frontend
[Snowplow Micro](https://snowplowanalytics.com/blog/2019/07/17/introducing-snowplow-micro/) is a
Docker-based solution for testing backend and frontend in a local development environment. Snowplow Micro
-records the same events as the full Snowplow pipeline. To query events, use the Snowplow Micro API.
+records the same events as the full Snowplow pipeline. To query events, use the Snowplow Micro API.
-To install and run Snowplow Micro, complete these steps to modify the
+To install and run Snowplow Micro, complete these steps to modify the
[GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit):
1. Ensure [Docker is installed](https://docs.docker.com/get-docker/) and running.
-1. To install Snowplow Micro, clone the settings in
+1. To install Snowplow Micro, clone the settings in
[this project](https://gitlab.com/gitlab-org/snowplow-micro-configuration).
-1. Navigate to the directory with the cloned project,
+1. Navigate to the directory with the cloned project,
and start the appropriate Docker container:
```shell
diff --git a/doc/development/testing_guide/img/review-app-parent-pipeline.png b/doc/development/testing_guide/img/review-app-parent-pipeline.png
index 5686d5f6ebe..dd64d7d1be5 100644
--- a/doc/development/testing_guide/img/review-app-parent-pipeline.png
+++ b/doc/development/testing_guide/img/review-app-parent-pipeline.png
Binary files differ
diff --git a/doc/integration/elasticsearch.md b/doc/integration/elasticsearch.md
index 9705242ea35..89f36397039 100644
--- a/doc/integration/elasticsearch.md
+++ b/doc/integration/elasticsearch.md
@@ -93,7 +93,7 @@ the indexer itself.
This project relies on [International Components for Unicode](https://icu.unicode.org/) (ICU) for text encoding,
therefore we must ensure the development packages for your platform are
-installed before running `make`.
+installed before running `make`.
#### Debian / Ubuntu
diff --git a/doc/integration/img/ding_talk_menu.png b/doc/integration/img/ding_talk_menu.png
index 2c5a23435fa..fe020cab397 100644
--- a/doc/integration/img/ding_talk_menu.png
+++ b/doc/integration/img/ding_talk_menu.png
Binary files differ
diff --git a/doc/integration/img/omniauth_providers_v_14_6.png b/doc/integration/img/omniauth_providers_v_14_6.png
index 9d67b47c4e2..b434e9a210b 100644
--- a/doc/integration/img/omniauth_providers_v_14_6.png
+++ b/doc/integration/img/omniauth_providers_v_14_6.png
Binary files differ
diff --git a/doc/integration/jira/dvcs.md b/doc/integration/jira/dvcs.md
index 8a1664dff79..e69b7675a59 100644
--- a/doc/integration/jira/dvcs.md
+++ b/doc/integration/jira/dvcs.md
@@ -273,7 +273,7 @@ If you get a `Sync Failed` error in Jira when [refreshing repository data](#refr
```plaintext
Failed to execute request [https://gitlab.com/api/v4/projects/:id/merge_requests?page=1&per_page=100 GET https://gitlab.com/api/v4/projects/:id/merge_requests?page=1&per_page=100 returned a response status of 403 Forbidden] errors:
{"message":"403 Forbidden"}
-```
+```
If you find a `{"message":"403 Forbidden"}` error, it is possible that this specific project has some [GitLab features disabled](../../user/project/settings/index.md#sharing-and-permissions).
In the example above, the merge requests feature is disabled.
diff --git a/doc/security/webhooks.md b/doc/security/webhooks.md
index 5aa75aca8fc..47ef90cbe55 100644
--- a/doc/security/webhooks.md
+++ b/doc/security/webhooks.md
@@ -27,7 +27,7 @@ sent.
Webhook requests are made by the GitLab server itself and use a single
(optional) secret token per hook for authorization (instead of a user or
repository-specific token). As a result, these requests may have broader access than
-intended, including access to everything running on the server hosting the webhook. This
+intended, including access to everything running on the server hosting the webhook. This
may include the GitLab server or API itself (for example, `http://localhost:123`).
Depending on the called webhook, this may also result in network access
to other servers within that webhook server's local network (for example,
diff --git a/doc/subscriptions/gitlab_com/index.md b/doc/subscriptions/gitlab_com/index.md
index 404f1a75204..e174a144cfc 100644
--- a/doc/subscriptions/gitlab_com/index.md
+++ b/doc/subscriptions/gitlab_com/index.md
@@ -323,7 +323,7 @@ To purchase additional minutes for your personal namespace:
1. Select **Edit profile**.
1. On the left sidebar, select **Usage Quotas**.
1. Select **Buy additional minutes** and GitLab redirects you to the Customers Portal.
-1. Locate the subscription card that's linked to your personal namespace on GitLab SaaS, click **Buy more CI minutes**, and complete the details about the transaction.
+1. Locate the subscription card that's linked to your personal namespace on GitLab SaaS, click **Buy more CI minutes**, and complete the details about the transaction.
After we process your payment, the extra CI minutes are synced to your group
namespace.
diff --git a/doc/topics/cron/index.md b/doc/topics/cron/index.md
index 3947a72cac6..b58f5e6c5eb 100644
--- a/doc/topics/cron/index.md
+++ b/doc/topics/cron/index.md
@@ -66,6 +66,6 @@ More examples of how to write a cron schedule can be found at
GitLab uses [`fugit`](https://github.com/floraison/fugit) to parse cron syntax
strings on the server and [cron-validator](https://github.com/TheCloudConnectors/cron-validator)
-to validate cron syntax in the browser. GitLab uses
+to validate cron syntax in the browser. GitLab uses
[`cRonstrue`](https://github.com/bradymholt/cRonstrue) to convert cron to human-readable strings
in the browser.
diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md
index 7a7b7cfe1a8..aafaabad81f 100644
--- a/doc/update/deprecations.md
+++ b/doc/update/deprecations.md
@@ -242,7 +242,7 @@ Announced: 2021-11-22
### Value Stream Analytics filtering calculation change
-We are changing how the date filter works in Value Stream Analytics. Instead of filtering by the time that the issue or merge request was created, the date filter will filter by the end event time of the given stage. This will result in completely different figures after this change has rolled out.
+We are changing how the date filter works in Value Stream Analytics. Instead of filtering by the time that the issue or merge request was created, the date filter will filter by the end event time of the given stage. This will result in completely different figures after this change has rolled out.
If you monitor Value Stream Analytics metrics and rely on the date filter, to avoid losing data, you must save the data prior to this change.
diff --git a/doc/user/admin_area/index.md b/doc/user/admin_area/index.md
index 35d5d56761d..d25caf1d7b4 100644
--- a/doc/user/admin_area/index.md
+++ b/doc/user/admin_area/index.md
@@ -258,7 +258,7 @@ To [Create a new group](../group/index.md#create-a-group) click **New group**.
> [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/340920) in GitLab 14.4.
-You can administer all [topics](../project/working_with_projects.md#explore-topics) in the
+You can administer all [topics](../project/working_with_projects.md#explore-topics) in the
GitLab instance from the Admin Area's Topics page.
To access the Topics page:
diff --git a/doc/user/analytics/img/product_analytics_commits_per_mr_v14_4.png b/doc/user/analytics/img/product_analytics_commits_per_mr_v14_4.png
index 649416c02c0..2bfde7beead 100644
--- a/doc/user/analytics/img/product_analytics_commits_per_mr_v14_4.png
+++ b/doc/user/analytics/img/product_analytics_commits_per_mr_v14_4.png
Binary files differ
diff --git a/doc/user/analytics/img/productivity_analytics_time_to_merge_v14_4.png b/doc/user/analytics/img/productivity_analytics_time_to_merge_v14_4.png
index b5d0dd4d2ea..0b30aff2c7a 100644
--- a/doc/user/analytics/img/productivity_analytics_time_to_merge_v14_4.png
+++ b/doc/user/analytics/img/productivity_analytics_time_to_merge_v14_4.png
Binary files differ
diff --git a/doc/user/analytics/img/productivity_analytics_trendline_v14_4.png b/doc/user/analytics/img/productivity_analytics_trendline_v14_4.png
index da5d3aec957..e0b3c54dee2 100644
--- a/doc/user/analytics/img/productivity_analytics_trendline_v14_4.png
+++ b/doc/user/analytics/img/productivity_analytics_trendline_v14_4.png
Binary files differ
diff --git a/doc/user/analytics/index.md b/doc/user/analytics/index.md
index 0cc21e3f390..6a157dbb5ae 100644
--- a/doc/user/analytics/index.md
+++ b/doc/user/analytics/index.md
@@ -100,29 +100,29 @@ We use the following terms to describe GitLab analytics:
- All incidents are related to a [production environment](../../ci/environments/index.md#deployment-tier-of-environments).
- Incidents and deployments have a strictly one-to-one relationship (meaning any incident is related to only one production deployment, and any production deployment is related to no more than one incident).
-- **Lead time:** The duration of your value stream, from start to finish. Different to
-[Lead time for changes](#lead-time-for-changes). Often displayed in combination with "cycle time,"
-which is shorter. GitLab measures lead time from issue creation to issue close. GitLab displays lead
+- **Lead time:** The duration of your value stream, from start to finish. Different to
+[Lead time for changes](#lead-time-for-changes). Often displayed in combination with "cycle time,"
+which is shorter. GitLab measures lead time from issue creation to issue close. GitLab displays lead
time in [group-level Value Stream Analytics](../group/value_stream_analytics/index.md).
-- **Mean Time to Change (MTTC):** The average duration between idea and delivery. GitLab measures
+- **Mean Time to Change (MTTC):** The average duration between idea and delivery. GitLab measures
MTTC from issue creation to the issue's latest related merge request's deployment to production.
-- **Mean Time to Detect (MTTD):** The average duration that a bug goes undetected in production.
+- **Mean Time to Detect (MTTD):** The average duration that a bug goes undetected in production.
GitLab measures MTTD from deployment of bug to issue creation.
-- **Mean Time To Merge (MTTM):** The average lifespan of a merge request. GitLab measures MTTM from
-merge request creation to merge request merge (and closed/un-merged merge requests are excluded).
+- **Mean Time To Merge (MTTM):** The average lifespan of a merge request. GitLab measures MTTM from
+merge request creation to merge request merge (and closed/un-merged merge requests are excluded).
For more information, see [Merge Request Analytics](merge_request_analytics.md).
-- **Mean Time to Recover/Repair/Resolution/Resolve/Restore (MTTR):** The average duration that a bug
+- **Mean Time to Recover/Repair/Resolution/Resolve/Restore (MTTR):** The average duration that a bug
is not fixed in production. GitLab measures MTTR from deployment of bug to deployment of fix.
-- **Throughput:** The number of issues closed or merge requests merged (not closed) in a period of
+- **Throughput:** The number of issues closed or merge requests merged (not closed) in a period of
time. Often measured per sprint. GitLab displays merge request throughput in [Merge Request Analytics](merge_request_analytics.md).
-- **Value Stream:** The entire work process that is followed to deliver value to customers. For example,
-the [DevOps lifecycle](https://about.gitlab.com/stages-devops-lifecycle/) is a value stream that starts
+- **Value Stream:** The entire work process that is followed to deliver value to customers. For example,
+the [DevOps lifecycle](https://about.gitlab.com/stages-devops-lifecycle/) is a value stream that starts
with "plan" and ends with "monitor". GitLab helps you track your value stream using [Value Stream Analytics](value_stream_analytics.md).
-- **Velocity:** The total issue burden completed in some period of time. The burden is usually measured
-in points or weight, often per sprint. For example, your velocity may be "30 points per sprint". GitLab
+- **Velocity:** The total issue burden completed in some period of time. The burden is usually measured
+in points or weight, often per sprint. For example, your velocity may be "30 points per sprint". GitLab
measures velocity as the total points or weight of issues closed in a given period of time.
## Lead time for changes
-"Lead Time for Changes" differs from "Lead Time" because it "focuses on measuring only the time to
+"Lead Time for Changes" differs from "Lead Time" because it "focuses on measuring only the time to
deliver a feature once it has been developed", as described in ([Measuring DevOps Performance](https://devops.com/measuring-devops-performance/)).
diff --git a/doc/user/analytics/productivity_analytics.md b/doc/user/analytics/productivity_analytics.md
index da55a0f093c..e1ba2f5565e 100644
--- a/doc/user/analytics/productivity_analytics.md
+++ b/doc/user/analytics/productivity_analytics.md
@@ -34,14 +34,14 @@ Metrics and visualizations of **merged** merge requests are available on a proje
### Time to merge
-The **Time to merge** histogram shows the number of merge requests and the number
+The **Time to merge** histogram shows the number of merge requests and the number
of days it took to merge after creation. Select a column to filter subsequent charts.
![Metrics for number of days merge requests per number of days](img/productivity_analytics_time_to_merge_v14_4.png)
### Trendline
-The **Trendline** scatterplot shows all merge requests on a certain date,
+The **Trendline** scatterplot shows all merge requests on a certain date,
and the days it took to complete the action and a 30 day rolling median. Select the dropdown to view:
- Time from first commit to first comment.
@@ -55,15 +55,15 @@ and the days it took to complete the action and a 30 day rolling median. Select
### Commits and merge request size
-Under the **Trendline** scatterplot, the left-side histogram shows
-the time taken (in hours) between commits and comments until the merge
+Under the **Trendline** scatterplot, the left-side histogram shows
+the time taken (in hours) between commits and comments until the merge
request is merged. Select the dropdown to view:
- Time from first commit to first comment.
- Time from first comment until last commit.
- Time from last commit to merge.
-The right-side histogram shows the size or complexity of a merge request.
+The right-side histogram shows the size or complexity of a merge request.
Select the dropdown to view:
- Number of commits per merge request.
@@ -74,7 +74,7 @@ Select the dropdown to view:
### Merge request list
-The **List** table shows a list of merge requests with their respective time duration metrics.
+The **List** table shows a list of merge requests with their respective time duration metrics.
Sort metrics by:
@@ -83,7 +83,7 @@ Sort metrics by:
- Time from last commit to merge.
Filter metrics by:
-
+
- Number of commits per merge request.
- Number of lines of code per commit.
- Number of files touched.
diff --git a/doc/user/application_security/api_fuzzing/index.md b/doc/user/application_security/api_fuzzing/index.md
index 9ba24d9931f..d96d28d3c66 100644
--- a/doc/user/application_security/api_fuzzing/index.md
+++ b/doc/user/application_security/api_fuzzing/index.md
@@ -14,7 +14,7 @@ miss.
INFO:
Try fuzz testing in GitLab Ultimate.
-[It's free for 30 days](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=u-api-fuzzing-docs).
+[It's free for 30 days](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=u-api-fuzzing-docs).
We recommend that you use fuzz testing in addition to [GitLab Secure](../index.md)'s
other security scanners and your own test processes. If you're using [GitLab CI/CD](../../../ci/index.md),
diff --git a/doc/user/application_security/dast/browser_based.md b/doc/user/application_security/dast/browser_based.md
index 7e3d927f31d..f63ed2a5079 100644
--- a/doc/user/application_security/dast/browser_based.md
+++ b/doc/user/application_security/dast/browser_based.md
@@ -69,7 +69,7 @@ The browser-based crawler can be configured using CI/CD variables.
| `DAST_BROWSER_SEARCH_ELEMENT_TIMEOUT` | [Duration string](https://golang.org/pkg/time/#ParseDuration) | `3s` | The maximum amount of time to allow the browser to search for new elements or navigations. |
| `DAST_BROWSER_EXTRACT_ELEMENT_TIMEOUT` | [Duration string](https://golang.org/pkg/time/#ParseDuration) | `5s` | The maximum amount of time to allow the browser to extract newly found elements or navigations. |
| `DAST_BROWSER_ELEMENT_TIMEOUT` | [Duration string](https://golang.org/pkg/time/#ParseDuration) | `600ms` | The maximum amount of time to wait for an element before determining it is ready for analysis. |
-| `DAST_BROWSER_PAGE_READY_SELECTOR` | selector | `css:#page-is-ready` | Selector that when detected as visible on the page, indicates to the analyzer that the page has finished loading and the scan can continue. Note: When this selector is set, but the element is not found, the scanner waits for the period defined in `DAST_BROWSER_STABILITY_TIMEOUT` before continuing the scan. This can significantly increase scanning time if the element is not present on multiple pages within the site. |
+| `DAST_BROWSER_PAGE_READY_SELECTOR` | selector | `css:#page-is-ready` | Selector that when detected as visible on the page, indicates to the analyzer that the page has finished loading and the scan can continue. Note: When this selector is set, but the element is not found, the scanner waits for the period defined in `DAST_BROWSER_STABILITY_TIMEOUT` before continuing the scan. This can significantly increase scanning time if the element is not present on multiple pages within the site. |
The [DAST variables](index.md#available-cicd-variables) `SECURE_ANALYZERS_PREFIX`, `DAST_FULL_SCAN_ENABLED`, `DAST_AUTO_UPDATE_ADDONS`, `DAST_EXCLUDE_RULES`, `DAST_REQUEST_HEADERS`, `DAST_HTML_REPORT`, `DAST_MARKDOWN_REPORT`, `DAST_XML_REPORT`,
`DAST_AUTH_URL`, `DAST_USERNAME`, `DAST_PASSWORD`, `DAST_USERNAME_FIELD`, `DAST_PASSWORD_FIELD`, `DAST_FIRST_SUBMIT_FIELD`, `DAST_SUBMIT_FIELD`, `DAST_EXCLUDE_URLS`, `DAST_AUTH_VERIFICATION_URL`, `DAST_BROWSER_AUTH_VERIFICATION_SELECTOR`, `DAST_BROWSER_AUTH_VERIFICATION_LOGIN_FORM`, `DAST_BROWSER_AUTH_REPORT`,
diff --git a/doc/user/application_security/dast/index.md b/doc/user/application_security/dast/index.md
index bfe0d8c2b9e..8f26bc8a46c 100644
--- a/doc/user/application_security/dast/index.md
+++ b/doc/user/application_security/dast/index.md
@@ -18,7 +18,7 @@ tool [OWASP Zed Attack Proxy](https://www.zaproxy.org/) for analysis.
INFO:
Want to try out security scanning?
-[Try GitLab Ultimate free for 30 days](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=u-dast-docs).
+[Try GitLab Ultimate free for 30 days](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=u-dast-docs).
After DAST creates its report, GitLab evaluates it for discovered
vulnerabilities between the source and target branches. Relevant
diff --git a/doc/user/application_security/index.md b/doc/user/application_security/index.md
index d2029be7f3d..20d7b1931a0 100644
--- a/doc/user/application_security/index.md
+++ b/doc/user/application_security/index.md
@@ -18,7 +18,7 @@ actionable information _before_ changes are merged enables you to be proactive.
INFO:
Want to try out security scanning?
-[Try GitLab Ultimate free for 30 days](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=u-application-security-docs).
+[Try GitLab Ultimate free for 30 days](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=u-application-security-docs).
GitLab also provides high-level statistics of vulnerabilities across projects and groups:
diff --git a/doc/user/application_security/security_dashboard/img/pipeline_security_dashboard_v14_4.png b/doc/user/application_security/security_dashboard/img/pipeline_security_dashboard_v14_4.png
index ac123d2b528..ad9122ee23c 100644
--- a/doc/user/application_security/security_dashboard/img/pipeline_security_dashboard_v14_4.png
+++ b/doc/user/application_security/security_dashboard/img/pipeline_security_dashboard_v14_4.png
Binary files differ
diff --git a/doc/user/application_security/security_dashboard/index.md b/doc/user/application_security/security_dashboard/index.md
index 18635599dda..122d462ac96 100644
--- a/doc/user/application_security/security_dashboard/index.md
+++ b/doc/user/application_security/security_dashboard/index.md
@@ -9,7 +9,7 @@ info: To determine the technical writer assigned to the Stage/Group associated w
INFO:
Want to try out security scanning?
-[Try GitLab Ultimate free for 30 days](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=u-security-dashboard-docs).
+[Try GitLab Ultimate free for 30 days](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=u-security-dashboard-docs).
GitLab provides a comprehensive set of features for viewing and managing vulnerabilities:
diff --git a/doc/user/clusters/agent/index.md b/doc/user/clusters/agent/index.md
index 3f639322c8f..bbd8ebaf54c 100644
--- a/doc/user/clusters/agent/index.md
+++ b/doc/user/clusters/agent/index.md
@@ -19,7 +19,7 @@ The Agent is installed into the cluster through code, providing you with a fast,
INFO:
Get Network Security Alerts in GitLab by upgrading to Ultimate.
-[Try a free 30-day trial now](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=p-cluster-agent-docs).
+[Try a free 30-day trial now](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=p-cluster-agent-docs).
With GitOps, you can manage containerized clusters and applications from a Git repository that:
diff --git a/doc/user/clusters/agent/install/index.md b/doc/user/clusters/agent/install/index.md
index fad9d4f08f1..83031c30e59 100644
--- a/doc/user/clusters/agent/install/index.md
+++ b/doc/user/clusters/agent/install/index.md
@@ -353,7 +353,7 @@ Additional management interfaces are planned for the GitLab Kubernetes Agent.
## Upgrades and version compatibility
-The GitLab Kubernetes Agent is comprised of two major components: `agentk` and `kas`.
+The GitLab Kubernetes Agent is comprised of two major components: `agentk` and `kas`.
As we provide `kas` installers built into the various GitLab installation methods, the required `kas` version corresponds to the GitLab `major.minor` (X.Y) versions.
At the same time, `agentk` and `kas` can differ by 1 minor version in either direction. For example,
diff --git a/doc/user/compliance/license_compliance/img/policies_maintainer_edit_v14_3.png b/doc/user/compliance/license_compliance/img/policies_maintainer_edit_v14_3.png
index 85b2a52e04b..256c66bf7d8 100644
--- a/doc/user/compliance/license_compliance/img/policies_maintainer_edit_v14_3.png
+++ b/doc/user/compliance/license_compliance/img/policies_maintainer_edit_v14_3.png
Binary files differ
diff --git a/doc/user/compliance/license_compliance/index.md b/doc/user/compliance/license_compliance/index.md
index 7b8c2d5cff8..143e2badd9d 100644
--- a/doc/user/compliance/license_compliance/index.md
+++ b/doc/user/compliance/license_compliance/index.md
@@ -16,7 +16,7 @@ is incompatible with yours, then you can deny the use of that license.
INFO:
Try License Compliance scanning to search project dependencies in GitLab Ultimate.
-[It's free for 30 days](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=u-compliance-docs).
+[It's free for 30 days](https://about.gitlab.com/free-trial?glm_source=docs.gitlab.com&glm_content=u-compliance-docs).
You can take advantage of License Compliance by either:
@@ -51,6 +51,7 @@ When GitLab detects a **Denied** license, you can view it in the [license list](
![License List](img/license_list_v13_0.png)
You can view and modify existing policies from the [policies](#policies) tab.
+
![Edit Policy](img/policies_maintainer_edit_v14_3.png)
## License expressions
@@ -194,8 +195,8 @@ directory of your project.
### Working with Monorepos
-Depending on your language, you may need to specify the path to the individual
-projects of a monorepo using the `LICENSE_FINDER_CLI_OPTS` variable. Passing in
+Depending on your language, you may need to specify the path to the individual
+projects of a monorepo using the `LICENSE_FINDER_CLI_OPTS` variable. Passing in
the project paths can significantly speed up builds over using the `--recursive`
license_finder option.
diff --git a/doc/user/group/devops_adoption/index.md b/doc/user/group/devops_adoption/index.md
index c67fa4abfc5..4151745189d 100644
--- a/doc/user/group/devops_adoption/index.md
+++ b/doc/user/group/devops_adoption/index.md
@@ -22,7 +22,7 @@ You can use Group DevOps Adoption to:
- Identify specific subgroups that are lagging in their adoption of GitLab features, so you can guide them on
their DevOps journey.
-- Find subgroups that have adopted certain features, and provide guidance to other subgroups on
+- Find subgroups that have adopted certain features, and provide guidance to other subgroups on
how to use those features.
- Verify if you are getting the return on investment that you expected from GitLab.
@@ -51,7 +51,7 @@ DevOps Adoption shows feature adoption for development, security, and operations
## Feature adoption
-DevOps Adoption shows feature adoption data for groups and subgroups for the previous calendar month.
+DevOps Adoption shows feature adoption data for groups and subgroups for the previous calendar month.
A feature shows as **adopted** when a group has used the feature in a project during the time period.
This includes projects in any subgroups of the group. For example, if an issue was created in a project in a group, the group has adopted issues in that time.
@@ -63,12 +63,12 @@ When GitLab measures DevOps Adoption, some common DevOps information is not incl
- Dormant projects. It doesn't matter how many projects in the group use a feature. Even if you have many dormant projects, it doesn't lower the adoption.
- New GitLab features. Adoption is the total number of features adopted, not the percent of features.
-## When DevOps Adoption data is gathered
+## When DevOps Adoption data is gathered
-A weekly task processes data for DevOps Adoption. This task is disabled until you access
-DevOps Adoption for a group for the first time.
+A weekly task processes data for DevOps Adoption. This task is disabled until you access
+DevOps Adoption for a group for the first time.
-The data processing task updates the data on the first day of each month. If the monthly update
+The data processing task updates the data on the first day of each month. If the monthly update
fails, the task tries daily until it succeeds.
DevOps Adoption data may take up to a minute to appear while GitLab processes the group's data.
@@ -76,13 +76,13 @@ DevOps Adoption data may take up to a minute to appear while GitLab processes th
## View feature adoption over time
The **Adoption over time** chart shows the total number of adopted features from the previous
-twelve months. The chart only shows data from when you enabled DevOps Adoption for the group.
+twelve months. The chart only shows data from when you enabled DevOps Adoption for the group.
To view feature adoption over time:
1. On the top bar, select **Menu > Groups** and find your group.
1. On the left sidebar, select **Analytics > DevOps adoption**.
-1. Select the **Overview** tab.
+1. Select the **Overview** tab.
Tooltips display information about the features tracked for individual months.
diff --git a/doc/user/group/index.md b/doc/user/group/index.md
index 42fc2f532e1..a586ef9ffe8 100644
--- a/doc/user/group/index.md
+++ b/doc/user/group/index.md
@@ -568,7 +568,7 @@ You should consider these security implications before configuring IP address re
the IP restrictions. But when the running CI/CD job sends Git requests from a
restricted IP address, the IP restriction prevents code from being cloned.
- **User dashboard activity**: Users may still see some events from the IP restricted groups and projects
- on their dashboard. Activity may include push, merge, issue, or comment events.
+ on their dashboard. Activity may include push, merge, issue, or comment events.
To restrict group access by IP address:
diff --git a/doc/user/group/saml_sso/index.md b/doc/user/group/saml_sso/index.md
index 6b3e72230a0..e2a20c1c427 100644
--- a/doc/user/group/saml_sso/index.md
+++ b/doc/user/group/saml_sso/index.md
@@ -126,7 +126,7 @@ SSO has the following effects when enabled:
- For groups, users can't share a project in the group outside the top-level group,
even if the project is forked.
- For Git activity over SSH and HTTPS, users must have at least one active session signed-in through SSO before they can push to or
- pull from a GitLab repository.
+ pull from a GitLab repository.
- Credentials that are not tied to regular users (for example, access tokens and deploy keys) do not have the SSO check enforced.
- Users must be signed-in through SSO before they can pull images using the [Dependency Proxy](../../packages/dependency_proxy/index.md).
<!-- Add bullet for API activity when https://gitlab.com/gitlab-org/gitlab/-/issues/9152 is complete -->
@@ -369,7 +369,7 @@ To link the SAML groups from the `saml:AttributeStatement` example above:
If a user is a member of multiple SAML groups mapped to the same GitLab group,
the user gets the highest access level from the groups. For example, if one group
is linked as `Guest` and another `Maintainer`, a user in both groups gets `Maintainer`
-access.
+access.
Users granted:
@@ -487,7 +487,7 @@ Specific attention should be paid to:
#### Generate a SAML Response
-SAML Responses can be used to preview the attribute names and values sent in the assertions list while attempting to sign in using an IdP.
+SAML Responses can be used to preview the attribute names and values sent in the assertions list while attempting to sign in using an IdP.
To generate a SAML Response:
diff --git a/doc/user/group/value_stream_analytics/index.md b/doc/user/group/value_stream_analytics/index.md
index a0a13c71d95..b91e258b04a 100644
--- a/doc/user/group/value_stream_analytics/index.md
+++ b/doc/user/group/value_stream_analytics/index.md
@@ -86,8 +86,8 @@ the date filter behavior to filter the end event time of the currently selected
The change makes it possible to get a much better picture about the completed items within the
stage and helps uncover long-running items.
-For example, an issue was created a year ago and the current stage was finished in the current month.
-If you were to look at the metrics for the last three months, this issue would not be included in the calculation of
+For example, an issue was created a year ago and the current stage was finished in the current month.
+If you were to look at the metrics for the last three months, this issue would not be included in the calculation of
the stage metrics. With the new date filter, this item would be included.
DISCLAIMER:
@@ -100,7 +100,7 @@ sole discretion of GitLab Inc.
## How metrics are measured
-> DORA API-based deployment metrics for group-level Value Stream Analytics were
+> DORA API-based deployment metrics for group-level Value Stream Analytics were
> [moved](https://gitlab.com/gitlab-org/gitlab/-/issues/337256) from GitLab Ultimate to GitLab Premium in 14.3.
The "Time" metrics near the top of the page are measured as follows:
diff --git a/doc/user/img/award_emoji_select_v14_6.png b/doc/user/img/award_emoji_select_v14_6.png
index 500b78bdf44..c8185a1b4cb 100644
--- a/doc/user/img/award_emoji_select_v14_6.png
+++ b/doc/user/img/award_emoji_select_v14_6.png
Binary files differ
diff --git a/doc/user/profile/index.md b/doc/user/profile/index.md
index a2d9ac21a18..90cb6502bbd 100644
--- a/doc/user/profile/index.md
+++ b/doc/user/profile/index.md
@@ -260,7 +260,7 @@ To change your commit email:
1. In the **Commit email** dropdown list, select an email address.
1. Select **Update profile settings**.
-## Change your primary email
+## Change your primary email
Your primary email:
diff --git a/doc/user/project/integrations/img/webhook_testing.png b/doc/user/project/integrations/img/webhook_testing.png
index 27836556acc..88ce05668f9 100644
--- a/doc/user/project/integrations/img/webhook_testing.png
+++ b/doc/user/project/integrations/img/webhook_testing.png
Binary files differ
diff --git a/doc/user/project/repository/gpg_signed_commits/index.md b/doc/user/project/repository/gpg_signed_commits/index.md
index 94fe6ffac56..27767f8d325 100644
--- a/doc/user/project/repository/gpg_signed_commits/index.md
+++ b/doc/user/project/repository/gpg_signed_commits/index.md
@@ -40,7 +40,7 @@ For a commit to be verified by GitLab:
account.
- One of the emails in the GPG key must match a **verified** email address
used by the committer in GitLab. This address will be part of the public key.
- If you want to keep this address private, use the automatically generated
+ If you want to keep this address private, use the automatically generated
[private commit email address](../../../profile/index.md#use-an-automatically-generated-private-commit-email)
GitLab provides in your profile.
- The committer's email address must match the verified email address from the
diff --git a/doc/user/project/repository/jupyter_notebooks/img/jupyter_notebook_diff_v14_5.png b/doc/user/project/repository/jupyter_notebooks/img/jupyter_notebook_diff_v14_5.png
index bc63322cd65..3dc940c23de 100644
--- a/doc/user/project/repository/jupyter_notebooks/img/jupyter_notebook_diff_v14_5.png
+++ b/doc/user/project/repository/jupyter_notebooks/img/jupyter_notebook_diff_v14_5.png
Binary files differ
diff --git a/locale/gitlab.pot b/locale/gitlab.pot
index 5e6e61fb5c0..b6f92514a89 100644
--- a/locale/gitlab.pot
+++ b/locale/gitlab.pot
@@ -30953,6 +30953,9 @@ msgstr ""
msgid "SecurityOrchestration|An error occurred unassigning your security policy project"
msgstr ""
+msgid "SecurityOrchestration|Choose a project"
+msgstr ""
+
msgid "SecurityOrchestration|Description"
msgstr ""
diff --git a/qa/qa/resource/deploy_token.rb b/qa/qa/resource/project_deploy_token.rb
index f5d3b87fc2b..b31a7c25157 100644
--- a/qa/qa/resource/deploy_token.rb
+++ b/qa/qa/resource/project_deploy_token.rb
@@ -2,25 +2,13 @@
module QA
module Resource
- class DeployToken < Base
+ class ProjectDeployToken < Base
attr_accessor :name, :expires_at
attr_writer :scopes
- attribute :username do
- Page::Project::Settings::Repository.perform do |repository_page|
- repository_page.expand_deploy_tokens do |token|
- token.token_username
- end
- end
- end
-
- attribute :password do
- Page::Project::Settings::Repository.perform do |repository_page|
- repository_page.expand_deploy_tokens do |token|
- token.token_password
- end
- end
- end
+ attribute :id
+ attribute :token
+ attribute :username
attribute :project do
Project.fabricate! do |resource|
@@ -29,6 +17,35 @@ module QA
end
end
+ def fabricate_via_api!
+ super
+ end
+
+ def api_get_path
+ "/projects/#{project.id}/deploy_tokens"
+ end
+
+ def api_post_path
+ api_get_path
+ end
+
+ def api_post_body
+ {
+ name: @name,
+ scopes: @scopes
+ }
+ end
+
+ def api_delete_path
+ "/projects/#{project.id}/deploy_tokens/#{id}"
+ end
+
+ def resource_web_url(resource)
+ super
+ rescue ResourceURLMissingError
+ # this particular resource does not expose a web_url property
+ end
+
def fabricate!
project.visit!
diff --git a/qa/qa/specs/features/browser_ui/5_package/container_registry/container_registry_omnibus_spec.rb b/qa/qa/specs/features/browser_ui/5_package/container_registry/container_registry_omnibus_spec.rb
index 51735d79fbd..66788069cd7 100644
--- a/qa/qa/specs/features/browser_ui/5_package/container_registry/container_registry_omnibus_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/container_registry/container_registry_omnibus_spec.rb
@@ -14,15 +14,15 @@ module QA
end
let(:project_deploy_token) do
- Resource::DeployToken.fabricate_via_browser_ui! do |deploy_token|
+ Resource::ProjectDeployToken.fabricate_via_api! do |deploy_token|
deploy_token.name = 'registry-deploy-token'
deploy_token.project = project
- deploy_token.scopes = [
- :read_repository,
- :read_package_registry,
- :write_package_registry,
- :read_registry,
- :write_registry
+ deploy_token.scopes = %w[
+ read_repository
+ read_package_registry
+ write_package_registry
+ read_registry
+ write_registry
]
end
end
@@ -60,7 +60,7 @@ module QA
when :personal_access_token
"\"#{personal_access_token}\""
when :project_deploy_token
- "\"#{project_deploy_token.password}\""
+ "\"#{project_deploy_token.token}\""
when :ci_job_token
'$CI_JOB_TOKEN'
end
diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb
index 3f5e8b1a630..42128992f1b 100644
--- a/qa/qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/helm_registry_spec.rb
@@ -88,7 +88,7 @@ module QA
when :ci_job_token
'${CI_JOB_TOKEN}'
when :project_deploy_token
- project_deploy_token.password
+ project_deploy_token.token
end
end
diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb
index 2aa93de0b9e..7aba5d15818 100644
--- a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_gradle_repository_spec.rb
@@ -97,7 +97,7 @@ module QA
when :ci_job_token
'System.getenv("CI_JOB_TOKEN")'
when :project_deploy_token
- "\"#{project_deploy_token.password}\""
+ "\"#{project_deploy_token.token}\""
end
end
diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_repository_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_repository_spec.rb
index f42093bffcd..bacd76a3aa5 100644
--- a/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_repository_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/maven_repository_spec.rb
@@ -142,7 +142,7 @@ module QA
when :ci_job_token
'${env.CI_JOB_TOKEN}'
when :project_deploy_token
- project_deploy_token.password
+ project_deploy_token.token
end
end
diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb
index 561bbd16514..83ea556fced 100644
--- a/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_instance_level_spec.rb
@@ -16,13 +16,13 @@ module QA
end
let(:project_deploy_token) do
- Resource::DeployToken.fabricate_via_browser_ui! do |deploy_token|
+ Resource::ProjectDeployToken.fabricate_via_api! do |deploy_token|
deploy_token.name = 'npm-deploy-token'
deploy_token.project = project
- deploy_token.scopes = [
- :read_repository,
- :read_package_registry,
- :write_package_registry
+ deploy_token.scopes = %w[
+ read_repository
+ read_package_registry
+ write_package_registry
]
end
end
@@ -151,7 +151,7 @@ module QA
when :ci_job_token
'${CI_JOB_TOKEN}'
when :project_deploy_token
- "\"#{project_deploy_token.password}\""
+ "\"#{project_deploy_token.token}\""
end
end
diff --git a/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_project_level_spec.rb b/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_project_level_spec.rb
index 640aae8450a..cec902e073a 100644
--- a/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_project_level_spec.rb
+++ b/qa/qa/specs/features/browser_ui/5_package/package_registry/npm/npm_project_level_spec.rb
@@ -16,13 +16,13 @@ module QA
end
let(:project_deploy_token) do
- Resource::DeployToken.fabricate_via_browser_ui! do |deploy_token|
+ Resource::ProjectDeployToken.fabricate_via_api! do |deploy_token|
deploy_token.name = 'npm-deploy-token'
deploy_token.project = project
- deploy_token.scopes = [
- :read_repository,
- :read_package_registry,
- :write_package_registry
+ deploy_token.scopes = %w[
+ read_repository
+ read_package_registry
+ write_package_registry
]
end
end
@@ -129,7 +129,7 @@ module QA
when :ci_job_token
'${CI_JOB_TOKEN}'
when :project_deploy_token
- "\"#{project_deploy_token.password}\""
+ "\"#{project_deploy_token.token}\""
end
end
diff --git a/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb b/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb
index 81ccc585cf9..c93e57b797c 100644
--- a/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb
+++ b/qa/qa/specs/features/browser_ui/6_release/deploy_token/add_deploy_token_spec.rb
@@ -9,14 +9,14 @@ module QA
deploy_token_name = 'deploy token name'
one_week_from_now = Date.today + 7
- deploy_token = Resource::DeployToken.fabricate_via_browser_ui! do |resource|
+ deploy_token = Resource::ProjectDeployToken.fabricate_via_api! do |resource|
resource.name = deploy_token_name
resource.expires_at = one_week_from_now
- resource.scopes = [:read_repository]
+ resource.scopes = %w[read_repository]
end
expect(deploy_token.username.length).to be > 0
- expect(deploy_token.password.length).to be > 0
+ expect(deploy_token.token.length).to be > 0
end
end
end
diff --git a/qa/spec/support/shared_contexts/packages_registry_shared_context.rb b/qa/spec/support/shared_contexts/packages_registry_shared_context.rb
index e686d254a44..348176d264b 100644
--- a/qa/spec/support/shared_contexts/packages_registry_shared_context.rb
+++ b/qa/spec/support/shared_contexts/packages_registry_shared_context.rb
@@ -42,13 +42,13 @@ module QA
end
let(:project_deploy_token) do
- Resource::DeployToken.fabricate_via_browser_ui! do |deploy_token|
+ Resource::ProjectDeployToken.fabricate_via_api! do |deploy_token|
deploy_token.name = 'package-deploy-token'
deploy_token.project = package_project
- deploy_token.scopes = [
- :read_repository,
- :read_package_registry,
- :write_package_registry
+ deploy_token.scopes = %w[
+ read_repository
+ read_package_registry
+ write_package_registry
]
end
end
diff --git a/spec/factories/ci/pipelines.rb b/spec/factories/ci/pipelines.rb
index 1d25964a4be..b2c1eff6fbd 100644
--- a/spec/factories/ci/pipelines.rb
+++ b/spec/factories/ci/pipelines.rb
@@ -18,15 +18,13 @@ FactoryBot.define do
transient { child_of { nil } }
transient { upstream_of { nil } }
- before(:create) do |pipeline, evaluator|
- pipeline.ensure_project_iid!
- end
-
after(:build) do |pipeline, evaluator|
if evaluator.child_of
pipeline.project = evaluator.child_of.project
pipeline.source = :parent_pipeline
end
+
+ pipeline.ensure_project_iid!
end
after(:create) do |pipeline, evaluator|
diff --git a/spec/graphql/types/ci/job_type_spec.rb b/spec/graphql/types/ci/job_type_spec.rb
index 0da2e291d3c..e3cb56c2ad5 100644
--- a/spec/graphql/types/ci/job_type_spec.rb
+++ b/spec/graphql/types/ci/job_type_spec.rb
@@ -25,7 +25,7 @@ RSpec.describe Types::Ci::JobType do
needs
pipeline
playable
- previousStageJobsAndNeeds
+ previousStageJobsOrNeeds
queued_at
queued_duration
refName
diff --git a/spec/policies/namespaces/user_namespace_policy_spec.rb b/spec/policies/namespaces/user_namespace_policy_spec.rb
index 02eda31bfa7..af20982ed0c 100644
--- a/spec/policies/namespaces/user_namespace_policy_spec.rb
+++ b/spec/policies/namespaces/user_namespace_policy_spec.rb
@@ -3,10 +3,10 @@
require 'spec_helper'
RSpec.describe Namespaces::UserNamespacePolicy do
- let(:user) { create(:user) }
- let(:owner) { create(:user) }
- let(:admin) { create(:admin) }
- let(:namespace) { create(:namespace, owner: owner) }
+ let_it_be(:user) { create(:user) }
+ let_it_be(:owner) { create(:user) }
+ let_it_be(:admin) { create(:admin) }
+ let_it_be(:namespace) { create(:user_namespace, owner: owner) }
let(:owner_permissions) { [:owner_access, :create_projects, :admin_namespace, :read_namespace, :read_statistics, :transfer_projects, :create_package_settings, :read_package_settings] }
diff --git a/spec/requests/api/commit_statuses_spec.rb b/spec/requests/api/commit_statuses_spec.rb
index 155d9a36e17..39be28d7427 100644
--- a/spec/requests/api/commit_statuses_spec.rb
+++ b/spec/requests/api/commit_statuses_spec.rb
@@ -14,8 +14,19 @@ RSpec.describe API::CommitStatuses do
let(:get_url) { "/projects/#{project.id}/repository/commits/#{sha}/statuses" }
context 'ci commit exists' do
- let!(:master) { project.ci_pipelines.create!(source: :push, sha: commit.id, ref: 'master', protected: false) }
- let!(:develop) { project.ci_pipelines.create!(source: :push, sha: commit.id, ref: 'develop', protected: false) }
+ let!(:master) do
+ project.ci_pipelines.build(source: :push, sha: commit.id, ref: 'master', protected: false).tap do |p|
+ p.ensure_project_iid! # Necessary to avoid cross-database modification error
+ p.save!
+ end
+ end
+
+ let!(:develop) do
+ project.ci_pipelines.build(source: :push, sha: commit.id, ref: 'develop', protected: false).tap do |p|
+ p.ensure_project_iid! # Necessary to avoid cross-database modification error
+ p.save!
+ end
+ end
context "reporter user" do
let(:statuses_id) { json_response.map { |status| status['id'] } }
@@ -310,8 +321,19 @@ RSpec.describe API::CommitStatuses do
end
context 'when a pipeline id is specified' do
- let!(:first_pipeline) { project.ci_pipelines.create!(source: :push, sha: commit.id, ref: 'master', status: 'created') }
- let!(:other_pipeline) { project.ci_pipelines.create!(source: :push, sha: commit.id, ref: 'master', status: 'created') }
+ let!(:first_pipeline) do
+ project.ci_pipelines.build(source: :push, sha: commit.id, ref: 'master', status: 'created').tap do |p|
+ p.ensure_project_iid! # Necessary to avoid cross-database modification error
+ p.save!
+ end
+ end
+
+ let!(:other_pipeline) do
+ project.ci_pipelines.build(source: :push, sha: commit.id, ref: 'master', status: 'created').tap do |p|
+ p.ensure_project_iid! # Necessary to avoid cross-database modification error
+ p.save!
+ end
+ end
subject do
post api(post_url, developer), params: {
diff --git a/spec/requests/api/graphql/ci/jobs_spec.rb b/spec/requests/api/graphql/ci/jobs_spec.rb
index f0b886e5e50..692dc8bfd93 100644
--- a/spec/requests/api/graphql/ci/jobs_spec.rb
+++ b/spec/requests/api/graphql/ci/jobs_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe 'Query.project.pipeline' do
let(:pipeline) do
pipeline = create(:ci_pipeline, project: project, user: user)
stage = create(:ci_stage_entity, project: project, pipeline: pipeline, name: 'first', position: 1)
- create(:ci_build, stage_id: stage.id, pipeline: pipeline, name: 'my test job')
+ create(:ci_build, stage_id: stage.id, pipeline: pipeline, name: 'my test job', scheduling_type: :stage)
pipeline
end
@@ -48,7 +48,7 @@ RSpec.describe 'Query.project.pipeline' do
needs {
nodes { #{all_graphql_fields_for('CiBuildNeed')} }
}
- previousStageJobsAndNeeds {
+ previousStageJobsOrNeeds {
nodes {
name
}
@@ -77,68 +77,48 @@ RSpec.describe 'Query.project.pipeline' do
before do
build_stage = create(:ci_stage_entity, position: 2, name: 'build', project: project, pipeline: pipeline)
test_stage = create(:ci_stage_entity, position: 3, name: 'test', project: project, pipeline: pipeline)
- deploy_stage = create(:ci_stage_entity, position: 4, name: 'deploy', project: project, pipeline: pipeline)
- create(:ci_build, pipeline: pipeline, stage_idx: build_stage.position, name: 'docker 1 2', stage: build_stage)
- create(:ci_build, pipeline: pipeline, stage_idx: build_stage.position, name: 'docker 2 2', stage: build_stage)
- create(:ci_build, pipeline: pipeline, stage_idx: test_stage.position, name: 'rspec 1 2', stage: test_stage)
- test_job = create(:ci_bridge, pipeline: pipeline, stage_idx: test_stage.position, name: 'rspec 2 2', stage: test_stage)
- create(:ci_build, pipeline: pipeline, stage_idx: deploy_stage.position, name: 'deploy 1 2', stage: deploy_stage)
- deploy_job = create(:ci_build, pipeline: pipeline, stage_idx: deploy_stage.position, name: 'deploy 2 2', stage: deploy_stage)
+ create(:ci_build, pipeline: pipeline, name: 'docker 1 2', scheduling_type: :stage, stage: build_stage, stage_idx: build_stage.position)
+ create(:ci_build, pipeline: pipeline, name: 'docker 2 2', stage: build_stage, stage_idx: build_stage.position, scheduling_type: :dag)
+ create(:ci_build, pipeline: pipeline, name: 'rspec 1 2', scheduling_type: :stage, stage: test_stage, stage_idx: test_stage.position)
+ test_job = create(:ci_build, pipeline: pipeline, name: 'rspec 2 2', scheduling_type: :dag, stage: test_stage, stage_idx: test_stage.position)
create(:ci_build_need, build: test_job, name: 'my test job')
- create(:ci_build_need, build: deploy_job, name: 'rspec 1 2')
end
- it 'reports the build needs and previous stages with no duplicates', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/346433' do
+ it 'reports the build needs and execution requirements' do
post_graphql(query, current_user: user)
expect(jobs_graphql_data).to contain_exactly(
a_hash_including(
'name' => 'my test job',
'needs' => { 'nodes' => [] },
- 'previousStageJobsAndNeeds' => { 'nodes' => [] }
+ 'previousStageJobsOrNeeds' => { 'nodes' => [] }
),
a_hash_including(
'name' => 'docker 1 2',
'needs' => { 'nodes' => [] },
- 'previousStageJobsAndNeeds' => { 'nodes' => [
- { "name" => "my test job" }
+ 'previousStageJobsOrNeeds' => { 'nodes' => [
+ { 'name' => 'my test job' }
] }
),
a_hash_including(
'name' => 'docker 2 2',
'needs' => { 'nodes' => [] },
- 'previousStageJobsAndNeeds' => { 'nodes' => [
- { "name" => "my test job" }
- ] }
+ 'previousStageJobsOrNeeds' => { 'nodes' => [] }
),
a_hash_including(
'name' => 'rspec 1 2',
'needs' => { 'nodes' => [] },
- 'previousStageJobsAndNeeds' => { 'nodes' => [
- { "name" => "docker 1 2" }, { "name" => "docker 2 2" }
+ 'previousStageJobsOrNeeds' => { 'nodes' => [
+ { 'name' => 'docker 1 2' }, { 'name' => 'docker 2 2' }
] }
),
a_hash_including(
'name' => 'rspec 2 2',
'needs' => { 'nodes' => [a_hash_including('name' => 'my test job')] },
- 'previousStageJobsAndNeeds' => { 'nodes' => [
- { "name" => "docker 1 2" }, { "name" => "docker 2 2" }, { "name" => "my test job" }
- ] }
- ),
- a_hash_including(
- 'name' => 'deploy 1 2',
- 'needs' => { 'nodes' => [] },
- 'previousStageJobsAndNeeds' => { 'nodes' => [
- { "name" => "rspec 1 2" }, { "name" => "rspec 2 2" }
- ] }
- ),
- a_hash_including(
- 'name' => 'deploy 2 2',
- 'needs' => { 'nodes' => [a_hash_including('name' => 'rspec 1 2')] },
- 'previousStageJobsAndNeeds' => { 'nodes' => [
- { "name" => "rspec 1 2" }, { "name" => "rspec 2 2" }
+ 'previousStageJobsOrNeeds' => { 'nodes' => [
+ { 'name' => 'my test job' }
] }
)
)
diff --git a/spec/support/database/cross-database-modification-allowlist.yml b/spec/support/database/cross-database-modification-allowlist.yml
index a28832a615e..60f5c900b9c 100644
--- a/spec/support/database/cross-database-modification-allowlist.yml
+++ b/spec/support/database/cross-database-modification-allowlist.yml
@@ -46,7 +46,6 @@
- "./spec/models/ci/group_variable_spec.rb"
- "./spec/models/ci/job_artifact_spec.rb"
- "./spec/models/ci/job_variable_spec.rb"
-- "./spec/models/ci/pipeline_spec.rb"
- "./spec/models/ci/runner_spec.rb"
- "./spec/models/ci/variable_spec.rb"
- "./spec/models/clusters/applications/runner_spec.rb"
@@ -63,7 +62,6 @@
- "./spec/models/user_status_spec.rb"
- "./spec/requests/api/ci/pipeline_schedules_spec.rb"
- "./spec/requests/api/ci/pipelines_spec.rb"
-- "./spec/requests/api/commit_statuses_spec.rb"
- "./spec/requests/api/commits_spec.rb"
- "./spec/requests/api/graphql/mutations/ci/pipeline_destroy_spec.rb"
- "./spec/requests/api/resource_access_tokens_spec.rb"
diff --git a/spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb b/spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb
index 03f565e0aac..fe85daa7235 100644
--- a/spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb
+++ b/spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb
@@ -80,15 +80,22 @@ RSpec.shared_examples 'AtomicInternalId' do |validate_presence: true|
it 'calls InternalId.generate_next and sets internal id attribute' do
iid = rand(1..1000)
- expect(InternalId).to receive(:generate_next).with(instance, scope_attrs, usage, any_args).and_return(iid)
+ # Need to do this before evaluating instance otherwise it gets set
+ # already in factory
+ allow(InternalId).to receive(:generate_next).and_return(iid)
+
subject
expect(read_internal_id).to eq(iid)
+
+ expect(InternalId).to have_received(:generate_next).with(instance, scope_attrs, usage, any_args)
end
it 'does not overwrite an existing internal id' do
write_internal_id(4711)
- expect { subject }.not_to change { read_internal_id }
+ allow_cross_database_modification_within_transaction(url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/347091') do
+ expect { subject }.not_to change { read_internal_id }
+ end
end
context 'when the instance has an internal ID set' do
@@ -101,6 +108,7 @@ RSpec.shared_examples 'AtomicInternalId' do |validate_presence: true|
.to receive(:track_greatest)
.with(instance, scope_attrs, usage, internal_id, any_args)
.and_return(internal_id)
+
subject
end
end
@@ -110,7 +118,11 @@ RSpec.shared_examples 'AtomicInternalId' do |validate_presence: true|
context 'when the internal id has been changed' do
context 'when the internal id is automatically set' do
it 'clears it on the instance' do
- expect_iid_to_be_set_and_rollback
+ write_internal_id(nil)
+
+ allow_cross_database_modification_within_transaction(url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/347091') do
+ expect_iid_to_be_set_and_rollback
+ end
expect(read_internal_id).to be_nil
end
@@ -120,7 +132,9 @@ RSpec.shared_examples 'AtomicInternalId' do |validate_presence: true|
it 'does not clear it on the instance' do
write_internal_id(100)
- expect_iid_to_be_set_and_rollback
+ allow_cross_database_modification_within_transaction(url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/347091') do
+ expect_iid_to_be_set_and_rollback
+ end
expect(read_internal_id).not_to be_nil
end
diff --git a/spec/tooling/danger/project_helper_spec.rb b/spec/tooling/danger/project_helper_spec.rb
index 2749a7733de..f13083bdf0a 100644
--- a/spec/tooling/danger/project_helper_spec.rb
+++ b/spec/tooling/danger/project_helper_spec.rb
@@ -3,7 +3,7 @@
require 'rspec-parameterized'
require 'gitlab-dangerfiles'
require 'danger'
-require 'danger/plugins/helper'
+require 'danger/plugins/internal/helper'
require 'gitlab/dangerfiles/spec_helper'
require_relative '../../../danger/plugins/project_helper'
@@ -20,22 +20,7 @@ RSpec.describe Tooling::Danger::ProjectHelper do
before do
allow(project_helper).to receive(:helper).and_return(fake_helper)
- end
-
- describe '#changes' do
- it 'returns an array of Change objects' do
- expect(project_helper.changes).to all(be_an(Gitlab::Dangerfiles::Change))
- end
-
- it 'groups changes by change type' do
- changes = project_helper.changes
-
- expect(changes.added.files).to eq(added_files)
- expect(changes.modified.files).to eq(modified_files)
- expect(changes.deleted.files).to eq(deleted_files)
- expect(changes.renamed_before.files).to eq([renamed_before_file])
- expect(changes.renamed_after.files).to eq([renamed_after_file])
- end
+ allow(fake_helper).to receive(:config).and_return(double(files_to_category: described_class::CATEGORIES))
end
describe '#categories_for_file' do
@@ -247,7 +232,7 @@ RSpec.describe Tooling::Danger::ProjectHelper do
end
with_them do
- subject { project_helper.categories_for_file(path) }
+ subject { project_helper.helper.categories_for_file(path) }
it { is_expected.to eq(expected_categories) }
end
@@ -275,7 +260,7 @@ RSpec.describe Tooling::Danger::ProjectHelper do
changed_files.each do |file|
allow(fake_git).to receive(:diff_for_file).with(file) { double(:diff, patch: patch) }
- expect(project_helper.categories_for_file(file)).to eq(expected_categories)
+ expect(project_helper.helper.categories_for_file(file)).to eq(expected_categories)
end
end
end
@@ -321,93 +306,13 @@ RSpec.describe Tooling::Danger::ProjectHelper do
it 'returns all changed files starting with ee/' do
changes = double
- expect(project_helper).to receive(:changes).and_return(changes)
+ expect(fake_helper).to receive(:changes).and_return(changes)
expect(changes).to receive(:files).and_return(%w[fr/ee/beer.rb ee/wine.rb ee/lib/ido.rb ee.k])
is_expected.to match_array(%w[ee/wine.rb ee/lib/ido.rb])
end
end
- describe '#project_name' do
- subject { project_helper.project_name }
-
- it 'returns gitlab if ee? returns true' do
- expect(project_helper).to receive(:ee?) { true }
-
- is_expected.to eq('gitlab')
- end
-
- it 'returns gitlab-ce if ee? returns false' do
- expect(project_helper).to receive(:ee?) { false }
-
- is_expected.to eq('gitlab-foss')
- end
- end
-
- describe '#ee?' do
- subject { project_helper.__send__(:ee?) }
-
- let(:ee_dir) { File.expand_path('../../../ee', __dir__) }
-
- context 'when ENV["CI_PROJECT_NAME"] is set' do
- before do
- stub_env('CI_PROJECT_NAME', ci_project_name)
- end
-
- context 'when ENV["CI_PROJECT_NAME"] is gitlab' do
- let(:ci_project_name) { 'gitlab' }
-
- it 'returns true' do
- is_expected.to eq(true)
- end
- end
-
- context 'when ENV["CI_PROJECT_NAME"] is gitlab-ee' do
- let(:ci_project_name) { 'gitlab-ee' }
-
- it 'returns true' do
- is_expected.to eq(true)
- end
- end
-
- context 'when ENV["CI_PROJECT_NAME"] is gitlab-foss' do
- let(:ci_project_name) { 'gitlab-foss' }
-
- it 'resolves to Dir.exist?' do
- expected = Dir.exist?(ee_dir)
-
- expect(Dir).to receive(:exist?).with(ee_dir).and_call_original
-
- is_expected.to eq(expected)
- end
- end
- end
-
- context 'when ENV["CI_PROJECT_NAME"] is absent' do
- before do
- stub_env('CI_PROJECT_NAME', nil)
-
- expect(Dir).to receive(:exist?).with(ee_dir).and_return(has_ee_dir)
- end
-
- context 'when ee/ directory exists' do
- let(:has_ee_dir) { true }
-
- it 'returns true' do
- is_expected.to eq(true)
- end
- end
-
- context 'when ee/ directory does not exist' do
- let(:has_ee_dir) { false }
-
- it 'returns false' do
- is_expected.to eq(false)
- end
- end
- end
- end
-
describe '#file_lines' do
let(:filename) { 'spec/foo_spec.rb' }
let(:file_spy) { spy }
diff --git a/spec/tooling/danger/specs_spec.rb b/spec/tooling/danger/specs_spec.rb
index a5978020c9d..b2454960a7b 100644
--- a/spec/tooling/danger/specs_spec.rb
+++ b/spec/tooling/danger/specs_spec.rb
@@ -3,7 +3,7 @@
require 'rspec-parameterized'
require 'gitlab-dangerfiles'
require 'danger'
-require 'danger/plugins/helper'
+require 'danger/plugins/internal/helper'
require 'gitlab/dangerfiles/spec_helper'
require_relative '../../../tooling/danger/specs'
diff --git a/spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb b/spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb
index 400319a42b7..1bee9f7463f 100644
--- a/spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb
+++ b/spec/views/shared/ssh_keys/_key_details.html.haml_spec.rb
@@ -4,7 +4,7 @@ require 'spec_helper'
RSpec.describe 'shared/ssh_keys/_key_delete.html.haml' do
context 'when the text parameter is used' do
it 'has text' do
- render 'shared/ssh_keys/key_delete.html.haml', text: 'Button', html_class: '', button_data: ''
+ render partial: 'shared/ssh_keys/key_delete', formats: :html, locals: { text: 'Button', html_class: '', button_data: '' }
expect(rendered).to have_button('Button')
end
@@ -12,7 +12,7 @@ RSpec.describe 'shared/ssh_keys/_key_delete.html.haml' do
context 'when the text parameter is not used' do
it 'does not have text' do
- render 'shared/ssh_keys/key_delete.html.haml', html_class: '', button_data: ''
+ render partial: 'shared/ssh_keys/key_delete', formats: :html, locals: { html_class: '', button_data: '' }
expect(rendered).to have_button('Delete')
end
diff --git a/tooling/danger/changelog.rb b/tooling/danger/changelog.rb
index fbf8ae931e2..6a392afac13 100644
--- a/tooling/danger/changelog.rb
+++ b/tooling/danger/changelog.rb
@@ -159,8 +159,8 @@ module Tooling
def required_reasons
[].tap do |reasons|
- reasons << :db_changes if project_helper.changes.added.has_category?(:migration)
- reasons << :feature_flag_removed if project_helper.changes.deleted.has_category?(:feature_flag)
+ reasons << :db_changes if helper.changes.added.has_category?(:migration)
+ reasons << :feature_flag_removed if helper.changes.deleted.has_category?(:feature_flag)
end
end
@@ -221,7 +221,7 @@ module Tooling
end
def categories_need_changelog?
- (project_helper.changes.categories - NO_CHANGELOG_CATEGORIES).any?
+ (helper.changes.categories - NO_CHANGELOG_CATEGORIES).any?
end
def mr_without_no_changelog_label?
diff --git a/tooling/danger/project_helper.rb b/tooling/danger/project_helper.rb
index 422d22f0d99..b49df50c5f0 100644
--- a/tooling/danger/project_helper.rb
+++ b/tooling/danger/project_helper.rb
@@ -176,18 +176,6 @@ module Tooling
%r{\.js\z} => :frontend
}.freeze
- def changes_by_category
- helper.changes_by_category(CATEGORIES)
- end
-
- def changes
- helper.changes(CATEGORIES)
- end
-
- def categories_for_file(file)
- helper.categories_for_file(file, CATEGORIES)
- end
-
def local_warning_message
"#{MESSAGE_PREFIX} Only the following Danger rules can be run locally: #{LOCAL_RULES.join(', ')}"
end
@@ -203,11 +191,7 @@ module Tooling
end
def all_ee_changes
- changes.files.grep(%r{\Aee/})
- end
-
- def project_name
- ee? ? 'gitlab' : 'gitlab-foss'
+ helper.changes.files.grep(%r{\Aee/})
end
def file_lines(filename)
@@ -223,11 +207,6 @@ module Tooling
def read_file(filename)
File.read(filename)
end
-
- def ee?
- # Support former project name for `dev` and support local Danger run
- %w[gitlab gitlab-ee].include?(ENV['CI_PROJECT_NAME']) || Dir.exist?(File.expand_path('../../ee', __dir__))
- end
end
end
end