diff --git a/.editorconfig b/.editorconfig index 0edad7878b..0958f2c959 100644 --- a/.editorconfig +++ b/.editorconfig @@ -17,5 +17,18 @@ charset = utf-8 [*.{md,markdown,js.snap}] trim_trailing_whitespace = false +[doc/**/*.md] +trim_trailing_whitespace = true + [*.rb] max_line_length = 120 + +# Don't apply editorconfig rules to vendor/ resources +[vendor/**] +charset = unset +end_of_line = unset +indent_size = unset +indent_style = unset +insert_final_newline = unset +trim_trailing_whitespace = unset +max_line_length = unset diff --git a/.eslintrc.yml b/.eslintrc.yml index 906eeaeecc..0b242e4cb9 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -117,10 +117,6 @@ rules: message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.' - selector: ImportSpecifier[imported.name='GlSafeHtmlDirective'] message: 'Use directive at ~/vue_shared/directives/safe_html.js instead.' - # TODO: Remove this rule once GitLab UI no longer exports the deprecated alias. - # See https://gitlab.com/gitlab-org/gitlab/-/issues/382424. - - selector: ImportSpecifier[imported.name='GlListbox'] - message: 'Import GlCollapsibleListbox instead. The GlListbox name is deprecated.' # See https://gitlab.com/gitlab-org/gitlab/-/issues/360551 vue/multi-word-component-names: off unicorn/prefer-dom-node-dataset: @@ -139,6 +135,7 @@ overrides: rules: '@gitlab/require-i18n-strings': off '@gitlab/no-runtime-template-compiler': off + 'require-await': error 'import/no-dynamic-require': off 'no-import-assign': off 'no-restricted-syntax': diff --git a/.gitignore b/.gitignore index 04d5ec06bf..9723e537f1 100644 --- a/.gitignore +++ b/.gitignore @@ -69,7 +69,6 @@ eslint-report.html /rails_best_practices_output.html /tags /vendor/bundle/* -/vendor/gitaly-ruby /vendor/package_metadata_db/ /builds* /.gitlab_workhorse_secret diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 10823a4ac2..86cc79ab64 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -26,21 +26,17 @@ default: # Default job timeout set to 90m https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/10520 timeout: 90m -.ruby3-variables: &ruby3-variables +.default-ruby-variables: &default-ruby-variables RUBY_VERSION: "3.0" OMNIBUS_GITLAB_RUBY3_BUILD: "true" OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY3" -.ruby2-variables: &ruby2-variables +.backcompat-ruby-variables: &backcompat-ruby-variables RUBY_VERSION: "2.7" OMNIBUS_GITLAB_RUBY2_BUILD: "true" OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY2" .default-branch-pipeline-failure-variables: &default-branch-pipeline-failure-variables - CREATE_INCIDENT_FOR_PIPELINE_FAILURE: "true" - NOTIFY_PIPELINE_FAILURE_CHANNEL: "master-broken" - BROKEN_BRANCH_INCIDENTS_PROJECT: "gitlab-org/quality/engineering-productivity/master-broken-incidents" - BROKEN_BRANCH_INCIDENTS_PROJECT_TOKEN: "${BROKEN_MASTER_INCIDENTS_PROJECT_TOKEN}" CREATE_ISSUES_FOR_FAILING_TESTS: "true" workflow: @@ -49,8 +45,8 @@ workflow: # If `$FORCE_GITLAB_CI` is set, create a pipeline. - if: '$FORCE_GITLAB_CI' variables: - <<: *ruby3-variables - PIPELINE_NAME: 'Ruby 3 forced pipeline' + <<: *default-ruby-variables + PIPELINE_NAME: 'Ruby $RUBY_VERSION forced pipeline' # As part of the process of creating RCs automatically, we update stable # branches with the changes of the most recent production deployment. The # merge requests used for this merge a branch release-tools/X into a stable @@ -61,76 +57,71 @@ workflow: # For merge requests running exclusively in Ruby 2.7 - if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-in-ruby2/' variables: - <<: *ruby2-variables - PIPELINE_NAME: 'Ruby 2 $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline' + <<: *backcompat-ruby-variables + PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline' NO_SOURCEMAPS: 'true' - if: '$CI_MERGE_REQUEST_LABELS =~ /Community contribution/' variables: - <<: *ruby3-variables + <<: *default-ruby-variables GITLAB_DEPENDENCY_PROXY_ADDRESS: "" - PIPELINE_NAME: 'Ruby 3 $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline (community contribution)' + PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline (community contribution)' NO_SOURCEMAPS: 'true' # For (detached) merge request pipelines. - if: '$CI_MERGE_REQUEST_IID' variables: - <<: *ruby3-variables - PIPELINE_NAME: 'Ruby 3 $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline' + <<: *default-ruby-variables + PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline' NO_SOURCEMAPS: 'true' # For the scheduled pipelines, we set specific variables. - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule"' variables: - <<: *ruby3-variables + <<: *default-ruby-variables <<: *default-branch-pipeline-failure-variables CRYSTALBALL: "true" - PIPELINE_NAME: 'Scheduled Ruby 3 $CI_COMMIT_BRANCH branch pipeline' + PIPELINE_NAME: 'Scheduled Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' # Run pipelines for ruby2 branch - if: '$CI_COMMIT_BRANCH == "ruby2" && $CI_PIPELINE_SOURCE == "schedule"' variables: - <<: *ruby2-variables - NOTIFY_PIPELINE_FAILURE_CHANNEL: "f_ruby3" - PIPELINE_NAME: 'Scheduled Ruby 2 $CI_COMMIT_BRANCH branch pipeline' + <<: *backcompat-ruby-variables + PIPELINE_NAME: 'Scheduled Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' # This work around https://gitlab.com/gitlab-org/gitlab/-/issues/332411 whichs prevents usage of dependency proxy # when pipeline is triggered by a project access token. - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $GITLAB_USER_LOGIN =~ /project_\d+_bot\d*/' variables: - <<: *ruby3-variables + <<: *default-ruby-variables <<: *default-branch-pipeline-failure-variables GITLAB_DEPENDENCY_PROXY_ADDRESS: "" - PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline (triggered by a project token)' + PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline (triggered by a project token)' # For `$CI_DEFAULT_BRANCH` branch, create a pipeline (this includes on schedules, pushes, merges, etc.). - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' variables: - <<: *ruby3-variables + <<: *default-ruby-variables <<: *default-branch-pipeline-failure-variables - PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline' + PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' # For tags, create a pipeline. - if: '$CI_COMMIT_TAG' variables: - <<: *ruby3-variables - PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_TAG tag pipeline' + <<: *default-ruby-variables + PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_TAG tag pipeline' # If `$GITLAB_INTERNAL` isn't set, don't create a pipeline. - if: '$GITLAB_INTERNAL == null' when: never # For stable, auto-deploy, and security branches, create a pipeline. - if: '$CI_COMMIT_BRANCH =~ /^[\d-]+-stable(-ee)?$/' variables: - <<: *ruby3-variables - NOTIFY_PIPELINE_FAILURE_CHANNEL: "releases" - PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline' - CREATE_INCIDENT_FOR_PIPELINE_FAILURE: "true" - BROKEN_BRANCH_INCIDENTS_PROJECT: "gitlab-org/release/tasks" - BROKEN_BRANCH_INCIDENTS_PROJECT_TOKEN: "${BROKEN_STABLE_INCIDENTS_PROJECT_TOKEN}" + <<: *default-ruby-variables + PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' - if: '$CI_COMMIT_BRANCH =~ /^\d+-\d+-auto-deploy-\d+$/' variables: - <<: *ruby3-variables - PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline' + <<: *default-ruby-variables + PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' - if: '$CI_COMMIT_BRANCH =~ /^security\//' variables: - <<: *ruby3-variables - PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline' + <<: *default-ruby-variables + PIPELINE_NAME: 'Ruby $RUBY_VERSION $CI_COMMIT_BRANCH branch pipeline' variables: - PG_VERSION: "12" + PG_VERSION: "13" DEFAULT_CI_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}.patched-golang-${GO_VERSION}-rust-${RUST_VERSION}-node-16.14-postgresql-${PG_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-yarn-1.22-graphicsmagick-1.3.36" # We set $GITLAB_DEPENDENCY_PROXY to another variable (since it's set at the group level and has higher precedence than .gitlab-ci.yml) # so that we can override $GITLAB_DEPENDENCY_PROXY_ADDRESS in workflow rules. @@ -148,11 +139,12 @@ variables: GIT_SUBMODULE_STRATEGY: "none" GET_SOURCES_ATTEMPTS: "3" DEBIAN_VERSION: "bullseye" + UBI_VERSION: "8.6" CHROME_VERSION: "109" DOCKER_VERSION: "23.0.1" RUBY_VERSION: "2.7" RUBYGEMS_VERSION: "3.4" - GO_VERSION: "1.18" + GO_VERSION: "1.19" RUST_VERSION: "1.65" FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json @@ -163,8 +155,10 @@ variables: KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/report-master.json RSPEC_CHANGED_FILES_PATH: rspec/changed_files.txt RSPEC_FOSS_IMPACT_PIPELINE_TEMPLATE_YML: .gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb + RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML: .gitlab/ci/rails/rspec-predictive.gitlab-ci.yml.erb RSPEC_LAST_RUN_RESULTS_FILE: rspec/rspec_last_run_results.txt RSPEC_MATCHING_JS_FILES_PATH: rspec/js_matching_files.txt + RSPEC_VIEWS_INCLUDING_PARTIALS_PATH: rspec/views_including_partials.txt RSPEC_MATCHING_TESTS_PATH: rspec/matching_tests.txt RSPEC_MATCHING_TESTS_FOSS_PATH: rspec/matching_tests-foss.txt RSPEC_MATCHING_TESTS_EE_PATH: rspec/matching_tests-ee.txt diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index a7ecfebbaf..e58dd1780b 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -57,7 +57,7 @@ GITALY_SERVER_VERSION @project_278964_bot6 @gitlab-org/maintainers/rails-backend /ee/app/finders/ @gitlab-org/maintainers/database /rubocop/rubocop-migrations.yml @gitlab-org/maintainers/database -^[Engineering Productivity] +[Engineering Productivity] /.gitlab-ci.yml @gl-quality/eng-prod /.gitlab/ci/ @gl-quality/eng-prod /.gitlab/ci/docs.gitlab-ci.yml @gl-quality/eng-prod @gl-docsteam @@ -85,26 +85,6 @@ Dangerfile @gl-quality/eng-prod /ee/lib/ee/gitlab/auth/ldap/ @dblessing @mkozono /lib/gitlab/auth/ldap/ @dblessing @mkozono -^[Templates] -/lib/gitlab/ci/templates/ @gitlab-org/maintainers/cicd-templates -/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml @DylanGriffith @mayra-cabrera @tkuah -/lib/gitlab/ci/templates/Security/ @gonzoyumo @twoodham @sethgitlab @thiagocsf -/lib/gitlab/ci/templates/Security/API-Fuzzing.*.yml @gitlab-org/secure/dynamic-analysis -/lib/gitlab/ci/templates/Security/Container-Scanning.*.yml @gitlab-org/secure/composition-analysis-be -/lib/gitlab/ci/templates/Security/Coverage-Fuzzing.*.yml @gitlab-org/secure/dynamic-analysis -/lib/gitlab/ci/templates/Security/DAST.*.yml @gitlab-org/secure/dynamic-analysis -/lib/gitlab/ci/templates/Security/Dependency-Scanning.*.yml @gitlab-org/secure/composition-analysis-be -/lib/gitlab/ci/templates/Security/License-Scanning.*.yml @gitlab-org/secure/composition-analysis-be -/lib/gitlab/ci/templates/Security/SAST.*.yml @gitlab-org/secure/static-analysis -/lib/gitlab/ci/templates/Security/Secret-Detection.*.yml @gitlab-org/secure/static-analysis -/lib/gitlab/ci/templates/Security/Secure-Binaries.*.yml @gitlab-org/secure/static-analysis @gitlab-org/secure/composition-analysis-be @gitlab-org/secure/dynamic-analysis -# Note: The `Fortify-FoD-sast.gitlab-ci.yml` template is provided and maintained by Fortify, an official Technology Partner with GitLab. -/lib/gitlab/ci/templates/Jobs/Container-Scanning.*.yml @gitlab-org/secure/composition-analysis-be -/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.*.yml @gitlab-org/secure/composition-analysis-be -/lib/gitlab/ci/templates/Jobs/License-Scanning.*.yml @gitlab-org/secure/composition-analysis-be -/lib/gitlab/ci/templates/Jobs/SAST.*.yml @gitlab-org/secure/static-analysis -/lib/gitlab/ci/templates/Jobs/Secret-Detection.*.yml @gitlab-org/secure/static-analysis - ^[Project Alias] /ee/app/models/project_alias.rb @patrickbajao /ee/lib/api/project_aliases.rb @patrickbajao @@ -287,6 +267,14 @@ Dangerfile @gl-quality/eng-prod /spec/frontend/diffs/ @viktomas @jboyson @iamphill @thomasrandolph /spec/frontend/batch_comments/ @viktomas @jboyson @iamphill @thomasrandolph +^[Product Analytics] @gitlab-org/analytics-section/product-analytics/engineers/frontend +/ee/app/assets/javascripts/analytics/analytics_dashboards/components/analytics_dashboard.vue +/ee/app/assets/javascripts/analytics/analytics_dashboards/components/dashboards_list.vue +/ee/app/assets/javascripts/analytics/analytics_dashboards/data_sources/ +/ee/app/assets/javascripts/vue_shared/components/customizable_dashboard/customizable_dashboard.vue +/ee/app/assets/javascripts/vue_shared/components/customizable_dashboard/panels_base.vue +/ee/app/assets/javascripts/product_analytics/ + ^[Product Intelligence] /ee/lib/gitlab/usage_data_counters/ @gitlab-org/analytics-section/product-intelligence/engineers /ee/lib/ee/gitlab/usage_data.rb @gitlab-org/analytics-section/product-intelligence/engineers @@ -364,8 +352,6 @@ Dangerfile @gl-quality/eng-prod /ee/spec/services/namespaces/in_product_marketing_emails_service_spec.rb @gitlab-org/growth/engineers /app/workers/projects/record_target_platforms_worker.rb @gitlab-org/growth/engineers /spec/workers/projects/record_target_platforms_worker_spec.rb @gitlab-org/growth/engineers -/ee/app/controllers/groups/feature_discovery_moments_controller.rb @gitlab-org/growth/engineers -/ee/spec/requests/groups/feature_discovery_moments_spec.rb @gitlab-org/growth/engineers ^[Legal] /config/dependency_decisions.yml @gitlab-org/legal-reviewers @@ -390,12 +376,12 @@ Dangerfile @gl-quality/eng-prod /lib/gitlab/utils.rb @gitlab-com/gl-security/appsec ^[Gitaly] -lib/gitlab/git_access.rb @proglottis @toon @zj-gitlab -lib/gitlab/git_access_*.rb @proglottis @toon @zj-gitlab -ee/lib/ee/gitlab/git_access.rb @proglottis @toon @zj-gitlab -ee/lib/ee/gitlab/git_access_*.rb @proglottis @toon @zj-gitlab -ee/lib/ee/gitlab/checks/** @proglottis @toon @zj-gitlab -lib/gitlab/checks/** @proglottis @toon @zj-gitlab +lib/gitlab/git_access.rb @proglottis @toon +lib/gitlab/git_access_*.rb @proglottis @toon +ee/lib/ee/gitlab/git_access.rb @proglottis @toon +ee/lib/ee/gitlab/git_access_*.rb @proglottis @toon +ee/lib/ee/gitlab/checks/** @proglottis @toon +lib/gitlab/checks/** @proglottis @toon ^[Documentation Directories] /doc/ @gl-docsteam @@ -447,11 +433,19 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/administration/logs/index.md @msedlakjakubowski /doc/administration/maintenance_mode/ @axil /doc/administration/merge_request_diffs.md @aqualls -/doc/administration/monitoring/ @msedlakjakubowski +/doc/administration/monitoring/github_imports.md @eread +/doc/administration/monitoring/gitlab_self_monitoring_project/ @msedlakjakubowski +/doc/administration/monitoring/index.md @msedlakjakubowski /doc/administration/monitoring/ip_allowlist.md @jglassman1 +/doc/administration/monitoring/performance/gitlab_configuration.md @msedlakjakubowski +/doc/administration/monitoring/performance/grafana_configuration.md @msedlakjakubowski +/doc/administration/monitoring/performance/index.md @jglassman1 /doc/administration/monitoring/performance/performance_bar.md @jglassman1 /doc/administration/monitoring/prometheus/gitlab_exporter.md @jglassman1 /doc/administration/monitoring/prometheus/index.md @axil +/doc/administration/monitoring/prometheus/pgbouncer_exporter.md @aqualls +/doc/administration/monitoring/prometheus/postgres_exporter.md @aqualls +/doc/administration/monitoring/prometheus/registry_exporter.md @marcel.amirault /doc/administration/monitoring/prometheus/web_exporter.md @jglassman1 /doc/administration/nfs.md @axil /doc/administration/object_storage.md @axil @@ -461,7 +455,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/administration/operations/moving_repositories.md @eread /doc/administration/package_information/ @axil /doc/administration/packages/ @marcel.amirault -/doc/administration/pages/ @ashrafkhamis /doc/administration/polling.md @axil /doc/administration/postgresql/ @aqualls /doc/administration/postgresql/multiple_databases.md @lciutacu @@ -480,6 +473,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/administration/server_hooks.md @eread /doc/administration/sidekiq/ @axil /doc/administration/sidekiq/sidekiq_memory_killer.md @jglassman1 +/doc/administration/silent_mode/ @axil /doc/administration/smime_signing_email.md @axil /doc/administration/snippets/ @aqualls /doc/administration/static_objects_external_storage.md @ashrafkhamis @@ -490,7 +484,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/administration/troubleshooting/postgresql.md @aqualls /doc/administration/uploads.md @axil /doc/administration/user_settings.md @jglassman1 -/doc/administration/wikis/ @ashrafkhamis /doc/api/access_requests.md @jglassman1 /doc/api/admin_sidekiq_queues.md @axil /doc/api/alert_management_alerts.md @msedlakjakubowski @@ -551,7 +544,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/api/group_relations_export.md @eread /doc/api/group_releases.md @phillipwells /doc/api/group_repository_storage_moves.md @ashrafkhamis -/doc/api/group_wikis.md @ashrafkhamis /doc/api/groups.md @lciutacu /doc/api/import.md @eread /doc/api/index.md @ashrafkhamis @@ -588,8 +580,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/api/openapi/ @ashrafkhamis /doc/api/packages.md @marcel.amirault /doc/api/packages/ @marcel.amirault -/doc/api/pages.md @ashrafkhamis -/doc/api/pages_domains.md @ashrafkhamis /doc/api/personal_access_tokens.md @eread /doc/api/pipeline_schedules.md @drcatherinepope /doc/api/pipeline_triggers.md @drcatherinepope @@ -651,7 +641,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/api/vulnerabilities.md @rdickenson /doc/api/vulnerability_exports.md @rdickenson /doc/api/vulnerability_findings.md @rdickenson -/doc/api/wikis.md @ashrafkhamis +/doc/architecture/blueprints/cells/ @lciutacu /doc/architecture/blueprints/database/scalability/patterns/ @aqualls /doc/architecture/blueprints/database_scaling/ @aqualls /doc/ci/ @drcatherinepope @@ -674,7 +664,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/ci/pipeline_editor/ @marcel.amirault /doc/ci/pipelines/downstream_pipelines.md @marcel.amirault /doc/ci/pipelines/index.md @marcel.amirault -/doc/ci/pipelines/job_artifacts.md @marcel.amirault /doc/ci/pipelines/pipeline_architectures.md @marcel.amirault /doc/ci/pipelines/pipeline_artifacts.md @marcel.amirault /doc/ci/quick_start/ @marcel.amirault @@ -715,9 +704,9 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/development/developing_with_solargraph.md @aqualls /doc/development/development_processes.md @sselhorn /doc/development/distributed_tracing.md @msedlakjakubowski +/doc/development/distribution/ @axil /doc/development/documentation/ @sselhorn /doc/development/export_csv.md @eread -/doc/development/fe_guide/content_editor.md @ashrafkhamis /doc/development/fe_guide/customizable_dashboards.md @lciutacu /doc/development/fe_guide/dark_mode.md @sselhorn /doc/development/fe_guide/graphql.md @sselhorn @@ -758,12 +747,11 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/development/omnibus.md @axil /doc/development/organization/ @lciutacu /doc/development/packages/ @marcel.amirault -/doc/development/pages/ @ashrafkhamis /doc/development/permissions.md @jglassman1 /doc/development/policies.md @jglassman1 /doc/development/project_templates.md @aqualls /doc/development/prometheus_metrics.md @msedlakjakubowski -/doc/development/real_time.md @msedlakjakubowski +/doc/development/real_time.md @jglassman1 /doc/development/rubocop_development_guide.md @sselhorn /doc/development/search/ @ashrafkhamis /doc/development/sec/ @rdickenson @@ -775,7 +763,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/development/testing_guide/ @sselhorn /doc/development/value_stream_analytics.md @lciutacu /doc/development/value_stream_analytics/ @lciutacu -/doc/development/wikis.md @ashrafkhamis /doc/development/work_items.md @msedlakjakubowski /doc/development/work_items_widgets.md @msedlakjakubowski /doc/development/workhorse/ @aqualls @@ -816,6 +803,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/raketasks/spdx.md @rdickenson /doc/raketasks/x509_signatures.md @aqualls /doc/security/ @jglassman1 +/doc/security/email_verification.md @phillipwells /doc/subscriptions/ @fneill /doc/subscriptions/gitlab_dedicated/ @drcatherinepope /doc/topics/authentication/ @jglassman1 @@ -827,6 +815,9 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/topics/plan_and_track.md @msedlakjakubowski /doc/topics/your_work.md @sselhorn /doc/tutorials/ @kpaizee +/doc/tutorials/create_compliance_pipeline.md @eread +/doc/tutorials/fuzz_testing_tutorial.md @rdickenson +/doc/tutorials/scan_result_policy.md @rdickenson /doc/update/ @axil /doc/update/background_migrations.md @aqualls /doc/user/admin_area/analytics/ @lciutacu @@ -843,7 +834,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/admin_area/monitoring/ @msedlakjakubowski /doc/user/admin_area/reporting/git_abuse_rate_limit.md @phillipwells /doc/user/admin_area/reporting/spamcheck.md @axil -/doc/user/admin_area/review_abuse_reports.md @jglassman1 +/doc/user/admin_area/review_abuse_reports.md @phillipwells /doc/user/admin_area/settings/account_and_limit_settings.md @aqualls /doc/user/admin_area/settings/continuous_integration.md @drcatherinepope /doc/user/admin_area/settings/deprecated_api_rate_limits.md @aqualls @@ -865,6 +856,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/admin_area/settings/rate_limit_on_projects_api.md @lciutacu /doc/user/admin_area/settings/rate_limit_on_users_api.md @jglassman1 /doc/user/admin_area/settings/scim_setup.md @jglassman1 +/doc/user/admin_area/settings/security_and_compliance.md @rdickenson /doc/user/admin_area/settings/terraform_limits.md @phillipwells /doc/user/admin_area/settings/third_party_offers.md @lciutacu /doc/user/admin_area/settings/usage_statistics.md @lciutacu @@ -872,35 +864,38 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/analytics/ @lciutacu /doc/user/analytics/ci_cd_analytics.md @phillipwells /doc/user/application_security/ @rdickenson -/doc/user/application_security/policies/ @dianalogan /doc/user/asciidoc.md @aqualls /doc/user/award_emojis.md @msedlakjakubowski /doc/user/clusters/ @phillipwells +/doc/user/compliance/ @rdickenson /doc/user/compliance/compliance_report/ @eread /doc/user/compliance/index.md @eread -/doc/user/compliance/license_approval_policies.md @dianalogan -/doc/user/compliance/license_check_rules.md @dianalogan -/doc/user/compliance/license_compliance/ @rdickenson -/doc/user/compliance/license_list.md @rdickenson -/doc/user/compliance/license_scanning_of_cyclonedx_files/ @rdickenson /doc/user/crm/ @msedlakjakubowski /doc/user/discussions/ @aqualls /doc/user/enterprise_user/ @jglassman1 /doc/user/feature_flags.md @sselhorn -/doc/user/group/ @lciutacu +/doc/user/group/access_and_permissions.md @lciutacu /doc/user/group/clusters/ @phillipwells /doc/user/group/compliance_frameworks.md @eread +/doc/user/group/contribution_analytics/ @lciutacu /doc/user/group/custom_project_templates.md @eread +/doc/user/group/devops_adoption/ @lciutacu /doc/user/group/epics/ @msedlakjakubowski /doc/user/group/import/ @eread +/doc/user/group/index.md @lciutacu +/doc/user/group/insights/ @lciutacu /doc/user/group/issues_analytics/ @msedlakjakubowski /doc/user/group/iterations/ @msedlakjakubowski +/doc/user/group/manage.md @lciutacu +/doc/user/group/moderate_users.md @phillipwells /doc/user/group/planning_hierarchy/ @msedlakjakubowski /doc/user/group/reporting/ @phillipwells /doc/user/group/repositories_analytics/ @drcatherinepope /doc/user/group/roadmap/ @msedlakjakubowski /doc/user/group/saml_sso/ @jglassman1 /doc/user/group/settings/ @jglassman1 +/doc/user/group/subgroups/ @lciutacu +/doc/user/group/value_stream_analytics/ @lciutacu /doc/user/infrastructure/ @phillipwells /doc/user/infrastructure/clusters/manage/management_project_applications/runner.md @fneill /doc/user/markdown.md @msedlakjakubowski @@ -912,18 +907,19 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/permissions.md @jglassman1 /doc/user/product_analytics/ @lciutacu /doc/user/profile/account/ @jglassman1 +/doc/user/profile/achievements.md @lciutacu +/doc/user/profile/comment_templates.md @aqualls /doc/user/profile/contributions_calendar.md @lciutacu /doc/user/profile/index.md @jglassman1 /doc/user/profile/notifications.md @msedlakjakubowski /doc/user/profile/personal_access_tokens.md @jglassman1 -/doc/user/profile/saved_replies.md @aqualls /doc/user/profile/user_passwords.md @jglassman1 /doc/user/project/autocomplete_characters.md @aqualls /doc/user/project/badges.md @lciutacu /doc/user/project/changelogs.md @aqualls /doc/user/project/clusters/ @phillipwells /doc/user/project/code_intelligence.md @aqualls -/doc/user/project/code_owners.md @aqualls +/doc/user/project/codeowners/ @aqualls /doc/user/project/deploy_boards.md @phillipwells /doc/user/project/deploy_keys/ @phillipwells /doc/user/project/deploy_tokens/ @phillipwells @@ -948,7 +944,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/project/merge_requests/status_checks.md @eread /doc/user/project/milestones/ @msedlakjakubowski /doc/user/project/organize_work_with_projects.md @lciutacu -/doc/user/project/pages/ @ashrafkhamis /doc/user/project/protected_branches.md @aqualls /doc/user/project/protected_tags.md @aqualls /doc/user/project/push_options.md @aqualls @@ -967,10 +962,10 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/project/settings/import_export_troubleshooting.md @eread /doc/user/project/settings/index.md @lciutacu /doc/user/project/settings/project_access_tokens.md @jglassman1 +/doc/user/project/system_notes.md @aqualls /doc/user/project/time_tracking.md @msedlakjakubowski /doc/user/project/web_ide/ @ashrafkhamis /doc/user/project/web_ide_beta/ @ashrafkhamis -/doc/user/project/wiki/ @ashrafkhamis /doc/user/project/working_with_projects.md @lciutacu /doc/user/public_access.md @lciutacu /doc/user/report_abuse.md @phillipwells @@ -982,6 +977,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /doc/user/tasks.md @msedlakjakubowski /doc/user/todos.md @msedlakjakubowski /doc/user/usage_quotas.md @fneill +/doc/user/workspace/quick_start/ @ashrafkhamis # End rake-managed-docs-block [Authentication and Authorization] @@ -1229,127 +1225,148 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab /lib/tasks/gitlab/password.rake @gitlab-org/manage/authentication-and-authorization/approvers /lib/tasks/tokens.rake @gitlab-org/manage/authentication-and-authorization/approvers -^[Verify] -/app/**/ci/ @gitlab-org/maintainers/cicd-verify -/app/controllers/admin/jobs_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/admin/runner_projects_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/admin/runners_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/projects/artifacts_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/projects/build_artifacts_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/projects/builds_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/projects/jobs_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/runner_setup_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/projects/pipeline_schedules_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/projects/pipelines_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/projects/pipelines_settings_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/projects/runner_projects_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/projects/runners_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/projects/triggers_controller.rb @gitlab-org/maintainers/cicd-verify -/app/controllers/projects/variables_controller.rb @gitlab-org/maintainers/cicd-verify -/app/models/commit_status.rb @gitlab-org/maintainers/cicd-verify -/app/models/external_pull_request.rb @gitlab-org/maintainers/cicd-verify -/app/models/generic_commit_status.rb @gitlab-org/maintainers/cicd-verify -/app/models/namespace_ci_cd_setting.rb @gitlab-org/maintainers/cicd-verify -/app/models/project_ci_cd_setting.rb @gitlab-org/maintainers/cicd-verify -/app/presenters/commit_status_presenter.rb @gitlab-org/maintainers/cicd-verify -/app/presenters/generic_commit_status_presenter.rb @gitlab-org/maintainers/cicd-verify -/app/validators/json_schemas/build_metadata_id_tokens.json @gitlab-org/maintainers/cicd-verify -/app/views/projects/artifacts/ @gitlab-org/maintainers/cicd-verify -/app/views/projects/generic_commit_statuses/ @gitlab-org/maintainers/cicd-verify -/app/views/projects/jobs/ @gitlab-org/maintainers/cicd-verify -/app/views/projects/pipeline_schedules/ @gitlab-org/maintainers/cicd-verify -/app/views/projects/pipelines/ @gitlab-org/maintainers/cicd-verify -/app/views/projects/triggers/ @gitlab-org/maintainers/cicd-verify -/app/workers/build_hooks_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/build_queue_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/build_success_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/ci_platform_metrics_update_cron_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/create_pipeline_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/expire_build_artifacts_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/pipeline_hooks_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/pipeline_metrics_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/pipeline_notification_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/pipeline_process_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/pipeline_schedule_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/run_pipeline_schedule_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/stuck_ci_jobs_worker.rb @gitlab-org/maintainers/cicd-verify -/app/workers/update_external_pull_requests_worker.rb @gitlab-org/maintainers/cicd-verify -/lib/**/ci/ @gitlab-org/maintainers/cicd-verify -/lib/api/commit_statuses.rb @gitlab-org/maintainers/cicd-verify -/ee/app/**/ci/ @gitlab-org/maintainers/cicd-verify -/ee/app/**/merge_trains/ @gitlab-org/maintainers/cicd-verify -/ee/app/models/merge_train.rb @gitlab-org/maintainers/cicd-verify -/ee/app/finders/merge_trains_finder.rb @gitlab-org/maintainers/cicd-verify -/ee/app/services/auto_merge/add_to_merge_train_when_pipeline_succeeds_service.rb @gitlab-org/maintainers/cicd-verify -/ee/app/services/auto_merge/merge_train_service.rb @gitlab-org/maintainers/cicd-verify -/ee/app/services/system_notes/merge_train_service.rb @gitlab-org/maintainers/cicd-verify -/ee/app/controllers/ee/admin/runners_controller.rb @gitlab-org/maintainers/cicd-verify -/ee/app/controllers/ee/projects/pipelines_controller.rb @gitlab-org/maintainers/cicd-verify -/ee/app/controllers/projects/pipelines/ @gitlab-org/maintainers/cicd-verify -/ee/app/controllers/projects/subscriptions_controller.rb @gitlab-org/maintainers/cicd-verify -/ee/app/models/merge_train.rb @gitlab-org/maintainers/cicd-verify -/ee/app/helpers/ee/projects/pipeline_helper.rb @gitlab-org/maintainers/cicd-verify -/ee/app/views/ci_minutes_usage_mailer/ @gitlab-org/maintainers/cicd-verify -/ee/app/views/projects/pipelines/ @gitlab-org/maintainers/cicd-verify -/ee/app/views/projects/settings/ci_cd/ @gitlab-org/maintainers/cicd-verify -/ee/app/workers/clear_shared_runners_minutes_worker.rb @gitlab-org/maintainers/cicd-verify -/ee/lib/**/ci/ @gitlab-org/maintainers/cicd-verify -/ee/lib/ee/api/entities/merge_train.rb @gitlab-org/maintainers/cicd-verify -/spec/**/ci @gitlab-org/maintainers/cicd-verify -/spec/controllers/admin/jobs_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/controllers/admin/runner_projects_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/controllers/admin/runners_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/controllers/projects/artifacts_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/controllers/projects/jobs_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/requests/runner_setup_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/controllers/projects/pipeline_schedules_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/requests/projects/pipelines_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/controllers/projects/pipelines_settings_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/controllers/projects/runners_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/controllers/groups/variables_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/models/commit_status_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/models/external_pull_request_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/models/generic_commit_status_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/models/namespace_ci_cd_setting_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/models/project_ci_cd_setting_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/presenters/commit_status_presenter_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/views/projects/jobs/ @gitlab-org/maintainers/cicd-verify -/spec/views/projects/pipeline_schedules/ @gitlab-org/maintainers/cicd-verify -/spec/views/projects/pipelines/ @gitlab-org/maintainers/cicd-verify -/spec/views/projects/settings/ci_cd/ @gitlab-org/maintainers/cicd-verify -/spec/workers/build_hooks_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/build_queue_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/build_success_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/ci_platform_metrics_update_cron_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/create_pipeline_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/expire_build_artifacts_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/pipeline_hooks_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/pipeline_metrics_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/pipeline_notification_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/pipeline_process_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/pipeline_schedule_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/run_pipeline_schedule_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/stuck_ci_jobs_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/spec/workers/update_external_pull_requests_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/ee/spec/**/ci @gitlab-org/maintainers/cicd-verify -/ee/spec/**/merge_trains @gitlab-org/maintainers/cicd-verify -/ee/spec/models/merge_train_spec.rb @gitlab-org/maintainers/cicd-verify -/ee/spec/finders/merge_trains_finder_spec.rb @gitlab-org/maintainers/cicd-verify -/ee/spec/services/auto_merge/add_to_merge_train_when_pipeline_succeeds_service_spec.rb @gitlab-org/maintainers/cicd-verify -/ee/spec/services/auto_merge/merge_train_service_spec.rb @gitlab-org/maintainers/cicd-verify -/ee/spec/services/system_notes/merge_train_service_spec.rb @gitlab-org/maintainers/cicd-verify -/ee/spec/controllers/projects/subscriptions_controller_spec.rb @gitlab-org/maintainers/cicd-verify -/ee/spec/helpers/ee/projects/pipeline_helper_spec.rb @gitlab-org/maintainers/cicd-verify -/ee/spec/workers/clear_shared_runners_minutes_worker_spec.rb @gitlab-org/maintainers/cicd-verify -/ee/spec/lib/**/ci/ @gitlab-org/maintainers/cicd-verify -/**/javascripts/jobs/ @gitlab-org/ci-cd/verify/frontend -/**/javascripts/pipelines/ @gitlab-org/ci-cd/verify/frontend -/app/assets/javascripts/ci/ @gitlab-org/ci-cd/verify/frontend -/app/assets/javascripts/ci/pipeline_schedules/ @gitlab-org/ci-cd/verify/frontend -/ee/app/assets/javascripts/ci/ @gitlab-org/ci-cd/verify/frontend -/app/assets/javascripts/token_access/ @gitlab-org/ci-cd/verify/frontend -/app/assets/javascripts/admin/application_settings/runner_token_expiration/ @gitlab-org/ci-cd/verify/frontend -/ee/app/assets/javascripts/usage_quotas/pipelines/ @gitlab-org/ci-cd/verify/frontend @fulfillment-group/utilization-group/fe +[Verify] @gitlab-org/maintainers/cicd-verify @shinya.maeda @stanhu @ayufan +# Verify Backend +/**/app/**/ci/ +/**/lib/**/ci/ +/**/spec/**/ci/ +/**/app/**/merge_trains/ +/**/spec/**/merge_trains/ +/app/controllers/admin/jobs_controller.rb +/app/controllers/admin/runner_projects_controller.rb +/app/controllers/admin/runners_controller.rb +/app/controllers/projects/artifacts_controller.rb +/app/controllers/projects/build_artifacts_controller.rb +/app/controllers/projects/builds_controller.rb +/app/controllers/projects/jobs_controller.rb +/app/controllers/runner_setup_controller.rb +/app/controllers/projects/pipeline_schedules_controller.rb +/app/controllers/projects/pipelines_controller.rb +/app/controllers/projects/pipelines_settings_controller.rb +/app/controllers/projects/runner_projects_controller.rb +/app/controllers/projects/runners_controller.rb +/app/controllers/projects/triggers_controller.rb +/app/controllers/projects/variables_controller.rb +/app/models/commit_status.rb +/app/models/external_pull_request.rb +/app/models/generic_commit_status.rb +/app/models/namespace_ci_cd_setting.rb +/app/models/project_ci_cd_setting.rb +/app/models/projects/build_artifacts_size_refresh.rb +/app/presenters/commit_status_presenter.rb +/app/presenters/generic_commit_status_presenter.rb +/app/services/projects/refresh_build_artifacts_size_statistics_service.rb +/app/uploaders/job_artifact_uploader.rb +/app/validators/json_schemas/build_metadata_id_tokens.json +/app/views/projects/artifacts/ +/app/views/projects/generic_commit_statuses/ +/app/views/projects/jobs/ +/app/views/projects/pipeline_schedules/ +/app/views/projects/pipelines/ +/app/views/projects/triggers/ +/app/workers/build_hooks_worker.rb +/app/workers/build_queue_worker.rb +/app/workers/build_success_worker.rb +/app/workers/ci_platform_metrics_update_cron_worker.rb +/app/workers/create_pipeline_worker.rb +/app/workers/expire_build_artifacts_worker.rb +/app/workers/pipeline_hooks_worker.rb +/app/workers/pipeline_metrics_worker.rb +/app/workers/pipeline_notification_worker.rb +/app/workers/pipeline_process_worker.rb +/app/workers/pipeline_schedule_worker.rb +/app/workers/projects/refresh_build_artifacts_size_statistics_worker.rb +/app/workers/run_pipeline_schedule_worker.rb +/app/workers/stuck_ci_jobs_worker.rb +/app/workers/update_external_pull_requests_worker.rb +/lib/api/commit_statuses.rb +/ee/app/finders/merge_trains_finder.rb +/ee/app/services/auto_merge/add_to_merge_train_when_pipeline_succeeds_service.rb +/ee/app/services/auto_merge/merge_train_service.rb +/ee/app/services/system_notes/merge_train_service.rb +/ee/app/controllers/ee/admin/runners_controller.rb +/ee/app/controllers/ee/projects/pipelines_controller.rb +/ee/app/controllers/projects/pipelines/ +/ee/app/controllers/projects/subscriptions_controller.rb +/ee/app/helpers/ee/projects/pipeline_helper.rb +/ee/app/views/ci_minutes_usage_mailer/ +/ee/app/views/projects/pipelines/ +/ee/app/views/projects/settings/ci_cd/ +/ee/app/workers/clear_shared_runners_minutes_worker.rb +/ee/lib/api/merge_trains.rb +/ee/lib/ee/api/entities/merge_train.rb +/ee/spec/requests/api/merge_trains_spec.rb +/spec/controllers/admin/jobs_controller_spec.rb +/spec/controllers/admin/runner_projects_controller_spec.rb +/spec/controllers/admin/runners_controller_spec.rb +/spec/controllers/projects/artifacts_controller_spec.rb +/spec/controllers/projects/jobs_controller_spec.rb +/spec/requests/runner_setup_controller_spec.rb +/spec/controllers/projects/pipeline_schedules_controller_spec.rb +/spec/requests/projects/pipelines_controller_spec.rb +/spec/controllers/projects/pipelines_settings_controller_spec.rb +/spec/controllers/projects/runners_controller_spec.rb +/spec/controllers/groups/variables_controller_spec.rb +/spec/models/commit_status_spec.rb +/spec/models/external_pull_request_spec.rb +/spec/models/generic_commit_status_spec.rb +/spec/models/namespace_ci_cd_setting_spec.rb +/spec/models/project_ci_cd_setting_spec.rb +/spec/presenters/commit_status_presenter_spec.rb +/spec/views/projects/jobs/ +/spec/views/projects/pipeline_schedules/ +/spec/views/projects/pipelines/ +/spec/views/projects/settings/ci_cd/ +/spec/workers/build_hooks_worker_spec.rb +/spec/workers/build_queue_worker_spec.rb +/spec/workers/build_success_worker_spec.rb +/spec/workers/ci_platform_metrics_update_cron_worker_spec.rb +/spec/workers/create_pipeline_worker_spec.rb +/spec/workers/expire_build_artifacts_worker_spec.rb +/spec/workers/pipeline_hooks_worker_spec.rb +/spec/workers/pipeline_metrics_worker_spec.rb +/spec/workers/pipeline_notification_worker_spec.rb +/spec/workers/pipeline_process_worker_spec.rb +/spec/workers/pipeline_schedule_worker_spec.rb +/spec/workers/run_pipeline_schedule_worker_spec.rb +/spec/workers/stuck_ci_jobs_worker_spec.rb +/spec/workers/update_external_pull_requests_worker_spec.rb +/ee/spec/finders/merge_trains_finder_spec.rb +/ee/spec/services/auto_merge/add_to_merge_train_when_pipeline_succeeds_service_spec.rb +/ee/spec/services/auto_merge/merge_train_service_spec.rb +/ee/spec/services/system_notes/merge_train_service_spec.rb +/ee/spec/controllers/projects/subscriptions_controller_spec.rb +/ee/spec/helpers/ee/projects/pipeline_helper_spec.rb +/ee/spec/workers/clear_shared_runners_minutes_worker_spec.rb + +# Verify Frontend +/**/spec/frontend/**/ci/ @gitlab-org/ci-cd/verify/frontend +/**/javascripts/ci/ @gitlab-org/ci-cd/verify/frontend +/**/javascripts/pipelines/ @gitlab-org/ci-cd/verify/frontend +/**/javascripts/jobs/ @gitlab-org/ci-cd/verify/frontend +/**/javascripts/token_access/ @gitlab-org/ci-cd/verify/frontend +/**/javascripts/admin/application_settings/runner_token_expiration/ @gitlab-org/ci-cd/verify/frontend +/**/javascripts/usage_quotas/pipelines/ @gitlab-org/ci-cd/verify/frontend @sheldonled @aalakkad @kpalchyk + +# CI/CD templates +/lib/gitlab/ci/templates/ @gitlab-org/maintainers/cicd-templates +/lib/gitlab/ci/templates/Auto-DevOps.gitlab-ci.yml @DylanGriffith @mayra-cabrera @tkuah +/lib/gitlab/ci/templates/Security/ @gonzoyumo @twoodham @sethgitlab @thiagocsf +/lib/gitlab/ci/templates/Security/API-Fuzzing.*.yml @gitlab-org/secure/dynamic-analysis +/lib/gitlab/ci/templates/Security/Container-Scanning.*.yml @gitlab-org/secure/composition-analysis-be +/lib/gitlab/ci/templates/Security/Coverage-Fuzzing.*.yml @gitlab-org/secure/dynamic-analysis +/lib/gitlab/ci/templates/Security/DAST.*.yml @gitlab-org/secure/dynamic-analysis +/lib/gitlab/ci/templates/Security/Dependency-Scanning.*.yml @gitlab-org/secure/composition-analysis-be +/lib/gitlab/ci/templates/Security/License-Scanning.*.yml @gitlab-org/secure/composition-analysis-be +/lib/gitlab/ci/templates/Security/SAST.*.yml @gitlab-org/secure/static-analysis +/lib/gitlab/ci/templates/Security/Secret-Detection.*.yml @gitlab-org/secure/static-analysis +/lib/gitlab/ci/templates/Security/Secure-Binaries.*.yml @gitlab-org/secure/static-analysis @gitlab-org/secure/composition-analysis-be @gitlab-org/secure/dynamic-analysis +# Note: The `Fortify-FoD-sast.gitlab-ci.yml` template is provided and maintained by Fortify, an official Technology Partner with GitLab. +/lib/gitlab/ci/templates/Jobs/Container-Scanning.*.yml @gitlab-org/secure/composition-analysis-be +/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.*.yml @gitlab-org/secure/composition-analysis-be +/lib/gitlab/ci/templates/Jobs/License-Scanning.*.yml @gitlab-org/secure/composition-analysis-be +/lib/gitlab/ci/templates/Jobs/SAST.*.yml @gitlab-org/secure/static-analysis +/lib/gitlab/ci/templates/Jobs/Secret-Detection.*.yml @gitlab-org/secure/static-analysis [Manage::Workspace] lib/api/entities/basic_project_details.rb @gitlab-org/manage/manage-workspace/backend-approvers @@ -1421,10 +1438,26 @@ ee/lib/ee/api/entities/project.rb @gitlab-org/manage/manage-workspace/backend-ap /lib/gitlab/audit_json_logger.rb @gitlab-org/govern/compliance [Fulfillment::Utilization] -/ee/app/assets/javascripts/usage_quotas/components/ @fulfillment-group/utilization-group/fe -/ee/app/assets/javascripts/usage_quotas/seats/ @fulfillment-group/utilization-group/fe -/ee/app/assets/javascripts/usage_quotas/storage/ @fulfillment-group/utilization-group/fe +/ee/app/assets/javascripts/usage_quotas/components/ @sheldonled @aalakkad @kpalchyk +/ee/app/assets/javascripts/usage_quotas/seats/ @sheldonled @aalakkad @kpalchyk +/ee/app/assets/javascripts/usage_quotas/storage/ @sheldonled @aalakkad @kpalchyk [Manage::Foundations] /lib/sidebars/ @gitlab-org/manage/foundations/engineering /ee/lib/sidebars/ @gitlab-org/manage/foundations/engineering + +# JiHu GitLab rules. See https://gitlab.com/gitlab-jh/gitlab-jh-enablement/-/issues/213#note_1024367528 + +[JH Frontend] @jihulab/maintainers/frontend +/jh/app/assets/ +/jh/*.scss +/jh/*.js +/jh/*.vue + +[JH Rails Backend] @jihulab/maintainers/rails-backend +/jh/*.rb +/jh/*.rake +/jh/qa/ @jihulab/maintainers/quality + +[JH Technical Writer] @jihulab/maintainers/technical-writer +/jh/doc/ diff --git a/.gitlab/ci/build-images.gitlab-ci.yml b/.gitlab/ci/build-images.gitlab-ci.yml index 4ee15ccb31..c1123b29d6 100644 --- a/.gitlab/ci/build-images.gitlab-ci.yml +++ b/.gitlab/ci/build-images.gitlab-ci.yml @@ -71,3 +71,10 @@ build-assets-image: # The `cached-assets-hash.txt` file is used in `review-build-cng-env` (`.gitlab/ci/review-apps/main.gitlab-ci.yml`) # to pass the assets image tag to the CNG downstream pipeline. - cached-assets-hash.txt + +build-assets-image as-if-foss: + extends: + - build-assets-image + - .as-if-foss + - .build-images:rules:build-assets-image-as-if-foss + needs: ["compile-production-assets as-if-foss"] diff --git a/.gitlab/ci/ci-templates.gitlab-ci.yml b/.gitlab/ci/ci-templates.gitlab-ci.yml index d6e2fdf2fb..c6681db968 100644 --- a/.gitlab/ci/ci-templates.gitlab-ci.yml +++ b/.gitlab/ci/ci-templates.gitlab-ci.yml @@ -4,7 +4,7 @@ templates-shellcheck: - .default-before_script - .default-retry - .ruby-cache - - .use-pg13 + - .use-pg14 stage: test needs: - setup-test-env diff --git a/.gitlab/ci/dev-fixtures.gitlab-ci.yml b/.gitlab/ci/dev-fixtures.gitlab-ci.yml index 0ff469d711..f89456a18f 100644 --- a/.gitlab/ci/dev-fixtures.gitlab-ci.yml +++ b/.gitlab/ci/dev-fixtures.gitlab-ci.yml @@ -3,7 +3,7 @@ - .default-retry - .rails-cache - .default-before_script - - .use-pg12 + - .use-pg13 stage: test needs: ["setup-test-env"] variables: @@ -29,7 +29,7 @@ run-dev-fixtures-ee: extends: - .run-dev-fixtures - .dev-fixtures:rules:ee-only - - .use-pg12-es7-ee + - .use-pg13-es7-ee script: - cp ee/db/fixtures/development/* $FIXTURE_PATH - *run-dev-fixtures-script diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml index c5d992cab6..51fad741a1 100644 --- a/.gitlab/ci/frontend.gitlab-ci.yml +++ b/.gitlab/ci/frontend.gitlab-ci.yml @@ -49,17 +49,11 @@ compile-production-assets: after_script: - rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here -compile-production-assets-esbuild: - allow_failure: true +compile-production-assets as-if-foss: extends: - - .compile-assets-base - - .frontend:rules:compile-production-assets - variables: - NODE_ENV: "production" - RAILS_ENV: "production" - WEBPACK_USE_ESBUILD_LOADER: "true" - after_script: - - rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here + - compile-production-assets + - .as-if-foss + - .frontend:rules:compile-production-assets-as-if-foss compile-test-assets: extends: @@ -73,14 +67,6 @@ compile-test-assets: - "${WEBPACK_COMPILE_LOG_PATH}" when: always -compile-test-assets-esbuild: - allow_failure: true - extends: - - .compile-assets-base - - .frontend:rules:compile-test-assets - variables: - WEBPACK_USE_ESBUILD_LOADER: "true" - compile-test-assets as-if-foss: extends: - compile-test-assets @@ -116,17 +102,56 @@ update-storybook-yarn-cache: script: - yarn_install_script +retrieve-frontend-fixtures: + variables: + SETUP_DB: "false" + extends: + - .default-retry + - .frontend:rules:default-frontend-jobs + stage: prepare + script: + - source scripts/utils.sh + - source scripts/gitlab_component_helpers.sh + - install_gitlab_gem + - export_fixtures_sha_for_download + - | + if check_fixtures_download; then + run_timed_command "download_and_extract_fixtures" + fi + artifacts: + paths: + - tmp/tests/frontend/ + +# Download fixtures only when a merge request contains changes to only JS files +# and fixtures are present in the package registry. .frontend-fixtures-base: extends: - .default-retry - .default-before_script - .rails-cache - - .use-pg12 + - .use-pg13 stage: fixtures - needs: ["setup-test-env", "retrieve-tests-metadata"] + needs: ["setup-test-env", "retrieve-tests-metadata", "retrieve-frontend-fixtures"] variables: + # Don't add `CRYSTALBALL: "false"` here as we're enabling Crystalball for scheduled pipelines (in `.gitlab-ci.yml`), so that we get coverage data + # for the `frontend fixture RSpec files` that will be added to the Crystalball mapping in `update-tests-metadata`. + # More information in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74003. WEBPACK_VENDOR_DLL: "true" script: + - source scripts/utils.sh + - source scripts/gitlab_component_helpers.sh + - | + if [[ -d "tmp/tests/frontend" ]]; then + # Remove tmp/tests/frontend/ except on the first parallelized job so that depending + # jobs don't download the exact same artifact multiple times. + if [[ -n "${CI_NODE_INDEX}" ]] && [[ "${CI_NODE_INDEX}" -ne 1 ]]; then + echoinfo "INFO: Removing 'tmp/tests/frontend' as we're on node ${CI_NODE_INDEX}."; + rm -rf "tmp/tests/frontend"; + fi + exit 0 + else + echo "No frontend fixtures directory, generating frontend fixtures." + fi - run_timed_command "gem install knapsack --no-document" - run_timed_command "scripts/gitaly-test-spawn" - source ./scripts/rspec_helpers.sh @@ -157,6 +182,12 @@ rspec-all frontend_fixture as-if-foss: - .frontend-fixtures-base - .frontend:rules:frontend_fixture-as-if-foss - .as-if-foss + variables: + # We explicitely disable Crystalball here so as even in scheduled pipelines we don't need it since it's already enabled for `rspec-all frontend_fixture` there. + CRYSTALBALL: "false" + WEBPACK_VENDOR_DLL: "true" + KNAPSACK_GENERATE_REPORT: "" + FLAKY_RSPEC_GENERATE_REPORT: "" needs: - !reference [.frontend-fixtures-base, needs] - "compile-test-assets as-if-foss" @@ -170,7 +201,9 @@ upload-frontend-fixtures: stage: fixtures needs: ["rspec-all frontend_fixture"] script: + - source scripts/utils.sh - source scripts/gitlab_component_helpers.sh + - export_fixtures_sha_for_upload - 'fixtures_archive_doesnt_exist || { echoinfo "INFO: Exiting early as package exists."; exit 0; }' - run_timed_command "create_fixtures_package" - run_timed_command "upload_fixtures_package" @@ -272,9 +305,7 @@ jest-integration: - .frontend:rules:default-frontend-jobs script: - run_timed_command "yarn jest:integration --ci" - needs: - - job: "rspec-all frontend_fixture" - - job: "graphql-schema-dump" + needs: ["rspec-all frontend_fixture", "graphql-schema-dump"] coverage-frontend: extends: @@ -357,9 +388,7 @@ startup-css-check: extends: - .startup-css-check-base - .frontend:rules:default-frontend-jobs - needs: - - job: "compile-test-assets" - - job: "rspec-all frontend_fixture" + needs: ["compile-test-assets", "rspec-all frontend_fixture"] startup-css-check as-if-foss: extends: diff --git a/.gitlab/ci/glfm.gitlab-ci.yml b/.gitlab/ci/glfm.gitlab-ci.yml index 6ff60f2473..008bb03de2 100644 --- a/.gitlab/ci/glfm.gitlab-ci.yml +++ b/.gitlab/ci/glfm.gitlab-ci.yml @@ -2,7 +2,7 @@ glfm-verify: extends: - .rails-job-base - .glfm:rules:glfm-verify - - .use-pg12 + - .use-pg13 stage: test needs: ["setup-test-env"] script: diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml index 14fa0fc367..02e13be9a7 100644 --- a/.gitlab/ci/global.gitlab-ci.yml +++ b/.gitlab/ci/global.gitlab-ci.yml @@ -2,11 +2,13 @@ retry: max: 2 # This is confusing but this means "3 runs at max". when: - - unknown_failure - api_failure - - runner_system_failure + - data_integrity_failure - job_execution_timeout + - runner_system_failure + - scheduler_failure - stuck_or_timeout_failure + - unknown_failure .default-utils-before_script: before_script: @@ -37,22 +39,12 @@ <<: *ruby-gems-cache policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up. -.gitaly-ruby-gems-cache: &gitaly-ruby-gems-cache - key: "gitaly-ruby-gems-debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}" - paths: - - vendor/gitaly-ruby/ - policy: pull - -.gitaly-ruby-gems-cache-push: &gitaly-ruby-gems-cache-push - <<: *gitaly-ruby-gems-cache - policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up. - .gitaly-binaries-cache: &gitaly-binaries-cache key: files: - GITALY_SERVER_VERSION - lib/gitlab/setup_helper.rb - prefix: "gitaly-binaries-debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}" + prefix: "gitaly-binaries-debian-${DEBIAN_VERSION}" paths: - ${TMP_TEST_FOLDER}/gitaly/_build/bin/ - ${TMP_TEST_FOLDER}/gitaly/_build/deps/git/install/ @@ -64,7 +56,6 @@ - ${TMP_TEST_FOLDER}/gitaly/Makefile - ${TMP_TEST_FOLDER}/gitaly/praefect.config.toml - ${TMP_TEST_FOLDER}/gitaly/praefect-db.config.toml - - ${TMP_TEST_FOLDER}/gitaly/ruby/ policy: pull .go-pkg-cache: &go-pkg-cache @@ -138,14 +129,12 @@ .setup-test-env-cache: cache: - *ruby-gems-cache - - *gitaly-ruby-gems-cache - *gitaly-binaries-cache - *go-pkg-cache .setup-test-env-cache-push: cache: - *ruby-gems-cache-push - - *gitaly-ruby-gems-cache-push - *go-pkg-cache-push .gitaly-binaries-cache-push: @@ -160,7 +149,6 @@ .rails-cache: cache: - *ruby-gems-cache - - *gitaly-ruby-gems-cache .static-analysis-cache: cache: @@ -229,7 +217,6 @@ - *node-modules-cache # We don't push this cache as it's already rebuilt by `update-assets-compile-*-cache` - *storybook-node-modules-cache-push - .use-pg12: services: - name: postgres:12 @@ -248,6 +235,15 @@ POSTGRES_HOST_AUTH_METHOD: trust PG_VERSION: "13" +.use-pg14: + services: + - name: postgres:14 + command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] + - name: redis:6.2-alpine + variables: + POSTGRES_HOST_AUTH_METHOD: trust + PG_VERSION: "14" + .use-pg12-es7-ee: services: - name: postgres:12 @@ -278,9 +274,24 @@ ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 -.use-pg12-es8-ee: +.use-pg14-es7-ee: services: - - name: postgres:12 + - name: postgres:14 + command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] + - name: redis:6.2-alpine + - name: elasticsearch:7.17.6 + command: ["elasticsearch", "-E", "discovery.type=single-node", "-E", "xpack.security.enabled=false"] + - name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0 + alias: zoekt-ci-image + variables: + POSTGRES_HOST_AUTH_METHOD: trust + PG_VERSION: "14" + ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 + ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 + +.use-pg13-es8-ee: + services: + - name: postgres:13 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - name: redis:6.0-alpine - name: elasticsearch:8.6.2 @@ -288,15 +299,31 @@ alias: zoekt-ci-image variables: POSTGRES_HOST_AUTH_METHOD: trust - PG_VERSION: "12" + PG_VERSION: "13" ES_SETTING_DISCOVERY_TYPE: "single-node" ES_SETTING_XPACK_SECURITY_ENABLED: "false" ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 -.use-pg12-opensearch1-ee: +.use-pg14-es8-ee: services: - - name: postgres:12 + - name: postgres:14 + command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] + - name: redis:6.0-alpine + - name: elasticsearch:8.6.2 + - name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0 + alias: zoekt-ci-image + variables: + POSTGRES_HOST_AUTH_METHOD: trust + PG_VERSION: "14" + ES_SETTING_DISCOVERY_TYPE: "single-node" + ES_SETTING_XPACK_SECURITY_ENABLED: "false" + ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 + ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 + +.use-pg13-opensearch1-ee: + services: + - name: postgres:13 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - name: redis:6.0-alpine - name: opensearchproject/opensearch:1.3.5 @@ -306,13 +333,13 @@ alias: zoekt-ci-image variables: POSTGRES_HOST_AUTH_METHOD: trust - PG_VERSION: "12" + PG_VERSION: "13" ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 -.use-pg12-opensearch2-ee: +.use-pg13-opensearch2-ee: services: - - name: postgres:12 + - name: postgres:13 command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] - name: redis:6.0-alpine - name: opensearchproject/opensearch:2.2.1 @@ -322,7 +349,39 @@ alias: zoekt-ci-image variables: POSTGRES_HOST_AUTH_METHOD: trust - PG_VERSION: "12" + PG_VERSION: "13" + ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 + ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 + +.use-pg14-opensearch1-ee: + services: + - name: postgres:14 + command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] + - name: redis:6.0-alpine + - name: opensearchproject/opensearch:1.3.5 + alias: elasticsearch + command: ["bin/opensearch", "-E", "discovery.type=single-node", "-E", "plugins.security.disabled=true"] + - name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0 + alias: zoekt-ci-image + variables: + POSTGRES_HOST_AUTH_METHOD: trust + PG_VERSION: "14" + ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 + ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 + +.use-pg14-opensearch2-ee: + services: + - name: postgres:14 + command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"] + - name: redis:6.0-alpine + - name: opensearchproject/opensearch:2.2.1 + alias: elasticsearch + command: ["bin/opensearch", "-E", "discovery.type=single-node", "-E", "plugins.security.disabled=true"] + - name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0 + alias: zoekt-ci-image + variables: + POSTGRES_HOST_AUTH_METHOD: trust + PG_VERSION: "14" ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060 ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070 diff --git a/.gitlab/ci/memory.gitlab-ci.yml b/.gitlab/ci/memory.gitlab-ci.yml index 5d6b90d107..afef2b11ee 100644 --- a/.gitlab/ci/memory.gitlab-ci.yml +++ b/.gitlab/ci/memory.gitlab-ci.yml @@ -20,7 +20,7 @@ memory-on-boot: extends: - .only-code-memory-job-base - .production - - .use-pg12 + - .use-pg13 stage: test needs: ["setup-test-env", "compile-test-assets"] variables: diff --git a/.gitlab/ci/notify.gitlab-ci.yml b/.gitlab/ci/notify.gitlab-ci.yml index 90ae1813e5..1afc4eb8c9 100644 --- a/.gitlab/ci/notify.gitlab-ci.yml +++ b/.gitlab/ci/notify.gitlab-ci.yml @@ -3,74 +3,6 @@ dependencies: [] cache: {} -.notify-slack: - extends: - - .notify-defaults - image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}alpine/curl - variables: - MERGE_REQUEST_URL: ${CI_MERGE_REQUEST_PROJECT_URL}/-/merge_requests/${CI_MERGE_REQUEST_IID} - before_script: - - apk update && apk add git bash - - echo "NOTIFY_CHANNEL is ${NOTIFY_CHANNEL}" - - echo "CI_PIPELINE_URL is ${CI_PIPELINE_URL}" - -notify-update-gitaly: - extends: - - .notify-slack - rules: - - if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == $GITALY_UPDATE_BRANCH' - when: on_failure - allow_failure: true - variables: - NOTIFY_CHANNEL: g_gitaly - GITALY_UPDATE_BRANCH: release-tools/update-gitaly - script: - - scripts/slack ${NOTIFY_CHANNEL} "☠️ \`${GITALY_UPDATE_BRANCH}\` failed! ☠️ See ${CI_PIPELINE_URL} (triggered from ${MERGE_REQUEST_URL})" ci_failing "GitLab QA Bot" - -notify-security-pipeline: - extends: - - .notify-slack - - .delivery:rules:security-pipeline-merge-result-failure - variables: - NOTIFY_CHANNEL: f_upcoming_release - script: - # mentions the `@release-managers` group - - scripts/slack ${NOTIFY_CHANNEL} " ☠️ Pipeline for merged result failed! ☠️ See ${CI_PIPELINE_URL} (triggered from ${MERGE_REQUEST_URL})" ci_failing "GitLab Release Tools Bot" - -notify-pipeline-failure: - extends: - - .notify-defaults - - .notify:rules:notify-pipeline-failure - image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION} - variables: - INCIDENT_PROJECT: "${BROKEN_BRANCH_INCIDENTS_PROJECT}" - BROKEN_BRANCH_PROJECT_TOKEN: "${BROKEN_BRANCH_INCIDENTS_PROJECT_TOKEN}" - INCIDENT_JSON: "${CI_PROJECT_DIR}/incident.json" - SLACK_CHANNEL: "${NOTIFY_PIPELINE_FAILURE_CHANNEL}" - FAILED_PIPELINE_SLACK_MESSAGE_FILE: "${CI_PROJECT_DIR}/failed_pipeline_slack_message.json" - before_script: - - source scripts/utils.sh - - apt-get update && apt-get install -y jq - - install_gitlab_gem - script: - - | - if [[ "${CREATE_INCIDENT_FOR_PIPELINE_FAILURE}" == "true" ]]; then - scripts/create-pipeline-failure-incident.rb -p ${INCIDENT_PROJECT} -f ${INCIDENT_JSON} -t ${BROKEN_BRANCH_PROJECT_TOKEN} || - scripts/slack ${SLACK_CHANNEL} "☠️ Broken pipeline incident creation failed! ☠️ See ${CI_JOB_URL}" ci_failing "Failed pipeline reporter"; - echosuccess "Created incident $(jq '.web_url' ${INCIDENT_JSON})"; - fi - - | - scripts/generate-failed-pipeline-slack-message.rb -i ${INCIDENT_JSON} -f ${FAILED_PIPELINE_SLACK_MESSAGE_FILE}; - curl -X POST -H 'Content-Type: application/json' --data @${FAILED_PIPELINE_SLACK_MESSAGE_FILE} "$CI_SLACK_WEBHOOK_URL" || - scripts/slack ${SLACK_CHANNEL} "☠️ Broken pipeline notification failed! ☠️ See ${CI_JOB_URL}" ci_failing "Failed pipeline reporter"; - - artifacts: - paths: - - ${INCIDENT_JSON} - - ${FAILED_PIPELINE_SLACK_MESSAGE_FILE} - when: always - expire_in: 2 days - create-issues-for-failing-tests: extends: - .notify-defaults diff --git a/.gitlab/ci/package-and-test/main.gitlab-ci.yml b/.gitlab/ci/package-and-test/main.gitlab-ci.yml index c830f541c9..270bf7eae4 100644 --- a/.gitlab/ci/package-and-test/main.gitlab-ci.yml +++ b/.gitlab/ci/package-and-test/main.gitlab-ci.yml @@ -4,11 +4,14 @@ default: interruptible: true +workflow: + name: $PIPELINE_NAME + include: - local: .gitlab/ci/package-and-test/rules.gitlab-ci.yml - local: .gitlab/ci/package-and-test/variables.gitlab-ci.yml - project: gitlab-org/quality/pipeline-common - ref: 2.2.0 + ref: 3.1.2 file: - /ci/base.gitlab-ci.yml - /ci/allure-report.yml @@ -54,19 +57,13 @@ stages: stage: test tags: - e2e - needs: - - job: trigger-omnibus - optional: true - - job: download-knapsack-report - artifacts: true - optional: true - - job: check-release-set variables: QA_GENERATE_ALLURE_REPORT: "true" QA_CAN_TEST_PRAEFECT: "false" QA_INTERCEPT_REQUESTS: "true" GITLAB_LICENSE_MODE: test GITLAB_QA_ADMIN_ACCESS_TOKEN: $QA_ADMIN_ACCESS_TOKEN + GITLAB_QA_OPTS: $EXTRA_GITLAB_QA_OPTS # todo: remove in 16.1 milestone when not needed for backwards compatibility anymore EE_LICENSE: $QA_EE_LICENSE GITHUB_ACCESS_TOKEN: $QA_GITHUB_ACCESS_TOKEN @@ -126,6 +123,7 @@ trigger-omnibus-env: echo "OMNIBUS_GITLAB_RUBY3_BUILD=${OMNIBUS_GITLAB_RUBY3_BUILD:-false}" >> $BUILD_ENV echo "OMNIBUS_GITLAB_RUBY2_BUILD=${OMNIBUS_GITLAB_RUBY2_BUILD:-false}" >> $BUILD_ENV echo "OMNIBUS_GITLAB_CACHE_EDITION=${OMNIBUS_GITLAB_CACHE_EDITION:-GITLAB}" >> $BUILD_ENV + echo "OMNIBUS_GITLAB_BUILD_ON_ALL_OS=${OMNIBUS_GITLAB_BUILD_ON_ALL_OS:-false}" >> $BUILD_ENV echo "GITLAB_ASSETS_TAG=$(assets_image_tag)" >> $BUILD_ENV echo "EE=$([[ $FOSS_ONLY == '1' ]] && echo 'false' || echo 'true')" >> $BUILD_ENV target_branch_name="${CI_MERGE_REQUEST_TARGET_BRANCH_NAME:-${CI_COMMIT_REF_NAME}}" @@ -136,6 +134,14 @@ trigger-omnibus-env: reports: dotenv: $BUILD_ENV +trigger-omnibus-env-ce: + extends: + - trigger-omnibus-env + - .rules:omnibus-build-ce + needs: + - pipeline: $PARENT_PIPELINE_ID + job: build-assets-image as-if-foss + trigger-omnibus: extends: .rules:omnibus-build stage: .pre @@ -160,6 +166,7 @@ trigger-omnibus: RUBY3_BUILD: $OMNIBUS_GITLAB_RUBY3_BUILD RUBY2_BUILD: $OMNIBUS_GITLAB_RUBY2_BUILD CACHE_EDITION: $OMNIBUS_GITLAB_CACHE_EDITION + BUILD_ON_ALL_OS: $OMNIBUS_GITLAB_BUILD_ON_ALL_OS SKIP_QA_TEST: "true" ee: $EE trigger: @@ -167,6 +174,16 @@ trigger-omnibus: branch: $TRIGGER_BRANCH strategy: depend +trigger-omnibus-ce: + extends: + - trigger-omnibus + - .rules:omnibus-build-ce + variables: + # Override gitlab repository so that omnibus doesn't use foss repository for CE build + GITLAB_ALTERNATIVE_REPO: $CI_PROJECT_URL + needs: + - trigger-omnibus-env-ce + download-knapsack-report: extends: - .gitlab-qa-image @@ -220,27 +237,6 @@ _quarantine: variables: QA_RSPEC_TAGS: --tag quarantine -# Temporary test job to support the effort of migrating to Super Sidebar -# https://gitlab.com/groups/gitlab-org/-/epics/9044 -_super-sidebar-nav: - extends: - - .qa - - .parallel - variables: - QA_SCENARIO: Test::Instance::Image - QA_KNAPSACK_REPORT_NAME: ee-instance - QA_TESTS: "" - QA_SUPER_SIDEBAR_ENABLED: "true" - QA_ALLURE_RESULTS_DIRECTORY: tmp/allure-results-super-sidebar - QA_EXPORT_TEST_METRICS: "false" - GITLAB_QA_OPTS: --set-feature-flags super_sidebar_nav=enabled - RSPEC_REPORT_OPTS: "--format documentation" - SKIP_REPORT_IN_ISSUES: "true" - allow_failure: true - rules: - - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH - - !reference [.rules:test:manual, rules] - # ------------------------------------------ # FF changes # ------------------------------------------ @@ -311,7 +307,7 @@ decomposition-single-db-selective: extends: .qa variables: QA_SCENARIO: Test::Instance::Image - GITLAB_QA_OPTS: --omnibus-config decomposition_single_db + GITLAB_QA_OPTS: --omnibus-config decomposition_single_db $EXTRA_GITLAB_QA_OPTS rules: - !reference [.rules:test:qa-selective, rules] - if: $QA_SUITES =~ /Test::Instance::All/ @@ -328,7 +324,7 @@ decomposition-multiple-db-selective: variables: QA_SCENARIO: Test::Instance::Image GITLAB_ALLOW_SEPARATE_CI_DATABASE: "true" - GITLAB_QA_OPTS: --omnibus-config decomposition_multiple_db + GITLAB_QA_OPTS: --omnibus-config decomposition_multiple_db $EXTRA_GITLAB_QA_OPTS rules: - !reference [.rules:test:qa-selective, rules] - if: $QA_SUITES =~ /Test::Instance::All/ @@ -345,7 +341,7 @@ object-storage-selective: variables: QA_SCENARIO: Test::Instance::Image QA_RSPEC_TAGS: --tag object_storage - GITLAB_QA_OPTS: --omnibus-config object_storage + GITLAB_QA_OPTS: --omnibus-config object_storage $EXTRA_GITLAB_QA_OPTS rules: - !reference [.rules:test:qa-selective, rules] - if: $QA_SUITES =~ /Test::Instance::ObjectStorage/ @@ -363,7 +359,7 @@ object-storage-aws-selective: AWS_S3_BUCKET_NAME: $QA_AWS_S3_BUCKET_NAME AWS_S3_KEY_ID: $QA_AWS_S3_KEY_ID AWS_S3_REGION: $QA_AWS_S3_REGION - GITLAB_QA_OPTS: --omnibus-config object_storage_aws + GITLAB_QA_OPTS: --omnibus-config object_storage_aws $EXTRA_GITLAB_QA_OPTS object-storage-aws: extends: object-storage-aws-selective parallel: 2 @@ -377,7 +373,7 @@ object-storage-gcs-selective: GOOGLE_PROJECT: $QA_GOOGLE_PROJECT GOOGLE_JSON_KEY: $QA_GOOGLE_JSON_KEY GOOGLE_CLIENT_EMAIL: $QA_GOOGLE_CLIENT_EMAIL - GITLAB_QA_OPTS: --omnibus-config object_storage_gcs + GITLAB_QA_OPTS: --omnibus-config object_storage_gcs $EXTRA_GITLAB_QA_OPTS object-storage-gcs: extends: object-storage-gcs-selective parallel: 2 @@ -389,7 +385,7 @@ packages-selective: variables: QA_SCENARIO: Test::Instance::Image QA_RSPEC_TAGS: --tag packages - GITLAB_QA_OPTS: --omnibus-config packages + GITLAB_QA_OPTS: --omnibus-config packages $EXTRA_GITLAB_QA_OPTS rules: - !reference [.rules:test:qa-selective, rules] - if: $QA_SUITES =~ /Test::Instance::Packages/ @@ -455,6 +451,15 @@ group-saml: - if: $QA_SUITES =~ /Test::Integration::GroupSAML/ - !reference [.rules:test:manual, rules] +oauth: + extends: .qa + variables: + QA_SCENARIO: Test::Integration::OAuth + rules: + - !reference [.rules:test:qa-default-branch, rules] + - if: $QA_SUITES =~ /Test::Integration::OAuth/ + - !reference [.rules:test:manual, rules] + instance-saml: extends: .qa variables: @@ -468,8 +473,6 @@ jira: extends: .qa variables: QA_SCENARIO: Test::Integration::Jira - JIRA_ADMIN_USERNAME: $QA_JIRA_ADMIN_USERNAME - JIRA_ADMIN_PASSWORD: $QA_JIRA_ADMIN_PASSWORD rules: - !reference [.rules:test:qa, rules] - if: $QA_SUITES =~ /Test::Integration::Jira/ @@ -629,7 +632,7 @@ registry-object-storage-tls: QA_SCENARIO: Test::Integration::RegistryTLS QA_RSPEC_TAGS: "" GITLAB_TLS_CERTIFICATE: $QA_GITLAB_TLS_CERTIFICATE - GITLAB_QA_OPTS: --omnibus-config registry_object_storage + GITLAB_QA_OPTS: --omnibus-config registry_object_storage $EXTRA_GITLAB_QA_OPTS importers: extends: .qa @@ -650,27 +653,10 @@ e2e-test-report: - .rules:report:allure-report stage: report variables: - ALLURE_JOB_NAME: e2e-package-and-test GITLAB_AUTH_TOKEN: $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE ALLURE_PROJECT_PATH: $CI_PROJECT_PATH ALLURE_MERGE_REQUEST_IID: $CI_MERGE_REQUEST_IID -# Temporary separate test report for super-sidebar test job -# TODO: remove once super-sidebar is on by default and enabled in tests -# https://gitlab.com/groups/gitlab-org/-/epics/9044 -e2e-test-report-super-sidebar: - extends: - - .generate-allure-report-base - stage: report - needs: - - _super-sidebar-nav - variables: - ALLURE_JOB_NAME: e2e-super-sidebar - ALLURE_RESULTS_GLOB: gitlab-qa-run-*/**/allure-results-super-sidebar - rules: - - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH - - !reference [.rules:test:manual, rules] - upload-knapsack-report: extends: - .generate-knapsack-report-base diff --git a/.gitlab/ci/package-and-test/rules.gitlab-ci.yml b/.gitlab/ci/package-and-test/rules.gitlab-ci.yml index 4e597b042d..8f63dbc38c 100644 --- a/.gitlab/ci/package-and-test/rules.gitlab-ci.yml +++ b/.gitlab/ci/package-and-test/rules.gitlab-ci.yml @@ -10,16 +10,23 @@ .feature-flags-set: &feature-flags-set if: $QA_FEATURE_FLAGS =~ /enabled|disabled/ - # Manually trigger job on ff changes but with default ff state instead of inverted .feature-flags-set-manual: &feature-flags-set-manual <<: *feature-flags-set when: manual allow_failure: true -# Run all tests when framework changes present, full suite execution is explicitly enabled or a feature flag file is removed +# Run the job on master pipeline +.default-branch: &default-branch + if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' + +# Run all tests when QA framework changes present, full suite execution is explicitly enabled or a feature flag file is removed .qa-run-all-tests: &qa-run-all-tests - if: $QA_FRAMEWORK_CHANGES == "true" || $QA_RUN_ALL_TESTS == "true" || $QA_FEATURE_FLAGS =~ /deleted/ + if: $QA_FRAMEWORK_CHANGES == "true" || $QA_RUN_ALL_TESTS == "true" || $QA_RUN_ALL_E2E_LABEL == "true" || $QA_FEATURE_FLAGS =~ /deleted/ + +# Run job when MR has pipeline:run-all-e2e label +.qa-run-all-e2e-label: &qa-run-all-e2e-label + if: $QA_RUN_ALL_E2E_LABEL == "true" # Process test results (notify failure to slack, create test session report, relate test failures) .process-test-results: &process-test-results @@ -53,21 +60,20 @@ rules: - if: $SKIP_OMNIBUS_TRIGGER == "true" when: never - - when: always + - if: $FOSS_ONLY != "1" + +.rules:omnibus-build-ce: + rules: + - if: $SKIP_OMNIBUS_TRIGGER == "true" + when: never + - if: $FOSS_ONLY == "1" .rules:update-cache: rules: - - <<: *not-canonical-project - when: never - - when: always + - if: '$UPDATE_QA_CACHE == "true"' -# This job requires project access token with api permissions to detect parallel jobs, -# it is problematic to set for every project that would include this template -# Because parallel jobs themselves can download knapsack report, skip for non canonical runs .rules:download-knapsack: rules: - - <<: *not-canonical-project - when: never - when: always # ------------------------------------------ @@ -117,7 +123,7 @@ .rules:test:ee-only: rules: - - if: $FOSS_ONLY == "true" + - if: $FOSS_ONLY == "1" when: never .rules:test:update: @@ -129,6 +135,12 @@ - !reference [.rules:test:ee-only, rules] - !reference [.rules:test:qa, rules] +.rules:test:qa-default-branch: + rules: + - *qa-run-all-e2e-label + - *default-branch + - *feature-flags-set-manual + # ------------------------------------------ # Report # ------------------------------------------ diff --git a/.gitlab/ci/package-and-test/variables.gitlab-ci.yml b/.gitlab/ci/package-and-test/variables.gitlab-ci.yml index b7c4e5519c..0322247a89 100644 --- a/.gitlab/ci/package-and-test/variables.gitlab-ci.yml +++ b/.gitlab/ci/package-and-test/variables.gitlab-ci.yml @@ -4,11 +4,14 @@ variables: REGISTRY_HOST: "registry.gitlab.com" REGISTRY_GROUP: "gitlab-org" SKIP_REPORT_IN_ISSUES: "true" + SKIP_OMNIBUS_TRIGGER: "true" OMNIBUS_GITLAB_CACHE_UPDATE: "false" OMNIBUS_GITLAB_RUBY3_BUILD: "false" OMNIBUS_GITLAB_RUBY2_BUILD: "false" OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB" + OMNIBUS_GITLAB_BUILD_ON_ALL_OS: "false" ALLURE_JOB_NAME: $CI_PROJECT_NAME + COLORIZED_LOGS: "true" QA_LOG_LEVEL: "info" QA_TESTS: "" QA_FEATURE_FLAGS: "" diff --git a/.gitlab/ci/preflight.gitlab-ci.yml b/.gitlab/ci/preflight.gitlab-ci.yml index 8c1cb44807..526492a75c 100644 --- a/.gitlab/ci/preflight.gitlab-ci.yml +++ b/.gitlab/ci/preflight.gitlab-ci.yml @@ -23,7 +23,7 @@ rails-production-server-boot: - .production - .ruby-cache - .setup:rules:rails-production-server-boot - - .use-pg12 + - .use-pg13 variables: BUNDLE_WITHOUT: "development:test" BUNDLE_WITH: "production" diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml index d935fecba0..6f06746c49 100644 --- a/.gitlab/ci/qa.gitlab-ci.yml +++ b/.gitlab/ci/qa.gitlab-ci.yml @@ -55,7 +55,7 @@ qa:update-qa-cache: e2e:package-and-test-ee: extends: - .production # this makes sure GITLAB_ALLOW_SEPARATE_CI_DATABASE is passed to the child pipeline - - .qa:rules:package-and-test + - .qa:rules:package-and-test-ee stage: qa needs: - build-assets-image @@ -70,6 +70,8 @@ e2e:package-and-test-ee: RUN_WITH_BUNDLE: "true" # instructs pipeline to install and run gitlab-qa gem via bundler QA_PATH: qa # sets the optional path for bundler to run from QA_RUN_TYPE: e2e-package-and-test + ALLURE_JOB_NAME: e2e-package-and-test + PIPELINE_NAME: E2E Omnibus GitLab EE inherit: variables: - CHROME_VERSION @@ -89,6 +91,34 @@ e2e:package-and-test-ee: - artifact: package-and-test-pipeline.yml job: e2e-test-pipeline-generate +e2e:package-and-test-ce: + extends: + - e2e:package-and-test-ee + - .qa:rules:package-and-test-ce + needs: + - build-assets-image as-if-foss + - build-qa-image as-if-foss + - e2e-test-pipeline-generate + variables: + FOSS_ONLY: "1" + RELEASE: ${REGISTRY_HOST}/${REGISTRY_GROUP}/build/omnibus-gitlab-mirror/gitlab-ce:${CI_COMMIT_SHA} + GITLAB_QA_IMAGE: ${CI_REGISTRY_IMAGE}/gitlab-ce-qa:${CI_COMMIT_SHA} + QA_RUN_TYPE: e2e-package-and-test-ce + ALLURE_JOB_NAME: e2e-package-and-test-ce + PIPELINE_NAME: E2E Omnibus GitLab CE + +e2e:package-and-test-super-sidebar: + extends: + - e2e:package-and-test-ee + - .qa:rules:package-and-test-sidebar + when: manual + variables: + QA_SUPER_SIDEBAR_ENABLED: "true" + EXTRA_GITLAB_QA_OPTS: --set-feature-flags super_sidebar_nav=enabled + QA_RUN_TYPE: e2e-package-and-test-super-sidebar + ALLURE_JOB_NAME: e2e-package-and-test-super-sidebar + PIPELINE_NAME: E2E Omnibus Super Sidebar + e2e:test-on-gdk: extends: - .qa:rules:e2e:test-on-gdk diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index 9578011680..6e055d5b3e 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -30,7 +30,6 @@ setup-test-env: - ${TMP_TEST_FOLDER}/gitaly/Makefile - ${TMP_TEST_FOLDER}/gitaly/praefect.config.toml - ${TMP_TEST_FOLDER}/gitaly/praefect-db.config.toml - - ${TMP_TEST_FOLDER}/gitaly/ruby/ - ${TMP_TEST_FOLDER}/gitlab-elasticsearch-indexer/bin/gitlab-elasticsearch-indexer - ${TMP_TEST_FOLDER}/gitlab-shell/ - ${TMP_TEST_FOLDER}/gitlab-test-fork/ @@ -67,145 +66,143 @@ update-gitaly-binaries-cache: - export BUNDLE_WITHOUT="${BUNDLE_WITHOUT}:default:test:puma:kerberos:metrics:omnibus:ed25519" - bundle_install_script -rspec migration pg12: +rspec migration pg13: extends: - - .rspec-base-pg12 + - .rspec-base-pg13 - .rspec-base-migration - .rails:rules:ee-and-foss-migration - .rspec-migration-parallel -rspec migration pg12 predictive: +rspec background_migration pg13: extends: - - rspec migration pg12 - - .predictive-rspec-tests - - .rails:rules:ee-and-foss-migration:predictive - -rspec background_migration pg12: - extends: - - .rspec-base-pg12 + - .rspec-base-pg13 - .rspec-base-migration - .rails:rules:ee-and-foss-background-migration - .rspec-background-migration-parallel -rspec background_migration pg12 predictive: +rspec migration pg13 single-db: extends: - - rspec background_migration pg12 - - .predictive-rspec-tests - - .rails:rules:ee-and-foss-background-migration:predictive - -rspec migration pg12 single-db: - extends: - - rspec migration pg12 + - rspec migration pg13 - .single-db-rspec - .rails:rules:single-db -rspec background_migration pg12 single-db: +rspec background_migration pg13 single-db: extends: - - rspec background_migration pg12 + - rspec background_migration pg13 - .single-db-rspec - .rails:rules:single-db -rspec migration pg12 single-db-ci-connection: +rspec migration pg13 single-db-ci-connection: extends: - - rspec migration pg12 + - rspec migration pg13 - .single-db-ci-connection-rspec - .rails:rules:single-db-ci-connection -rspec background_migration pg12 single-db-ci-connection: +rspec background_migration pg13 single-db-ci-connection: extends: - - rspec background_migration pg12 + - rspec background_migration pg13 - .single-db-ci-connection-rspec - .rails:rules:single-db-ci-connection -rspec migration pg12 praefect: +rspec migration pg13 praefect: extends: - - rspec migration pg12 + - rspec migration pg13 - .praefect-with-db - .rails:rules:praefect-with-db -rspec background_migration pg12 praefect: +rspec background_migration pg13 praefect: extends: - - rspec background_migration pg12 + - rspec background_migration pg13 - .praefect-with-db - .rails:rules:praefect-with-db -rspec unit pg12: +rspec unit pg13: extends: - - .rspec-base-pg12 + - .rspec-base-pg13 - .rails:rules:ee-and-foss-unit - .rspec-unit-parallel -rspec unit pg12 predictive: +rspec unit pg13 single-db: extends: - - rspec unit pg12 - - .predictive-rspec-tests - - .rails:rules:ee-and-foss-unit:predictive - -rspec unit pg12 single-db: - extends: - - rspec unit pg12 + - rspec unit pg13 - .single-db-rspec - .rails:rules:single-db -rspec unit pg12 praefect: +rspec unit pg13 single-db-ci-connection: extends: - - rspec unit pg12 + - rspec unit pg13 + - .single-db-ci-connection-rspec + - .rails:rules:single-db-ci-connection + +rspec unit pg13 praefect: + extends: + - rspec unit pg13 - .praefect-with-db - .rails:rules:praefect-with-db -rspec integration pg12: +rspec integration pg13: extends: - - .rspec-base-pg12 + - .rspec-base-pg13 - .rails:rules:ee-and-foss-integration - .rspec-integration-parallel -rspec integration pg12 predictive: +rspec integration pg13 single-db: extends: - - rspec integration pg12 - - .predictive-rspec-tests - - .rails:rules:ee-and-foss-integration:predictive - -rspec integration pg12 single-db: - extends: - - rspec integration pg12 + - rspec integration pg13 - .single-db-rspec - .rails:rules:single-db -rspec integration pg12 praefect: +rspec integration pg13 single-db-ci-connection: extends: - - rspec integration pg12 + - rspec integration pg13 + - .single-db-ci-connection-rspec + - .rails:rules:single-db-ci-connection + +rspec integration pg13 praefect: + extends: + - rspec integration pg13 - .praefect-with-db - .rails:rules:praefect-with-db -rspec system pg12: +rspec system pg13: extends: - - .rspec-base-pg12 + - .rspec-base-pg13 - .rails:rules:ee-and-foss-system - .rspec-system-parallel variables: DEBUG_GITLAB_TRANSACTION_STACK: "true" -rspec system pg12 predictive: +rspec system pg13 single-db: extends: - - rspec system pg12 - - .predictive-rspec-tests - - .rails:rules:ee-and-foss-system:predictive - -rspec system pg12 single-db: - extends: - - rspec system pg12 + - rspec system pg13 - .single-db-rspec - .rails:rules:single-db -rspec system pg12 praefect: +rspec system pg13 single-db-ci-connection: extends: - - rspec system pg12 + - rspec system pg13 + - .single-db-ci-connection-rspec + - .rails:rules:single-db-ci-connection + +rspec system pg13 praefect: + extends: + - rspec system pg13 - .praefect-with-db - .rails:rules:praefect-with-db -rspec fast_spec_helper: +# Dedicated job to test DB library code against PG12. +# Note that these are already tested against PG12 in the `rspec unit pg12` / `rspec-ee unit pg12` jobs. +rspec db-library-code pg12: extends: - .rspec-base-pg12 + - .rails:rules:ee-and-foss-db-library-code + script: + - !reference [.base-script, script] + - rspec_db_library_code + +rspec fast_spec_helper: + extends: + - .rspec-base-pg13 - .rails:rules:ee-and-foss-fast_spec_helper script: - fast_spec_helper_specs=$(git grep -l -E '^require.*fast_spec_helper') @@ -240,16 +237,16 @@ rspec:deprecations: # We cannot use needs since it would mean needing 84 jobs (since most are parallelized) # so we use `dependencies` here. dependencies: - - rspec migration pg12 - - rspec background_migration pg12 - - rspec unit pg12 - - rspec integration pg12 - - rspec system pg12 - - rspec-ee migration pg12 - - rspec-ee background_migration pg12 - - rspec-ee unit pg12 - - rspec-ee integration pg12 - - rspec-ee system pg12 + - rspec migration pg13 + - rspec background_migration pg13 + - rspec unit pg13 + - rspec integration pg13 + - rspec system pg13 + - rspec-ee migration pg13 + - rspec-ee background_migration pg13 + - rspec-ee unit pg13 + - rspec-ee integration pg13 + - rspec-ee system pg13 variables: SETUP_DB: "false" script: @@ -272,59 +269,19 @@ rspec:coverage: dependencies: - setup-test-env # FOSS/EE jobs - - rspec migration pg12 - - rspec background_migration pg12 - - rspec unit pg12 - - rspec integration pg12 - - rspec system pg12 - # FOSS/EE predictive jobs - - rspec migration pg12 predictive - - rspec background_migration pg12 predictive - - rspec unit pg12 predictive - - rspec integration pg12 predictive - - rspec system pg12 predictive - # FOSS/EE single-db jobs - - rspec migration pg12 single-db - - rspec background_migration pg12 single-db - - rspec unit pg12 single-db - - rspec integration pg12 single-db - - rspec system pg12 single-db + - rspec migration pg13 + - rspec background_migration pg13 + - rspec unit pg13 + - rspec integration pg13 + - rspec system pg13 # EE jobs - - rspec-ee migration pg12 - - rspec-ee background_migration pg12 - - rspec-ee unit pg12 - - rspec-ee integration pg12 - - rspec-ee system pg12 - # EE predictive jobs - - rspec-ee migration pg12 predictive - - rspec-ee background_migration pg12 predictive - - rspec-ee unit pg12 predictive - - rspec-ee integration pg12 predictive - - rspec-ee system pg12 predictive - # EE single-db jobs - - rspec-ee migration pg12 single-db - - rspec-ee background_migration pg12 single-db - - rspec-ee unit pg12 single-db - - rspec-ee integration pg12 single-db - - rspec-ee system pg12 single-db + - rspec-ee migration pg13 + - rspec-ee background_migration pg13 + - rspec-ee unit pg13 + - rspec-ee integration pg13 + - rspec-ee system pg13 # Memory jobs - memory-on-boot - # As-if-FOSS jobs - - rspec migration pg12-as-if-foss - - rspec migration pg12-as-if-foss predictive - - rspec migration pg12-as-if-foss single-db - - rspec background_migration pg12-as-if-foss - - rspec background_migration pg12-as-if-foss predictive - - rspec background_migration pg12-as-if-foss single-db - - rspec unit pg12-as-if-foss - - rspec unit pg12-as-if-foss predictive - - rspec unit pg12-as-if-foss single-db - - rspec integration pg12-as-if-foss - - rspec integration pg12-as-if-foss predictive - - rspec integration pg12-as-if-foss single-db - - rspec system pg12-as-if-foss - - rspec system pg12-as-if-foss predictive - - rspec system pg12-as-if-foss single-db script: - run_timed_command "bundle exec scripts/merge-simplecov" coverage: '/LOC \((\d+\.\d+%)\) covered.$/' @@ -402,276 +359,335 @@ rspec:flaky-tests-report: ################################################## # EE: default refs (MRs, default branch, schedules) jobs # -rspec migration pg12-as-if-foss: +rspec-predictive:pipeline-generate: extends: - - .rspec-base-pg12-as-if-foss + - .rails:rules:rspec-predictive + stage: prepare + needs: ["detect-tests", "retrieve-tests-metadata"] + script: + - scripts/generate_rspec_pipeline.rb -t "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}" -k "${KNAPSACK_RSPEC_SUITE_REPORT_PATH}" -f "${RSPEC_MATCHING_TESTS_FOSS_PATH}" -o "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}.yml" + - scripts/generate_rspec_pipeline.rb -t "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}" -k "${KNAPSACK_RSPEC_SUITE_REPORT_PATH}" -f "${RSPEC_MATCHING_TESTS_EE_PATH}" -o "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}-ee.yml" -p "ee/" + - echo "Content of ${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}.yml:" + - cat "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}.yml" + - echo "\n================================================\n" + - echo "Content of ${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}-ee.yml:" + - cat "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}-ee.yml" + artifacts: + expire_in: 1 day + paths: + - "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}.yml" + - "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}-ee.yml" + +rspec:predictive:trigger: + extends: + - .rails:rules:rspec-predictive + stage: test + needs: + - job: "setup-test-env" + artifacts: false + - job: "retrieve-tests-metadata" + artifacts: false + - job: "compile-test-assets" + artifacts: false + - job: "rspec-predictive:pipeline-generate" + artifacts: true + variables: + PARENT_PIPELINE_ID: $CI_PIPELINE_ID + trigger: + strategy: depend + forward: + yaml_variables: true + pipeline_variables: true + include: + - artifact: "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}.yml" + job: rspec-predictive:pipeline-generate + +rspec-ee:predictive:trigger: + extends: rspec:predictive:trigger + trigger: + include: + - artifact: "${RSPEC_PREDICTIVE_PIPELINE_TEMPLATE_YML}-ee.yml" + job: rspec-predictive:pipeline-generate + +rspec migration pg13-as-if-foss: + extends: + - .rspec-base-pg13-as-if-foss - .rspec-base-migration - .rails:rules:as-if-foss-migration - .rspec-migration-parallel -rspec migration pg12-as-if-foss predictive: +rspec background_migration pg13-as-if-foss: extends: - - rspec migration pg12-as-if-foss - - .predictive-rspec-tests - - .rails:rules:as-if-foss-migration:predictive - -rspec background_migration pg12-as-if-foss: - extends: - - .rspec-base-pg12-as-if-foss + - .rspec-base-pg13-as-if-foss - .rspec-base-migration - .rails:rules:as-if-foss-background-migration - .rspec-background-migration-parallel -rspec background_migration pg12-as-if-foss predictive: +rspec migration pg13-as-if-foss single-db: extends: - - rspec background_migration pg12-as-if-foss - - .predictive-rspec-tests - - .rails:rules:as-if-foss-background-migration:predictive - -rspec migration pg12-as-if-foss single-db: - extends: - - rspec migration pg12-as-if-foss + - rspec migration pg13-as-if-foss - .single-db-rspec - .rails:rules:single-db -rspec background_migration pg12-as-if-foss single-db: +rspec background_migration pg13-as-if-foss single-db: extends: - - rspec background_migration pg12-as-if-foss + - rspec background_migration pg13-as-if-foss - .single-db-rspec - .rails:rules:single-db -rspec migration pg12-as-if-foss single-db-ci-connection: +rspec migration pg13-as-if-foss single-db-ci-connection: extends: - - rspec migration pg12-as-if-foss + - rspec migration pg13-as-if-foss - .single-db-ci-connection-rspec - .rails:rules:single-db-ci-connection -rspec background_migration pg12-as-if-foss single-db-ci-connection: +rspec background_migration pg13-as-if-foss single-db-ci-connection: extends: - - rspec background_migration pg12-as-if-foss + - rspec background_migration pg13-as-if-foss - .single-db-ci-connection-rspec - .rails:rules:single-db-ci-connection -rspec unit pg12-as-if-foss: +rspec unit pg13-as-if-foss: extends: - - .rspec-base-pg12-as-if-foss + - .rspec-base-pg13-as-if-foss - .rails:rules:as-if-foss-unit - .rspec-unit-parallel -rspec unit pg12-as-if-foss predictive: +rspec unit pg13-as-if-foss single-db: extends: - - rspec unit pg12-as-if-foss - - .predictive-rspec-tests - - .rails:rules:as-if-foss-unit:predictive - -rspec unit pg12-as-if-foss single-db: - extends: - - rspec unit pg12-as-if-foss + - rspec unit pg13-as-if-foss - .single-db-rspec - .rails:rules:single-db -rspec integration pg12-as-if-foss: +rspec unit pg13-as-if-foss single-db-ci-connection: extends: - - .rspec-base-pg12-as-if-foss + - rspec unit pg13-as-if-foss + - .single-db-ci-connection-rspec + - .rails:rules:single-db-ci-connection + +rspec integration pg13-as-if-foss: + extends: + - .rspec-base-pg13-as-if-foss - .rails:rules:as-if-foss-integration - .rspec-integration-parallel -rspec integration pg12-as-if-foss predictive: +rspec integration pg13-as-if-foss single-db: extends: - - rspec integration pg12-as-if-foss - - .predictive-rspec-tests - - .rails:rules:as-if-foss-integration:predictive - -rspec integration pg12-as-if-foss single-db: - extends: - - rspec integration pg12-as-if-foss + - rspec integration pg13-as-if-foss - .single-db-rspec - .rails:rules:single-db -rspec system pg12-as-if-foss: +rspec integration pg13-as-if-foss single-db-ci-connection: extends: - - .rspec-base-pg12-as-if-foss + - rspec integration pg13-as-if-foss + - .single-db-ci-connection-rspec + - .rails:rules:single-db-ci-connection + +rspec system pg13-as-if-foss: + extends: + - .rspec-base-pg13-as-if-foss - .rails:rules:as-if-foss-system - .rspec-system-parallel -rspec system pg12-as-if-foss predictive: +rspec system pg13-as-if-foss single-db: extends: - - rspec system pg12-as-if-foss - - .predictive-rspec-tests - - .rails:rules:as-if-foss-system:predictive - -rspec system pg12-as-if-foss single-db: - extends: - - rspec system pg12-as-if-foss + - rspec system pg13-as-if-foss - .single-db-rspec - .rails:rules:single-db -rspec-ee migration pg12: +rspec system pg13-as-if-foss single-db-ci-connection: extends: - - .rspec-ee-base-pg12 + - rspec system pg13-as-if-foss + - .single-db-ci-connection-rspec + - .rails:rules:single-db-ci-connection + +rspec-ee migration pg13: + extends: + - .rspec-ee-base-pg13 - .rspec-base-migration - .rails:rules:ee-only-migration - .rspec-ee-migration-parallel -rspec-ee migration pg12 predictive: +rspec-ee background_migration pg13: extends: - - rspec-ee migration pg12 - - .predictive-rspec-tests - - .rails:rules:ee-only-migration:predictive - -rspec-ee background_migration pg12: - extends: - - .rspec-ee-base-pg12 + - .rspec-ee-base-pg13 - .rspec-base-migration - .rails:rules:ee-only-background-migration - .rspec-ee-background-migration-parallel -rspec-ee background_migration pg12 predictive: +rspec-ee migration pg13 single-db: extends: - - rspec-ee background_migration pg12 - - .predictive-rspec-tests - - .rails:rules:ee-only-background-migration:predictive - -rspec-ee migration pg12 single-db: - extends: - - rspec-ee migration pg12 + - rspec-ee migration pg13 - .single-db-rspec - .rails:rules:single-db -rspec-ee background_migration pg12 single-db: +rspec-ee background_migration pg13 single-db: extends: - - rspec-ee background_migration pg12 + - rspec-ee background_migration pg13 - .single-db-rspec - .rails:rules:single-db -rspec-ee migration pg12 single-db-ci-connection: +rspec-ee migration pg13 single-db-ci-connection: extends: - - rspec-ee migration pg12 + - rspec-ee migration pg13 - .single-db-ci-connection-rspec - .rails:rules:single-db-ci-connection -rspec-ee background_migration pg12 single-db-ci-connection: +rspec-ee background_migration pg13 single-db-ci-connection: extends: - - rspec-ee background_migration pg12 + - rspec-ee background_migration pg13 - .single-db-ci-connection-rspec - .rails:rules:single-db-ci-connection -rspec-ee migration pg12 praefect: +rspec-ee migration pg13 praefect: extends: - - rspec migration pg12 + - rspec migration pg13 - .praefect-with-db - .rails:rules:praefect-with-db -rspec-ee background_migration pg12 praefect: +rspec-ee background_migration pg13 praefect: extends: - - rspec background_migration pg12 + - rspec background_migration pg13 - .praefect-with-db - .rails:rules:praefect-with-db -rspec-ee unit pg12: +rspec-ee unit pg13: extends: - - .rspec-ee-base-pg12 + - .rspec-ee-base-pg13 - .rails:rules:ee-only-unit - .rspec-ee-unit-parallel -rspec-ee unit pg12 es8: +rspec-ee unit pg13 es8: extends: - - .rspec-ee-base-pg12-es8 + - .rspec-ee-base-pg13-es8 - .rspec-ee-unit-parallel -rspec-ee unit pg12 predictive: +rspec-ee unit pg13 single-db: extends: - - rspec-ee unit pg12 - - .predictive-rspec-tests - - .rails:rules:ee-only-unit:predictive - -rspec-ee unit pg12 single-db: - extends: - - rspec-ee unit pg12 + - rspec-ee unit pg13 - .single-db-rspec - .rails:rules:single-db -rspec-ee integration pg12: +rspec-ee unit pg13 single-db-ci-connection: extends: - - .rspec-ee-base-pg12 + - rspec-ee unit pg13 + - .single-db-ci-connection-rspec + - .rails:rules:single-db-ci-connection + +rspec-ee integration pg13: + extends: + - .rspec-ee-base-pg13 - .rails:rules:ee-only-integration - .rspec-ee-integration-parallel -rspec-ee integration pg12 es8: +rspec-ee integration pg13 es8: extends: - - .rspec-ee-base-pg12-es8 + - .rspec-ee-base-pg13-es8 - .rspec-ee-integration-parallel -rspec-ee integration pg12 predictive: +rspec-ee integration pg13 single-db: extends: - - rspec-ee integration pg12 - - .predictive-rspec-tests - - .rails:rules:ee-only-integration:predictive - -rspec-ee integration pg12 single-db: - extends: - - rspec-ee integration pg12 + - rspec-ee integration pg13 - .single-db-rspec - .rails:rules:single-db -rspec-ee system pg12: +rspec-ee integration pg13 single-db-ci-connection: extends: - - .rspec-ee-base-pg12 + - rspec-ee integration pg13 + - .single-db-ci-connection-rspec + - .rails:rules:single-db-ci-connection + +rspec-ee system pg13: + extends: + - .rspec-ee-base-pg13 - .rails:rules:ee-only-system - .rspec-ee-system-parallel -rspec-ee system pg12 es8: +rspec-ee system pg13 es8: extends: - - .rspec-ee-base-pg12-es8 + - .rspec-ee-base-pg13-es8 - .rspec-ee-system-parallel -rspec-ee system pg12 predictive: +rspec-ee system pg13 single-db: extends: - - rspec-ee system pg12 - - .predictive-rspec-tests - - .rails:rules:ee-only-system:predictive - -rspec-ee system pg12 single-db: - extends: - - rspec-ee system pg12 + - rspec-ee system pg13 - .single-db-rspec - .rails:rules:single-db + +rspec-ee system pg13 single-db-ci-connection: + extends: + - rspec-ee system pg13 + - .single-db-ci-connection-rspec + - .rails:rules:single-db-ci-connection # EE: default refs (MRs, default branch, schedules) jobs # ################################################## ########################################## # EE/FOSS: default branch nightly scheduled jobs # -# PG13 -rspec migration pg13: +# PG12 +rspec migration pg12: extends: - - .rspec-base-pg13 + - .rspec-base-pg12 + - .rspec-base-migration + - .rails:rules:rspec-on-pg12 + - .rspec-migration-parallel + +rspec background_migration pg12: + extends: + - .rspec-base-pg12 + - .rspec-base-migration + - .rails:rules:rspec-on-pg12 + - .rspec-background-migration-parallel + +rspec unit pg12: + extends: + - .rspec-base-pg12 + - .rails:rules:rspec-on-pg12 + - .rspec-unit-parallel + +rspec integration pg12: + extends: + - .rspec-base-pg12 + - .rails:rules:rspec-on-pg12 + - .rspec-integration-parallel + +rspec system pg12: + extends: + - .rspec-base-pg12 + - .rails:rules:rspec-on-pg12 + - .rspec-system-parallel + +# PG14 +rspec migration pg14: + extends: + - .rspec-base-pg14 - .rspec-base-migration - .rails:rules:default-branch-schedule-nightly--code-backstage - .rspec-migration-parallel -rspec background_migration pg13: +rspec background_migration pg14: extends: - - .rspec-base-pg13 + - .rspec-base-pg14 - .rspec-base-migration - .rails:rules:default-branch-schedule-nightly--code-backstage - .rspec-background-migration-parallel -rspec unit pg13: +rspec unit pg14: extends: - - .rspec-base-pg13 + - .rspec-base-pg14 - .rails:rules:default-branch-schedule-nightly--code-backstage - .rspec-unit-parallel -rspec integration pg13: +rspec integration pg14: extends: - - .rspec-base-pg13 + - .rspec-base-pg14 - .rails:rules:default-branch-schedule-nightly--code-backstage - .rspec-integration-parallel -rspec system pg13: +rspec system pg14: extends: - - .rspec-base-pg13 + - .rspec-base-pg14 - .rails:rules:default-branch-schedule-nightly--code-backstage - .rspec-system-parallel # EE/FOSS: default branch nightly scheduled jobs # @@ -681,68 +697,152 @@ rspec system pg13: # EE: default branch nightly scheduled jobs # # PG12 -rspec-ee unit pg12 opensearch1: +rspec-ee migration pg12: extends: - - .rspec-ee-base-pg12-opensearch1 - - .rspec-ee-unit-parallel - -rspec-ee unit pg12 opensearch2: - extends: - - .rspec-ee-base-pg12-opensearch2 - - .rspec-ee-unit-parallel - -rspec-ee integration pg12 opensearch1: - extends: - - .rspec-ee-base-pg12-opensearch1 - - .rspec-ee-integration-parallel - -rspec-ee integration pg12 opensearch2: - extends: - - .rspec-ee-base-pg12-opensearch2 - - .rspec-ee-integration-parallel - -rspec-ee system pg12 opensearch1: - extends: - - .rspec-ee-base-pg12-opensearch1 - - .rspec-ee-system-parallel - -rspec-ee system pg12 opensearch2: - extends: - - .rspec-ee-base-pg12-opensearch2 - - .rspec-ee-system-parallel - -# PG13 -rspec-ee migration pg13: - extends: - - .rspec-ee-base-pg13 + - .rspec-ee-base-pg12 - .rspec-base-migration - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only - .rspec-ee-migration-parallel -rspec-ee background_migration pg13: +rspec-ee background_migration pg12: extends: - - .rspec-ee-base-pg13 + - .rspec-ee-base-pg12 - .rspec-base-migration - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only - .rspec-ee-background-migration-parallel -rspec-ee unit pg13: +rspec-ee unit pg12: extends: - - .rspec-ee-base-pg13 + - .rspec-ee-base-pg12 - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only - .rspec-ee-unit-parallel -rspec-ee integration pg13: +rspec-ee integration pg12: extends: - - .rspec-ee-base-pg13 + - .rspec-ee-base-pg12 - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only - .rspec-ee-integration-parallel -rspec-ee system pg13: +rspec-ee system pg12: extends: - - .rspec-ee-base-pg13 + - .rspec-ee-base-pg12 - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only - .rspec-ee-system-parallel + +# PG13 +rspec-ee unit pg13 opensearch1: + extends: + - .rspec-ee-base-pg13-opensearch1 + - .rspec-ee-unit-parallel + +rspec-ee unit pg13 opensearch2: + extends: + - .rspec-ee-base-pg13-opensearch2 + - .rspec-ee-unit-parallel + +rspec-ee integration pg13 opensearch1: + extends: + - .rspec-ee-base-pg13-opensearch1 + - .rspec-ee-integration-parallel + +rspec-ee integration pg13 opensearch2: + extends: + - .rspec-ee-base-pg13-opensearch2 + - .rspec-ee-integration-parallel + +rspec-ee system pg13 opensearch1: + extends: + - .rspec-ee-base-pg13-opensearch1 + - .rspec-ee-system-parallel + +rspec-ee system pg13 opensearch2: + extends: + - .rspec-ee-base-pg13-opensearch2 + - .rspec-ee-system-parallel + +# PG14 +rspec-ee unit pg14 opensearch1: + extends: + - .rspec-ee-base-pg14-opensearch1 + - .rspec-ee-unit-parallel + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + +rspec-ee unit pg14 opensearch2: + extends: + - .rspec-ee-base-pg14-opensearch2 + - .rspec-ee-unit-parallel + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + +rspec-ee integration pg14 opensearch1: + extends: + - .rspec-ee-base-pg14-opensearch1 + - .rspec-ee-integration-parallel + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + +rspec-ee integration pg14 opensearch2: + extends: + - .rspec-ee-base-pg14-opensearch2 + - .rspec-ee-integration-parallel + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + +rspec-ee system pg14 opensearch1: + extends: + - .rspec-ee-base-pg14-opensearch1 + - .rspec-ee-system-parallel + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + +rspec-ee system pg14 opensearch2: + extends: + - .rspec-ee-base-pg14-opensearch2 + - .rspec-ee-system-parallel + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + +rspec-ee migration pg14: + extends: + - .rspec-ee-base-pg14 + - .rspec-base-migration + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + - .rspec-ee-migration-parallel + +rspec-ee background_migration pg14: + extends: + - .rspec-ee-base-pg14 + - .rspec-base-migration + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + - .rspec-ee-background-migration-parallel + +rspec-ee unit pg14: + extends: + - .rspec-ee-base-pg14 + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + - .rspec-ee-unit-parallel + +rspec-ee unit pg14 es8: + extends: + - .rspec-ee-base-pg14-es8 + - .rspec-ee-unit-parallel + +rspec-ee integration pg14: + extends: + - .rspec-ee-base-pg14 + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + - .rspec-ee-integration-parallel + +rspec-ee integration pg14 es8: + extends: + - .rspec-ee-base-pg14-es8 + - .rspec-ee-integration-parallel + +rspec-ee system pg14: + extends: + - .rspec-ee-base-pg14 + - .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only + - .rspec-ee-system-parallel + +rspec-ee system pg14 es8: + extends: + - .rspec-ee-base-pg14-es8 + - .rspec-ee-system-parallel # EE: default branch nightly scheduled jobs # ##################################### @@ -759,15 +859,15 @@ rspec-ee system pg13: rspec fail-fast: extends: - - .rspec-base-pg12 - - .rspec-fail-fast # extends from .rspec-fail-fast last to override script from .rspec-base-pg12 + - .rspec-base-pg13 + - .rspec-fail-fast # extends from .rspec-fail-fast last to override script from .rspec-base-pg13 variables: MATCHING_TESTS_PATH: "${RSPEC_MATCHING_TESTS_FOSS_PATH}" rspec-ee fail-fast: extends: - - .rspec-ee-base-pg12 - - .rspec-fail-fast # extends from .rspec-fail-fast last to override script from .rspec-ee-base-pg12 + - .rspec-ee-base-pg13 + - .rspec-fail-fast # extends from .rspec-fail-fast last to override script from .rspec-ee-base-pg13 variables: MATCHING_TESTS_PATH: "${RSPEC_MATCHING_TESTS_EE_PATH}" @@ -823,7 +923,7 @@ fail-pipeline-early: script: - fail_pipeline_early -.base-rspec-pg12-rerun-previous-failed-tests: +.base-rspec-pg13-rerun-previous-failed-tests: extends: - .rails:rules:rerun-previous-failed-tests stage: test @@ -832,17 +932,17 @@ fail-pipeline-early: - !reference [.base-script, script] - rspec_rerun_previous_failed_tests "${PREVIOUS_FAILED_TESTS_FILE}" -rspec rspec-pg12-rerun-previous-failed-tests: +rspec rspec-pg13-rerun-previous-failed-tests: extends: - - .rspec-base-pg12 - - .base-rspec-pg12-rerun-previous-failed-tests + - .rspec-base-pg13 + - .base-rspec-pg13-rerun-previous-failed-tests variables: PREVIOUS_FAILED_TESTS_FILE: tmp/previous_failed_tests/rspec_failed_tests.txt -rspec rspec-ee-pg12-rerun-previous-failed-tests: +rspec rspec-ee-pg13-rerun-previous-failed-tests: extends: - - .rspec-ee-base-pg12 - - .base-rspec-pg12-rerun-previous-failed-tests + - .rspec-ee-base-pg13 + - .base-rspec-pg13-rerun-previous-failed-tests variables: PREVIOUS_FAILED_TESTS_FILE: tmp/previous_failed_tests/rspec_ee_failed_files.txt # EE: Canonical MR pipelines diff --git a/.gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb b/.gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb index 02b7d61a4f..e7a1ee6022 100644 --- a/.gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb +++ b/.gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb @@ -1,4 +1,4 @@ -# RSpec FOSS impact pipeline loaded dynamically by script: scripts/generate-rspec-foss-impact-pipeline +# RSpec FOSS impact pipeline loaded dynamically by script: scripts/generate_rspec_pipeline.rb include: - local: .gitlab/ci/rails/shared.gitlab-ci.yml @@ -22,7 +22,7 @@ dont-interrupt-me: - echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible." .base-rspec-foss-impact: - extends: .rspec-base-pg12-as-if-foss + extends: .rspec-base-pg13-as-if-foss needs: - pipeline: $PARENT_PIPELINE_ID job: detect-tests diff --git a/.gitlab/ci/rails/rspec-predictive.gitlab-ci.yml.erb b/.gitlab/ci/rails/rspec-predictive.gitlab-ci.yml.erb new file mode 100644 index 0000000000..fcd8754c76 --- /dev/null +++ b/.gitlab/ci/rails/rspec-predictive.gitlab-ci.yml.erb @@ -0,0 +1,153 @@ +# RSpec preditive pipeline loaded dynamically by script: scripts/generate_rspec_pipeline.rb + +include: + - local: .gitlab/ci/rails/shared.gitlab-ci.yml + +default: + image: $DEFAULT_CI_IMAGE + tags: + - gitlab-org + # Default job timeout set to 90m https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/10520 + timeout: 90m + interruptible: true + +stages: + - test + +dont-interrupt-me: + extends: .rules:dont-interrupt + stage: .pre + interruptible: false + script: + - echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible." + +.base-predictive: + needs: + - pipeline: $PARENT_PIPELINE_ID + job: detect-tests + - pipeline: $PARENT_PIPELINE_ID + job: setup-test-env + - pipeline: $PARENT_PIPELINE_ID + job: retrieve-tests-metadata + - pipeline: $PARENT_PIPELINE_ID + job: compile-test-assets + rules: + - when: always + variables: + RSPEC_TESTS_MAPPING_ENABLED: "true" + +<% if test_suite_prefix.nil? %> +.base-rspec-predictive: + extends: + - .rspec-base-pg12 + - .base-predictive + variables: + # We're using the FOSS one here because we want to exclude EE-only ones + # For EE-only ones, we have EE-only jobs. + RSPEC_TESTS_FILTER_FILE: "${RSPEC_MATCHING_TESTS_FOSS_PATH}" + +<% if rspec_files_per_test_level.dig(:migration, :files).size > 0 %> +rspec migration predictive: + extends: + - .base-rspec-predictive + - .rspec-base-migration +<% if rspec_files_per_test_level.dig(:migration, :parallelization) > 1 %> + parallel: <%= rspec_files_per_test_level.dig(:migration, :parallelization) %> +<% end %> +<% end %> + +<% if rspec_files_per_test_level.dig(:background_migration, :files).size > 0 %> +rspec background_migration predictive: + extends: + - .base-rspec-predictive + - .rspec-base-migration +<% if rspec_files_per_test_level.dig(:background_migration, :parallelization) > 1 %> + parallel: <%= rspec_files_per_test_level.dig(:background_migration, :parallelization) %> +<% end %> +<% end %> + +<% if rspec_files_per_test_level.dig(:unit, :files).size > 0 %> +rspec unit predictive: + extends: + - .base-rspec-predictive +<% if rspec_files_per_test_level.dig(:unit, :parallelization) > 1 %> + parallel: <%= rspec_files_per_test_level.dig(:unit, :parallelization) %> +<% end %> +<% end %> + +<% if rspec_files_per_test_level.dig(:integration, :files).size > 0 %> +rspec integration predictive: + extends: + - .base-rspec-predictive +<% if rspec_files_per_test_level.dig(:integration, :parallelization) > 1 %> + parallel: <%= rspec_files_per_test_level.dig(:integration, :parallelization) %> +<% end %> +<% end %> + +<% if rspec_files_per_test_level.dig(:system, :files).size > 0 %> +rspec system predictive: + extends: + - .base-rspec-predictive +<% if rspec_files_per_test_level.dig(:system, :parallelization) > 1 %> + parallel: <%= rspec_files_per_test_level.dig(:system, :parallelization) %> +<% end %> +<% end %> + +<% end %> + +<% if test_suite_prefix == 'ee/' %> +.base-rspec-ee-predictive: + extends: + - .rspec-ee-base-pg12 + - .base-predictive + variables: + RSPEC_TESTS_FILTER_FILE: "${RSPEC_MATCHING_TESTS_EE_PATH}" + +<% if rspec_files_per_test_level.dig(:migration, :files).size > 0 %> +rspec-ee migration predictive: + extends: + - .base-rspec-ee-predictive + - .rspec-base-migration +<% if rspec_files_per_test_level.dig(:migration, :parallelization) > 1 %> + parallel: <%= rspec_files_per_test_level.dig(:migration, :parallelization) %> +<% end %> +<% end %> + +<% if rspec_files_per_test_level.dig(:background_migration, :files).size > 0 %> +rspec-ee background_migration predictive: + extends: + - .base-rspec-ee-predictive + - .rspec-base-migration +<% if rspec_files_per_test_level.dig(:background_migration, :parallelization) > 1 %> + parallel: <%= rspec_files_per_test_level.dig(:background_migration, :parallelization) %> +<% end %> +<% end %> + +<% if rspec_files_per_test_level.dig(:unit, :files).size > 0 %> +rspec-ee unit predictive: + extends: + - .base-rspec-ee-predictive +<% if rspec_files_per_test_level.dig(:unit, :parallelization) > 1 %> + parallel: <%= rspec_files_per_test_level.dig(:unit, :parallelization) %> +<% end %> +<% end %> + +<% if rspec_files_per_test_level.dig(:integration, :files).size > 0 %> +rspec-ee integration predictive: + extends: + - .base-rspec-ee-predictive +<% if rspec_files_per_test_level.dig(:integration, :parallelization) > 1 %> + parallel: <%= rspec_files_per_test_level.dig(:integration, :parallelization) %> +<% end %> +<% end %> + +<% if rspec_files_per_test_level.dig(:system, :files).size > 0 %> +rspec-ee system predictive: + extends: + - .base-rspec-ee-predictive +<% if rspec_files_per_test_level.dig(:system, :parallelization) > 1 %> + parallel: <%= rspec_files_per_test_level.dig(:system, :parallelization) %> +<% end %> +<% end %> + +<% end %> diff --git a/.gitlab/ci/rails/shared.gitlab-ci.yml b/.gitlab/ci/rails/shared.gitlab-ci.yml index 0fa65b0be9..adcfcd2010 100644 --- a/.gitlab/ci/rails/shared.gitlab-ci.yml +++ b/.gitlab/ci/rails/shared.gitlab-ci.yml @@ -28,10 +28,6 @@ include: - run_timed_command "scripts/gitaly-test-spawn" # Do not use 'bundle exec' here - echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-spawn\r\e[0K" -.predictive-rspec-tests: - variables: - RSPEC_TESTS_MAPPING_ENABLED: "true" - .single-db: variables: DECOMPOSED_DB: "false" @@ -61,7 +57,6 @@ include: RUBY_GC_MALLOC_LIMIT_MAX: 134217728 RECORD_DEPRECATIONS: "true" GEO_SECONDARY_PROXY: 0 - RSPEC_TESTS_FILTER_FILE: "${RSPEC_MATCHING_TESTS_PATH}" SUCCESSFULLY_RETRIED_TEST_EXIT_CODE: 137 needs: - job: "setup-test-env" @@ -105,11 +100,16 @@ include: - .rspec-base - .use-pg12 -.rspec-base-pg12-as-if-foss: +.rspec-base-pg13: + extends: + - .rspec-base + - .use-pg13 + +.rspec-base-pg13-as-if-foss: extends: - .rspec-base - .as-if-foss - - .use-pg12 + - .use-pg13 needs: - job: "setup-test-env" - job: "retrieve-tests-metadata" @@ -117,44 +117,67 @@ include: - job: "detect-tests" optional: true -.rspec-base-pg13: +.rspec-base-pg14: extends: - .rspec-base - - .use-pg13 + - .use-pg14 .rspec-ee-base-pg12: extends: - .rspec-base - .use-pg12-es7-ee -.rspec-ee-base-pg12-es8: - extends: - - .rspec-base - - .use-pg12-es8-ee - - .rails:rules:run-search-tests - -.rspec-ee-base-pg12-opensearch1: - extends: - - .rspec-base - - .use-pg12-opensearch1-ee - - .rails:rules:run-search-tests - -.rspec-ee-base-pg12-opensearch2: - extends: - - .rspec-base - - .use-pg12-opensearch2-ee - - .rails:rules:run-search-tests - .rspec-ee-base-pg13: extends: - .rspec-base - .use-pg13-es7-ee +.rspec-ee-base-pg13-es8: + extends: + - .rspec-base + - .use-pg13-es8-ee + - .rails:rules:run-search-tests + +.rspec-ee-base-pg13-opensearch1: + extends: + - .rspec-base + - .use-pg13-opensearch1-ee + - .rails:rules:run-search-tests + +.rspec-ee-base-pg13-opensearch2: + extends: + - .rspec-base + - .use-pg13-opensearch2-ee + - .rails:rules:run-search-tests + +.rspec-ee-base-pg14: + extends: + - .rspec-base + - .use-pg14-es7-ee + +.rspec-ee-base-pg14-es8: + extends: + - .rspec-base + - .use-pg14-es8-ee + - .rails:rules:run-search-tests + +.rspec-ee-base-pg14-opensearch1: + extends: + - .rspec-base + - .use-pg14-opensearch1-ee + - .rails:rules:run-search-tests + +.rspec-ee-base-pg14-opensearch2: + extends: + - .rspec-base + - .use-pg14-opensearch2-ee + - .rails:rules:run-search-tests + .db-job-base: extends: - .rails-job-base - .rails:rules:ee-and-foss-migration - - .use-pg12 + - .use-pg13 stage: test needs: ["setup-test-env"] # rspec job base specs diff --git a/.gitlab/ci/review-apps/dast.gitlab-ci.yml b/.gitlab/ci/review-apps/dast.gitlab-ci.yml index 8f0c6b6019..d3019577ab 100644 --- a/.gitlab/ci/review-apps/dast.gitlab-ci.yml +++ b/.gitlab/ci/review-apps/dast.gitlab-ci.yml @@ -5,14 +5,14 @@ extends: - .reports:rules:schedule-dast image: - name: "${REGISTRY_HOST}/security-products/dast:$DAST_VERSION" + name: "${CI_TEMPLATE_REGISTRY_HOST}/security-products/dast:$DAST_VERSION" resource_group: dast_scan variables: - DAST_USERNAME_FIELD: "user[login]" - DAST_PASSWORD_FIELD: "user[password]" - DAST_SUBMIT_FIELD: "name:button" + DAST_USERNAME_FIELD: "name:user[login]" + DAST_PASSWORD_FIELD: "name:user[password]" + DAST_SUBMIT_FIELD: "css:.js-sign-in-button" DAST_FULL_SCAN_ENABLED: "true" - DAST_VERSION: 2 + DAST_VERSION: 3 GIT_STRATEGY: none # -Xmx is used to set the JVM memory to 6GB to prevent DAST OutOfMemoryError. DAST_ZAP_CLI_OPTIONS: "-Xmx6144m" diff --git a/.gitlab/ci/review-apps/main.gitlab-ci.yml b/.gitlab/ci/review-apps/main.gitlab-ci.yml index 6bd7542bcd..94492e93b7 100644 --- a/.gitlab/ci/review-apps/main.gitlab-ci.yml +++ b/.gitlab/ci/review-apps/main.gitlab-ci.yml @@ -4,6 +4,7 @@ default: stages: - prepare - deploy + - post-deploy - qa - post-qa - dast @@ -89,9 +90,9 @@ review-build-cng: strategy: depend .review-workflow-base: + extends: + - .default-retry image: ${REVIEW_APPS_IMAGE} - retry: - max: 2 # This is confusing but this means "3 runs at max" variables: HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}" DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}" diff --git a/.gitlab/ci/review-apps/qa.gitlab-ci.yml b/.gitlab/ci/review-apps/qa.gitlab-ci.yml index 12a7ddebc4..13623a576d 100644 --- a/.gitlab/ci/review-apps/qa.gitlab-ci.yml +++ b/.gitlab/ci/review-apps/qa.gitlab-ci.yml @@ -1,10 +1,11 @@ include: - project: gitlab-org/quality/pipeline-common - ref: 2.2.0 + ref: 3.1.2 file: - /ci/base.gitlab-ci.yml - /ci/allure-report.yml - /ci/knapsack-report.yml + - template: Verify/Browser-Performance.gitlab-ci.yml .test-variables: variables: @@ -107,31 +108,14 @@ review-qa-non-blocking-parallel: - .rules:qa-non-blocking-parallel parallel: 5 -review-performance: +browser_performance: extends: - .default-retry - .review:rules:review-performance - image: - name: sitespeedio/sitespeed.io - entrypoint: [""] stage: qa needs: ["review-deploy"] - before_script: - - export CI_ENVIRONMENT_URL="$(cat environment_url.txt)" - - echo "${CI_ENVIRONMENT_URL}" - - mkdir -p gitlab-exporter - - wget -O ./gitlab-exporter/index.js https://gitlab.com/gitlab-org/gl-performance/raw/master/index.js - - mkdir -p sitespeed-results - script: - - /start.sh --plugins.add ./gitlab-exporter --outputFolder sitespeed-results "${CI_ENVIRONMENT_URL}" - after_script: - - mv sitespeed-results/data/performance.json performance.json - artifacts: - paths: - - sitespeed-results/ - reports: - performance: performance.json - expire_in: 31d + variables: + URL: environment_url.txt e2e-test-report: extends: diff --git a/.gitlab/ci/review-apps/rules.gitlab-ci.yml b/.gitlab/ci/review-apps/rules.gitlab-ci.yml index a3ae31cb14..a4b667c664 100644 --- a/.gitlab/ci/review-apps/rules.gitlab-ci.yml +++ b/.gitlab/ci/review-apps/rules.gitlab-ci.yml @@ -20,7 +20,7 @@ # Run all tests when framework changes present or explicitly enabled full suite execution .qa-run-all-tests: &qa-run-all-tests - if: $QA_FRAMEWORK_CHANGES == "true" || $QA_RUN_ALL_TESTS == "true" + if: $QA_FRAMEWORK_CHANGES == "true" || $QA_RUN_ALL_TESTS == "true" || $QA_RUN_ALL_E2E_LABEL == "true" .default-branch: &default-branch if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index f0e87e0161..6d38c65198 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -16,7 +16,7 @@ review-cleanup: - install_gitlab_gem - setup_gcloud script: - - scripts/review_apps/automated_cleanup.rb || (scripts/slack review-apps-monitoring "☠️ \`${CI_JOB_NAME}\` failed! ☠️ See ${CI_JOB_URL} - " warning "GitLab Bot" && exit 1); + - scripts/review_apps/automated_cleanup.rb --dry-run="${DRY_RUN:-false}" || (scripts/slack review-apps-monitoring "☠️ \`${CI_JOB_NAME}\` failed! ☠️ See ${CI_JOB_URL} - " warning "GitLab Bot" && exit 1); review-stop: extends: diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 9a0bc89b4a..13189f8812 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -85,6 +85,9 @@ .if-merge-request-labels-run-review-app: &if-merge-request-labels-run-review-app if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-review-app/' +.if-merge-request-labels-run-on-pg12: &if-merge-request-labels-run-on-pg12 + if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-on-pg12/' + .if-merge-request-labels-skip-undercoverage: &if-merge-request-labels-skip-undercoverage if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:skip-undercoverage/' @@ -154,12 +157,6 @@ .if-ruby2-branch: &if-ruby2-branch if: '$CI_COMMIT_BRANCH == "ruby2"' -# For Security merge requests, the gitlab-release-tools-bot triggers a new -# pipeline for the "Pipelines for merged results" feature. If the pipeline -# fails, we notify release managers. -.if-security-pipeline-merge-result: &if-security-pipeline-merge-result - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "gitlab-org/security" && $GITLAB_USER_LOGIN == "gitlab-release-tools-bot"' - #################### # Changes patterns # #################### @@ -280,6 +277,7 @@ # This list should match the list in Tasks::Gitlab::Assets.assets_impacting_compilation .assets-compilation-patterns: &assets-compilation-patterns - "{package.json,yarn.lock}" + - "{Gemfile,Gemfile.lock}" - ".browserslistrc" - "babel.config.js" - "config/webpack.config.js" @@ -424,7 +422,7 @@ - ".stylelintrc" - "Dockerfile.assets" - "vendor/assets/**/*" - - ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" + - ".{eslintrc.yml,eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}" - "*_VERSION" - "{,jh/}Gemfile{,.lock}" - "Rakefile" @@ -595,7 +593,6 @@ ################## # Conditions set # ################## - .strict-ee-only-rules: rules: - <<: *if-not-ee @@ -612,15 +609,6 @@ - <<: *if-merge-request-labels-pipeline-expedite when: never -.rails:rules:predictive-default-rules: - rules: - - <<: *if-merge-request-approved - when: never - - <<: *if-automated-merge-request - when: never - - <<: *if-security-merge-request - when: never - .rails:rules:run-search-tests: rules: - !reference [".rails:rules:default-branch-schedule-nightly--code-backstage-ee-only", rules] @@ -641,6 +629,40 @@ - <<: *if-merge-request-not-approved when: never +.rails:rules:system-default-rules: + rules: + - <<: *if-merge-request-labels-run-all-rspec + - <<: *if-merge-request + changes: *core-backend-patterns + - <<: *if-merge-request + changes: *workhorse-patterns + - <<: *if-automated-merge-request + changes: *code-backstage-patterns + - <<: *if-security-merge-request + changes: *code-backstage-patterns + - <<: *if-merge-request-not-approved + when: never + +.rails:rules:previous-failed-tests-default-rules: + rules: + - <<: *if-security-merge-request + when: never + - <<: *if-merge-request-labels-run-all-rspec + - <<: *if-merge-request + changes: *code-backstage-patterns + +########################### +# Conditions set for JiHu # +########################### +.rails:rules:predictive-default-rules: + rules: + - <<: *if-merge-request-approved + when: never + - <<: *if-automated-merge-request + when: never + - <<: *if-security-merge-request + when: never + .rails:rules:as-if-foss-migration-unit-integration:predictive-default-rules: rules: - <<: *if-merge-request @@ -656,20 +678,6 @@ when: never - !reference [".rails:rules:as-if-foss-migration-unit-integration:predictive-default-rules", rules] -.rails:rules:system-default-rules: - rules: - - <<: *if-merge-request-labels-run-all-rspec - - <<: *if-merge-request - changes: *core-backend-patterns - - <<: *if-merge-request - changes: *workhorse-patterns - - <<: *if-automated-merge-request - changes: *code-backstage-patterns - - <<: *if-security-merge-request - changes: *code-backstage-patterns - - <<: *if-merge-request-not-approved - when: never - .rails:rules:system:predictive-default-rules: rules: - <<: *if-merge-request-labels-run-all-rspec @@ -686,13 +694,99 @@ - <<: *if-merge-request changes: *code-backstage-patterns -.rails:rules:previous-failed-tests-default-rules: +.rails:rules:ee-and-foss-migration:predictive: rules: - - <<: *if-security-merge-request - when: never - - <<: *if-merge-request-labels-run-all-rspec + - <<: *if-fork-merge-request + changes: *db-patterns + - !reference [".rails:rules:predictive-default-rules", rules] + - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] + # When DB schema changes, many migrations spec may be affected. However, the test mapping from Crystalball does not map db change to a specific migration spec well. + # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68840. - <<: *if-merge-request + changes: *db-patterns + when: never + +.rails:rules:ee-and-foss-background-migration:predictive: + rules: + - !reference [".rails:rules:ee-and-foss-migration:predictive", rules] + - <<: *if-merge-request + changes: *backend-patterns + +.rails:rules:ee-and-foss-unit:predictive: + rules: + - <<: *if-fork-merge-request + changes: *backend-patterns + - !reference [".rails:rules:predictive-default-rules", rules] + - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] + - <<: *if-merge-request + changes: *backend-patterns + - <<: *if-merge-request + changes: *backstage-patterns + +.rails:rules:ee-and-foss-integration:predictive: + rules: + - <<: *if-fork-merge-request + changes: *backend-patterns + - !reference [".rails:rules:predictive-default-rules", rules] + - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] + - <<: *if-merge-request + changes: *backend-patterns + +.rails:rules:ee-and-foss-system:predictive: + rules: + - <<: *if-fork-merge-request changes: *code-backstage-patterns + - !reference [".rails:rules:predictive-default-rules", rules] + - !reference [".rails:rules:system:predictive-default-rules", rules] + +.rails:rules:ee-only-migration:predictive: + rules: + - <<: *if-not-ee + when: never + - !reference [".rails:rules:predictive-default-rules", rules] + - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] + # When DB schema changes, many migrations spec may be affected. However, the test mapping from Crystalball does not map db change to a specific migration spec well. + # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68840. + - <<: *if-merge-request + changes: *db-patterns + when: never + +.rails:rules:ee-only-background-migration:predictive: + rules: + - !reference [".rails:rules:ee-only-migration:predictive", rules] + - <<: *if-merge-request + changes: *backend-patterns + +.rails:rules:ee-only-unit:predictive: + rules: + - <<: *if-not-ee + when: never + - <<: *if-fork-merge-request + changes: *backend-patterns + - !reference [".rails:rules:predictive-default-rules", rules] + - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] + - <<: *if-merge-request + changes: *backend-patterns + +.rails:rules:ee-only-integration:predictive: + rules: + - <<: *if-not-ee + when: never + - <<: *if-fork-merge-request + changes: *backend-patterns + - !reference [".rails:rules:predictive-default-rules", rules] + - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] + - <<: *if-merge-request + changes: *backend-patterns + +.rails:rules:ee-only-system:predictive: + rules: + - <<: *if-not-ee + when: never + - <<: *if-fork-merge-request + changes: *code-backstage-patterns + - !reference [".rails:rules:predictive-default-rules", rules] + - !reference [".rails:rules:system:predictive-default-rules", rules] ################ # Shared rules # @@ -766,13 +860,35 @@ - <<: *if-not-canonical-namespace when: never - <<: *if-merge-request-targeting-stable-branch - - <<: *if-merge-request-labels-run-review-app - - <<: *if-auto-deploy-branches - <<: *if-ruby2-branch + - <<: *if-merge-request-labels-run-review-app + - <<: *if-merge-request-labels-run-all-e2e + - <<: *if-auto-deploy-branches - <<: *if-default-refs changes: *ci-build-images-patterns - <<: *if-default-refs changes: *code-qa-patterns + # Rules to support .qa:rules:package-and-test-mrs + - <<: *if-merge-request + changes: *dependency-patterns + - <<: *if-merge-request-labels-run-all-e2e + - <<: *if-dot-com-gitlab-org-and-security-merge-request-manual-ff-package-and-e2e + changes: *feature-flag-development-config-patterns + - <<: *if-merge-request + changes: *feature-flag-development-config-patterns + - <<: *if-merge-request + changes: *nodejs-patterns + - <<: *if-merge-request + changes: *ci-qa-patterns + - <<: *if-force-ci + +.build-images:rules:build-assets-image-as-if-foss: + rules: + - <<: *if-not-ee + when: never + - <<: *if-merge-request-labels-pipeline-expedite + when: never + - !reference [".build-images:rules:build-assets-image", "rules"] ################# # Caching rules # @@ -833,14 +949,6 @@ - changes: - scripts/lint_templates_bash.rb -################## -# Delivery rules # -################## -.delivery:rules:security-pipeline-merge-result-failure: - rules: - - <<: *if-security-pipeline-merge-result - when: on_failure - ###################### # Dev fixtures rules # ###################### @@ -940,6 +1048,7 @@ when: never - <<: *if-merge-request-targeting-stable-branch - <<: *if-merge-request-labels-run-review-app + - <<: *if-merge-request-labels-run-all-e2e - <<: *if-auto-deploy-branches - <<: *if-ruby2-branch - <<: *if-default-refs @@ -949,6 +1058,16 @@ - <<: *if-default-refs changes: *workhorse-patterns +.frontend:rules:compile-production-assets-as-if-foss: + rules: + - <<: *if-not-canonical-namespace + when: never + - <<: *if-not-ee + when: never + - <<: *if-merge-request-labels-pipeline-expedite + when: never + - !reference [.frontend:rules:compile-production-assets, rules] + .frontend:rules:compile-test-assets: rules: - <<: *if-merge-request-labels-run-all-rspec @@ -1122,15 +1241,6 @@ ########## # Notify # ########## -.notify:rules:notify-pipeline-failure: - rules: - # Don't report child pipeline failures - - if: '$CI_PIPELINE_SOURCE == "parent_pipeline"' - when: never - - if: '$CI_SLACK_WEBHOOK_URL && $NOTIFY_PIPELINE_FAILURE_CHANNEL' - when: on_failure - allow_failure: true - .notify:rules:create-issues-for-failing-tests: rules: # Don't report child pipeline failures @@ -1144,8 +1254,6 @@ rules: - <<: *if-not-canonical-namespace when: never - - <<: *if-security-merge-request - when: never - <<: *if-merge-request-targeting-stable-branch when: always @@ -1198,7 +1306,7 @@ allow_failure: true - <<: *if-ruby2-branch -.qa:rules:package-and-test-mrs: +.qa:rules:package-and-test-common: rules: - <<: *if-not-canonical-namespace when: never @@ -1210,31 +1318,45 @@ allow_failure: true - <<: *if-ruby2-branch allow_failure: true + - <<: *if-merge-request + changes: *dependency-patterns + allow_failure: true + variables: + OMNIBUS_GITLAB_BUILD_ON_ALL_OS: 'true' - <<: *if-merge-request-labels-run-all-e2e allow_failure: true - <<: *if-dot-com-gitlab-org-and-security-merge-request-manual-ff-package-and-e2e changes: *feature-flag-development-config-patterns when: manual allow_failure: true - - <<: *if-dot-com-gitlab-org-and-security-merge-request + - <<: *if-merge-request changes: *feature-flag-development-config-patterns allow_failure: true - - <<: *if-dot-com-gitlab-org-and-security-merge-request + - <<: *if-merge-request changes: *initializers-patterns allow_failure: true - - <<: *if-dot-com-gitlab-org-and-security-merge-request + - <<: *if-merge-request changes: *nodejs-patterns allow_failure: true - - <<: *if-dot-com-gitlab-org-and-security-merge-request + - <<: *if-merge-request changes: *ci-qa-patterns allow_failure: true - - <<: *if-dot-com-gitlab-org-and-security-merge-request + - <<: *if-merge-request + changes: + - qa/Gemfile.lock # qa/Gemfile.lock is a part of *qa-patterns, so this rule must be placed before the one with *qa-patterns changes + variables: + UPDATE_QA_CACHE: "true" + - <<: *if-merge-request changes: *qa-patterns allow_failure: true - <<: *if-dot-com-gitlab-org-and-security-merge-request-and-qa-tests-specified changes: *code-patterns allow_failure: true - - <<: *if-dot-com-gitlab-org-and-security-merge-request + +.qa:rules:package-and-test-mrs: + rules: + - !reference [".qa:rules:package-and-test-common", rules] + - <<: *if-merge-request changes: *code-patterns when: manual allow_failure: true @@ -1242,7 +1364,7 @@ when: manual allow_failure: true -.qa:rules:package-and-test: +.qa:rules:package-and-test-ee: rules: - !reference [".qa:rules:package-and-test-mrs", rules] - <<: *if-dot-com-gitlab-org-schedule @@ -1251,14 +1373,51 @@ SKIP_REPORT_IN_ISSUES: "false" PROCESS_TEST_RESULTS: "true" KNAPSACK_GENERATE_REPORT: "true" + UPDATE_QA_CACHE: "true" QA_SAVE_TEST_METRICS: "true" QA_EXPORT_TEST_METRICS: "false" # on main runs, metrics are exported to separate bucket via rake task for better consistency +.qa:rules:package-and-test-ce: + rules: + - <<: *if-not-canonical-namespace + when: never + - <<: *if-not-ee + when: never + - <<: *if-merge-request-labels-pipeline-expedite + when: never + - <<: *if-dot-com-gitlab-org-and-security-merge-request + changes: *ci-build-images-patterns + when: manual + allow_failure: true + - <<: *if-dot-com-gitlab-org-and-security-merge-request + changes: *code-qa-patterns + when: manual + allow_failure: true + .qa:rules:e2e:test-on-gdk: rules: - if: '$QA_RUN_TESTS_ON_GDK !~ /true|yes|1/i' when: never - - !reference [".qa:rules:package-and-test", rules] + - !reference [".qa:rules:package-and-test-common", rules] + - <<: *if-merge-request + changes: *code-patterns + allow_failure: true + - <<: *if-force-ci + when: manual + allow_failure: true + +.qa:rules:package-and-test-sidebar: + rules: + - !reference [".qa:rules:package-and-test-mrs", rules] + - <<: *if-dot-com-gitlab-org-schedule + allow_failure: true + variables: + SKIP_REPORT_IN_ISSUES: "true" + PROCESS_TEST_RESULTS: "false" + KNAPSACK_GENERATE_REPORT: "false" + UPDATE_QA_CACHE: "false" + QA_SAVE_TEST_METRICS: "true" + QA_EXPORT_TEST_METRICS: "false" # on main runs, metrics are exported to separate bucket via rake task for better consistency ############### # Rails rules # @@ -1343,17 +1502,18 @@ - <<: *if-default-refs changes: *db-patterns -.rails:rules:ee-and-foss-migration:predictive: +.rails:rules:rspec-predictive: rules: - - <<: *if-fork-merge-request - changes: *db-patterns - - !reference [".rails:rules:predictive-default-rules", rules] - - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] - # When DB schema changes, many migrations spec may be affected. However, the test mapping from Crystalball does not map db change to a specific migration spec well. - # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68840. - - <<: *if-merge-request - changes: *db-patterns + - <<: *if-merge-request-approved when: never + - <<: *if-automated-merge-request + when: never + - <<: *if-security-merge-request + when: never + - <<: *if-merge-request-labels-run-all-rspec + when: never + - <<: *if-merge-request + changes: *code-backstage-patterns .rails:rules:ee-and-foss-background-migration: rules: @@ -1361,12 +1521,6 @@ - <<: *if-default-refs changes: *backend-patterns -.rails:rules:ee-and-foss-background-migration:predictive: - rules: - - !reference [".rails:rules:ee-and-foss-migration:predictive", rules] - - <<: *if-merge-request - changes: *backend-patterns - .rails:rules:ee-and-foss-mr-with-migration: rules: - <<: *if-merge-request @@ -1391,17 +1545,6 @@ - <<: *if-default-refs changes: *backstage-patterns -.rails:rules:ee-and-foss-unit:predictive: - rules: - - <<: *if-fork-merge-request - changes: *backend-patterns - - !reference [".rails:rules:predictive-default-rules", rules] - - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] - - <<: *if-merge-request - changes: *backend-patterns - - <<: *if-merge-request - changes: *backstage-patterns - .rails:rules:ee-and-foss-integration: rules: - <<: *if-fork-merge-request @@ -1410,15 +1553,6 @@ - <<: *if-default-refs changes: *backend-patterns -.rails:rules:ee-and-foss-integration:predictive: - rules: - - <<: *if-fork-merge-request - changes: *backend-patterns - - !reference [".rails:rules:predictive-default-rules", rules] - - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] - - <<: *if-merge-request - changes: *backend-patterns - .rails:rules:ee-and-foss-system: rules: - <<: *if-fork-merge-request @@ -1427,13 +1561,6 @@ - <<: *if-default-refs changes: *code-backstage-patterns -.rails:rules:ee-and-foss-system:predictive: - rules: - - <<: *if-fork-merge-request - changes: *code-backstage-patterns - - !reference [".rails:rules:predictive-default-rules", rules] - - !reference [".rails:rules:system:predictive-default-rules", rules] - .rails:rules:ee-and-foss-fast_spec_helper: rules: - <<: *if-merge-request-labels-run-all-rspec @@ -1468,30 +1595,12 @@ - <<: *if-default-refs changes: *db-patterns -.rails:rules:ee-only-migration:predictive: - rules: - - <<: *if-not-ee - when: never - - !reference [".rails:rules:predictive-default-rules", rules] - - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] - # When DB schema changes, many migrations spec may be affected. However, the test mapping from Crystalball does not map db change to a specific migration spec well. - # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68840. - - <<: *if-merge-request - changes: *db-patterns - when: never - .rails:rules:ee-only-background-migration: rules: - !reference [".rails:rules:ee-only-migration", rules] - <<: *if-default-refs changes: *backend-patterns -.rails:rules:ee-only-background-migration:predictive: - rules: - - !reference [".rails:rules:ee-only-migration:predictive", rules] - - <<: *if-merge-request - changes: *backend-patterns - .rails:rules:ee-only-unit: rules: - <<: *if-not-ee @@ -1502,17 +1611,6 @@ - <<: *if-default-refs changes: *backend-patterns -.rails:rules:ee-only-unit:predictive: - rules: - - <<: *if-not-ee - when: never - - <<: *if-fork-merge-request - changes: *backend-patterns - - !reference [".rails:rules:predictive-default-rules", rules] - - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] - - <<: *if-merge-request - changes: *backend-patterns - .rails:rules:ee-only-integration: rules: - <<: *if-not-ee @@ -1523,17 +1621,6 @@ - <<: *if-default-refs changes: *backend-patterns -.rails:rules:ee-only-integration:predictive: - rules: - - <<: *if-not-ee - when: never - - <<: *if-fork-merge-request - changes: *backend-patterns - - !reference [".rails:rules:predictive-default-rules", rules] - - !reference [".rails:rules:unit-integration:predictive-default-rules", rules] - - <<: *if-merge-request - changes: *backend-patterns - .rails:rules:ee-only-system: rules: - <<: *if-not-ee @@ -1544,15 +1631,6 @@ - <<: *if-default-refs changes: *code-backstage-patterns -.rails:rules:ee-only-system:predictive: - rules: - - <<: *if-not-ee - when: never - - <<: *if-fork-merge-request - changes: *code-backstage-patterns - - !reference [".rails:rules:predictive-default-rules", rules] - - !reference [".rails:rules:system:predictive-default-rules", rules] - .rails:rules:as-if-foss-migration: rules: - <<: *if-not-ee @@ -1571,30 +1649,12 @@ - <<: *if-merge-request-not-approved when: never -.rails:rules:as-if-foss-migration:predictive: - rules: - - <<: *if-not-ee - when: never - - !reference [".rails:rules:predictive-default-rules", rules] - - !reference [".rails:rules:as-if-foss-migration-unit-integration:predictive-default-rules", rules] - # When DB schema changes, many migrations spec may be affected. However, the test mapping from Crystalball does not map db change to a specific migration spec well. - # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68840. - - <<: *if-merge-request-labels-as-if-foss - changes: *db-patterns - when: never - .rails:rules:as-if-foss-background-migration: rules: - !reference [".rails:rules:as-if-foss-migration", rules] - <<: *if-merge-request-labels-as-if-foss changes: *backend-patterns -.rails:rules:as-if-foss-background-migration:predictive: - rules: - - !reference [".rails:rules:as-if-foss-migration:predictive", rules] - - <<: *if-merge-request-labels-as-if-foss - changes: *backend-patterns - .rails:rules:as-if-foss-unit: rules: - <<: *if-not-ee @@ -1605,17 +1665,6 @@ - <<: *if-merge-request-labels-as-if-foss changes: *backend-patterns -.rails:rules:as-if-foss-unit:predictive: - rules: - - <<: *if-not-ee - when: never - - <<: *if-fork-merge-request - when: never - - !reference [".rails:rules:predictive-default-rules", rules] - - !reference [".rails:rules:as-if-foss-migration-unit-integration:predictive-default-rules", rules] - - <<: *if-merge-request-labels-as-if-foss - changes: *backend-patterns - .rails:rules:as-if-foss-integration: rules: - <<: *if-not-ee @@ -1626,17 +1675,6 @@ - <<: *if-merge-request-labels-as-if-foss changes: *backend-patterns -.rails:rules:as-if-foss-integration:predictive: - rules: - - <<: *if-not-ee - when: never - - <<: *if-fork-merge-request - when: never - - !reference [".rails:rules:predictive-default-rules", rules] - - !reference [".rails:rules:as-if-foss-migration-unit-integration:predictive-default-rules", rules] - - <<: *if-merge-request-labels-as-if-foss - changes: *backend-patterns - .rails:rules:as-if-foss-system: rules: - <<: *if-not-ee @@ -1647,30 +1685,12 @@ - <<: *if-merge-request-labels-as-if-foss changes: *code-backstage-patterns -.rails:rules:as-if-foss-system:predictive: - rules: - - <<: *if-not-ee - when: never - - <<: *if-fork-merge-request - when: never - - !reference [".rails:rules:predictive-default-rules", rules] - - <<: *if-merge-request - changes: *core-backend-patterns - when: never - - <<: *if-merge-request - changes: *workhorse-patterns - when: never - - <<: *if-merge-request - changes: *ci-patterns - when: never - - <<: *if-merge-request-labels-as-if-foss - changes: *code-backstage-patterns - .rails:rules:ee-and-foss-db-library-code: rules: - <<: *if-default-refs changes: *db-library-patterns - <<: *if-merge-request-labels-run-all-rspec + - <<: *if-merge-request-labels-run-on-pg12 .rails:rules:ee-mr-and-default-branch-only: rules: @@ -1756,10 +1776,19 @@ when: never - <<: *if-merge-request-labels-skip-undercoverage when: never + # We cannot get the coverage data from child pipeline so we only run undercoverage on full pipelines for now + # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113410#note_1335422806 + - <<: *if-merge-request-not-approved + when: never - <<: *if-merge-request-labels-run-all-rspec - <<: *if-merge-request changes: *backend-patterns +.rails:rules:rspec-on-pg12: + rules: + - <<: *if-merge-request-labels-run-on-pg12 + - !reference [".rails:rules:default-branch-schedule-nightly--code-backstage-default-rules", rules] + .rails:rules:default-branch-schedule-nightly--code-backstage-default-rules: rules: - <<: *if-default-branch-schedule-nightly @@ -1789,7 +1818,12 @@ when: never - <<: *if-merge-request-labels-pipeline-expedite when: never - - if: '$SKIP_FLAKY_TESTS_AUTOMATICALLY == "true" || $RETRY_FAILED_TESTS_IN_NEW_PROCESS == "true"' + - if: '$SKIP_FLAKY_TESTS_AUTOMATICALLY != "true" && $RETRY_FAILED_TESTS_IN_NEW_PROCESS != "true"' + when: never + - <<: *if-merge-request + changes: *code-backstage-patterns + when: always + - <<: *if-default-branch-refs changes: *code-backstage-patterns when: always @@ -1958,6 +1992,12 @@ changes: ["vendor/gems/cloud_profiler_agent/**/*"] - <<: *if-merge-request-labels-run-all-rspec +.vendor:rules:sidekiq-reliable-fetch: + rules: + - <<: *if-merge-request + changes: ["vendor/gems/sidekiq-reliable-fetch/**/*"] + - <<: *if-merge-request-labels-run-all-rspec + ################## # Releases rules # ################## diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml index 76c7af2753..0b5860b3dd 100644 --- a/.gitlab/ci/setup.gitlab-ci.yml +++ b/.gitlab/ci/setup.gitlab-ci.yml @@ -63,7 +63,7 @@ verify-ruby-3.0: verify-tests-yml: extends: - .setup:rules:verify-tests-yml - image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}-alpine3.13 + image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}-alpine3.16 stage: test needs: [] script: @@ -83,7 +83,7 @@ verify-approvals: generate-frontend-fixtures-mapping: extends: - .setup:rules:generate-frontend-fixtures-mapping - - .use-pg12 + - .use-pg13 - .rails-cache needs: ["setup-test-env"] stage: prepare @@ -118,13 +118,12 @@ detect-tests: - | if [ -n "$CI_MERGE_REQUEST_IID" ]; then mkdir -p $(dirname "$RSPEC_CHANGED_FILES_PATH") - tooling/bin/find_changes ${RSPEC_CHANGED_FILES_PATH}; - tooling/bin/find_tests ${RSPEC_CHANGED_FILES_PATH} ${RSPEC_MATCHING_TESTS_PATH}; - tooling/bin/js_to_system_specs_mappings ${RSPEC_CHANGED_FILES_PATH} ${RSPEC_MATCHING_TESTS_PATH}; - tooling/bin/find_changes ${RSPEC_CHANGED_FILES_PATH} ${RSPEC_MATCHING_TESTS_PATH} ${FRONTEND_FIXTURES_MAPPING_PATH}; + + tooling/bin/predictive_tests + filter_rspec_matched_foss_tests ${RSPEC_MATCHING_TESTS_PATH} ${RSPEC_MATCHING_TESTS_FOSS_PATH}; filter_rspec_matched_ee_tests ${RSPEC_MATCHING_TESTS_PATH} ${RSPEC_MATCHING_TESTS_EE_PATH}; - tooling/bin/view_to_js_mappings ${RSPEC_CHANGED_FILES_PATH} ${RSPEC_MATCHING_JS_FILES_PATH}; + echoinfo "Changed files: $(cat $RSPEC_CHANGED_FILES_PATH)"; echoinfo "Related FOSS RSpec tests: $(cat $RSPEC_MATCHING_TESTS_FOSS_PATH)"; echoinfo "Related EE RSpec tests: $(cat $RSPEC_MATCHING_TESTS_EE_PATH)"; @@ -136,9 +135,10 @@ detect-tests: - ${FRONTEND_FIXTURES_MAPPING_PATH} - ${RSPEC_CHANGED_FILES_PATH} - ${RSPEC_MATCHING_JS_FILES_PATH} - - ${RSPEC_MATCHING_TESTS_PATH} - - ${RSPEC_MATCHING_TESTS_FOSS_PATH} - ${RSPEC_MATCHING_TESTS_EE_PATH} + - ${RSPEC_MATCHING_TESTS_FOSS_PATH} + - ${RSPEC_MATCHING_TESTS_PATH} + - ${RSPEC_VIEWS_INCLUDING_PARTIALS_PATH} detect-previous-failed-tests: extends: diff --git a/.gitlab/ci/static-analysis.gitlab-ci.yml b/.gitlab/ci/static-analysis.gitlab-ci.yml index d546c79aab..b9c9200d78 100644 --- a/.gitlab/ci/static-analysis.gitlab-ci.yml +++ b/.gitlab/ci/static-analysis.gitlab-ci.yml @@ -45,7 +45,7 @@ static-verification-with-database: - .static-analysis-base - .rubocop-job-cache - .static-analysis:rules:static-verification-with-database - - .use-pg12 + - .use-pg13 script: - bundle exec rake lint:static_verification_with_database variables: diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml index 176a0b67d6..20d768c9e9 100644 --- a/.gitlab/ci/test-metadata.gitlab-ci.yml +++ b/.gitlab/ci/test-metadata.gitlab-ci.yml @@ -32,17 +32,17 @@ update-tests-metadata: - retrieve-tests-metadata - generate-frontend-fixtures-mapping - setup-test-env - - rspec migration pg12 + - rspec migration pg13 - rspec-all frontend_fixture - - rspec unit pg12 - - rspec integration pg12 - - rspec system pg12 - - rspec background_migration pg12 - - rspec-ee migration pg12 - - rspec-ee unit pg12 - - rspec-ee integration pg12 - - rspec-ee system pg12 - - rspec-ee background_migration pg12 + - rspec unit pg13 + - rspec integration pg13 + - rspec system pg13 + - rspec background_migration pg13 + - rspec-ee migration pg13 + - rspec-ee unit pg13 + - rspec-ee integration pg13 + - rspec-ee system pg13 + - rspec-ee background_migration pg13 script: - run_timed_command "retry gem install fog-aws mime-types activesupport rspec_profiling postgres-copy --no-document" - source ./scripts/rspec_helpers.sh diff --git a/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml b/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml index a04d81fb34..d51e255fb9 100644 --- a/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml +++ b/.gitlab/ci/test-on-gdk/main.gitlab-ci.yml @@ -57,7 +57,7 @@ dont-interrupt-me: --volume $CI_PROJECT_DIR/test_output:/home/gdk/gdk/gitlab/qa/tmp:z \ --volume $CI_PROJECT_DIR/logs/gdk:/home/gdk/gdk/log \ --volume $CI_PROJECT_DIR/logs/gitlab:/home/gdk/gdk/gitlab/log \ - ${QA_GDK_IMAGE} "${CI_COMMIT_REF_SLUG}" "$TEST_GDK_TAGS --tag ~requires_praefect" || true + ${QA_GDK_IMAGE} "${CI_COMMIT_SHA}" "$TEST_GDK_TAGS --tag ~requires_praefect" || true - echo -e "\e[0Ksection_end:`date +%s`:launch_gdk_and_tests\r\e[0K" allow_failure: true diff --git a/.gitlab/ci/vendored-gems.gitlab-ci.yml b/.gitlab/ci/vendored-gems.gitlab-ci.yml index e1b4960b26..a2af802c65 100644 --- a/.gitlab/ci/vendored-gems.gitlab-ci.yml +++ b/.gitlab/ci/vendored-gems.gitlab-ci.yml @@ -101,3 +101,11 @@ vendor cloud_profiler_agent: trigger: include: vendor/gems/cloud_profiler_agent/.gitlab-ci.yml strategy: depend + +vendor sidekiq-reliable-fetch: + extends: + - .vendor:rules:sidekiq-reliable-fetch + needs: [] + trigger: + include: vendor/gems/sidekiq-reliable-fetch/.gitlab-ci.yml + strategy: depend diff --git a/.gitlab/ci/workhorse.gitlab-ci.yml b/.gitlab/ci/workhorse.gitlab-ci.yml index 389906dbbf..ae0b15bbdb 100644 --- a/.gitlab/ci/workhorse.gitlab-ci.yml +++ b/.gitlab/ci/workhorse.gitlab-ci.yml @@ -10,7 +10,7 @@ workhorse:verify: .workhorse:test: extends: .workhorse:rules:workhorse - image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}:git-2.36 + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-exiftool-12.60 variables: GITALY_ADDRESS: "tcp://127.0.0.1:8075" stage: test @@ -18,7 +18,6 @@ workhorse:verify: - setup-test-env before_script: - go version - - apt-get update && apt-get -y install libimage-exiftool-perl - scripts/gitaly-test-build script: - make -C workhorse test @@ -37,7 +36,10 @@ workhorse:test go: workhorse:test fips: extends: .workhorse:test - image: registry.gitlab.com/gitlab-org/gitlab-omnibus-builder/ubuntu_20.04_fips:4.0.0 + parallel: + matrix: + - GO_VERSION: ["1.18", "1.19"] + image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/ubi-${UBI_VERSION}-ruby-${RUBY_VERSION}-golang-${GO_VERSION}-rust-${RUST_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-exiftool-12.60 variables: FIPS_MODE: 1 diff --git a/.gitlab/issue_templates/AI Project Proposal.md b/.gitlab/issue_templates/AI Project Proposal.md new file mode 100644 index 0000000000..1b3202b402 --- /dev/null +++ b/.gitlab/issue_templates/AI Project Proposal.md @@ -0,0 +1,138 @@ + + +# [Experiment](https://docs.gitlab.com/ee/policy/alpha-beta-support.html#experiment) + +## Problem to be solved + +### User problem +_What user problem will this solve?_ + +### Solution hypothesis +_Why do you believe this AI solution is a good way to solve this problem?_ + +### Assumption +_What assumptions are you making about this problem and the solution?_ + +### Personas +_What [personas](https://about.gitlab.com/handbook/product/personas/#list-of-user-personas) have this problem, who is the intended user?_ + +## Proposal + + +### Success +_How will you measure whether this experiment is a success?_ + +# [General Availability](https://docs.gitlab.com/ee/policy/alpha-beta-support.html#generally-available-ga) + +## Main Job story +_What job to be done will this solve?_ + + +### Proposal updates/additions + + +### Problem validation +_What validation exists that customers have this problem?_ + +### Business objective +_What business objective will be achieved with this proposal?_ + + +### Confidence +_Has this proposal been derived from research?_ + + +| Confidence | Research | +| ----------------- | ------------------------------ | +| [High/Medium/Low] | [research/insight issue](Link) | + +### Requirements +_What tasks or actions should the user be capable of performing with this feature?_ + + +> ⚠️ Related feature and research issues should be linked in the related issues section (Delete this line when this is done) + +#### The user needs to be able to: +- ... +- ... +- ... + +## Checklist + +### Experiment + +
+ Issue information + +- [ ] Add information to the issue body about: + - [ ] The user problem being solved + - [ ] Your assumptions + - [ ] Who it's for, list of personas impacted + - [ ] Your proposal +- [ ] Add relevant designs to the Design Management area of the issue if available +- [ ] Ensure this issue has the ~wg-ai-integration label to ensure visibility to various teams working on this + +
+ +### General Availability + +
+Issue information + +- [ ] Add information to the issue body about: + - [ ] Your proposal + - [ ] The Job Statement it's expected to satisfy + - [ ] Details about the user problem and provide any research or problem validation + - [ ] List the personas impacted by the proposal. +- [ ] Add all relevant solution validation issues to the Linked items section that shows this proposal will solve the customer problem, or details explaining why it's not possible to provide that validation. +- [ ] Add relevant designs to the Design Management area of the issue. +- [ ] You have adhered to our [Definition of Done](https://docs.gitlab.com/ee/development/contributing/merge_request_workflow.html#definition-of-done) standards +- [ ] Ensure this issue has the ~wg-ai-integration label to ensure visibility to various teams working on this + +
+ +
+Technical needs + +- [ ] [Operational Requirements Review - Checklist - #note_1337519985](https://gitlab.com/gitlab-org/gitlab/-/issues/403859#note_1337519985) + +1. **Work estimate and skills needs to build an ML viable feature:** To build any ML feature depending on the work, there are many personas that contribute including, Data Scientist, NLP engineer, ML Engineer, MLOps Engineer, ML Infra engineers, and Fullstack engineer to integrate the ML Services with Gitlab. Post-prototype we would assess the skills needed to build a production-grade ML feature for the prototype +2. **Data Limitation:** We would like to upfront validate if we have viable data for the feature including whether we can use the DataOps pipeline of ModelOps or create a custom one. We would want to understand the training data, test data, and feedback data to dial up the accuracy and the limitations of the data. +3. **Model Limitation:** We would want to understand if we can use an open-source pre-trained model, tune and customize it or start a model from scratch as well. Further, we would asses based on the ModelOps model evaluation framework which would be the right model to use based on the use case. +4. **Cost, Scalability, Reliability:** We would want to estimate the cost of hosting, serving, inference of the model, and the full end-to-end infrastructure including monitoring and observability. +5. **Legal and Ethical Framework:** We would want to align with legal and ethical framework like any other ModelOps features to cover across the nine principles of responsible ML and any legal support needed. + +
+ +
+Dependency needs + +- [ ] [Operational Requirements Review - Checklist - #note_1337519985](https://gitlab.com/gitlab-org/gitlab/-/issues/403859#note_1337519985) + +
+ +
+Legal needs + +- [ ] TBD + +
+ +## Additional resources +- If you'd like help with technical validation, or would like to discuss UX considerations for AI mention the AI Assisted group using `@gitlab-org/modelops/applied-ml`. +- Read about our [AI Integration strategy](https://internal-handbook.gitlab.io/handbook/product/ai-strategy/ai-integration-effort/) +- Slack channels + - `#wg_ai_integration` - Slack channel for the working group and the high level alignment on getting AI ready for Production (Development, Product, UX, Legal, etc.) But from the other channels fell free to reach out and post progress here + - `#ai_integration_dev_lobby` - Channel for all implementation related topics and discussions of actual AI features (e.g. explain the code) + - `#ai_enablement_team` - Channel for the AI Enablement Team which is building the base for all features (experimentation API, Abstraction Layer, Embeddings, etc.) + + +/label ~wg-ai-integration +/cc @tmccaslin @hbenson @wayne @pedroms @jmandell +/confidential + +[Make change to this template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/AI%20Project%20Proposal.md) diff --git a/.gitlab/issue_templates/Deprecations.md b/.gitlab/issue_templates/Deprecations.md index 49f1129fe8..30d01c5f5c 100644 --- a/.gitlab/issue_templates/Deprecations.md +++ b/.gitlab/issue_templates/Deprecations.md @@ -49,9 +49,9 @@ Which tier is this feature available in? Please add links to the relevant merge requests. - As soon as possible, but no later than the third milestone preceding the major release (for example, given the following release schedule: `14.8, 14.9, 14.10, 15.0` – `14.8` is the third milestone preceding the major release): - - [ ] A [deprecation announcement entry](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-a-deprecation-announcement) has been created so the deprecation will appear in release posts and on the [general deprecation page](https://docs.gitlab.com/ee/update/deprecations). + - [ ] A [deprecation announcement entry](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-the-announcement) has been created so the deprecation will appear in release posts and on the [general deprecation page](https://docs.gitlab.com/ee/update/deprecations). - [ ] Documentation has been updated to mark the feature as [deprecated](https://docs.gitlab.com/ee/development/documentation/versions.html#deprecations-and-removals). -- [ ] On or before the major milestone: A [removal entry](https://about.gitlab.com/handbook/marketing/blog/release-posts/#removals) has been created so the removal will appear on the [removals by milestones](https://docs.gitlab.com/ee/update/removals) page and be announced in the release post. +- [ ] On or before the major milestone: A [removal entry](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-the-announcement-1) has been created so the removal will appear on the [removals by milestones](https://docs.gitlab.com/ee/update/removals) page and be announced in the release post. - On the major milestone: - [ ] The deprecated item has been removed. - [ ] If the removal of the deprecated item is a [breaking change](https://about.gitlab.com/handbook/product/gitlab-the-product/#examples-of-breaking-changes), the merge request is labeled ~"breaking change". diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md index 5791eca11f..5efc9304a4 100644 --- a/.gitlab/issue_templates/Feature Flag Roll Out.md +++ b/.gitlab/issue_templates/Feature Flag Roll Out.md @@ -43,9 +43,9 @@ Are there any other stages or teams involved that need to be kept in the loop? - @@ -57,7 +57,7 @@ Example below: ### What can we monitor to detect problems with this? -_Consider mentioning checks for 5xx errors or other anomalies like an increase in redirects +_Consider mentioning checks for 5xx errors or other anomalies like an increase in redirects (302 HTTP response status)_ ### What can we check for monitoring production after rollouts? @@ -66,7 +66,7 @@ _Consider adding links to check for Sentry errors, Production logs for 5xx, 302s ## Rollout Steps -Note: Please make sure to run the chatops commands in the slack channel that gets impacted by the command. +Note: Please make sure to run the chatops commands in the slack channel that gets impacted by the command. ### Rollout on non-production environments @@ -75,11 +75,15 @@ Note: Please make sure to run the chatops commands in the slack channel that get - [ ] `/chatops run auto_deploy status ` - [ ] Enable the feature globally on non-production environments. - [ ] `/chatops run feature set true --dev --staging --staging-ref` + - If the feature flag causes QA end-to-end tests to fail: + - [ ] Disable the feature flag on staging to avoid blocking [deployments](https://about.gitlab.com/handbook/engineering/deployments-and-releases/deployments/). - [ ] Verify that the feature works as expected. Posting the QA result in this issue is preferable. The best environment to validate the feature in is [staging-canary](https://about.gitlab.com/handbook/engineering/infrastructure/environments/#staging-canary) as this is the first environment deployed to. Note you will need to make sure you are configured to use canary as outlined [here](https://about.gitlab.com/handbook/engineering/infrastructure/environments/canary-stage/) when accessing the staging environment in order to make sure you are testing appropriately. +For assistance with QA end-to-end test failures, please reach out via the `#quality` Slack channel. Note that QA test failures on staging-ref [don't block deployments](https://about.gitlab.com/handbook/engineering/infrastructure/environments/staging-ref/#how-to-use-staging-ref). + ### Specific rollout on production For visibility, all `/chatops` commands that target production should be executed in the `#production` slack channel and cross-posted (with the command results) to the responsible team's slack channel (`#g_TEAM_NAME`). @@ -104,7 +108,7 @@ For visibility, all `/chatops` commands that target production should be execute - [ ] Ensure that you or a representative in development can be available for at least 2 hours after feature flag updates in production. If a different developer will be covering, or an exception is needed, please inform the oncall SRE by using the `@sre-oncall` Slack alias. - [ ] Ensure that documentation has been updated ([More info](https://docs.gitlab.com/ee/development/documentation/feature_flags.html#features-that-became-enabled-by-default)). -- [ ] Leave a comment on [the feature issue][main-issue] announcing estimated time when this feature flag will be enabled on GitLab.com. +- [ ] Leave a comment on [the feature issue][main-issue] announcing estimated time when this feature flag will be enabled on GitLab.com. - [ ] Ensure that any breaking changes have been announced following the [release post process](https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes) to ensure GitLab customers are aware. - [ ] Notify `#support_gitlab-com` and your team channel ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/ee/development/feature_flags/controls.html#communicate-the-change)). - [ ] Ensure that the feature flag rollout plan is reviewed by another developer familiar with the domain. diff --git a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md index c33e5f8eb6..60b091b04a 100644 --- a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md +++ b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md @@ -465,6 +465,7 @@ That's all of the required database changes. state { Geo::CoolWidgetRegistry.state_value(:failed) } last_synced_at { 1.day.ago } retry_count { 2 } + retry_at { 2.hours.from_now } last_sync_failure { 'Random error' } end diff --git a/.gitlab/issue_templates/Geo Replicate a new blob type.md b/.gitlab/issue_templates/Geo Replicate a new blob type.md index 0c5dbaebac..df2d1871a8 100644 --- a/.gitlab/issue_templates/Geo Replicate a new blob type.md +++ b/.gitlab/issue_templates/Geo Replicate a new blob type.md @@ -425,6 +425,7 @@ That's all of the required database changes. state { Geo::CoolWidgetRegistry.state_value(:failed) } last_synced_at { 1.day.ago } retry_count { 2 } + retry_at { 2.hours.from_now } last_sync_failure { 'Random error' } end diff --git a/.gitlab/issue_templates/Navigation Proposals.md b/.gitlab/issue_templates/Navigation Proposals.md index 72c8f43cc9..934cf44000 100644 --- a/.gitlab/issue_templates/Navigation Proposals.md +++ b/.gitlab/issue_templates/Navigation Proposals.md @@ -4,12 +4,23 @@ + +#### Other locations that were considered + + + ### Checklist +- [ ] Review the handbook page for [navigation changes](https://about.gitlab.com/handbook/product/ux/navigation/#when-to-consider-making-a-change-to-the-navigation) - [ ] Add relevant information to the issue description detailing your proposal, including usage and business drivers. -- [ ] Follow the [product development workflow](https://about.gitlab.com/handbook/product-development-flow/#validation-phase-2-problem-validation) validation process to ensure you are solving a well understood problem and that the proposed change is understandable and non-disruptive to users. Navigation-specific research is strongly encouraged. -- [ ] Engage the [Foundations Product Manager](https://about.gitlab.com/handbook/product/categories/#foundations-group) for approval. The Foundations DRI will work with UX partners in product design, research, and technical writing, as applicable. -- [ ] Engage the [Foundations](https://about.gitlab.com/handbook/product/categories/#foundations-group) team to ensure your proposal is in alignment with holistic changes happening to the left side bar. -- [ ] Consider whether you need to communicate the change somehow, or if you will have an interim period in the UI where your nav item will live in more than one place. +- [ ] List at least two other places you considered to introduce your feature +- [ ] Add relevant designs to the Design Management area of the issue +- [ ] Ensure your UI suggestion align with the [Documentation Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide/) +- [ ] Engage ~"Technical Writing". They can help craft a term that best describes the feature(s) you’re proposing. +- [ ] Follow the [product development workflow](https://about.gitlab.com/handbook/product-development-flow/#validation-phase-2-problem-validation) validation process to ensure you are solving a well understood problem and that the proposed change is understandable and non-disruptive to users. Navigation-specific research is mandatory for additions or when restructuring. +- [ ] Engage the [Foundations Product Manager](https://about.gitlab.com/handbook/product/categories/#foundations-group) for approval. The Foundations DRI (@cdybenko) will work with UX partners in product design, research, and technical writing, as applicable. +- [ ] Consider whether you need to [communicate the change somehow](https://design.gitlab.com/patterns/navigation#messaging-changes-to-users), or if you will have an interim period in the UI where your item will live in more than one place. +- [ ] Ensure engineers are familiar with the [implementation steps for navigation](https://docs.gitlab.com/ee/development/navigation_sidebar.html#navigation-sidebar). -/label ~UX ~"UI text" ~"documentation" ~"documentation" ~"Category:Navigation & Settings" ~"Category:Foundations" ~navigation +/label ~UX ~"UI text" ~"documentation" ~"Category:Navigation & Settings" ~navigation ~type::ignore +/label ~"Nav request::Start" diff --git a/.gitlab/issue_templates/Pipeline Authoring Issue Implementation.md b/.gitlab/issue_templates/Pipeline Authoring Issue Implementation.md index 7bb602feed..26dc1c97a9 100644 --- a/.gitlab/issue_templates/Pipeline Authoring Issue Implementation.md +++ b/.gitlab/issue_templates/Pipeline Authoring Issue Implementation.md @@ -20,6 +20,7 @@ _NOTE: If the issue has addressed all of these questions, this separate section Some relevant technical details, if applicable, such as: - Does this need a ~"feature flag"? +- Does there need to be an associated ~"instrumentation" issue created related to this work? - Is there an example response showing the data structure that should be returned (new endpoints only)? - What permissions should be used? - Is this EE or CE? diff --git a/.gitlab/issue_templates/Security developer workflow.md b/.gitlab/issue_templates/Security developer workflow.md index 3857303f2c..294d699ea2 100644 --- a/.gitlab/issue_templates/Security developer workflow.md +++ b/.gitlab/issue_templates/Security developer workflow.md @@ -13,6 +13,7 @@ Set the title to: `Description of the original issue` - [ ] Add a `~severity::x` label to the issue and all associated merge requests. - [ ] **IMPORTANT**: Mark this [issue as linked] to the Security Release Tracking Issue. You can find it [here](https://gitlab.com/gitlab-org/gitlab/-/issues?sort=created_date&state=opened&label_name[]=upcoming+security+release). This issue MUST be linked for the release bot to know that the associated merge requests should be merged for this security release. +- [ ] Mark this [issue as linked] to the `gitlab-org/gitlab` issue that describes the security vulnerability. - Fill out the [Links section](#links): - [ ] Next to **Issue on GitLab**, add a link to the `gitlab-org/gitlab` issue that describes the security vulnerability. - [ ] If this change affects the public interface (public API or UI) of the product, post in the `#support_gitlab-com` Slack channel to explain the impact and discuss a mitigation plan for users that might be affected. If you need Support feedback or approval, reach out in `#spt_managers` Slack channel or mention `@gitlab-com/support/managers`. diff --git a/.gitlab/issue_templates/rca.md b/.gitlab/issue_templates/rca.md new file mode 100644 index 0000000000..238039bd71 --- /dev/null +++ b/.gitlab/issue_templates/rca.md @@ -0,0 +1,125 @@ +**Please note:** if the incident relates to sensitive data or is security-related, consider +labeling this issue with ~security and mark it confidential, or create it in a private repository. + +There is now a separate internal-only RCA template for SIRT issues referenced https://about.gitlab.com/handbook/security/root-cause-analysis.html +*** + +## Summary + +A brief summary of what happened. Try to make it as executive-friendly as possible. + +- Service(s) affected: +- Team attribution: +- Minutes downtime or degradation: + +## Impact & Metrics + +Start with the following: + +| Question | Answer | +| ----- | ----- | +| What was the impact? | (i.e. service outage, sub-service brown-out, exposure of sensitive data, ...) | +| Who was impacted? | (i.e. external customers, internal customers, specific teams, ...) | +| How did this impact customers? | (i.e. preventing them from doing X, incorrect display of Y, ...) | +| How many attempts made to access? | | +| How many customers affected? | | +| How many customers tried to access? | | + +Include any additional metrics that are of relevance. + +Provide any relevant graphs that could help understand the impact of the incident and its dynamics. + +## Detection & Response + +Start with the following: + +| Question | Answer | +| ----- | ----- | +| When was the incident detected? | YYYY-MM-DD UTC | +| How was the incident detected? | (i.e. DELKE, H1 Report, ...) | +| Did alarming work as expected? | | +| How long did it take from the start of the incident to its detection? | | +| How long did it take from detection to remediation? | | +| What steps were taken to remediate? | | +| Were there any issues with the response? | (i.e. bastion host used to access the service was not available, relevant team member wasn't page-able, ...) | + +## MR Checklist + +Consider these questions if a code change introduced the issue. + +| Question | Answer | +| ----- | ----- | +| Was the [MR acceptance checklist](https://docs.gitlab.com/ee/development/code_review.html#acceptance-checklist) marked as reviewed in the MR? | | +| Should the checklist be updated to help reduce chances of future recurrences? If so, who is the DRI to do so? | | + +## Timeline + +YYYY-MM-DD + +- 00:00 UTC - something happened +- 00:01 UTC - something else happened +- ... + +YYYY-MM-DD+1 + +- 00:00 UTC - and then this happened +- 00:01 UTC - and more happened +- ... + + +## Root Cause Analysis + +The purpose of this document is to understand the reasons that caused an incident, and to create mechanisms to prevent it from recurring in the future. A root cause can **never be a person**, the way of writing has to refer to the system and the context rather than the specific actors. + +Follow the "**5 whys**" in a **blameless** manner as the core of the root cause analysis. + +For this, it is necessary to start with the incident and question why it happened. Keep iterating asking "why?" 5 times. While it's not a hard rule that it has to be 5 times, it helps to keep questions get deeper in finding the actual root cause. + +Keep in mind that from one "why?" there may come more than one answer, consider following the different branches. + +### Example of the usage of "5 whys" + +The vehicle will not start. (the problem) + +1. Why? - The battery is dead. +2. Why? - The alternator is not functioning. +3. Why? - The alternator belt has broken. +4. Why? - The alternator belt was well beyond its useful service life and not replaced. +5. Why? - The vehicle was not maintained according to the recommended service schedule. (Fifth why, a root cause) + +## What went well + +Start with the following: + +- Identify the things that worked well or as expected. +- Any additional call-outs for what went particularly well. + +## What can be improved + +Start with the following: + +- Using the root cause analysis, explain what can be improved to prevent this from happening again. +- Is there anything that could have been done to improve the detection or time to detection? +- Is there anything that could have been done to improve the response or time to response? +- Is there an existing issue that would have either prevented this incident or reduced the impact? +- Did we have any indication or beforehand knowledge that this incident might take place? +- Was the [MR acceptance checklist](https://docs.gitlab.com/ee/development/code_review.html#acceptance-checklist) marked as reviewed in the MR? +- Should the checklist be updated to help reduce chances of future recurrences? + + + +## Corrective actions + +- List issues that have been created as corrective actions from this incident. +- For each issue, include the following: + - `` - Issue labeled as ~"corrective action". + - An estimated date of completion of the corrective action. + - The named individual who owns the delivery of the corrective action. + +## Guidelines + +- [Blameless RCA Guideline](https://about.gitlab.com/handbook/customer-success/professional-services-engineering/workflows/internal/root-cause-analysis.html) +- [5 whys](https://en.wikipedia.org/wiki/5_Whys) + +/confidential +/label ~RCA diff --git a/.gitlab/merge_request_templates/New End To End Test.md b/.gitlab/merge_request_templates/New End To End Test.md index 46ccdb1cb0..9a42cf2a6d 100644 --- a/.gitlab/merge_request_templates/New End To End Test.md +++ b/.gitlab/merge_request_templates/New End To End Test.md @@ -4,6 +4,26 @@ Please link to the respective test case in the testcases project --> +## How to set up and validate locally + + + ### Checklist - [ ] Confirm the test has a [`testcase:` tag linking to an existing test case](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/best_practices.html#link-a-test-to-its-test-case-issue) in the test case project. diff --git a/.gitlab/merge_request_templates/Stable Branch.md b/.gitlab/merge_request_templates/Stable Branch.md index 2196af1a21..949aa6386a 100644 --- a/.gitlab/merge_request_templates/Stable Branch.md +++ b/.gitlab/merge_request_templates/Stable Branch.md @@ -18,7 +18,8 @@ This checklist encourages us to confirm any changes have been analyzed to reduce * [ ] This MR is backporting a bug fix, documentation update, or spec fix, previously merged in the default branch. * [ ] The original MR has been deployed to GitLab.com (not applicable for documentation or spec changes). * [ ] This MR has a [severity label] assigned (if applicable). -* [ ] Ensure the `e2e:package-and-test` job has either succeeded or been approved by a Software Engineer in Test. +* [ ] This MR has been approved by a maintainer (only one approval is required). +* [ ] Ensure the `e2e:package-and-test-ee` job has either succeeded or been approved by a Software Engineer in Test. #### Note to the merge request author and maintainer diff --git a/.gitleaksignore b/.gitleaksignore index eab7926138..56652ab4da 100644 --- a/.gitleaksignore +++ b/.gitleaksignore @@ -1,2 +1,3 @@ 7e07fe42d34916b276a7b068f4faa8bdc0ebc984:doc/architecture/blueprints/runner_tokens/index.md:gitlab-rrt:485 f6504b498548380198ad38295d9caa71412115f0:doc/architecture/blueprints/runner_tokens/index.md:generic-api-key:506 +afedb913baf4203aa688421873fdb9f94649578e:doc/api/users.md:generic-api-key:2201 diff --git a/.lefthook/pre-push/security_harness b/.lefthook/pre-push/security_harness new file mode 100755 index 0000000000..89a6d4a608 --- /dev/null +++ b/.lefthook/pre-push/security_harness @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +set -e +shopt -s nocasematch # Enable case-insensitive matching + +local_branch="$(git rev-parse --abbrev-ref HEAD)" +security_branch_regex="^security.+" +url="$2" + +if [[ $local_branch =~ $security_branch_regex ]] && [[ "$url" != *"gitlab-org/security/"* ]] +then + echo "Pushing security branches to remotes other than gitlab.com/gitlab-org/security has been disabled!" + echo "Please read https://gitlab.com/gitlab-org/release/docs/blob/master/general/security/developer.md#do-not-push-to-gitlab-orggitlab" + echo + + exit 1 +fi diff --git a/.rubocop.yml b/.rubocop.yml index 56c51bee0e..6aa0e1ca4d 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -54,6 +54,10 @@ AllCops: - 'shared/packages/**/*' - 'spec/support/*.git/**/*' # e.g. spec/support/gitlab-git-test.git - 'db/ci_migrate/*.rb' # since the `db/ci_migrate` is a symlinked to `db/migrate` + # Adding this specifically for a large revert: !118368 + <% File.readlines('.rubocop_revert_ignores.txt').map(&:chomp).each do |f| %> + - '<%= f %>' + <% end %> # Use absolute path to avoid orphan directories with changed workspace root. CacheRootDirectory: <%= Dir.getwd %>/tmp MaxFilesInCache: 1_000_000 @@ -454,6 +458,7 @@ Gitlab/RSpec/AvoidSetup: Enabled: true Include: - 'ee/spec/features/registrations/saas/**/*' + - 'ee/spec/features/trials/saas/**/*' RSpec/DuplicateSpecLocation: Enabled: true @@ -966,3 +971,23 @@ Cop/FeatureFlagUsage: Style/ArgumentsForwarding: Enabled: true AllowOnlyRestArgument: false + +Search/NamespacedClass: + Enabled: true + Exclude: + - 'config/**/*.rb' + - 'db/**/*.rb' + - 'ee/db/**/*.rb' + - 'ee/bin/**/*' + - 'ee/elastic/**/*.rb' # Advanced Search migrations issue: <> + - 'scripts/**/*' + - 'spec/migrations/**/*.rb' + - 'app/experiments/**/*_experiment.rb' + - 'ee/app/experiments/**/*_experiment.rb' + - 'lib/gitlab/instrumentation/**/*.rb' + +SidekiqLoadBalancing/WorkerDataConsistency: + Enabled: true + Include: + - 'app/workers/**/*' + - 'ee/app/workers/**/*' diff --git a/.rubocop_revert_ignores.txt b/.rubocop_revert_ignores.txt new file mode 100644 index 0000000000..e3c30ea9ba --- /dev/null +++ b/.rubocop_revert_ignores.txt @@ -0,0 +1,390 @@ +db/migrate/20211202041233_init_schema.rb +db/migrate/20211202094944_move_loose_fk_deleted_records_to_dynamic_schema.rb +db/migrate/20211202135508_add_index_on_packages_build_infos_package_id_pipeline_id.rb +db/migrate/20211203160952_add_updated_state_by_user_id_to_merge_request_reviewers.rb +db/migrate/20211203161149_add_index_to_merge_request_reviewers_updated_state_by_user_id.rb +db/migrate/20211203161840_add_updated_state_by_user_id_to_merge_request_assignees.rb +db/migrate/20211203161942_add_index_to_merge_request_assignees_updated_state_by_user_id.rb +db/migrate/20211204010826_add_index_snippets_on_project_id_and_title.rb +db/migrate/20211207154413_add_ci_runners_index_on_created_at_where_active_is_false.rb +db/migrate/20211207154414_add_ci_runners_index_on_contacted_at_where_active_is_false.rb +db/migrate/20211207165508_add_protected_environments_required_approval_count_check_constraint.rb +db/migrate/20211208111425_add_executor_type_column_to_ci_runners.rb +db/migrate/20211209230042_add_status_to_cluster_agent_tokens.rb +db/migrate/20211210025754_alter_constraint_of_phone.rb +db/migrate/20211210031721_change_user_details_phone_text_limit.rb +db/migrate/20211213130324_update_timelogs_spent_at_default.rb +db/migrate/20211213142344_add_settings_user_email_lookup_limit.rb +db/migrate/20211213154259_add_status_to_packages_package_files.rb +db/migrate/20211213154704_add_status_index_to_packages_package_files.rb +db/migrate/20211214110307_remove_temp_index_from_vulnerability_occurrences.rb +db/migrate/20211215182006_update_application_settings_protected_paths.rb +db/migrate/20211216133107_add_cluster_agent_id_to_vulnerability_reads.rb +db/migrate/20211216134134_add_text_limit_to_vulnerability_reads_cluster_agent_id.rb +db/migrate/20211216135651_add_index_to_cluster_agent_id.rb +db/migrate/20211216220939_add_group_crm_settings.rb +db/migrate/20211217050753_remove_artifacts_archive_id_foreign_key_from_project_pages_metadata.rb +db/migrate/20211220174504_add_secure_scanning_actions_to_onboarding_progresses.rb +db/migrate/20211223125921_add_temp_index_to_members_state.rb +db/migrate/20211224112937_add_packages_cleanup_package_file_worker_capacity_to_application_settings.rb +db/migrate/20211224114539_add_packages_cleanup_package_file_worker_capacity_check_constraint_to_app_settings.rb +db/migrate/20220104174445_add_ci_runners_index_on_active_state.rb +db/migrate/20220105082217_add_verification_token_to_external_ae_destinations.rb +db/migrate/20220105121325_add_route_namespace_reference.rb +db/migrate/20220105152547_add_foreign_key_to_updated_state_by_user_id_to_merge_request_assignees.rb +db/migrate/20220105153149_add_foreign_key_to_updated_state_by_user_id_to_merge_request_reviewers.rb +db/migrate/20220106111958_add_insert_or_update_vulnerability_reads_trigger.rb +db/migrate/20220106112043_add_update_vulnerability_reads_trigger.rb +db/migrate/20220106112085_add_update_vulnerability_reads_location_trigger.rb +db/migrate/20220106141756_remove_lock_version_indexes.rb +db/migrate/20220106163326_add_has_issues_on_vulnerability_reads_trigger.rb +db/migrate/20220106230629_add_registry_migration_application_settings.rb +db/migrate/20220106230712_add_migration_columns_to_container_repositories.rb +db/migrate/20220107091629_add_route_namespace_index.rb +db/migrate/20220107165036_remove_note_id_index.rb +db/migrate/20220109133006_remove_ci_pipelines_lock_version_index.rb +db/migrate/20220110170953_create_ci_secure_files.rb +db/migrate/20220111095006_add_maintainer_note_to_ci_runners.rb +db/migrate/20220111095007_add_text_limit_to_ci_runners_maintainer_note.rb +db/migrate/20220111154950_add_token_expires_at_to_ci_runners.rb +db/migrate/20220111154951_add_index_to_ci_runners_token_expires_at.rb +db/migrate/20220111200254_remove_index_from_merge_requests.rb +db/migrate/20220112115413_add_requires_verification_to_user_details.rb +db/migrate/20220112205111_create_security_training_providers.rb +db/migrate/20220112232037_add_member_namespace_reference.rb +db/migrate/20220112232605_add_member_namespace_index.rb +db/migrate/20220113125401_create_security_trainings.rb +db/migrate/20220113135449_add_package_files_limit_to_application_settings.rb +db/migrate/20220113135924_add_application_settings_package_files_limit_constraints.rb +db/migrate/20220113164801_add_diffs_colors_to_user_preferences.rb +db/migrate/20220113164901_add_text_limit_to_user_preferences_diffs_colors.rb +db/migrate/20220114131950_add_status_only_index_to_packages_package_files.rb +db/migrate/20220117082611_add_text_limit_to_exad_verification_tokens.rb +db/migrate/20220117225936_add_text_limits_to_container_repositories_migration_columns.rb +db/migrate/20220118015633_add_url_text_to_issuable_metric_images.rb +db/migrate/20220118020026_add_url_text_limit_to_issuable_metric_images.rb +db/migrate/20220118141950_add_text_limit_to_container_registry_import_target_plan.rb +db/migrate/20220118155846_add_runner_token_expiration_interval_settings_to_application_settings.rb +db/migrate/20220118155847_add_runner_token_expiration_interval_settings_to_namespace_settings.rb +db/migrate/20220118155848_add_runner_token_expiration_interval_settings_to_project_settings.rb +db/migrate/20220119094023_add_unique_index_to_aed_verification_token.rb +db/migrate/20220119141407_add_dependency_proxy_size_to_namespace_statistics.rb +db/migrate/20220119144253_add_dependency_proxy_size_to_namespace_root_storage_statistics.rb +db/migrate/20220119170426_remove_temporary_vulnerability_occurrences_deduplication_index.rb +db/migrate/20220119220620_add_scan_method_to_dast_site_profile.rb +db/migrate/20220120033115_create_alert_management_alert_metric_images.rb +db/migrate/20220120085655_add_ci_runner_project_index_to_runner_id_and_project_id.rb +db/migrate/20220120160625_remove_temp_index_on_id_from_vulnerability_occurrences.rb +db/migrate/20220120211831_temp_index_for_group_namespace_member_backfill.rb +db/migrate/20220124200927_add_index_to_issues.rb +db/migrate/20220125084127_add_cleanup_attempts_to_loose_foreign_keys_deleted_records.rb +db/migrate/20220125122228_add_topics_non_private_projects_count.rb +db/migrate/20220125122725_add_topics_non_private_projects_count_index.rb +db/migrate/20220125230538_add_compound_index_on_project_id_and_id_for_vulnerabilities.rb +db/migrate/20220126191624_add_scan_file_path_to_dast_site_profile.rb +db/migrate/20220128093756_add_ecdsa_sk_and_ed25519_sk_key_restrictions_to_application_settings.rb +db/migrate/20220128194722_add_index_on_migration_state_and_import_done_at_to_container_repositories.rb +db/migrate/20220131135725_add_severity_level_to_merge_requests_compliance_violations.rb +db/migrate/20220131192643_add_show_diff_preview_in_email_to_project_settings.rb +db/migrate/20220201205300_remove_index_for_vulnerability_occurrences.rb +db/migrate/20220202034409_add_tmp_index_on_id_and_migration_state_to_container_repositories.rb +db/migrate/20220202115350_add_migration_indexes_to_container_repositories.rb +db/migrate/20220203074916_add_topics_lower_name_index.rb +db/migrate/20220203091304_fix_unique_packages_index_excluding_pending_destruction_status.rb +db/migrate/20220203123333_add_batched_migration_max_batch.rb +db/migrate/20220203133652_add_legacy_open_source_license_available_to_project_settings.rb +db/migrate/20220203134942_add_hidden_to_projects.rb +db/migrate/20220204093120_create_analytics_cycle_analytics_aggregations.rb +db/migrate/20220204154220_add_index_on_greatest_done_at_to_container_repositories.rb +db/migrate/20220204193000_add_integrations_encrypted_properties.rb +db/migrate/20220207083129_add_users_get_by_id_limit_to_application_setting.rb +db/migrate/20220208170445_add_not_valid_foreign_key_to_ci_builds_runner_id.rb +db/migrate/20220208171826_update_default_scan_method_of_dast_site_profile.rb +db/migrate/20220211090920_cleanup_populate_topics_non_private_projects_count.rb +db/migrate/20220211125954_create_related_epic_links.rb +db/migrate/20220211214605_update_integrations_trigger_type_new_on_insert_null_safe.rb +db/migrate/20220213100000_remove_integration_type_triggers.rb +db/migrate/20220215164709_update_application_settings_container_registry_exp_pol_worker_capacity_default.rb +db/migrate/20220216110023_create_saved_replies.rb +db/migrate/20220217100008_add_container_registry_expiration_policies_caching_to_application_settings.rb +db/migrate/20220217113058_add_status_to_status_check_responses.rb +db/migrate/20220221102333_change_maintainer_note_limit_in_ci_runner.rb +db/migrate/20220222072536_add_target_access_levels_to_broadcast_messages.rb +db/migrate/20220301002101_add_security_orchestration_policy_configuration_namespace_reference.rb +db/migrate/20220301003502_add_security_orchestration_policy_configuration_namespace_index.rb +db/migrate/20220301091503_add_not_null_constraint_to_security_policy_configurations.rb +db/migrate/20220301175104_change_security_orchestration_policy_configuration_project_index.rb +db/migrate/20220301175426_create_project_build_artifacts_size_refresh.rb +db/migrate/20220302110724_add_group_features_table.rb +db/migrate/20220303190555_add_comment_to_deployment_approvals.rb +db/migrate/20220303191047_add_text_limit_to_deployment_approvals_comment.rb +db/migrate/20220304052335_remove_not_null_contraint_on_title_from_sprints.rb +db/migrate/20220304061631_remove_unique_index_for_sprints_on_iterations_cadence_id_and_title.rb +db/migrate/20220304062107_remove_unique_index_for_sprints_on_project_id_and_title.rb +db/migrate/20220304152729_add_default_to_required_python_on_packages_pypi_metadata.rb +db/migrate/20220307203458_rename_user_email_lookup_limit_setting_to_search_settings.rb +db/migrate/20220309100648_add_time_to_restore_service_dora_metric.rb +db/migrate/20220310011530_add_database_grafana_config_to_application_settings.rb +db/migrate/20220310011613_add_text_limit_to_database_grafana_application_settings.rb +db/migrate/20220310101118_update_holder_name_limit.rb +db/migrate/20220314094841_add_package_registry_access_level_into_project_features.rb +db/migrate/20220314184009_create_protected_environment_approval_rules.rb +db/post_migrate/20211202145237_add_todos_project_and_id_index.rb +db/post_migrate/20211203091642_add_index_to_projects_on_marked_for_deletion_at.rb +db/post_migrate/20211206073851_create_calendar_events_index_synchronously.rb +db/post_migrate/20211206074547_remove_old_calendar_events_index.rb +db/post_migrate/20211206161271_add_indexes_for_primary_email_cleanup_migration.rb +db/post_migrate/20211207081708_add_index_ci_job_artifacts_project_id_file_type.rb +db/post_migrate/20211207090503_cleanup_first_mentioned_in_commit_jobs.rb +db/post_migrate/20211207125331_remove_jobs_for_recalculate_vulnerabilities_occurrences_uuid.rb +db/post_migrate/20211207135331_schedule_recalculate_uuid_on_vulnerabilities_occurrences4.rb +db/post_migrate/20211207173510_remove_extra_finding_evidence_tables_foreign_keys.rb +db/post_migrate/20211207173511_remove_extra_finding_evidence_tables.rb +db/post_migrate/20211208122200_schedule_backfill_ci_namespace_mirrors.rb +db/post_migrate/20211208122201_schedule_backfill_ci_project_mirrors.rb +db/post_migrate/20211208171402_reschedule_recalculate_vulnerability_finding_signatures_for_findings.rb +db/post_migrate/20211209093636_track_ci_job_artifacts_deletes.rb +db/post_migrate/20211209093828_track_users_deletes.rb +db/post_migrate/20211209093923_track_external_pull_requests_deletes.rb +db/post_migrate/20211209094222_track_merge_requests_deletes.rb +db/post_migrate/20211209103048_backfill_project_namespaces_for_group.rb +db/post_migrate/20211209203820_add_tmp_index_on_report_type.rb +db/post_migrate/20211209203821_convert_stringified_raw_metadata_hash_to_json.rb +db/post_migrate/20211210140000_add_temporary_static_object_token_index.rb +db/post_migrate/20211210140629_encrypt_static_object_token.rb +db/post_migrate/20211210173137_remove_vulnerability_finding_links_again.rb +db/post_migrate/20211213064821_add_agent_id_location_index_to_vulnerability_occurrences.rb +db/post_migrate/20211213102111_drop_ci_pipelines_mr_metrics_fk.rb +db/post_migrate/20211214012507_backfill_incident_issue_escalation_statuses.rb +db/post_migrate/20211215090620_schedule_update_timelogs_null_spent_at.rb +db/post_migrate/20211217120000_modify_kubernetes_resource_location_index_to_vulnerability_occurrences.rb +db/post_migrate/20211217145923_add_index_to_events_on_author_id_and_action_and_id.rb +db/post_migrate/20211217174331_mark_recalculate_finding_signatures_as_completed.rb +db/post_migrate/20211220064757_drop_temporary_indexes_for_primary_email_migration.rb +db/post_migrate/20211220120402_add_index_on_ci_pipelines_user_id_id_failure_reason.rb +db/post_migrate/20211220123956_update_invalid_member_states.rb +db/post_migrate/20211229023654_add_async_index_ci_job_artifacts_project_id_file_type.rb +db/post_migrate/20211230112517_remove_index_events_on_author_id_and_action_and_id.rb +db/post_migrate/20211230113031_add_index_to_events_on_author_id_and_id.rb +db/post_migrate/20220104060049_remove_foreign_key_ci_group_variables_group_id.rb +db/post_migrate/20220105020514_remove_ci_minutes_additional_packs_namespace_id_foreign_key_constraint.rb +db/post_migrate/20220106185033_remove_finding_evidence_summary.rb +db/post_migrate/20220106231518_remove_foreign_key_ci_daily_build_group_report_results_group_id.rb +db/post_migrate/20220106233459_remove_foreign_key_ci_pending_builds_namespace_id.rb +db/post_migrate/20220106235626_remove_foreign_key_ci_runner_namespaces_namespace_id.rb +db/post_migrate/20220107064845_populate_vulnerability_reads.rb +db/post_migrate/20220109134455_add_idx_vulnerability_occurrences_dedup_again.rb +db/post_migrate/20220110171049_schedule_populate_test_reports_issue_id.rb +db/post_migrate/20220110224913_remove_dast_scanner_profiles_builds_ci_build_id_fk.rb +db/post_migrate/20220110231420_remove_requirements_management_test_reports_build_id_fk.rb +db/post_migrate/20220110233155_remove_dast_site_profiles_builds_ci_build_id_fk.rb +db/post_migrate/20220111002756_remove_security_scans_build_id_fk.rb +db/post_migrate/20220111023852_index_cluster_agent_tokens_on_status.rb +db/post_migrate/20220111093534_remove_index_on_auto_stop_in.rb +db/post_migrate/20220111101421_remove_index_on_merge_request_id.rb +db/post_migrate/20220111102314_truncate_ci_mirror_tables.rb +db/post_migrate/20220111221516_remove_projects_ci_pending_builds_fk.rb +db/post_migrate/20220112015940_remove_projects_ci_running_builds_fk.rb +db/post_migrate/20220112090556_remove_cascade_delete_from_project_namespace_foreign_key.rb +db/post_migrate/20220112230642_remove_projects_ci_unit_tests_project_id_fk.rb +db/post_migrate/20220112232723_remove_projects_ci_daily_build_group_report_results_project_id_fk.rb +db/post_migrate/20220113013319_remove_projects_ci_freeze_periods_project_id_fk.rb +db/post_migrate/20220113014438_remove_projects_ci_resource_groups_project_id_fk.rb +db/post_migrate/20220113015830_remove_projects_ci_build_report_results_project_id_fk.rb +db/post_migrate/20220113035519_remove_users_ci_job_token_project_scope_links_added_by_id_fk.rb +db/post_migrate/20220113040447_remove_users_ci_pipeline_schedules_owner_id_fk.rb +db/post_migrate/20220113111440_schedule_fix_incorrect_max_seats_used.rb +db/post_migrate/20220114105525_add_index_on_projects_path.rb +db/post_migrate/20220116175851_add_author_index_to_design_management_versions.rb +db/post_migrate/20220117034056_remove_index_cluster_agent_tokens_on_agent_id_and_last_used_at.rb +db/post_migrate/20220118204039_self_managed_reschedule_recalculate_vulnerability_finding_signatures_for_findings.rb +db/post_migrate/20220119094503_populate_audit_event_streaming_verification_token.rb +db/post_migrate/20220119141736_remove_projects_ci_pipeline_artifacts_project_id_fk.rb +db/post_migrate/20220119143130_remove_projects_ci_sources_pipelines_source_project_id_fk.rb +db/post_migrate/20220119144458_remove_users_ci_triggers_owner_id_fk.rb +db/post_migrate/20220119151221_remove_merge_requests_ci_pipelines_merge_request_id_fk.rb +db/post_migrate/20220119153706_remove_ci_pipelines_merge_trains_pipeline_id_fk.rb +db/post_migrate/20220119154442_remove_ci_pipelines_merge_requests_head_pipeline_id_fk.rb +db/post_migrate/20220119193130_remove_ci_pipelines_dast_profiles_pipelines_ci_pipeline_id_fk.rb +db/post_migrate/20220119201340_remove_ci_pipelines_vulnerability_statistics_latest_pipeline_id_fk.rb +db/post_migrate/20220119203119_remove_ci_pipelines_vulnerability_occurrence_pipelines_pipeline_id_fk.rb +db/post_migrate/20220120094340_drop_position_from_security_findings.rb +db/post_migrate/20220120123700_add_tmp_index_routes_id_for_namespaces.rb +db/post_migrate/20220120123800_backfill_namespace_id_for_namespace_routes.rb +db/post_migrate/20220120211832_backfill_member_namespace_id_for_group_members.rb +db/post_migrate/20220121214752_remove_projects_ci_stages_project_id_fk.rb +db/post_migrate/20220121214753_re_remove_projects_ci_stages_project_id_fk.rb +db/post_migrate/20220121221651_remove_projects_ci_variables_project_id_fk.rb +db/post_migrate/20220124130028_dedup_runner_projects.rb +db/post_migrate/20220124145019_remove_projects_external_pull_requests_project_id_fk.rb +db/post_migrate/20220124151456_remove_projects_ci_triggers_project_id_fk.rb +db/post_migrate/20220124151949_remove_projects_ci_runner_projects_project_id_fk.rb +db/post_migrate/20220124152824_remove_projects_ci_subscriptions_projects_downstream_project_id_fk.rb +db/post_migrate/20220124153233_remove_projects_ci_job_artifacts_project_id_fk.rb +db/post_migrate/20220124153234_re_remove_projects_ci_job_artifacts_project_id_fk.rb +db/post_migrate/20220124180704_remove_projects_ci_builds_metadata_project_id_fk.rb +db/post_migrate/20220124180705_re_remove_projects_ci_builds_metadata_project_id_fk.rb +db/post_migrate/20220124184338_remove_projects_ci_subscriptions_projects_upstream_project_id_fk.rb +db/post_migrate/20220124204046_remove_projects_ci_sources_pipelines_project_id_fk.rb +db/post_migrate/20220124214131_remove_projects_ci_refs_project_id_fk.rb +db/post_migrate/20220124215857_remove_projects_ci_job_token_project_scope_links_source_project_id_fk.rb +db/post_migrate/20220124221521_remove_projects_ci_project_monthly_usages_project_id_fk.rb +db/post_migrate/20220125083520_remove_ci_pipelines_dast_site_profiles_pipelines_ci_pipeline_id_fk.rb +db/post_migrate/20220125084348_remove_ci_pipelines_vulnerability_feedback_pipeline_id_fk.rb +db/post_migrate/20220125122640_schedule_populate_topics_non_private_projects_count.rb +db/post_migrate/20220126201752_remove_projects_ci_job_token_project_scope_links_target_project_id_fk.rb +db/post_migrate/20220126202654_remove_projects_ci_sources_projects_source_project_id_fk.rb +db/post_migrate/20220126203421_remove_projects_ci_pipeline_schedules_project_id_fk.rb +db/post_migrate/20220126210021_remove_projects_ci_builds_project_id_fk.rb +db/post_migrate/20220126210022_re_remove_projects_ci_builds_project_id_fk.rb +db/post_migrate/20220126210657_remove_projects_ci_pipelines_project_id_fk.rb +db/post_migrate/20220127112243_add_index_to_merge_request_assignees_state.rb +db/post_migrate/20220127112412_add_index_to_merge_request_reviewers_state.rb +db/post_migrate/20220127132200_cleanup_backfill_ci_namespace_mirrors.rb +db/post_migrate/20220127132201_cleanup_backfill_ci_project_mirrors.rb +db/post_migrate/20220128103042_schedule_delete_invalid_epic_issues_revised.rb +db/post_migrate/20220128155251_remove_dangling_running_builds.rb +db/post_migrate/20220128155814_fix_approval_rules_code_owners_rule_type_index.rb +db/post_migrate/20220131000000_index_job_artifacts_on_trace_type_and_expire_at.rb +db/post_migrate/20220131000001_schedule_trace_expiry_removal.rb +db/post_migrate/20220201034731_remove_index_clusters_kubernetes_namespaces_on_cluster_id.rb +db/post_migrate/20220201141705_cleanup_background_migration_populate_test_reports_issue_id.rb +db/post_migrate/20220201173212_add_user_details_provisioning_index.rb +db/post_migrate/20220201193033_add_unique_index_to_vulnerability_finding_links_with_truncate.rb +db/post_migrate/20220202105733_delete_service_template_records.rb +db/post_migrate/20220204053655_remove_index_epic_issues_on_epic_id.rb +db/post_migrate/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size.rb +db/post_migrate/20220204110725_backfill_cycle_analytics_aggregations.rb +db/post_migrate/20220204194347_encrypt_integration_properties.rb +db/post_migrate/20220207080758_update_api_indexes_for_projects.rb +db/post_migrate/20220208080921_schedule_migrate_personal_namespace_project_maintainer_to_owner.rb +db/post_migrate/20220208115439_start_backfill_ci_queuing_tables.rb +db/post_migrate/20220209111007_add_partial_index_for_batching_active_cluster_image_scanning_vulnerabilities.rb +db/post_migrate/20220212120735_schedule_fix_incorrect_max_seats_used2.rb +db/post_migrate/20220213103859_remove_integrations_type.rb +db/post_migrate/20220213104531_create_indexes_on_integration_type_new.rb +db/post_migrate/20220215190020_rerun_convert_stringified_raw_metadata_hash_to_json.rb +db/post_migrate/20220216201949_remove_package_files_limit_from_application_settings.rb +db/post_migrate/20220217135229_validate_not_null_constraint_on_security_findings_uuid.rb +db/post_migrate/20220221214928_remove_show_diff_preview_in_email_column.rb +db/post_migrate/20220222191845_remove_not_null_constraint_for_security_scan_succeeded.rb +db/post_migrate/20220222192524_create_not_null_constraint_releases_tag.rb +db/post_migrate/20220222192525_remove_null_releases.rb +db/post_migrate/20220223112304_schedule_nullify_orphan_runner_id_on_ci_builds.rb +db/post_migrate/20220223124428_schedule_merge_topics_with_same_name.rb +db/post_migrate/20220224000000_async_build_trace_expire_at_index.rb +db/post_migrate/20220224204415_recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features.rb +db/post_migrate/20220225133705_cleanup_backfill_ci_queuing_tables.rb +db/post_migrate/20220301093434_backfill_all_project_namespaces.rb +db/post_migrate/20220302114046_backfill_group_features.rb +db/post_migrate/20220302203410_create_index_security_ci_builds_on_name_and_id_parser_with_new_features.rb +db/post_migrate/20220304165107_drop_partitioned_foreign_keys.rb +db/post_migrate/20220304201847_add_unique_index_on_security_training_providers.rb +db/post_migrate/20220305223212_add_security_training_providers.rb +db/post_migrate/20220307192534_create_index_for_remove_duplicate_project_tag_releases.rb +db/post_migrate/20220307192610_remove_duplicate_project_tag_releases.rb +db/post_migrate/20220307192645_remove_index_for_remove_duplicate_project_tag_releases.rb +db/post_migrate/20220307192725_create_unique_index_release_tag_project.rb +db/post_migrate/20220307203459_rename_user_email_lookup_limit_setting_to_search_settings_cleanup.rb +db/post_migrate/20220308000205_drop_old_index_security_ci_builds_on_name_and_id_parser_features.rb +db/post_migrate/20220308115219_schedule_reset_duplicate_ci_runners_token_encrypted_values_on_projects.rb +db/post_migrate/20220308115502_schedule_reset_duplicate_ci_runners_token_values_on_projects.rb +db/post_migrate/20220309084838_remove_external_pull_request_tracking.rb +db/post_migrate/20220309084954_remove_leftover_external_pull_request_deletions.rb +db/post_migrate/20220309154855_add_index_on_issues_closed_incidents.rb +db/post_migrate/20220310095341_add_async_index_ci_job_artifacts_project_id_created_at.rb +db/post_migrate/20220310134207_add_index_project_id_and_released_at_and_id_on_releases.rb +db/post_migrate/20220310141349_remove_dependency_list_usage_data_from_redis.rb +db/post_migrate/20220311010352_create_scan_id_and_id_index_on_security_findings.rb +db/post_migrate/20220314154235_migrate_vulnerability_approval_rules.rb +db/post_migrate/20220314162342_add_index_ci_job_artifacts_project_id_created_at.rb +ee/lib/ee/gitlab/background_migration/fix_incorrect_max_seats_used.rb +ee/lib/ee/gitlab/background_migration/populate_namespace_statistics.rb +ee/lib/ee/gitlab/background_migration/populate_test_reports_issue_id.rb +ee/lib/ee/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings.rb +ee/spec/lib/ee/gitlab/background_migration/fix_incorrect_max_seats_used_spec.rb +ee/spec/lib/ee/gitlab/background_migration/populate_namespace_statistics_spec.rb +ee/spec/lib/ee/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings_spec.rb +ee/spec/lib/gitlab/background_migration/populate_test_reports_issue_id_spec.rb +ee/spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb +ee/spec/migrations/async_build_trace_expire_at_index_spec.rb +ee/spec/migrations/schedule_delete_invalid_epic_issues_revised_spec.rb +ee/spec/migrations/schedule_populate_test_reports_issue_id_spec.rb +ee/spec/migrations/schedule_trace_expiry_removal_spec.rb +lib/gitlab/background_migration/backfill_ci_queuing_tables.rb +lib/gitlab/background_migration/backfill_integrations_type_new.rb +lib/gitlab/background_migration/encrypt_static_object_token.rb +lib/gitlab/background_migration/fix_incorrect_max_seats_used.rb +lib/gitlab/background_migration/merge_topics_with_same_name.rb +lib/gitlab/background_migration/populate_namespace_statistics.rb +lib/gitlab/background_migration/populate_test_reports_issue_id.rb +lib/gitlab/background_migration/populate_topics_non_private_projects_count.rb +lib/gitlab/background_migration/populate_vulnerability_reads.rb +lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid.rb +lib/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings.rb +lib/gitlab/background_migration/remove_all_trace_expiration_dates.rb +lib/gitlab/background_migration/update_timelogs_null_spent_at.rb +spec/lib/gitlab/background_migration/backfill_ci_queuing_tables_spec.rb +spec/lib/gitlab/background_migration/backfill_group_features_spec.rb +spec/lib/gitlab/background_migration/backfill_integrations_type_new_spec.rb +spec/lib/gitlab/background_migration/backfill_member_namespace_for_group_members_spec.rb +spec/lib/gitlab/background_migration/backfill_namespace_id_for_namespace_route_spec.rb +spec/lib/gitlab/background_migration/backfill_snippet_repositories_spec.rb +spec/lib/gitlab/background_migration/encrypt_integration_properties_spec.rb +spec/lib/gitlab/background_migration/encrypt_static_object_token_spec.rb +spec/lib/gitlab/background_migration/fix_vulnerability_occurrences_with_hashes_as_raw_metadata_spec.rb +spec/lib/gitlab/background_migration/merge_topics_with_same_name_spec.rb +spec/lib/gitlab/background_migration/migrate_personal_namespace_project_maintainer_to_owner_spec.rb +spec/lib/gitlab/background_migration/nullify_orphan_runner_id_on_ci_builds_spec.rb +spec/lib/gitlab/background_migration/populate_namespace_statistics_spec.rb +spec/lib/gitlab/background_migration/populate_topics_non_private_projects_count_spec.rb +spec/lib/gitlab/background_migration/populate_vulnerability_reads_spec.rb +spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb +spec/lib/gitlab/background_migration/remove_all_trace_expiration_dates_spec.rb +spec/lib/gitlab/background_migration/remove_vulnerability_finding_links_spec.rb +spec/lib/gitlab/background_migration/update_timelogs_null_spent_at_spec.rb +spec/migrations/20211203091642_add_index_to_projects_on_marked_for_deletion_at_spec.rb +spec/migrations/20211207125331_remove_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb +spec/migrations/20211207135331_schedule_recalculate_uuid_on_vulnerabilities_occurrences4_spec.rb +spec/migrations/20211210140629_encrypt_static_object_token_spec.rb +spec/migrations/20211214012507_backfill_incident_issue_escalation_statuses_spec.rb +spec/migrations/20211217174331_mark_recalculate_finding_signatures_as_completed_spec.rb +spec/migrations/20220106111958_add_insert_or_update_vulnerability_reads_trigger_spec.rb +spec/migrations/20220106112043_add_update_vulnerability_reads_trigger_spec.rb +spec/migrations/20220106112085_add_update_vulnerability_reads_location_trigger_spec.rb +spec/migrations/20220106163326_add_has_issues_on_vulnerability_reads_trigger_spec.rb +spec/migrations/20220107064845_populate_vulnerability_reads_spec.rb +spec/migrations/20220120094340_drop_position_from_security_findings_spec.rb +spec/migrations/20220124130028_dedup_runner_projects_spec.rb +spec/migrations/20220128155251_remove_dangling_running_builds_spec.rb +spec/migrations/20220128155814_fix_approval_rules_code_owners_rule_type_index_spec.rb +spec/migrations/20220202105733_delete_service_template_records_spec.rb +spec/migrations/20220204095121_backfill_namespace_statistics_with_dependency_proxy_size_spec.rb +spec/migrations/20220204194347_encrypt_integration_properties_spec.rb +spec/migrations/20220208080921_schedule_migrate_personal_namespace_project_maintainer_to_owner_spec.rb +spec/migrations/20220211214605_update_integrations_trigger_type_new_on_insert_null_safe_spec.rb +spec/migrations/20220213103859_remove_integrations_type_spec.rb +spec/migrations/20220222192524_create_not_null_constraint_releases_tag_spec.rb +spec/migrations/20220222192525_remove_null_releases_spec.rb +spec/migrations/20220223124428_schedule_merge_topics_with_same_name_spec.rb +spec/migrations/20220305223212_add_security_training_providers_spec.rb +spec/migrations/20220307192610_remove_duplicate_project_tag_releases_spec.rb +spec/migrations/20220309084954_remove_leftover_external_pull_request_deletions_spec.rb +spec/migrations/20220310141349_remove_dependency_list_usage_data_from_redis_spec.rb +spec/migrations/backfill_all_project_namespaces_spec.rb +spec/migrations/backfill_cycle_analytics_aggregations_spec.rb +spec/migrations/backfill_group_features_spec.rb +spec/migrations/backfill_member_namespace_id_for_group_members_spec.rb +spec/migrations/backfill_namespace_id_for_namespace_routes_spec.rb +spec/migrations/backfill_project_namespaces_for_group_spec.rb +spec/migrations/populate_audit_event_streaming_verification_token_spec.rb +spec/migrations/recreate_index_security_ci_builds_on_name_and_id_parser_with_new_features_spec.rb +spec/migrations/remove_not_null_contraint_on_title_from_sprints_spec.rb +spec/migrations/schedule_fix_incorrect_max_seats_used2_spec.rb +spec/migrations/schedule_fix_incorrect_max_seats_used_spec.rb +spec/migrations/schedule_update_timelogs_null_spent_at_spec.rb +spec/migrations/start_backfill_ci_queuing_tables_spec.rb +spec/migrations/update_application_settings_container_registry_exp_pol_worker_capacity_default_spec.rb +spec/migrations/update_application_settings_protected_paths_spec.rb +spec/migrations/update_default_scan_method_of_dast_site_profile_spec.rb +spec/migrations/update_invalid_member_states_spec.rb diff --git a/.rubocop_todo/background_migration/missing_dictionary_file.yml b/.rubocop_todo/background_migration/missing_dictionary_file.yml deleted file mode 100644 index c065a1ac3a..0000000000 --- a/.rubocop_todo/background_migration/missing_dictionary_file.yml +++ /dev/null @@ -1,4 +0,0 @@ ---- -# Grace period will be removed in https://gitlab.com/gitlab-org/gitlab/-/issues/395354 -BackgroundMigration/MissingDictionaryFile: - Details: grace period diff --git a/.rubocop_todo/fips/sha1.yml b/.rubocop_todo/fips/sha1.yml index a9637295ca..f39ca78fd8 100644 --- a/.rubocop_todo/fips/sha1.yml +++ b/.rubocop_todo/fips/sha1.yml @@ -30,7 +30,6 @@ Fips/SHA1: - 'ee/spec/lib/gitlab/ci/reports/security/locations/dast_spec.rb' - 'ee/spec/lib/gitlab/ci/reports/security/locations/dependency_scanning_spec.rb' - 'ee/spec/migrations/update_vulnerability_occurrences_location_spec.rb' - - 'ee/spec/models/merge_train_spec.rb' - 'ee/spec/models/resource_weight_event_spec.rb' - 'ee/spec/models/vulnerabilities/finding_signature_spec.rb' - 'ee/spec/models/vulnerabilities/finding_spec.rb' diff --git a/.rubocop_todo/gitlab/namespaced_class.yml b/.rubocop_todo/gitlab/namespaced_class.yml index d1257e3ffa..0ec0bc6686 100644 --- a/.rubocop_todo/gitlab/namespaced_class.yml +++ b/.rubocop_todo/gitlab/namespaced_class.yml @@ -199,7 +199,6 @@ Gitlab/NamespacedClass: - 'app/models/issue_email_participant.rb' - 'app/models/issue_link.rb' - 'app/models/issue_user_mention.rb' - - 'app/models/iteration.rb' - 'app/models/jira_connect_installation.rb' - 'app/models/jira_connect_subscription.rb' - 'app/models/jira_import_state.rb' @@ -864,7 +863,6 @@ Gitlab/NamespacedClass: - 'ee/app/finders/groups_with_templates_finder.rb' - 'ee/app/finders/iterations_finder.rb' - 'ee/app/finders/licenses_finder.rb' - - 'ee/app/finders/merge_trains_finder.rb' - 'ee/app/finders/productivity_analytics_finder.rb' - 'ee/app/finders/scim_finder.rb' - 'ee/app/finders/software_license_policies_finder.rb' @@ -877,6 +875,7 @@ Gitlab/NamespacedClass: - 'ee/app/models/approval_merge_request_rule.rb' - 'ee/app/models/approval_merge_request_rule_source.rb' - 'ee/app/models/approval_project_rule.rb' + - 'ee/app/models/approval_project_rules_user.rb' - 'ee/app/models/approval_project_rules_protected_branch.rb' - 'ee/app/models/approval_state.rb' - 'ee/app/models/approval_wrapped_any_approver_rule.rb' @@ -917,13 +916,13 @@ Gitlab/NamespacedClass: - 'ee/app/models/issuable_metric_image.rb' - 'ee/app/models/issuable_sla.rb' - 'ee/app/models/issuables_analytics.rb' + - 'ee/app/models/iteration.rb' - 'ee/app/models/iteration_note.rb' - 'ee/app/models/ldap_group_link.rb' - 'ee/app/models/ldap_key.rb' - 'ee/app/models/license.rb' - 'ee/app/models/merge_request_block.rb' - 'ee/app/models/merge_request_diff_detail.rb' - - 'ee/app/models/merge_train.rb' - 'ee/app/models/namespace_limit.rb' - 'ee/app/models/path_lock.rb' - 'ee/app/models/productivity_analytics.rb' @@ -972,6 +971,7 @@ Gitlab/NamespacedClass: - 'ee/app/presenters/epic_presenter.rb' - 'ee/app/presenters/iteration_presenter.rb' - 'ee/app/presenters/merge_request_approver_presenter.rb' + - 'ee/app/presenters/repository_presenter.rb' - 'ee/app/presenters/subscription_presenter.rb' - 'ee/app/presenters/vulnerability_presenter.rb' - 'ee/app/serializers/audit_event_entity.rb' diff --git a/.rubocop_todo/gitlab/no_code_coverage_comment.yml b/.rubocop_todo/gitlab/no_code_coverage_comment.yml index e37a970209..e97974a473 100644 --- a/.rubocop_todo/gitlab/no_code_coverage_comment.yml +++ b/.rubocop_todo/gitlab/no_code_coverage_comment.yml @@ -4,7 +4,6 @@ Gitlab/NoCodeCoverageComment: - 'app/models/integration.rb' - 'app/services/ci/job_artifacts/destroy_batch_service.rb' - 'app/workers/database/batched_background_migration/single_database_worker.rb' - - 'config/initializers/net_http_response_patch.rb' - 'ee/app/models/concerns/geo/replicable_model.rb' - 'ee/lib/gitlab/geo/replicator.rb' - 'lib/gitlab/auth/o_auth/session.rb' diff --git a/.rubocop_todo/gitlab/strong_memoize_attr.yml b/.rubocop_todo/gitlab/strong_memoize_attr.yml index 3ecc1ef6bf..21b8a2c9de 100644 --- a/.rubocop_todo/gitlab/strong_memoize_attr.yml +++ b/.rubocop_todo/gitlab/strong_memoize_attr.yml @@ -180,7 +180,7 @@ Gitlab/StrongMemoizeAttr: - 'app/services/ci/pipelines/hook_service.rb' - 'app/services/ci/queue/build_queue_service.rb' - 'app/services/ci/update_build_state_service.rb' - - 'app/services/clusters/agents/refresh_authorization_service.rb' + - 'app/services/clusters/agents/authorizations/ci_access/refresh_service.rb' - 'app/services/clusters/integrations/prometheus_health_check_service.rb' - 'app/services/concerns/alert_management/alert_processing.rb' - 'app/services/concerns/incident_management/settings.rb' @@ -229,7 +229,6 @@ Gitlab/StrongMemoizeAttr: - 'app/services/packages/cleanup/update_policy_service.rb' - 'app/services/packages/composer/create_package_service.rb' - 'app/services/packages/debian/extract_changes_metadata_service.rb' - - 'app/services/packages/debian/find_or_create_package_service.rb' - 'app/services/packages/debian/generate_distribution_key_service.rb' - 'app/services/packages/debian/generate_distribution_service.rb' - 'app/services/packages/debian/process_changes_service.rb' @@ -318,7 +317,7 @@ Gitlab/StrongMemoizeAttr: - 'ee/app/helpers/ee/preferences_helper.rb' - 'ee/app/helpers/ee/registrations_helper.rb' - 'ee/app/helpers/ee/timeboxes_helper.rb' - - 'ee/app/helpers/ee/trial_helper.rb' + - 'ee/app/helpers/trials_helper.rb' - 'ee/app/helpers/ee/welcome_helper.rb' - 'ee/app/helpers/license_monitoring_helper.rb' - 'ee/app/helpers/subscriptions_helper.rb' diff --git a/.rubocop_todo/layout/argument_alignment.yml b/.rubocop_todo/layout/argument_alignment.yml index 4c0f89e940..4fda4e8f2b 100644 --- a/.rubocop_todo/layout/argument_alignment.yml +++ b/.rubocop_todo/layout/argument_alignment.yml @@ -3,8 +3,6 @@ Layout/ArgumentAlignment: Details: grace period Exclude: - - 'app/finders/autocomplete/users_finder.rb' - - 'app/finders/group_descendants_finder.rb' - 'app/graphql/mutations/achievements/create.rb' - 'app/graphql/mutations/admin/sidekiq_queues/delete_jobs.rb' - 'app/graphql/mutations/alert_management/alerts/set_assignees.rb' @@ -522,27 +520,7 @@ Layout/ArgumentAlignment: - 'app/models/atlassian/identity.rb' - 'app/models/bulk_imports/configuration.rb' - 'app/models/bulk_imports/entity.rb' - - 'app/models/ci/build_trace_metadata.rb' - - 'app/models/ci/namespace_mirror.rb' - - 'app/models/ci/pipeline.rb' - - 'app/models/ci/project_mirror.rb' - - 'app/models/ci/ref.rb' - - 'app/models/ci/runner.rb' - - 'app/models/ci/runner_machine.rb' - - 'app/models/ci/running_build.rb' - - 'app/models/ci/stage.rb' - 'app/models/clusters/kubernetes_namespace.rb' - - 'app/models/concerns/bulk_member_access_load.rb' - - 'app/models/concerns/ci/metadatable.rb' - - 'app/models/concerns/discussion_on_diff.rb' - - 'app/models/concerns/group_descendant.rb' - - 'app/models/concerns/integrations/has_issue_tracker_fields.rb' - - 'app/models/concerns/issuable.rb' - - 'app/models/concerns/limitable.rb' - - 'app/models/concerns/mentionable/reference_regexes.rb' - - 'app/models/concerns/resolvable_discussion.rb' - - 'app/models/concerns/vulnerability_finding_helpers.rb' - - 'app/models/concerns/web_hooks/auto_disabling.rb' - 'app/models/container_repository.rb' - 'app/models/cycle_analytics/project_level_stage_adapter.rb' - 'app/models/deployment.rb' @@ -576,7 +554,6 @@ Layout/ArgumentAlignment: - 'app/models/packages/cleanup/policy.rb' - 'app/models/packages/conan/metadatum.rb' - 'app/models/packages/debian/file_entry.rb' - - 'app/models/packages/debian/file_metadatum.rb' - 'app/models/packages/package.rb' - 'app/models/packages/rpm/metadatum.rb' - 'app/models/pages_domain.rb' @@ -606,19 +583,6 @@ Layout/ArgumentAlignment: - 'app/models/webauthn_registration.rb' - 'app/models/wiki_page.rb' - 'app/models/work_item.rb' - - 'app/policies/project_snippet_policy.rb' - - 'app/serializers/build_details_entity.rb' - - 'app/serializers/environment_serializer.rb' - - 'app/serializers/error_tracking/detailed_error_entity.rb' - - 'app/serializers/fork_namespace_entity.rb' - - 'app/serializers/group_child_entity.rb' - - 'app/serializers/issue_board_entity.rb' - - 'app/serializers/issue_entity.rb' - - 'app/serializers/linked_issue_entity.rb' - - 'app/serializers/merge_request_metrics_helper.rb' - - 'app/serializers/rollout_status_entity.rb' - - 'app/serializers/stage_entity.rb' - - 'app/serializers/test_case_entity.rb' - 'app/services/ci/archive_trace_service.rb' - 'app/services/ci/ensure_stage_service.rb' - 'app/services/ci/list_config_variables_service.rb' @@ -644,7 +608,6 @@ Layout/ArgumentAlignment: - 'app/services/markdown_content_rewriter_service.rb' - 'app/services/members/base_service.rb' - 'app/services/members/create_service.rb' - - 'app/services/members/creator_service.rb' - 'app/services/merge_requests/build_service.rb' - 'app/services/merge_requests/ff_merge_service.rb' - 'app/services/merge_requests/merge_service.rb' @@ -664,13 +627,6 @@ Layout/ArgumentAlignment: - 'app/services/pages/migrate_from_legacy_storage_service.rb' - 'app/services/post_receive_service.rb' - 'app/services/preview_markdown_service.rb' - - 'app/services/projects/create_service.rb' - - 'app/services/projects/fork_service.rb' - - 'app/services/projects/hashed_storage/base_repository_service.rb' - - 'app/services/projects/import_service.rb' - - 'app/services/projects/lfs_pointers/lfs_download_link_list_service.rb' - - 'app/services/projects/overwrite_project_service.rb' - - 'app/services/projects/update_remote_mirror_service.rb' - 'app/services/protected_branches/api_service.rb' - 'app/services/protected_branches/legacy_api_create_service.rb' - 'app/services/quick_actions/interpret_service.rb' @@ -695,27 +651,11 @@ Layout/ArgumentAlignment: - 'app/services/webauthn/authenticate_service.rb' - 'app/services/work_items/create_service.rb' - 'app/validators/feature_flag_user_xids_validator.rb' - - 'app/workers/gitlab/github_import/stage/import_protected_branches_worker.rb' - - 'app/workers/gitlab/jira_import/stuck_jira_import_jobs_worker.rb' - - 'app/workers/packages/debian/process_package_file_worker.rb' - - 'app/workers/repository_update_remote_mirror_worker.rb' - - 'app/workers/run_pipeline_schedule_worker.rb' - - 'app/workers/stuck_export_jobs_worker.rb' - - 'app/workers/x509_issuer_crl_check_worker.rb' - 'config/application.rb' - 'config/initializers/hashie_mash_permitted_patch.rb' - 'config/initializers/rack_timeout.rb' - 'config/initializers/rest-client-hostname_override.rb' - 'config/initializers/zz_metrics.rb' - - 'config/routes.rb' - - 'config/routes/admin.rb' - - 'config/routes/group.rb' - - 'config/routes/profile.rb' - - 'config/routes/project.rb' - - 'config/routes/snippets.rb' - - 'config/routes/unmatched_project.rb' - - 'config/routes/uploads.rb' - - 'config/routes/user.rb' - 'db/migrate/20210901065504_add_index_on_name_and_id_to_public_groups.rb' - 'db/migrate/20210910014741_add_dependency_proxy_ttl_group_policy_worker_capacity_to_application_settings.rb' - 'db/migrate/20211111112639_add_fk_compliance_violations_merge_request.rb' @@ -853,8 +793,6 @@ Layout/ArgumentAlignment: - 'ee/app/components/namespaces/free_user_cap/base_alert_component.rb' - 'ee/app/components/namespaces/free_user_cap/enforcement_at_limit_alert_component.rb' - 'ee/app/components/namespaces/free_user_cap/shared.rb' - - 'ee/app/finders/security/findings_finder.rb' - - 'ee/app/finders/security/training_providers/base_url_finder.rb' - 'ee/app/graphql/ee/mutations/alert_management/http_integration/create.rb' - 'ee/app/graphql/ee/mutations/alert_management/http_integration/update.rb' - 'ee/app/graphql/ee/mutations/boards/issues/issue_move_list.rb' @@ -1141,9 +1079,6 @@ Layout/ArgumentAlignment: - 'ee/app/mailers/ee/emails/projects.rb' - 'ee/app/mailers/emails/namespace_storage_usage_mailer.rb' - 'ee/app/models/approval_wrapped_rule.rb' - - 'ee/app/models/ci/minutes/notification.rb' - - 'ee/app/models/concerns/ee/protected_ref_access.rb' - - 'ee/app/models/concerns/geo/verifiable_replicator.rb' - 'ee/app/models/dast/pre_scan_verification.rb' - 'ee/app/models/deployments/approval.rb' - 'ee/app/models/ee/application_setting.rb' @@ -1194,8 +1129,6 @@ Layout/ArgumentAlignment: - 'ee/app/models/vulnerabilities/read.rb' - 'ee/app/models/vulnerabilities/stat_diff.rb' - 'ee/app/models/vulnerabilities/statistic.rb' - - 'ee/app/serializers/blocking_merge_request_entity.rb' - - 'ee/app/serializers/dashboard_environment_entity.rb' - 'ee/app/services/analytics/devops_adoption/enabled_namespaces/bulk_find_or_create_service.rb' - 'ee/app/services/audit_events/streaming/event_type_filters/destroy_service.rb' - 'ee/app/services/auto_merge/merge_train_service.rb' @@ -1234,16 +1167,6 @@ Layout/ArgumentAlignment: - 'ee/app/services/vulnerabilities/starboard_vulnerability_resolve_service.rb' - 'ee/app/services/vulnerability_feedback/create_service.rb' - 'ee/app/services/vulnerability_merge_request_links/create_service.rb' - - 'ee/app/workers/audit_events/audit_event_streaming_worker.rb' - - 'ee/app/workers/audit_events/user_impersonation_event_create_worker.rb' - - 'ee/app/workers/concerns/geo/base_registry_sync_worker.rb' - - 'ee/app/workers/elastic/project_transfer_worker.rb' - - 'ee/app/workers/groups/export_memberships_worker.rb' - - 'ee/config/routes/admin.rb' - - 'ee/config/routes/group.rb' - - 'ee/config/routes/project.rb' - - 'ee/config/routes/uploads.rb' - - 'ee/config/routes/user.rb' - 'ee/db/geo/migrate/20180405074130_add_partial_index_project_repository_verification.rb' - 'ee/db/geo/post_migrate/20210217020154_add_unique_index_on_container_repository_registry.rb' - 'ee/db/geo/post_migrate/20210217020156_add_unique_index_on_terraform_state_version_registry.rb' @@ -1280,7 +1203,6 @@ Layout/ArgumentAlignment: - 'ee/lib/ee/api/entities/member.rb' - 'ee/lib/ee/api/entities/merge_request_approval_state.rb' - 'ee/lib/ee/api/entities/merge_request_approval_state_rule.rb' - - 'ee/lib/ee/api/entities/merge_train.rb' - 'ee/lib/ee/api/entities/project.rb' - 'ee/lib/ee/api/groups.rb' - 'ee/lib/ee/api/helpers/issues_helpers.rb' @@ -1313,33 +1235,7 @@ Layout/ArgumentAlignment: - 'ee/lib/gitlab/zoekt/search_results.rb' - 'ee/lib/slack/block_kit/app_home_opened.rb' - 'ee/spec/components/billing/plan_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/notification_alert_component_spec.rb' - 'ee/spec/components/namespaces/storage/pre_enforcement_alert_component_spec.rb' - - 'ee/spec/controllers/ee/admin/sessions_controller_spec.rb' - - 'ee/spec/controllers/ee/search_controller_spec.rb' - - 'ee/spec/controllers/groups/analytics/cycle_analytics/stages_controller_spec.rb' - - 'ee/spec/controllers/groups/epic_boards_controller_spec.rb' - - 'ee/spec/controllers/groups/group_members_controller_spec.rb' - - 'ee/spec/controllers/groups/omniauth_callbacks_controller_spec.rb' - - 'ee/spec/controllers/groups/sso_controller_spec.rb' - - 'ee/spec/controllers/operations_controller_spec.rb' - - 'ee/spec/controllers/projects/approver_groups_controller_spec.rb' - - 'ee/spec/controllers/projects/approvers_controller_spec.rb' - - 'ee/spec/controllers/projects/branches_controller_spec.rb' - - 'ee/spec/controllers/projects/environments_controller_spec.rb' - - 'ee/spec/controllers/projects/imports_controller_spec.rb' - - 'ee/spec/controllers/projects/iterations_controller_spec.rb' - - 'ee/spec/controllers/projects/merge_requests/creations_controller_spec.rb' - - 'ee/spec/controllers/projects/protected_environments_controller_spec.rb' - - 'ee/spec/controllers/projects/repositories_controller_spec.rb' - - 'ee/spec/controllers/projects/security/sast_configuration_controller_spec.rb' - - 'ee/spec/controllers/projects/security/scanned_resources_controller_spec.rb' - - 'ee/spec/controllers/projects/settings/ci_cd_controller_spec.rb' - - 'ee/spec/controllers/projects/settings/merge_requests_controller_spec.rb' - - 'ee/spec/controllers/projects/settings/operations_controller_spec.rb' - - 'ee/spec/controllers/projects/vulnerability_feedback_controller_spec.rb' - - 'ee/spec/controllers/projects_controller_spec.rb' - - 'ee/spec/controllers/trials_controller_spec.rb' - 'ee/spec/elastic/migrate/20220119120500_populate_commit_permissions_in_main_index_spec.rb' - 'ee/spec/elastic/migrate/20221124090600_add_namespace_ancestry_ids_to_original_index_mapping_spec.rb' - 'ee/spec/elastic/migrate/20221221110300_backfill_traversal_ids_to_blobs_and_wiki_blobs_spec.rb' @@ -1399,14 +1295,6 @@ Layout/ArgumentAlignment: - 'ee/spec/features/search/elastic/group_search_spec.rb' - 'ee/spec/features/security/project/discover_spec.rb' - 'ee/spec/features/users/identity_verification_spec.rb' - - 'ee/spec/finders/boards/milestones_finder_spec.rb' - - 'ee/spec/finders/epics/cross_hierarchy_ancestors_finder_spec.rb' - - 'ee/spec/finders/epics/cross_hierarchy_children_finder_spec.rb' - - 'ee/spec/finders/geo/project_registry_status_finder_spec.rb' - - 'ee/spec/finders/merge_requests_finder_spec.rb' - - 'ee/spec/finders/security/pipeline_vulnerabilities_finder_spec.rb' - - 'ee/spec/finders/security/training_providers/kontra_url_finder_spec.rb' - - 'ee/spec/finders/security/training_providers/secure_code_warrior_url_finder_spec.rb' - 'ee/spec/frontend/fixtures/dora/metrics.rb' - 'ee/spec/frontend/fixtures/oncall_schedule.rb' - 'ee/spec/graphql/ee/mutations/boards/lists/create_spec.rb' @@ -1430,14 +1318,6 @@ Layout/ArgumentAlignment: - 'ee/spec/graphql/types/pipeline_security_report_finding_type_spec.rb' - 'ee/spec/graphql/types/project_type_spec.rb' - 'ee/spec/graphql/types/vulnerability_type_spec.rb' - - 'ee/spec/helpers/billing_plans_helper_spec.rb' - - 'ee/spec/helpers/ee/integrations_helper_spec.rb' - - 'ee/spec/helpers/ee/namespace_user_cap_reached_alert_helper_spec.rb' - - 'ee/spec/helpers/ee/namespaces_helper_spec.rb' - - 'ee/spec/helpers/ee/trial_registration_helper_spec.rb' - - 'ee/spec/helpers/license_monitoring_helper_spec.rb' - - 'ee/spec/helpers/projects_helper_spec.rb' - - 'ee/spec/helpers/vulnerabilities_helper_spec.rb' - 'ee/spec/lib/analytics/group_activity_calculator_spec.rb' - 'ee/spec/lib/analytics/merge_request_metrics_calculator_spec.rb' - 'ee/spec/lib/api/entities/protected_environments/approval_rule_for_summary_spec.rb' @@ -1446,7 +1326,6 @@ Layout/ArgumentAlignment: - 'ee/spec/lib/audit/external_status_check_changes_auditor_spec.rb' - 'ee/spec/lib/audit/group_merge_request_approval_setting_changes_auditor_spec.rb' - 'ee/spec/lib/audit/protected_branches_changes_auditor_spec.rb' - - 'ee/spec/lib/banzai/filter/cross_project_issuable_information_filter_spec.rb' - 'ee/spec/lib/ee/api/entities/analytics/code_review/merge_request_spec.rb' - 'ee/spec/lib/ee/api/entities/geo_node_status_spec.rb' - 'ee/spec/lib/ee/gitlab/analytics/cycle_analytics/aggregated/base_query_builder_spec.rb' @@ -1520,16 +1399,7 @@ Layout/ArgumentAlignment: - 'ee/spec/lib/incident_management/oncall_shift_generator_spec.rb' - 'ee/spec/lib/omni_auth/strategies/group_saml_spec.rb' - 'ee/spec/mailers/notify_spec.rb' - - 'ee/spec/migrations/update_vulnerability_occurrences_location_spec.rb' - 'ee/spec/models/approval_wrapped_code_owner_rule_spec.rb' - - 'ee/spec/models/ci/bridge_spec.rb' - - 'ee/spec/models/ci/build_spec.rb' - - 'ee/spec/models/concerns/elastic/issue_spec.rb' - - 'ee/spec/models/concerns/elastic/merge_request_spec.rb' - - 'ee/spec/models/concerns/elastic/note_spec.rb' - - 'ee/spec/models/concerns/elastic/project_spec.rb' - - 'ee/spec/models/concerns/elastic/repository_spec.rb' - - 'ee/spec/models/concerns/elastic/snippet_spec.rb' - 'ee/spec/models/dast/pre_scan_verification_step_spec.rb' - 'ee/spec/models/dast_site_profile_spec.rb' - 'ee/spec/models/deployments/approval_summary_spec.rb' @@ -1565,13 +1435,6 @@ Layout/ArgumentAlignment: - 'ee/spec/models/upload_spec.rb' - 'ee/spec/models/vulnerabilities/finding_spec.rb' - 'ee/spec/models/vulnerabilities/state_transition_spec.rb' - - 'ee/spec/policies/dast/pre_scan_verification_policy_spec.rb' - - 'ee/spec/policies/dast/pre_scan_verification_step_policy_spec.rb' - - 'ee/spec/policies/deployment_policy_spec.rb' - - 'ee/spec/policies/epic_policy_spec.rb' - - 'ee/spec/policies/merge_request_policy_spec.rb' - - 'ee/spec/policies/vulnerabilities/feedback_policy_spec.rb' - - 'ee/spec/policies/vulnerabilities/merge_request_link_policy_spec.rb' - 'ee/spec/requests/admin/impersonation_tokens_controller_spec.rb' - 'ee/spec/requests/api/analytics/product_analytics_spec.rb' - 'ee/spec/requests/api/analytics/project_deployment_frequency_spec.rb' @@ -1659,9 +1522,6 @@ Layout/ArgumentAlignment: - 'ee/spec/requests/registrations/project_creation_spec.rb' - 'ee/spec/requests/smartcard_controller_spec.rb' - 'ee/spec/requests/users/identity_verification_controller_spec.rb' - - 'ee/spec/routing/webhook_routes_spec.rb' - - 'ee/spec/serializers/pipeline_serializer_spec.rb' - - 'ee/spec/serializers/vulnerabilities/finding_entity_spec.rb' - 'ee/spec/services/analytics/cycle_analytics/aggregator_service_spec.rb' - 'ee/spec/services/analytics/devops_adoption/enabled_namespaces/find_or_create_service_spec.rb' - 'ee/spec/services/app_sec/dast/profiles/create_associations_service_spec.rb' @@ -1711,10 +1571,6 @@ Layout/ArgumentAlignment: - 'ee/spec/services/issue_feature_flags/list_service_spec.rb' - 'ee/spec/services/merge_request_approval_settings/update_service_spec.rb' - 'ee/spec/services/merge_requests/build_service_spec.rb' - - 'ee/spec/services/projects/create_service_spec.rb' - - 'ee/spec/services/projects/gitlab_projects_import_service_spec.rb' - - 'ee/spec/services/projects/prometheus/alerts/notify_service_spec.rb' - - 'ee/spec/services/projects/restore_service_spec.rb' - 'ee/spec/services/protected_environments/create_service_spec.rb' - 'ee/spec/services/protected_environments/update_service_spec.rb' - 'ee/spec/services/quick_actions/interpret_service_spec.rb' @@ -1745,41 +1601,16 @@ Layout/ArgumentAlignment: - 'ee/spec/services/vulnerabilities/user_notes_count_service_spec.rb' - 'ee/spec/services/vulnerability_feedback/create_service_spec.rb' - 'ee/spec/services/vulnerability_merge_request_links/create_service_spec.rb' - - 'ee/spec/support/helpers/vulnerability_helpers.rb' - 'ee/spec/support/shared_examples/audit/audit_event_type_stream_shared_examples.rb' - 'ee/spec/support/shared_examples/controllers/analytics/cycle_analytics/shared_stage_shared_examples.rb' - 'ee/spec/support/shared_examples/features/credentials_inventory_shared_examples.rb' - 'ee/spec/support/shared_examples/features/password_complexity_shared_examples.rb' - - 'ee/spec/support/shared_examples/finders/security/findings_finder_shared_examples.rb' - 'ee/spec/support/shared_examples/graphql/dast/dast_profile_schedule_shared_examples.rb' - 'ee/spec/support/shared_examples/graphql/mutations/set_multiple_assignees_shared_examples.rb' - 'ee/spec/support/shared_examples/services/geo/geo_request_service_shared_examples.rb' - 'ee/spec/support/shared_examples/services/search_service_shared_examples.rb' - 'ee/spec/support/shared_examples/services/vulnerabilities/removes_dismissal_feedback_from_associated_findings_shared_example.rb' - 'ee/spec/tasks/gitlab/elastic_rake_spec.rb' - - 'ee/spec/views/admin/application_settings/_deletion_protection_settings.html.haml_spec.rb' - - 'ee/spec/views/admin/application_settings/_git_abuse_rate_limit.html.haml_spec.rb' - - 'ee/spec/views/admin/dashboard/index.html.haml_spec.rb' - - 'ee/spec/views/admin/identities/index.html.haml_spec.rb' - - 'ee/spec/views/groups/edit.html.haml_spec.rb' - - 'ee/spec/views/projects/edit.html.haml_spec.rb' - - 'ee/spec/workers/adjourned_group_deletion_worker_spec.rb' - - 'ee/spec/workers/analytics/cycle_analytics/consistency_worker_spec.rb' - - 'ee/spec/workers/analytics/devops_adoption/create_snapshot_worker_spec.rb' - - 'ee/spec/workers/audit_events/audit_event_streaming_worker_spec.rb' - - 'ee/spec/workers/concerns/update_orchestration_policy_configuration_spec.rb' - - 'ee/spec/workers/create_github_webhook_worker_spec.rb' - - 'ee/spec/workers/ee/projects/inactive_projects_deletion_cron_worker_spec.rb' - - 'ee/spec/workers/ee/repository_check/batch_worker_spec.rb' - - 'ee/spec/workers/elastic_index_bulk_cron_worker_spec.rb' - - 'ee/spec/workers/elastic_index_initial_bulk_cron_worker_spec.rb' - - 'ee/spec/workers/epics/update_cached_metadata_worker_spec.rb' - - 'ee/spec/workers/namespaces/sync_namespace_name_worker_spec.rb' - - 'ee/spec/workers/pull_mirrors/reenable_configuration_worker_spec.rb' - - 'ee/spec/workers/repository_update_mirror_worker_spec.rb' - - 'ee/spec/workers/security/orchestration_policy_rule_schedule_namespace_worker_spec.rb' - - 'ee/spec/workers/security/orchestration_policy_rule_schedule_worker_spec.rb' - - 'ee/spec/workers/security/process_scan_result_policy_worker_spec.rb' - 'lib/api/access_requests.rb' - 'lib/api/admin/plan_limits.rb' - 'lib/api/alert_management_alerts.rb' @@ -1895,11 +1726,6 @@ Layout/ArgumentAlignment: - 'lib/api/users.rb' - 'lib/api/v3/github.rb' - 'lib/backup/manager.rb' - - 'lib/banzai/filter/references/abstract_reference_filter.rb' - - 'lib/banzai/filter/references/commit_range_reference_filter.rb' - - 'lib/banzai/filter/references/commit_reference_filter.rb' - - 'lib/banzai/filter/references/merge_request_reference_filter.rb' - - 'lib/banzai/filter/references/snippet_reference_filter.rb' - 'lib/bitbucket_server/connection.rb' - 'lib/gem_extensions/active_record/disable_joins/associations/association_scope.rb' - 'lib/generators/gitlab/partitioning/foreign_keys_generator.rb' @@ -2086,8 +1912,8 @@ Layout/ArgumentAlignment: - 'qa/qa/specs/features/browser_ui/3_create/repository/push_over_http_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/source_editor/source_editor_toolbar_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide_new/add_new_directory_in_web_ide_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/add_file_template_spec.rb' - 'qa/qa/specs/features/browser_ui/4_verify/pipeline/pipeline_with_image_pull_policy_spec.rb' - 'qa/qa/specs/features/browser_ui/5_package/package_registry/maven/maven_project_level_spec.rb' - 'qa/qa/specs/features/browser_ui/5_package/package_registry/nuget/nuget_project_level_spec.rb' @@ -2272,16 +2098,6 @@ Layout/ArgumentAlignment: - 'spec/features/users/email_verification_on_login_spec.rb' - 'spec/features/users/login_spec.rb' - 'spec/features/users/overview_spec.rb' - - 'spec/finders/alert_management/alerts_finder_spec.rb' - - 'spec/finders/ci/pipelines_for_merge_request_finder_spec.rb' - - 'spec/finders/deployments_finder_spec.rb' - - 'spec/finders/group_descendants_finder_spec.rb' - - 'spec/finders/groups/accepting_group_transfers_finder_spec.rb' - - 'spec/finders/groups/accepting_project_transfers_finder_spec.rb' - - 'spec/finders/merge_requests_finder_spec.rb' - - 'spec/finders/notes_finder_spec.rb' - - 'spec/finders/snippets_finder_spec.rb' - - 'spec/finders/users_finder_spec.rb' - 'spec/frontend/fixtures/autocomplete.rb' - 'spec/frontend/fixtures/autocomplete_sources.rb' - 'spec/frontend/fixtures/environments.rb' @@ -2317,29 +2133,12 @@ Layout/ArgumentAlignment: - 'spec/graphql/types/project_type_spec.rb' - 'spec/graphql/types/root_storage_statistics_type_spec.rb' - 'spec/graphql/types/todo_type_spec.rb' - - 'spec/helpers/avatars_helper_spec.rb' - - 'spec/helpers/emoji_helper_spec.rb' - - 'spec/helpers/feature_flags_helper_spec.rb' - - 'spec/helpers/namespaces_helper_spec.rb' - - 'spec/helpers/notify_helper_spec.rb' - - 'spec/helpers/page_layout_helper_spec.rb' - - 'spec/helpers/routing/pseudonymization_helper_spec.rb' - - 'spec/helpers/storage_helper_spec.rb' - - 'spec/helpers/todos_helper_spec.rb' - - 'spec/helpers/users/callouts_helper_spec.rb' - - 'spec/helpers/users/group_callouts_helper_spec.rb' - - 'spec/helpers/visibility_level_helper_spec.rb' - 'spec/initializers/00_rails_disable_joins_spec.rb' - 'spec/initializers/secret_token_spec.rb' - 'spec/lib/api/every_api_endpoint_spec.rb' - 'spec/lib/atlassian/jira_connect/client_spec.rb' - - 'spec/lib/atlassian/jira_connect/serializers/feature_flag_entity_spec.rb' - 'spec/lib/backup/dump/postgres_spec.rb' - 'spec/lib/backup/manager_spec.rb' - - 'spec/lib/banzai/filter/kroki_filter_spec.rb' - - 'spec/lib/banzai/filter/references/design_reference_filter_spec.rb' - - 'spec/lib/banzai/filter/syntax_highlight_filter_spec.rb' - - 'spec/lib/banzai/reference_redactor_spec.rb' - 'spec/lib/bulk_imports/common/pipelines/lfs_objects_pipeline_spec.rb' - 'spec/lib/container_registry/blob_spec.rb' - 'spec/lib/container_registry/migration_spec.rb' @@ -2553,7 +2352,6 @@ Layout/ArgumentAlignment: - 'spec/lib/gitlab/suggestions/commit_message_spec.rb' - 'spec/lib/gitlab/suggestions/file_suggestion_spec.rb' - 'spec/lib/gitlab/suggestions/suggestion_set_spec.rb' - - 'spec/lib/gitlab/template/finders/global_template_finder_spec.rb' - 'spec/lib/gitlab/tracking/destinations/snowplow_spec.rb' - 'spec/lib/gitlab/usage/metrics/aggregates/sources/postgres_hll_spec.rb' - 'spec/lib/gitlab/usage/metrics/instrumentations/count_ci_internal_pipelines_metric_spec.rb' @@ -2575,67 +2373,12 @@ Layout/ArgumentAlignment: - 'spec/mailers/emails/merge_requests_spec.rb' - 'spec/mailers/emails/pipelines_spec.rb' - 'spec/mailers/notify_spec.rb' - - 'spec/migrations/20210918201050_remove_old_pending_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb' - - 'spec/migrations/20211110151350_schedule_drop_invalid_security_findings_spec.rb' - - 'spec/migrations/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb' - - 'spec/migrations/20211207125331_remove_jobs_for_recalculate_vulnerabilities_occurrences_uuid_spec.rb' - - 'spec/migrations/20220124130028_dedup_runner_projects_spec.rb' - - 'spec/migrations/20220128155251_remove_dangling_running_builds_spec.rb' - - 'spec/migrations/20220307192610_remove_duplicate_project_tag_releases_spec.rb' - - 'spec/migrations/20220310141349_remove_dependency_list_usage_data_from_redis_spec.rb' - - 'spec/migrations/20220324032250_migrate_shimo_confluence_service_category_spec.rb' - - 'spec/migrations/20220505044348_fix_automatic_iterations_cadences_start_date_spec.rb' - - 'spec/migrations/20220601152916_add_user_id_and_ip_address_success_index_to_authentication_events_spec.rb' - - 'spec/migrations/20220606082910_add_tmp_index_for_potentially_misassociated_vulnerability_occurrences_spec.rb' - - 'spec/migrations/20220607082910_add_sync_tmp_index_for_potentially_misassociated_vulnerability_occurrences_spec.rb' - - 'spec/migrations/20220801155858_schedule_disable_legacy_open_source_licence_for_recent_public_projects_spec.rb' - - 'spec/migrations/20220816163444_update_start_date_for_iterations_cadences_spec.rb' - - 'spec/migrations/20220819153725_add_vulnerability_advisory_foreign_key_to_sbom_vulnerable_component_versions_spec.rb' - - 'spec/migrations/20220819162852_add_sbom_component_version_foreign_key_to_sbom_vulnerable_component_versions_spec.rb' - - 'spec/migrations/20220921144258_remove_orphan_group_token_users_spec.rb' - - 'spec/migrations/20220928225711_schedule_update_ci_pipeline_artifacts_locked_status_spec.rb' - - 'spec/migrations/20221018050323_add_objective_and_keyresult_to_work_item_types_spec.rb' - - 'spec/migrations/20221215151822_schedule_backfill_releases_author_id_spec.rb' - - 'spec/migrations/20221221110733_remove_temp_index_for_project_statistics_upload_size_migration_spec.rb' - - 'spec/migrations/20230105172120_sync_new_amount_used_with_amount_used_on_ci_namespace_monthly_usages_table_spec.rb' - - 'spec/migrations/cleanup_backfill_integrations_enable_ssl_verification_spec.rb' - - 'spec/migrations/cleanup_vulnerability_state_transitions_with_same_from_state_to_state_spec.rb' - - 'spec/migrations/delete_migrate_shared_vulnerability_scanners_spec.rb' - - 'spec/migrations/schedule_backfill_draft_status_on_merge_requests_corrected_regex_spec.rb' - - 'spec/migrations/schedule_fixing_security_scan_statuses_spec.rb' - - 'spec/migrations/schedule_purging_stale_security_scans_spec.rb' - - 'spec/migrations/schedule_recalculate_vulnerability_finding_signatures_for_findings_spec.rb' - - 'spec/migrations/set_email_confirmation_setting_before_removing_send_user_confirmation_email_column_spec.rb' - - 'spec/migrations/start_backfill_ci_queuing_tables_spec.rb' - - 'spec/migrations/sync_new_amount_used_for_ci_namespace_monthly_usages_spec.rb' - - 'spec/migrations/sync_new_amount_used_for_ci_project_monthly_usages_spec.rb' - - 'spec/migrations/update_application_settings_container_registry_exp_pol_worker_capacity_default_spec.rb' - - 'spec/migrations/update_application_settings_protected_paths_spec.rb' - - 'spec/migrations/update_default_scan_method_of_dast_site_profile_spec.rb' - 'spec/models/analytics/cycle_analytics/stage_spec.rb' - 'spec/models/application_setting_spec.rb' - - 'spec/models/ci/bridge_spec.rb' - - 'spec/models/ci/build_dependencies_spec.rb' - - 'spec/models/ci/build_metadata_spec.rb' - - 'spec/models/ci/build_spec.rb' - - 'spec/models/ci/build_trace_chunk_spec.rb' - - 'spec/models/ci/group_spec.rb' - - 'spec/models/ci/pipeline_spec.rb' - - 'spec/models/ci/processable_spec.rb' - - 'spec/models/ci/ref_spec.rb' - - 'spec/models/ci/secure_file_spec.rb' - - 'spec/models/ci/stage_spec.rb' - 'spec/models/clusters/cluster_spec.rb' - 'spec/models/clusters/kubernetes_namespace_spec.rb' - 'spec/models/clusters/platforms/kubernetes_spec.rb' - 'spec/models/commit_spec.rb' - - 'spec/models/concerns/ci/partitionable/switch_spec.rb' - - 'spec/models/concerns/ci/partitionable_spec.rb' - - 'spec/models/concerns/ci/track_environment_usage_spec.rb' - - 'spec/models/concerns/database_event_tracking_spec.rb' - - 'spec/models/concerns/deployment_platform_spec.rb' - - 'spec/models/concerns/issuable_spec.rb' - - 'spec/models/concerns/token_authenticatable_spec.rb' - 'spec/models/container_repository_spec.rb' - 'spec/models/deployment_spec.rb' - 'spec/models/design_management/version_spec.rb' @@ -2680,11 +2423,6 @@ Layout/ArgumentAlignment: - 'spec/models/user_detail_spec.rb' - 'spec/models/user_spec.rb' - 'spec/models/wiki_page/meta_spec.rb' - - 'spec/policies/ci/build_policy_spec.rb' - - 'spec/policies/ci/pipeline_policy_spec.rb' - - 'spec/policies/ci/pipeline_schedule_policy_spec.rb' - - 'spec/policies/environment_policy_spec.rb' - - 'spec/policies/group_policy_spec.rb' - 'spec/requests/admin/applications_controller_spec.rb' - 'spec/requests/admin/impersonation_tokens_controller_spec.rb' - 'spec/requests/api/access_requests_spec.rb' @@ -2836,21 +2574,6 @@ Layout/ArgumentAlignment: - 'spec/rubocop/cop/rspec/env_mocking_spec.rb' - 'spec/rubocop/cop/style/regexp_literal_mixed_preserve_spec.rb' - 'spec/rubocop/formatter/graceful_formatter_spec.rb' - - 'spec/serializers/build_details_entity_spec.rb' - - 'spec/serializers/ci/downloadable_artifact_entity_spec.rb' - - 'spec/serializers/ci/job_entity_spec.rb' - - 'spec/serializers/ci/pipeline_entity_spec.rb' - - 'spec/serializers/discussion_diff_file_entity_spec.rb' - - 'spec/serializers/environment_entity_spec.rb' - - 'spec/serializers/environment_serializer_spec.rb' - - 'spec/serializers/group_child_entity_spec.rb' - - 'spec/serializers/issue_board_entity_spec.rb' - - 'spec/serializers/issue_entity_spec.rb' - - 'spec/serializers/merge_request_metrics_helper_spec.rb' - - 'spec/serializers/merge_request_poll_cached_widget_entity_spec.rb' - - 'spec/serializers/merge_request_poll_widget_entity_spec.rb' - - 'spec/serializers/pipeline_details_entity_spec.rb' - - 'spec/serializers/pipeline_serializer_spec.rb' - 'spec/services/application_settings/update_service_spec.rb' - 'spec/services/authorized_project_update/find_records_due_for_refresh_service_spec.rb' - 'spec/services/auto_merge/base_service_spec.rb' @@ -2935,23 +2658,6 @@ Layout/ArgumentAlignment: - 'spec/services/pages/migrate_legacy_storage_to_deployment_service_spec.rb' - 'spec/services/pages_domains/obtain_lets_encrypt_certificate_service_spec.rb' - 'spec/services/preview_markdown_service_spec.rb' - - 'spec/services/projects/all_merge_requests_count_service_spec.rb' - - 'spec/services/projects/container_repository/gitlab/cleanup_tags_service_spec.rb' - - 'spec/services/projects/container_repository/third_party/cleanup_tags_service_spec.rb' - - 'spec/services/projects/create_service_spec.rb' - - 'spec/services/projects/destroy_service_spec.rb' - - 'spec/services/projects/fork_service_spec.rb' - - 'spec/services/projects/group_links/create_service_spec.rb' - - 'spec/services/projects/group_links/destroy_service_spec.rb' - - 'spec/services/projects/group_links/update_service_spec.rb' - - 'spec/services/projects/hashed_storage/migration_service_spec.rb' - - 'spec/services/projects/lfs_pointers/lfs_link_service_spec.rb' - - 'spec/services/projects/open_merge_requests_count_service_spec.rb' - - 'spec/services/projects/prometheus/alerts/notify_service_spec.rb' - - 'spec/services/projects/transfer_service_spec.rb' - - 'spec/services/projects/unlink_fork_service_spec.rb' - - 'spec/services/projects/update_pages_service_spec.rb' - - 'spec/services/projects/update_service_spec.rb' - 'spec/services/protected_branches/api_service_spec.rb' - 'spec/services/push_event_payload_service_spec.rb' - 'spec/services/quick_actions/interpret_service_spec.rb' @@ -2976,30 +2682,18 @@ Layout/ArgumentAlignment: - 'spec/services/work_items/task_list_reference_removal_service_spec.rb' - 'spec/services/work_items/widgets/description_service/update_service_spec.rb' - 'spec/sidekiq/cron/job_gem_dependency_spec.rb' - - 'spec/support/helpers/api_internal_base_helpers.rb' - - 'spec/support/helpers/board_helpers.rb' - - 'spec/support/helpers/ci/source_pipeline_helpers.rb' - - 'spec/support/helpers/feature_flag_helpers.rb' - - 'spec/support/helpers/graphql_helpers.rb' - - 'spec/support/helpers/stub_object_storage.rb' - - 'spec/support/helpers/workhorse_helpers.rb' - 'spec/support/import_export/export_file_helper.rb' - 'spec/support/redis/redis_shared_examples.rb' - 'spec/support/shared_contexts/bulk_imports_requests_shared_context.rb' - 'spec/support/shared_contexts/design_management_shared_contexts.rb' - - 'spec/support/shared_contexts/finders/issues_finder_shared_contexts.rb' - - 'spec/support/shared_contexts/finders/merge_requests_finder_shared_contexts.rb' - - 'spec/support/shared_contexts/finders/work_items_finder_shared_contexts.rb' - 'spec/support/shared_contexts/merge_request_create_shared_context.rb' - 'spec/support/shared_contexts/merge_request_edit_shared_context.rb' - 'spec/support/shared_contexts/merge_requests_allowing_collaboration_shared_context.rb' - 'spec/support/shared_contexts/requests/api/graphql/releases_and_group_releases_shared_context.rb' - - 'spec/support/shared_contexts/services/projects/container_repository/delete_tags_service_shared_context.rb' - 'spec/support/shared_examples/controllers/snippets_sort_order_shared_examples.rb' - 'spec/support/shared_examples/controllers/wiki_actions_shared_examples.rb' - 'spec/support/shared_examples/features/search/redacted_search_results_shared_examples.rb' - 'spec/support/shared_examples/features/wiki/user_views_wiki_page_shared_examples.rb' - - 'spec/support/shared_examples/finders/issues_finder_shared_examples.rb' - 'spec/support/shared_examples/graphql/members_shared_examples.rb' - 'spec/support/shared_examples/graphql/mutation_shared_examples.rb' - 'spec/support/shared_examples/graphql/mutations/set_assignees_shared_examples.rb' @@ -3013,11 +2707,6 @@ Layout/ArgumentAlignment: - 'spec/support/shared_examples/lib/sentry/client_shared_examples.rb' - 'spec/support/shared_examples/models/chat_integration_shared_examples.rb' - 'spec/support/shared_examples/models/clusters/prometheus_client_shared.rb' - - 'spec/support/shared_examples/models/concerns/auto_disabling_hooks_shared_examples.rb' - - 'spec/support/shared_examples/models/concerns/cascading_namespace_setting_shared_examples.rb' - - 'spec/support/shared_examples/models/concerns/integrations/slack_mattermost_notifier_shared_examples.rb' - - 'spec/support/shared_examples/models/concerns/timebox_shared_examples.rb' - - 'spec/support/shared_examples/models/concerns/unstoppable_hooks_shared_examples.rb' - 'spec/support/shared_examples/models/diff_note_after_commit_shared_examples.rb' - 'spec/support/shared_examples/models/member_shared_examples.rb' - 'spec/support/shared_examples/observability/csp_shared_examples.rb' @@ -3034,7 +2723,6 @@ Layout/ArgumentAlignment: - 'spec/support/shared_examples/requests/api/time_tracking_shared_examples.rb' - 'spec/support/shared_examples/requests/graphql_shared_examples.rb' - 'spec/support/shared_examples/requests/rack_attack_shared_examples.rb' - - 'spec/support/shared_examples/serializers/diff_file_entity_shared_examples.rb' - 'spec/support/shared_examples/views/pipeline_status_changes_email.rb' - 'spec/tasks/cache/clear/redis_spec.rb' - 'spec/tasks/gitlab/cleanup_rake_spec.rb' @@ -3043,67 +2731,4 @@ Layout/ArgumentAlignment: - 'spec/tasks/gitlab/sidekiq_rake_spec.rb' - 'spec/tooling/danger/sidekiq_queues_spec.rb' - 'spec/tooling/graphql/docs/renderer_spec.rb' - - 'spec/uploaders/attachment_uploader_spec.rb' - - 'spec/uploaders/avatar_uploader_spec.rb' - - 'spec/uploaders/ci/pipeline_artifact_uploader_spec.rb' - - 'spec/uploaders/dependency_proxy/file_uploader_spec.rb' - - 'spec/uploaders/design_management/design_v432x230_uploader_spec.rb' - - 'spec/uploaders/external_diff_uploader_spec.rb' - - 'spec/uploaders/file_uploader_spec.rb' - - 'spec/uploaders/job_artifact_uploader_spec.rb' - - 'spec/uploaders/lfs_object_uploader_spec.rb' - - 'spec/uploaders/packages/composer/cache_uploader_spec.rb' - - 'spec/uploaders/packages/debian/component_file_uploader_spec.rb' - - 'spec/uploaders/packages/debian/distribution_release_file_uploader_spec.rb' - - 'spec/uploaders/packages/package_file_uploader_spec.rb' - - 'spec/uploaders/packages/rpm/repository_file_uploader_spec.rb' - - 'spec/uploaders/pages/deployment_uploader_spec.rb' - - 'spec/uploaders/personal_file_uploader_spec.rb' - - 'spec/views/admin/application_settings/_ci_cd.html.haml_spec.rb' - - 'spec/views/admin/application_settings/_repository_check.html.haml_spec.rb' - - 'spec/views/ci/status/_badge.html.haml_spec.rb' - - 'spec/views/ci/status/_icon.html.haml_spec.rb' - - 'spec/views/devise/shared/_signup_box.html.haml_spec.rb' - - 'spec/views/notify/autodevops_disabled_email.text.erb_spec.rb' - - 'spec/views/notify/pipeline_failed_email.text.erb_spec.rb' - - 'spec/views/profiles/keys/_key.html.haml_spec.rb' - - 'spec/views/projects/commit/_commit_box.html.haml_spec.rb' - - 'spec/views/projects/edit.html.haml_spec.rb' - - 'spec/views/projects/settings/merge_requests/show.html.haml_spec.rb' - - 'spec/views/projects/tags/index.html.haml_spec.rb' - - 'spec/views/shared/milestones/_issuables.html.haml_spec.rb' - - 'spec/views/shared/runners/_runner_details.html.haml_spec.rb' - - 'spec/workers/authorized_project_update/user_refresh_over_user_range_worker_spec.rb' - - 'spec/workers/build_hooks_worker_spec.rb' - - 'spec/workers/build_queue_worker_spec.rb' - - 'spec/workers/ci/job_artifacts/track_artifact_report_worker_spec.rb' - - 'spec/workers/concerns/worker_context_spec.rb' - - 'spec/workers/deployments/hooks_worker_spec.rb' - - 'spec/workers/design_management/new_version_worker_spec.rb' - - 'spec/workers/every_sidekiq_worker_spec.rb' - - 'spec/workers/integrations/irker_worker_spec.rb' - - 'spec/workers/jira_connect/sync_branch_worker_spec.rb' - - 'spec/workers/jira_connect/sync_builds_worker_spec.rb' - - 'spec/workers/jira_connect/sync_deployments_worker_spec.rb' - - 'spec/workers/jira_connect/sync_feature_flags_worker_spec.rb' - - 'spec/workers/jira_connect/sync_merge_request_worker_spec.rb' - - 'spec/workers/jira_connect/sync_project_worker_spec.rb' - - 'spec/workers/merge_requests/delete_source_branch_worker_spec.rb' - - 'spec/workers/merge_requests/update_head_pipeline_worker_spec.rb' - - 'spec/workers/namespaces/root_statistics_worker_spec.rb' - - 'spec/workers/object_pool/destroy_worker_spec.rb' - - 'spec/workers/pipeline_hooks_worker_spec.rb' - - 'spec/workers/pipeline_metrics_worker_spec.rb' - - 'spec/workers/process_commit_worker_spec.rb' - - 'spec/workers/projects/inactive_projects_deletion_cron_worker_spec.rb' - - 'spec/workers/projects/inactive_projects_deletion_notification_worker_spec.rb' - - 'spec/workers/rebase_worker_spec.rb' - - 'spec/workers/remote_mirror_notification_worker_spec.rb' - - 'spec/workers/remove_expired_members_worker_spec.rb' - - 'spec/workers/remove_unaccepted_member_invites_worker_spec.rb' - - 'spec/workers/remove_unreferenced_lfs_objects_worker_spec.rb' - - 'spec/workers/repository_update_remote_mirror_worker_spec.rb' - - 'spec/workers/run_pipeline_schedule_worker_spec.rb' - - 'spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb' - - 'spec/workers/web_hook_worker_spec.rb' - 'tooling/danger/suggestor.rb' diff --git a/.rubocop_todo/layout/empty_line_after_magic_comment.yml b/.rubocop_todo/layout/empty_line_after_magic_comment.yml index c96a0f4c0f..0f6447df6a 100644 --- a/.rubocop_todo/layout/empty_line_after_magic_comment.yml +++ b/.rubocop_todo/layout/empty_line_after_magic_comment.yml @@ -282,13 +282,6 @@ Layout/EmptyLineAfterMagicComment: - 'ee/lib/gitlab/cidr.rb' - 'ee/lib/quality/seeders/vulnerabilities.rb' - 'ee/spec/components/billing/plan_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/enforcement_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/enforcement_at_limit_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/non_owner_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/non_owner_notification_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/notification_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/usage_quota_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/usage_quota_trial_alert_component_spec.rb' - 'ee/spec/components/namespaces/storage/limit_alert_component_spec.rb' - 'ee/spec/components/namespaces/storage/pre_enforcement_alert_component_spec.rb' - 'ee/spec/components/namespaces/storage/project_pre_enforcement_alert_component_spec.rb' @@ -813,8 +806,6 @@ Layout/EmptyLineAfterMagicComment: - 'spec/services/packages/debian/extract_changes_metadata_service_spec.rb' - 'spec/services/packages/debian/extract_deb_metadata_service_spec.rb' - 'spec/services/packages/debian/parse_debian822_service_spec.rb' - - 'spec/services/packages/debian/process_changes_service_spec.rb' - - 'spec/services/packages/debian/process_package_file_service_spec.rb' - 'spec/services/packages/helm/extract_file_metadata_service_spec.rb' - 'spec/services/packages/helm/process_file_service_spec.rb' - 'spec/services/packages/maven/create_package_service_spec.rb' @@ -850,7 +841,7 @@ Layout/EmptyLineAfterMagicComment: - 'spec/services/wikis/create_attachment_service_spec.rb' - 'spec/support/fips.rb' - 'spec/support/generate-seed-repo-rb' - - 'spec/support/graphql/fake_query_type.rb' + - 'spec/support/helpers/graphql/fake_query_type.rb' - 'spec/support/helpers/fake_webauthn_device.rb' - 'spec/support/helpers/features/access_token_helpers.rb' - 'spec/support/helpers/features/iteration_helpers.rb' diff --git a/.rubocop_todo/layout/first_hash_element_indentation.yml b/.rubocop_todo/layout/first_hash_element_indentation.yml index 71a32b64c5..fed5e18589 100644 --- a/.rubocop_todo/layout/first_hash_element_indentation.yml +++ b/.rubocop_todo/layout/first_hash_element_indentation.yml @@ -46,7 +46,6 @@ Layout/FirstHashElementIndentation: - 'ee/app/graphql/mutations/iterations/update.rb' - 'ee/app/helpers/ee/geo_helper.rb' - 'ee/app/helpers/ee/groups/group_members_helper.rb' - - 'ee/app/helpers/ee/trial_helper.rb' - 'ee/app/models/ee/list.rb' - 'ee/app/services/app_sec/dast/profiles/update_service.rb' - 'ee/app/services/elastic/cluster_reindexing_service.rb' @@ -151,7 +150,7 @@ Layout/FirstHashElementIndentation: - 'qa/qa/specs/features/api/1_manage/migration/gitlab_migration_release_spec.rb' - 'qa/qa/specs/features/api/3_create/repository/commit_to_templated_project_spec.rb' - 'qa/qa/specs/features/api/5_package/container_registry_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_web_ide_from_diff_tab_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/open_web_ide_from_diff_tab_spec.rb' - 'qa/qa/specs/features/browser_ui/5_package/container_registry/container_registry_spec.rb' - 'qa/qa/specs/features/browser_ui/5_package/container_registry/online_garbage_collection_spec.rb' - 'qa/qa/specs/features/browser_ui/5_package/dependency_proxy/dependency_proxy_spec.rb' @@ -186,7 +185,6 @@ Layout/FirstHashElementIndentation: - 'spec/controllers/projects/web_ide_terminals_controller_spec.rb' - 'spec/controllers/projects_controller_spec.rb' - 'spec/factories/ci/builds.rb' - - 'spec/factories/packages/debian/file_metadatum.rb' - 'spec/frontend/fixtures/autocomplete_sources.rb' - 'spec/graphql/types/ci/detailed_status_type_spec.rb' - 'spec/helpers/groups/observability_helper_spec.rb' diff --git a/.rubocop_todo/layout/line_continuation_spacing.yml b/.rubocop_todo/layout/line_continuation_spacing.yml index 08b0f5498a..0c256bce42 100644 --- a/.rubocop_todo/layout/line_continuation_spacing.yml +++ b/.rubocop_todo/layout/line_continuation_spacing.yml @@ -56,7 +56,6 @@ Layout/LineContinuationSpacing: - 'ee/lib/ee/gitlab/ci/pipeline/quota/size.rb' - 'ee/lib/ee/gitlab/git_access.rb' - 'ee/lib/tasks/gitlab/geo.rake' - - 'ee/spec/components/namespaces/free_user_cap/usage_quota_trial_alert_component_spec.rb' - 'ee/spec/controllers/groups/group_members_controller_spec.rb' - 'ee/spec/controllers/projects/security/configuration_controller_spec.rb' - 'ee/spec/features/admin/admin_emails_spec.rb' @@ -142,8 +141,6 @@ Layout/LineContinuationSpacing: - 'rubocop/cop/migration/background_migrations.rb' - 'rubocop/cop/performance/ar_exists_and_present_blank.rb' - 'rubocop/cop/redis_queue_usage.rb' - - 'scripts/create-pipeline-failure-incident.rb' - - 'scripts/generate-failed-pipeline-slack-message.rb' - 'scripts/qa/testcases-check' - 'spec/controllers/concerns/controller_with_cross_project_access_check_spec.rb' - 'spec/features/issues/create_issue_for_single_discussion_in_merge_request_spec.rb' diff --git a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml index 1cd22cb3e1..06baecba0f 100644 --- a/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml +++ b/.rubocop_todo/layout/line_end_string_concatenation_indentation.yml @@ -84,12 +84,6 @@ Layout/LineEndStringConcatenationIndentation: - 'ee/lib/gitlab/manual_quarterly_co_term_banner.rb' - 'ee/lib/slack/block_kit/app_home_opened.rb' - 'ee/lib/tasks/gitlab/geo.rake' - - 'ee/spec/components/namespaces/free_user_cap/enforcement_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/enforcement_at_limit_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/non_owner_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/notification_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/usage_quota_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/usage_quota_trial_alert_component_spec.rb' - 'ee/spec/controllers/admin/licenses_controller_spec.rb' - 'ee/spec/controllers/groups/group_members_controller_spec.rb' - 'ee/spec/controllers/projects/security/configuration_controller_spec.rb' @@ -244,8 +238,6 @@ Layout/LineEndStringConcatenationIndentation: - 'rubocop/cop/rspec/have_gitlab_http_status.rb' - 'rubocop/cop/sidekiq_api_usage.rb' - 'rubocop/cop/user_admin.rb' - - 'scripts/create-pipeline-failure-incident.rb' - - 'scripts/generate-failed-pipeline-slack-message.rb' - 'scripts/lib/glfm/parse_examples.rb' - 'scripts/lib/glfm/update_example_snapshots.rb' - 'scripts/lib/glfm/update_specification.rb' diff --git a/.rubocop_todo/layout/line_length.yml b/.rubocop_todo/layout/line_length.yml index cc2252ce57..ad0272376a 100644 --- a/.rubocop_todo/layout/line_length.yml +++ b/.rubocop_todo/layout/line_length.yml @@ -105,7 +105,7 @@ Layout/LineLength: - 'app/controllers/users_controller.rb' - 'app/finders/analytics/cycle_analytics/stage_finder.rb' - 'app/finders/ci/runners_finder.rb' - - 'app/finders/clusters/agent_authorizations_finder.rb' + - 'app/finders/clusters/agents/authorizations/ci_access/finder.rb' - 'app/finders/group_descendants_finder.rb' - 'app/finders/group_members_finder.rb' - 'app/finders/group_projects_finder.rb' @@ -507,6 +507,7 @@ Layout/LineLength: - 'app/services/ci/runners/register_runner_service.rb' - 'app/services/ci/runners/unregister_runner_service.rb' - 'app/services/clusters/agent_tokens/create_service.rb' + - 'app/services/clusters/agents/authorizations/ci_access/refresh_service.rb' - 'app/services/clusters/agents/delete_service.rb' - 'app/services/clusters/build_kubernetes_namespace_service.rb' - 'app/services/clusters/integrations/create_service.rb' @@ -932,7 +933,6 @@ Layout/LineLength: - 'ee/app/controllers/projects/security/policies_controller.rb' - 'ee/app/controllers/projects/security/vulnerabilities/notes_controller.rb' - 'ee/app/controllers/subscriptions_controller.rb' - - 'ee/app/controllers/trials_controller.rb' - 'ee/app/enums/vulnerabilities/dismissal_reason_enum.rb' - 'ee/app/finders/compliance_management/merge_requests/compliance_violations_finder.rb' - 'ee/app/finders/incident_management/escalation_rules_finder.rb' @@ -1042,10 +1042,8 @@ Layout/LineLength: - 'ee/app/helpers/ee/projects_helper.rb' - 'ee/app/helpers/ee/search_helper.rb' - 'ee/app/helpers/ee/subscribable_banner_helper.rb' - - 'ee/app/helpers/ee/trial_helper.rb' - 'ee/app/helpers/epics_helper.rb' - 'ee/app/helpers/gitlab_subscriptions/upcoming_reconciliation_helper.rb' - - 'ee/app/helpers/groups/feature_discovery_moments_helper.rb' - 'ee/app/helpers/groups/security_features_helper.rb' - 'ee/app/helpers/groups/sso_helper.rb' - 'ee/app/helpers/license_helper.rb' @@ -1092,7 +1090,6 @@ Layout/LineLength: - 'ee/app/models/ee/group.rb' - 'ee/app/models/ee/integrations/jira.rb' - 'ee/app/models/ee/issue.rb' - - 'ee/app/models/ee/iteration.rb' - 'ee/app/models/ee/key.rb' - 'ee/app/models/ee/lfs_object.rb' - 'ee/app/models/ee/list.rb' @@ -1123,6 +1120,7 @@ Layout/LineLength: - 'ee/app/models/incident_management/oncall_rotation.rb' - 'ee/app/models/integrations/github.rb' - 'ee/app/models/issuable_sla.rb' + - 'ee/app/models/iteration.rb' - 'ee/app/models/iterations/cadence.rb' - 'ee/app/models/license.rb' - 'ee/app/models/merge_requests/compliance_violation.rb' @@ -1378,6 +1376,7 @@ Layout/LineLength: - 'ee/lib/api/resource_iteration_events.rb' - 'ee/lib/api/status_checks.rb' - 'ee/lib/api/vulnerability_issue_links.rb' + - 'ee/lib/banzai/filter/references/iteration_reference_filter.rb' - 'ee/lib/ee/api/deployments.rb' - 'ee/lib/ee/api/entities/application_setting.rb' - 'ee/lib/ee/api/entities/dependency.rb' @@ -1404,7 +1403,6 @@ Layout/LineLength: - 'ee/lib/ee/api/merge_request_approvals.rb' - 'ee/lib/ee/api/merge_requests.rb' - 'ee/lib/ee/api/namespaces.rb' - - 'ee/lib/ee/banzai/filter/references/iteration_reference_filter.rb' - 'ee/lib/ee/gitlab/analytics/cycle_analytics/aggregated/base_query_builder.rb' - 'ee/lib/ee/gitlab/analytics/cycle_analytics/data_collector.rb' - 'ee/lib/ee/gitlab/analytics/cycle_analytics/stage_events.rb' @@ -1543,7 +1541,6 @@ Layout/LineLength: - 'ee/spec/controllers/operations_controller_spec.rb' - 'ee/spec/controllers/projects/analytics/cycle_analytics/summary_controller_spec.rb' - 'ee/spec/controllers/projects/audit_events_controller_spec.rb' - - 'ee/spec/controllers/projects/dependencies_controller_spec.rb' - 'ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb' - 'ee/spec/controllers/projects/integrations/zentao/issues_controller_spec.rb' - 'ee/spec/controllers/projects/issues_controller_spec.rb' @@ -1601,7 +1598,6 @@ Layout/LineLength: - 'ee/spec/features/groups/analytics/cycle_analytics/multiple_value_streams_spec.rb' - 'ee/spec/features/groups/audit_events_spec.rb' - 'ee/spec/features/groups/billing_spec.rb' - - 'ee/spec/features/groups/feature_discovery_moments_spec.rb' - 'ee/spec/features/groups/group_roadmap_spec.rb' - 'ee/spec/features/groups/group_settings_spec.rb' - 'ee/spec/features/groups/groups_security_credentials_spec.rb' @@ -2042,7 +2038,7 @@ Layout/LineLength: - 'ee/spec/models/ci/minutes/namespace_monthly_usage_spec.rb' - 'ee/spec/models/ci/minutes/project_monthly_usage_spec.rb' - 'ee/spec/models/ci/pipeline_spec.rb' - - 'ee/spec/models/concerns/ee/clusters/agents/authorization_config_scopes_spec.rb' + - 'ee/spec/models/concerns/ee/clusters/agents/authorizations/ci_access/config_scopes_spec.rb' - 'ee/spec/models/concerns/ee/issuable_spec.rb' - 'ee/spec/models/concerns/ee/noteable_spec.rb' - 'ee/spec/models/concerns/ee/project_security_scanners_information_spec.rb' @@ -2076,7 +2072,6 @@ Layout/LineLength: - 'ee/spec/models/ee/group_spec.rb' - 'ee/spec/models/ee/incident_management/project_incident_management_setting_spec.rb' - 'ee/spec/models/ee/integrations/jira_spec.rb' - - 'ee/spec/models/ee/iteration_spec.rb' - 'ee/spec/models/ee/iterations/cadence_spec.rb' - 'ee/spec/models/ee/lfs_object_spec.rb' - 'ee/spec/models/ee/merge_request_diff_spec.rb' @@ -2115,12 +2110,12 @@ Layout/LineLength: - 'ee/spec/models/integrations/chat_message/vulnerability_message_spec.rb' - 'ee/spec/models/issuable_sla_spec.rb' - 'ee/spec/models/issue_spec.rb' + - 'ee/spec/models/iteration_spec.rb' - 'ee/spec/models/license_spec.rb' - 'ee/spec/models/member_spec.rb' - 'ee/spec/models/merge_request_spec.rb' - 'ee/spec/models/merge_requests/compliance_violation_spec.rb' - 'ee/spec/models/merge_requests/external_status_check_spec.rb' - - 'ee/spec/models/merge_train_spec.rb' - 'ee/spec/models/namespace_setting_spec.rb' - 'ee/spec/models/note_spec.rb' - 'ee/spec/models/packages/package_file_spec.rb' @@ -2608,10 +2603,8 @@ Layout/LineLength: - 'ee/spec/views/admin/application_settings/general.html.haml_spec.rb' - 'ee/spec/views/admin/dashboard/index.html.haml_spec.rb' - 'ee/spec/views/compliance_management/compliance_framework/_project_settings.html.haml_spec.rb' - - 'ee/spec/views/groups/feature_discovery_moments/advanced_features_dashboard.html.haml_spec.rb' - 'ee/spec/views/groups/security/discover/show.html.haml_spec.rb' - 'ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb' - - 'ee/spec/views/layouts/header/help_dropdown/_cross_stage_fdm.html.haml_spec.rb' - 'ee/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb' - 'ee/spec/views/operations/environments.html.haml_spec.rb' - 'ee/spec/views/projects/security/discover/show.html.haml_spec.rb' @@ -3297,12 +3290,11 @@ Layout/LineLength: - 'qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/snippet/create_project_snippet_with_multiple_files_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/snippet/share_snippet_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/add_new_directory_in_web_ide_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/create_first_file_in_web_ide_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/link_to_line_in_web_ide_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_fork_in_web_ide_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_web_ide_from_diff_tab_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/create_first_file_in_web_ide_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/link_to_line_in_web_ide_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/open_fork_in_web_ide_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/open_web_ide_from_diff_tab_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/review_merge_request_spec.rb' - 'qa/qa/specs/features/browser_ui/4_verify/ci_variable/pipeline_with_protected_variable_spec.rb' - 'qa/qa/specs/features/browser_ui/4_verify/pipeline/create_and_process_pipeline_spec.rb' - 'qa/qa/specs/features/browser_ui/4_verify/pipeline/include_local_config_file_paths_with_wildcard_spec.rb' @@ -3524,6 +3516,8 @@ Layout/LineLength: - 'spec/factories/ci/job_artifacts.rb' - 'spec/factories/ci/pipelines.rb' - 'spec/factories/ci/reports/codequality_degradations.rb' + - 'spec/factories/clusters/agents/authorizations/ci_access/group_authorizations.rb' + - 'spec/factories/clusters/agents/authorizations/ci_access/project_authorizations.rb' - 'spec/factories/container_repositories.rb' - 'spec/factories/dependency_proxy.rb' - 'spec/factories/deployments.rb' @@ -3534,7 +3528,6 @@ Layout/LineLength: - 'spec/factories/keys.rb' - 'spec/factories/namespaces.rb' - 'spec/factories/notes.rb' - - 'spec/factories/packages/debian/file_metadatum.rb' - 'spec/factories/packages/package_files.rb' - 'spec/factories/project_members.rb' - 'spec/factories/projects.rb' @@ -3753,6 +3746,7 @@ Layout/LineLength: - 'spec/finders/ci/pipelines_finder_spec.rb' - 'spec/finders/ci/pipelines_for_merge_request_finder_spec.rb' - 'spec/finders/ci/runners_finder_spec.rb' + - 'spec/finders/clusters/agents/authorizations/ci_access/finder_spec.rb' - 'spec/finders/clusters/agent_authorizations_finder_spec.rb' - 'spec/finders/clusters_finder_spec.rb' - 'spec/finders/deploy_tokens/tokens_finder_spec.rb' @@ -4579,7 +4573,7 @@ Layout/LineLength: - 'spec/models/concerns/cache_markdown_field_spec.rb' - 'spec/models/concerns/cacheable_attributes_spec.rb' - 'spec/models/concerns/ci/artifactable_spec.rb' - - 'spec/models/concerns/clusters/agents/authorization_config_scopes_spec.rb' + - 'spec/models/concerns/clusters/agents/authorizations/ci_access/config_scopes_spec.rb' - 'spec/models/concerns/deployment_platform_spec.rb' - 'spec/models/concerns/group_descendant_spec.rb' - 'spec/models/concerns/id_in_ordered_spec.rb' @@ -4667,7 +4661,6 @@ Layout/LineLength: - 'spec/models/packages/composer/metadatum_spec.rb' - 'spec/models/packages/conan/metadatum_spec.rb' - 'spec/models/packages/debian/file_entry_spec.rb' - - 'spec/models/packages/debian/file_metadatum_spec.rb' - 'spec/models/packages/debian/publication_spec.rb' - 'spec/models/packages/dependency_link_spec.rb' - 'spec/models/packages/dependency_spec.rb' @@ -5030,6 +5023,7 @@ Layout/LineLength: - 'spec/services/ci/test_failure_history_service_spec.rb' - 'spec/services/ci/unlock_artifacts_service_spec.rb' - 'spec/services/ci/update_pending_build_service_spec.rb' + - 'spec/services/clusters/agents/authorizations/ci_access/filter_service_spec.rb' - 'spec/services/clusters/create_service_spec.rb' - 'spec/services/clusters/integrations/prometheus_health_check_service_spec.rb' - 'spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb' @@ -5483,7 +5477,6 @@ Layout/LineLength: - 'spec/tooling/danger/product_intelligence_spec.rb' - 'spec/tooling/danger/project_helper_spec.rb' - 'spec/tooling/danger/sidekiq_queues_spec.rb' - - 'spec/tooling/danger/specs_spec.rb' - 'spec/tooling/lib/tooling/kubernetes_client_spec.rb' - 'spec/tooling/lib/tooling/test_map_generator_spec.rb' - 'spec/tooling/quality/test_level_spec.rb' @@ -5532,7 +5525,6 @@ Layout/LineLength: - 'spec/workers/authorized_project_update/project_recalculate_per_user_worker_spec.rb' - 'spec/workers/authorized_project_update/user_refresh_from_replica_worker_spec.rb' - 'spec/workers/auto_devops/disable_worker_spec.rb' - - 'spec/workers/background_migration/ci_database_worker_spec.rb' - 'spec/workers/build_success_worker_spec.rb' - 'spec/workers/bulk_import_worker_spec.rb' - 'spec/workers/bulk_imports/export_request_worker_spec.rb' @@ -5597,7 +5589,6 @@ Layout/LineLength: - 'spec/workers/todos_destroyer/confidential_issue_worker_spec.rb' - 'spec/workers/update_head_pipeline_for_merge_request_worker_spec.rb' - 'spec/workers/users/deactivate_dormant_users_worker_spec.rb' - - 'tooling/bin/find_changes' - 'tooling/danger/product_intelligence.rb' - 'tooling/danger/project_helper.rb' - 'tooling/danger/specs.rb' diff --git a/.rubocop_todo/layout/space_in_lambda_literal.yml b/.rubocop_todo/layout/space_in_lambda_literal.yml index 362d9b20eb..144b4eb04a 100644 --- a/.rubocop_todo/layout/space_in_lambda_literal.yml +++ b/.rubocop_todo/layout/space_in_lambda_literal.yml @@ -202,7 +202,6 @@ Layout/SpaceInLambdaLiteral: - 'ee/app/models/ee/group.rb' - 'ee/app/models/ee/group_group_link.rb' - 'ee/app/models/ee/issue.rb' - - 'ee/app/models/ee/iteration.rb' - 'ee/app/models/ee/list.rb' - 'ee/app/models/ee/member.rb' - 'ee/app/models/ee/namespace.rb' @@ -220,10 +219,10 @@ Layout/SpaceInLambdaLiteral: - 'ee/app/models/incident_management/oncall_rotation.rb' - 'ee/app/models/incident_management/oncall_schedule.rb' - 'ee/app/models/incident_management/oncall_shift.rb' + - 'ee/app/models/iteration.rb' - 'ee/app/models/iterations/cadence.rb' - 'ee/app/models/merge_request_block.rb' - 'ee/app/models/merge_requests/compliance_violation.rb' - - 'ee/app/models/merge_train.rb' - 'ee/app/models/namespaces/namespace_ban.rb' - 'ee/app/models/requirements_management/requirement.rb' - 'ee/app/models/resource_iteration_event.rb' diff --git a/.rubocop_todo/layout/space_inside_parens.yml b/.rubocop_todo/layout/space_inside_parens.yml index de88cdc49b..56b37ba768 100644 --- a/.rubocop_todo/layout/space_inside_parens.yml +++ b/.rubocop_todo/layout/space_inside_parens.yml @@ -26,7 +26,6 @@ Layout/SpaceInsideParens: - 'ee/spec/models/boards/epic_board_position_spec.rb' - 'ee/spec/models/dora/change_failure_rate_metric_spec.rb' - 'ee/spec/models/ee/integrations/jira_spec.rb' - - 'ee/spec/models/ee/iteration_spec.rb' - 'ee/spec/models/ee/iterations/cadence_spec.rb' - 'ee/spec/models/ee/key_spec.rb' - 'ee/spec/models/ee/project_setting_spec.rb' @@ -35,6 +34,7 @@ Layout/SpaceInsideParens: - 'ee/spec/models/geo/every_geo_event_spec.rb' - 'ee/spec/models/incident_management/escalation_rule_spec.rb' - 'ee/spec/models/ip_restriction_spec.rb' + - 'ee/spec/models/iteration_spec.rb' - 'ee/spec/models/ldap_group_link_spec.rb' - 'ee/spec/models/license_spec.rb' - 'ee/spec/models/member_spec.rb' diff --git a/.rubocop_todo/lint/ambiguous_operator_precedence.yml b/.rubocop_todo/lint/ambiguous_operator_precedence.yml index ea6cadc7f8..8b6ef5db13 100644 --- a/.rubocop_todo/lint/ambiguous_operator_precedence.yml +++ b/.rubocop_todo/lint/ambiguous_operator_precedence.yml @@ -123,7 +123,6 @@ Lint/AmbiguousOperatorPrecedence: - 'spec/lib/gitlab/regex_spec.rb' - 'spec/lib/gitlab/search/abuse_validators/no_abusive_term_length_validator_spec.rb' - 'spec/lib/gitlab/slash_commands/deploy_spec.rb' - - 'spec/lib/gitlab/url_blocker_spec.rb' - 'spec/mailers/notify_spec.rb' - 'spec/models/appearance_spec.rb' - 'spec/models/ci/build_spec.rb' diff --git a/.rubocop_todo/lint/ambiguous_range.yml b/.rubocop_todo/lint/ambiguous_range.yml index 3d6f49a484..155c1a3612 100644 --- a/.rubocop_todo/lint/ambiguous_range.yml +++ b/.rubocop_todo/lint/ambiguous_range.yml @@ -4,7 +4,7 @@ Lint/AmbiguousRange: Details: grace period Exclude: - 'app/models/ci/runner.rb' - - 'app/models/ci/runner_machine.rb' + - 'app/models/ci/runner_manager.rb' - 'app/services/clusters/agent_tokens/track_usage_service.rb' - 'lib/gitlab/seeders/ci/runner/runner_fleet_pipeline_seeder.rb' - 'spec/lib/gitlab/database/reindexing/reindex_concurrently_spec.rb' diff --git a/.rubocop_todo/lint/empty_block.yml b/.rubocop_todo/lint/empty_block.yml index 8845fb3abe..43289b4bfb 100644 --- a/.rubocop_todo/lint/empty_block.yml +++ b/.rubocop_todo/lint/empty_block.yml @@ -6,7 +6,6 @@ Lint/EmptyBlock: - 'app/controllers/projects/boards_controller.rb' - 'app/controllers/projects/pipelines_controller.rb' - 'app/experiments/logged_out_marketing_header_experiment.rb' - - 'app/experiments/security_reports_mr_widget_prompt_experiment.rb' - 'config/application.rb' - 'ee/app/controllers/projects/learn_gitlab_controller.rb' - 'ee/spec/factories/incident_management/escalation_rules.rb' diff --git a/.rubocop_todo/lint/no_return_in_begin_end_blocks.yml b/.rubocop_todo/lint/no_return_in_begin_end_blocks.yml index 04115b1260..1d724ccc78 100644 --- a/.rubocop_todo/lint/no_return_in_begin_end_blocks.yml +++ b/.rubocop_todo/lint/no_return_in_begin_end_blocks.yml @@ -5,7 +5,6 @@ Lint/NoReturnInBeginEndBlocks: - 'app/models/concerns/metric_image_uploading.rb' - 'app/models/merge_request.rb' - 'app/services/security/ci_configuration/sast_parser_service.rb' - - 'app/services/work_items/parent_links/create_service.rb' - 'ee/app/services/epic_issues/create_service.rb' - 'ee/app/services/gitlab_subscriptions/preview_billable_user_change_service.rb' - 'ee/app/services/security/token_revocation_service.rb' diff --git a/.rubocop_todo/lint/redundant_cop_disable_directive.yml b/.rubocop_todo/lint/redundant_cop_disable_directive.yml index b5870b251b..1ae433adc0 100644 --- a/.rubocop_todo/lint/redundant_cop_disable_directive.yml +++ b/.rubocop_todo/lint/redundant_cop_disable_directive.yml @@ -50,7 +50,6 @@ Lint/RedundantCopDisableDirective: - 'app/services/issues/export_csv_service.rb' - 'app/services/labels/transfer_service.rb' - 'app/services/members/create_service.rb' - - 'app/services/members/creator_service.rb' - 'app/services/members/projects/creator_service.rb' - 'app/services/members/standard_member_builder.rb' - 'app/services/projects/auto_devops/disable_service.rb' @@ -96,7 +95,6 @@ Lint/RedundantCopDisableDirective: - 'ee/app/controllers/ee/groups/group_members_controller.rb' - 'ee/app/controllers/ee/projects/settings/ci_cd_controller.rb' - 'ee/app/controllers/groups/todos_controller.rb' - - 'ee/app/experiments/cart_abandonment_modal_experiment.rb' - 'ee/app/finders/epics/with_issues_finder.rb' - 'ee/app/finders/geo/file_registry_finder.rb' - 'ee/app/finders/geo/project_registry_finder.rb' diff --git a/.rubocop_todo/lint/symbol_conversion.yml b/.rubocop_todo/lint/symbol_conversion.yml index 537b32d856..da56c28318 100644 --- a/.rubocop_todo/lint/symbol_conversion.yml +++ b/.rubocop_todo/lint/symbol_conversion.yml @@ -84,7 +84,6 @@ Lint/SymbolConversion: - 'spec/controllers/jira_connect/branches_controller_spec.rb' - 'spec/factories/ci/reports/codequality_degradations.rb' - 'spec/factories/evidences.rb' - - 'spec/factories/packages/debian/file_metadatum.rb' - 'spec/factories/packages/helm/file_metadatum.rb' - 'spec/factories/packages/npm/metadata.rb' - 'spec/features/file_uploads/graphql_add_design_spec.rb' @@ -140,7 +139,6 @@ Lint/SymbolConversion: - 'spec/lib/service_ping/devops_report_spec.rb' - 'spec/models/integrations/prometheus_spec.rb' - 'spec/models/merge_request_diff_commit_spec.rb' - - 'spec/models/packages/debian/file_metadatum_spec.rb' - 'spec/models/packages/helm/file_metadatum_spec.rb' - 'spec/models/packages/npm/metadatum_spec.rb' - 'spec/presenters/packages/npm/package_presenter_spec.rb' diff --git a/.rubocop_todo/lint/unused_block_argument.yml b/.rubocop_todo/lint/unused_block_argument.yml index b9013f03bf..c09dc939ef 100644 --- a/.rubocop_todo/lint/unused_block_argument.yml +++ b/.rubocop_todo/lint/unused_block_argument.yml @@ -122,7 +122,6 @@ Lint/UnusedBlockArgument: - 'ee/lib/tasks/gitlab/elastic.rake' - 'ee/lib/tasks/gitlab/indexer.rake' - 'ee/lib/tasks/gitlab/seed/insights.rake' - - 'ee/spec/config/metrics/every_metric_definition_spec.rb' - 'ee/spec/elastic/migrate/20220118150500_delete_orphaned_commits_spec.rb' - 'ee/spec/elastic/migrate/20220119120500_populate_commit_permissions_in_main_index_spec.rb' - 'ee/spec/elastic/migrate/20220613120500_migrate_commits_to_separate_index_spec.rb' @@ -202,7 +201,6 @@ Lint/UnusedBlockArgument: - 'lib/api/helpers/snippets_helpers.rb' - 'lib/api/search.rb' - 'lib/atlassian/jira_connect/serializers/repository_entity.rb' - - 'lib/backup/database.rb' - 'lib/banzai/filter/autolink_filter.rb' - 'lib/banzai/filter/emoji_filter.rb' - 'lib/banzai/filter/inline_metrics_redactor_filter.rb' @@ -260,7 +258,6 @@ Lint/UnusedBlockArgument: - 'lib/tasks/contracts/pipeline_schedules.rake' - 'lib/tasks/contracts/pipelines.rake' - 'lib/tasks/frontend.rake' - - 'lib/tasks/gitlab/background_migrations.rake' - 'lib/tasks/gitlab/bulk_add_permission.rake' - 'lib/tasks/gitlab/db.rake' - 'lib/tasks/gitlab/external_diffs.rake' @@ -332,7 +329,6 @@ Lint/UnusedBlockArgument: - 'spec/graphql/types/base_object_spec.rb' - 'spec/initializers/secret_token_spec.rb' - 'spec/lib/api/helpers/pagination_strategies_spec.rb' - - 'spec/lib/backup/database_spec.rb' - 'spec/lib/banzai/filter/audio_link_filter_spec.rb' - 'spec/lib/banzai/filter/video_link_filter_spec.rb' - 'spec/lib/feature_spec.rb' @@ -377,7 +373,6 @@ Lint/UnusedBlockArgument: - 'spec/models/concerns/each_batch_spec.rb' - 'spec/models/container_repository_spec.rb' - 'spec/models/network/graph_spec.rb' - - 'spec/models/packages/debian/file_metadatum_spec.rb' - 'spec/requests/api/ci/pipeline_schedules_spec.rb' - 'spec/requests/api/graphql/gitlab_schema_spec.rb' - 'spec/requests/api/internal/container_registry/migration_spec.rb' @@ -443,5 +438,4 @@ Lint/UnusedBlockArgument: - 'spec/tooling/lib/tooling/find_codeowners_spec.rb' - 'spec/tooling/rspec_flaky/config_spec.rb' - 'spec/workers/projects/git_garbage_collect_worker_spec.rb' - - 'tooling/danger/specs.rb' - 'tooling/lib/tooling/find_codeowners.rb' diff --git a/.rubocop_todo/lint/unused_method_argument.yml b/.rubocop_todo/lint/unused_method_argument.yml index a4e48b3524..0d6f91336c 100644 --- a/.rubocop_todo/lint/unused_method_argument.yml +++ b/.rubocop_todo/lint/unused_method_argument.yml @@ -264,10 +264,10 @@ Lint/UnusedMethodArgument: - 'ee/app/models/concerns/geo/repository_replicator_strategy.rb' - 'ee/app/models/concerns/geo/verifiable_replicator.rb' - 'ee/app/models/concerns/geo/verification_state.rb' - - 'ee/app/models/ee/iteration.rb' - 'ee/app/models/ee/member.rb' - 'ee/app/models/ee/project.rb' - 'ee/app/models/group_wiki.rb' + - 'ee/app/models/iteration.rb' - 'ee/app/models/iteration_note.rb' - 'ee/app/replicators/geo/container_repository_replicator.rb' - 'ee/app/replicators/geo/pipeline_replicator.rb' @@ -294,7 +294,6 @@ Lint/UnusedMethodArgument: - 'ee/lib/ee/api/ci/helpers/runner.rb' - 'ee/lib/ee/api/entities/project.rb' - 'ee/lib/ee/backup/repositories.rb' - - 'ee/lib/ee/banzai/reference_parser/iteration_parser.rb' - 'ee/lib/ee/gitlab/auth/ldap/sync/proxy.rb' - 'ee/lib/ee/gitlab/geo_git_access.rb' - 'ee/lib/ee/gitlab/tracking.rb' @@ -612,7 +611,6 @@ Lint/UnusedMethodArgument: - 'spec/lib/gitlab/sidekiq_middleware/duplicate_jobs/server_spec.rb' - 'spec/lib/gitlab/sidekiq_middleware/worker_context/server_spec.rb' - 'spec/lib/gitlab/sidekiq_middleware_spec.rb' - - 'spec/lib/gitlab/url_blocker_spec.rb' - 'spec/migrations/20211018152654_schedule_remove_duplicate_vulnerabilities_findings3_spec.rb' - 'spec/migrations/20211116111644_schedule_remove_occurrence_pipelines_and_duplicate_vulnerabilities_findings_spec.rb' - 'spec/migrations/20211207135331_schedule_recalculate_uuid_on_vulnerabilities_occurrences4_spec.rb' diff --git a/.rubocop_todo/naming/heredoc_delimiter_naming.yml b/.rubocop_todo/naming/heredoc_delimiter_naming.yml index b92d316b69..7614480143 100644 --- a/.rubocop_todo/naming/heredoc_delimiter_naming.yml +++ b/.rubocop_todo/naming/heredoc_delimiter_naming.yml @@ -54,11 +54,9 @@ Naming/HeredocDelimiterNaming: - 'rubocop/cop/gitlab/predicate_memoization.rb' - 'spec/controllers/projects/pipelines_controller_spec.rb' - 'spec/deprecation_toolkit_env.rb' - - 'spec/factories/packages/debian/file_metadatum.rb' - 'spec/features/projects/commit/user_comments_on_commit_spec.rb' - 'spec/features/task_lists_spec.rb' - 'spec/initializers/100_patch_omniauth_oauth2_spec.rb' - - 'spec/initializers/net_http_response_patch_spec.rb' - 'spec/initializers/rack_multipart_patch_spec.rb' - 'spec/initializers/secret_token_spec.rb' - 'spec/initializers/validate_database_config_spec.rb' diff --git a/.rubocop_todo/naming/inclusive_language.yml b/.rubocop_todo/naming/inclusive_language.yml index 953e1a6e50..465e338bbe 100644 --- a/.rubocop_todo/naming/inclusive_language.yml +++ b/.rubocop_todo/naming/inclusive_language.yml @@ -1,9 +1,7 @@ --- Naming/InclusiveLanguage: - Details: grace period Exclude: - 'app/controllers/admin/application_settings/appearances_controller.rb' - - 'app/controllers/application_controller.rb' - 'app/controllers/concerns/requires_whitelisted_monitoring_client.rb' - 'app/controllers/health_check_controller.rb' - 'app/controllers/health_controller.rb' @@ -13,7 +11,6 @@ Naming/InclusiveLanguage: - 'app/helpers/markup_helper.rb' - 'app/models/application_setting.rb' - 'app/models/application_setting_implementation.rb' - - 'app/models/clusters/applications/jupyter.rb' - 'app/models/concerns/cache_markdown_field.rb' - 'app/services/application_settings/update_service.rb' - 'app/services/projects/download_service.rb' @@ -37,7 +34,6 @@ Naming/InclusiveLanguage: - 'lib/api/settings.rb' - 'lib/banzai/filter/asset_proxy_filter.rb' - 'lib/gitlab/asset_proxy.rb' - - 'lib/gitlab/auth.rb' - 'lib/gitlab/auth/ip_rate_limiter.rb' - 'lib/gitlab/ci/config/external/file/base.rb' - 'lib/gitlab/git/hook_env.rb' @@ -45,7 +41,6 @@ Naming/InclusiveLanguage: - 'lib/gitlab/markdown_cache/active_record/extension.rb' - 'lib/gitlab/markdown_cache/field_data.rb' - 'lib/gitlab/middleware/basic_health_check.rb' - - 'lib/gitlab/middleware/go.rb' - 'lib/gitlab/sanitizers/exif.rb' - 'lib/gitlab/sanitizers/svg.rb' - 'lib/gitlab/sanitizers/svg/whitelist.rb' @@ -61,7 +56,6 @@ Naming/InclusiveLanguage: - 'rubocop/cop/ignored_columns.rb' - 'rubocop/cop/inject_enterprise_edition_module.rb' - 'rubocop/cop/migration/add_columns_to_wide_tables.rb' - - 'spec/controllers/application_controller_spec.rb' - 'spec/controllers/concerns/issuable_collections_spec.rb' - 'spec/controllers/health_check_controller_spec.rb' - 'spec/controllers/metrics_controller_spec.rb' @@ -70,7 +64,6 @@ Naming/InclusiveLanguage: - 'spec/lib/banzai/filter/asset_proxy_filter_spec.rb' - 'spec/lib/gitlab/asset_proxy_spec.rb' - 'spec/lib/gitlab/auth/ip_rate_limiter_spec.rb' - - 'spec/lib/gitlab/auth_spec.rb' - 'spec/lib/gitlab/git/hook_env_spec.rb' - 'spec/lib/gitlab/github_import/markdown/attachment_spec.rb' - 'spec/lib/gitlab/import_export/attribute_configuration_spec.rb' @@ -81,7 +74,6 @@ Naming/InclusiveLanguage: - 'spec/lib/gitlab/sanitizers/exif_spec.rb' - 'spec/lib/system_check/app/git_user_default_ssh_config_check_spec.rb' - 'spec/models/application_setting_spec.rb' - - 'spec/models/clusters/applications/jupyter_spec.rb' - 'spec/requests/api/settings_spec.rb' - 'spec/requests/health_controller_spec.rb' - 'spec/rubocop/cop/avoid_return_from_blocks_spec.rb' diff --git a/.rubocop_todo/performance/map_compact.yml b/.rubocop_todo/performance/map_compact.yml index f47388609e..5f2331d6ed 100644 --- a/.rubocop_todo/performance/map_compact.yml +++ b/.rubocop_todo/performance/map_compact.yml @@ -65,8 +65,8 @@ Performance/MapCompact: - 'ee/app/services/vulnerabilities/findings/find_or_create_from_security_finding_service.rb' - 'ee/app/workers/geo/scheduler/scheduler_worker.rb' - 'ee/db/fixtures/development/30_customizable_cycle_analytics.rb' + - 'ee/lib/banzai/filter/references/iteration_reference_filter.rb' - 'ee/lib/ee/api/entities/experiment.rb' - - 'ee/lib/ee/banzai/filter/references/iteration_reference_filter.rb' - 'ee/lib/ee/gitlab/auth/ldap/person.rb' - 'ee/lib/ee/gitlab/background_migration/populate_latest_pipeline_ids.rb' - 'ee/lib/ee/gitlab/background_migration/recalculate_vulnerability_finding_signatures_for_findings.rb' diff --git a/.rubocop_todo/rails/inverse_of.yml b/.rubocop_todo/rails/inverse_of.yml index 752b1d9b4d..de45a47fed 100644 --- a/.rubocop_todo/rails/inverse_of.yml +++ b/.rubocop_todo/rails/inverse_of.yml @@ -29,7 +29,6 @@ Rails/InverseOf: - 'app/models/group_group_link.rb' - 'app/models/group_label.rb' - 'app/models/incident_management/timeline_event.rb' - - 'app/models/issue.rb' - 'app/models/jira_connect_subscription.rb' - 'app/models/members/group_member.rb' - 'app/models/members/project_member.rb' @@ -62,7 +61,6 @@ Rails/InverseOf: - 'ee/app/models/ee/clusters/agent.rb' - 'ee/app/models/ee/epic.rb' - 'ee/app/models/ee/group.rb' - - 'ee/app/models/ee/iteration.rb' - 'ee/app/models/ee/merge_request.rb' - 'ee/app/models/ee/plan.rb' - 'ee/app/models/ee/project.rb' @@ -79,6 +77,7 @@ Rails/InverseOf: - 'ee/app/models/incident_management/oncall_participant.rb' - 'ee/app/models/insight.rb' - 'ee/app/models/integrations/gitlab_slack_application.rb' + - 'ee/app/models/iteration.rb' - 'ee/app/models/requirements_management/requirement.rb' - 'ee/app/models/requirements_management/test_report.rb' - 'ee/app/models/sbom/vulnerable_component_version.rb' diff --git a/.rubocop_todo/rails/negate_include.yml b/.rubocop_todo/rails/negate_include.yml index 48a1e4483b..c99f15f98e 100644 --- a/.rubocop_todo/rails/negate_include.yml +++ b/.rubocop_todo/rails/negate_include.yml @@ -13,7 +13,6 @@ Rails/NegateInclude: - 'app/models/merge_request.rb' - 'app/models/milestone.rb' - 'app/services/todo_service.rb' - - 'app/services/work_items/parent_links/create_service.rb' - 'config/application.rb' - 'config/initializers/1_settings.rb' - 'ee/app/finders/security/pipeline_vulnerabilities_finder.rb' diff --git a/.rubocop_todo/rails/pluck.yml b/.rubocop_todo/rails/pluck.yml index 7e4af1ef3f..7eb7094749 100644 --- a/.rubocop_todo/rails/pluck.yml +++ b/.rubocop_todo/rails/pluck.yml @@ -25,7 +25,7 @@ Rails/Pluck: - 'ee/app/workers/geo/repository_shard_sync_worker.rb' - 'ee/app/workers/geo/repository_verification/secondary/shard_worker.rb' - 'ee/app/workers/geo/scheduler/scheduler_worker.rb' - - 'ee/lib/ee/banzai/filter/references/iteration_reference_filter.rb' + - 'ee/lib/banzai/filter/references/iteration_reference_filter.rb' - 'ee/lib/ee/gitlab/auth/ldap/person.rb' - 'ee/lib/ee/gitlab/background_migration/delete_invalid_epic_issues.rb' - 'ee/lib/ee/gitlab/background_migration/populate_uuids_for_security_findings.rb' diff --git a/.rubocop_todo/rails/redundant_foreign_key.yml b/.rubocop_todo/rails/redundant_foreign_key.yml index 8705236aaf..9824c78a8f 100644 --- a/.rubocop_todo/rails/redundant_foreign_key.yml +++ b/.rubocop_todo/rails/redundant_foreign_key.yml @@ -44,7 +44,6 @@ Rails/RedundantForeignKey: - 'ee/app/models/ci/sources/project.rb' - 'ee/app/models/concerns/incident_management/base_pending_escalation.rb' - 'ee/app/models/deployments/approval.rb' - - 'ee/app/models/ee/iteration.rb' - 'ee/app/models/ee/service_desk_setting.rb' - 'ee/app/models/geo/event_log.rb' - 'ee/app/models/incident_management/escalation_rule.rb' @@ -53,6 +52,7 @@ Rails/RedundantForeignKey: - 'ee/app/models/incident_management/pending_escalations/alert.rb' - 'ee/app/models/incident_management/pending_escalations/issue.rb' - 'ee/app/models/issuable_metric_image.rb' + - 'ee/app/models/iteration.rb' - 'ee/app/models/security/orchestration_policy_configuration.rb' - 'ee/app/models/security/orchestration_policy_rule_schedule.rb' - 'ee/app/models/vulnerabilities/feedback.rb' diff --git a/.rubocop_todo/rake/require.yml b/.rubocop_todo/rake/require.yml deleted file mode 100644 index b24dd1e654..0000000000 --- a/.rubocop_todo/rake/require.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -Rake/Require: - Details: grace period - Exclude: - - 'lib/tasks/tokens.rake' - - 'qa/tasks/webdrivers.rake' diff --git a/.rubocop_todo/rspec/context_wording.yml b/.rubocop_todo/rspec/context_wording.yml index ccbbc10ad4..ced205ff8e 100644 --- a/.rubocop_todo/rspec/context_wording.yml +++ b/.rubocop_todo/rspec/context_wording.yml @@ -169,7 +169,6 @@ RSpec/ContextWording: - 'ee/spec/features/protected_branches_spec.rb' - 'ee/spec/features/signup_spec.rb' - 'ee/spec/features/trial_registrations/company_information_spec.rb' - - 'ee/spec/features/trials/select_namespace_spec.rb' - 'ee/spec/features/users/login_spec.rb' - 'ee/spec/features/users/signup_spec.rb' - 'ee/spec/finders/approval_rules/group_finder_spec.rb' @@ -182,7 +181,7 @@ RSpec/ContextWording: - 'ee/spec/finders/dast_site_profiles_finder_spec.rb' - 'ee/spec/finders/dast_site_validations_finder_spec.rb' - 'ee/spec/finders/ee/alert_management/http_integrations_finder_spec.rb' - - 'ee/spec/finders/ee/clusters/agent_authorizations_finder_spec.rb' + - 'ee/spec/finders/ee/clusters/agents/authorizations/ci_access/finder_spec.rb' - 'ee/spec/finders/ee/clusters/agents_finder_spec.rb' - 'ee/spec/finders/ee/group_members_finder_spec.rb' - 'ee/spec/finders/ee/namespaces/projects_finder_spec.rb' @@ -463,7 +462,6 @@ RSpec/ContextWording: - 'ee/spec/models/ee/group_group_link_spec.rb' - 'ee/spec/models/ee/group_spec.rb' - 'ee/spec/models/ee/incident_management/project_incident_management_setting_spec.rb' - - 'ee/spec/models/ee/iteration_spec.rb' - 'ee/spec/models/ee/iterations/cadence_spec.rb' - 'ee/spec/models/ee/namespace_ci_cd_setting_spec.rb' - 'ee/spec/models/ee/namespace_spec.rb' @@ -495,11 +493,11 @@ RSpec/ContextWording: - 'ee/spec/models/issuable_sla_spec.rb' - 'ee/spec/models/issue_link_spec.rb' - 'ee/spec/models/issue_spec.rb' + - 'ee/spec/models/iteration_spec.rb' - 'ee/spec/models/license_spec.rb' - 'ee/spec/models/member_spec.rb' - 'ee/spec/models/merge_request/blocking_spec.rb' - 'ee/spec/models/merge_request_spec.rb' - - 'ee/spec/models/merge_train_spec.rb' - 'ee/spec/models/namespace_setting_spec.rb' - 'ee/spec/models/note_spec.rb' - 'ee/spec/models/packages/package_file_spec.rb' @@ -535,7 +533,6 @@ RSpec/ContextWording: - 'ee/spec/policies/project_snippet_policy_spec.rb' - 'ee/spec/policies/protected_branch_policy_spec.rb' - 'ee/spec/policies/saml_provider_policy_spec.rb' - - 'ee/spec/presenters/approval_rule_presenter_spec.rb' - 'ee/spec/presenters/audit_event_presenter_spec.rb' - 'ee/spec/presenters/ci/build_runner_presenter_spec.rb' - 'ee/spec/presenters/ee/issue_presenter_spec.rb' @@ -759,7 +756,6 @@ RSpec/ContextWording: - 'ee/spec/services/geo/wiki_sync_service_spec.rb' - 'ee/spec/services/gitlab_subscriptions/create_hand_raise_lead_service_spec.rb' - 'ee/spec/services/gitlab_subscriptions/create_service_spec.rb' - - 'ee/spec/services/gitlab_subscriptions/extend_reactivate_trial_service_spec.rb' - 'ee/spec/services/gitlab_subscriptions/preview_billable_user_change_service_spec.rb' - 'ee/spec/services/group_saml/group_managed_accounts/transfer_membership_service_spec.rb' - 'ee/spec/services/groups/create_service_spec.rb' @@ -1346,6 +1342,7 @@ RSpec/ContextWording: - 'spec/finders/ci/pipelines_finder_spec.rb' - 'spec/finders/ci/runners_finder_spec.rb' - 'spec/finders/cluster_ancestors_finder_spec.rb' + - 'spec/finders/clusters/agents/authorizations/ci_access/finder_spec.rb' - 'spec/finders/clusters/agent_authorizations_finder_spec.rb' - 'spec/finders/clusters/agents_finder_spec.rb' - 'spec/finders/clusters/kubernetes_namespace_finder_spec.rb' @@ -1531,7 +1528,7 @@ RSpec/ContextWording: - 'spec/initializers/validate_database_config_spec.rb' - 'spec/lib/api/entities/application_setting_spec.rb' - 'spec/lib/api/entities/basic_project_details_spec.rb' - - 'spec/lib/api/entities/clusters/agent_authorization_spec.rb' + - 'spec/lib/api/entities/clusters/agents/authorizations/ci_access_spec.rb' - 'spec/lib/api/entities/nuget/dependency_group_spec.rb' - 'spec/lib/api/entities/user_spec.rb' - 'spec/lib/api/every_api_endpoint_spec.rb' @@ -1851,7 +1848,6 @@ RSpec/ContextWording: - 'spec/lib/gitlab/encoding_helper_spec.rb' - 'spec/lib/gitlab/error_tracking/context_payload_generator_spec.rb' - 'spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb' - - 'spec/lib/gitlab/error_tracking_spec.rb' - 'spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb' - 'spec/lib/gitlab/external_authorization/access_spec.rb' - 'spec/lib/gitlab/favicon_spec.rb' @@ -2078,7 +2074,6 @@ RSpec/ContextWording: - 'spec/lib/gitlab/tree_summary_spec.rb' - 'spec/lib/gitlab/untrusted_regexp/ruby_syntax_spec.rb' - 'spec/lib/gitlab/untrusted_regexp_spec.rb' - - 'spec/lib/gitlab/url_blocker_spec.rb' - 'spec/lib/gitlab/url_sanitizer_spec.rb' - 'spec/lib/gitlab/usage/metric_definition_spec.rb' - 'spec/lib/gitlab/usage/metric_spec.rb' @@ -2305,7 +2300,6 @@ RSpec/ContextWording: - 'spec/models/notification_setting_spec.rb' - 'spec/models/operations/feature_flag_spec.rb' - 'spec/models/packages/conan/file_metadatum_spec.rb' - - 'spec/models/packages/debian/file_metadatum_spec.rb' - 'spec/models/packages/dependency_link_spec.rb' - 'spec/models/packages/dependency_spec.rb' - 'spec/models/packages/package_file_spec.rb' @@ -2318,7 +2312,6 @@ RSpec/ContextWording: - 'spec/models/personal_access_token_spec.rb' - 'spec/models/plan_limits_spec.rb' - 'spec/models/preloaders/labels_preloader_spec.rb' - - 'spec/models/preloaders/users_max_access_level_in_projects_preloader_spec.rb' - 'spec/models/project_authorization_spec.rb' - 'spec/models/project_feature_spec.rb' - 'spec/models/project_feature_usage_spec.rb' @@ -2434,7 +2427,6 @@ RSpec/ContextWording: - 'spec/requests/api/deployments_spec.rb' - 'spec/requests/api/environments_spec.rb' - 'spec/requests/api/error_tracking/collector_spec.rb' - - 'spec/requests/api/error_tracking/project_settings_spec.rb' - 'spec/requests/api/files_spec.rb' - 'spec/requests/api/generic_packages_spec.rb' - 'spec/requests/api/graphql/ci/runner_spec.rb' @@ -2693,7 +2685,7 @@ RSpec/ContextWording: - 'spec/services/ci/update_pending_build_service_spec.rb' - 'spec/services/clusters/agent_tokens/track_usage_service_spec.rb' - 'spec/services/clusters/agents/delete_expired_events_service_spec.rb' - - 'spec/services/clusters/agents/refresh_authorization_service_spec.rb' + - 'spec/services/clusters/agents/authorizations/ci_access/refresh_service_spec.rb' - 'spec/services/clusters/build_kubernetes_namespace_service_spec.rb' - 'spec/services/clusters/create_service_spec.rb' - 'spec/services/clusters/kubernetes/create_or_update_namespace_service_spec.rb' @@ -2844,7 +2836,6 @@ RSpec/ContextWording: - 'spec/services/packages/create_package_file_service_spec.rb' - 'spec/services/packages/debian/create_distribution_service_spec.rb' - 'spec/services/packages/debian/find_or_create_incoming_service_spec.rb' - - 'spec/services/packages/debian/process_changes_service_spec.rb' - 'spec/services/packages/helm/process_file_service_spec.rb' - 'spec/services/packages/maven/create_package_service_spec.rb' - 'spec/services/packages/maven/find_or_create_package_service_spec.rb' @@ -3164,7 +3155,6 @@ RSpec/ContextWording: - 'spec/support_specs/helpers/stub_method_calls_spec.rb' - 'spec/tasks/cache/clear/redis_spec.rb' - 'spec/tasks/dev_rake_spec.rb' - - 'spec/tasks/gettext_rake_spec.rb' - 'spec/tasks/gitlab/cleanup_rake_spec.rb' - 'spec/tasks/gitlab/db/validate_config_rake_spec.rb' - 'spec/tasks/gitlab/db_rake_spec.rb' diff --git a/.rubocop_todo/rspec/described_class.yml b/.rubocop_todo/rspec/described_class.yml index 7dcf183828..99800ab825 100644 --- a/.rubocop_todo/rspec/described_class.yml +++ b/.rubocop_todo/rspec/described_class.yml @@ -13,7 +13,6 @@ RSpec/DescribedClass: - 'ee/spec/models/ee/ci/runner_spec.rb' - 'ee/spec/models/ee/gpg_key_spec.rb' - 'ee/spec/models/ee/group_spec.rb' - - 'ee/spec/models/ee/iteration_spec.rb' - 'ee/spec/models/ee/project_spec.rb' - 'ee/spec/models/ee/vulnerability_spec.rb' - 'ee/spec/models/epic_issue_spec.rb' @@ -25,8 +24,8 @@ RSpec/DescribedClass: - 'ee/spec/models/geo/secondary_usage_data_spec.rb' - 'ee/spec/models/issuable_metric_image_spec.rb' - 'ee/spec/models/issue_spec.rb' + - 'ee/spec/models/iteration_spec.rb' - 'ee/spec/models/license_spec.rb' - - 'ee/spec/models/merge_train_spec.rb' - 'ee/spec/models/project_import_state_spec.rb' - 'ee/spec/models/release_highlight_spec.rb' - 'ee/spec/models/requirements_management/test_report_spec.rb' @@ -162,7 +161,6 @@ RSpec/DescribedClass: - 'spec/models/performance_monitoring/prometheus_panel_spec.rb' - 'spec/models/postgresql/detached_partition_spec.rb' - 'spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb' - - 'spec/models/preloaders/users_max_access_level_in_projects_preloader_spec.rb' - 'spec/models/project_spec.rb' - 'spec/models/projects/topic_spec.rb' - 'spec/models/release_highlight_spec.rb' diff --git a/.rubocop_todo/rspec/expect_change.yml b/.rubocop_todo/rspec/expect_change.yml index 9e3be798f0..154a305663 100644 --- a/.rubocop_todo/rspec/expect_change.yml +++ b/.rubocop_todo/rspec/expect_change.yml @@ -398,8 +398,6 @@ RSpec/ExpectChange: - 'spec/services/milestones/find_or_create_service_spec.rb' - 'spec/services/milestones/transfer_service_spec.rb' - 'spec/services/namespaces/statistics_refresher_service_spec.rb' - - 'spec/services/packages/debian/process_changes_service_spec.rb' - - 'spec/services/packages/debian/process_package_file_service_spec.rb' - 'spec/services/pages_domains/create_service_spec.rb' - 'spec/services/post_receive_service_spec.rb' - 'spec/services/projects/cleanup_service_spec.rb' diff --git a/.rubocop_todo/rspec/expect_in_hook.yml b/.rubocop_todo/rspec/expect_in_hook.yml index 7a3aea0770..8d36ed7520 100644 --- a/.rubocop_todo/rspec/expect_in_hook.yml +++ b/.rubocop_todo/rspec/expect_in_hook.yml @@ -164,7 +164,6 @@ RSpec/ExpectInHook: - 'spec/helpers/projects_helper_spec.rb' - 'spec/helpers/search_helper_spec.rb' - 'spec/helpers/users_helper_spec.rb' - - 'spec/initializers/net_http_response_patch_spec.rb' - 'spec/initializers/validate_database_config_spec.rb' - 'spec/lib/api/entities/merge_request_changes_spec.rb' - 'spec/lib/api/helpers/variables_helpers_spec.rb' @@ -223,7 +222,6 @@ RSpec/ExpectInHook: - 'spec/lib/gitlab/database_importers/self_monitoring/project/create_service_spec.rb' - 'spec/lib/gitlab/diff/highlight_cache_spec.rb' - 'spec/lib/gitlab/email/service_desk_receiver_spec.rb' - - 'spec/lib/gitlab/error_tracking_spec.rb' - 'spec/lib/gitlab/faraday/error_callback_spec.rb' - 'spec/lib/gitlab/git/repository_spec.rb' - 'spec/lib/gitlab/git_access_snippet_spec.rb' diff --git a/.rubocop_todo/rspec/factory_bot/avoid_create.yml b/.rubocop_todo/rspec/factory_bot/avoid_create.yml index 9a4d5f35be..752f10101b 100644 --- a/.rubocop_todo/rspec/factory_bot/avoid_create.yml +++ b/.rubocop_todo/rspec/factory_bot/avoid_create.yml @@ -2,7 +2,7 @@ RSpec/FactoryBot/AvoidCreate: Exclude: - 'ee/spec/components/namespaces/free_user_cap/enforcement_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/non_owner_alert_component_spec.rb' + - 'ee/spec/components/namespaces/free_user_cap/non_owner_enforcement_alert_component_spec.rb' - 'ee/spec/components/namespaces/free_user_cap/notification_alert_component_spec.rb' - 'ee/spec/components/namespaces/free_user_cap/usage_quota_alert_component_spec.rb' - 'ee/spec/components/namespaces/free_user_cap/usage_quota_trial_alert_component_spec.rb' @@ -50,13 +50,12 @@ RSpec/FactoryBot/AvoidCreate: - 'ee/spec/helpers/ee/security_orchestration_helper_spec.rb' - 'ee/spec/helpers/ee/subscribable_banner_helper_spec.rb' - 'ee/spec/helpers/ee/todos_helper_spec.rb' - - 'ee/spec/helpers/ee/trial_helper_spec.rb' + - 'ee/spec/helpers/trials_helper_spec.rb' - 'ee/spec/helpers/ee/users/callouts_helper_spec.rb' - 'ee/spec/helpers/ee/welcome_helper_spec.rb' - 'ee/spec/helpers/ee/wiki_helper_spec.rb' - 'ee/spec/helpers/epics_helper_spec.rb' - 'ee/spec/helpers/gitlab_subscriptions/upcoming_reconciliation_helper_spec.rb' - - 'ee/spec/helpers/groups/feature_discovery_moments_helper_spec.rb' - 'ee/spec/helpers/groups/security_features_helper_spec.rb' - 'ee/spec/helpers/incident_management/escalation_policy_helper_spec.rb' - 'ee/spec/helpers/incident_management/oncall_schedule_helper_spec.rb' @@ -101,7 +100,6 @@ RSpec/FactoryBot/AvoidCreate: - 'ee/spec/mailers/emails/user_cap_spec.rb' - 'ee/spec/mailers/license_mailer_spec.rb' - 'ee/spec/mailers/notify_spec.rb' - - 'ee/spec/presenters/approval_rule_presenter_spec.rb' - 'ee/spec/presenters/audit_event_presenter_spec.rb' - 'ee/spec/presenters/ci/build_runner_presenter_spec.rb' - 'ee/spec/presenters/ci/minutes/usage_presenter_spec.rb' @@ -202,7 +200,6 @@ RSpec/FactoryBot/AvoidCreate: - 'ee/spec/views/compliance_management/compliance_framework/_project_settings.html.haml_spec.rb' - 'ee/spec/views/groups/billings/index.html.haml_spec.rb' - 'ee/spec/views/groups/edit.html.haml_spec.rb' - - 'ee/spec/views/groups/feature_discovery_moments/advanced_features_dashboard.html.haml_spec.rb' - 'ee/spec/views/groups/hook_logs/show.html.haml_spec.rb' - 'ee/spec/views/groups/hooks/edit.html.haml_spec.rb' - 'ee/spec/views/groups/security/discover/show.html.haml_spec.rb' @@ -213,7 +210,6 @@ RSpec/FactoryBot/AvoidCreate: - 'ee/spec/views/layouts/group.html.haml_spec.rb' - 'ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb' - 'ee/spec/views/layouts/header/_read_only_banner.html.haml_spec.rb' - - 'ee/spec/views/layouts/header/help_dropdown/_cross_stage_fdm.html.haml_spec.rb' - 'ee/spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb' - 'ee/spec/views/layouts/nav/sidebar/_project.html.haml_spec.rb' - 'ee/spec/views/layouts/project.html.haml_spec.rb' @@ -392,7 +388,6 @@ RSpec/FactoryBot/AvoidCreate: - 'spec/presenters/packages/pypi/simple_index_presenter_spec.rb' - 'spec/presenters/packages/pypi/simple_package_versions_presenter_spec.rb' - 'spec/presenters/pages_domain_presenter_spec.rb' - - 'spec/presenters/project_clusterable_presenter_spec.rb' - 'spec/presenters/project_hook_presenter_spec.rb' - 'spec/presenters/project_presenter_spec.rb' - 'spec/presenters/projects/import_export/project_export_presenter_spec.rb' diff --git a/.rubocop_todo/rspec/hooks_before_examples.yml b/.rubocop_todo/rspec/hooks_before_examples.yml index a6291452db..24b3ef082a 100644 --- a/.rubocop_todo/rspec/hooks_before_examples.yml +++ b/.rubocop_todo/rspec/hooks_before_examples.yml @@ -17,7 +17,6 @@ RSpec/HooksBeforeExamples: - 'ee/spec/lib/ee/gitlab/usage_data_counters/hll_redis_counter_spec.rb' - 'ee/spec/lib/gitlab/analytics/cycle_analytics/summary/group/stage_summary_spec.rb' - 'ee/spec/models/ee/merge_request_diff_spec.rb' - - 'ee/spec/models/merge_train_spec.rb' - 'ee/spec/requests/api/boards_spec.rb' - 'ee/spec/requests/ee/projects/deploy_tokens_controller_spec.rb' - 'ee/spec/services/ee/groups/deploy_tokens/create_service_spec.rb' @@ -34,7 +33,7 @@ RSpec/HooksBeforeExamples: - 'qa/qa/specs/features/browser_ui/1_manage/user/follow_user_activity_spec.rb' - 'qa/qa/specs/features/browser_ui/1_manage/user/user_inherited_access_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/merge_request/revert/revert_commit_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/open_fork_in_web_ide_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/open_fork_in_web_ide_spec.rb' - 'qa/qa/specs/features/ee/api/1_manage/user/minimal_access_user_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_git_access_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_enforced_sso_new_account_spec.rb' diff --git a/.rubocop_todo/rspec/instance_variable.yml b/.rubocop_todo/rspec/instance_variable.yml index faac690bb9..7dc84c5743 100644 --- a/.rubocop_todo/rspec/instance_variable.yml +++ b/.rubocop_todo/rspec/instance_variable.yml @@ -40,8 +40,8 @@ RSpec/InstanceVariable: - 'qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/link_to_line_in_web_ide_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/add_file_template_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/link_to_line_in_web_ide_spec.rb' - 'qa/qa/specs/features/ee/api/1_manage/user/minimal_access_user_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/13_secure/license_compliance_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/13_secure/merge_request_license_widget_spec.rb' diff --git a/.rubocop_todo/rspec/missing_feature_category.yml b/.rubocop_todo/rspec/missing_feature_category.yml index bbd6cccef0..c94541ad8a 100644 --- a/.rubocop_todo/rspec/missing_feature_category.yml +++ b/.rubocop_todo/rspec/missing_feature_category.yml @@ -1,19 +1,13 @@ --- RSpec/MissingFeatureCategory: Exclude: - - 'ee/spec/components/namespaces/free_user_cap/enforcement_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/enforcement_at_limit_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/non_owner_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/usage_quota_alert_component_spec.rb' - - 'ee/spec/components/namespaces/free_user_cap/usage_quota_trial_alert_component_spec.rb' + - 'ee/spec/components/billing/plan_component_spec.rb' - 'ee/spec/components/namespaces/storage/limit_alert_component_spec.rb' - 'ee/spec/components/namespaces/storage/project_pre_enforcement_alert_component_spec.rb' - 'ee/spec/components/namespaces/storage/subgroup_pre_enforcement_alert_component_spec.rb' - 'ee/spec/components/namespaces/storage/user_pre_enforcement_alert_component_spec.rb' - 'ee/spec/controllers/admin/application_settings_controller_spec.rb' - 'ee/spec/controllers/admin/clusters_controller_spec.rb' - - 'ee/spec/controllers/admin/geo/nodes_controller_spec.rb' - - 'ee/spec/controllers/admin/geo/projects_controller_spec.rb' - 'ee/spec/controllers/autocomplete_controller_spec.rb' - 'ee/spec/controllers/dashboard_controller_spec.rb' - 'ee/spec/controllers/ee/projects/autocomplete_sources_controller_spec.rb' @@ -87,24 +81,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/finders/epics/cross_hierarchy_children_finder_spec.rb' - 'ee/spec/finders/epics/with_issues_finder_spec.rb' - 'ee/spec/finders/epics_finder_spec.rb' - - 'ee/spec/finders/geo/ci_secure_file_registry_finder_spec.rb' - - 'ee/spec/finders/geo/container_repository_registry_finder_spec.rb' - - 'ee/spec/finders/geo/dependency_proxy_blob_registry_finder_spec.rb' - - 'ee/spec/finders/geo/dependency_proxy_manifest_registry_finder_spec.rb' - - 'ee/spec/finders/geo/design_registry_finder_spec.rb' - - 'ee/spec/finders/geo/group_wiki_repository_registry_finder_spec.rb' - - 'ee/spec/finders/geo/lfs_object_registry_finder_spec.rb' - - 'ee/spec/finders/geo/merge_request_diff_registry_finder_spec.rb' - - 'ee/spec/finders/geo/package_file_registry_finder_spec.rb' - - 'ee/spec/finders/geo/pages_deployment_registry_finder_spec.rb' - - 'ee/spec/finders/geo/pipeline_artifact_registry_finder_spec.rb' - - 'ee/spec/finders/geo/project_registry_finder_spec.rb' - - 'ee/spec/finders/geo/project_registry_status_finder_spec.rb' - - 'ee/spec/finders/geo/repository_verification_finder_spec.rb' - - 'ee/spec/finders/geo/snippet_repository_registry_finder_spec.rb' - - 'ee/spec/finders/geo/terraform_state_version_registry_finder_spec.rb' - - 'ee/spec/finders/geo/upload_registry_finder_spec.rb' - - 'ee/spec/finders/geo_node_finder_spec.rb' - 'ee/spec/finders/gpg_keys_finder_spec.rb' - 'ee/spec/finders/group_projects_finder_spec.rb' - 'ee/spec/finders/group_saml_identity_finder_spec.rb' @@ -296,21 +272,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/graphql/resolvers/epics/default_project_for_issue_creation_resolver_spec.rb' - 'ee/spec/graphql/resolvers/epics_resolver_spec.rb' - 'ee/spec/graphql/resolvers/external_issue_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/ci_secure_file_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/container_repository_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/dependency_proxy_blob_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/dependency_proxy_manifest_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/geo_node_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/group_wiki_repository_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/job_artifact_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/lfs_object_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/merge_request_diff_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/package_file_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/pages_deployment_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/pipeline_artifact_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/snippet_repository_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/terraform_state_version_registries_resolver_spec.rb' - - 'ee/spec/graphql/resolvers/geo/upload_registries_resolver_spec.rb' - 'ee/spec/graphql/resolvers/incident_management/escalation_policies_resolver_spec.rb' - 'ee/spec/graphql/resolvers/incident_management/issuable_resource_links_resolver_spec.rb' - 'ee/spec/graphql/resolvers/incident_management/oncall_rotations_resolver_spec.rb' @@ -400,20 +361,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/graphql/types/epic_state_enum_spec.rb' - 'ee/spec/graphql/types/epic_type_spec.rb' - 'ee/spec/graphql/types/external_issue_type_spec.rb' - - 'ee/spec/graphql/types/geo/ci_secure_file_registry_type_spec.rb' - - 'ee/spec/graphql/types/geo/container_repository_registry_type_spec.rb' - - 'ee/spec/graphql/types/geo/dependency_proxy_blob_registry_type_spec.rb' - - 'ee/spec/graphql/types/geo/dependency_proxy_manifest_registry_type_spec.rb' - - 'ee/spec/graphql/types/geo/geo_node_type_spec.rb' - - 'ee/spec/graphql/types/geo/job_artifact_registry_type_spec.rb' - - 'ee/spec/graphql/types/geo/lfs_object_registry_type_spec.rb' - - 'ee/spec/graphql/types/geo/merge_request_diff_registry_type_spec.rb' - - 'ee/spec/graphql/types/geo/package_file_registry_type_spec.rb' - - 'ee/spec/graphql/types/geo/pages_deployment_registry_type_spec.rb' - - 'ee/spec/graphql/types/geo/pipeline_artifact_registry_type_spec.rb' - - 'ee/spec/graphql/types/geo/registry_state_enum_spec.rb' - - 'ee/spec/graphql/types/geo/terraform_state_version_registry_type_spec.rb' - - 'ee/spec/graphql/types/geo/upload_registry_type_spec.rb' - 'ee/spec/graphql/types/gitlab_subscriptions/user_role_enum_spec.rb' - 'ee/spec/graphql/types/global_id_type_spec.rb' - 'ee/spec/graphql/types/group_release_stats_type_spec.rb' @@ -548,7 +495,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/helpers/ee/events_helper_spec.rb' - 'ee/spec/helpers/ee/export_helper_spec.rb' - 'ee/spec/helpers/ee/feature_flags_helper_spec.rb' - - 'ee/spec/helpers/ee/geo_helper_spec.rb' - 'ee/spec/helpers/ee/gitlab_routing_helper_spec.rb' - 'ee/spec/helpers/ee/graph_helper_spec.rb' - 'ee/spec/helpers/ee/groups/group_members_helper_spec.rb' @@ -575,7 +521,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/helpers/ee/subscribable_banner_helper_spec.rb' - 'ee/spec/helpers/ee/system_note_helper_spec.rb' - 'ee/spec/helpers/ee/todos_helper_spec.rb' - - 'ee/spec/helpers/ee/trial_helper_spec.rb' - 'ee/spec/helpers/ee/trial_registration_helper_spec.rb' - 'ee/spec/helpers/ee/users/callouts_helper_spec.rb' - 'ee/spec/helpers/ee/version_check_helper_spec.rb' @@ -583,7 +528,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/helpers/ee/wiki_helper_spec.rb' - 'ee/spec/helpers/epics_helper_spec.rb' - 'ee/spec/helpers/gitlab_subscriptions/upcoming_reconciliation_helper_spec.rb' - - 'ee/spec/helpers/groups/feature_discovery_moments_helper_spec.rb' - 'ee/spec/helpers/groups/ldap_sync_helper_spec.rb' - 'ee/spec/helpers/groups/security_features_helper_spec.rb' - 'ee/spec/helpers/groups/sso_helper_spec.rb' @@ -667,7 +611,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/lib/ee/api/entities/ci/minutes/additional_pack_spec.rb' - 'ee/spec/lib/ee/api/entities/deployment_extended_spec.rb' - 'ee/spec/lib/ee/api/entities/experiment_spec.rb' - - 'ee/spec/lib/ee/api/entities/geo_node_status_spec.rb' - 'ee/spec/lib/ee/api/entities/group_detail_spec.rb' - 'ee/spec/lib/ee/api/entities/groups/repository_storage_move_spec.rb' - 'ee/spec/lib/ee/api/entities/identity_detail_spec.rb' @@ -953,39 +896,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/lib/gitlab/exclusive_lease_spec.rb' - 'ee/spec/lib/gitlab/expiring_subscription_message_spec.rb' - 'ee/spec/lib/gitlab/favicon_spec.rb' - - 'ee/spec/lib/gitlab/geo/base_request_spec.rb' - - 'ee/spec/lib/gitlab/geo/cron_manager_spec.rb' - - 'ee/spec/lib/gitlab/geo/event_gap_tracking_spec.rb' - - 'ee/spec/lib/gitlab/geo/geo_tasks_spec.rb' - - 'ee/spec/lib/gitlab/geo/git_push_http_spec.rb' - - 'ee/spec/lib/gitlab/geo/git_ssh_proxy_spec.rb' - - 'ee/spec/lib/gitlab/geo/health_check_spec.rb' - - 'ee/spec/lib/gitlab/geo/json_request_spec.rb' - - 'ee/spec/lib/gitlab/geo/jwt_request_decoder_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/event_logs_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/cache_invalidation_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/design_repository_updated_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_attachments_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/hashed_storage_migrated_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/repositories_changed_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_created_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_deleted_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_renamed_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_updated_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_cursor/events/reset_checksum_event_spec.rb' - - 'ee/spec/lib/gitlab/geo/log_helpers_spec.rb' - - 'ee/spec/lib/gitlab/geo/logger_spec.rb' - - 'ee/spec/lib/gitlab/geo/oauth/login_state_spec.rb' - - 'ee/spec/lib/gitlab/geo/oauth/logout_state_spec.rb' - - 'ee/spec/lib/gitlab/geo/oauth/logout_token_spec.rb' - - 'ee/spec/lib/gitlab/geo/oauth/session_spec.rb' - - 'ee/spec/lib/gitlab/geo/registry_batcher_spec.rb' - - 'ee/spec/lib/gitlab/geo/replication/blob_downloader_spec.rb' - - 'ee/spec/lib/gitlab/geo/replication/blob_retriever_spec.rb' - - 'ee/spec/lib/gitlab/geo/replicator_spec.rb' - - 'ee/spec/lib/gitlab/geo/signed_data_spec.rb' - - 'ee/spec/lib/gitlab/geo_spec.rb' - 'ee/spec/lib/gitlab/git_access_wiki_spec.rb' - 'ee/spec/lib/gitlab/gitaly_client/with_feature_flag_actors_spec.rb' - 'ee/spec/lib/gitlab/gl_repository/identifier_spec.rb' @@ -1037,7 +947,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/lib/gitlab/pagination/keyset/simple_order_builder_spec.rb' - 'ee/spec/lib/gitlab/patch/database_config_spec.rb' - 'ee/spec/lib/gitlab/patch/draw_route_spec.rb' - - 'ee/spec/lib/gitlab/patch/geo_database_tasks_spec.rb' - 'ee/spec/lib/gitlab/path_locks_finder_spec.rb' - 'ee/spec/lib/gitlab/project_template_spec.rb' - 'ee/spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb' @@ -1130,7 +1039,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/lib/slack/block_kit/app_home_opened_spec.rb' - 'ee/spec/lib/slack/block_kit/incident_management/incident_modal_opened_spec.rb' - 'ee/spec/lib/system_check/app/search_check_spec.rb' - - 'ee/spec/lib/system_check/rake_task/geo_task_spec.rb' - 'ee/spec/mailers/ci_minutes_usage_mailer_spec.rb' - 'ee/spec/mailers/credentials_inventory_mailer_spec.rb' - 'ee/spec/mailers/devise_mailer_spec.rb' @@ -1179,7 +1087,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/models/broadcast_message_spec.rb' - 'ee/spec/models/ci/bridge_spec.rb' - 'ee/spec/models/ci/daily_build_group_report_result_spec.rb' - - 'ee/spec/models/ci/minutes/additional_pack_spec.rb' - 'ee/spec/models/ci/minutes/context_spec.rb' - 'ee/spec/models/ci/minutes/namespace_monthly_usage_spec.rb' - 'ee/spec/models/ci/minutes/notification_spec.rb' @@ -1212,11 +1119,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/models/concerns/elastic/snippet_spec.rb' - 'ee/spec/models/concerns/epic_tree_sorting_spec.rb' - 'ee/spec/models/concerns/filterable_by_test_reports_spec.rb' - - 'ee/spec/models/concerns/geo/eventable_spec.rb' - - 'ee/spec/models/concerns/geo/has_replicator_spec.rb' - - 'ee/spec/models/concerns/geo/replicable_model_spec.rb' - - 'ee/spec/models/concerns/geo/verifiable_model_spec.rb' - - 'ee/spec/models/concerns/geo/verification_state_spec.rb' - 'ee/spec/models/concerns/health_status_spec.rb' - 'ee/spec/models/concerns/incident_management/base_pending_escalation_spec.rb' - 'ee/spec/models/concerns/mirror_configuration_spec.rb' @@ -1309,24 +1211,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/models/environment_spec.rb' - 'ee/spec/models/epic/related_epic_link_spec.rb' - 'ee/spec/models/epic_user_mention_spec.rb' - - 'ee/spec/models/geo/cache_invalidation_event_spec.rb' - - 'ee/spec/models/geo/deleted_project_spec.rb' - - 'ee/spec/models/geo/event_log_spec.rb' - - 'ee/spec/models/geo/event_log_state_spec.rb' - - 'ee/spec/models/geo/every_geo_event_spec.rb' - - 'ee/spec/models/geo/hashed_storage_migrated_event_spec.rb' - - 'ee/spec/models/geo/project_wiki_repository_state_spec.rb' - - 'ee/spec/models/geo/push_user_spec.rb' - - 'ee/spec/models/geo/repositories_changed_event_spec.rb' - - 'ee/spec/models/geo/repository_created_event_spec.rb' - - 'ee/spec/models/geo/repository_renamed_event_spec.rb' - - 'ee/spec/models/geo/repository_updated_event_spec.rb' - - 'ee/spec/models/geo/reset_checksum_event_spec.rb' - - 'ee/spec/models/geo/secondary_usage_data_spec.rb' - - 'ee/spec/models/geo/tracking_base_spec.rb' - - 'ee/spec/models/geo/upload_state_spec.rb' - - 'ee/spec/models/geo_node_namespace_link_spec.rb' - - 'ee/spec/models/geo_node_spec.rb' - 'ee/spec/models/gitlab/seat_link_data_spec.rb' - 'ee/spec/models/gitlab_subscription_history_spec.rb' - 'ee/spec/models/gitlab_subscriptions/features_spec.rb' @@ -1369,7 +1253,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/models/merge_requests/compliance_violation_spec.rb' - 'ee/spec/models/merge_requests/external_status_check_spec.rb' - 'ee/spec/models/merge_requests/status_check_response_spec.rb' - - 'ee/spec/models/merge_train_spec.rb' - 'ee/spec/models/milestone_release_spec.rb' - 'ee/spec/models/milestone_spec.rb' - 'ee/spec/models/namespace_limit_spec.rb' @@ -1400,7 +1283,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/models/protected_environments/deploy_access_level_spec.rb' - 'ee/spec/models/push_rule_spec.rb' - 'ee/spec/models/remote_mirror_spec.rb' - - 'ee/spec/models/repository_spec.rb' - 'ee/spec/models/requirements_management/requirement_spec.rb' - 'ee/spec/models/saml_group_link_spec.rb' - 'ee/spec/models/saml_provider_spec.rb' @@ -1444,8 +1326,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/policies/ee/namespaces/user_namespace_policy_spec.rb' - 'ee/spec/policies/environment_policy_spec.rb' - 'ee/spec/policies/event_policy_spec.rb' - - 'ee/spec/policies/geo/registry_policy_spec.rb' - - 'ee/spec/policies/geo_node_policy_spec.rb' - 'ee/spec/policies/group_hook_policy_spec.rb' - 'ee/spec/policies/identity_provider_policy_spec.rb' - 'ee/spec/policies/incident_management/oncall_rotation_policy_spec.rb' @@ -1466,7 +1346,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/policies/user_policy_spec.rb' - 'ee/spec/policies/vulnerability_policy_spec.rb' - 'ee/spec/presenters/analytics/cycle_analytics/stage_presenter_spec.rb' - - 'ee/spec/presenters/approval_rule_presenter_spec.rb' - 'ee/spec/presenters/audit_event_presenter_spec.rb' - 'ee/spec/presenters/ci/build_presenter_spec.rb' - 'ee/spec/presenters/ci/build_runner_presenter_spec.rb' @@ -1490,20 +1369,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/presenters/subscriptions/new_plan_presenter_spec.rb' - 'ee/spec/presenters/vulnerability_presenter_spec.rb' - 'ee/spec/presenters/web_hooks/group/hook_presenter_spec.rb' - - 'ee/spec/replicators/geo/ci_secure_file_replicator_spec.rb' - - 'ee/spec/replicators/geo/dependency_proxy_blob_replicator_spec.rb' - - 'ee/spec/replicators/geo/dependency_proxy_manifest_replicator_spec.rb' - - 'ee/spec/replicators/geo/group_wiki_repository_replicator_spec.rb' - - 'ee/spec/replicators/geo/job_artifact_replicator_spec.rb' - - 'ee/spec/replicators/geo/lfs_object_replicator_spec.rb' - - 'ee/spec/replicators/geo/merge_request_diff_replicator_spec.rb' - - 'ee/spec/replicators/geo/package_file_replicator_spec.rb' - - 'ee/spec/replicators/geo/pages_deployment_replicator_spec.rb' - - 'ee/spec/replicators/geo/pipeline_artifact_replicator_spec.rb' - - 'ee/spec/replicators/geo/pipeline_replicator_spec.rb' - - 'ee/spec/replicators/geo/snippet_repository_replicator_spec.rb' - - 'ee/spec/replicators/geo/terraform_state_version_replicator_spec.rb' - - 'ee/spec/replicators/geo/upload_replicator_spec.rb' - 'ee/spec/requests/admin/credentials_controller_spec.rb' - 'ee/spec/requests/api/graphql/mutations/work_items/update_spec.rb' - 'ee/spec/requests/api/internal/base_spec.rb' @@ -1540,7 +1405,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/serializers/dependency_list_serializer_spec.rb' - 'ee/spec/serializers/ee/admin/user_entity_spec.rb' - 'ee/spec/serializers/ee/blob_entity_spec.rb' - - 'ee/spec/serializers/ee/build_details_entity_spec.rb' - 'ee/spec/serializers/ee/ci/job_entity_spec.rb' - 'ee/spec/serializers/ee/ci/pipeline_entity_spec.rb' - 'ee/spec/serializers/ee/deployment_entity_spec.rb' @@ -1560,7 +1424,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/serializers/evidences/build_artifact_entity_spec.rb' - 'ee/spec/serializers/evidences/evidence_entity_spec.rb' - 'ee/spec/serializers/fork_namespace_entity_spec.rb' - - 'ee/spec/serializers/geo_project_registry_entity_spec.rb' - 'ee/spec/serializers/group_vulnerability_autocomplete_entity_spec.rb' - 'ee/spec/serializers/incident_management/escalation_policy_entity_spec.rb' - 'ee/spec/serializers/incident_management/oncall_schedule_entity_spec.rb' @@ -1738,7 +1601,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/services/resource_access_tokens/create_service_spec.rb' - 'ee/spec/services/resource_access_tokens/revoke_service_spec.rb' - 'ee/spec/services/timebox_report_service_spec.rb' - - 'ee/spec/tasks/geo/git_rake_spec.rb' - 'ee/spec/tasks/gitlab/license_rake_spec.rb' - 'ee/spec/tasks/gitlab/spdx_rake_spec.rb' - 'ee/spec/uploaders/every_gitlab_uploader_spec.rb' @@ -1765,7 +1627,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/views/groups/compliance_frameworks/edit.html.haml_spec.rb' - 'ee/spec/views/groups/compliance_frameworks/new.html.haml_spec.rb' - 'ee/spec/views/groups/edit.html.haml_spec.rb' - - 'ee/spec/views/groups/feature_discovery_moments/advanced_features_dashboard.html.haml_spec.rb' - 'ee/spec/views/groups/hook_logs/show.html.haml_spec.rb' - 'ee/spec/views/groups/hooks/edit.html.haml_spec.rb' - 'ee/spec/views/groups/security/discover/show.html.haml_spec.rb' @@ -1778,7 +1639,6 @@ RSpec/MissingFeatureCategory: - 'ee/spec/views/layouts/header/_current_user_dropdown.html.haml_spec.rb' - 'ee/spec/views/layouts/header/_ee_subscribable_banner.html.haml_spec.rb' - 'ee/spec/views/layouts/header/_read_only_banner.html.haml_spec.rb' - - 'ee/spec/views/layouts/header/help_dropdown/_cross_stage_fdm.html.haml_spec.rb' - 'ee/spec/views/layouts/nav/sidebar/_admin.html.haml_spec.rb' - 'ee/spec/views/layouts/nav/sidebar/_group.html.haml_spec.rb' - 'ee/spec/views/layouts/nav/sidebar/_push_rules_link.html.haml_spec.rb' @@ -2074,8 +1934,6 @@ RSpec/MissingFeatureCategory: - 'spec/experiments/force_company_trial_experiment_spec.rb' - 'spec/experiments/in_product_guidance_environments_webide_experiment_spec.rb' - 'spec/experiments/ios_specific_templates_experiment_spec.rb' - - 'spec/experiments/require_verification_for_namespace_creation_experiment_spec.rb' - - 'spec/experiments/security_reports_mr_widget_prompt_experiment_spec.rb' - 'spec/features/admin/dashboard_spec.rb' - 'spec/features/groups/integrations/group_integrations_spec.rb' - 'spec/features/milestones/user_views_milestones_spec.rb' @@ -2773,7 +2631,6 @@ RSpec/MissingFeatureCategory: - 'spec/graphql/types/x509_certificate_type_spec.rb' - 'spec/graphql/types/x509_issuer_type_spec.rb' - 'spec/haml_lint/linter/inline_javascript_spec.rb' - - 'spec/haml_lint/linter/no_plain_nodes_spec.rb' - 'spec/helpers/access_tokens_helper_spec.rb' - 'spec/helpers/admin/application_settings/settings_helper_spec.rb' - 'spec/helpers/admin/background_migrations_helper_spec.rb' @@ -3800,7 +3657,6 @@ RSpec/MissingFeatureCategory: - 'spec/lib/gitlab/database/migrations/test_background_runner_spec.rb' - 'spec/lib/gitlab/database/no_cross_db_foreign_keys_spec.rb' - 'spec/lib/gitlab/database/obsolete_ignored_columns_spec.rb' - - 'spec/lib/gitlab/database/partitioning/convert_table_to_first_list_partition_spec.rb' - 'spec/lib/gitlab/database/partitioning/detached_partition_dropper_spec.rb' - 'spec/lib/gitlab/database/partitioning/monthly_strategy_spec.rb' - 'spec/lib/gitlab/database/partitioning/partition_manager_spec.rb' @@ -3811,7 +3667,6 @@ RSpec/MissingFeatureCategory: - 'spec/lib/gitlab/database/partitioning/time_partition_spec.rb' - 'spec/lib/gitlab/database/partitioning_migration_helpers/backfill_partitioned_table_spec.rb' - 'spec/lib/gitlab/database/partitioning_migration_helpers/index_helpers_spec.rb' - - 'spec/lib/gitlab/database/partitioning_migration_helpers/table_management_helpers_spec.rb' - 'spec/lib/gitlab/database/partitioning_spec.rb' - 'spec/lib/gitlab/database/pg_class_spec.rb' - 'spec/lib/gitlab/database/postgres_constraint_spec.rb' @@ -3950,7 +3805,6 @@ RSpec/MissingFeatureCategory: - 'spec/lib/gitlab/error_tracking/processor/sanitizer_processor_spec.rb' - 'spec/lib/gitlab/error_tracking/processor/sidekiq_processor_spec.rb' - 'spec/lib/gitlab/error_tracking/stack_trace_highlight_decorator_spec.rb' - - 'spec/lib/gitlab/error_tracking_spec.rb' - 'spec/lib/gitlab/etag_caching/middleware_spec.rb' - 'spec/lib/gitlab/etag_caching/router/graphql_spec.rb' - 'spec/lib/gitlab/etag_caching/router/rails_spec.rb' @@ -4686,7 +4540,6 @@ RSpec/MissingFeatureCategory: - 'spec/lib/gitlab/slash_commands/presenters/issue_show_spec.rb' - 'spec/lib/gitlab/slash_commands/presenters/run_spec.rb' - 'spec/lib/gitlab/slash_commands/run_spec.rb' - - 'spec/lib/gitlab/slug/environment_spec.rb' - 'spec/lib/gitlab/snippet_search_results_spec.rb' - 'spec/lib/gitlab/sourcegraph_spec.rb' - 'spec/lib/gitlab/spamcheck/client_spec.rb' @@ -4736,7 +4589,6 @@ RSpec/MissingFeatureCategory: - 'spec/lib/gitlab/untrusted_regexp/ruby_syntax_spec.rb' - 'spec/lib/gitlab/untrusted_regexp_spec.rb' - 'spec/lib/gitlab/uploads_transfer_spec.rb' - - 'spec/lib/gitlab/url_blocker_spec.rb' - 'spec/lib/gitlab/url_blockers/domain_allowlist_entry_spec.rb' - 'spec/lib/gitlab/url_blockers/ip_allowlist_entry_spec.rb' - 'spec/lib/gitlab/url_blockers/url_allowlist_spec.rb' @@ -5382,7 +5234,6 @@ RSpec/MissingFeatureCategory: - 'spec/models/namespaces/user_namespace_spec.rb' - 'spec/models/network/graph_spec.rb' - 'spec/models/note_diff_file_spec.rb' - - 'spec/models/note_spec.rb' - 'spec/models/notification_setting_spec.rb' - 'spec/models/oauth_access_grant_spec.rb' - 'spec/models/oauth_access_token_spec.rb' @@ -5398,7 +5249,6 @@ RSpec/MissingFeatureCategory: - 'spec/models/packages/conan/file_metadatum_spec.rb' - 'spec/models/packages/conan/metadatum_spec.rb' - 'spec/models/packages/debian/file_entry_spec.rb' - - 'spec/models/packages/debian/file_metadatum_spec.rb' - 'spec/models/packages/debian/group_architecture_spec.rb' - 'spec/models/packages/debian/group_component_file_spec.rb' - 'spec/models/packages/debian/group_component_spec.rb' @@ -5449,7 +5299,6 @@ RSpec/MissingFeatureCategory: - 'spec/models/preloaders/project_root_ancestor_preloader_spec.rb' - 'spec/models/preloaders/user_max_access_level_in_groups_preloader_spec.rb' - 'spec/models/preloaders/user_max_access_level_in_projects_preloader_spec.rb' - - 'spec/models/preloaders/users_max_access_level_in_projects_preloader_spec.rb' - 'spec/models/product_analytics_event_spec.rb' - 'spec/models/programming_language_spec.rb' - 'spec/models/project_authorization_spec.rb' @@ -5671,7 +5520,6 @@ RSpec/MissingFeatureCategory: - 'spec/presenters/packages/pypi/simple_index_presenter_spec.rb' - 'spec/presenters/packages/pypi/simple_package_versions_presenter_spec.rb' - 'spec/presenters/pages_domain_presenter_spec.rb' - - 'spec/presenters/project_clusterable_presenter_spec.rb' - 'spec/presenters/project_hook_presenter_spec.rb' - 'spec/presenters/project_member_presenter_spec.rb' - 'spec/presenters/project_presenter_spec.rb' @@ -6073,13 +5921,11 @@ RSpec/MissingFeatureCategory: - 'spec/support_specs/helpers/stub_feature_flags_spec.rb' - 'spec/support_specs/helpers/stub_method_calls_spec.rb' - 'spec/support_specs/matchers/be_sorted_spec.rb' - - 'spec/support_specs/matchers/event_store_spec.rb' - 'spec/support_specs/matchers/exceed_query_limit_helpers_spec.rb' - 'spec/support_specs/time_travel_spec.rb' - 'spec/tasks/admin_mode_spec.rb' - 'spec/tasks/config_lint_spec.rb' - 'spec/tasks/dev_rake_spec.rb' - - 'spec/tasks/gettext_rake_spec.rb' - 'spec/tasks/gitlab/artifacts/check_rake_spec.rb' - 'spec/tasks/gitlab/artifacts/migrate_rake_spec.rb' - 'spec/tasks/gitlab/background_migrations_rake_spec.rb' diff --git a/.rubocop_todo/rspec/misspelled_aggregate_failures.yml b/.rubocop_todo/rspec/misspelled_aggregate_failures.yml new file mode 100644 index 0000000000..75465411b6 --- /dev/null +++ b/.rubocop_todo/rspec/misspelled_aggregate_failures.yml @@ -0,0 +1,4 @@ +--- +# Cop supports --autocorrect. +RSpec/MisspelledAggregateFailures: + Details: grace period diff --git a/.rubocop_todo/rspec/return_from_stub.yml b/.rubocop_todo/rspec/return_from_stub.yml index 17c7213354..2b39bcbcd0 100644 --- a/.rubocop_todo/rspec/return_from_stub.yml +++ b/.rubocop_todo/rspec/return_from_stub.yml @@ -146,7 +146,6 @@ RSpec/ReturnFromStub: - 'spec/lib/gitlab/diff/file_spec.rb' - 'spec/lib/gitlab/email/message/build_ios_app_guide_spec.rb' - 'spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb' - - 'spec/lib/gitlab/error_tracking_spec.rb' - 'spec/lib/gitlab/exclusive_lease_helpers/sleeping_lock_spec.rb' - 'spec/lib/gitlab/exclusive_lease_helpers_spec.rb' - 'spec/lib/gitlab/external_authorization_spec.rb' diff --git a/.rubocop_todo/rspec/scattered_let.yml b/.rubocop_todo/rspec/scattered_let.yml index f1cb325bd5..8e3a2895d0 100644 --- a/.rubocop_todo/rspec/scattered_let.yml +++ b/.rubocop_todo/rspec/scattered_let.yml @@ -24,9 +24,9 @@ RSpec/ScatteredLet: - 'ee/spec/models/approval_wrapped_any_approver_rule_spec.rb' - 'ee/spec/models/dast_site_validation_spec.rb' - 'ee/spec/models/ee/ci/build_dependencies_spec.rb' - - 'ee/spec/models/ee/iteration_spec.rb' - 'ee/spec/models/ee/user_spec.rb' - 'ee/spec/models/epic_spec.rb' + - 'ee/spec/models/iteration_spec.rb' - 'ee/spec/models/preloaders/environments/protected_environment_preloader_spec.rb' - 'ee/spec/models/vulnerabilities/historical_statistic_spec.rb' - 'ee/spec/requests/api/analytics/project_deployment_frequency_spec.rb' diff --git a/.rubocop_todo/rspec/shared_groups_metadata.yml b/.rubocop_todo/rspec/shared_groups_metadata.yml new file mode 100644 index 0000000000..b87c851d2f --- /dev/null +++ b/.rubocop_todo/rspec/shared_groups_metadata.yml @@ -0,0 +1,8 @@ +--- +RSpec/SharedGroupsMetadata: + Details: grace period + Exclude: + - 'ee/spec/requests/ee/admin/plan_limits_controller_spec.rb' + - 'spec/lib/gitlab/ci/config/entry/retry_spec.rb' + - 'spec/lib/gitlab/git/merge_base_spec.rb' + - 'spec/models/container_repository_spec.rb' diff --git a/.rubocop_todo/rspec/verified_doubles.yml b/.rubocop_todo/rspec/verified_doubles.yml index 7bb6e4a818..6c7653fe0c 100644 --- a/.rubocop_todo/rspec/verified_doubles.yml +++ b/.rubocop_todo/rspec/verified_doubles.yml @@ -31,7 +31,6 @@ RSpec/VerifiedDoubles: - 'ee/spec/helpers/ee/ci/runners_helper_spec.rb' - 'ee/spec/helpers/ee/integrations_helper_spec.rb' - 'ee/spec/helpers/ee/subscribable_banner_helper_spec.rb' - - 'ee/spec/helpers/ee/trial_helper_spec.rb' - 'ee/spec/helpers/ee/trial_registration_helper_spec.rb' - 'ee/spec/helpers/kerberos_helper_spec.rb' - 'ee/spec/helpers/license_helper_spec.rb' diff --git a/.rubocop_todo/search/namespaced_class.yml b/.rubocop_todo/search/namespaced_class.yml new file mode 100644 index 0000000000..10e8498f55 --- /dev/null +++ b/.rubocop_todo/search/namespaced_class.yml @@ -0,0 +1,231 @@ +--- +Search/NamespacedClass: + Details: grace period + Exclude: + - 'app/controllers/concerns/search_rate_limitable.rb' + - 'app/controllers/search_controller.rb' + - 'app/graphql/resolvers/concerns/project_search_arguments.rb' + - 'app/graphql/resolvers/concerns/search_arguments.rb' + - 'app/graphql/types/issuable_searchable_field_enum.rb' + - 'app/helpers/enable_search_settings_helper.rb' + - 'app/helpers/search_helper.rb' + - 'app/models/concerns/optionally_search.rb' + - 'app/models/concerns/pg_full_text_searchable.rb' + - 'app/models/issues/search_data.rb' + - 'app/presenters/packages/nuget/search_results_presenter.rb' + - 'app/presenters/search_service_presenter.rb' + - 'app/services/packages/conan/search_service.rb' + - 'app/services/packages/nuget/search_service.rb' + - 'app/services/search_service.rb' + - 'ee/app/controllers/admin/elasticsearch_controller.rb' + - 'ee/app/controllers/ee/search_controller.rb' + - 'ee/app/graphql/types/iteration_searchable_field_enum.rb' + - 'ee/app/helpers/ee/search_helper.rb' + - 'ee/app/models/concerns/elastic/application_versioned_search.rb' + - 'ee/app/models/concerns/elastic/namespace_update.rb' + - 'ee/app/models/concerns/elastic/projects_search.rb' + - 'ee/app/models/concerns/elastic/repositories_search.rb' + - 'ee/app/models/concerns/elastic/snippets_search.rb' + - 'ee/app/models/concerns/elastic/wiki_repositories_search.rb' + - 'ee/app/models/concerns/elasticsearch_indexed_container.rb' + - 'ee/app/models/concerns/zoekt/searchable_repository.rb' + - 'ee/app/models/elastic/group_index_status.rb' + - 'ee/app/models/elastic/index_setting.rb' + - 'ee/app/models/elastic/migration_record.rb' + - 'ee/app/models/elastic/reindexing_slice.rb' + - 'ee/app/models/elastic/reindexing_subtask.rb' + - 'ee/app/models/elastic/reindexing_task.rb' + - 'ee/app/models/elasticsearch_indexed_namespace.rb' + - 'ee/app/models/elasticsearch_indexed_project.rb' + - 'ee/app/models/zoekt/indexed_namespace.rb' + - 'ee/app/models/zoekt/shard.rb' + - 'ee/app/presenters/ee/search_service_presenter.rb' + - 'ee/app/services/ee/search_service.rb' + - 'ee/app/services/elastic/bookkeeping_shard_service.rb' + - 'ee/app/services/elastic/cluster_reindexing_service.rb' + - 'ee/app/services/elastic/data_migration_service.rb' + - 'ee/app/services/elastic/index_projects_by_id_service.rb' + - 'ee/app/services/elastic/index_projects_by_range_service.rb' + - 'ee/app/services/elastic/index_projects_service.rb' + - 'ee/app/services/elastic/indexing_control_service.rb' + - 'ee/app/services/elastic/process_bookkeeping_service.rb' + - 'ee/app/services/elastic/process_initial_bookkeeping_service.rb' + - 'ee/app/services/integrations/slack_options/label_search_handler.rb' + - 'ee/app/services/integrations/slack_options/user_search_handler.rb' + - 'ee/app/services/protected_environments/search_service.rb' + - 'ee/app/workers/concerns/elastic/bulk_cron_worker.rb' + - 'ee/app/workers/concerns/elastic/indexing_control.rb' + - 'ee/app/workers/concerns/elastic/migration_backfill_helper.rb' + - 'ee/app/workers/concerns/elastic/migration_helper.rb' + - 'ee/app/workers/concerns/elastic/migration_obsolete.rb' + - 'ee/app/workers/concerns/elastic/migration_options.rb' + - 'ee/app/workers/concerns/elastic/migration_remove_fields_helper.rb' + - 'ee/app/workers/concerns/elastic/migration_state.rb' + - 'ee/app/workers/concerns/elastic/migration_update_mappings_helper.rb' + - 'ee/app/workers/elastic/migration_worker.rb' + - 'ee/app/workers/elastic/namespace_update_worker.rb' + - 'ee/app/workers/elastic/project_transfer_worker.rb' + - 'ee/app/workers/elastic_association_indexer_worker.rb' + - 'ee/app/workers/elastic_cluster_reindexing_cron_worker.rb' + - 'ee/app/workers/elastic_commit_indexer_worker.rb' + - 'ee/app/workers/elastic_delete_project_worker.rb' + - 'ee/app/workers/elastic_full_index_worker.rb' + - 'ee/app/workers/elastic_index_bulk_cron_worker.rb' + - 'ee/app/workers/elastic_index_initial_bulk_cron_worker.rb' + - 'ee/app/workers/elastic_indexing_control_worker.rb' + - 'ee/app/workers/elastic_namespace_indexer_worker.rb' + - 'ee/app/workers/elastic_namespace_rollout_worker.rb' + - 'ee/app/workers/elastic_remove_expired_namespace_subscriptions_from_index_cron_worker.rb' + - 'ee/app/workers/zoekt/indexer_worker.rb' + - 'ee/lib/api/elasticsearch_indexed_namespaces.rb' + - 'ee/lib/ee/api/helpers/search_helpers.rb' + - 'ee/lib/ee/gitlab/group_search_results.rb' + - 'ee/lib/ee/gitlab/search/parsed_query.rb' + - 'ee/lib/ee/gitlab/search_context.rb' + - 'ee/lib/ee/gitlab/search_results.rb' + - 'ee/lib/ee/gitlab/snippet_search_results.rb' + - 'ee/lib/elastic/as_json.rb' + - 'ee/lib/elastic/class_proxy_util.rb' + - 'ee/lib/elastic/instance_proxy_util.rb' + - 'ee/lib/elastic/latest/application_class_proxy.rb' + - 'ee/lib/elastic/latest/application_instance_proxy.rb' + - 'ee/lib/elastic/latest/commit_config.rb' + - 'ee/lib/elastic/latest/config.rb' + - 'ee/lib/elastic/latest/custom_language_analyzers.rb' + - 'ee/lib/elastic/latest/document_should_be_deleted_from_index_error.rb' + - 'ee/lib/elastic/latest/git_class_proxy.rb' + - 'ee/lib/elastic/latest/git_instance_proxy.rb' + - 'ee/lib/elastic/latest/issue_class_proxy.rb' + - 'ee/lib/elastic/latest/issue_config.rb' + - 'ee/lib/elastic/latest/issue_instance_proxy.rb' + - 'ee/lib/elastic/latest/merge_request_class_proxy.rb' + - 'ee/lib/elastic/latest/merge_request_config.rb' + - 'ee/lib/elastic/latest/merge_request_instance_proxy.rb' + - 'ee/lib/elastic/latest/milestone_class_proxy.rb' + - 'ee/lib/elastic/latest/milestone_instance_proxy.rb' + - 'ee/lib/elastic/latest/note_class_proxy.rb' + - 'ee/lib/elastic/latest/note_config.rb' + - 'ee/lib/elastic/latest/note_instance_proxy.rb' + - 'ee/lib/elastic/latest/project_class_proxy.rb' + - 'ee/lib/elastic/latest/project_instance_proxy.rb' + - 'ee/lib/elastic/latest/project_wiki_class_proxy.rb' + - 'ee/lib/elastic/latest/project_wiki_instance_proxy.rb' + - 'ee/lib/elastic/latest/query_context.rb' + - 'ee/lib/elastic/latest/repository_class_proxy.rb' + - 'ee/lib/elastic/latest/repository_instance_proxy.rb' + - 'ee/lib/elastic/latest/routing.rb' + - 'ee/lib/elastic/latest/snippet_class_proxy.rb' + - 'ee/lib/elastic/latest/snippet_instance_proxy.rb' + - 'ee/lib/elastic/latest/state_filter.rb' + - 'ee/lib/elastic/latest/user_class_proxy.rb' + - 'ee/lib/elastic/latest/user_config.rb' + - 'ee/lib/elastic/latest/user_instance_proxy.rb' + - 'ee/lib/elastic/metrics_update_service.rb' + - 'ee/lib/elastic/migration.rb' + - 'ee/lib/elastic/multi_version_class_proxy.rb' + - 'ee/lib/elastic/multi_version_instance_proxy.rb' + - 'ee/lib/elastic/multi_version_util.rb' + - 'ee/lib/elastic/timeout_error.rb' + - 'ee/lib/elastic/v12p1/application_class_proxy.rb' + - 'ee/lib/elastic/v12p1/application_instance_proxy.rb' + - 'ee/lib/elastic/v12p1/config.rb' + - 'ee/lib/elastic/v12p1/issue_class_proxy.rb' + - 'ee/lib/elastic/v12p1/issue_instance_proxy.rb' + - 'ee/lib/elastic/v12p1/merge_request_class_proxy.rb' + - 'ee/lib/elastic/v12p1/merge_request_instance_proxy.rb' + - 'ee/lib/elastic/v12p1/milestone_class_proxy.rb' + - 'ee/lib/elastic/v12p1/milestone_instance_proxy.rb' + - 'ee/lib/elastic/v12p1/note_class_proxy.rb' + - 'ee/lib/elastic/v12p1/note_instance_proxy.rb' + - 'ee/lib/elastic/v12p1/project_class_proxy.rb' + - 'ee/lib/elastic/v12p1/project_instance_proxy.rb' + - 'ee/lib/elastic/v12p1/project_wiki_class_proxy.rb' + - 'ee/lib/elastic/v12p1/project_wiki_instance_proxy.rb' + - 'ee/lib/elastic/v12p1/repository_class_proxy.rb' + - 'ee/lib/elastic/v12p1/repository_instance_proxy.rb' + - 'ee/lib/elastic/v12p1/routing.rb' + - 'ee/lib/elastic/v12p1/snippet_class_proxy.rb' + - 'ee/lib/elastic/v12p1/snippet_instance_proxy.rb' + - 'ee/lib/elastic/v12p1/user_class_proxy.rb' + - 'ee/lib/elastic/v12p1/user_instance_proxy.rb' + - 'ee/lib/gem_extensions/elasticsearch/model/adapter/active_record/importing.rb' + - 'ee/lib/gem_extensions/elasticsearch/model/adapter/multiple/records.rb' + - 'ee/lib/gem_extensions/elasticsearch/model/client.rb' + - 'ee/lib/gem_extensions/elasticsearch/model/indexing/instance_methods.rb' + - 'ee/lib/gem_extensions/elasticsearch/model/response/records.rb' + - 'ee/lib/gitlab/elastic/bool_expr.rb' + - 'ee/lib/gitlab/elastic/bulk_indexer.rb' + - 'ee/lib/gitlab/elastic/client.rb' + - 'ee/lib/gitlab/elastic/document_reference.rb' + - 'ee/lib/gitlab/elastic/elasticsearch_enabled_cache.rb' + - 'ee/lib/gitlab/elastic/expr_name.rb' + - 'ee/lib/gitlab/elastic/group_search_results.rb' + - 'ee/lib/gitlab/elastic/helper.rb' + - 'ee/lib/gitlab/elastic/indexer.rb' + - 'ee/lib/gitlab/elastic/project_search_results.rb' + - 'ee/lib/gitlab/elastic/search_results.rb' + - 'ee/lib/gitlab/elastic/snippet_search_results.rb' + - 'ee/lib/gitlab/metrics/global_search_indexing_slis.rb' + - 'ee/lib/gitlab/metrics/samplers/global_search_sampler.rb' + - 'ee/lib/gitlab/search/aggregation.rb' + - 'ee/lib/gitlab/search/aggregation_parser.rb' + - 'ee/lib/gitlab/search/client.rb' + - 'ee/lib/gitlab/search/index_curator.rb' + - 'ee/lib/gitlab/search/recent_epics.rb' + - 'ee/lib/gitlab/usage/metrics/instrumentations/advanced_search/build_type_metric.rb' + - 'ee/lib/gitlab/usage/metrics/instrumentations/advanced_search/distribution_metric.rb' + - 'ee/lib/gitlab/usage/metrics/instrumentations/advanced_search/lucene_version_metric.rb' + - 'ee/lib/gitlab/usage/metrics/instrumentations/advanced_search/version_metric.rb' + - 'ee/lib/gitlab/zoekt/search_results.rb' + - 'ee/lib/system_check/app/advanced_search_migrations_check.rb' + - 'ee/lib/system_check/app/search_check.rb' + - 'ee/lib/zoekt/logger.rb' + - 'ee/spec/support/elastic.rb' + - 'ee/spec/support/elastic_query_name_inspector.rb' + - 'ee/spec/support/helpers/elasticsearch_helpers.rb' + - 'ee/spec/support/helpers/search_results_helpers.rb' + - 'ee/spec/support/zoekt.rb' + - 'lib/api/entities/nuget/search_result.rb' + - 'lib/api/entities/nuget/search_result_version.rb' + - 'lib/api/entities/nuget/search_results.rb' + - 'lib/api/helpers/search_helpers.rb' + - 'lib/gitlab/background_migration/backfill_imported_issue_search_data.rb' + - 'lib/gitlab/background_migration/backfill_issue_search_data.rb' + - 'lib/gitlab/elasticsearch/logger.rb' + - 'lib/gitlab/empty_search_results.rb' + - 'lib/gitlab/github_import/clients/search_repos.rb' + - 'lib/gitlab/group_search_results.rb' + - 'lib/gitlab/metrics/elasticsearch_rack_middleware.rb' + - 'lib/gitlab/metrics/global_search_slis.rb' + - 'lib/gitlab/project_search_results.rb' + - 'lib/gitlab/redacted_search_results_logger.rb' + - 'lib/gitlab/search/abuse_detection.rb' + - 'lib/gitlab/search/abuse_validators/no_abusive_coercion_from_string_validator.rb' + - 'lib/gitlab/search/abuse_validators/no_abusive_term_length_validator.rb' + - 'lib/gitlab/search/found_blob.rb' + - 'lib/gitlab/search/found_wiki_page.rb' + - 'lib/gitlab/search/params.rb' + - 'lib/gitlab/search/parsed_query.rb' + - 'lib/gitlab/search/query.rb' + - 'lib/gitlab/search/recent_issues.rb' + - 'lib/gitlab/search/recent_items.rb' + - 'lib/gitlab/search/recent_merge_requests.rb' + - 'lib/gitlab/search/sort_options.rb' + - 'lib/gitlab/search_context.rb' + - 'lib/gitlab/search_results.rb' + - 'lib/gitlab/slash_commands/issue_search.rb' + - 'lib/gitlab/slash_commands/presenters/issue_search.rb' + - 'lib/gitlab/snippet_search_results.rb' + - 'lib/gitlab/usage_data_counters/search_counter.rb' + - 'lib/peek/views/elasticsearch.rb' + - 'lib/peek/views/zoekt.rb' + - 'qa/qa/ee/page/admin/settings/component/elasticsearch.rb' + - 'qa/qa/ee/resource/settings/elasticsearch.rb' + - 'qa/qa/ee/scenario/test/integration/elasticsearch.rb' + - 'qa/qa/page/search/results.rb' + - 'qa/qa/runtime/search.rb' + - 'spec/support/helpers/filtered_search_helpers.rb' + - 'spec/support/helpers/search_helpers.rb' + - 'spec/support/helpers/search_settings_helpers.rb' + - 'lib/sidebars/search/panel.rb' + - 'spec/lib/sidebars/search/panel_spec.rb' diff --git a/.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml b/.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml new file mode 100644 index 0000000000..efd7db7ad2 --- /dev/null +++ b/.rubocop_todo/sidekiq_load_balancing/worker_data_consistency.yml @@ -0,0 +1,459 @@ +--- +SidekiqLoadBalancing/WorkerDataConsistency: + Details: grace period + Exclude: + - 'app/workers/admin_email_worker.rb' + - 'app/workers/analytics/usage_trends/count_job_trigger_worker.rb' + - 'app/workers/analytics/usage_trends/counter_job_worker.rb' + - 'app/workers/approve_blocked_pending_approval_users_worker.rb' + - 'app/workers/authorized_keys_worker.rb' + - 'app/workers/authorized_project_update/periodic_recalculate_worker.rb' + - 'app/workers/authorized_project_update/project_recalculate_worker.rb' + - 'app/workers/authorized_project_update/user_refresh_from_replica_worker.rb' + - 'app/workers/authorized_projects_worker.rb' + - 'app/workers/auto_devops/disable_worker.rb' + - 'app/workers/auto_merge_process_worker.rb' + - 'app/workers/build_success_worker.rb' + - 'app/workers/bulk_import_worker.rb' + - 'app/workers/bulk_imports/entity_worker.rb' + - 'app/workers/bulk_imports/export_request_worker.rb' + - 'app/workers/bulk_imports/pipeline_worker.rb' + - 'app/workers/bulk_imports/relation_export_worker.rb' + - 'app/workers/bulk_imports/stuck_import_worker.rb' + - 'app/workers/chaos/cpu_spin_worker.rb' + - 'app/workers/chaos/db_spin_worker.rb' + - 'app/workers/chaos/kill_worker.rb' + - 'app/workers/chaos/leak_mem_worker.rb' + - 'app/workers/chaos/sleep_worker.rb' + - 'app/workers/chat_notification_worker.rb' + - 'app/workers/ci/archive_traces_cron_worker.rb' + - 'app/workers/ci/build_finished_worker.rb' + - 'app/workers/ci/build_prepare_worker.rb' + - 'app/workers/ci/build_schedule_worker.rb' + - 'app/workers/ci/build_trace_chunk_flush_worker.rb' + - 'app/workers/ci/cancel_pipeline_worker.rb' + - 'app/workers/ci/cancel_redundant_pipelines_worker.rb' + - 'app/workers/ci/daily_build_group_report_results_worker.rb' + - 'app/workers/ci/delete_objects_worker.rb' + - 'app/workers/ci/delete_unit_tests_worker.rb' + - 'app/workers/ci/drop_pipeline_worker.rb' + - 'app/workers/ci/external_pull_requests/create_pipeline_worker.rb' + - 'app/workers/ci/initial_pipeline_process_worker.rb' + - 'app/workers/ci/job_artifacts/expire_project_build_artifacts_worker.rb' + - 'app/workers/ci/merge_requests/add_todo_when_build_fails_worker.rb' + - 'app/workers/ci/pending_builds/update_group_worker.rb' + - 'app/workers/ci/pending_builds/update_project_worker.rb' + - 'app/workers/ci/pipeline_artifacts/coverage_report_worker.rb' + - 'app/workers/ci/pipeline_artifacts/create_quality_report_worker.rb' + - 'app/workers/ci/pipeline_artifacts/expire_artifacts_worker.rb' + - 'app/workers/ci/pipeline_success_unlock_artifacts_worker.rb' + - 'app/workers/ci/ref_delete_unlock_artifacts_worker.rb' + - 'app/workers/ci/resource_groups/assign_resource_from_resource_group_worker.rb' + - 'app/workers/ci/runners/process_runner_version_update_worker.rb' + - 'app/workers/ci/schedule_delete_objects_cron_worker.rb' + - 'app/workers/ci/stuck_builds/drop_running_worker.rb' + - 'app/workers/ci/stuck_builds/drop_scheduled_worker.rb' + - 'app/workers/ci/test_failure_history_worker.rb' + - 'app/workers/ci_platform_metrics_update_cron_worker.rb' + - 'app/workers/cleanup_container_repository_worker.rb' + - 'app/workers/cluster_configure_istio_worker.rb' + - 'app/workers/cluster_install_app_worker.rb' + - 'app/workers/cluster_patch_app_worker.rb' + - 'app/workers/cluster_provision_worker.rb' + - 'app/workers/cluster_update_app_worker.rb' + - 'app/workers/cluster_upgrade_app_worker.rb' + - 'app/workers/cluster_wait_for_app_installation_worker.rb' + - 'app/workers/cluster_wait_for_app_update_worker.rb' + - 'app/workers/cluster_wait_for_ingress_ip_address_worker.rb' + - 'app/workers/clusters/agents/delete_expired_events_worker.rb' + - 'app/workers/clusters/applications/activate_integration_worker.rb' + - 'app/workers/clusters/applications/deactivate_integration_worker.rb' + - 'app/workers/clusters/applications/uninstall_worker.rb' + - 'app/workers/clusters/applications/wait_for_uninstall_app_worker.rb' + - 'app/workers/clusters/integrations/check_prometheus_health_worker.rb' + - 'app/workers/container_expiration_policies/cleanup_container_repository_worker.rb' + - 'app/workers/container_expiration_policy_worker.rb' + - 'app/workers/container_registry/cleanup_worker.rb' + - 'app/workers/container_registry/delete_container_repository_worker.rb' + - 'app/workers/container_registry/migration/enqueuer_worker.rb' + - 'app/workers/container_registry/migration/guard_worker.rb' + - 'app/workers/counters/cleanup_refresh_worker.rb' + - 'app/workers/create_commit_signature_worker.rb' + - 'app/workers/create_note_diff_file_worker.rb' + - 'app/workers/create_pipeline_worker.rb' + - 'app/workers/database/drop_detached_partitions_worker.rb' + - 'app/workers/database/partition_management_worker.rb' + - 'app/workers/delete_container_repository_worker.rb' + - 'app/workers/delete_diff_files_worker.rb' + - 'app/workers/delete_merged_branches_worker.rb' + - 'app/workers/delete_stored_files_worker.rb' + - 'app/workers/delete_user_worker.rb' + - 'app/workers/dependency_proxy/cleanup_blob_worker.rb' + - 'app/workers/dependency_proxy/cleanup_dependency_proxy_worker.rb' + - 'app/workers/dependency_proxy/cleanup_manifest_worker.rb' + - 'app/workers/dependency_proxy/image_ttl_group_policy_worker.rb' + - 'app/workers/deployments/drop_older_deployments_worker.rb' + - 'app/workers/deployments/link_merge_request_worker.rb' + - 'app/workers/deployments/update_environment_worker.rb' + - 'app/workers/design_management/copy_design_collection_worker.rb' + - 'app/workers/design_management/new_version_worker.rb' + - 'app/workers/destroy_pages_deployments_worker.rb' + - 'app/workers/detect_repository_languages_worker.rb' + - 'app/workers/disallow_two_factor_for_group_worker.rb' + - 'app/workers/disallow_two_factor_for_subgroups_worker.rb' + - 'app/workers/email_receiver_worker.rb' + - 'app/workers/emails_on_push_worker.rb' + - 'app/workers/environments/auto_delete_cron_worker.rb' + - 'app/workers/environments/auto_stop_cron_worker.rb' + - 'app/workers/environments/auto_stop_worker.rb' + - 'app/workers/environments/canary_ingress/update_worker.rb' + - 'app/workers/error_tracking_issue_link_worker.rb' + - 'app/workers/expire_build_artifacts_worker.rb' + - 'app/workers/export_csv_worker.rb' + - 'app/workers/file_hook_worker.rb' + - 'app/workers/flush_counter_increments_worker.rb' + - 'app/workers/gitlab/export/prune_project_export_jobs_worker.rb' + - 'app/workers/gitlab/github_gists_import/finish_import_worker.rb' + - 'app/workers/gitlab/github_gists_import/import_gist_worker.rb' + - 'app/workers/gitlab/github_gists_import/start_import_worker.rb' + - 'app/workers/gitlab/github_import/advance_stage_worker.rb' + - 'app/workers/gitlab/github_import/refresh_import_jid_worker.rb' + - 'app/workers/gitlab/github_import/stage/finish_import_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_attachments_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_base_data_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_collaborators_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_issue_events_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_notes_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_protected_branches_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_pull_requests_review_requests_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb' + - 'app/workers/gitlab/github_import/stage/import_repository_worker.rb' + - 'app/workers/gitlab/jira_import/advance_stage_worker.rb' + - 'app/workers/gitlab/jira_import/import_issue_worker.rb' + - 'app/workers/gitlab/jira_import/stage/start_import_worker.rb' + - 'app/workers/gitlab/phabricator_import/import_tasks_worker.rb' + - 'app/workers/gitlab_performance_bar_stats_worker.rb' + - 'app/workers/gitlab_service_ping_worker.rb' + - 'app/workers/gitlab_shell_worker.rb' + - 'app/workers/google_cloud/create_cloudsql_instance_worker.rb' + - 'app/workers/group_destroy_worker.rb' + - 'app/workers/group_export_worker.rb' + - 'app/workers/group_import_worker.rb' + - 'app/workers/groups/update_statistics_worker.rb' + - 'app/workers/groups/update_two_factor_requirement_for_members_worker.rb' + - 'app/workers/hashed_storage/migrator_worker.rb' + - 'app/workers/hashed_storage/project_migrate_worker.rb' + - 'app/workers/hashed_storage/project_rollback_worker.rb' + - 'app/workers/hashed_storage/rollbacker_worker.rb' + - 'app/workers/import_export_project_cleanup_worker.rb' + - 'app/workers/import_issues_csv_worker.rb' + - 'app/workers/incident_management/add_severity_system_note_worker.rb' + - 'app/workers/incident_management/close_incident_worker.rb' + - 'app/workers/incident_management/pager_duty/process_incident_worker.rb' + - 'app/workers/incident_management/process_alert_worker_v2.rb' + - 'app/workers/integrations/execute_worker.rb' + - 'app/workers/integrations/irker_worker.rb' + - 'app/workers/invalid_gpg_signature_update_worker.rb' + - 'app/workers/issuable/label_links_destroy_worker.rb' + - 'app/workers/issuable_export_csv_worker.rb' + - 'app/workers/issuables/clear_groups_issue_counter_worker.rb' + - 'app/workers/issue_due_scheduler_worker.rb' + - 'app/workers/issues/close_worker.rb' + - 'app/workers/issues/placement_worker.rb' + - 'app/workers/issues/rebalancing_worker.rb' + - 'app/workers/jira_connect/forward_event_worker.rb' + - 'app/workers/jira_connect/retry_request_worker.rb' + - 'app/workers/loose_foreign_keys/cleanup_worker.rb' + - 'app/workers/mail_scheduler/issue_due_worker.rb' + - 'app/workers/mail_scheduler/notification_service_worker.rb' + - 'app/workers/member_invitation_reminder_emails_worker.rb' + - 'app/workers/members_destroyer/unassign_issuables_worker.rb' + - 'app/workers/merge_request_cleanup_refs_worker.rb' + - 'app/workers/merge_request_mergeability_check_worker.rb' + - 'app/workers/merge_requests/close_issue_worker.rb' + - 'app/workers/merge_requests/create_pipeline_worker.rb' + - 'app/workers/merge_requests/delete_source_branch_worker.rb' + - 'app/workers/merge_requests/handle_assignees_change_worker.rb' + - 'app/workers/merge_requests/resolve_todos_worker.rb' + - 'app/workers/merge_worker.rb' + - 'app/workers/metrics/dashboard/prune_old_annotations_worker.rb' + - 'app/workers/metrics/dashboard/schedule_annotations_prune_worker.rb' + - 'app/workers/metrics/dashboard/sync_dashboards_worker.rb' + - 'app/workers/migrate_external_diffs_worker.rb' + - 'app/workers/namespaces/in_product_marketing_emails_worker.rb' + - 'app/workers/namespaces/process_sync_events_worker.rb' + - 'app/workers/namespaces/prune_aggregation_schedules_worker.rb' + - 'app/workers/namespaces/schedule_aggregation_worker.rb' + - 'app/workers/new_issue_worker.rb' + - 'app/workers/new_merge_request_worker.rb' + - 'app/workers/new_note_worker.rb' + - 'app/workers/object_pool/create_worker.rb' + - 'app/workers/object_pool/destroy_worker.rb' + - 'app/workers/object_pool/join_worker.rb' + - 'app/workers/object_pool/schedule_join_worker.rb' + - 'app/workers/object_storage/migrate_uploads_worker.rb' + - 'app/workers/onboarding/issue_created_worker.rb' + - 'app/workers/onboarding/pipeline_created_worker.rb' + - 'app/workers/onboarding/progress_worker.rb' + - 'app/workers/onboarding/user_added_worker.rb' + - 'app/workers/packages/cleanup/execute_policy_worker.rb' + - 'app/workers/packages/cleanup_package_file_worker.rb' + - 'app/workers/packages/cleanup_package_registry_worker.rb' + - 'app/workers/packages/composer/cache_cleanup_worker.rb' + - 'app/workers/packages/composer/cache_update_worker.rb' + - 'app/workers/packages/debian/cleanup_dangling_package_files_worker.rb' + - 'app/workers/packages/debian/generate_distribution_worker.rb' + - 'app/workers/packages/debian/process_changes_worker.rb' + - 'app/workers/packages/debian/process_package_file_worker.rb' + - 'app/workers/packages/go/sync_packages_worker.rb' + - 'app/workers/packages/helm/extraction_worker.rb' + - 'app/workers/packages/maven/metadata/sync_worker.rb' + - 'app/workers/packages/nuget/extraction_worker.rb' + - 'app/workers/packages/rubygems/extraction_worker.rb' + - 'app/workers/pages_domain_removal_cron_worker.rb' + - 'app/workers/pages_domain_ssl_renewal_cron_worker.rb' + - 'app/workers/pages_domain_ssl_renewal_worker.rb' + - 'app/workers/pages_domain_verification_cron_worker.rb' + - 'app/workers/pages_domain_verification_worker.rb' + - 'app/workers/pages_worker.rb' + - 'app/workers/partition_creation_worker.rb' + - 'app/workers/personal_access_tokens/expired_notification_worker.rb' + - 'app/workers/personal_access_tokens/expiring_worker.rb' + - 'app/workers/pipeline_metrics_worker.rb' + - 'app/workers/pipeline_process_worker.rb' + - 'app/workers/pipeline_schedule_worker.rb' + - 'app/workers/post_receive.rb' + - 'app/workers/process_commit_worker.rb' + - 'app/workers/project_cache_worker.rb' + - 'app/workers/project_destroy_worker.rb' + - 'app/workers/project_export_worker.rb' + - 'app/workers/projects/after_import_worker.rb' + - 'app/workers/projects/delete_branch_worker.rb' + - 'app/workers/projects/finalize_project_statistics_refresh_worker.rb' + - 'app/workers/projects/import_export/create_relation_exports_worker.rb' + - 'app/workers/projects/import_export/parallel_project_export_worker.rb' + - 'app/workers/projects/import_export/relation_export_worker.rb' + - 'app/workers/projects/import_export/wait_relation_exports_worker.rb' + - 'app/workers/projects/inactive_projects_deletion_cron_worker.rb' + - 'app/workers/projects/post_creation_worker.rb' + - 'app/workers/projects/process_sync_events_worker.rb' + - 'app/workers/projects/record_target_platforms_worker.rb' + - 'app/workers/projects/refresh_build_artifacts_size_statistics_worker.rb' + - 'app/workers/projects/schedule_bulk_repository_shard_moves_worker.rb' + - 'app/workers/projects/schedule_refresh_build_artifacts_size_statistics_worker.rb' + - 'app/workers/propagate_integration_group_worker.rb' + - 'app/workers/propagate_integration_inherit_descendant_worker.rb' + - 'app/workers/propagate_integration_inherit_worker.rb' + - 'app/workers/propagate_integration_project_worker.rb' + - 'app/workers/propagate_integration_worker.rb' + - 'app/workers/prune_old_events_worker.rb' + - 'app/workers/purge_dependency_proxy_cache_worker.rb' + - 'app/workers/rebase_worker.rb' + - 'app/workers/releases/create_evidence_worker.rb' + - 'app/workers/releases/manage_evidence_worker.rb' + - 'app/workers/remote_mirror_notification_worker.rb' + - 'app/workers/remove_expired_group_links_worker.rb' + - 'app/workers/remove_expired_members_worker.rb' + - 'app/workers/remove_unaccepted_member_invites_worker.rb' + - 'app/workers/remove_unreferenced_lfs_objects_worker.rb' + - 'app/workers/repository_archive_cache_worker.rb' + - 'app/workers/repository_check/batch_worker.rb' + - 'app/workers/repository_check/clear_worker.rb' + - 'app/workers/repository_check/dispatch_worker.rb' + - 'app/workers/repository_check/single_repository_worker.rb' + - 'app/workers/repository_cleanup_worker.rb' + - 'app/workers/repository_fork_worker.rb' + - 'app/workers/repository_import_worker.rb' + - 'app/workers/repository_update_remote_mirror_worker.rb' + - 'app/workers/run_pipeline_schedule_worker.rb' + - 'app/workers/schedule_merge_request_cleanup_refs_worker.rb' + - 'app/workers/schedule_migrate_external_diffs_worker.rb' + - 'app/workers/self_monitoring_project_create_worker.rb' + - 'app/workers/self_monitoring_project_delete_worker.rb' + - 'app/workers/service_desk_email_receiver_worker.rb' + - 'app/workers/snippets/schedule_bulk_repository_shard_moves_worker.rb' + - 'app/workers/ssh_keys/expired_notification_worker.rb' + - 'app/workers/ssh_keys/expiring_soon_notification_worker.rb' + - 'app/workers/stage_update_worker.rb' + - 'app/workers/stuck_ci_jobs_worker.rb' + - 'app/workers/stuck_export_jobs_worker.rb' + - 'app/workers/stuck_merge_jobs_worker.rb' + - 'app/workers/system_hook_push_worker.rb' + - 'app/workers/tasks_to_be_done/create_worker.rb' + - 'app/workers/terraform/states/destroy_worker.rb' + - 'app/workers/todos_destroyer/confidential_issue_worker.rb' + - 'app/workers/todos_destroyer/destroyed_designs_worker.rb' + - 'app/workers/todos_destroyer/destroyed_issuable_worker.rb' + - 'app/workers/todos_destroyer/entity_leave_worker.rb' + - 'app/workers/todos_destroyer/group_private_worker.rb' + - 'app/workers/todos_destroyer/private_features_worker.rb' + - 'app/workers/todos_destroyer/project_private_worker.rb' + - 'app/workers/trending_projects_worker.rb' + - 'app/workers/update_container_registry_info_worker.rb' + - 'app/workers/update_external_pull_requests_worker.rb' + - 'app/workers/update_head_pipeline_for_merge_request_worker.rb' + - 'app/workers/update_highest_role_worker.rb' + - 'app/workers/update_merge_requests_worker.rb' + - 'app/workers/update_project_statistics_worker.rb' + - 'app/workers/upload_checksum_worker.rb' + - 'app/workers/user_status_cleanup/batch_worker.rb' + - 'app/workers/users/create_statistics_worker.rb' + - 'app/workers/users/deactivate_dormant_users_worker.rb' + - 'app/workers/users/migrate_records_to_ghost_user_in_batches_worker.rb' + - 'app/workers/wait_for_cluster_creation_worker.rb' + - 'app/workers/web_hooks/log_destroy_worker.rb' + - 'app/workers/web_hooks/log_execution_worker.rb' + - 'app/workers/work_items/import_work_items_csv_worker.rb' + - 'app/workers/x509_certificate_revoke_worker.rb' + - 'app/workers/x509_issuer_crl_check_worker.rb' + - 'ee/app/workers/active_user_count_threshold_worker.rb' + - 'ee/app/workers/adjourned_group_deletion_worker.rb' + - 'ee/app/workers/adjourned_project_deletion_worker.rb' + - 'ee/app/workers/adjourned_projects_deletion_cron_worker.rb' + - 'ee/app/workers/admin_emails_worker.rb' + - 'ee/app/workers/analytics/code_review_metrics_worker.rb' + - 'ee/app/workers/analytics/cycle_analytics/consistency_worker.rb' + - 'ee/app/workers/analytics/cycle_analytics/incremental_worker.rb' + - 'ee/app/workers/analytics/cycle_analytics/reaggregation_worker.rb' + - 'ee/app/workers/analytics/devops_adoption/create_all_snapshots_worker.rb' + - 'ee/app/workers/analytics/devops_adoption/create_snapshot_worker.rb' + - 'ee/app/workers/app_sec/dast/profile_schedule_worker.rb' + - 'ee/app/workers/app_sec/dast/scanner_profiles_builds/consistency_worker.rb' + - 'ee/app/workers/app_sec/dast/scans/consistency_worker.rb' + - 'ee/app/workers/app_sec/dast/site_profiles_builds/consistency_worker.rb' + - 'ee/app/workers/approval_rules/external_approval_rule_payload_worker.rb' + - 'ee/app/workers/arkose/blocked_users_report_worker.rb' + - 'ee/app/workers/auth/saml_group_sync_worker.rb' + - 'ee/app/workers/automation/execute_rule_worker.rb' + - 'ee/app/workers/ci/batch_reset_minutes_worker.rb' + - 'ee/app/workers/ci/minutes/refresh_cached_data_worker.rb' + - 'ee/app/workers/ci/minutes/update_project_and_namespace_usage_worker.rb' + - 'ee/app/workers/ci/sync_reports_to_report_approval_rules_worker.rb' + - 'ee/app/workers/ci/upstream_projects_subscriptions_cleanup_worker.rb' + - 'ee/app/workers/clear_shared_runners_minutes_worker.rb' + - 'ee/app/workers/compliance_management/chain_of_custody_report_worker.rb' + - 'ee/app/workers/compliance_management/merge_requests/compliance_violations_consistency_worker.rb' + - 'ee/app/workers/compliance_management/merge_requests/compliance_violations_worker.rb' + - 'ee/app/workers/compliance_management/update_default_framework_worker.rb' + - 'ee/app/workers/create_github_webhook_worker.rb' + - 'ee/app/workers/dependencies/destroy_export_worker.rb' + - 'ee/app/workers/dependencies/export_worker.rb' + - 'ee/app/workers/deployments/auto_rollback_worker.rb' + - 'ee/app/workers/dora/daily_metrics/refresh_worker.rb' + - 'ee/app/workers/elastic/migration_worker.rb' + - 'ee/app/workers/elastic_association_indexer_worker.rb' + - 'ee/app/workers/elastic_cluster_reindexing_cron_worker.rb' + - 'ee/app/workers/elastic_commit_indexer_worker.rb' + - 'ee/app/workers/elastic_delete_project_worker.rb' + - 'ee/app/workers/elastic_full_index_worker.rb' + - 'ee/app/workers/elastic_indexing_control_worker.rb' + - 'ee/app/workers/elastic_namespace_indexer_worker.rb' + - 'ee/app/workers/elastic_namespace_rollout_worker.rb' + - 'ee/app/workers/elastic_remove_expired_namespace_subscriptions_from_index_cron_worker.rb' + - 'ee/app/workers/emails/abandoned_trial_emails_cron_worker.rb' + - 'ee/app/workers/epics/new_epic_issue_worker.rb' + - 'ee/app/workers/epics/update_cached_metadata_worker.rb' + - 'ee/app/workers/epics/update_epics_dates_worker.rb' + - 'ee/app/workers/geo/batch/project_registry_scheduler_worker.rb' + - 'ee/app/workers/geo/batch/project_registry_worker.rb' + - 'ee/app/workers/geo/batch_event_create_worker.rb' + - 'ee/app/workers/geo/container_repository_sync_worker.rb' + - 'ee/app/workers/geo/create_repository_updated_event_worker.rb' + - 'ee/app/workers/geo/design_repository_sync_worker.rb' + - 'ee/app/workers/geo/destroy_worker.rb' + - 'ee/app/workers/geo/event_worker.rb' + - 'ee/app/workers/geo/file_registry_removal_worker.rb' + - 'ee/app/workers/geo/file_removal_worker.rb' + - 'ee/app/workers/geo/hashed_storage_attachments_migration_worker.rb' + - 'ee/app/workers/geo/hashed_storage_migration_worker.rb' + - 'ee/app/workers/geo/metrics_update_worker.rb' + - 'ee/app/workers/geo/project_sync_worker.rb' + - 'ee/app/workers/geo/prune_event_log_worker.rb' + - 'ee/app/workers/geo/rename_repository_worker.rb' + - 'ee/app/workers/geo/repositories_clean_up_worker.rb' + - 'ee/app/workers/geo/repository_cleanup_worker.rb' + - 'ee/app/workers/geo/repository_verification/primary/single_worker.rb' + - 'ee/app/workers/geo/repository_verification/secondary/single_worker.rb' + - 'ee/app/workers/geo/reverification_batch_worker.rb' + - 'ee/app/workers/geo/scheduler/per_shard_scheduler_worker.rb' + - 'ee/app/workers/geo/scheduler/scheduler_worker.rb' + - 'ee/app/workers/geo/secondary/registry_consistency_worker.rb' + - 'ee/app/workers/geo/secondary_usage_data_cron_worker.rb' + - 'ee/app/workers/geo/sidekiq_cron_config_worker.rb' + - 'ee/app/workers/geo/sync_timeout_cron_worker.rb' + - 'ee/app/workers/geo/verification_batch_worker.rb' + - 'ee/app/workers/geo/verification_cron_worker.rb' + - 'ee/app/workers/geo/verification_state_backfill_worker.rb' + - 'ee/app/workers/geo/verification_timeout_worker.rb' + - 'ee/app/workers/geo/verification_worker.rb' + - 'ee/app/workers/geo_repository_destroy_worker.rb' + - 'ee/app/workers/gitlab_subscriptions/schedule_refresh_seats_worker.rb' + - 'ee/app/workers/gitlab_subscriptions/trials/apply_trial_worker.rb' + - 'ee/app/workers/group_saml_group_sync_worker.rb' + - 'ee/app/workers/groups/schedule_bulk_repository_shard_moves_worker.rb' + - 'ee/app/workers/historical_data_worker.rb' + - 'ee/app/workers/import_software_licenses_worker.rb' + - 'ee/app/workers/incident_management/apply_incident_sla_exceeded_label_worker.rb' + - 'ee/app/workers/incident_management/incident_sla_exceeded_check_worker.rb' + - 'ee/app/workers/incident_management/oncall_rotations/persist_all_rotations_shifts_job.rb' + - 'ee/app/workers/incident_management/oncall_rotations/persist_shifts_job.rb' + - 'ee/app/workers/incident_management/pending_escalations/alert_check_worker.rb' + - 'ee/app/workers/incident_management/pending_escalations/alert_create_worker.rb' + - 'ee/app/workers/incident_management/pending_escalations/issue_check_worker.rb' + - 'ee/app/workers/incident_management/pending_escalations/issue_create_worker.rb' + - 'ee/app/workers/incident_management/pending_escalations/schedule_check_cron_worker.rb' + - 'ee/app/workers/iterations/cadences/create_iterations_worker.rb' + - 'ee/app/workers/iterations/cadences/schedule_create_iterations_worker.rb' + - 'ee/app/workers/iterations/roll_over_issues_worker.rb' + - 'ee/app/workers/iterations_update_status_worker.rb' + - 'ee/app/workers/ldap_all_groups_sync_worker.rb' + - 'ee/app/workers/ldap_group_sync_worker.rb' + - 'ee/app/workers/ldap_sync_worker.rb' + - 'ee/app/workers/merge_request_reset_approvals_worker.rb' + - 'ee/app/workers/merge_requests/capture_suggested_reviewers_accepted_worker.rb' + - 'ee/app/workers/merge_requests/fetch_suggested_reviewers_worker.rb' + - 'ee/app/workers/merge_requests/llm/summarize_merge_request_worker.rb' + - 'ee/app/workers/merge_requests/sync_code_owner_approval_rules_worker.rb' + - 'ee/app/workers/merge_trains/refresh_worker.rb' + - 'ee/app/workers/namespaces/free_user_cap/backfill_notification_clearing_jobs_worker.rb' + - 'ee/app/workers/namespaces/free_user_cap/backfill_notification_jobs_worker.rb' + - 'ee/app/workers/namespaces/free_user_cap/notification_clearing_worker.rb' + - 'ee/app/workers/namespaces/free_user_cap/over_limit_notification_worker.rb' + - 'ee/app/workers/namespaces/sync_namespace_name_worker.rb' + - 'ee/app/workers/new_epic_worker.rb' + - 'ee/app/workers/onboarding/create_learn_gitlab_worker.rb' + - 'ee/app/workers/package_metadata/sync_worker.rb' + - 'ee/app/workers/personal_access_tokens/groups/policy_worker.rb' + - 'ee/app/workers/personal_access_tokens/instance/policy_worker.rb' + - 'ee/app/workers/projects/register_suggested_reviewers_project_worker.rb' + - 'ee/app/workers/refresh_license_compliance_checks_worker.rb' + - 'ee/app/workers/requirements_management/import_requirements_csv_worker.rb' + - 'ee/app/workers/requirements_management/process_requirements_reports_worker.rb' + - 'ee/app/workers/sbom/ingest_reports_worker.rb' + - 'ee/app/workers/scan_security_report_secrets_worker.rb' + - 'ee/app/workers/search/index_curation_worker.rb' + - 'ee/app/workers/security/auto_fix_worker.rb' + - 'ee/app/workers/security/create_orchestration_policy_worker.rb' + - 'ee/app/workers/security/orchestration_policy_rule_schedule_worker.rb' + - 'ee/app/workers/security/process_scan_result_policy_worker.rb' + - 'ee/app/workers/security/scans/purge_by_job_id_worker.rb' + - 'ee/app/workers/security/scans/purge_worker.rb' + - 'ee/app/workers/security/store_scans_worker.rb' + - 'ee/app/workers/security/sync_scan_policies_worker.rb' + - 'ee/app/workers/security/track_secure_scans_worker.rb' + - 'ee/app/workers/set_user_status_based_on_user_cap_setting_worker.rb' + - 'ee/app/workers/status_page/publish_worker.rb' + - 'ee/app/workers/store_security_reports_worker.rb' + - 'ee/app/workers/sync_seat_link_request_worker.rb' + - 'ee/app/workers/sync_seat_link_worker.rb' + - 'ee/app/workers/todos_destroyer/confidential_epic_worker.rb' + - 'ee/app/workers/vulnerabilities/historical_statistics/deletion_worker.rb' + - 'ee/app/workers/vulnerabilities/statistics/adjustment_worker.rb' + - 'ee/app/workers/vulnerabilities/statistics/schedule_worker.rb' + - 'ee/app/workers/vulnerability_exports/export_deletion_worker.rb' + - 'ee/app/workers/vulnerability_exports/export_worker.rb' + - 'ee/app/workers/zoekt/indexer_worker.rb' diff --git a/.rubocop_todo/style/class_and_module_children.yml b/.rubocop_todo/style/class_and_module_children.yml index c49901db69..4485a5df95 100644 --- a/.rubocop_todo/style/class_and_module_children.yml +++ b/.rubocop_todo/style/class_and_module_children.yml @@ -285,7 +285,6 @@ Style/ClassAndModuleChildren: - 'app/models/packages/build_info.rb' - 'app/models/packages/conan/file_metadatum.rb' - 'app/models/packages/conan/metadatum.rb' - - 'app/models/packages/debian/file_metadatum.rb' - 'app/models/packages/debian/group_architecture.rb' - 'app/models/packages/debian/group_component.rb' - 'app/models/packages/debian/group_component_file.rb' diff --git a/.rubocop_todo/style/empty_else.yml b/.rubocop_todo/style/empty_else.yml index 97f974c9a1..87b170297a 100644 --- a/.rubocop_todo/style/empty_else.yml +++ b/.rubocop_todo/style/empty_else.yml @@ -29,7 +29,6 @@ Style/EmptyElse: - 'ee/app/controllers/admin/audit_logs_controller.rb' - 'ee/app/controllers/ee/groups_controller.rb' - 'ee/app/helpers/ee/kerberos_helper.rb' - - 'ee/app/helpers/ee/trial_helper.rb' - 'ee/app/models/ee/audit_event.rb' - 'ee/app/services/ee/users/update_service.rb' - 'ee/app/services/epics/tree_reorder_service.rb' diff --git a/.rubocop_todo/style/empty_method.yml b/.rubocop_todo/style/empty_method.yml index 7b0390f7d3..dd55c4f45c 100644 --- a/.rubocop_todo/style/empty_method.yml +++ b/.rubocop_todo/style/empty_method.yml @@ -49,7 +49,6 @@ Style/EmptyMethod: - 'app/controllers/projects/triggers_controller.rb' - 'app/controllers/pwa_controller.rb' - 'app/controllers/search_controller.rb' - - 'app/experiments/security_actions_continuous_onboarding_experiment.rb' - 'app/graphql/resolvers/concerns/caching_array_resolver.rb' - 'app/helpers/subscribable_banner_helper.rb' - 'app/helpers/users/callouts_helper.rb' @@ -85,7 +84,6 @@ Style/EmptyMethod: - 'ee/app/controllers/groups/analytics/cycle_analytics_controller.rb' - 'ee/app/controllers/groups/analytics/devops_adoption_controller.rb' - 'ee/app/controllers/groups/compliance_frameworks_controller.rb' - - 'ee/app/controllers/groups/feature_discovery_moments_controller.rb' - 'ee/app/controllers/groups/ldap_group_links_controller.rb' - 'ee/app/controllers/groups/settings/reporting_controller.rb' - 'ee/app/controllers/projects/analytics/code_reviews_controller.rb' @@ -102,8 +100,6 @@ Style/EmptyMethod: - 'ee/app/controllers/projects/security/sast_configuration_controller.rb' - 'ee/app/controllers/projects/settings/slacks_controller.rb' - 'ee/app/controllers/subscriptions/groups_controller.rb' - - 'ee/app/controllers/trials_controller.rb' - - 'ee/app/experiments/cart_abandonment_modal_experiment.rb' - 'ee/app/models/ee/epic.rb' - 'ee/app/services/feature_flag_issues/destroy_service.rb' - 'ee/db/geo/migrate/20170906174622_remove_duplicates_from_project_registry.rb' diff --git a/.rubocop_todo/style/format_string.yml b/.rubocop_todo/style/format_string.yml index cb9ae6e9bd..fc74f8fe07 100644 --- a/.rubocop_todo/style/format_string.yml +++ b/.rubocop_todo/style/format_string.yml @@ -145,7 +145,6 @@ Style/FormatString: - 'app/services/system_notes/design_management_service.rb' - 'app/services/timelogs/create_service.rb' - 'app/services/users/banned_user_base_service.rb' - - 'app/services/work_items/parent_links/create_service.rb' - 'app/services/work_items/widgets/hierarchy_service/base_service.rb' - 'app/validators/addressable_url_validator.rb' - 'app/validators/any_field_validator.rb' diff --git a/.rubocop_todo/style/guard_clause.yml b/.rubocop_todo/style/guard_clause.yml index 91c1999836..3c123b2595 100644 --- a/.rubocop_todo/style/guard_clause.yml +++ b/.rubocop_todo/style/guard_clause.yml @@ -312,7 +312,6 @@ Style/GuardClause: - 'ee/app/models/ee/incident_management/issuable_escalation_status.rb' - 'ee/app/models/ee/issue.rb' - 'ee/app/models/ee/issue_assignee.rb' - - 'ee/app/models/ee/iteration.rb' - 'ee/app/models/ee/member.rb' - 'ee/app/models/ee/merge_request.rb' - 'ee/app/models/ee/namespace.rb' @@ -328,6 +327,7 @@ Style/GuardClause: - 'ee/app/models/incident_management/escalation_rule.rb' - 'ee/app/models/incident_management/oncall_rotation.rb' - 'ee/app/models/ip_restriction.rb' + - 'ee/app/models/iteration.rb' - 'ee/app/models/namespace_limit.rb' - 'ee/app/models/preloaders/environments/protected_environment_preloader.rb' - 'ee/app/models/protected_environment.rb' diff --git a/.rubocop_todo/style/if_unless_modifier.yml b/.rubocop_todo/style/if_unless_modifier.yml index 1901664672..a4bd4a1885 100644 --- a/.rubocop_todo/style/if_unless_modifier.yml +++ b/.rubocop_todo/style/if_unless_modifier.yml @@ -330,7 +330,6 @@ Style/IfUnlessModifier: - 'app/services/users/build_service.rb' - 'app/services/users/respond_to_terms_service.rb' - 'app/services/wikis/create_attachment_service.rb' - - 'app/services/work_items/parent_links/create_service.rb' - 'app/services/work_items/task_list_reference_removal_service.rb' - 'app/services/work_items/task_list_reference_replacement_service.rb' - 'app/uploaders/file_mover.rb' @@ -386,7 +385,6 @@ Style/IfUnlessModifier: - 'config/routes.rb' - 'danger/database/Dangerfile' - 'danger/pipeline/Dangerfile' - - 'danger/specs/Dangerfile' - 'danger/z_metadata/Dangerfile' - 'db/migrate/20210909184349_add_index_package_id_id_on_package_files.rb' - 'db/migrate/20220324175325_add_key_data_to_secure_files.rb' @@ -419,8 +417,6 @@ Style/IfUnlessModifier: - 'ee/app/controllers/projects/path_locks_controller.rb' - 'ee/app/controllers/projects/push_rules_controller.rb' - 'ee/app/controllers/projects/settings/slacks_controller.rb' - - 'ee/app/controllers/trials_controller.rb' - - 'ee/app/finders/merge_trains_finder.rb' - 'ee/app/finders/security/pipeline_vulnerabilities_finder.rb' - 'ee/app/finders/security/vulnerabilities_finder.rb' - 'ee/app/graphql/mutations/audit_events/external_audit_event_destinations/create.rb' @@ -454,7 +450,6 @@ Style/IfUnlessModifier: - 'ee/app/models/ee/group.rb' - 'ee/app/models/ee/group_member.rb' - 'ee/app/models/ee/issue.rb' - - 'ee/app/models/ee/iteration.rb' - 'ee/app/models/ee/key.rb' - 'ee/app/models/ee/list.rb' - 'ee/app/models/ee/milestone_release.rb' @@ -467,6 +462,7 @@ Style/IfUnlessModifier: - 'ee/app/models/geo/tracking_base.rb' - 'ee/app/models/incident_management/escalation_rule.rb' - 'ee/app/models/ip_restriction.rb' + - 'ee/app/models/iteration.rb' - 'ee/app/models/merge_requests/external_status_check.rb' - 'ee/app/models/requirements_management/requirement.rb' - 'ee/app/models/requirements_management/test_report.rb' @@ -586,6 +582,7 @@ Style/IfUnlessModifier: - 'ee/lib/api/merge_request_approval_rules.rb' - 'ee/lib/api/protected_environments.rb' - 'ee/lib/audit/details.rb' + - 'ee/lib/banzai/filter/references/iteration_reference_filter.rb' - 'ee/lib/ee/api/entities/epic.rb' - 'ee/lib/ee/api/entities/experiment.rb' - 'ee/lib/ee/api/geo.rb' @@ -595,7 +592,6 @@ Style/IfUnlessModifier: - 'ee/lib/ee/api/internal/base.rb' - 'ee/lib/ee/api/merge_request_approvals.rb' - 'ee/lib/ee/api/settings.rb' - - 'ee/lib/ee/banzai/filter/references/iteration_reference_filter.rb' - 'ee/lib/ee/container_registry/client.rb' - 'ee/lib/ee/gitlab/auth/ldap/access.rb' - 'ee/lib/ee/gitlab/auth/ldap/group.rb' @@ -668,7 +664,6 @@ Style/IfUnlessModifier: - 'ee/spec/support/helpers/feature_approval_helper.rb' - 'ee/spec/support/helpers/search_results_helpers.rb' - 'ee/spec/support/http_io/http_io_helpers.rb' - - 'ee/spec/views/layouts/header/help_dropdown/_cross_stage_fdm.html.haml_spec.rb' - 'ee/spec/workers/elastic/migration_worker_spec.rb' - 'lib/api/api_guard.rb' - 'lib/api/boards_responses.rb' diff --git a/.rubocop_todo/style/percent_literal_delimiters.yml b/.rubocop_todo/style/percent_literal_delimiters.yml index bc3c41ae99..31195e54f7 100644 --- a/.rubocop_todo/style/percent_literal_delimiters.yml +++ b/.rubocop_todo/style/percent_literal_delimiters.yml @@ -54,7 +54,7 @@ Style/PercentLiteralDelimiters: - 'app/models/ci/pipeline.rb' - 'app/models/clusters/platforms/kubernetes.rb' - 'app/models/commit.rb' - - 'app/models/concerns/clusters/agents/authorization_config_scopes.rb' + - 'app/models/concerns/clusters/agents/authorizations/ci_access/config_scopes.rb' - 'app/models/concerns/diff_positionable_note.rb' - 'app/models/concerns/enums/prometheus_metric.rb' - 'app/models/concerns/issuable.rb' @@ -182,7 +182,6 @@ Style/PercentLiteralDelimiters: - 'ee/app/controllers/groups/protected_environments_controller.rb' - 'ee/app/controllers/projects/integrations/jira/issues_controller.rb' - 'ee/app/controllers/projects/protected_environments_controller.rb' - - 'ee/app/controllers/trials_controller.rb' - 'ee/app/finders/iterations_finder.rb' - 'ee/app/graphql/types/incident_management/oncall_rotation_date_input_type.rb' - 'ee/app/helpers/credentials_inventory_helper.rb' @@ -192,7 +191,6 @@ Style/PercentLiteralDelimiters: - 'ee/app/helpers/ee/issues_helper.rb' - 'ee/app/helpers/ee/labels_helper.rb' - 'ee/app/helpers/ee/nav_helper.rb' - - 'ee/app/helpers/ee/trial_helper.rb' - 'ee/app/mailers/previews/ci_minutes_usage_mailer_preview.rb' - 'ee/app/mailers/previews/emails/namespace_storage_usage_mailer_preview.rb' - 'ee/app/mailers/previews/license_mailer_preview.rb' @@ -645,7 +643,6 @@ Style/PercentLiteralDelimiters: - 'spec/graphql/types/boards/board_issue_input_type_spec.rb' - 'spec/graphql/types/design_management/design_collection_copy_state_enum_spec.rb' - 'spec/graphql/types/issue_type_spec.rb' - - 'spec/haml_lint/linter/no_plain_nodes_spec.rb' - 'spec/helpers/appearances_helper_spec.rb' - 'spec/helpers/application_settings_helper_spec.rb' - 'spec/helpers/auth_helper_spec.rb' diff --git a/.rubocop_todo/style/redundant_freeze.yml b/.rubocop_todo/style/redundant_freeze.yml index cda2972c60..3a0f099fd2 100644 --- a/.rubocop_todo/style/redundant_freeze.yml +++ b/.rubocop_todo/style/redundant_freeze.yml @@ -51,7 +51,6 @@ Style/RedundantFreeze: - 'app/services/grafana/proxy_service.rb' - 'app/services/import/validate_remote_git_endpoint_service.rb' - 'app/services/issues/base_service.rb' - - 'app/services/packages/debian/process_package_file_service.rb' - 'app/services/projects/import_error_filter.rb' - 'app/services/projects/lfs_pointers/lfs_object_download_list_service.rb' - 'app/services/prometheus/proxy_variable_substitution_service.rb' @@ -66,10 +65,10 @@ Style/RedundantFreeze: - 'ee/app/graphql/types/incident_management/oncall_rotation_date_input_type.rb' - 'ee/app/models/allowed_email_domain.rb' - 'ee/app/models/ee/issue.rb' - - 'ee/app/models/ee/iteration.rb' - 'ee/app/models/ee/label.rb' - 'ee/app/models/ee/project_import_state.rb' - 'ee/app/models/ee/vulnerability.rb' + - 'ee/app/models/iteration.rb' - 'ee/app/models/status_page/project_setting.rb' - 'ee/app/serializers/analytics/cycle_analytics/value_stream_errors_serializer.rb' - 'ee/app/services/elastic/data_migration_service.rb' @@ -236,7 +235,6 @@ Style/RedundantFreeze: - 'tooling/danger/config_files.rb' - 'tooling/danger/customer_success.rb' - 'tooling/danger/datateam.rb' - - 'tooling/danger/specs.rb' - 'tooling/danger/stable_branch.rb' - 'tooling/lib/tooling/kubernetes_client.rb' - 'tooling/lib/tooling/mappings/view_to_js_mappings.rb' diff --git a/.rubocop_todo/style/redundant_regexp_escape.yml b/.rubocop_todo/style/redundant_regexp_escape.yml index 9a54b73b64..b1ab72bac6 100644 --- a/.rubocop_todo/style/redundant_regexp_escape.yml +++ b/.rubocop_todo/style/redundant_regexp_escape.yml @@ -28,8 +28,8 @@ Style/RedundantRegexpEscape: - 'config/routes/snippets.rb' - 'config/routes/uploads.rb' - 'ee/app/models/ee/epic.rb' - - 'ee/app/models/ee/iteration.rb' - 'ee/app/models/ee/vulnerability.rb' + - 'ee/app/models/iteration.rb' - 'ee/config/routes/admin.rb' - 'ee/lib/ee/gitlab/path_regex.rb' - 'ee/lib/elastic/latest/merge_request_class_proxy.rb' @@ -77,7 +77,6 @@ Style/RedundantRegexpEscape: - 'lib/gitlab/utils/sanitize_node_link.rb' - 'lib/gitlab/word_diff/segments/diff_hunk.rb' - 'lib/product_analytics/tracker.rb' - - 'lib/tasks/gettext.rake' - 'lib/tasks/gitlab/info.rake' - 'qa/spec/runtime/key/ecdsa_spec.rb' - 'qa/spec/runtime/key/ed25519_spec.rb' diff --git a/.rubocop_todo/style/redundant_self.yml b/.rubocop_todo/style/redundant_self.yml index 9441150d6d..5335915271 100644 --- a/.rubocop_todo/style/redundant_self.yml +++ b/.rubocop_todo/style/redundant_self.yml @@ -198,7 +198,6 @@ Style/RedundantSelf: - 'ee/app/models/ee/group.rb' - 'ee/app/models/ee/group_member.rb' - 'ee/app/models/ee/issue.rb' - - 'ee/app/models/ee/iteration.rb' - 'ee/app/models/ee/member.rb' - 'ee/app/models/ee/namespace.rb' - 'ee/app/models/ee/packages/package_file.rb' @@ -217,6 +216,7 @@ Style/RedundantSelf: - 'ee/app/models/gitlab_subscription.rb' - 'ee/app/models/gitlab_subscriptions/upcoming_reconciliation.rb' - 'ee/app/models/group_wiki_repository.rb' + - 'ee/app/models/iteration.rb' - 'ee/app/models/iterations/cadence.rb' - 'ee/app/models/license.rb' - 'ee/app/models/merge_requests/external_status_check.rb' diff --git a/.rubocop_todo/style/string_concatenation.yml b/.rubocop_todo/style/string_concatenation.yml index 19b4a6716d..8209781e78 100644 --- a/.rubocop_todo/style/string_concatenation.yml +++ b/.rubocop_todo/style/string_concatenation.yml @@ -121,7 +121,6 @@ Style/StringConcatenation: - 'lib/gitlab/route_map.rb' - 'lib/gitlab/sanitizers/exception_message.rb' - 'lib/gitlab/sidekiq_logging/json_formatter.rb' - - 'lib/gitlab/slug/environment.rb' - 'lib/gitlab/sql/set_operator.rb' - 'lib/gitlab/ssh_public_key.rb' - 'lib/gitlab/throttle.rb' @@ -218,7 +217,6 @@ Style/StringConcatenation: - 'spec/lib/gitlab/themes_spec.rb' - 'spec/lib/gitlab/throttle_spec.rb' - 'spec/lib/gitlab/tree_summary_spec.rb' - - 'spec/lib/gitlab/url_blocker_spec.rb' - 'spec/lib/gitlab/utils_spec.rb' - 'spec/lib/gitlab/visibility_level_spec.rb' - 'spec/lib/gitlab/wiki_pages/front_matter_parser_spec.rb' diff --git a/.rubocop_todo/style/symbol_proc.yml b/.rubocop_todo/style/symbol_proc.yml index bc4ecaa540..b6d0de8ef5 100644 --- a/.rubocop_todo/style/symbol_proc.yml +++ b/.rubocop_todo/style/symbol_proc.yml @@ -173,7 +173,7 @@ Style/SymbolProc: - 'qa/qa/runtime/ip_address.rb' - 'qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb' - 'qa/qa/specs/features/browser_ui/3_create/merge_request/rebase_merge_request_spec.rb' - - 'qa/qa/specs/features/browser_ui/3_create/web_ide/review_merge_request_spec.rb' + - 'qa/qa/specs/features/browser_ui/3_create/web_ide_old/review_merge_request_spec.rb' - 'qa/qa/specs/features/browser_ui/5_package/container_registry/online_garbage_collection_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/13_secure/enable_scanning_from_configuration_spec.rb' - 'qa/qa/specs/features/ee/browser_ui/3_create/merge_request/approval_rules_spec.rb' diff --git a/.yamllint b/.yamllint index 5b49a617a5..896db4c101 100644 --- a/.yamllint +++ b/.yamllint @@ -22,6 +22,9 @@ ignore: | generator_templates/snowplow_event_definition/event_definition.yml generator_templates/usage_metric_definition/metric_definition.yml + # Contains ERB code that keeps throwing syntax errors + .rubocop.yml + # Has some special indentation doc/user/project/integrations/samples/cloudwatch.yml diff --git a/CHANGELOG.md b/CHANGELOG.md index 1c8a28f170..170766e5f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,61 +2,884 @@ documentation](doc/development/changelog.md) for instructions on adding your own entry. -## 15.10.8 (2023-06-05) +## 15.11.6 (2023-05-24) -### Fixed (1 change) +### Changed (1 change) -- [Convert some regex to use Gitlab::UntrustedRegexp](gitlab-org/security/gitlab@251e0f30177cf458f4384662bdfc14d404c5b98d) +- [Introduce parallelised BitBucket Server Importer](gitlab-org/gitlab@41fead2e5b8b8c61c269de902282e2aa75b967a5) ([merge request](gitlab-org/gitlab!121332)) -### Security (15 changes) +## 15.11.5 (2023-05-19) -- [Fix DoS on test report artifacts](gitlab-org/security/gitlab@5893c3c3311052744175051c8393e451771ea100) ([merge request](gitlab-org/security/gitlab!3201)) -- [Fix XSS in Abuse Reports form action](gitlab-org/security/gitlab@da5ecc94a6db6d3e2180d7bd7e2b32e903f7f5c6) ([merge request](gitlab-org/security/gitlab!3291)) -- [Import source owners with maintainer access if importer is a maintainer](gitlab-org/security/gitlab@9995ef153a96621da0d0f2469734dd895485a4d7) ([merge request](gitlab-org/security/gitlab!3284)) -- [Filter inaccessible issuable notes when exporting project](gitlab-org/security/gitlab@cf73c05b31cf466011fbb3492495a7acbcd78d5f) ([merge request](gitlab-org/security/gitlab!3276)) -- [Block tag names that are prepended with refs/tags/, due to conflicts](gitlab-org/security/gitlab@eb4e906ecd8d56ef71c97ab74a32c06c0a9bd7b6) ([merge request](gitlab-org/security/gitlab!3263)) -- [Set IP in ActionContoller filter before IP enforcement is evaluated](gitlab-org/security/gitlab@d10133feff8201b45c8a4c29681db4f167e23d59) ([merge request](gitlab-org/security/gitlab!3280)) -- [Prevent primary email returned as verified on unsaved change](gitlab-org/security/gitlab@ca0f866a5663af8ffa094b0ffd152e5031beecd5) ([merge request](gitlab-org/security/gitlab!3224)) -- [Use UntrustedRegexp to protect FrontMatter filter](gitlab-org/security/gitlab@f66129126262d000c77f36ea2b1b0f5e88f1be13) ([merge request](gitlab-org/security/gitlab!3256)) -- [Improve ambiguous_ref? logic to include heads and tags](gitlab-org/security/gitlab@7fb2dfc1135d74ea261e633ec0a828fa8a8c7ef0) ([merge request](gitlab-org/security/gitlab!3248)) -- [Use UntrustedRegexp to protect InlineDiff filter](gitlab-org/security/gitlab@2a50fd1fd3c4610871644237edc22bbdc9cbcb1d) ([merge request](gitlab-org/security/gitlab!3255)) -- [Ignore user-defined diff paths in diff notes](gitlab-org/security/gitlab@2e969309ad7b3fff551857ee481a154cb3be73f4) ([merge request](gitlab-org/security/gitlab!3268)) -- [Reject NPM metadata requests with invalid package_name](gitlab-org/security/gitlab@7ec6ab8c11d3732b53c7adc951d3da9972695bff) ([merge request](gitlab-org/security/gitlab!3287)) -- [Use UntrustedRegexp to protect MathFilter regex](gitlab-org/security/gitlab@2a2035520eab7263d157b312f5fb7d3d82440ccf) ([merge request](gitlab-org/security/gitlab!3250)) -- [Resolve Overall Project Vulnerability Disclosure](gitlab-org/security/gitlab@457cd1086688b1a44f1f771c407e8d1eaa8f2951) ([merge request](gitlab-org/security/gitlab!3231)) -- [Validate description length in labels](gitlab-org/security/gitlab@c6f95221685f4475a8b91190c61ee4208e257844) ([merge request](gitlab-org/security/gitlab!3243)) +### Fixed (5 changes) -## 15.10.7 (2023-05-10) +- [Makes roadmap current day indicator & timeline locale aware](gitlab-org/gitlab@2dc71e59e277d017118d77743d8658be5b05ddf3) ([merge request](gitlab-org/gitlab!121104)) **GitLab Enterprise Edition** +- [Fix height calculations with roadmap to prevent extra scrollers](gitlab-org/gitlab@58080e99cb0a551c41b557d5a0000d686c512fdf) ([merge request](gitlab-org/gitlab!120965)) **GitLab Enterprise Edition** +- [Update by_parent filter in EpicsFinder](gitlab-org/gitlab@97115082a328bc01d04abc651e3b54913a19832a) ([merge request](gitlab-org/gitlab!120966)) **GitLab Enterprise Edition** +- [Fix no_proxy not working when DNS rebinding protection enabled](gitlab-org/gitlab@84012b21559126cde51cfe341ebff44eda9b3d62) ([merge request](gitlab-org/gitlab!120809)) +- [Remove epic date fields authorization](gitlab-org/gitlab@5c36e497d1e43e4ccf05a0684c3388385b247e45) ([merge request](gitlab-org/gitlab!120290)) **GitLab Enterprise Edition** -### Fixed (1 change) +## 15.11.4 (2023-05-16) -- [Backport MR 119319 changes to 15-10-stable-ee](gitlab-org/security/gitlab@6c9e1f2f706b0151b1caa3d5199aa312b23c683a) **GitLab Enterprise Edition** +### Fixed (2 changes) -## 15.10.6 (2023-05-03) +- [Do not autofocus the description field](gitlab-org/gitlab@978ae42ee723d5bc5235115b8ebfd7c67c8d858b) ([merge request](gitlab-org/gitlab!120306)) +- [Fix group blobs search permission when migration is not complete](gitlab-org/gitlab@c718fc80bf2ae389d63760db0c4aa95ec6c67f7e) ([merge request](gitlab-org/gitlab!120159)) **GitLab Enterprise Edition** -### Security (1 change) +### Changed (1 change) -- [Only maintainers of projects should be able to assign runners to them](gitlab-org/security/gitlab@a20f5018b757a78a772d2bf1f9f8cdfe95a019ed) ([merge request](gitlab-org/security/gitlab!3235)) +- [Use correct migration finalisation method](gitlab-org/gitlab@db7999c368aa41a155f717206b5b8340c91927f7) ([merge request](gitlab-org/gitlab!120683)) -## 15.10.5 (2023-05-01) +## 15.11.3 (2023-05-10) + +### Fixed (2 changes) + +- [Fix issue description keeping autosave after save](gitlab-org/security/gitlab@9a2d98b24c1ed9416ef672635aae27997b99a8b6) +- [Backport MR 119319 changes to 15-11-stable-ee](gitlab-org/security/gitlab@7f54f28a839efeebdea9030ae41975c9059a5f4e) + +### Changed (1 change) + +- [Restrict cleanup migrations only for GitLab.com](gitlab-org/security/gitlab@d6d1c3a650277a0f4acb777f0b123cc0b9c57ea4) + +## 15.11.2 (2023-05-03) + +### Security (2 changes) + +- [Only maintainers of projects should be able to assign runners to them](gitlab-org/security/gitlab@c52abfffad2c06c2a49788e3db473f14923c3926) ([merge request](gitlab-org/security/gitlab!3234)) +- [Authorize access to vulnerabilitiesCountByDay resolver](gitlab-org/security/gitlab@8e78aecb9a6c248099a043f181de3c8f6d4417ce) + +## 15.11.1 (2023-05-01) + +### Fixed (2 changes) + +- [Fix search cron worker when indexing is disabled](gitlab-org/security/gitlab@e543d1c8e0bb5d9e498beb51cd264c8bc6825cc0) **GitLab Enterprise Edition** +- [Fix Web IDE Beta icons not loading in Safari](gitlab-org/security/gitlab@f11e5b37c05f314efe5a6895d385bc4ed284d217) ### Security (9 changes) -- [Set minimum role for importing projects to Maintainer](gitlab-org/security/gitlab@d4cff7e53961d819b30ae748a38e4c8e4d856b32) ([merge request](gitlab-org/security/gitlab!3215)) -- [Commit trailers now only match public user email addresses](gitlab-org/security/gitlab@4948acdb39ba6ae9a71ef133e38ec47327d14f97) ([merge request](gitlab-org/security/gitlab!3208)) -- [Handle invalid URLs in asset proxy](gitlab-org/security/gitlab@b22e923ab3d48d9389311192d92dd89e2bfc24aa) ([merge request](gitlab-org/security/gitlab!3212)) -- [Relay state to check for only allowing sub paths](gitlab-org/security/gitlab@24f84fafd65dfedf36e859d305dd46bf3e71c8dc) ([merge request](gitlab-org/security/gitlab!3220)) -- [Prohibit 40 character hex sets at beginning of path-based branch name](gitlab-org/security/gitlab@71d30b6537f6853fef45acba16ab26b6f32718f7) ([merge request](gitlab-org/security/gitlab!3194)) -- [Add specs for external users flag](gitlab-org/security/gitlab@dfdb540285e573bd55a8647db4de8370ba6b3286) ([merge request](gitlab-org/security/gitlab!3190)) -- [Update policy to prevent banned members from accessing public projects](gitlab-org/security/gitlab@bc211b8be25e56f35c80d2331447f251c7a7dd56) ([merge request](gitlab-org/security/gitlab!3186)) -- [Use dummy filename as filename when viewing raw xml files](gitlab-org/security/gitlab@6d871f56d7a343d705f8c849d24a94b3528c3a97) ([merge request](gitlab-org/security/gitlab!3192)) -- [Authorize access to vulnerabilitiesCountByDay resolver](gitlab-org/security/gitlab@888c187aab7c7062ea43b61a282c4dea8c6a47be) ([merge request](gitlab-org/security/gitlab!3180)) +- [Set minimum role for importing projects to Maintainer](gitlab-org/security/gitlab@bd6bd7340736767a9dc7589ab798c75dbea607d5) ([merge request](gitlab-org/security/gitlab!3214)) +- [Commit trailers now only match public user email addresses](gitlab-org/security/gitlab@2c307a557ac7b3e32c4201b639d684fa1389351c) ([merge request](gitlab-org/security/gitlab!3207)) +- [Handle invalid URLs in asset proxy](gitlab-org/security/gitlab@2748c81f96539de154b3fb89ca2e72658bda617b) ([merge request](gitlab-org/security/gitlab!3211)) +- [Relay state to check for only allowing sub paths](gitlab-org/security/gitlab@be654790e2844dcc246e3cbf9d06280360e2a134) ([merge request](gitlab-org/security/gitlab!3218)) +- [Prohibit 40 character hex sets at beginning of path-based branch name](gitlab-org/security/gitlab@5bb78addd26b3c53750aaeeb575e1f2d46728260) ([merge request](gitlab-org/security/gitlab!3198)) +- [Add specs for external users flag](gitlab-org/security/gitlab@b45c2e236f530558cd850fa53ef08cd2ee58d79a) ([merge request](gitlab-org/security/gitlab!3206)) +- [Update policy to prevent banned members from accessing public projects](gitlab-org/security/gitlab@e8848b32fd03c0bc4b46f3fa9efb73550bacf615) ([merge request](gitlab-org/security/gitlab!3217)) +- [Use dummy filename as filename when viewing raw xml files](gitlab-org/security/gitlab@ac38e0600b5dedd616ae653a17ad838f009f25f0) ([merge request](gitlab-org/security/gitlab!3199)) +- [Authorize access to vulnerabilitiesCountByDay resolver](gitlab-org/security/gitlab@70264a8cc4e10e635ac4c1ebed15a01b1201c688) ([merge request](gitlab-org/security/gitlab!3222)) -## 15.10.4 (2023-04-21) +## 15.11.0 (2023-04-21) -### Fixed (1 change) +### Added (175 changes) -- [Patch mail gem to handle TLS settings properly](gitlab-org/gitlab@cd4cfc46e17c91dbf5ef10ab1ca0a473d6b2a4d6) ([merge request](gitlab-org/gitlab!117559)) +- [Add error logic for admin jobs vue](gitlab-org/gitlab@fa55b3a412e76a431ed689527d1b957f62c5b82b) by @TrueKalix ([merge request](gitlab-org/gitlab!117990)) +- [Added migration and models for instance external audit events](gitlab-org/gitlab@c3101feb41ed7e3bdd6be97eea1e304651d04826) ([merge request](gitlab-org/gitlab!116909)) **GitLab Enterprise Edition** +- [Add "explain this vulnerability" feature to vuln details page](gitlab-org/gitlab@8733ceb1d611b099aea06435a21c0aa24d4e5fb6) ([merge request](gitlab-org/gitlab!117657)) **GitLab Enterprise Edition** +- [Add empty state to admins jobs vue](gitlab-org/gitlab@ea124629c7fdf109781a1420feb643e4de7e8e74) by @TrueKalix ([merge request](gitlab-org/gitlab!118030)) +- [Add support for snowplow PA configurator](gitlab-org/gitlab@bd92c8664934d10a15e82ec9f9ff48f6f15f88d3) ([merge request](gitlab-org/gitlab!117141)) +- [GraphQL project fields to get refs tipping at a commit](gitlab-org/gitlab@fc4e77db4a81daaa42a447a0b246889b56280a5d) ([merge request](gitlab-org/gitlab!116697)) +- [Add vulnerabilityIssueLinkCreate GraphQL mutation](gitlab-org/gitlab@5388b8a5f717d0ac502a4764ca04c71935d91f24) ([merge request](gitlab-org/gitlab!114304)) **GitLab Enterprise Edition** +- [Add milestone reference to removed milestone note](gitlab-org/gitlab@27d9abcb69807e6c4029bf9db8ccdee7a01a2332) ([merge request](gitlab-org/gitlab!117529)) +- [Add user_identities field to JWTv2](gitlab-org/gitlab@b0d92f33023afb99fec95ec34996e2435da144d9) by @joe-snyder ([merge request](gitlab-org/gitlab!117541)) +- [Create GraphQL endpoint for Explain Vulnerability](gitlab-org/gitlab@ddcae59b448bd53d58faa31e714c87fcf79e0c96) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117472)) **GitLab Enterprise Edition** +- [Automatically index projects in Zoekt when namespace is enabled](gitlab-org/gitlab@5670f066793539d243bcde0e5ceb555c1f74562f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117634)) **GitLab Enterprise Edition** +- [Add AwardEmoji widget update](gitlab-org/gitlab@0a24f6cc11564deb973d9ac27034107d77b0ebe0) ([merge request](gitlab-org/gitlab!117265)) +- [Add runner's creator to runner admin and group](gitlab-org/gitlab@ff0ebf173485693f587072d328223cee08a64934) ([merge request](gitlab-org/gitlab!115463)) +- [Include Jira issue keys for related MRs](gitlab-org/gitlab@c847e8b15934d1b515e74cda42bf130510d7353b) ([merge request](gitlab-org/gitlab!117350)) +- [Adds service desk verification result email](gitlab-org/gitlab@c57d6ab4711856c9e15a88565cd7441bbf42c828) ([merge request](gitlab-org/gitlab!116370)) +- [Enable pages unique domain feature flag by default](gitlab-org/gitlab@49946c62fb39606629322604a800457a0f484fd4) ([merge request](gitlab-org/gitlab!117795)) +- [Add "explain this vulnerability" feature to vuln details page](gitlab-org/gitlab@62119898a9e27367c95b7767b657ff2f5e48b460) ([merge request](gitlab-org/gitlab!117667)) **GitLab Enterprise Edition** +- [Prepare job artifacts file_final_path column](gitlab-org/gitlab@c2c7e53c359522ce1c383d5c5932b3c73c855634) ([merge request](gitlab-org/gitlab!117432)) +- [Add awardEmoji field to merge request graphql type](gitlab-org/gitlab@d9c7a9003b8d4be2897494d6c988558f709a92a8) by @Taucher2003 ([merge request](gitlab-org/gitlab!116484)) +- [Event tracking for Debian packages](gitlab-org/gitlab@56861905f2e38c818dbe7e11ba67833760f9147b) by @sathieu ([merge request](gitlab-org/gitlab!116474)) +- [Show pods on Environment index page](gitlab-org/gitlab@335a8918d0df62defea403f7fe6a7043274cf862) ([merge request](gitlab-org/gitlab!115225)) +- [Add table and data to view](gitlab-org/gitlab@d05769e9e84628f4babbf03ee34aeb5c8b6d008e) by @TrueKalix ([merge request](gitlab-org/gitlab!101227)) +- [Add llm_bot for LLM-generated content attribution](gitlab-org/gitlab@e653e8617c409f10b56a687da4db7eb48a886f2f) ([merge request](gitlab-org/gitlab!117458)) +- [Allow pasting raw content in content editor](gitlab-org/gitlab@d1b76a51bf78dba5a785f2a4a8dd16164b179fab) ([merge request](gitlab-org/gitlab!116918)) +- [Add frontend testing guidelines for apollo mock queries/mutations](gitlab-org/gitlab@94dbcd07831d9b97f26f90d1da7c3b5fad2396df) ([merge request](gitlab-org/gitlab!117355)) +- [Add pnpm to Dependency API](gitlab-org/gitlab@c72392928b99ba53df687be75f61b04d1211001d) ([merge request](gitlab-org/gitlab!117684)) **GitLab Enterprise Edition** +- [Add link to feedback issue](gitlab-org/gitlab@87001324e1278d87f39277878b3e06d4c7ebe2ce) ([merge request](gitlab-org/gitlab!117673)) **GitLab Enterprise Edition** +- [Project specific runner registration control for admins](gitlab-org/gitlab@ef84e518e2f61d983f85f4575c27efcf6b2d1f31) by @markus.ferrell ([merge request](gitlab-org/gitlab!115412)) +- [Adds navigation menu for Model experiments](gitlab-org/gitlab@5ddcf5e9ba7aead1894e86688f0bcedf0d9cd518) ([merge request](gitlab-org/gitlab!116919)) +- [Enable CI Interpolation feature flag](gitlab-org/gitlab@c4a65d30cd5f557e6468b4df56928735137e8a69) ([merge request](gitlab-org/gitlab!117651)) +- [Add ability to filter compliance violations by target branch](gitlab-org/gitlab@3d549bf711794e1e4a2c532451095abc96add24b) ([merge request](gitlab-org/gitlab!117240)) **GitLab Enterprise Edition** +- [Enable multi-doc YAML parsing by default](gitlab-org/gitlab@3da944a2983cf3f51a3d46e10017c6e0e2455486) ([merge request](gitlab-org/gitlab!117390)) +- [Add index for namespaces by root namespace lookup](gitlab-org/gitlab@ce8d6914cf9418853d190ab1e256ff761e800532) ([merge request](gitlab-org/gitlab!117638)) +- [Add issue/merge_request_assignment_events tables](gitlab-org/gitlab@e8aec94191eafa60a0132d14f9ac03f60416ce5c) ([merge request](gitlab-org/gitlab!117379)) +- [Add PNPM support](gitlab-org/gitlab@c39c2d657f48f2f5f4380eb2813acf0db5ed9976) ([merge request](gitlab-org/gitlab!117427)) +- [Adds package forwarding warning to delete modal](gitlab-org/gitlab@51626b11ba186c1b84ba9c53a45a32fb1eb02cef) ([merge request](gitlab-org/gitlab!117342)) +- [Add /admin/search/zoekt APIs for controlling Zoekt rollout](gitlab-org/gitlab@1b8da271d259b3493776a26f3e0e464374de52c4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116650)) **GitLab Enterprise Edition** +- [Record work item linking events](gitlab-org/gitlab@a0440b2008105a16bb14328172a44ae4e53c778a) ([merge request](gitlab-org/gitlab!116903)) +- [Adds new MergeRequests::Llm::SummarizeMergeRequestService](gitlab-org/gitlab@6df183373f076dbb858ffb64a4a419c58bacee12) ([merge request](gitlab-org/gitlab!117449)) **GitLab Enterprise Edition** +- [Add worker to sync approval rules from security_findings](gitlab-org/gitlab@c8b9a1ac341becbc6f134178f689c55d2af6b37d) ([merge request](gitlab-org/gitlab!115825)) **GitLab Enterprise Edition** +- [Expose unified approvals via GraphQL](gitlab-org/gitlab@18a61f09f413142ca8fdd687b214fedebfe7f246) ([merge request](gitlab-org/gitlab!117548)) **GitLab Enterprise Edition** +- [Add abuse_trust_scores table](gitlab-org/gitlab@be87aaa0cc8bc4968edd80931a6bb6d5cc11c9e1) ([merge request](gitlab-org/gitlab!117301)) +- [Allow project migrations in GitLab Direct Transfer](gitlab-org/gitlab@b460b4acd28b85aec2b1404589d124d9983fe023) ([merge request](gitlab-org/gitlab!117306)) +- [Add admin setting to sync license db](gitlab-org/gitlab@343f88d217cbbe198f8ad255a3b1d6b36853ee2e) ([merge request](gitlab-org/gitlab!116797)) +- [Add REST endpoint to create runner associated to a user](gitlab-org/gitlab@885ebc5dc3efc7fab70256859f8cc8a0d08250b1) ([merge request](gitlab-org/gitlab!116119)) +- [Groups - Remove show_group_readme FF](gitlab-org/gitlab@99fa4d3215ff15c5be87f4a416414a8aa8a875ce) ([merge request](gitlab-org/gitlab!117308)) +- [Notification widget for work items](gitlab-org/gitlab@388af7795e613eb60834cf02291ca378af95e487) ([merge request](gitlab-org/gitlab!115511)) **GitLab Enterprise Edition** +- [Download candidate data as csv](gitlab-org/gitlab@4a96ffeab4d6d492530168768f87d9b087781d23) ([merge request](gitlab-org/gitlab!116968)) +- [Add missing approval rule settings to group project templates](gitlab-org/gitlab@159efbde07b3919fed27090483e0196da141ee05) ([merge request](gitlab-org/gitlab!107498)) +- [Backfill the missing wiki permissions in the main index](gitlab-org/gitlab@45dfb0de66d0585e8c2b850e5e4bf5525b220c7f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116944)) **GitLab Enterprise Edition** +- [Add UI to summarize notes](gitlab-org/gitlab@251106dd3e4ffee068181e1f7d3df509a516bdde) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117327)) **GitLab Enterprise Edition** +- [Update runner manager records when runner managers poll for jobs](gitlab-org/gitlab@cf5597b3d305cc112fd763ce798c34f73b9a717b) ([merge request](gitlab-org/gitlab!117500)) +- [Enable creation of runner manager records for active runner managers](gitlab-org/gitlab@17554be0cf9bfcfa967d9af4c37a4731591cceac) ([merge request](gitlab-org/gitlab!117500)) +- [Prepare system_note_metadata for bigint migration](gitlab-org/gitlab@3562ab7ce610fc91554e2407f27250a4292dcc9c) ([merge request](gitlab-org/gitlab!117485)) +- [Expose GitLab Maintenance Mode to internal metrics](gitlab-org/gitlab@dc1fa77690c59757fe0e9e31ac40c766435aecfd) ([merge request](gitlab-org/gitlab!114981)) +- [Change order for issue_user_mentions PK swap](gitlab-org/gitlab@d45dd36f78df4019820b1cd64fe50bf89dfa8fe1) ([merge request](gitlab-org/gitlab!117476)) +- [Adds new MergeRequests::Llm::SummarizeMergeRequestService](gitlab-org/gitlab@780117fb4df86c1fc42dd8e1262eaf0a138b0245) ([merge request](gitlab-org/gitlab!117194)) **GitLab Enterprise Edition** +- [Add Silent mode application setting](gitlab-org/gitlab@9f8b2dd00d26537e937bc8a0acf1478799bebac8) ([merge request](gitlab-org/gitlab!115625)) +- [Added the AiGenie component](gitlab-org/gitlab@782d16e78e287b22d63b519d9f6ee2c0701d412c) ([merge request](gitlab-org/gitlab!116875)) **GitLab Enterprise Edition** +- [Adds new MergeRequests::Llm::SummarizeMergeRequestService](gitlab-org/gitlab@021b1ac2ab3297f8b1658da9b66d27d68cde71a8) ([merge request](gitlab-org/gitlab!116879)) **GitLab Enterprise Edition** +- [Swap issue_user_mentions.note_id to bigint](gitlab-org/gitlab@f5e33cbacfd755ba85d35d744cab9d8d2e281712) ([merge request](gitlab-org/gitlab!116509)) +- [Implement GraphQL mutation/subscription for AI](gitlab-org/gitlab@a9317bca49de85188270ae8aefacecf352d9e41d) ([merge request](gitlab-org/gitlab!117250)) **GitLab Enterprise Edition** +- [Roll out Import remote file from AWS S3](gitlab-org/gitlab@d944a3c07cbe74374832218f229437b9524b3fbd) ([merge request](gitlab-org/gitlab!117323)) +- [Allow users to delete experiments](gitlab-org/gitlab@2123b7dbb1af91abb11f8b5939358bb8593f829b) ([merge request](gitlab-org/gitlab!116288)) +- [Feat(Subscription Purchase): error_attribute_map](gitlab-org/gitlab@ef1475b8427f283c8de17d98cb98a8c8adb4e629) ([merge request](gitlab-org/gitlab!116149)) **GitLab Enterprise Edition** +- [Track npm dist tags routes via snowplow](gitlab-org/gitlab@74873af466274ec12ed7dcc8c3cb6246c51d14bb) ([merge request](gitlab-org/gitlab!115545)) +- [Add User Identities toggle to User Preferences](gitlab-org/gitlab@e25214af86715bdf5c4c0d876ffadcbe897cf409) by @joe-snyder ([merge request](gitlab-org/gitlab!108477)) +- [Add AwardEmoji widget to work items](gitlab-org/gitlab@1605f93776739810b458ea9cfbf6018f48d9ca73) ([merge request](gitlab-org/gitlab!116687)) +- [Add audit event for code suggestions](gitlab-org/gitlab@513300a0a57ba8acbff8dc2710432e9bb6f3c930) ([merge request](gitlab-org/gitlab!117174)) **GitLab Enterprise Edition** +- [Instrument database mode in service ping report](gitlab-org/gitlab@eae9e82905b8b531ebff9b8455472c94d5ccd09a) ([merge request](gitlab-org/gitlab!115900)) +- [Work item comment reply changes](gitlab-org/gitlab@1690dcb4f17afc9e92e737537ca9125c204c5dde) ([merge request](gitlab-org/gitlab!115298)) +- [Add shared examples to ci, issues und pages tests](gitlab-org/gitlab@552a44b537e47d5aa99d70abf1fb8ed72a912553) by @TrueKalix ([merge request](gitlab-org/gitlab!116478)) +- [Add code suggestions UI](gitlab-org/gitlab@0385c52e24d46fbb688fefb0a3d0bf0b46fc6e18) ([merge request](gitlab-org/gitlab!117017)) **GitLab Enterprise Edition** +- [Add reveal-conceal password option](gitlab-org/gitlab@25e269303ffa786ef964ae4dd016b2b99ec67309) ([merge request](gitlab-org/gitlab!115357)) **GitLab Enterprise Edition** +- [Add create mr button](gitlab-org/gitlab@26c57f6c2c8187d4dd3816b8e5ceda8313000435) ([merge request](gitlab-org/gitlab!116554)) +- [Add service for syncing approval rules from security_findings](gitlab-org/gitlab@95439d6a7a559068d7fc9c99e9f7e4938e9a796f) ([merge request](gitlab-org/gitlab!115798)) **GitLab Enterprise Edition** +- [Adds service desk custom email verification email](gitlab-org/gitlab@e69cef18ba874f0fa6c57c1fe0b3513f755e0264) ([merge request](gitlab-org/gitlab!116664)) +- [Add audit event schema definitions](gitlab-org/gitlab@4d1d0eb7e98d8fdbc4e1925163a8478a194c7b03) ([merge request](gitlab-org/gitlab!114990)) **GitLab Enterprise Edition** +- [feat: Bump Code-Quality image to 0.94.0](gitlab-org/gitlab@aa2a36b2beccc826946943e043db0362090e6c37) ([merge request](gitlab-org/gitlab!116982)) +- [Send e-mail when achievements are awarded](gitlab-org/gitlab@88f1c3a2682c492f73561a37dfed64c479cd5a7c) ([merge request](gitlab-org/gitlab!116417)) +- [Audit unban action](gitlab-org/gitlab@c8e5094d8b0bd8a698ff9d06729b411834aebf71) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116221)) **GitLab Enterprise Edition** +- [Add support for project wiki repositories in the Geo SSF](gitlab-org/gitlab@f9693d248bca3ccfd055187f5310fe5015264d65) ([merge request](gitlab-org/gitlab!110675)) **GitLab Enterprise Edition** +- [Add ability to cycle around with keyboard in the header search](gitlab-org/gitlab@cce178e2399eda3c532b4e18873144e64bc22d37) ([merge request](gitlab-org/gitlab!115334)) +- [Allows for fetching candidate data as csv](gitlab-org/gitlab@28df9bdf5ff3c85c81b231bee7fe3d33f2616f50) ([merge request](gitlab-org/gitlab!116551)) +- [Add link to branch rules from codeowners block](gitlab-org/gitlab@fd5d53d9341be1358d562e11d9b8bf1d2e278abc) ([merge request](gitlab-org/gitlab!116682)) +- [Enable Web IDE Beta by default](gitlab-org/gitlab@bbdaac13d430f04c2032941ba930a15e911cf54c) ([merge request](gitlab-org/gitlab!115741)) +- [Create ResourceLinkEvent model and table](gitlab-org/gitlab@bb87f888d5de9df3c9b6c39050f44a3afa868021) ([merge request](gitlab-org/gitlab!114394)) +- [Add parent_oid and is_valid to postgres_foreign_keys](gitlab-org/gitlab@f68521922b27eea6dbf7c66a4141f47e94d06201) ([merge request](gitlab-org/gitlab!116737)) +- [Add global time tracking report](gitlab-org/gitlab@dd707f32e724b9cd4119dfbf895d1f4471388293) by @zillemarco ([merge request](gitlab-org/gitlab!108368)) +- [Add API endpoint for retrieving limit exclusions](gitlab-org/gitlab@8de8525b8ac45434ac37ea28a332a4291754062f) ([merge request](gitlab-org/gitlab!116532)) **GitLab Enterprise Edition** +- [Adds mutation to create a catalog resource](gitlab-org/gitlab@73ff5ca7313f56d46d944d9297753cd3d0e52661) ([merge request](gitlab-org/gitlab!114762)) +- [Added the FE support to Experimental API](gitlab-org/gitlab@aeb238643b63acee8f331bcead96ddaa63b8e9b2) ([merge request](gitlab-org/gitlab!116801)) **GitLab Enterprise Edition** +- [Add API for deleting limit exclusion records](gitlab-org/gitlab@77a5ff113ac2d8c8af0b65f590f6552f172a74a6) ([merge request](gitlab-org/gitlab!116531)) **GitLab Enterprise Edition** +- [Add project group link delete cascade fk](gitlab-org/gitlab@36702a8355dc904e12784dd1d8e24f69e531568a) ([merge request](gitlab-org/gitlab!111257)) +- [Add API for creating limit exclusions](gitlab-org/gitlab@9e9ea1e35d1fdf9aebdae1a84db1e13b7b3bc36d) ([merge request](gitlab-org/gitlab!116518)) **GitLab Enterprise Edition** +- [Include Jira issue keys for related MRs](gitlab-org/gitlab@cabf53e4aed2c013e145f80f5263370151ae2eb8) ([merge request](gitlab-org/gitlab!115448)) +- [Adds adjacentWorkItemId and relativePosition fields to Work Item Update](gitlab-org/gitlab@5dd95833c40e3f415b1f893190310d9a58110a86) by @pkor-ext ([merge request](gitlab-org/gitlab!114509)) +- [Show which CI job currently uses the resource group](gitlab-org/gitlab@447c57bf9e4ae467ffc9e61cf1122b57057d4a33) ([merge request](gitlab-org/gitlab!115958)) +- [Check if user has exceeded git rate limits before forking project](gitlab-org/gitlab@ef720dd627d0e7527b2ddad310e3c84789f10fed) ([merge request](gitlab-org/gitlab!115638)) **GitLab Enterprise Edition** +- [Add CurrentUserTodos widget to add and mark todos](gitlab-org/gitlab@f8372d97744ba5892a3776bbb4cde30754548265) ([merge request](gitlab-org/gitlab!115529)) +- [Adds Projects::Ml::CandidatesController.detroy](gitlab-org/gitlab@a4aa18d49e7d98f654b9e9773ca197442e15955d) ([merge request](gitlab-org/gitlab!116297)) +- [Expose server SSH host and port in predefined CI variables](gitlab-org/gitlab@e05b6c7b7324bee4680c4fa7075a66716d4965cc) by @nejc ([merge request](gitlab-org/gitlab!111393)) +- [Exclude namespace-banned users from being counted as billable members](gitlab-org/gitlab@bbda536c0867651ae930ae85e29542153b99cb77) ([merge request](gitlab-org/gitlab!114199)) **GitLab Enterprise Edition** +- [Add a "root_directory" to the pages deployment](gitlab-org/gitlab@796eef69bad768e57d252b3a35c11a44755a41c0) ([merge request](gitlab-org/gitlab!115720)) +- [Prepare issue_user_mentions for bigint migration](gitlab-org/gitlab@cc23fe939a98c195471b92c4c052b6f3ceed6450) ([merge request](gitlab-org/gitlab!116614)) +- [Add audit events schema definition](gitlab-org/gitlab@52b9ac104a9fc938371c531b17f320cd8c8b2ff1) ([merge request](gitlab-org/gitlab!114989)) **GitLab Enterprise Edition** +- [Remove flag: multiple environment approval rules](gitlab-org/gitlab@902ecfc938a446692d72ad823ec8e36fa6282593) ([merge request](gitlab-org/gitlab!116575)) +- [Display how far a fork is behind/ahead of its upstream by default](gitlab-org/gitlab@826d35ac41bac7e3d9699fcae49d30e12325663d) ([merge request](gitlab-org/gitlab!116252)) +- [Add forks storage size columns to root storage statistics table](gitlab-org/gitlab@e834ab70367dfe61d8cc1308c7ed4e9f042cac32) ([merge request](gitlab-org/gitlab!116581)) +- [Adds link to settings from package registry list page](gitlab-org/gitlab@15d17f4c4c9c084179ee35e141a9a3c66594a270) ([merge request](gitlab-org/gitlab!116060)) +- [Show promotional blurb when applicable](gitlab-org/gitlab@d8bda603b3993a3e5fab014df7b807b90618ba16) ([merge request](gitlab-org/gitlab!116502)) **GitLab Enterprise Edition** +- [Assign/Unassign WI note to commentator](gitlab-org/gitlab@a10d9a78f2c2acd2b037b5df79fb4389386d29e4) ([merge request](gitlab-org/gitlab!114848)) +- [Make menu items in new navigation sidebar pinnable](gitlab-org/gitlab@3ba0cf03deb3329230724b198a36ea907b6af1cd) ([merge request](gitlab-org/gitlab!113292)) +- [Add secret detection in Issue description](gitlab-org/gitlab@61b0963f78a117a1cb0bf50f4906705c84e36ad1) ([merge request](gitlab-org/gitlab!115502)) +- [Enable parallel execution for batched migrations](gitlab-org/gitlab@3b3af5171dbb14418d01fcdce6ac8ea3d4fd775b) ([merge request](gitlab-org/gitlab!116198)) +- [Add batched migrations parallel limit setting](gitlab-org/gitlab@39c8eea3c9e60c0d394aa0686451e2d9e14d58e9) ([merge request](gitlab-org/gitlab!114666)) +- [Add filtering to compliance framework report](gitlab-org/gitlab@7b23e5fc52306f958aa7b119fca20ce8ba36cf24) ([merge request](gitlab-org/gitlab!115274)) **GitLab Enterprise Edition** +- [Add user toggle for achievements](gitlab-org/gitlab@cdf3854bca18a8e849627e0c21c1660f39c16078) ([merge request](gitlab-org/gitlab!116258)) +- [Add audit event schema definitions](gitlab-org/gitlab@3b9ac9ed7d38e43eaaa00f651a2efc1536d28041) ([merge request](gitlab-org/gitlab!115499)) **GitLab Enterprise Edition** +- [Add achievement update GraphQL mutation](gitlab-org/gitlab@2e32c5fb9a36a6d70916d8f40049ba0c4299e290) ([merge request](gitlab-org/gitlab!116052)) +- [Introduce a model for npm metadata](gitlab-org/gitlab@256d79546f208d0176b3aa1ee95c1b010685d6f4) ([merge request](gitlab-org/gitlab!114312)) +- [Add CurrentUserTodos widget](gitlab-org/gitlab@5cb4373a0bd43fc7197d49de6458e211e6c81a4a) ([merge request](gitlab-org/gitlab!115527)) +- [Cleanup Debian incoming files daily](gitlab-org/gitlab@f90f732539d73606250feacf7ed5720b7994e927) by @sathieu +- [Rolls out incident_event_tags feature](gitlab-org/gitlab@4a2bde8b2f106c550140ab020c5a3679fa1c6762) +- [Add sync index vulnerability_finding_signatures_on_signature_sha](gitlab-org/gitlab@2a19eb5900200c4c13803afcbac3e0becbbda39b) +- [Enable Value Stream Dashboard FF](gitlab-org/gitlab@160cb01e3af6f77d9d4779f964be401e35dc4f1c) ([merge request](gitlab-org/gitlab!116138)) **GitLab Enterprise Edition** +- [Rolls out incident_event_tags feature](gitlab-org/gitlab@c25ff718883eeada2a716b78189a5dbb03860762) ([merge request](gitlab-org/gitlab!115834)) +- [Initialize conversion of events.target_id](gitlab-org/gitlab@660584600c8be848ba666478e969ad72bc7a37a3) ([merge request](gitlab-org/gitlab!115932)) +- [Add workItemConvert mutation](gitlab-org/gitlab@89182e4686c199aca16cbc99a0972c29300388be) ([merge request](gitlab-org/gitlab!112221)) +- [Audit ban action](gitlab-org/gitlab@c1b52fdb49eef509f36db30427daa09bd2ddffbf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116103)) **GitLab Enterprise Edition** +- [Cleanup Debian incoming files daily](gitlab-org/gitlab@efc7a54d5a036b4e7c72152255c03f9e85aedd82) by @sathieu ([merge request](gitlab-org/gitlab!103694)) +- [Add a "publish" instruction to the pages job](gitlab-org/gitlab@3984d6c9003fc3e8c283267ecee0f0a91d84b5e6) ([merge request](gitlab-org/gitlab!115340)) +- [Pause batched migration when patroni apdex drop below SLO](gitlab-org/gitlab@e1dc462465e6bd3b584e7a7e3bd8875c9e4fee53) ([merge request](gitlab-org/gitlab!97087)) +- [Make frequent projects/groups list editable](gitlab-org/gitlab@bc52daeecae1cde4e05600fd16076bec63218f15) ([merge request](gitlab-org/gitlab!115763)) +- [Expose Agent ID in agent view page](gitlab-org/gitlab@7a8a49d3afb61b9c8a16e48c3be82a5da5a46d3b) ([merge request](gitlab-org/gitlab!114545)) +- [Implement bulk applying compliance framework](gitlab-org/gitlab@08198553eb0053bafcc311be33679312fd827b77) ([merge request](gitlab-org/gitlab!115031)) **GitLab Enterprise Edition** +- [Add plan limits of access tokens](gitlab-org/gitlab@f7ae283543a0acfb971f4e4d01d1e558479ae3c8) ([merge request](gitlab-org/gitlab!115394)) +- [Add screenshot field to report abuse form](gitlab-org/gitlab@76eae7400d191befe59558fbaa0af8dd73d5f300) ([merge request](gitlab-org/gitlab!114852)) +- [Prepare async index security_scans_on_pipeline_id_and_scan_type](gitlab-org/gitlab@82e93c2579c6f7bcbb97565693e1ba0f8b40fe10) ([merge request](gitlab-org/gitlab!116010)) +- [Add audit event schema definitions](gitlab-org/gitlab@1350de73052baea97a0a65864647f0715dc2fbda) ([merge request](gitlab-org/gitlab!115501)) **GitLab Enterprise Edition** +- [Update group-level branch selector to a dropdown](gitlab-org/gitlab@10540405abec5e41807787c79351d854fb041482) ([merge request](gitlab-org/gitlab!115438)) **GitLab Enterprise Edition** +- [Release CODEOWNERS default owners](gitlab-org/gitlab@436ec562b120ea0ebc9b18aa252cb3cb1f3cd665) ([merge request](gitlab-org/gitlab!115888)) +- [Adds UI sorting by total storage size column](gitlab-org/gitlab@cb2a1ff95888fb3a061995afc8b0b34a07a57bbb) ([merge request](gitlab-org/gitlab!115543)) **GitLab Enterprise Edition** +- [Removes ci_recreate_downstream_pipeline feature flag](gitlab-org/gitlab@515cdb2df4c3a386f425e0b330a5a17711fb8b1b) ([merge request](gitlab-org/gitlab!114731)) +- [Adds internal_id and project_id to Ml::Candidate](gitlab-org/gitlab@1ca096f41eeb44c5ece4da1acd5272d26d6d8f0a) ([merge request](gitlab-org/gitlab!115401)) +- [Initialize conversion of awardable_id to bigint](gitlab-org/gitlab@866d004ed2df6773a541384d21f599b5b2a65d38) ([merge request](gitlab-org/gitlab!115928)) +- [Add sync index vulnerability_finding_signatures_on_signature_sha](gitlab-org/gitlab@3158010d9bf6917a44443a9f5d9bf8723dfd689c) ([merge request](gitlab-org/gitlab!115914)) +- [Add rails endpoint for work item import](gitlab-org/gitlab@8e3075e84eb9997bcf8a1d36239938c538f7a187) ([merge request](gitlab-org/gitlab!113484)) +- [Add DoraPerformanceScore model](gitlab-org/gitlab@f161a2573012f1622b9a29664568e95714a5e136) ([merge request](gitlab-org/gitlab!115689)) +- [Validate ci_builds partitioning constraint](gitlab-org/gitlab@2ba5dece94ca65c113ec22cd7b5a937f7061a6d4) ([merge request](gitlab-org/gitlab!115840)) +- [User unblock audit event](gitlab-org/gitlab@52fb7d53c48a519167d0d11bd1693da4b7332986) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115727)) **GitLab Enterprise Edition** +- [Add secret detection for replies](gitlab-org/gitlab@5cefa4433e07887e56dba5883b31d656d20ece19) ([merge request](gitlab-org/gitlab!115493)) +- [Add `approved` filter to merge requests api](gitlab-org/gitlab@ea77c3ee4ab14a79e9a6e6260db6cacf98b84cfb) by @Taucher2003 ([merge request](gitlab-org/gitlab!115121)) +- [Index vulnerability findings on uuid including vuln id](gitlab-org/gitlab@6e735436dff4fb04f0313898c01f48a9f53a9827) ([merge request](gitlab-org/gitlab!115175)) +- [Support quick actions for new work item comments](gitlab-org/gitlab@21f2eef7eaf53eb44aa6f47ba71ffc8913c6fd6a) ([merge request](gitlab-org/gitlab!113646)) +- [Prepare note_diff_files for bigint migration](gitlab-org/gitlab@7ed406b9fed3a3297374d86a0777f4f1fe299bfb) ([merge request](gitlab-org/gitlab!115614)) +- [Added support for CODEOWNERS syntax highlighting](gitlab-org/gitlab@320393251a194f1118a9cd14b61973fb68702808) ([merge request](gitlab-org/gitlab!114868)) +- [Add updated_after and updated_before to projects REST API](gitlab-org/gitlab@218db4f9dd17fda211092bc62cd43c102ddad5ca) ([merge request](gitlab-org/gitlab!113602)) +- [Add role_approvers to scan result policy](gitlab-org/gitlab@13a07cb8d4b46953de4ce3e5b2ec0a3d9870900d) ([merge request](gitlab-org/gitlab!113604)) **GitLab Enterprise Edition** +- [Add index to package files on package_id and created_at DESC](gitlab-org/gitlab@d8ddcc4361c12320c3db512f7b988d6d617e26c3) ([merge request](gitlab-org/gitlab!115316)) +- [Add a table for design repo and a class for the corresponding git repo](gitlab-org/gitlab@0c854aa700c234f9a90ad6b164e07eafd98d80c1) ([merge request](gitlab-org/gitlab!111555)) +- [Finalize issues iids scoping to namespace_id](gitlab-org/gitlab@6e5ef1db7deb9891bb833bbe9381a05ad6a5f334) ([merge request](gitlab-org/gitlab!114699)) +- [Allow WIT changes and fix issue types changes](gitlab-org/gitlab@0dc0b8028628173400cb161e00fe75a58cab6cd4) ([merge request](gitlab-org/gitlab!113852)) +- [Perform asynchronous index creation](gitlab-org/gitlab@a1dc699df0d78204ad798c313ca94fb379ce182e) ([merge request](gitlab-org/gitlab!115084)) +- [Add role_approvers to graphql response](gitlab-org/gitlab@7633a4750f0d74ba604a4d59b26e1d6b9a83ec99) ([merge request](gitlab-org/gitlab!114733)) **GitLab Enterprise Edition** +- [Warn users about tokens in the comments](gitlab-org/gitlab@e3038a2b2dd04c7c5cdf6dae0db7ea15a255128f) ([merge request](gitlab-org/gitlab!114621)) +- [Log slowest HTTP requests](gitlab-org/gitlab@70f73e8f0b70607ebf83bc929486a2105be86e34) ([merge request](gitlab-org/gitlab!114851)) +- [Enable Slack slash command to declare incidents](gitlab-org/gitlab@c319b3840e7443812b9cf4dc16c1678672eac8e8) ([merge request](gitlab-org/gitlab!113992)) +- [Add bulk publish endpoint to Draft Notes API](gitlab-org/gitlab@9da37d05ceb668d0fa208ad74cd1df390a0f6e8a) ([merge request](gitlab-org/gitlab!115237)) +- [Adds check for release service](gitlab-org/gitlab@e0acd19fb1ee646682f65f22b975b5995d08e0bc) ([merge request](gitlab-org/gitlab!114617)) +- [Add delete achievement mutation and service](gitlab-org/gitlab@5623cd100209e5db9e362fa091840a87af266063) ([merge request](gitlab-org/gitlab!114874)) +- [Add tracking to language filter component](gitlab-org/gitlab@ef91c4c52f7149e7a0a8bd3de52ca5a06d33361c) ([merge request](gitlab-org/gitlab!111054)) +- [Clean-up feature-flag git_abuse_rate_limit_feature_flag & keep code](gitlab-org/gitlab@66e607d646997070f96b10d840c400a40f427ca3) ([merge request](gitlab-org/gitlab!113934)) +- [Update issue epic links in real-time](gitlab-org/gitlab@5a1b34fc39d3c80ea3500c3b5f965fc8d85bc08c) ([merge request](gitlab-org/gitlab!114445)) **GitLab Enterprise Edition** +- [Set email confirmation setting from ff](gitlab-org/gitlab@4be3cdba71c25213028da1c756e1518283d00dcf) ([merge request](gitlab-org/gitlab!114642)) + +### Fixed (197 changes) + +- [GraphQL: Fix sort order of CiRunner.projects](gitlab-org/gitlab@fc8404b275bfcc49e14088d8807e2a3ecf5b7e88) ([merge request](gitlab-org/gitlab!117992)) +- [Use proxied_site for geo proxied clone urls](gitlab-org/gitlab@3ac6a9cae5e1f57ed3206311f30960203a5b7631) ([merge request](gitlab-org/gitlab!118058)) **GitLab Enterprise Edition** +- [Add migration to re-sync scan result policies for namepsaces](gitlab-org/gitlab@91df6b7addb871e6facab89a475b6cdf9b52064b) ([merge request](gitlab-org/gitlab!116608)) **GitLab Enterprise Edition** +- [Fix "Something went wrong. Please try again" error after merging](gitlab-org/gitlab@e3bb1d633d6b59c808234c8c07defecea9998142) ([merge request](gitlab-org/gitlab!117981)) +- [Update gitlab-net-dns to v0.9.2](gitlab-org/gitlab@c2bfa8701813667a3ef32405469cab567bffb23d) ([merge request](gitlab-org/gitlab!117961)) +- [Fix Todo Dashboard SAML reauth for projects in user namespaces](gitlab-org/gitlab@a7d00a3d051384de68777c0180e84c2fc570954f) ([merge request](gitlab-org/gitlab!117936)) **GitLab Enterprise Edition** +- [Fix divergence counts for tags and commits](gitlab-org/gitlab@4ef16baa9d0c65cd4c070f2c274c7f7558ca2865) ([merge request](gitlab-org/gitlab!117786)) +- [Fix subscribe to label dropdown](gitlab-org/gitlab@c528e9481c2891ad4039fb64be6798b7ebf8b41a) ([merge request](gitlab-org/gitlab!117893)) +- [Allow to select project value stream using URL parameter](gitlab-org/gitlab@c6452cd47a8a323e0589db49c2f3cb8f90e8aa9e) ([merge request](gitlab-org/gitlab!117170)) **GitLab Enterprise Edition** +- [Change copy for conflicts modal](gitlab-org/gitlab@f9fd162f016871446da5213fe897a2681f7d5f4a) ([merge request](gitlab-org/gitlab!117851)) +- [Remove max width restriction from state loader](gitlab-org/gitlab@ffe929c30198a6858ab11b7520b813aae9c458b4) ([merge request](gitlab-org/gitlab!117396)) +- [Fix for notification toggle not working on modal](gitlab-org/gitlab@10d018e0310bd4561d529972bdf163a4d59c5cc5) ([merge request](gitlab-org/gitlab!117819)) +- [Remove `allow_dots_on_tf_state_names` FF](gitlab-org/gitlab@ae929a9f217b1ffa3ee335e821a4309ac565f88f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117824)) +- [Place dependency proxy skeleton loader underneath the images list header](gitlab-org/gitlab@61e41c6f4cbe217993cd83fbe1c608bd24f74b20) by @glauciellesa ([merge request](gitlab-org/gitlab!117106)) +- [Fix User missing attribute error during audit](gitlab-org/gitlab@c2be121a6cb2213fe5626eb05c620e6efc0dd7e0) ([merge request](gitlab-org/gitlab!117273)) **GitLab Enterprise Edition** +- [Fallback to start commit when merge base is missing](gitlab-org/gitlab@751d9de0f3064851ad55aa860b033736516cae6a) ([merge request](gitlab-org/gitlab!117827)) +- [Fix merge request Jira sync problems due to branch](gitlab-org/gitlab@76179b20e357083c9d1437a0cf784e0b89b5348f) ([merge request](gitlab-org/gitlab!117616)) +- [Fixed explain code button background color](gitlab-org/gitlab@a48937370cb2eee54317bc37af4e0a66602cf239) ([merge request](gitlab-org/gitlab!117787)) **GitLab Enterprise Edition** +- [Skip DNS rebinding checks if HTTP_PROXY present](gitlab-org/gitlab@2f2b77f118ba2e498698dc9e2d6a8aa233acd808) ([merge request](gitlab-org/gitlab!115343)) +- [Change from `path` to `to_param`](gitlab-org/gitlab@36bf807eedd69f50521ab3d000264d5279fc8475) ([merge request](gitlab-org/gitlab!117741)) +- [Fix bug in SyncFindingsToApprovalRulesWorker](gitlab-org/gitlab@a004ecd15da7889bdb72cdecbf2b5bd9bf10ce8d) ([merge request](gitlab-org/gitlab!117593)) **GitLab Enterprise Edition** +- [Show groups from group shares in fork targets](gitlab-org/gitlab@de1202768a4326f6548608c9b3632b5f3b2192dc) ([merge request](gitlab-org/gitlab!117366)) +- [Reschedule migration to add admin_mode scope for PATs](gitlab-org/gitlab@c224c5230885b8996864537a0b4d0cad050c06fd) ([merge request](gitlab-org/gitlab!117255)) +- [Use primary ssh_url_to_repo for geo proxied ssh clone url](gitlab-org/gitlab@71ade6b206c9172a07ca44e5218cde0d828bf90e) ([merge request](gitlab-org/gitlab!117247)) **GitLab Enterprise Edition** +- [Use root ancestor path for filtering in frameworks table](gitlab-org/gitlab@12e673e6d414a4fa85be4941342e513c29e70752) ([merge request](gitlab-org/gitlab!117605)) **GitLab Enterprise Edition** +- [Use root ancestor for listing compliance frameworks](gitlab-org/gitlab@1d3fae10afd91002f6139f90067d7646546c621c) ([merge request](gitlab-org/gitlab!117604)) **GitLab Enterprise Edition** +- [Fix vulnerability status bulk updates](gitlab-org/gitlab@62b8379dbb747f7674c217b177a50ebd628221d5) ([merge request](gitlab-org/gitlab!117436)) **GitLab Enterprise Edition** +- [Patch doorkeeper-openid_connect to use RFC7638 thumbprint](gitlab-org/gitlab@744680d699fc7c869bfa7d2c429403df7bfc22b9) ([merge request](gitlab-org/gitlab!117468)) +- [Send password reset email to approved users when user caps are enabled](gitlab-org/gitlab@bf030778acdd53b214d8d29cd5300c2d7575c41d) ([merge request](gitlab-org/gitlab!117187)) +- [Diff header: Fix checkbox alignment](gitlab-org/gitlab@47705e6f2ab364774b31075b33949fffa56099bf) ([merge request](gitlab-org/gitlab!117573)) +- [Fix NoMethodError for empty repositories](gitlab-org/gitlab@c07baaabb51bf8240ff4753a6ae551bd34ad9d3f) ([merge request](gitlab-org/gitlab!117264)) +- [Fix duplicate name validation in ProcessScanResultPolicyWorker](gitlab-org/gitlab@94319c3efe710ef7fea4199d7865fc4c4e5b026c) ([merge request](gitlab-org/gitlab!117397)) **GitLab Enterprise Edition** +- [Changes order of text style in Content Editor](gitlab-org/gitlab@571b26851d8873d255b778538cfb5807b4231ff8) ([merge request](gitlab-org/gitlab!117496)) +- [Fix milestone_id=0 not clearing milestone](gitlab-org/gitlab@383b02aeff48325916be09961bef25da81b05fdb) ([merge request](gitlab-org/gitlab!117479)) +- [This MR fixes growing width of preview panel](gitlab-org/gitlab@79e82b673fb351fa8ac7d64088763d8b488e33c1) ([merge request](gitlab-org/gitlab!117109)) **GitLab Enterprise Edition** +- [Requeue the BackfillProjectWikiRepositories migration](gitlab-org/gitlab@8bd4da4dd0fe68e6b0563ea42a8935dfb222a4db) ([merge request](gitlab-org/gitlab!116869)) +- [Show error message from API if any while adding Epic](gitlab-org/gitlab@becbf5525d84a430d3a0dfd19d4b1d9ca94bacd0) ([merge request](gitlab-org/gitlab!117162)) **GitLab Enterprise Edition** +- [Fix NoMethodError for BlameController](gitlab-org/gitlab@28d124a0051a71a7fc3e10ffe341aa5cd1295703) ([merge request](gitlab-org/gitlab!117434)) +- [Fix gitlab_username_claim by reading also extra.raw_info](gitlab-org/gitlab@d6af6748b9cd7d9a09bd5a76bf756bcf0811e739) by @bufferoverflow ([merge request](gitlab-org/gitlab!116722)) +- [Calculate correct access level of shared group member](gitlab-org/gitlab@760e1ed68e2b6d7b36d7840fa2b3ede374dd960e) ([merge request](gitlab-org/gitlab!115346)) +- [Patch mail gem to handle TLS settings properly](gitlab-org/gitlab@90beaced0a186921f0b71546d37cda28fef65208) ([merge request](gitlab-org/gitlab!116925)) +- [Fixing pipeline minutes calculations](gitlab-org/gitlab@e31a569ee6a05e8f19a0802482d91dfab34f306b) ([merge request](gitlab-org/gitlab!117325)) **GitLab Enterprise Edition** +- [Remove unnecessary write tab for content editor](gitlab-org/gitlab@c14237354c151a356e3f35e18b9130ff563be120) ([merge request](gitlab-org/gitlab!117215)) +- [Fix invite a group on project wording and link](gitlab-org/gitlab@816c15cb125d9a2691ba6f09af5aa90161e43c7f) ([merge request](gitlab-org/gitlab!116593)) +- [Make ProcessScanResultPolicyWorker idempotent and add deduplication](gitlab-org/gitlab@1f5b7932975cd8211b56141b03edad70f2f9fd40) ([merge request](gitlab-org/gitlab!116485)) **GitLab Enterprise Edition** +- [Add admin_parent_link permission to hide Add button in issue](gitlab-org/gitlab@bb332210b9c784e171263fa397a01fda78308152) ([merge request](gitlab-org/gitlab!117241)) +- [Sign and verify ansi2json state](gitlab-org/gitlab@9a8fdf8f8d0bffab41fec8d65331bdf8ac8c466b) ([merge request](gitlab-org/gitlab!116625)) +- [Approvals widget: Fix approvers table cell width](gitlab-org/gitlab@bcc08a666d86bad7084c6c9aeec2f18c2d7ca2d4) ([merge request](gitlab-org/gitlab!117219)) +- [Force nowrap on tree body container](gitlab-org/gitlab@670679559d6da52ff15383703c9587dbd9a04ed9) ([merge request](gitlab-org/gitlab!117135)) +- [Show reference in root Work Item breadcrumb](gitlab-org/gitlab@9ae78b812d845a523b5fc85c64d5be32bd4ebc91) ([merge request](gitlab-org/gitlab!117134)) +- [Fix harbor registry menu item active status](gitlab-org/gitlab@e29e6ac0a08f76da1c424f558c4eb9f8aae58f0e) by @orozot ([merge request](gitlab-org/gitlab!117033)) +- [Do not display security widget when pipeline is active](gitlab-org/gitlab@5bbab2ce575270c08ffc42a7fc343f5afe54bd7a) ([merge request](gitlab-org/gitlab!116790)) **GitLab Enterprise Edition** +- [Use dummy email address for Ghost gitea users](gitlab-org/gitlab@43ccfdf70f8fb24e687757d8c9dc63df3ef665e3) ([merge request](gitlab-org/gitlab!116855)) +- [Apply correct background for dark mode](gitlab-org/gitlab@9e02ee900baa6bf866833e0fac01cfb977a27827) ([merge request](gitlab-org/gitlab!116675)) **GitLab Enterprise Edition** +- [Update codeowners default owner regex](gitlab-org/gitlab@6d5ef409767d9521cb7bbfca2ce529d8bbe7c244) ([merge request](gitlab-org/gitlab!116613)) **GitLab Enterprise Edition** +- [Convert some regex to use Gitlab::UntrustedRegexp](gitlab-org/gitlab@7c1d21360532ad4473da1b4d1717eb0182f93044) ([merge request](gitlab-org/gitlab!116610)) +- [Remove cascading delete of scan_result_policy_reads](gitlab-org/gitlab@6ad0745b97e954a8ca6adf0f46edd6b040eda6f9) ([merge request](gitlab-org/gitlab!116569)) **GitLab Enterprise Edition** +- [Only enqueue Sbom::IngestReportsWorker on default branches](gitlab-org/gitlab@67192cd2e4556d1bdff46f64dcf3d8b292cae73a) ([merge request](gitlab-org/gitlab!116971)) **GitLab Enterprise Edition** +- [Replace find with find_by_id in SyncScanPoliciesWorker](gitlab-org/gitlab@45e5b343726c0aecfce9f03be967013b20ce40a4) ([merge request](gitlab-org/gitlab!116948)) **GitLab Enterprise Edition** +- [Fix NoMethodError for WebHook](gitlab-org/gitlab@89bace10268e880152233a9c8e4117727612615e) ([merge request](gitlab-org/gitlab!116835)) +- [Fix job filtering after token clear](gitlab-org/gitlab@a5f72b4dc7f4cbf3390f96b9c4c486ad50c86a41) ([merge request](gitlab-org/gitlab!116579)) +- [Fix minor bug with checkboxes in a table](gitlab-org/gitlab@891f65d6428ea520afb3fc9aa387587171613dd5) ([merge request](gitlab-org/gitlab!116758)) +- [Fix bugs in Groups::AcceptingProjectSharesFinder](gitlab-org/gitlab@78fc9a93409d23e1cabfed64fc9f6d182bd3fa83) ([merge request](gitlab-org/gitlab!116652)) +- [Fix SD blob path when scan is run in "no git" mode](gitlab-org/gitlab@17434c74674210c506306eb17323391a2b3d856e) ([merge request](gitlab-org/gitlab!116908)) **GitLab Enterprise Edition** +- [Generate system notes for same state dismissals](gitlab-org/gitlab@acda580f64af3f99543ac3c100cbad7952548094) ([merge request](gitlab-org/gitlab!116796)) **GitLab Enterprise Edition** +- [Fix: mr approvers alignment](gitlab-org/gitlab@a05f0eb520137bf1d7ae8f2688240d5c91a20e21) ([merge request](gitlab-org/gitlab!116910)) +- [Remove extra space above mermaid sequence diagrams](gitlab-org/gitlab@6ec8d1c215d17f981715c7b508b5da1b5a214494) ([merge request](gitlab-org/gitlab!116882)) +- [Fix awardEmoji authorization in epic type](gitlab-org/gitlab@9ea917abe734bf67fcdbc425894d71efaf16873b) by @Taucher2003 ([merge request](gitlab-org/gitlab!116483)) **GitLab Enterprise Edition** +- [Merge request: fix status icon color](gitlab-org/gitlab@0cfd22c06bd2751b7554925445dc4421576284b5) ([merge request](gitlab-org/gitlab!116659)) +- [Approvals table: Fix overflow issue](gitlab-org/gitlab@4213a9420a79f3556003cbeb5aebc0f358619953) ([merge request](gitlab-org/gitlab!116828)) +- [Resolve setWorkItemMetadata in apollo client](gitlab-org/gitlab@00f2269e8076eab450255919d617002cae2ad098) ([merge request](gitlab-org/gitlab!116795)) +- [Enable FF pages_deploy_upload_file_outside_transaction by default](gitlab-org/gitlab@81cd2538c2b07f1b620713eb7ea4fef979829212) ([merge request](gitlab-org/gitlab!116821)) +- [Merge request: Fixes a console error](gitlab-org/gitlab@cec9033e51a9b6cadb681aed705e5347d119b5ac) ([merge request](gitlab-org/gitlab!116663)) +- [Allow CI job to need an undefined, optional job](gitlab-org/gitlab@3c899c06aea1eec81e5ed39cd93b765f104cc49e) ([merge request](gitlab-org/gitlab!116335)) +- [Disallow field licenseText for npm](gitlab-org/gitlab@fb32d902d46d435106859809d3a74e0ba8b7771d) ([merge request](gitlab-org/gitlab!115846)) +- [Replace message by name for vulnerabilities](gitlab-org/gitlab@2396d199612a44e9bd2ca8fe42edbe19994eb460) ([merge request](gitlab-org/gitlab!116419)) **GitLab Enterprise Edition** +- [Verify deploy keys settings for protected tags](gitlab-org/gitlab@2d88de5f2012bc9b68ac41abca49706f9aa95d7d) ([merge request](gitlab-org/gitlab!116780)) +- [Resolve ambiguous references for archive metadata](gitlab-org/gitlab@c969ca903ca5654a70ec166b769dba8655fba786) ([merge request](gitlab-org/gitlab!116566)) +- [Fix Authorize user page for Mattermost](gitlab-org/gitlab@263889844230c4af4d87df209787e919fd0c0e29) ([merge request](gitlab-org/gitlab!116492)) +- [Fix poor performing groups list API query](gitlab-org/gitlab@962dbf86672bdb211498b0928ff9df9379e89495) ([merge request](gitlab-org/gitlab!116748)) +- [Updates foreign_keys for Ml::Candidate relations](gitlab-org/gitlab@cc3d894a85e748a8cc50595808f6464b8263cd4f) ([merge request](gitlab-org/gitlab!116264)) +- [Fix unreadable text in dark-themed editor tooltips](gitlab-org/gitlab@2168aa323167e2e8ee0a545eefc6d636bcee6d91) ([merge request](gitlab-org/gitlab!116709)) +- [Dont show Security::Findings dismissed on the default branch](gitlab-org/gitlab@ed9160189d7cfe26482e592e233d55b0312908b5) ([merge request](gitlab-org/gitlab!113711)) **GitLab Enterprise Edition** +- [FIx markdown toolbar button actions in MRs](gitlab-org/gitlab@a36e41a581d1d7ab8c21f35723c42e1da7ae9095) ([merge request](gitlab-org/gitlab!116678)) +- [Fix collapse button alignment](gitlab-org/gitlab@dfe2c83f0fd082e6d5b246553257d9e1d398beeb) ([merge request](gitlab-org/gitlab!116662)) +- [Update bulk_imports entity validation for destination_name](gitlab-org/gitlab@3fe015fd90d36c7fc64fdbe74b963e30cc95a3bd) ([merge request](gitlab-org/gitlab!113417)) +- [Always update compliance report filtered projects list](gitlab-org/gitlab@18d3044ed65e406148f3f652f4797d918236fab4) ([merge request](gitlab-org/gitlab!116630)) **GitLab Enterprise Edition** +- [Fix user reference styles in content editor](gitlab-org/gitlab@9c7c1982be6a8069603270246714742703b528ef) ([merge request](gitlab-org/gitlab!116220)) +- [Fix border radius of clear filter button](gitlab-org/gitlab@3d4c8b69ec704a808e308ceeb85ed3c4e2e55ac7) ([merge request](gitlab-org/gitlab!116598)) +- [Use admin_bot for adding the default compliance framework](gitlab-org/gitlab@6b29c649166dd3418a1ae079b70a9418a6fc5786) ([merge request](gitlab-org/gitlab!116541)) **GitLab Enterprise Edition** +- [Fix duplication of thread comments on commit page](gitlab-org/gitlab@1068b2afe3ff3ee54427a48e272221aba88a3e38) ([merge request](gitlab-org/gitlab!116086)) +- [Fix invite redirect for use of relative root](gitlab-org/gitlab@b39466a8b1b9fa82ce2cc6c186e8810a686b789e) ([merge request](gitlab-org/gitlab!116560)) +- [Changes path for ML::Candidate artifacts](gitlab-org/gitlab@1eb8aad538e9800550aed10c2455b054156c22a4) ([merge request](gitlab-org/gitlab!114863)) +- [Don't enforce SSO for public groups](gitlab-org/gitlab@1253b41cb02bd274902ae46176be2ea0af93c06a) ([merge request](gitlab-org/gitlab!114111)) **GitLab Enterprise Edition** +- [Fix a replica latency bug on the Maven package registry upload endpoint](gitlab-org/gitlab@517807e28a41e83be6866af69399320e8e0b3a81) ([merge request](gitlab-org/gitlab!116543)) +- [Increase padding for dropdown in content editor](gitlab-org/gitlab@ff2fd3a58fd97493d0a6f43ce04d217045bbf318) ([merge request](gitlab-org/gitlab!116367)) +- [Fix JS error for dropdown widget on issue board](gitlab-org/gitlab@188cdf4155a4f1223ab646d65fb086b06d00308c) ([merge request](gitlab-org/gitlab!116516)) +- [Vue 3 spec violations fixed](gitlab-org/gitlab@f996b357a88d2fda59b4888da60faf1182018d8e) ([merge request](gitlab-org/gitlab!116511)) +- [Work item copy link fixed for modals](gitlab-org/gitlab@72809026ff81f54b73abac451de01d416d8ba681) ([merge request](gitlab-org/gitlab!116508)) +- [Fix markdown toolbar button actions](gitlab-org/gitlab@da726440b433a36194a8f8e2d307a3899f20b094) ([merge request](gitlab-org/gitlab!116500)) +- [Start pipeline in after_commit callback when retrying jobs](gitlab-org/gitlab@6e151a36f1c6b21f7bbd611ecf3055c1fd3acb18) ([merge request](gitlab-org/gitlab!116480)) +- [When replying comments, the text box isn't focused](gitlab-org/gitlab@89e7d99400430b4c156294d6bd16f1fa3b46f432) ([merge request](gitlab-org/gitlab!116348)) +- [Fix demoting of the admin with OIDC enabled](gitlab-org/gitlab@2400c7a9b86f233222333ebe5a17ba82e126619c) ([merge request](gitlab-org/gitlab!116082)) **GitLab Enterprise Edition** +- [Fix alignment of file tree search icon](gitlab-org/gitlab@a8310a5aeaa5e24fd465a13e9f8c026bc31a1f22) ([merge request](gitlab-org/gitlab!116454)) +- [Deletes compliance framework setting when transferring project](gitlab-org/gitlab@3b9b824ab4b783bcc55a712c2d2fdb8a76b83d97) ([merge request](gitlab-org/gitlab!115938)) **GitLab Enterprise Edition** +- [Fix spacing of referenced commands in comment preview](gitlab-org/gitlab@94db04f5f649497edb23067c4dceba584bcaafd3) ([merge request](gitlab-org/gitlab!116337)) +- [Use read_code to authorize GET protected_branches](gitlab-org/gitlab@3df103b248888c427a9914f63029e07c48d3c290) ([merge request](gitlab-org/gitlab!115495)) **GitLab Enterprise Edition** +- [Refetch container image tags list after deletion](gitlab-org/gitlab@376be39d1f72e59dbd59db5b2d0e91e3d535130f) ([merge request](gitlab-org/gitlab!115634)) +- [[Geo] Fix token timeout for container registry sync](gitlab-org/gitlab@f34ebe73c80fa330b97fd69373940451a6c2e6a0) ([merge request](gitlab-org/gitlab!114511)) +- [Remove subtransaction in Security::ProcessScanResultPolicyWorker](gitlab-org/gitlab@cd5d601b5af6c182cdd78e3b3b0ba3432ca7120d) ([merge request](gitlab-org/gitlab!114785)) **GitLab Enterprise Edition** +- [Fix incorrectly added VSA FF check](gitlab-org/gitlab@0ed8f291dcbb89647281265454317fa1e49c9721) ([merge request](gitlab-org/gitlab!116398)) **GitLab Enterprise Edition** +- [Enhance license dependency equality](gitlab-org/gitlab@aa26c93acdfa3269d65f0f7cf4bf127a251d48fe) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115402)) **GitLab Enterprise Edition** +- [Fix commits ref switcher](gitlab-org/gitlab@4149875b1ceb6b2919920b2b3f85cca1f2f63e01) ([merge request](gitlab-org/gitlab!116372)) +- [Fix broken trait specs - package](gitlab-org/gitlab@b8e620cb6d64c9907f4836ca3a3da206d6fef3f1) by @sathieu ([merge request](gitlab-org/gitlab!116365)) +- [Fix reconcile needed message for offline license](gitlab-org/gitlab@74f9b67f3a88d3474c4df7a1cac44f5cb0539a61) ([merge request](gitlab-org/gitlab!116350)) **GitLab Enterprise Edition** +- [Diff: Fix border radius of thread](gitlab-org/gitlab@32f826a26b830b2ff0c66edcc91f6d6a81616130) +- [Skip epic cache update if epic can not be saved](gitlab-org/gitlab@492111cb6d605076fc80704666a4cc20fe72de39) ([merge request](gitlab-org/gitlab!115688)) **GitLab Enterprise Edition** +- [Fix date issue for broadcast message edit on firefox](gitlab-org/gitlab@b0877a91449070e37371ef68f8f31581773e8fc7) ([merge request](gitlab-org/gitlab!116161)) +- [Fix licensed VSA page without parity FF](gitlab-org/gitlab@289a9f60c68c3fffb9a4880d55382b24e54d7c60) ([merge request](gitlab-org/gitlab!116272)) **GitLab Enterprise Edition** +- [Diff: Fix border radius of thread](gitlab-org/gitlab@11c4127d9fdb5e5272ff3ab30276cfb6810b218a) ([merge request](gitlab-org/gitlab!116113)) +- [Fix bug in scope `Group.project_creation_allowed`](gitlab-org/gitlab@98c38271d214651e9c9581e773ce9fdbecb53ce3) ([merge request](gitlab-org/gitlab!116168)) +- [Ensure backup restore clears storages before restoring](gitlab-org/gitlab@4be1f22815bede67d1f61a42fa4608b94b121bc6) ([merge request](gitlab-org/gitlab!115283)) +- [User with custom role + read_code can view MD link](gitlab-org/gitlab@a4f37efcca2fbf2e213240a8e1f301aaadd556f6) ([merge request](gitlab-org/gitlab!115916)) **GitLab Enterprise Edition** +- [Append tag notes when creating a new tag too](gitlab-org/gitlab@a04e7d9c2b5970693d95e0996762932b2954f70f) ([merge request](gitlab-org/gitlab!116153)) +- [Fix N+1 query for max access level in project lists](gitlab-org/gitlab@303fc633f81b36153cdc4b9cb4da340c1b46be1c) ([merge request](gitlab-org/gitlab!115758)) +- [Fix item height in wiki sidebar](gitlab-org/gitlab@66932e93d62b9ed155be8288e229be849d014f1b) by @qk44077907 ([merge request](gitlab-org/gitlab!115929)) +- [Add a loading indicator for suggestions](gitlab-org/gitlab@c8bd5858b98d05c32ffc9bbea7ddab8c8b86219f) ([merge request](gitlab-org/gitlab!115981)) +- [Fix autofocus on work item description](gitlab-org/gitlab@d995e6fb4c25d8cbe10962b841a4e23ef97c5863) ([merge request](gitlab-org/gitlab!113795)) +- [Hide pipeline links tip in Stage view](gitlab-org/gitlab@40d0d8e864a3bbcf724a7cb807dc476719a89ce5) by @homersimpsons ([merge request](gitlab-org/gitlab!115806)) +- [Fix assignee avatars alignment on issues list](gitlab-org/gitlab@b872df2c1efc684003d31fd0e20fa7d681be4458) ([merge request](gitlab-org/gitlab!115973)) +- [Fix missing caller_id for GraphQL subscriptions](gitlab-org/gitlab@c4ec91bcc3d005c806231caee21b3e427fcd0069) ([merge request](gitlab-org/gitlab!115995)) +- [Security Finding: fix note link to project](gitlab-org/gitlab@5f5ece874fee956e52b7de0cb44afee987e0e3af) ([merge request](gitlab-org/gitlab!115904)) **GitLab Enterprise Edition** +- [Fix loading multi-doc YAMLs for CI configurations](gitlab-org/gitlab@8a22877fc892558a5306fb68c14c97a3f98b76c3) ([merge request](gitlab-org/gitlab!115703)) +- [Do not change object reference when body is nil](gitlab-org/gitlab@3d2ef2205662ec7a0334acbac54ab8e091e13df9) ([merge request](gitlab-org/gitlab!115931)) +- [Fix reference styles in content editor](gitlab-org/gitlab@8d1f7ece48c5f843e5b6120eb215ba99a05f9a74) ([merge request](gitlab-org/gitlab!115978)) +- [Add relative root to broadcast messages](gitlab-org/gitlab@d54fb1a852e469ba7f6df7ac078c60a1d5ac1bdb) ([merge request](gitlab-org/gitlab!115901)) +- [Fix board_list_spec.js vue3 test violations](gitlab-org/gitlab@aece5903f8241b47c46f458dcfa07b65082a3ca0) ([merge request](gitlab-org/gitlab!115767)) +- [Adds relation package_id to ml_candidates](gitlab-org/gitlab@8bac13b6d5d12f32ae417ac7e334785949a3fa52) ([merge request](gitlab-org/gitlab!114067)) +- [Enforce merge request approval settings](gitlab-org/gitlab@4158b15ad5ac0d1655e3572718e90df5f9c67ba6) ([merge request](gitlab-org/gitlab!115936)) **GitLab Enterprise Edition** +- [Display fallback emoji images with correct aspect ratio](gitlab-org/gitlab@dfc2e67084020bde50c3db2a95a42b40c8f998ac) ([merge request](gitlab-org/gitlab!115145)) +- [Use UUID to match findings with issue feedback records](gitlab-org/gitlab@0aefecba5bc5a85fe926b3fb76ea4c05b5847641) ([merge request](gitlab-org/gitlab!115397)) **GitLab Enterprise Edition** +- [Cells: Fix loose foreign key trigger validation routine](gitlab-org/gitlab@42e05afdc203818393ff16d9d547e7ed35cb7884) ([merge request](gitlab-org/gitlab!115672)) +- [Hide achievements on private profiles](gitlab-org/gitlab@963fd144dee96f41cdfbfd3f2c1b07edd78a695f) by @Taucher2003 ([merge request](gitlab-org/gitlab!115427)) +- [Fix unlocking of job artifacts on pipeline state transitions](gitlab-org/gitlab@7dfa00954fd96f8cd924d97c75d3d5f5755118b5) ([merge request](gitlab-org/gitlab!114426)) +- [Hide inactive approvers](gitlab-org/gitlab@b5f88fbbbd4e2d8f1f9a2aa1ae64f7082dbebe9f) ([merge request](gitlab-org/gitlab!115814)) **GitLab Enterprise Edition** +- [Correctly compute blob URL for Secret Detection](gitlab-org/gitlab@54c260a8ade2b1d9f5cbaf9d490031d753213516) ([merge request](gitlab-org/gitlab!115470)) **GitLab Enterprise Edition** +- [Add top margin to merge request description](gitlab-org/gitlab@d8140b7f9da9e9dcc3c7c7c2f444237acda93a76) ([merge request](gitlab-org/gitlab!115235)) +- [Allow HEAD ref when viewing blob, commits and compare page](gitlab-org/gitlab@40eb37104109eaf54f0b09333b9a864e6d4f271d) ([merge request](gitlab-org/gitlab!115762)) +- [Do not serialize data image urls](gitlab-org/gitlab@2f0d338314fa120510ad2519fff0dcb179c505b7) ([merge request](gitlab-org/gitlab!115760)) +- [Update mail gem to v2.8.1](gitlab-org/gitlab@030273dd6f3d5fa91f47732e2901e8d8cfdb52a1) ([merge request](gitlab-org/gitlab!115755)) +- [Don't generate invalid SQL checking foreign keys](gitlab-org/gitlab@14952978d06ccc2e0404e6863ad31019d80a9bb3) ([merge request](gitlab-org/gitlab!113437)) +- [Fix agent version comparison with KAS rc](gitlab-org/gitlab@3d24565c0f620ba194379d93b0954dabaea5c62b) ([merge request](gitlab-org/gitlab!114897)) +- [Improves dataframe rendering in Python Notebooks](gitlab-org/gitlab@4c25189caacbc70f36fde5e83654a16c582d80ff) ([merge request](gitlab-org/gitlab!114561)) +- [Jobs list: remove double bottom border](gitlab-org/gitlab@43bb24780f851baf58fe32093467256cb1fa60c3) ([merge request](gitlab-org/gitlab!115010)) +- [Fix(Purchase): handle email taken error](gitlab-org/gitlab@c00c51439ce3eb2848bca4c8ead96f720c80ca87) ([merge request](gitlab-org/gitlab!115373)) **GitLab Enterprise Edition** +- [Fixes the ref switcher encoding](gitlab-org/gitlab@cb4e7475b6e00dbcef71aeff12b36920e3f19639) ([merge request](gitlab-org/gitlab!115663)) +- [Child issues and epics: fix closed state](gitlab-org/gitlab@f17669b7f55d016656e175b86a27e68902f82271) ([merge request](gitlab-org/gitlab!115652)) **GitLab Enterprise Edition** +- [Add sync_name check to Gitlab::Auth::Ldap::Access](gitlab-org/gitlab@a23f6bf8c713b2d4b1624fa58169ba2dcf35cc13) by @zhzhang93 ([merge request](gitlab-org/gitlab!115496)) **GitLab Enterprise Edition** +- [Unstuck VSA background aggregations](gitlab-org/gitlab@bf15233ffd181966dfad27758c4cce701417ea74) ([merge request](gitlab-org/gitlab!115484)) +- [Fix trial creation action reload with select](gitlab-org/gitlab@cfc05510fd29cf4ca3c870119204111d8153a42a) ([merge request](gitlab-org/gitlab!115423)) **GitLab Enterprise Edition** +- [Improve paste markdown behavior in Content Editor](gitlab-org/gitlab@2ca0309fff7196fab5160f00060168eeeac2912f) ([merge request](gitlab-org/gitlab!115574)) +- [Fixing CI mirrored tables mermaid chart](gitlab-org/gitlab@50ec6b045fd7e5a2788078d271ffc7f9a6785aa1) ([merge request](gitlab-org/gitlab!115560)) +- [Remove temporary workaround for DeployAccessLevel](gitlab-org/gitlab@44f3cfda003c30a83b12fc971c810a6637882f0b) ([merge request](gitlab-org/gitlab!115559)) +- [Show Projects menu as active while on Starred or Trending projects pages](gitlab-org/gitlab@a0f6c5fbde5166c85ce3fa033c911c4ac5e1da11) ([merge request](gitlab-org/gitlab!114703)) +- [Add constraint for deploy_access_level](gitlab-org/gitlab@bb69f4f944f6d21f18a2151e6afe160f1376a61a) ([merge request](gitlab-org/gitlab!115557)) +- [Fix alignment of commit changes block](gitlab-org/gitlab@ef30ceb2cd14e4a89c2f5dfef84d0e56790f950a) ([merge request](gitlab-org/gitlab!115417)) +- [Fix invalid protected environment access levels](gitlab-org/gitlab@055be18831e288173ad2985c70176e9dff1efce5) ([merge request](gitlab-org/gitlab!115549)) **GitLab Enterprise Edition** +- [Fix Debian doc for direct upload with older curl](gitlab-org/gitlab@dc5d1f862fde83d11cf0da065f1fe5c6f106bf0d) by @sathieu ([merge request](gitlab-org/gitlab!114951)) +- [Validate DeployAccessLevel options](gitlab-org/gitlab@836d0a52895d6c26a1a9d75a0e5ca6a69ab2b185) ([merge request](gitlab-org/gitlab!114449)) **GitLab Enterprise Edition** +- [Use `method` to resolve access_level_description field](gitlab-org/gitlab@4b350ff21e011a2e5c5dd554bc5b74aad19b1572) ([merge request](gitlab-org/gitlab!115541)) +- [Fix dropdown closing prematurely when clicking inside](gitlab-org/gitlab@9a8ab38d79aab843f814eea7c3e68c446cd20bda) ([merge request](gitlab-org/gitlab!115528)) +- [Fix alignment of user readme breadcrumb chevron](gitlab-org/gitlab@30c82f5eeea02632dd5e209fd2b915c56e698555) ([merge request](gitlab-org/gitlab!115378)) +- [Fix inconsistent behaviour in work items comments](gitlab-org/gitlab@982131ba23f3a43a15a292cedeb35111ff6a4aaa) ([merge request](gitlab-org/gitlab!115222)) +- [Remove long-running transaction while deduplicating the findings](gitlab-org/gitlab@7536f408978a0e69039cc164c5401620e41397c9) ([merge request](gitlab-org/gitlab!115491)) **GitLab Enterprise Edition** +- [Fix issue dashboard returning issues from archived projects](gitlab-org/gitlab@d68e880b1018c2d6e3dc4586406840d37e424171) ([merge request](gitlab-org/gitlab!115236)) +- [Fix command-only note not clearing commment form](gitlab-org/gitlab@6b4b6352d5cdd0fdc8af04e749b79a69ec4abdef) ([merge request](gitlab-org/gitlab!114581)) +- [Widget item: fix status :focus](gitlab-org/gitlab@b7eb0d7c901cd78f88ce6e7965d38523af50d70a) ([merge request](gitlab-org/gitlab!115375)) +- [Canonicalize dependency list names](gitlab-org/gitlab@752438c9df2142c42b6b560a1ead43509bf837d8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114616)) **GitLab Enterprise Edition** +- [Fix branch rules details breadcrumbs](gitlab-org/gitlab@44fbb20c8c87d6f8e887f99cc2eafdc1507b7426) ([merge request](gitlab-org/gitlab!115320)) +- [Merge request widget: Fix alignment of cancel button](gitlab-org/gitlab@d8574f0ed7ce15fa0830e4b1509cfece48d87d4f) ([merge request](gitlab-org/gitlab!115307)) +- [Prevent updating a comment with empty text (deprecated_notes.js)](gitlab-org/gitlab@713b7428510fae06a8ee9f1f57da9bcf109c5c48) ([merge request](gitlab-org/gitlab!114563)) +- [Search only descendant groups when applicable](gitlab-org/gitlab@7c88f03f091f053879d690b8781536fd191eb6cb) ([merge request](gitlab-org/gitlab!113625)) **GitLab Enterprise Edition** +- [Sync security policy rule schedules that may have been deleted by bug](gitlab-org/gitlab@3af3bd23c3a4bfd4ff26f7a32c3503be20b930e7) ([merge request](gitlab-org/gitlab!114337)) +- [Fix clipping of review bar component when system footer exists](gitlab-org/gitlab@aab12443d6a0598d4b42a2cd58d13d8f5c77955f) ([merge request](gitlab-org/gitlab!115249)) +- [Fixing database backup rake task in single-db-two-connections mode](gitlab-org/gitlab@760c2a010d2fed824d062de87ec2f2fb21cb76bc) ([merge request](gitlab-org/gitlab!115230)) +- [Fix 500 error for diff_files endpoint](gitlab-org/gitlab@674548f78791562fcfd7d9be05399c14f57bab2d) ([merge request](gitlab-org/gitlab!115311)) +- [Fix LDAP sync_name option bug](gitlab-org/gitlab@505b2dc9c8c6e0ee0a136d6e16759c76b7f79c92) by @zhzhang93 ([merge request](gitlab-org/gitlab!112427)) +- [Fix license available of group-protected branches](gitlab-org/gitlab@a189af3d508651d417aebed75964ad5b998847f9) by @songhuangcn ([merge request](gitlab-org/gitlab!114846)) **GitLab Enterprise Edition** +- [Decrease indent for profile page bio](gitlab-org/gitlab@af2c97d97fd626934d57811e9e6bd9924bba671c) ([merge request](gitlab-org/gitlab!115191)) +- [This MR fixes radio button overlay](gitlab-org/gitlab@b96fe03b214cb940d28c9bd41a53bc2aa0f00029) ([merge request](gitlab-org/gitlab!115190)) **GitLab Enterprise Edition** +- [Fix openapi viewer for relative url instances](gitlab-org/gitlab@867c06b74eaeea29f265bdb79c2cd566ffe3e3b8) ([merge request](gitlab-org/gitlab!114542)) +- [Avoid duplicate key error messages when inserting state record](gitlab-org/gitlab@2d79bc09abf3c4517e2432e246e8eb0e38837c88) ([merge request](gitlab-org/gitlab!115139)) +- [Fix Google CDN not encoding UTF-8 characters](gitlab-org/gitlab@4eaa944cd12bff260b6e94c75e7c6dd3b9058f07) ([merge request](gitlab-org/gitlab!115079)) +- [Linked items fixes](gitlab-org/gitlab@ae136b135e5ea3e955e8280e3b09dc0819c21f45) ([merge request](gitlab-org/gitlab!114715)) **GitLab Enterprise Edition** +- [Fix caching to cover whole Service Ping payload](gitlab-org/gitlab@fedf1360c2fbc5e06ccb7c14ab53a33aba362d69) ([merge request](gitlab-org/gitlab!114992)) +- [Update wiki repository size after migration](gitlab-org/gitlab@dbbe01dfb0c1cfa57f3b27750b2091497e61474e) ([merge request](gitlab-org/gitlab!114988)) +- [Fix TypeError when json file is an array](gitlab-org/gitlab@c56dedef9a0c0a66f8bb780e0935de04b989d411) ([merge request](gitlab-org/gitlab!114770)) + +### Changed (275 changes) + +- [Add support for npm deprecate](gitlab-org/gitlab@fe98e7c75861acf64e44bf363530db50d82b2968) ([merge request](gitlab-org/gitlab!117009)) +- [Extend issue type change note](gitlab-org/gitlab@4150f4a6fcb30c63e06ea56599d0fd70f907d332) ([merge request](gitlab-org/gitlab!117858)) +- [Update new label form](gitlab-org/gitlab@5e0951bb4096f334231deeace5d7e18872270404) ([merge request](gitlab-org/gitlab!117918)) +- [Visual tweaks for new sidebar nav search menu](gitlab-org/gitlab@d343279cce1ce942c0671c47a0fbfd9b44351374) ([merge request](gitlab-org/gitlab!116013)) +- [Backfill code suggestions to true for all namespaces](gitlab-org/gitlab@c2a7f37542ab4336cbea8b4025dd55e90ae52a58) ([merge request](gitlab-org/gitlab!117899)) +- [Removing FF lazy_load_pipeline_dropdown_actions](gitlab-org/gitlab@40df9091e573fb5e73503300a569a6e682d1557b) ([merge request](gitlab-org/gitlab!117442)) +- [Leave candidate as default code path](gitlab-org/gitlab@f9d4eb8155d4a8a3d8f67a2292fa342a032d0b6b) ([merge request](gitlab-org/gitlab!116591)) **GitLab Enterprise Edition** +- [Extend approvals UI with fail-closed rules](gitlab-org/gitlab@8eaad85cac3dcfe543f18375ba462499103982c2) ([merge request](gitlab-org/gitlab!117423)) **GitLab Enterprise Edition** +- [Guard legacy runner status in graphql by feature flag](gitlab-org/gitlab@d97e90c1b981f2aa928b067911c8d293c8bcf178) ([merge request](gitlab-org/gitlab!117875)) +- [Change code suggestions namespace setting default to true](gitlab-org/gitlab@189832f00456bb313418ee660e186bc8c2180de6) ([merge request](gitlab-org/gitlab!117895)) +- [Format explain vulnerability responses with markdown format headers](gitlab-org/gitlab@44b77c8fefa5814f271ec86087c13188a92f361d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/117902)) **GitLab Enterprise Edition** +- [Animate approval icon in merge request sidebar](gitlab-org/gitlab@30e980cc65f62de78495a0def8a436efa2882776) ([merge request](gitlab-org/gitlab!116839)) +- [Remove top border to prevent overlap](gitlab-org/gitlab@b7dd36134e0fca8bda1c223caaf145af80356101) ([merge request](gitlab-org/gitlab!117810)) +- [Add "fork" to word list and remove docs link from UI](gitlab-org/gitlab@32a265a7e39eb504ca06e61410c5826ecd1fa859) ([merge request](gitlab-org/gitlab!117486)) +- [Replace Deployment Icon with Release Icon on Project Home](gitlab-org/gitlab@e6f275ac592f3c087f91cde8fb8d9dd34b13c06b) by @glauciellesa ([merge request](gitlab-org/gitlab!117803)) +- [Update scheduled Scan Execution Policy for secret_detection](gitlab-org/gitlab@0823f6b45b233dc37aed90f305fd2ccef342f1f4) ([merge request](gitlab-org/gitlab!114952)) +- [Allow logging of all IssuableExportCsvWorker parameters](gitlab-org/gitlab@c74d06887e351132e0d4e786d635dbd3792a5471) ([merge request](gitlab-org/gitlab!117570)) +- [Adds frontend for candidate deletion](gitlab-org/gitlab@3c07d53495f94c7cc13e42727f1f32386ad7e45f) ([merge request](gitlab-org/gitlab!116953)) **GitLab Enterprise Edition** +- [Enable geo_project_wiki_repository_replication feature flag](gitlab-org/gitlab@8f141a8a2b67b2061cebb0c81573bcf741e4ec2c) ([merge request](gitlab-org/gitlab!117705)) **GitLab Enterprise Edition** +- [Add reviewed but not approved state in MR sidebar](gitlab-org/gitlab@9891e780fbc714f720d04eac6a273b8787735fc2) ([merge request](gitlab-org/gitlab!117302)) +- [Better error message when branch name does not match push rules settings](gitlab-org/gitlab@cc38eb9d33a08ffde80f11266573d6abd108a64c) ([merge request](gitlab-org/gitlab!115530)) **GitLab Enterprise Edition** +- [Update status check documentation](gitlab-org/gitlab@005eaa0fa463afe9d8fcba7c4f7c55897085678a) ([merge request](gitlab-org/gitlab!117683)) +- [Add extra information to the github identifiers of importer failures](gitlab-org/gitlab@ceaef14f876f1682fae103f80b0523a27b642d9b) ([merge request](gitlab-org/gitlab!114839)) +- [Replace namespace_id with group_id and project_id for POST /user/runners](gitlab-org/gitlab@a312d9d60db028ed947161aac7aae100875d899a) ([merge request](gitlab-org/gitlab!117542)) +- [Apply changes to order of secure nav items](gitlab-org/gitlab@bcb69dd0e2131aeb9fe8b0ca7bd7142fb1b1ed23) ([merge request](gitlab-org/gitlab!117299)) +- [Add tables and columns support to database schema validations](gitlab-org/gitlab@9f15c81e9fe6582c65bae35bdff81ede6e8e5aab) ([merge request](gitlab-org/gitlab!117477)) +- [Add experiment label to ai chat header](gitlab-org/gitlab@09d26be8bea3e8385893028935fc5d58de1ae337) ([merge request](gitlab-org/gitlab!117583)) +- [Use badge component for "busy" status](gitlab-org/gitlab@86088cbf0228ecbbfed021f6227a8ed4d934fde3) ([merge request](gitlab-org/gitlab!117074)) +- [Replaced VSA Overview "Total time" line chart with stacked area chart](gitlab-org/gitlab@b533f2b1d1e1fc3e42629250456dd439307f09a4) ([merge request](gitlab-org/gitlab!114484)) **GitLab Enterprise Edition** +- [Extend GraphQL approval rules with indication of invalid rules](gitlab-org/gitlab@567616c3e8dfd85f70b9a140792eafa72164d90c) ([merge request](gitlab-org/gitlab!116969)) **GitLab Enterprise Edition** +- [Fix spacing in content editor code blocks](gitlab-org/gitlab@0ad7f2ee79c345f69e65175e5500929a6756202d) ([merge request](gitlab-org/gitlab!117507)) +- [Convert admin menu from haml to panel](gitlab-org/gitlab@b1d0a5dbe96799e035d34a1d05cde51f41b45fde) ([merge request](gitlab-org/gitlab!115162)) **GitLab Enterprise Edition** +- [Log warnings on invalid ansi2json state inputs](gitlab-org/gitlab@43806fd4cba90aa9ed38cb15b1132a25ea6f550a) ([merge request](gitlab-org/gitlab!117592)) +- [Clean up runners_availability_section experiment](gitlab-org/gitlab@10b5c45699a188925461b971d6e9c72355780d72) ([merge request](gitlab-org/gitlab!117315)) +- [Sets the default 'Documentation pages URL' to https://docs.gitlab.com](gitlab-org/gitlab@27885bfbc6343d9a2f8c10abdf153a7534820ed0) ([merge request](gitlab-org/gitlab!116857)) +- [Remove tooltip from merge request actions dropdown](gitlab-org/gitlab@13a79ff175ead84d81098fd9ebf5203c0dfc8850) ([merge request](gitlab-org/gitlab!116853)) +- [Enable license scanning feature again](gitlab-org/gitlab@448dc3ff2e4b75556b1f87ba65e0c1df9ea39d85) ([merge request](gitlab-org/gitlab!117554)) **GitLab Enterprise Edition** +- [Fix insert link in content editor](gitlab-org/gitlab@c2458281fdd6025a93e119bb1c1635287dd23b43) ([merge request](gitlab-org/gitlab!116555)) +- [Only allow developers or higher to trigger merge_status_recheck](gitlab-org/gitlab@c104f6b841c79e83f8824900ddb38fdded00bb92) ([merge request](gitlab-org/gitlab!115948)) +- [Synchronize temporary index](gitlab-org/gitlab@63579a3650729aa2cafcc2dac9a8152d2a33b7c2) ([merge request](gitlab-org/gitlab!116529)) +- [Experiment Cleanup: removed the `cart_abandonment_modal` experiment](gitlab-org/gitlab@8646d262439aa00fc807742180703c6a54d06580) ([merge request](gitlab-org/gitlab!116812)) **GitLab Enterprise Edition** +- [It casts EXTRACT as double precision](gitlab-org/gitlab@aea7814d08b2e5eb24d43676895b9a8d4eca055e) ([merge request](gitlab-org/gitlab!117150)) +- [Adjust tests to api admin mode](gitlab-org/gitlab@62bab8ad6a95b9a0fa75f316d1e7812cac27fc02) by @TrueKalix ([merge request](gitlab-org/gitlab!114136)) +- [Update security policies docs after fixing concurrent execution bug](gitlab-org/gitlab@dc6df401eb99795c62ba4e812cada74f97bc8b70) ([merge request](gitlab-org/gitlab!117503)) +- [Add 'broadcasting' label to Action Cable counter](gitlab-org/gitlab@48f8bc948042a6bf7a15ea834e97c6250638a037) ([merge request](gitlab-org/gitlab!117253)) +- [Left align emoji picker on descriptions and notes](gitlab-org/gitlab@53090eee739e330cb7a262d34ac0212d4e5a9e22) ([merge request](gitlab-org/gitlab!117502)) +- [Finalize EncryptCiTriggerToken background migration](gitlab-org/gitlab@ade0d70fa887a3f3d37ea95cae612b70b6444647) ([merge request](gitlab-org/gitlab!117483)) +- [Allow immediate deletion of projects using API](gitlab-org/gitlab@ed095b666710a2cab00756435e6b179023bdf790) ([merge request](gitlab-org/gitlab!116957)) **GitLab Enterprise Edition** +- [Add table validators to schema validation framework](gitlab-org/gitlab@cf9c4cdfa7b4218955fa80215a699a277c21a5de) ([merge request](gitlab-org/gitlab!117013)) +- [Merge request header: add icon to indicate fork](gitlab-org/gitlab@08cea41f58bddb696abea63deef4a7a191c18e1a) ([merge request](gitlab-org/gitlab!116284)) +- [Enable strict_ip_enforcement by default](gitlab-org/gitlab@39bb39c10366287e9fa55cacb0282870b346d99f) ([merge request](gitlab-org/gitlab!112756)) **GitLab Enterprise Edition** +- [Improve rendering of HTML-only emails in issue responses](gitlab-org/gitlab@f6127ae30f5f9520a11033cd2d86e4953ba207e1) ([merge request](gitlab-org/gitlab!116809)) +- [Add basic implementation of loading only a single diff file](gitlab-org/gitlab@357a768eafecaee5efc9234297550290b4d403b8) ([merge request](gitlab-org/gitlab!111895)) +- [Update wiki diagram editor to be fullscreen](gitlab-org/gitlab@7be5a544497f60a1a0043615d500f467463f3106) ([merge request](gitlab-org/gitlab!116746)) +- [Skip setting base path for GitLab.com](gitlab-org/gitlab@44b7f7bf16b0c2ab31627f1c69d4c913243d69be) ([merge request](gitlab-org/gitlab!117371)) +- [Introduce Breach and Attack Simulation features](gitlab-org/gitlab@4b441592d9ec92121a13a51c05018835dd46bcf3) ([merge request](gitlab-org/gitlab!116889)) +- [Stop flashing issue description on details toggle](gitlab-org/gitlab@fb10dba38e677da360ac0d2324591f7d6c27759e) ([merge request](gitlab-org/gitlab!117180)) +- [Feat(Subscription Purchase): update CDot link](gitlab-org/gitlab@b4d7438fce7fe3411e9938e8798601a13d25fade) ([merge request](gitlab-org/gitlab!116825)) **GitLab Enterprise Edition** +- [Disable Net::HTTP monkey patch for Ruby 3.1](gitlab-org/gitlab@bf6831feed1506d2f994722d5106e07dedd00f03) ([merge request](gitlab-org/gitlab!117167)) +- [This MR creates new filtering layout](gitlab-org/gitlab@2f6314662ccff9626c1cc9f046770e6384fe2dea) ([merge request](gitlab-org/gitlab!116493)) **GitLab Enterprise Edition** +- [Drop retry_job_start_pipeline_after_commit feature flag](gitlab-org/gitlab@f710cd993357804b1cde623aa6eb9cd6b0e001a3) ([merge request](gitlab-org/gitlab!117275)) +- [Autofills create label form](gitlab-org/gitlab@013d99cda2d294efb009255d42ec145089c0b7e4) ([merge request](gitlab-org/gitlab!116590)) +- [Rename "Infrastructure Registry" menu to "Terraform modules"](gitlab-org/gitlab@003a27abce2e719a5aa001deef67307325638229) ([merge request](gitlab-org/gitlab!116488)) +- [Users list: change user actions](gitlab-org/gitlab@455f104e0ce5ed98750a8d03fadf1e0b902bc7dd) ([merge request](gitlab-org/gitlab!117236)) +- [Change dashboard to homepage ](gitlab-org/gitlab@6920d32526928a62379f740f3f32e1e709c0baf5) ([merge request](gitlab-org/gitlab!114523)) +- [Refactor compliance frameworks create/edit to modals](gitlab-org/gitlab@0eea2ef049113c0ae8e738f992a2da61ecee76b0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113637)) **GitLab Enterprise Edition** +- [Related branches: add widget styles](gitlab-org/gitlab@afcd622e95b63f0c8294bd12f03fe5f25dfc5de9) ([merge request](gitlab-org/gitlab!116946)) +- [Cache inexistence of the GitHub username](gitlab-org/gitlab@0a2d0b8985f1b4135909c5a9b85d2eefdf2d025a) ([merge request](gitlab-org/gitlab!117179)) +- [Change viewing to editing for editor switcher](gitlab-org/gitlab@ad7dc9108f8c7c004cd0d522857005703d309a08) ([merge request](gitlab-org/gitlab!117205)) +- [Upgrade bundler to v2.4.11](gitlab-org/gitlab@63e78f4019445c449f4c2f02276f015c7c6c5da0) ([merge request](gitlab-org/gitlab!117183)) +- [Add reviewed but not approved state in MR sidebar](gitlab-org/gitlab@f08873eaab772996627dcf381398e5b06e8ad3db) ([merge request](gitlab-org/gitlab!116861)) +- [Migration to backfill hashed_root_namespace_id to commit index](gitlab-org/gitlab@cb62dfa4368822b0ca29f333fbeac05c74585552) ([merge request](gitlab-org/gitlab!115411)) **GitLab Enterprise Edition** +- [Update excon to v0.99.0](gitlab-org/gitlab@1f89069e3432770fa8296f78b5ebfde37575aa86) ([merge request](gitlab-org/gitlab!117117)) +- [Update ruby_parser to v3.20](gitlab-org/gitlab@1463273b1ff21f1ef2467232d25cf040708e4df5) ([merge request](gitlab-org/gitlab!117067)) +- [Remove the move_year_dropdown_usage_charts feature flag](gitlab-org/gitlab@7da078a6bedcc1cf0477e81719428bb3d077ed94) ([merge request](gitlab-org/gitlab!116865)) +- [Removing google_play_integration feature flag](gitlab-org/gitlab@c9c52e99cb8881ab706b44137af9b02c767282fe) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/116834)) +- [Use YAML.safe_load_file for import/export config](gitlab-org/gitlab@d3f7dab03894e18008f59d43ad4e62df54400e8a) ([merge request](gitlab-org/gitlab!117027)) +- [Use YAML.safe_load_file for mail_room config loading](gitlab-org/gitlab@30f238a6e1beeaaabc70a010b71cdaed915319eb) ([merge request](gitlab-org/gitlab!117004)) +- [Rename CodeOwners::File#entries_for_path method](gitlab-org/gitlab@8d333b48c2deef2165fb74929058822ee0c26f8b) ([merge request](gitlab-org/gitlab!116996)) **GitLab Enterprise Edition** +- [Add unlimited members during trial alert on all Project/Group pages](gitlab-org/gitlab@5ad15c4064731a36b08a37fe46fbe03491784f57) ([merge request](gitlab-org/gitlab!116325)) **GitLab Enterprise Edition** +- [Update gitlab-pages version](gitlab-org/gitlab@3b17b080e1edf2ef64bb80fe9185b4b7a0bf81c5) ([merge request](gitlab-org/gitlab!116994)) +- [Update output of backup timestamps](gitlab-org/gitlab@aeaab24e18302a1c2ba059fdf8b79699f823056d) by @quatauta ([merge request](gitlab-org/gitlab!116864)) +- [Remove option to create new issue to resolve all threads in widget](gitlab-org/gitlab@a198905d195cff8fd380e1b27f170f8d68fb0dde) ([merge request](gitlab-org/gitlab!116322)) +- [Ensure terraform artifacts are not public](gitlab-org/gitlab@fcfbd8f107c27dc2bc0490de5afbda5c97f683c1) ([merge request](gitlab-org/gitlab!116495)) +- [added: Creating marketing cookie to log active user sessions](gitlab-org/gitlab@a278b9883f9b64ab31fc2ce093fb208d349d5495) ([merge request](gitlab-org/gitlab!113761)) +- [Adds a unique index for storage limit exclusions](gitlab-org/gitlab@543c1c9d52b7ac357d628616a92276c219ab0f8c) ([merge request](gitlab-org/gitlab!116802)) +- [Remove help icon on code review summary comment](gitlab-org/gitlab@b6cac3b31dcb3a6a0f6de804988c0faf34ac3c97) ([merge request](gitlab-org/gitlab!116723)) +- [Refactor default framework assignments](gitlab-org/gitlab@6b4e748142be8d38fb847d61f41dc8db373db15f) ([merge request](gitlab-org/gitlab!116964)) **GitLab Enterprise Edition** +- [New/edit MR: Migrate merge options checkbox](gitlab-org/gitlab@95cd1b1523ed9d641a69ba6fe8ddb1fe26f72bea) ([merge request](gitlab-org/gitlab!116776)) +- [Moves container registry to the far right on Usage Quotas](gitlab-org/gitlab@90a520e05bc5de330b36985da3344498d8b4b5b1) ([merge request](gitlab-org/gitlab!116099)) **GitLab Enterprise Edition** +- [New merge request: change empty state](gitlab-org/gitlab@0840180b92bebe400c03233a6ed3ac20484a66e4) ([merge request](gitlab-org/gitlab!116127)) +- [Approvals table: Update styling](gitlab-org/gitlab@beb857e66d1248089c98d7edc08214c5feab59a0) ([merge request](gitlab-org/gitlab!116938)) +- [Help icon refactor](gitlab-org/gitlab@9ef5a0fe2d4d12d01878100d142845af5cba3ec6) ([merge request](gitlab-org/gitlab!116933)) +- [Filtered search bar: Fix height & focus state](gitlab-org/gitlab@05e1d2d2526698e2ed75c03b8ca474c172702eab) ([merge request](gitlab-org/gitlab!116818)) +- [Issuable widgets: more improvements](gitlab-org/gitlab@86ae672c6e7fcdca64b907f2cbad80db539629ae) ([merge request](gitlab-org/gitlab!116404)) +- [Avoid double submission on app secret renewal](gitlab-org/gitlab@8af9426df1d49f837a4612b16f57d1a019dabd3f) ([merge request](gitlab-org/gitlab!115359)) +- [Allow NULL file_md5 to Debian component files](gitlab-org/gitlab@64af14a68c908f004a70541c322edfa52c746f46) by @sathieu ([merge request](gitlab-org/gitlab!116892)) +- [Update UI text on create issue to resolve all threads option](gitlab-org/gitlab@960643b22b2dff36e8c6d6c427c4e1f2ec3774d4) ([merge request](gitlab-org/gitlab!116460)) +- [Allow updates to mail_room in Gemfile again](gitlab-org/gitlab@3712e169b506feb21b2da6f195f4f217ee9f7cfe) ([merge request](gitlab-org/gitlab!116858)) +- [This MR adds base layout for security result policy](gitlab-org/gitlab@e1e48798ae828c90981a737e155dfe8ed73ff6bb) ([merge request](gitlab-org/gitlab!115732)) **GitLab Enterprise Edition** +- [Reschedule async temp index on finding report types](gitlab-org/gitlab@b3bebc3fa94e2e022a8c550bf23d5fc938831b0a) ([merge request](gitlab-org/gitlab!116522)) +- [Move admin jobs files](gitlab-org/gitlab@e7c75fdaccec639c2a89c1a3fc9c9329d4be537e) by @TrueKalix ([merge request](gitlab-org/gitlab!116798)) +- [Add root level breadcrumb to "Your work" EE pages](gitlab-org/gitlab@387756be8f3e01bd81f359e8e21c62b08152f1de) ([merge request](gitlab-org/gitlab!116763)) **GitLab Enterprise Edition** +- [Omit OpenGraph/Twitter tags in redirected sign-in page](gitlab-org/gitlab@3adb8fd0809827ac9385774a327ffb29bf33ac9e) by @aubiyko ([merge request](gitlab-org/gitlab!116479)) +- [Cleanup of old help icons](gitlab-org/gitlab@c81e05565a4047125a747af3a8e0553cf420db6f) ([merge request](gitlab-org/gitlab!116681)) +- [Add toasts for variable actions](gitlab-org/gitlab@5041332a6496c20a8293fb6866e176db0639587c) ([merge request](gitlab-org/gitlab!116047)) +- [Add note that confirmation requires primary email](gitlab-org/gitlab@90b3ed9d2c5d532010ff5831e0c60929279e06ec) ([merge request](gitlab-org/gitlab!116011)) +- [Updating UI text](gitlab-org/gitlab@72c8cc141541d061e3dc3754c1f27bf5d54415d6) by @sselhorn1 ([merge request](gitlab-org/gitlab!116472)) +- [Add root level breadcrumb to "Your work" pages](gitlab-org/gitlab@37b285a0fcc51fa18f73e78e6c469cd864b98d57) ([merge request](gitlab-org/gitlab!116018)) +- [Change the order of vulnerability creation](gitlab-org/gitlab@1524af8ba5f7ba7bac3a8acc6e41459fbfc93a6b) ([merge request](gitlab-org/gitlab!116617)) **GitLab Enterprise Edition** +- [Update BBM best practices section](gitlab-org/gitlab@22141886a653287bd17c18b47c61f1c2087a18fe) ([merge request](gitlab-org/gitlab!116163)) +- [Add laravel project template](gitlab-org/gitlab@22f74c76b55989a7ae3a63b2f14620186dc16238) ([merge request](gitlab-org/gitlab!108529)) +- [Use YAML.safe_load_file for Bullet exclusions](gitlab-org/gitlab@8834ce05f1e06c532d8d4b35750c2a73a9d7c0d0) ([merge request](gitlab-org/gitlab!116506)) +- [Swap id columns on sent_notifications](gitlab-org/gitlab@1fdb4e76b9a4bcf4988ee804ea6a9ab1f971510c) ([merge request](gitlab-org/gitlab!116048)) +- [Shows container registry image created time](gitlab-org/gitlab@338a96392da002d2dcc4878feb66f5d1abb3191e) ([merge request](gitlab-org/gitlab!116550)) +- [Capitalize participants in sidebar](gitlab-org/gitlab@8baea596e0f3e969de0a5c2102db0f28fc159ce0) ([merge request](gitlab-org/gitlab!116597)) +- [Debian package uniqueness](gitlab-org/gitlab@004a75634540f36ee21e7bfcae69d07b37701789) by @sathieu ([merge request](gitlab-org/gitlab!111027)) +- [Add alert when project missing pipeline file ](gitlab-org/gitlab@1c4946cc42f201c5bc954d9a0ad17a4ef2467d3e) ([merge request](gitlab-org/gitlab!116197)) **GitLab Enterprise Edition** +- [Remove the `security_reports_mr_widget_prompt` experiment](gitlab-org/gitlab@1631b9fcbf0a1b9c3311586b4d02274b0d87da56) ([merge request](gitlab-org/gitlab!116567)) **GitLab Enterprise Edition** +- [Remove feature flag](gitlab-org/gitlab@f79af362461b90a13e6c588e26faf836e6fe70c7) ([merge request](gitlab-org/gitlab!114757)) +- [Reschedule migration for links](gitlab-org/gitlab@1fa593004fb59c1aa08bc335a39db6677f64d74c) ([merge request](gitlab-org/gitlab!114601)) +- [Update copy of "Partial import" label](gitlab-org/gitlab@5f5d7e11e4b9f28313349b5c08b7261c34455043) ([merge request](gitlab-org/gitlab!115946)) +- [Splits up articats fields for Usage Quotas](gitlab-org/gitlab@241a4f02db146017dbccf66aadf679c9ce01c587) ([merge request](gitlab-org/gitlab!115580)) **GitLab Enterprise Edition** +- [Defer loading of other versions tab on package details page](gitlab-org/gitlab@070239e0b6832bb4c8547e88cd16e78417e2d9a7) ([merge request](gitlab-org/gitlab!114298)) +- [Send queries to fetch schema cache to replicas](gitlab-org/gitlab@9467de47d6a3c742edb9d3dba94203ff3ecd86dc) ([merge request](gitlab-org/gitlab!116211)) +- [Update gitlab-mail_room to v0.0.23](gitlab-org/gitlab@dc99dbda5fab8a1288045760ae69457312cf742c) ([merge request](gitlab-org/gitlab!116494)) +- [Cleaned up experiment cross_stage_fdm](gitlab-org/gitlab@3bd2351b831b36d053dbad28be835768f55fc457) ([merge request](gitlab-org/gitlab!115239)) **GitLab Enterprise Edition** +- [Rename "Deployments > Feature Flags" to "Deployments > Feature flags"](gitlab-org/gitlab@55c9c6d95e06a0bac5025a489a3695c894dc295b) ([merge request](gitlab-org/gitlab!116277)) +- [Cells: Move `appearances` into `clusterwide`](gitlab-org/gitlab@88d3b70852fef5427b234f43ece60043bb04fd97) ([merge request](gitlab-org/gitlab!115337)) +- [Adjust spacing of merge request widgets](gitlab-org/gitlab@4a6a2b9367c89fe5033176d4df1b1c5f50eeff30) ([merge request](gitlab-org/gitlab!116323)) +- [Add hashed_root_namespace_id to commits index mapping](gitlab-org/gitlab@29b257524554daa44161332e95515d1e4213782e) ([merge request](gitlab-org/gitlab!116413)) **GitLab Enterprise Edition** +- [Refactor api admin mode shared example](gitlab-org/gitlab@48c32959cad9a37300df5cd5634620c30285a8f8) by @TrueKalix ([merge request](gitlab-org/gitlab!116124)) +- [Fixed unnecessary relayout if width is not changed](gitlab-org/gitlab@400eb0dc9c566516cb2a6376822791e75dd7ad7f) ([merge request](gitlab-org/gitlab!115553)) +- [Remove limit-container-width from more pages](gitlab-org/gitlab@2fc376e690799db947f65be7b315250ef975fa48) ([merge request](gitlab-org/gitlab!116234)) +- [Update MR security widget to read from new properties](gitlab-org/gitlab@dad6781faab6bad3755e873770a8b4e7df9c172d) ([merge request](gitlab-org/gitlab!116077)) **GitLab Enterprise Edition** +- [Approvals widget: improve styling](gitlab-org/gitlab@ef506bf7a9501fb33227cbccf194458816d5f1b3) ([merge request](gitlab-org/gitlab!116387)) **GitLab Enterprise Edition** +- [Update styling of pending comment](gitlab-org/gitlab@ae1d303abdf3a95b8375b7cd8bf7da8ef4ba2820) ([merge request](gitlab-org/gitlab!113785)) **GitLab Enterprise Edition** +- [Update Issue's Due Date field real-time](gitlab-org/gitlab@339ff48c8316334b50d80fb7c9379526e85129c7) ([merge request](gitlab-org/gitlab!115848)) +- [Linked resources widget: change help icon](gitlab-org/gitlab@b1eb4a0548d41d061b0fff7b164231d455020b6b) ([merge request](gitlab-org/gitlab!116369)) +- [Diff: toggle file contents with keyboard](gitlab-org/gitlab@4a54fafc204440fe122eef7b2023ef8114dcf407) ([merge request](gitlab-org/gitlab!115959)) +- [Changes the comments help icon](gitlab-org/gitlab@b3fe6293c4bb6add75959173e83199c1248abd03) ([merge request](gitlab-org/gitlab!116260)) +- [Approvals widget: change vertical alignment of approvals icon](gitlab-org/gitlab@349328f1fffa1528e79e526eea56900f373f8233) ([merge request](gitlab-org/gitlab!116261)) +- [Change container registry copy expiration policy to cleanup policies](gitlab-org/gitlab@df8e73970b196f52e90a9ba2a1ec0c4e411ee38d) ([merge request](gitlab-org/gitlab!116105)) +- [Lock writes during gitlab:setup task](gitlab-org/gitlab@7e7dbafd406dc6eaaff5e5b9b9cf6956461b292a) ([merge request](gitlab-org/gitlab!116347)) +- [Add database migration](gitlab-org/gitlab@dc0cb091aff39a3c4de24273a357e6779206bf12) ([merge request](gitlab-org/gitlab!115403)) +- [Prepare to drop unused jira indexes on projects](gitlab-org/gitlab@681637fe18ee1bccb0ec8ef0d60e4a60f8d09bd6) ([merge request](gitlab-org/gitlab!116338)) +- [Right-align note actions dropdown](gitlab-org/gitlab@c0cfa6ed362e0dab9a2edaeccf118cd9fb8714e9) ([merge request](gitlab-org/gitlab!116324)) +- [Add a throttle to sync service db usage](gitlab-org/gitlab@6ecdf3a7694663f8299afff52cea513028f0cdef) **GitLab Enterprise Edition** +- [Increase vertical spacing on MR header](gitlab-org/gitlab@b1ed2d7acc2a83552762b2e71611b6190764aa6d) +- [Fix add/edit/delete dismissal comment for pipeline security tab](gitlab-org/gitlab@ac4f452d6286af51a62c95150997c07078c6f065) +- [Migrate the existing RedisHLL keys to default slot](gitlab-org/gitlab@42d79f27e1b8cf5ab6cc14c9219da56cedd38070) ([merge request](gitlab-org/gitlab!115927)) +- [Add empty state for customizable dashboard panels](gitlab-org/gitlab@956003d5c042f54fdc82d28a7b1fa0a58a80d2a3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115266)) **GitLab Enterprise Edition** +- [Add Drawer from CodeQuality Inline-diff findings](gitlab-org/gitlab@190fe3d75922d3647314f7e96639e3cd866d2269) ([merge request](gitlab-org/gitlab!114649)) **GitLab Enterprise Edition** +- [Merge blocked: change spacing of merge details](gitlab-org/gitlab@a7bb7fcff048143e48ac5c3599f42b2889818fbe) ([merge request](gitlab-org/gitlab!116274)) +- [Reschedule the migration of evidences](gitlab-org/gitlab@38583724aba63ece4f2b153eea9a020b7512d0d9) ([merge request](gitlab-org/gitlab!116266)) +- [Enable branch rules feature flag by default](gitlab-org/gitlab@f0ef9b06d5903c4ed65dc49e204ea793007baf80) ([merge request](gitlab-org/gitlab!116267)) +- [Admin area: change help icons on dashboard](gitlab-org/gitlab@6c7b2535ff1e02ffb5b6c9487b0634c3927d9076) ([merge request](gitlab-org/gitlab!116262)) +- [Add a throttle to sync service db usage](gitlab-org/gitlab@0e92f6eb7f08cc98a5f936901f7ecba8e0e9c97c) ([merge request](gitlab-org/gitlab!115581)) **GitLab Enterprise Edition** +- [Merge request: unify help icons](gitlab-org/gitlab@39bfc0109b4b184dab2bc05b89233e4e7a6abf12) ([merge request](gitlab-org/gitlab!116251)) +- [Load commit diffs async by default](gitlab-org/gitlab@498a9ae46b3f68354501f8aa0af185cd61ca12c2) ([merge request](gitlab-org/gitlab!116253)) +- [Fix add/edit/delete dismissal comment for pipeline security tab](gitlab-org/gitlab@f63ae93d02389f907e5c33648729afce63d4563b) ([merge request](gitlab-org/gitlab!115795)) +- [Epic tree: item spacing improvement](gitlab-org/gitlab@009de85f7ea3536c0bef7c79c8c5599f25214c48) ([merge request](gitlab-org/gitlab!116242)) +- [Add a expiry date option for deploy tokens](gitlab-org/gitlab@5579a5e9c1768abd8247a235df36f0c00fd25c73) by @ChevronTango ([merge request](gitlab-org/gitlab!114372)) +- [Use state_transitions on pipeline security list](gitlab-org/gitlab@b3d3a43e6608002a9ffe0d2d78c650be0f1e49d0) ([merge request](gitlab-org/gitlab!115611)) **GitLab Enterprise Edition** +- [Python.gitlab-ci.yml: Suggest using the current version of Python](gitlab-org/gitlab@ec276382c44dc4ddc971b3cf2324ed79f4778912) by @cclauss ([merge request](gitlab-org/gitlab!116025)) +- [Increase vertical spacing on MR header](gitlab-org/gitlab@0c26aec89bdde8e710c406cb52e5d7558fd2195d) ([merge request](gitlab-org/gitlab!116145)) +- [Add GraphQL mutation to create a merge request](gitlab-org/gitlab@1969544b7d73e8bef0aa77b58f752de891ecc6a1) ([merge request](gitlab-org/gitlab!114626)) **GitLab Enterprise Edition** +- [Improve layout and text of "too many changes" alert](gitlab-org/gitlab@c81829ea86d5443ffd69e6c616117a2e27e7e978) ([merge request](gitlab-org/gitlab!115907)) +- [Google cloud pages: Remove container limited class](gitlab-org/gitlab@bf873b090344ccced05c2e695677ea0ae964c2f1) ([merge request](gitlab-org/gitlab!116118)) +- [Issues list: change status to use badge component](gitlab-org/gitlab@8330dff0ea78c161d96a65d56e28bcf2fbfe336a) ([merge request](gitlab-org/gitlab!115650)) +- [MR widgets: Unify loading icon size](gitlab-org/gitlab@2d813a94e6c0d7f8df832c0b3815217fbecda3f0) ([merge request](gitlab-org/gitlab!116096)) +- [Add new application form: form cleanup](gitlab-org/gitlab@9d2c3105513f3eaf55d0a56e25e00dc1b23dee0d) ([merge request](gitlab-org/gitlab!116107)) +- [Diff: add file permission tooltip](gitlab-org/gitlab@6672d7bee19f41a52ebcbacc37b06eae625fa071) ([merge request](gitlab-org/gitlab!115976)) +- [Ensure visualizations have default values](gitlab-org/gitlab@732155a6d1b653379db5667ce52d9bf7cc42804b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115458)) **GitLab Enterprise Edition** +- [Migrate checkbox to GlFormCheckbox](gitlab-org/gitlab@4bba3e6f856d7b5c5212644f9446236a30787fbf) ([merge request](gitlab-org/gitlab!115952)) +- [MR list: change alignment of labels](gitlab-org/gitlab@f0569a9d917db96ae67954e7995c3a3e6fa7070f) ([merge request](gitlab-org/gitlab!115956)) +- [Merge request: Rename Email patches to Patches](gitlab-org/gitlab@aa154f0bb9227e368ced7e51950ae4a968f1e5c6) ([merge request](gitlab-org/gitlab!115989)) +- [Disallow NONE and ANY filter values for OR operator](gitlab-org/gitlab@cca3cf0b99b869200e067375acbf134303d0a085) ([merge request](gitlab-org/gitlab!116062)) +- [Add data transfer graphql queries under feature flag](gitlab-org/gitlab@a387c7e239d1849d4ec720d3595e4b728ff8e50b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113392)) **GitLab Enterprise Edition** +- [Hide upgrade billing for ramped subscriptions](gitlab-org/gitlab@940430a9fe0a169b8015a542efba8dd670c7ecc2) ([merge request](gitlab-org/gitlab!115899)) **GitLab Enterprise Edition** +- [Update parsing of *_DISABLED variables](gitlab-org/gitlab@c8068c30f0df14cc180027161f05c7a752e7f925) ([merge request](gitlab-org/gitlab!116033)) +- [Fix small UI inconsistencies in MR view](gitlab-org/gitlab@718c306b7d3a2781ad4a43d6b6c5007e671bfdd0) ([merge request](gitlab-org/gitlab!115435)) +- [Update the breadcrumbs and pagetitles](gitlab-org/gitlab@2d75e1c0d5a56df73c28b1b5f55e6b6315b88edc) by @Mughees_ ([merge request](gitlab-org/gitlab!115432)) +- [Update vulnerability state change notes to include dismissal reasons](gitlab-org/gitlab@a063da7bd164a7c35dbcd1e460d5235fb424ff73) ([merge request](gitlab-org/gitlab!113614)) **GitLab Enterprise Edition** +- [Update validation in order to allow](gitlab-org/gitlab@049575af8cf79552ad8e5d1764c89deed9cdbefc) ([merge request](gitlab-org/gitlab!114741)) +- [Remove real_time_issue_epic_links feature flag](gitlab-org/gitlab@6ad3859d470af00780e335face29ec234a005915) ([merge request](gitlab-org/gitlab!115662)) +- [Search::Index creates an Elasticsearch index on create](gitlab-org/gitlab@117c1d46ed78c4257d88bc004f17c673999bf2d6) ([merge request](gitlab-org/gitlab!115752)) +- [Consolidated product analytics feature flags](gitlab-org/gitlab@3f6797c97da3be77fee8cd4c03e2106aba5bdc24) ([merge request](gitlab-org/gitlab!115177)) +- [Adjust tests to api admin mode](gitlab-org/gitlab@52e639b39096a9c226e1a29b69c2b61a9ba0b8f8) by @TrueKalix ([merge request](gitlab-org/gitlab!113736)) +- [Show "-" when the size of the MR diffs is 0](gitlab-org/gitlab@b2729d14a15258f1e04721e83a0ff40c57d8a02d) ([merge request](gitlab-org/gitlab!114832)) +- [Project: Remove container limited class](gitlab-org/gitlab@1af2bafed0bf05235aed3a57833b096d7f9f849e) ([merge request](gitlab-org/gitlab!115700)) **GitLab Enterprise Edition** +- [Enhance safe-html usage on SAST configuration](gitlab-org/gitlab@2281648a977eb37c63bfe3e543178df50b64f7cf) ([merge request](gitlab-org/gitlab!115483)) **GitLab Enterprise Edition** +- [Replace bootstrap dropdown for issuable type](gitlab-org/gitlab@716fccd71994f6366ea64277ca4d7348a0e5c17f) ([merge request](gitlab-org/gitlab!115364)) +- [Remove extra settings content in CI/CD settings](gitlab-org/gitlab@538076d63d541e242f57268d8f816e3dc4c1f6ba) ([merge request](gitlab-org/gitlab!116024)) +- [Extended the syntax highlighting for CODEOWNERS](gitlab-org/gitlab@8b1960de14a3162a8a6e06a348e72a82dd785e4f) ([merge request](gitlab-org/gitlab!115606)) +- [Update user_type value for humans](gitlab-org/gitlab@1de25fa961dcecd5144fb1ff0587a8b6f303c996) ([merge request](gitlab-org/gitlab!113552)) +- [Change SVN migration link](gitlab-org/gitlab@d2a967bed7acc2038c5fb9421d0ba58d4b3e833b) ([merge request](gitlab-org/gitlab!115817)) +- [Update dependency auto-build-image to v1.31.0](gitlab-org/gitlab@54ac0f2cacb67aa4f2f0f16082fda9560544b414) ([merge request](gitlab-org/gitlab!115811)) +- [Left align new branch form](gitlab-org/gitlab@14e87de6c9715d04273a67f87fe5b6bcad6d0bd0) ([merge request](gitlab-org/gitlab!114505)) +- [Renames ml_candidates.iid to eid](gitlab-org/gitlab@39778ea7b04182798e30b27ac08a6b0186565746) ([merge request](gitlab-org/gitlab!115356)) +- [Remove connecting lines between MR widgets](gitlab-org/gitlab@22cb52983108959d556a6e92e7a4a016a003e55e) ([merge request](gitlab-org/gitlab!115745)) +- [Format personal access token name in email](gitlab-org/gitlab@5665f40b888fa9e52e0c08253e51e74a2f39f3d2) ([merge request](gitlab-org/gitlab!114994)) +- [Use state_transitions on pipeline security list](gitlab-org/gitlab@e1eb446b894ab73da5c65411f557dcd77ea37c20) ([merge request](gitlab-org/gitlab!115130)) **GitLab Enterprise Edition** +- [Application: Remove container limited class](gitlab-org/gitlab@f8f589336c4e0a089e073a943da9b4d538914aef) ([merge request](gitlab-org/gitlab!115717)) +- [Cluster: Remove container limited class](gitlab-org/gitlab@079cf6b9ee4a1a6b1433f691836ed39f0d105e54) ([merge request](gitlab-org/gitlab!115716)) +- [Post-process leaked credentials on all branches](gitlab-org/gitlab@1e53b9a56bc8286207fdbc05038a267ddfeef939) ([merge request](gitlab-org/gitlab!114711)) **GitLab Enterprise Edition** +- [Improve error message for Security Features with alias usage in ci file](gitlab-org/gitlab@adc6a4969ff9a1b734d0406fa4d3c0bfe14bc526) ([merge request](gitlab-org/gitlab!115675)) +- [Create search index assignments for notes](gitlab-org/gitlab@aab7e99aaf98c63026fb8e3a3fb48e417e5bdf88) ([merge request](gitlab-org/gitlab!113612)) +- [User settings: remove container limited class](gitlab-org/gitlab@46289832f7164f0889b2fdd1512cb3f161a814bb) ([merge request](gitlab-org/gitlab!115661)) +- [Restore breadcrumb border for all pages](gitlab-org/gitlab@9fccf2d4e7636ac9a138b091117beb2c11f8cba7) ([merge request](gitlab-org/gitlab!115466)) +- [Profile page: change border bottom color of personal projects](gitlab-org/gitlab@53f4866a42f0ebb0377d5f1d00c2ff6e7f96f0fa) ([merge request](gitlab-org/gitlab!115655)) +- [Merge request, Issue list: remove darker border from closed items](gitlab-org/gitlab@912c105b1f5de00d70fd6a4976a391def384a584) ([merge request](gitlab-org/gitlab!115646)) +- [Issuable detail page: restore limited-container-width class](gitlab-org/gitlab@a5dda04f3c05e06781d9c54643624b22eb3878b5) ([merge request](gitlab-org/gitlab!115639)) +- [Environment variable UNSTRUCTURED_RAILS_LOG removed from codebase](gitlab-org/gitlab@6c92bdde06a612023d0b3c65adc8eafaa6385ffc) ([merge request](gitlab-org/gitlab!112910)) +- [Update dependency auto-deploy-image to v2.48.0](gitlab-org/gitlab@4aa7beb330b6d8d11f975e8342b00ce3687edb57) ([merge request](gitlab-org/gitlab!115618)) +- [Broadcast Messages: form cleanup](gitlab-org/gitlab@5a19cc54df61f15968ec49cf2a96071410e50e52) ([merge request](gitlab-org/gitlab!115027)) +- [Removes all uploads from usage_quotas storage pages](gitlab-org/gitlab@3737d7c0c40b833fc132aad3af80fd2a78a112cb) ([merge request](gitlab-org/gitlab!115564)) **GitLab Enterprise Edition** +- [Update parsing of *_DISABLED variables](gitlab-org/gitlab@8b5baffa1efee9475a1e436cce8991944784758a) ([merge request](gitlab-org/gitlab!115576)) +- [Update saved reply form layout](gitlab-org/gitlab@4b4d7af5660783c87da3b34d19793e0b659bbc8c) ([merge request](gitlab-org/gitlab!114923)) +- [Move description templates help text below description title](gitlab-org/gitlab@9b15ff4d55fd60ab15520d5fceb4fac0092d8b71) ([merge request](gitlab-org/gitlab!115248)) +- [Adjust tests to api admin mode](gitlab-org/gitlab@0fb805c56ab7a5967a9b8a91bb18f6d5a089d911) by @TrueKalix ([merge request](gitlab-org/gitlab!114776)) +- [Remove .integration-settings-form CSS](gitlab-org/gitlab@de4bdf9fd1a36b954b08831990c881902420f7c0) ([merge request](gitlab-org/gitlab!115384)) +- [Adds hashed_root_namespace_id to issue index](gitlab-org/gitlab@47d2de2d1b79358bb7f206fc6eac1066b3d29be2) ([merge request](gitlab-org/gitlab!115023)) **GitLab Enterprise Edition** +- [Pipeline editor improvements](gitlab-org/gitlab@f997a66228fa91bfdcc6761e82bf739a9996b295) ([merge request](gitlab-org/gitlab!115008)) +- [Use YAML.safe_load_file for backup/restore](gitlab-org/gitlab@e6569d1b5a587946a219bcb4e9a5bdc82fe66e2a) ([merge request](gitlab-org/gitlab!115445)) +- [Add keyset pagination to Instance level audit events api](gitlab-org/gitlab@4ffc2b97716a19877a9ee44127b19fb6cfb1c3cd) ([merge request](gitlab-org/gitlab!114535)) **GitLab Enterprise Edition** +- [Adjust tests to api admin mode](gitlab-org/gitlab@4ec3c6068d19ea7e478903190d70841cacf32245) by @TrueKalix ([merge request](gitlab-org/gitlab!114567)) +- [Adding Package Name to Google Play Integration](gitlab-org/gitlab@05366e6aeb37e76c72bdb772e2e3c4a2c031bdcd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114929)) +- [Update UI action button when loading empty VSA](gitlab-org/gitlab@851e02c98fc00ab289a291ae23316605cb17d7b4) ([merge request](gitlab-org/gitlab!115152)) **GitLab Enterprise Edition** +- [Remove elasticsearch_use_traversal_id_optimization flag](gitlab-org/gitlab@7c953a9d6d9d18e9d4737608b02b9f3ffee55c59) ([merge request](gitlab-org/gitlab!113396)) **GitLab Enterprise Edition** +- [Remove tertiary category from collapse button](gitlab-org/gitlab@afb92c000519be6270a3ed8bd76f553f87bb1285) ([merge request](gitlab-org/gitlab!115414)) +- [Update ipaddr to v1.2.5](gitlab-org/gitlab@1ebccbedd96599805ad9566978d2c87feec8ae44) ([merge request](gitlab-org/gitlab!115405)) +- [Add index for free_user_cap_over_limit_notified_at](gitlab-org/gitlab@72e325ec7ae09d7944d59e0c66da21c3bd4e2448) ([merge request](gitlab-org/gitlab!115221)) +- [Add prefix and custom match options for custom Jira issue matching](gitlab-org/gitlab@1c47c3a799f60551d4c60596ccfd113c55317c8b) by @jackorp ([merge request](gitlab-org/gitlab!112826)) +- [Add workers to clear notified at flags](gitlab-org/gitlab@64f051b5fe0bc7db17f0ee5aa11413c696c77b0a) ([merge request](gitlab-org/gitlab!111312)) **GitLab Enterprise Edition** +- [Work items: Improve styling of child items](gitlab-org/gitlab@d146c11fb8b37b43495e152c3de1822e589761e8) ([merge request](gitlab-org/gitlab!115050)) +- [Show a loading spinner while searching](gitlab-org/gitlab@c8577ae20fe108c1231164b4aaf4e98068703ade) ([merge request](gitlab-org/gitlab!114643)) +- [Not use the word retry to refer to webhook executions](gitlab-org/gitlab@b936894f62f82a8e4e29205643084600865f34bb) by @alexkalderimis ([merge request](gitlab-org/gitlab!109280)) +- [Includes namespace when searching for projects in autocomplete bar](gitlab-org/gitlab@72d9ca3acf9f9515b7e4de3f3368edaaaf477069) ([merge request](gitlab-org/gitlab!114993)) +- [Limit invitations to trial groups and projects](gitlab-org/gitlab@e8f06e2dc742941a961a7986786d6d9ed277a72c) ([merge request](gitlab-org/gitlab!114887)) +- [Project overview: remove container-limited class](gitlab-org/gitlab@74ee4ffd58bfa1c5848076a1117548ea281fc1be) ([merge request](gitlab-org/gitlab!114864)) +- [Repository: Remove container limited class](gitlab-org/gitlab@129aac9186c6007ade55a92f39e6e8fe0f8cfee1) ([merge request](gitlab-org/gitlab!114861)) +- [Geo settings page cleanup](gitlab-org/gitlab@32b63d80cb26ce7911239cfcb5bd7a561f1dfc4e) ([merge request](gitlab-org/gitlab!115012)) **GitLab Enterprise Edition** +- [Merge request list: Change status to use badge component styles](gitlab-org/gitlab@86707400604d0574e51c627a5dc706dc05af4499) ([merge request](gitlab-org/gitlab!114745)) +- [Issuable list: change meta font-size](gitlab-org/gitlab@d319fe61dbea571332c0682f56538e20ca654af4) ([merge request](gitlab-org/gitlab!114103)) +- [Improves the styling of Child issues and epcics](gitlab-org/gitlab@813963e4d06b5187b73a148c34f5b47e43b1f39a) ([merge request](gitlab-org/gitlab!114597)) **GitLab Enterprise Edition** +- [This MR extracts Runner Tags Dropdown](gitlab-org/gitlab@e0cd534b1f8ab1a146567db14bde5e454ea7335f) ([merge request](gitlab-org/gitlab!114480)) **GitLab Enterprise Edition** +- [Clean up route_hll_to_snowplow_phase4 feature flag](gitlab-org/gitlab@444d44b0f23439473a9a47303771476875c9821b) ([merge request](gitlab-org/gitlab!114358)) +- [Move issue checklist item counts to below description](gitlab-org/gitlab@679664f828fee232d91c3e706612f6d6b55c6c1d) ([merge request](gitlab-org/gitlab!114141)) +- [Update gitlab-experiment gem to v0.8.0](gitlab-org/gitlab@f04cbb158e79450d9a16f6e4f636908640645b11) ([merge request](gitlab-org/gitlab!113990)) +- [Refactor scan_pipeline_service_spec job list fetching](gitlab-org/gitlab@63581b2e8070efd9b30a17ce0847404167b98098) ([merge request](gitlab-org/gitlab!114651)) +- [Cells: Move `broadcast_messages` into `clusterwide`](gitlab-org/gitlab@c8d19426d598498da5c8907d850f3bc99df89a7b) ([merge request](gitlab-org/gitlab!115192)) +- [Remove the new_header_search FF](gitlab-org/gitlab@25f5089dd9d8be3ddd6dfec89c6656c65debdbbc) ([merge request](gitlab-org/gitlab!113859)) +- [Use state_transitions on pipeline security list](gitlab-org/gitlab@8b4fa4839fadaf8a60b48932810000b8f088dd6c) ([merge request](gitlab-org/gitlab!114977)) **GitLab Enterprise Edition** +- [Use page_level_alert content_for on free user cap alerts](gitlab-org/gitlab@c97e275932bd6b7f447096765ee73cbea06885de) ([merge request](gitlab-org/gitlab!114442)) **GitLab Enterprise Edition** +- [Default enable linear_group_descendants_finder_upto](gitlab-org/gitlab@91a1a50fb90bcb681135a5d12df06dec41476e91) ([merge request](gitlab-org/gitlab!114982)) +- [Update UI warning when loading VSA](gitlab-org/gitlab@cd54700c365c3fcfb4b28d8dfe62095291f673d8) ([merge request](gitlab-org/gitlab!115126)) +- [Move milestone actions into dropdown](gitlab-org/gitlab@04b4e9fc3b0c180f07d85950b0b2f1ef00adb7ba) ([merge request](gitlab-org/gitlab!114956)) +- [Fixes broken docs link for Apple App Store integration](gitlab-org/gitlab@6c4aa9a9f7cd4095e3245b6c3525927f3fe57905) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/115076)) +- [Projects list: style improvements](gitlab-org/gitlab@a604993635873d42c14fd60df746ae367abc05c3) ([merge request](gitlab-org/gitlab!115030)) +- [Removes the old UpdateMaxSeatsUsedForGitlabComSubscriptionsWorker](gitlab-org/gitlab@c022103e243ca52db206080a7d03a80a7a9a03dd) ([merge request](gitlab-org/gitlab!112180)) **GitLab Enterprise Edition** +- [Revamp of the searchbox events handling](gitlab-org/gitlab@c5736acabd92018db43e875aac34222b6f2d738a) ([merge request](gitlab-org/gitlab!93687)) +- [Clear button events](gitlab-org/gitlab@29c6b612ad28e546134e5ea03df284af0452c0d1) ([merge request](gitlab-org/gitlab!93687)) +- [Pipeline list: style improvements](gitlab-org/gitlab@3709883f6c3bc69d981c6e9f9a5c683d9ca48554) ([merge request](gitlab-org/gitlab!115006)) +- [Added ff and flow to skip Namespace Aggregation Lease](gitlab-org/gitlab@1b919581aed1bc90a69203e4bcbf985de8342aa2) ([merge request](gitlab-org/gitlab!113959)) +- [Remove `caller_id` from Redis metrics](gitlab-org/gitlab@248b3716249d93bd91daaf18cc379baa684685f4) ([merge request](gitlab-org/gitlab!114896)) +- [Right sidebar: change left-border width to match left sidebar](gitlab-org/gitlab@e26865157c27c91a83d14078992d95ef946d10d1) ([merge request](gitlab-org/gitlab!114998)) +- [Admin Area: remove container limited class](gitlab-org/gitlab@ef5dd34e7e2f4574260898d7c243216faf1253cb) ([merge request](gitlab-org/gitlab!114910)) +- [Group: Remove limited container class](gitlab-org/gitlab@342f0435afd04e82be27590fa2d59213b763d7cb) ([merge request](gitlab-org/gitlab!114899)) +- [Group settings: Remove limited container class](gitlab-org/gitlab@840b1971c7b906a59b233323d4831986fd9f7cd8) ([merge request](gitlab-org/gitlab!114901)) +- [Remove `group_owners_to_disable_two_factor` FF](gitlab-org/gitlab@79ac47369e3cfb4c8faf508ffe6cccd30aced9b4) ([merge request](gitlab-org/gitlab!109006)) +- [Add MigrateSharedVulnerabilityIdentifiers background migration](gitlab-org/gitlab@bea23dd124836f1eb459b8b61862bd1574fe61a7) ([merge request](gitlab-org/gitlab!112556)) **GitLab Enterprise Edition** +- [Project settings: remove limited width class](gitlab-org/gitlab@a72a712a4c746812e03585b3e37609ba42d80471) ([merge request](gitlab-org/gitlab!114888)) +- [Refactor: Card component to Pajamas comliant](gitlab-org/gitlab@07425a37cdbee12ca87c985425ed661d0edf76a1) by @imrishabh18 ([merge request](gitlab-org/gitlab!113968)) +- [Convert admin system info cards to pajamas](gitlab-org/gitlab@4781082fd9fcfd7c4135adb1c1b6d13b73677ed4) ([merge request](gitlab-org/gitlab!114327)) + +### Deprecated (1 change) + +- [Deprecate Project.ci_config_variables `sha` arg; add `ref` arg](gitlab-org/gitlab@9138d9982857ffc6cb461f6f088a24119c21642e) ([merge request](gitlab-org/gitlab!116032)) + +### Removed (27 changes) + +- [Add openSUSE 15.3 removal for GitLab 15.11](gitlab-org/gitlab@d4852abcdda73dc26f3b911785b4664ec418496a) ([merge request](gitlab-org/gitlab!116007)) +- [Remove unnecessary admin mode shared examples](gitlab-org/gitlab@ad589a4c610a77ab72a6e1c2a83fc061012f8f86) by @TrueKalix ([merge request](gitlab-org/gitlab!117625)) +- [Hide some tracing instrumentations behind environment variables](gitlab-org/gitlab@82f7b44b8b0167e0aabe0cfb3958b15151bdd8d7) ([merge request](gitlab-org/gitlab!116257)) +- [Cleanup migration of sent_notifications to bigint](gitlab-org/gitlab@2f6c7f7e3c8330eac8fb74b00b68244bb243592f) ([merge request](gitlab-org/gitlab!117292)) +- [Remove project_export_as_ndjson feature flag](gitlab-org/gitlab@0e7392645d2f121a5758e8dddcd1c366d7a001f0) ([merge request](gitlab-org/gitlab!110729)) **GitLab Enterprise Edition** +- [Remove require_verification_for_namespace_creation](gitlab-org/gitlab@6c40cc46ffc3dc5151ca985384b53ab02191f70f) ([merge request](gitlab-org/gitlab!117148)) +- [Remove disable_vulnerability_feedback_controller FF](gitlab-org/gitlab@171c8bcfa7aeecf86e89e0eef536edfc17175563) ([merge request](gitlab-org/gitlab!116912)) **GitLab Enterprise Edition** +- [Async remove 'merge_request_mentions_temp_index' index](gitlab-org/gitlab@eed832a613367673b9c8d32d826c294d58bd6c38) ([merge request](gitlab-org/gitlab!116729)) +- [Async remove 'merge_requests_state_id_temp_index' index](gitlab-org/gitlab@24b96dc8fda979460e72f0ca7faacb00b92d23cb) ([merge request](gitlab-org/gitlab!116726)) +- [Remove ProjectType.ci_config_variables arg](gitlab-org/gitlab@b003aa84c08f38c9bdda2889c32155dad39456b5) ([merge request](gitlab-org/gitlab!116842)) +- [Delete gitbook.tar.gz template](gitlab-org/gitlab@e00291c5bf3044ca9d4b03e3ef42dabe70742c2d) ([merge request](gitlab-org/gitlab!115022)) +- [Synchronously remove unused Jira indexes](gitlab-org/gitlab@3f760f6305e53411ad8b63f6f7e0942921dadb32) ([merge request](gitlab-org/gitlab!116735)) +- [Remove temporary index on vulnerability_occurrences](gitlab-org/gitlab@ebd332d20789f3eeaef711735d1bb054a7a2200c) ([merge request](gitlab-org/gitlab!116230)) +- [Remove release description in tag page](gitlab-org/gitlab@ba5b8bff38822d9d0c08a70dd4fc3a7a14f6a4c9) ([merge request](gitlab-org/gitlab!115627)) +- [Remove temporary index for licenses cleanup](gitlab-org/gitlab@2bc1794cb31d397c668c9dfe0704ab6494dbffae) +- [Removed PipelinesController#config_variables endpoint](gitlab-org/gitlab@76c253d3594c6785e298e8c31d41779c26855faf) ([merge request](gitlab-org/gitlab!116044)) +- [Drop runner_machine_id column from ci_builds_metadata](gitlab-org/gitlab@eaae8281a205181d03b33843a06e0950a73bcf3f) ([merge request](gitlab-org/gitlab!113103)) +- [docs: Remove mentions of gitaly-ruby](gitlab-org/gitlab@6a1d59926f386ef6e1931ef8dbaeb5d230341b7b) ([merge request](gitlab-org/gitlab!116121)) +- [Remove temporary index for licenses cleanup](gitlab-org/gitlab@e0007df50c46e405fc5a4685a657c050bde04d3d) ([merge request](gitlab-org/gitlab!116098)) +- [Removing FF refactor_ci_minutes_consumption](gitlab-org/gitlab@47371c6fe8cf25a9d75e4b7396defcf304fbe387) ([merge request](gitlab-org/gitlab!115735)) +- [Perform final removal of the learn gitlab creation worker](gitlab-org/gitlab@e92dc097481a7be1a72848c81cb31cba07a43da0) ([merge request](gitlab-org/gitlab!113899)) +- [Stop writing v1 ActiveSession keys](gitlab-org/gitlab@f9a58dea42e91f16e9bd3e741a9b6d001bcc9862) ([merge request](gitlab-org/gitlab!115940)) +- [Remove unused alert_metrics component](gitlab-org/gitlab@19460cd9facaefca3a86f13c1d2109905e1a3804) ([merge request](gitlab-org/gitlab!115866)) +- [Drop packages_events table](gitlab-org/gitlab@a729d57cde684dd7791854d0b0312ed9868b347f) ([merge request](gitlab-org/gitlab!114947)) +- [Remove collect_package_events feature flag with relevant code](gitlab-org/gitlab@2051f42938dc517036389f154d09f8d0b34a8539) ([merge request](gitlab-org/gitlab!114749)) +- [Remove duplicate metrics for group "editor"](gitlab-org/gitlab@2a1fb150e4abc977dd107ca72ccd3c4fb2b692ce) ([merge request](gitlab-org/gitlab!114997)) +- [Removes create_table_with_constraints](gitlab-org/gitlab@c1fdb9d4fc815f5624fb116030d4a230964d6b22) ([merge request](gitlab-org/gitlab!114895)) + +### Security (21 changes) + +- [Revert 'security-find_tag_before_send_git_archive'](gitlab-org/gitlab@86a92a6b2c6758c0d85ad3f6808cab22c6d119e5) +- [Fix security report authorization](gitlab-org/gitlab@d48cd5e4d74426e37b3033043e1d7542d0a739ab) +- [Check access to parent when creating and updating epics](gitlab-org/gitlab@633c6267075767fce6e8ae7d55965f28d5fff21a) +- [Revert security-383776-track-sha-of-last-approval](gitlab-org/gitlab@24818b7fe89569cb39abdbf38aed9171c9565662) +- [Normalize some spaces in snapshot spec](gitlab-org/gitlab@39a5505ae434ec193f3f2c0b418552321b1caa78) +- [Check access to target project before looking for branch](gitlab-org/gitlab@1708cd6cd3d1c1087debea94abbe566ddf5ade7f) +- [Verify that users have access to the parent of the fork](gitlab-org/gitlab@862a3c7c9b8d114b41d7e921a0d63808788a6789) +- [Check access to reorder issues in epic tree](gitlab-org/gitlab@f155e762160af234a2adb2ec4378f51e67da0a98) +- [Redirect to tree from project root on ref collision](gitlab-org/gitlab@f1e2626fe777ccc1878ef7b5352e6277e7eb0c20) +- [Fixes soft email confirmation alert vulnerability](gitlab-org/gitlab@089886ede8853903e8316943201522cbc53f9172) +- [Record sha of approval](gitlab-org/gitlab@8fa3917f5d16851b73c1e2ceefbf1b576356d5bb) +- [Use UntrustedRegexp to limit scan of HTML comments](gitlab-org/gitlab@93fab48793220f2ced4678967314df3ee3dd73bf) +- [Replace Unicode space chars with spaces](gitlab-org/gitlab@0ff59edf8061be9b1d217abac91e69fdb1d2ac77) +- [Improve Gitlab::UrlSanitizer regex to match more URIs](gitlab-org/gitlab@2fbafe22604cb8bfcf2191970cdbc3a5b83331da) +- [Restrict Prometheus API access on public projects](gitlab-org/gitlab@adcdf76803f89f265e7a6db9ca3d146e7f4f0dd3) +- [Filter namespace environments by feature visibility](gitlab-org/gitlab@1765d693e86a9562da59f910a06a5b79f29bf794) +- [Fix the potential leak of internal notes](gitlab-org/gitlab@ca5fffb1c2a1ae4f0da19c5e2821e9f630ee11ce) +- [Update globalid gem to v1.1.0](gitlab-org/gitlab@bc9bfaa75468f8429ca8eb734d722af0a8ff97eb) ([merge request](gitlab-org/gitlab!115749)) +- [Prevent XSS attack in "Maximum page reached" page](gitlab-org/gitlab@220b52d5c53d1364353c77643116320beee65902) +- [Protect webhook secrets by resetting url_variables](gitlab-org/gitlab@0bce20593cc959322acb2a6a9a9b54bcb5552346) +- [Check for tag before send_git_archive](gitlab-org/gitlab@3a2e998dfeb3bde1c606fc1bf1cefa63d2ca27f5) + +### Performance (13 changes) + +- [Add migration for backfilling project permissions in blob documents](gitlab-org/gitlab@58defaf841227c227de2f8fbc637c009837d8fc3) ([merge request](gitlab-org/gitlab!117224)) **GitLab Enterprise Edition** +- [Remove sync index idx_merge_requests_on_state_id_and_merge_status](gitlab-org/gitlab@095015933c5372630bdab2f07c1b9d3e268b9a56) ([merge request](gitlab-org/gitlab!117481)) +- [Remove index on events.action](gitlab-org/gitlab@4d9d7f479fa484f0f4385458fc4235e53273c012) ([merge request](gitlab-org/gitlab!114829)) +- [Apply patch by @terrichu](gitlab-org/gitlab@b917e6d5e3355f61a0bfeb2feef279b53b7bcd4a) ([merge request](gitlab-org/gitlab!115949)) +- [Contribution analytics: Limit request time range to one week](gitlab-org/gitlab@2cd85d3dd374ce172cbe080662762a78ab4747cc) ([merge request](gitlab-org/gitlab!116862)) **GitLab Enterprise Edition** +- [Return error when updated_at filtering used without sorting](gitlab-org/gitlab@2eff1b85bef5de93a25798c88e11ddc2bcc93998) ([merge request](gitlab-org/gitlab!116656)) +- [Use optimistic locking when updating Terraform state](gitlab-org/gitlab@781703e38b0b35702ded899b717f719125589eaa) ([merge request](gitlab-org/gitlab!116069)) +- [Improve the performance of the labels queries](gitlab-org/gitlab@0c8f7ebce0ba08eba76628490e9555b9976e2378) +- [Make Action Cable subscriptions use DB replicas](gitlab-org/gitlab@27c329eac7b050b86351be34d5ab48f81220f2ff) ([merge request](gitlab-org/gitlab!115828)) +- [Improve the performance of the labels queries](gitlab-org/gitlab@51bae9c082afd8fc18294c760b45e1f58bcfcb7f) ([merge request](gitlab-org/gitlab!116100)) +- [Update ComplianceViolationsFinder to use InOperatorOptimization](gitlab-org/gitlab@3d2e12a9fdcb618325a6fd27490caa6a4f649b4e) ([merge request](gitlab-org/gitlab!115404)) +- [Remove index idx_merge_requests_on_state_id_and_merge_status async](gitlab-org/gitlab@394b7b32d7cc7483d9a954d1f6dbccc00945f034) ([merge request](gitlab-org/gitlab!115926)) +- [Add batch_counter to verifiable_replicator counters](gitlab-org/gitlab@f36a223adac4b6470f09dae2d953dd79713a5d56) ([merge request](gitlab-org/gitlab!107514)) **GitLab Enterprise Edition** + +### Other (80 changes) + +- [Refactoring audit events for projects](gitlab-org/gitlab@2258b1b20c4c53690c41ee8cdd5a3a6b4eb52b21) ([merge request](gitlab-org/gitlab!117546)) **GitLab Enterprise Edition** +- [Remaining CTRT edits to Service Desk doc](gitlab-org/gitlab@c7ba037296a106fc0b791c6d2add4f44f17edadb) ([merge request](gitlab-org/gitlab!118025)) +- [Make the code suggestions default to be false](gitlab-org/gitlab@df0b502af4d8e404c38774bdf53d7c4c7d3ad647) ([merge request](gitlab-org/gitlab!118073)) +- [Revert the update to code suggestions](gitlab-org/gitlab@a82e125ca7fe07fde0df97f5cf24d34646003434) ([merge request](gitlab-org/gitlab!118070)) +- [Remove refactor_code_quality_inline_findings feature-flag](gitlab-org/gitlab@ee29ff3108019a4c9f86745a5bcd0d99ab71697a) ([merge request](gitlab-org/gitlab!117686)) +- [Remove FF ci_simplify_dag_status_calculation_for_processing](gitlab-org/gitlab@f2d6eeb5be9d99d9d38bad4e07e539a0d79421a4) ([merge request](gitlab-org/gitlab!117835)) +- [Improves documentation for Model Experiments](gitlab-org/gitlab@f29cc816804cc8e0440a28a16dec917d31dc5a30) ([merge request](gitlab-org/gitlab!117409)) +- [Make DesignManagement::Repository a container for GitRepository](gitlab-org/gitlab@1c8e3b475fee0b27d773e55366d13ba59ced9d84) ([merge request](gitlab-org/gitlab!116245)) +- [Delete webauthn feature flag](gitlab-org/gitlab@fe0205b8df9ae73cc687c7faa9d4518effa3c13a) ([merge request](gitlab-org/gitlab!115953)) +- [Introduce User Access Project/Group Authorizations](gitlab-org/gitlab@77acc92150f0e9dcfd2979338a429bee9a032801) ([merge request](gitlab-org/gitlab!116901)) +- [Use a mockApolloClient to test Design comments](gitlab-org/gitlab@08b10d14c4c7e226b2f719303e94ea9c156e77c1) ([merge request](gitlab-org/gitlab!115386)) +- [Remove partition_id default for p_ci_builds_metadata](gitlab-org/gitlab@8d3d82fcce386b2aec5129358c7a19ab5817cd03) ([merge request](gitlab-org/gitlab!116761)) +- [Track roadmap tab on epics detail page](gitlab-org/gitlab@4e959d521a92d595da458df11d956e49b7feab24) ([merge request](gitlab-org/gitlab!117501)) **GitLab Enterprise Edition** +- [Update compliance framework pipeline docs](gitlab-org/gitlab@3d71a00b9bdd47f29c4c52605cb1b3ef1d646c7a) ([merge request](gitlab-org/gitlab!117272)) +- [Removes grace period for BackgroundMigration/MissingDictionaryFile](gitlab-org/gitlab@6c3162fde12b019188899dd83851335912c8243e) ([merge request](gitlab-org/gitlab!117370)) +- [Blame controller refactoring (step 3)](gitlab-org/gitlab@69a928ed3b6ac7a03c4d21bb4b5c119f296a76d7) ([merge request](gitlab-org/gitlab!116689)) +- [Removes reduce_sub_batch_size_on_timeouts feature flag](gitlab-org/gitlab@a067dce1fe875802aa676b0b7cf03f3f3e62def2) ([merge request](gitlab-org/gitlab!116619)) +- [Add migrations to truncate error_tracking tables on PostgresSQL](gitlab-org/gitlab@99a16129113cec6c6a8da335d5d2897e7c8e5334) ([merge request](gitlab-org/gitlab!115966)) +- [Blame controller refactoring (step 2)](gitlab-org/gitlab@00d47593082ec5b6dad02e2e561b949deb896689) ([merge request](gitlab-org/gitlab!116688)) +- [Validate the projects.creator_id foregin key asynchronously](gitlab-org/gitlab@57f109ae08183bc0f9eb97fc5ec55bd38d159c68) ([merge request](gitlab-org/gitlab!117144)) +- [Add code suggestions to namespace settings](gitlab-org/gitlab@60b7cb2948f34eda6cc16900783e340b496e969b) ([merge request](gitlab-org/gitlab!117065)) +- [Remove FF github_import_gists](gitlab-org/gitlab@95bcdc230144e9fe543a92e27e4bc517e3426791) ([merge request](gitlab-org/gitlab!116321)) +- [Update import workers to set memory resource boundary](gitlab-org/gitlab@9edf1ccf4e950bcf9a18a2b134f7e0125a3b80ca) ([merge request](gitlab-org/gitlab!116661)) +- [Using BBM in TableManagementHelpers#enqueue_partitioning_data_migration](gitlab-org/gitlab@007c827646afc5132a5d916eed6d1034642b63b5) ([merge request](gitlab-org/gitlab!116157)) +- [Simplify isEditing for Policy Editor Component](gitlab-org/gitlab@06375a628a05a8010c26ca102eefd3e31a87fe9f) ([merge request](gitlab-org/gitlab!116548)) **GitLab Enterprise Edition** +- [Rename variables used for project counts](gitlab-org/gitlab@81bd39b85de8254eb5d985d808706366a14c700f) ([merge request](gitlab-org/gitlab!114737)) +- [Add index to `vulnerability_occurrences` table for override uuids logic](gitlab-org/gitlab@be9db06df423aade4dddbf74665b5c94122f7039) ([merge request](gitlab-org/gitlab!116791)) +- [Remove unused index asynchronously](gitlab-org/gitlab@5d651002519a09e87b6a98be66e8b48fe0683ff1) ([merge request](gitlab-org/gitlab!116639)) +- [Swap note_diff_file.diff_note_id to bigint](gitlab-org/gitlab@bca392f47b8bafee8503ef4fe2cba383031f1267) ([merge request](gitlab-org/gitlab!115460)) +- [Prepare async index for vulnerability_occurrences table](gitlab-org/gitlab@f9913b17cf2359308734000f2409fd59e6966f6e) ([merge request](gitlab-org/gitlab!116694)) +- [Blame controller refactoring](gitlab-org/gitlab@aedd3d72edcc6fe3e5df890681e72e6e23f3aaaf) ([merge request](gitlab-org/gitlab!116684)) +- [Clean up old redirect route](gitlab-org/gitlab@322c3de23bfcd4b66761f03b65b03ce3b1852135) ([merge request](gitlab-org/gitlab!116672)) **GitLab Enterprise Edition** +- [Update handling of project names in bulk import](gitlab-org/gitlab@f751896c48a07368b53e2f22e8498c2140d7be92) ([merge request](gitlab-org/gitlab!115780)) +- [Reorder primary key columns for ci_runner_machine_builds](gitlab-org/gitlab@557f76ef4cd8d02ad38344fc87ca1c39c277bebc) ([merge request](gitlab-org/gitlab!116095)) +- [Remove unused index synchronously](gitlab-org/gitlab@febe15bf3373019ad4301be54e41b3f88a7acf40) ([merge request](gitlab-org/gitlab!116642)) +- [Remove db_load_balance_audit_event_streaming_worker feature flag](gitlab-org/gitlab@1f812ced761ba01484122c10523a9c6bece9a95e) ([merge request](gitlab-org/gitlab!116637)) **GitLab Enterprise Edition** +- [Swap epic_user_mentions.note_id to bigint](gitlab-org/gitlab@d8ecc4d24e9f1e61b7bcfb1b896a9bdbbabf771b) ([merge request](gitlab-org/gitlab!116627)) +- [Swap suggestions.note_id to bigint](gitlab-org/gitlab@8498690a79d4c81aba3f3ca4c97a174a3ffb84a4) ([merge request](gitlab-org/gitlab!116622)) +- [Update Admin::GroupsController#reset_runners_minutes feature_category](gitlab-org/gitlab@8c7f5c911af8f41d93e373e75d3461ca7f490c61) ([merge request](gitlab-org/gitlab!116026)) +- [Documenting testing for multiple databases](gitlab-org/gitlab@0707c25a353ac81cb4a140314d8bf63855085305) ([merge request](gitlab-org/gitlab!116384)) +- [Make CI config fetch timeout configurable](gitlab-org/gitlab@4a6405fd060ee5a7ebf298f5eb7f22540a20b484) ([merge request](gitlab-org/gitlab!116383)) +- [Backfill Migrations for ML::Candidate.internal_id](gitlab-org/gitlab@1607f695ca3f979a0693ac9baf3e49525af145b1) ([merge request](gitlab-org/gitlab!115971)) +- [Filter out BEGIN/COMMIT correctly in metrics](gitlab-org/gitlab@cd9dcf783c9d7bdb43f9778db867c89329e83e3c) ([merge request](gitlab-org/gitlab!116218)) +- [Set data_consistency to delayed for AuditEventStreamingWorker](gitlab-org/gitlab@a62cce0c7cfbd872d24ca46dcdbcc267c647035d) ([merge request](gitlab-org/gitlab!115813)) **GitLab Enterprise Edition** +- [Refactors Ml::Candidate.eid usages to internal_id](gitlab-org/gitlab@9dab7e8c264be036f08bfe68c23a717f63af5f18) ([merge request](gitlab-org/gitlab!116085)) +- [Remove use_traversal_ids_for_root_ancestor FF](gitlab-org/gitlab@b294398ea02f18f61218880e3de33457f0f0c3f6) ([merge request](gitlab-org/gitlab!104019)) +- [Migrate button group to GlDisclosureDropdown](gitlab-org/gitlab@c1409761db54666870d03abf58d77be8fc275bf2) ([merge request](gitlab-org/gitlab!114482)) **GitLab Enterprise Edition** +- [Update omniauth-auth0 rubygem to 3.1](gitlab-org/gitlab@9a98c22680c56284a93b5d4a89a9f5d309571a7f) by @pravi ([merge request](gitlab-org/gitlab!115200)) +- [Add new CI Variable `CI_API_GRAPHQL_URL`](gitlab-org/gitlab@94b52c439e4758b2d02038332ed07522a105c8bf) by @homersimpsons ([merge request](gitlab-org/gitlab!115804)) +- [Remove partition_id default from ci_builds](gitlab-org/gitlab@fb55be1107d914ecc1b0d2995a655d3291cd7929) ([merge request](gitlab-org/gitlab!115874)) +- [Exposing Finalizing BBMs in Admin portal](gitlab-org/gitlab@385975e0582f9024d74e8ab29545392ca92735b4) ([merge request](gitlab-org/gitlab!115551)) +- [Moves Service Desk custom email credentials to own table](gitlab-org/gitlab@e7cbba57f03466b26799ff1ef1dbad366991879f) ([merge request](gitlab-org/gitlab!114917)) +- [Cleanup BigInt conversion for ci_build_needs](gitlab-org/gitlab@2c31bc847cc0098a94aff888cf9db660fc2ad0dc) ([merge request](gitlab-org/gitlab!115398)) +- [Backfill application_settings product_analytics_data_collector_host](gitlab-org/gitlab@dc50e62b17b1bec9756935df518bb663ce335c66) ([merge request](gitlab-org/gitlab!114514)) +- [Improve error message for application_settings#archive_builds_in_seconds](gitlab-org/gitlab@8fa19b48e31c90544cd5bb34abc10f10f97ee419) ([merge request](gitlab-org/gitlab!115536)) +- [Remove download_code column from member_roles](gitlab-org/gitlab@714308d35de25084e5b0deada9296af2c749cc92) ([merge request](gitlab-org/gitlab!115707)) +- [Single database testing documentation](gitlab-org/gitlab@92a3de033698dc292464970695224e37690b115b) ([merge request](gitlab-org/gitlab!115841)) +- [Fixing specs for single-db-two-connections](gitlab-org/gitlab@81b3633185d7d96b28b58ef2b090950d3f967c83) ([merge request](gitlab-org/gitlab!112731)) +- [Validate direct transfer enabled on source](gitlab-org/gitlab@9a0b72ec97bf795d66d19068b5ff604c111d340c) ([merge request](gitlab-org/gitlab!115685)) +- [Removing 'dropped' from deduplication_type while logging](gitlab-org/gitlab@8b3bc832bf6182e29bd2c910678908e1af214da0) ([merge request](gitlab-org/gitlab!115566)) +- [FileLineBlame feature flag cleanup](gitlab-org/gitlab@d32c2d0c95263080368f0f0da312243a91b8c85c) ([merge request](gitlab-org/gitlab!115355)) +- [Query members via namespaces](gitlab-org/gitlab@27c4dfc1b5f170dfd4e6c052c7788bcf00e21710) ([merge request](gitlab-org/gitlab!115643)) +- [Cleanup extend reactivate trial feature](gitlab-org/gitlab@db30b743a038b1166bfa30655b9af1c28713a09a) ([merge request](gitlab-org/gitlab!115582)) **GitLab Enterprise Edition** +- [Fix spec violation - spying on methods](gitlab-org/gitlab@80179c7fbe245c7d0fa69704b7a9db95566196d4) ([merge request](gitlab-org/gitlab!115555)) +- [Validate direct transfer enabled on source](gitlab-org/gitlab@cd4d5ec5eba1e6a452b016700e6fba58ed7feaee) ([merge request](gitlab-org/gitlab!114686)) +- [Upgrade to Vue 2.7](gitlab-org/gitlab@de3176f710e4a4db0d7d879b11f267b584cb4601) ([merge request](gitlab-org/gitlab!113042)) +- [Handle invalid filter for compliance filters](gitlab-org/gitlab@6ae0508594ec462a597b017c0ad91e1082811236) ([merge request](gitlab-org/gitlab!115302)) **GitLab Enterprise Edition** +- [Remove the legacy_open_source_license_worker feature flag](gitlab-org/gitlab@127888d90afc4a164ed064e3f666827449fe13d3) ([merge request](gitlab-org/gitlab!115514)) +- [Swap snippet_user_mentions.note_id to bigint](gitlab-org/gitlab@1bbda663afc67791cc3d3160b280eb3198ad6a5b) ([merge request](gitlab-org/gitlab!115456)) +- [Reorder primary key columns for ci_runner_machine_builds](gitlab-org/gitlab@7ae777fd030cc65721f74e36cc4634d38c245a69) ([merge request](gitlab-org/gitlab!114894)) +- [Remove partition_id default from ci_builds](gitlab-org/gitlab@7e56f40766067a2df9c1350ef5ad50315a235107) ([merge request](gitlab-org/gitlab!115348)) +- [Add partitioning check constraint to ci_builds](gitlab-org/gitlab@224089a72c04ba330f357e2ef1f5de9349231a53) ([merge request](gitlab-org/gitlab!114077)) +- [Consistent naming in for CodeQuality Pipelines](gitlab-org/gitlab@31578d82025f7cd000f352649c3546e2f2965cb4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113134)) **GitLab Enterprise Edition** +- [Swap design_user_mentions.note_id to bigint](gitlab-org/gitlab@4adfc2d69000f64c712b1ae18a302104cca20542) ([merge request](gitlab-org/gitlab!115285)) +- [Swap vulnerability_user_mentions.note_id to bigint](gitlab-org/gitlab@ea6c3b924d286277c4349a3d241cc97ad8aa6096) ([merge request](gitlab-org/gitlab!115280)) +- [Swap commit_user_mentions.note_id to bigint](gitlab-org/gitlab@ed1fe59e792691b289fcb9df3d1b36e44974ca3b) ([merge request](gitlab-org/gitlab!115277)) +- [Documenting Docker install method switching to two connections](gitlab-org/gitlab@dcb1f8de3894af2171c1ca6fb92bd5731f89efe0) ([merge request](gitlab-org/gitlab!114625)) +- [Remove full_path_project_search feature flag](gitlab-org/gitlab@18404e701d99fdf9d91dcf0c38496961eb6be89e) ([merge request](gitlab-org/gitlab!114932)) +- [Update header section](gitlab-org/gitlab@cf4ab283267d84fa1c0dc90fefb1b6ddd2617b5c) ([merge request](gitlab-org/gitlab!114102)) **GitLab Enterprise Edition** +- [Swap merge_request_user_mentions.note_id to bigint](gitlab-org/gitlab@96baed47326db4f0cc9f60b2e74215211effd814) ([merge request](gitlab-org/gitlab!113928)) ## 15.10.3 (2023-04-14) @@ -831,6 +1654,27 @@ entry. - [Update submit buttons to use Pajamas component](gitlab-org/gitlab@4ffb92755e6be3268c78f02e471f5c2a21f437be) ([merge request](gitlab-org/gitlab!114246)) +## 15.9.4 (2023-03-30) + +### Security (16 changes) + +- [Add checks to remove open redirects from Observability URL](gitlab-org/security/gitlab@98b1bd243f454bd28c262131be616ee2060c3a78) ([merge request](gitlab-org/security/gitlab!3104)) +- [Redirect to tree from project root on ref collision](gitlab-org/security/gitlab@0f0c0f21dffe300a56abf1e07a2fefb17160faeb) ([merge request](gitlab-org/security/gitlab!3133)) +- [Fixes soft email confirmation alert vulnerability](gitlab-org/security/gitlab@12498f791f9c5fe833f5202b06cc818d4dcf965b) ([merge request](gitlab-org/security/gitlab!3124)) +- [Restrict Prometheus API access on public projects](gitlab-org/security/gitlab@440a7989ff46ca333f86a38aefa47f74301e66fc) ([merge request](gitlab-org/security/gitlab!3163)) +- [Verify that users have access to the parent of the fork](gitlab-org/security/gitlab@9dd0dff69d3941e827c461c67b9af10da07d69f8) ([merge request](gitlab-org/security/gitlab!3084)) +- [Protect webhook secrets by resetting url_variables](gitlab-org/security/gitlab@cd20b44dd5b075827203330802e331b896448265) ([merge request](gitlab-org/security/gitlab!3140)) +- [Replace Unicode space chars with spaces](gitlab-org/security/gitlab@76975082c41870265e1285fa8f4e053eb6ff11ae) ([merge request](gitlab-org/security/gitlab!3136)) +- [Check access to parent when creating and updating epics](gitlab-org/security/gitlab@7fcc4a0d010d3a428e803f95ef47904c4c7178a8) ([merge request](gitlab-org/security/gitlab!3149)) +- [Improve Gitlab::UrlSanitizer regex to match more URIs](gitlab-org/security/gitlab@4e7313536e4cdb3ecef37100b5a73720eabfbc79) ([merge request](gitlab-org/security/gitlab!3108)) +- [Check access to target project before looking for branch](gitlab-org/security/gitlab@f55edf39e52af9eecb19caf8ed5d4cb8524ef64d) ([merge request](gitlab-org/security/gitlab!3040)) +- [Fix the potential leak of internal notes](gitlab-org/security/gitlab@be73600e8c43c22cda1ace5910eb2052b2741972) ([merge request](gitlab-org/security/gitlab!3120)) +- [Use UntrustedRegexp to limit scan of HTML comments](gitlab-org/security/gitlab@d5e65583debcae71787e171643275bc9b9d4393e) ([merge request](gitlab-org/security/gitlab!3142)) +- [Filter namespace environments by feature visibility](gitlab-org/security/gitlab@54045b508a9ba9ae18f5992b77970240774b28a7) ([merge request](gitlab-org/security/gitlab!3111)) +- [Check access to reorder issues in epic tree](gitlab-org/security/gitlab@bc033cd3a98c9a1468545811a8180604f7f8aee3) ([merge request](gitlab-org/security/gitlab!3101)) +- [Fix security report authorization](gitlab-org/security/gitlab@a01cf9d8383ffc4c0e29514f71d49bf345e1f7c2) ([merge request](gitlab-org/security/gitlab!3106)) +- [Prevent XSS attack in "Maximum page reached" page](gitlab-org/security/gitlab@3cefb16a5e369ee99f4c3ccbaa02cead6faf1a99) ([merge request](gitlab-org/security/gitlab!3130)) + ## 15.9.3 (2023-03-09) ### Fixed (4 changes) @@ -1587,6 +2431,33 @@ entry. - [Remove Gitlab::Redis::DuplicateJobs](gitlab-org/gitlab@73d863b0a49175cce7649c0936b2e16157f61665) ([merge request](gitlab-org/gitlab!109122)) - [Clean-up feature flag `hash_based_cache_for_protected_branches`](gitlab-org/gitlab@96e8a07564bac07a100556e00ce4af3f21dca293) ([merge request](gitlab-org/gitlab!108724)) +## 15.8.6 (2023-04-18) + +### Fixed (1 change) + +- [Fix automatically-retried jobs stuck in pending state](gitlab-org/gitlab@6db2bf65f0273af547dc84e338db952de0206ada) ([merge request](gitlab-org/gitlab!117283)) + +## 15.8.5 (2023-03-30) + +### Security (16 changes) + +- [Fix rubocop offenses in lib/gitlab/url_sanitizer.rb](gitlab-org/security/gitlab@ddc04cf7059e411e20033b95e1297381d64d4b22) ([merge request](gitlab-org/security/gitlab!3175)) +- [Add checks to remove open redirects from Observability URL](gitlab-org/security/gitlab@a22ce3851128eb900dbabe9e38c07889967a2915) ([merge request](gitlab-org/security/gitlab!3032)) +- [Redirect to tree from project root on ref collision](gitlab-org/security/gitlab@fad24ae9d8fa0e7bd9eff0c9e6914c8267451b4d) ([merge request](gitlab-org/security/gitlab!3134)) +- [Fixes soft email confirmation alert vulnerability](gitlab-org/security/gitlab@85be0fbfc98cdb774d68070479e35be22f6ba40a) ([merge request](gitlab-org/security/gitlab!3125)) +- [Restrict Prometheus API access on public projects](gitlab-org/security/gitlab@2df2fa2dc4b9015d044d0ddc5d26e17e9e5f85c0) ([merge request](gitlab-org/security/gitlab!3164)) +- [Verify that users have access to the parent of the fork](gitlab-org/security/gitlab@53f7f06843eea4d666d361f5a1d349bd1e3f4312) ([merge request](gitlab-org/security/gitlab!3085)) +- [Protect webhook secrets by resetting url_variables](gitlab-org/security/gitlab@9fa9dbff463f6015ffaf8d082db3d41ae623763e) ([merge request](gitlab-org/security/gitlab!3141)) +- [Replace Unicode space chars with spaces](gitlab-org/security/gitlab@20d77d4d680d13f916fb69de0d79802753421c8f) ([merge request](gitlab-org/security/gitlab!3137)) +- [Check access to parent when creating and updating epics](gitlab-org/security/gitlab@0fed113756b27a3a078f87f29711b225e1ed4cce) ([merge request](gitlab-org/security/gitlab!3150)) +- [Improve Gitlab::UrlSanitizer regex to match more URIs](gitlab-org/security/gitlab@2285088f37aca877b1dcd59c728cdf33171b30cb) ([merge request](gitlab-org/security/gitlab!3109)) +- [Check access to target project before looking for branch](gitlab-org/security/gitlab@37b8d855d87c88170322e6a6d4c285fee6c6cb64) ([merge request](gitlab-org/security/gitlab!3038)) +- [Fix the potential leak of internal notes](gitlab-org/security/gitlab@66f8cc2eb13509397b980d53a4b67ca03d8903f7) ([merge request](gitlab-org/security/gitlab!3121)) +- [Filter namespace environments by feature visibility](gitlab-org/security/gitlab@e1859de393b4794e1356d6318e56ede4b557c059) ([merge request](gitlab-org/security/gitlab!3112)) +- [Check access to reorder issues in epic tree](gitlab-org/security/gitlab@13f9c6231cea956f73355c5b5b820163f523e7d8) ([merge request](gitlab-org/security/gitlab!3100)) +- [Fix security report authorization](gitlab-org/security/gitlab@19baab85c7a5a64a09e3e4808e8550fc72e18323) ([merge request](gitlab-org/security/gitlab!3105)) +- [Prevent XSS attack in "Maximum page reached" page](gitlab-org/security/gitlab@be5491c5db05161e4b14d53900dd19b66848de48) ([merge request](gitlab-org/security/gitlab!3131)) + ## 15.8.4 (2023-03-02) ### Security (12 changes) diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 4058f0a252..7b10f109c5 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -15.10.8 \ No newline at end of file +15.11.6 \ No newline at end of file diff --git a/GITLAB_ELASTICSEARCH_INDEXER_VERSION b/GITLAB_ELASTICSEARCH_INDEXER_VERSION index ee74734aa2..80895903a1 100644 --- a/GITLAB_ELASTICSEARCH_INDEXER_VERSION +++ b/GITLAB_ELASTICSEARCH_INDEXER_VERSION @@ -1 +1 @@ -4.1.0 +4.3.0 diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index 1a42a9dbc9..9f28d5d9d5 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -v15.10.0 +v15.11.0 diff --git a/GITLAB_PAGES_VERSION b/GITLAB_PAGES_VERSION index 4058f0a252..7b10f109c5 100644 --- a/GITLAB_PAGES_VERSION +++ b/GITLAB_PAGES_VERSION @@ -1 +1 @@ -15.10.8 \ No newline at end of file +15.11.6 \ No newline at end of file diff --git a/Gemfile b/Gemfile index a8063691b7..25fbc65d27 100644 --- a/Gemfile +++ b/Gemfile @@ -20,11 +20,7 @@ gem 'bootsnap', '~> 1.16.0', require: false # Pin openssl to match the version bundled with our supported Rubies. # See https://stdgems.org/openssl/#gem-version. gem 'openssl', '2.2.2' -# This gem was originally bundled with Ruby 2.7, but is unbundled as of Ruby 3. -# Since the latest version caused problems with GitLab, we pin this to an older -# version for now. -# See https://gitlab.com/gitlab-org/gitlab/-/issues/376417 -gem 'ipaddr', '1.2.2' +gem 'ipaddr', '~> 1.2.5' # Responders respond_to and respond_with gem 'responders', '~> 3.0' @@ -34,7 +30,7 @@ gem 'sprockets', '~> 3.7.0' gem 'view_component', '~> 2.74.1' # Supported DBs -gem 'pg', '~> 1.4.5' +gem 'pg', '~> 1.4.6' gem 'rugged', '~> 1.5' gem 'grape-path-helpers', '~> 1.7.1' @@ -49,12 +45,12 @@ gem 'declarative_policy', '~> 1.1.0' gem 'devise', '~> 4.8.1' gem 'devise-pbkdf2-encryptable', '~> 0.0.0', path: 'vendor/gems/devise-pbkdf2-encryptable' gem 'bcrypt', '~> 3.1', '>= 3.1.14' -gem 'doorkeeper', '~> 5.5' -gem 'doorkeeper-openid_connect', '~> 1.8' +gem 'doorkeeper', '~> 5.6', '>= 5.6.6' +gem 'doorkeeper-openid_connect', '~> 1.8', '>= 1.8.5' gem 'rexml', '~> 3.2.5' gem 'ruby-saml', '~> 1.13.0' gem 'omniauth', '~> 2.1.0' -gem 'omniauth-auth0', '~> 2.0.0' +gem 'omniauth-auth0', '~> 3.1' gem 'omniauth-azure-activedirectory-v2', '~> 2.0' gem 'omniauth-azure-oauth2', '~> 0.0.9', path: 'vendor/gems/omniauth-azure-oauth2' # See gem README.md gem 'omniauth-cas3', '~> 1.1.4', path: 'vendor/gems/omniauth-cas3' # See vendor/gems/omniauth-cas3/README.md @@ -75,7 +71,7 @@ gem 'openid_connect', '= 1.3.0' gem 'omniauth-salesforce', '~> 1.0.5', path: 'vendor/gems/omniauth-salesforce' # See gem README.md gem 'omniauth-atlassian-oauth2', '~> 0.2.0' gem 'rack-oauth2', '~> 1.21.3' -gem 'jwt', '~> 2.1.0' +gem 'jwt', '~> 2.5' # Kerberos authentication. EE-only gem 'gssapi', '~> 1.3.1', group: :kerberos @@ -102,7 +98,7 @@ gem 'acme-client', '~> 2.0' gem 'browser', '~> 5.3.1' # OS detection for usage ping -gem 'ohai', '~> 16.10' +gem 'ohai', '~> 17.9' # GPG gem 'gpgme', '~> 2.0.22' @@ -166,6 +162,7 @@ gem 'google-apis-cloudresourcemanager_v1', '~> 0.31.0' gem 'google-apis-iam_v1', '~> 0.36.0' gem 'google-apis-serviceusage_v1', '~> 0.28.0' gem 'google-apis-sqladmin_v1beta4', '~> 0.41.0' +gem 'google-apis-androidpublisher_v3', '~> 0.34.0' # for aws storage gem 'unf', '~> 0.1.4' @@ -177,9 +174,9 @@ gem 'seed-fu', '~> 2.3.7' gem 'elasticsearch-model', '~> 7.2' gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation' gem 'elasticsearch-api', '7.13.3' -gem 'aws-sdk-core', '~> 3.170.1' +gem 'aws-sdk-core', '~> 3.171.0' gem 'aws-sdk-cloudformation', '~> 1' -gem 'aws-sdk-s3', '~> 1.119.1' +gem 'aws-sdk-s3', '~> 1.121.0' gem 'faraday_middleware-aws-sigv4', '~>0.3.0' gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive connections @@ -200,7 +197,7 @@ gem 'asciidoctor-plantuml', '~> 0.0.16' gem 'asciidoctor-kroki', '~> 0.8.0', require: false gem 'rouge', '~> 4.1.0' gem 'truncato', '~> 0.7.12' -gem 'nokogiri', '~> 1.14.2' +gem 'nokogiri', '~> 1.14.3' # Calendar rendering gem 'icalendar' @@ -210,7 +207,7 @@ gem 'diffy', '~> 3.4' gem 'diff_match_patch', '~> 0.1.0' # Application server -gem 'rack', '~> 2.2.6', '>= 2.2.6.2' +gem 'rack', '~> 2.2.6', '>= 2.2.6.4' # https://github.com/zombocom/rack-timeout/blob/master/README.md#rails-apps-manually gem 'rack-timeout', '~> 0.6.3', require: 'rack/timeout/base' @@ -230,7 +227,7 @@ gem 'acts-as-taggable-on', '~> 9.0' gem 'sidekiq', '~> 6.5.7' gem 'sidekiq-cron', '~> 1.8.0' gem 'redis-namespace', '~> 1.9.0' -gem 'gitlab-sidekiq-fetcher', '0.9.0', require: 'sidekiq-reliable-fetch' +gem 'gitlab-sidekiq-fetcher', path: 'vendor/gems/sidekiq-reliable-fetch', require: 'sidekiq-reliable-fetch' # Cron Parser gem 'fugit', '~> 1.8.1' @@ -252,6 +249,7 @@ gem 're2', '~> 1.6.0' # Misc +gem 'semver_dialects', '~> 1.2.1' gem 'version_sorter', '~> 2.3' # Export Ruby Regex to Javascript @@ -289,12 +287,15 @@ gem 'ruby-fogbugz', '~> 0.3.0' # Kubernetes integration gem 'kubeclient', '~> 4.11.0' +# AI +gem 'ruby-openai', '~> 3.7' + # Sanitize user input gem 'sanitize', '~> 6.0' gem 'babosa', '~> 1.0.4' # Sanitizes SVG input -gem 'loofah', '~> 2.19.1' +gem 'loofah', '~> 2.20.0' # Working with license # Detects the open source license the repository includes @@ -333,9 +334,9 @@ gem 'rack-attack', '~> 6.6.1' # Sentry integration gem 'sentry-raven', '~> 3.1' -gem 'sentry-ruby', '~> 5.1.1' -gem 'sentry-rails', '~> 5.1.1' -gem 'sentry-sidekiq', '~> 5.1.1' +gem 'sentry-ruby', '~> 5.8.0' +gem 'sentry-rails', '~> 5.8.0' +gem 'sentry-sidekiq', '~> 5.8.0' # PostgreSQL query parsing # @@ -347,7 +348,7 @@ gem 'gitlab-labkit', '~> 0.31.1' gem 'thrift', '>= 0.16.0' # I18n -gem 'ruby_parser', '~> 3.19', require: false +gem 'ruby_parser', '~> 3.20', require: false gem 'rails-i18n', '~> 7.0' gem 'gettext_i18n_rails', '~> 1.8.0' gem 'gettext_i18n_rails_js', '~> 1.3' @@ -365,13 +366,13 @@ gem 'cloud_profiler_agent', '~> 0.0.0', path: 'vendor/gems/cloud_profiler_agent' gem 'snowplow-tracker', '~> 0.8.0' # Metrics -gem 'webrick', '~> 1.6.1', require: false +gem 'webrick', '~> 1.8.1', require: false gem 'prometheus-client-mmap', '~> 0.19', require: 'prometheus/client' gem 'warning', '~> 1.3.0' group :development do - gem 'lefthook', '~> 1.3.3', require: false + gem 'lefthook', '~> 1.3.10', require: false gem 'rubocop' gem 'solargraph', '~> 0.47.2', require: false @@ -434,7 +435,7 @@ group :development, :test do end group :development, :test, :danger do - gem 'gitlab-dangerfiles', '~> 3.8.0', require: false + gem 'gitlab-dangerfiles', '~> 3.9.0', require: false end group :development, :test, :coverage do @@ -451,23 +452,23 @@ end group :test do gem 'fuubar', '~> 2.2.0' - gem 'rspec-retry', '~> 0.6.1' + gem 'rspec-retry', '~> 0.6.2' gem 'rspec_profiling', '~> 0.0.6' gem 'rspec-benchmark', '~> 0.6.0' gem 'rspec-parameterized', '~> 1.0', require: false - gem 'capybara', '~> 3.35.3' - gem 'capybara-screenshot', '~> 1.0.22' - gem 'selenium-webdriver', '~> 3.142' + gem 'capybara', '~> 3.39' + gem 'capybara-screenshot', '~> 1.0.26' + gem 'selenium-webdriver', '~> 3.142', '>= 3.142.7' gem 'graphlyte', '~> 1.0.0' gem 'shoulda-matchers', '~> 5.1.0', require: false gem 'email_spec', '~> 2.2.0' - gem 'webmock', '~> 3.9.1' + gem 'webmock', '~> 3.18.1' gem 'rails-controller-testing' gem 'concurrent-ruby', '~> 1.1' - gem 'test-prof', '~> 1.0.7' + gem 'test-prof', '~> 1.2.1' gem 'rspec_junit_formatter' gem 'guard-rspec' gem 'axe-core-rspec' @@ -478,9 +479,7 @@ end gem 'octokit', '~> 4.15' -# Updating this gem version here is deprecated. See: -# https://docs.gitlab.com/ee/development/emails.html#mailroom-gem-updates -gem 'gitlab-mail_room', '~> 0.0.9', require: 'mail_room' +gem 'gitlab-mail_room', '~> 0.0.23', require: 'mail_room' gem 'email_reply_trimmer', '~> 0.1' gem 'html2text' @@ -507,7 +506,7 @@ gem 'net-ntp' gem 'ssh_data', '~> 1.3' # Spamcheck GRPC protocol definitions -gem 'spamcheck', '~> 1.0.0' +gem 'spamcheck', '~> 1.3.0' # Gitaly GRPC protocol definitions gem 'gitaly', '~> 15.9.0-rc3' @@ -517,7 +516,7 @@ gem 'kas-grpc', '~> 0.0.2' gem 'grpc', '~> 1.42.0' -gem 'google-protobuf', '~> 3.22', '>= 3.22.2' +gem 'google-protobuf', '~> 3.22', '>= 3.22.3' gem 'toml-rb', '~> 2.2.0' @@ -533,7 +532,7 @@ gem 'lograge', '~> 0.5' gem 'grape_logging', '~> 1.8' # DNS Lookup -gem 'gitlab-net-dns', '~> 0.9.1' +gem 'gitlab-net-dns', '~> 0.9.2' # Countries list gem 'countries', '~> 4.0.0' diff --git a/Gemfile.checksum b/Gemfile.checksum index 910c53f7ae..bebac94cf7 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -29,17 +29,17 @@ {"name":"asciidoctor-kroki","version":"0.8.0","platform":"ruby","checksum":"e53b3f349167cebde990b0098863e8fe98fd235e35263a78c88cc4e0268b1a36"}, {"name":"asciidoctor-plantuml","version":"0.0.16","platform":"ruby","checksum":"407e47cd1186ded5ccc75f0c812e5524c26c571d542247c5132abb8f47bd1793"}, {"name":"ast","version":"2.4.2","platform":"ruby","checksum":"1e280232e6a33754cde542bc5ef85520b74db2aac73ec14acef453784447cc12"}, -{"name":"atlassian-jwt","version":"0.2.0","platform":"ruby","checksum":"52e653e9d6062d7a740c3675b0e79fa08367927c6fc17f5476d1b6b3798c6eb2"}, +{"name":"atlassian-jwt","version":"0.2.1","platform":"ruby","checksum":"2fd2d87418773f2e140c038cb22e049069708aff2bd0a423a7e1740574e97823"}, {"name":"attr_required","version":"1.0.1","platform":"ruby","checksum":"024e10393bd30901e1adf6769bd756b873a5ef7da60f86f8f11066116b5742bc"}, {"name":"autoprefixer-rails","version":"10.2.5.1","platform":"ruby","checksum":"3711d67f1112361c7628847ac192d8aa6f3b8abe47527aee8a69dc8985e798ee"}, {"name":"awesome_print","version":"1.9.2","platform":"ruby","checksum":"e99b32b704acff16d768b3468680793ced40bfdc4537eb07e06a4be11133786e"}, {"name":"awrence","version":"1.2.1","platform":"ruby","checksum":"dd1d214c12a91f449d1ef81d7ee3babc2816944e450752e7522c65521872483e"}, {"name":"aws-eventstream","version":"1.2.0","platform":"ruby","checksum":"ffa53482c92880b001ff2fb06919b9bb82fd847cbb0fa244985d2ebb6dd0d1df"}, -{"name":"aws-partitions","version":"1.730.0","platform":"ruby","checksum":"32aa84e7004c4b0c7cde0bd9641188a3eaf3001ec67019b201cbe47bde8e902b"}, +{"name":"aws-partitions","version":"1.733.0","platform":"ruby","checksum":"4d418ca98c499cc88536cc03b46ae16a7d0ea5c9aa905509dd814949aa51bb52"}, {"name":"aws-sdk-cloudformation","version":"1.41.0","platform":"ruby","checksum":"31e47539719734413671edf9b1a31f8673fbf9688549f50c41affabbcb1c6b26"}, -{"name":"aws-sdk-core","version":"3.170.1","platform":"ruby","checksum":"553ba7ea629f90cd00fb83de3f3636e9db0a38b6b48957cacdb0f63c9d69bea6"}, -{"name":"aws-sdk-kms","version":"1.62.0","platform":"ruby","checksum":"b9111c698d783f3f092dcc6a8b9b7e3f53f00e6e501bdc5a4409afdcaf411a1c"}, -{"name":"aws-sdk-s3","version":"1.119.1","platform":"ruby","checksum":"f7f5939f204839e20222c70823ec0dc5f10775e3538e102783f68b42f5a7f6e6"}, +{"name":"aws-sdk-core","version":"3.171.0","platform":"ruby","checksum":"69c82d00b872dacf7fdf2a7c68f8b82aec0d3ade4d07ad5d11ff98f8d1de621c"}, +{"name":"aws-sdk-kms","version":"1.63.0","platform":"ruby","checksum":"025864a5ca61637efeca31ea92841da65dcb58a3ce87b4d7d9b9ba8644fc076d"}, +{"name":"aws-sdk-s3","version":"1.121.0","platform":"ruby","checksum":"683a3a30a1d426e06beafc7f45bad9cfde529500b49dfd4699f1c49bd219bbe8"}, {"name":"aws-sigv4","version":"1.5.1","platform":"ruby","checksum":"d68c87fff4ee843b4b92b23c7f31f957f254ec6eb064181f7119124aab8b8bb4"}, {"name":"axe-core-api","version":"4.6.0","platform":"ruby","checksum":"1b0ddec3353f108dc10363baf2282f43a5ff7f13d4e25f99071294e78f8a6c62"}, {"name":"axe-core-rspec","version":"4.6.0","platform":"ruby","checksum":"11c25bc9dd388c137ba4e5e63d64d20092bf22c884d8ffc829a22acfbacd747f"}, @@ -67,8 +67,8 @@ {"name":"bullet","version":"7.0.2","platform":"ruby","checksum":"4b7986b366f694bb05d5c1b4ea8ba949a99224d4511bf02f0c3944112f719c81"}, {"name":"bundler-audit","version":"0.7.0.1","platform":"ruby","checksum":"12d853cb0b92fa8868abbb539414d7a33da9e48b792e2ff28271d36c8ace8912"}, {"name":"byebug","version":"11.1.3","platform":"ruby","checksum":"2485944d2bb21283c593d562f9ae1019bf80002143cc3a255aaffd4e9cf4a35b"}, -{"name":"capybara","version":"3.35.3","platform":"ruby","checksum":"3389f8203b05175352b763f4d04c31b29ba606a96224649ac42ef967f56538ee"}, -{"name":"capybara-screenshot","version":"1.0.22","platform":"ruby","checksum":"f86040349a0df7f723123460d9456023f7d693068338991529f10f670fa420f5"}, +{"name":"capybara","version":"3.39.0","platform":"ruby","checksum":"a30994beb4b4f318e39e3dc81e73203bd1edf1f9ef237d82b708eb1c21b56419"}, +{"name":"capybara-screenshot","version":"1.0.26","platform":"ruby","checksum":"816b9370a07752097c82a05f568aaf5d3b7f45c3db5d3aab2014071e1b3c0c77"}, {"name":"carrierwave","version":"1.3.3","platform":"ruby","checksum":"0f0244de2ece54c80745b755993bd26cf47d4650823e5f89c115dbc9d73a13f1"}, {"name":"cbor","version":"0.5.9.6","platform":"ruby","checksum":"434a147658dd1df24ec9e7b3297c1fd4f8a691c97d0e688b3049df8e728b2114"}, {"name":"character_set","version":"1.4.1","platform":"java","checksum":"38b632136b40e02fecba2898497b07ac640cc121f17ac536eaf19873d50053d0"}, @@ -85,7 +85,7 @@ {"name":"coercible","version":"1.0.0","platform":"ruby","checksum":"5081ad24352cc8435ce5472bc2faa30260c7ea7f2102cc6a9f167c4d9bffaadc"}, {"name":"colored2","version":"3.1.2","platform":"ruby","checksum":"b13c2bd7eeae2cf7356a62501d398e72fde78780bd26aec6a979578293c28b4a"}, {"name":"commonmarker","version":"0.23.6","platform":"ruby","checksum":"c8aeaaaff4ba497bf180f762db63a0069794fafb6eff221224c9c8199d337b38"}, -{"name":"concurrent-ruby","version":"1.2.0","platform":"ruby","checksum":"a5e799f71e7490f24a534d58c91380267d0ae306af0cdc518d6848b93475dae2"}, +{"name":"concurrent-ruby","version":"1.2.2","platform":"ruby","checksum":"3879119b8b75e3b62616acc256c64a134d0b0a7a9a3fcba5a233025bcde22c4f"}, {"name":"connection_pool","version":"2.3.0","platform":"ruby","checksum":"677985be912f33c90f98f229aaa0c0ddb2ef8776f21929a36eeeb25251c944da"}, {"name":"cork","version":"0.3.0","platform":"ruby","checksum":"a0a0ac50e262f8514d1abe0a14e95e71c98b24e3378690e5d044daf0013ad4bc"}, {"name":"cose","version":"1.3.0","platform":"ruby","checksum":"63247c66a5bc76e53926756574fe3724cc0a88707e358c90532ae2a320e98601"}, @@ -119,8 +119,8 @@ {"name":"discordrb-webhooks","version":"3.4.2","platform":"ruby","checksum":"cfdba8a4b28236b6ab34e37389f881a59c241aeb5be0a4447249efd4e4383c6e"}, {"name":"docile","version":"1.4.0","platform":"ruby","checksum":"5f1734bde23721245c20c3d723e76c104208e1aa01277a69901ce770f0ebb8d3"}, {"name":"domain_name","version":"0.5.20190701","platform":"ruby","checksum":"000a600454cb4a344769b2f10b531765ea7bd3a304fe47ed12e5ca1eab969851"}, -{"name":"doorkeeper","version":"5.5.4","platform":"ruby","checksum":"7fe233a96f93bf0d5496e2284abf431f38ab465fd65d1972b90cbec7c45b1ea1"}, -{"name":"doorkeeper-openid_connect","version":"1.8.3","platform":"ruby","checksum":"0df2e714508f1f43fdb4669e97b38b90d365a072908427416da943a1a8e00b6e"}, +{"name":"doorkeeper","version":"5.6.6","platform":"ruby","checksum":"2344e86c77770526efcda893b5217aa13d1c7eb1b40de840b58b19eb1ff757e0"}, +{"name":"doorkeeper-openid_connect","version":"1.8.5","platform":"ruby","checksum":"d4ee57687945402843c948cee399c758cdddf04468c42b1fb02a8800dd0627f6"}, {"name":"dotenv","version":"2.7.6","platform":"ruby","checksum":"2451ed5e8e43776d7a787e51d6f8903b98e446146c7ad143d5678cc2c409d547"}, {"name":"dry-configurable","version":"0.12.0","platform":"ruby","checksum":"87a9579a04dfbae73e401d694282800d64bbdb8631cb3e987bfb79b673df7c67"}, {"name":"dry-container","version":"0.7.2","platform":"ruby","checksum":"a071824ba3451048b23500210f96a2b9facd6e46ac687f65e49c75d18786f6da"}, @@ -147,7 +147,7 @@ {"name":"escape_utils","version":"1.2.1","platform":"ruby","checksum":"e5292fe8d7e12a9bcb4502d99e28fb602e4e1514690d98a1c4957f6f77b4b162"}, {"name":"et-orbi","version":"1.2.7","platform":"ruby","checksum":"3b693d47f94a4060ccc07e60adda488759b1e8b9228a633ebbad842dfc245fb4"}, {"name":"ethon","version":"0.15.0","platform":"ruby","checksum":"0809805a035bc10f54162ca99f15ded49e428e0488bcfe1c08c821e18261a74d"}, -{"name":"excon","version":"0.90.0","platform":"ruby","checksum":"01beac0f20652b12de95aef931f72bcb82ffb009e1c34c42a5cf5df93f4070ae"}, +{"name":"excon","version":"0.99.0","platform":"ruby","checksum":"09f0de591b5bd1c642680aa1340538a16b90c1111694b46f61f6d8bfdd340249"}, {"name":"execjs","version":"2.8.1","platform":"ruby","checksum":"6d939919cfd81bcc4d6556f322c3995a70cfe4289ea0bd3b1f999b489c323088"}, {"name":"expgen","version":"0.1.1","platform":"ruby","checksum":"4e6a0f65b210a201d6045debb3e62a24e33251a49f81a11b067d303a60d3a239"}, {"name":"expression_parser","version":"0.9.0","platform":"ruby","checksum":"2b56db3cffc48c3337f4f29f5bc2374c86e7ba29acb40269c74bb55af9f868a4"}, @@ -159,7 +159,7 @@ {"name":"faraday-em_http","version":"1.0.0","platform":"ruby","checksum":"7a3d4c7079789121054f57e08cd4ef7e40ad1549b63101f38c7093a9d6c59689"}, {"name":"faraday-em_synchrony","version":"1.0.0","platform":"ruby","checksum":"460dad1c30cc692d6e77d4c391ccadb4eca4854b315632cd7e560f74275cf9ed"}, {"name":"faraday-excon","version":"1.1.0","platform":"ruby","checksum":"b055c842376734d7f74350fe8611542ae2000c5387348d9ba9708109d6e40940"}, -{"name":"faraday-http-cache","version":"2.4.1","platform":"ruby","checksum":"fb51b2e9ee72f89e81cc277ee574dbc5940f3db95431b3533de9882f92635ee3"}, +{"name":"faraday-http-cache","version":"2.5.0","platform":"ruby","checksum":"64b7366d66e508e1c3dd855ebb20ce9da429330e412a23d9ebbc0a7a7b227463"}, {"name":"faraday-httpclient","version":"1.0.1","platform":"ruby","checksum":"4c8ff1f0973ff835be8d043ef16aaf54f47f25b7578f6d916deee8399a04d33b"}, {"name":"faraday-multipart","version":"1.0.4","platform":"ruby","checksum":"9012021ab57790f7d712f590b48d5f948b19b43cfa11ca83e6459f06090b0725"}, {"name":"faraday-net_http","version":"1.0.1","platform":"ruby","checksum":"3245ce406ebb77b40e17a77bfa66191dda04be2fd4e13a78d8a4305854d328ba"}, @@ -207,20 +207,20 @@ {"name":"gitaly","version":"15.9.0.pre.rc3","platform":"ruby","checksum":"6ac64320a70417131a4b97f5dd45d4e203d60703cc3cba156561e7f8c50a4abe"}, {"name":"gitlab","version":"4.19.0","platform":"ruby","checksum":"3f645e3e195dbc24f0834fbf83e8ccfb2056d8e9712b01a640aad418a6949679"}, {"name":"gitlab-chronic","version":"0.10.5","platform":"ruby","checksum":"f80f18dc699b708870a80685243331290bc10cfeedb6b99c92219722f729c875"}, -{"name":"gitlab-dangerfiles","version":"3.8.0","platform":"ruby","checksum":"7ef0c3205faa38a2ada19ee5b8e4012ea696611aa02564a4a95eaf3fb26d1a7e"}, +{"name":"gitlab-dangerfiles","version":"3.9.0","platform":"ruby","checksum":"37baa9856861b1c6a91d44adcde8654117a5cf2804ad513feffa2a86bda0d78e"}, {"name":"gitlab-experiment","version":"0.7.1","platform":"ruby","checksum":"166dddb3aa83428bcaa93c35684ed01dc4d61f321fd2ae40b020806dc54a7824"}, {"name":"gitlab-fog-azure-rm","version":"1.7.0","platform":"ruby","checksum":"969c67943c54ad4c259a6acd040493f13922fbdf2211bb4eca00e71505263dc2"}, {"name":"gitlab-labkit","version":"0.31.1","platform":"ruby","checksum":"3e3a39370966b5d2739c2d9d9005c0ea27541d32cb7292e856e8bd74c720bffb"}, {"name":"gitlab-license","version":"2.2.1","platform":"ruby","checksum":"39fcf6be8b2887df8afe01b5dcbae8d08b7c5d937ff56b0fb40484a8c4f02d30"}, -{"name":"gitlab-mail_room","version":"0.0.9","platform":"ruby","checksum":"6700374b5c0aa9d9ad4e711aeb677f0b7d415a6d01d3baa699efab25349d851c"}, +{"name":"gitlab-mail_room","version":"0.0.23","platform":"ruby","checksum":"23564fa4dab24ec5011d4c64a801fc0228301d5b0f046a26a1d8e96e36c19997"}, {"name":"gitlab-markup","version":"1.9.0","platform":"ruby","checksum":"7eda045a08ec2d110084252fa13a8c9eac8bdac0e302035ca7db4b82bcbd7ed4"}, -{"name":"gitlab-net-dns","version":"0.9.1","platform":"ruby","checksum":"bcd1a08dcb31b731e8ff602d828de619d2d9f53f5812f6abacf11c720873d4cb"}, -{"name":"gitlab-sidekiq-fetcher","version":"0.9.0","platform":"ruby","checksum":"54041aec059f20c8e6dfce394e1b60e0c0a9c7cef32da912a58abbd333e13897"}, +{"name":"gitlab-net-dns","version":"0.9.2","platform":"ruby","checksum":"f726d978479d43810819f12a45c0906d775a07e34df111bbe693fffbbef3059d"}, {"name":"gitlab-styles","version":"10.0.0","platform":"ruby","checksum":"8a1b20f7b5f351605ff4ed4ec648ef37226f2774d1e1377ed99389448d6913f0"}, {"name":"gitlab_chronic_duration","version":"0.10.6.2","platform":"ruby","checksum":"6dda4cfe7dca9b958f163ac8835c3d9cc70cf8df8cbb89bb2fbf9ba4375105fb"}, {"name":"gitlab_omniauth-ldap","version":"2.2.0","platform":"ruby","checksum":"bb4d20acb3b123ed654a8f6a47d3fac673ece7ed0b6992edb92dca14bad2838c"}, -{"name":"globalid","version":"1.0.0","platform":"ruby","checksum":"1253641b1dc3392721c964351773755d75135d3d3c5cc65d88b0a3880a60bed8"}, +{"name":"globalid","version":"1.1.0","platform":"ruby","checksum":"b337e1746f0c8cb0a6c918234b03a1ddeb4966206ce288fbb57779f59b2d154f"}, {"name":"gon","version":"6.4.0","platform":"ruby","checksum":"e3a618d659392890f1aa7db420f17c75fd7d35aeb5f8fe003697d02c4b88d2f0"}, +{"name":"google-apis-androidpublisher_v3","version":"0.34.0","platform":"ruby","checksum":"d7e1d7dd92f79c498fe2082222a1740d788e022e660c135564b3fd299cab5425"}, {"name":"google-apis-cloudbilling_v1","version":"0.21.0","platform":"ruby","checksum":"ea2d847b4409e2ccd7f8a11a58cfcfdcbfb44ffd81c05768389f67341e291e02"}, {"name":"google-apis-cloudresourcemanager_v1","version":"0.31.0","platform":"ruby","checksum":"f0a472a228c0b9b592741380ce79ead2458ea0066a4b5a78635818b9b62efbbf"}, {"name":"google-apis-compute_v1","version":"0.57.0","platform":"ruby","checksum":"404514548abc3a44f5e96393d6a6d588d287548ecb6f5a886ad76e1beea78068"}, @@ -240,16 +240,16 @@ {"name":"google-cloud-errors","version":"1.3.0","platform":"ruby","checksum":"450b681e24c089a20721a01acc4408bb4a7b0df28c175aaab488da917480d64b"}, {"name":"google-cloud-profiler-v2","version":"0.4.0","platform":"ruby","checksum":"53fc2ab175d08f54233c644310d47798feac996220916815c4fb44c937b5d3e3"}, {"name":"google-cloud-storage","version":"1.44.0","platform":"ruby","checksum":"299a1e055c9277c8120f7c10d21d37e4d8c17c7b963350c0e0bff7e9d9a570ea"}, -{"name":"google-protobuf","version":"3.22.2","platform":"aarch64-linux","checksum":"21357d807fd4b7e6e423dafa98732bf9a2be2767c06ea81a8a7980e71659783a"}, -{"name":"google-protobuf","version":"3.22.2","platform":"arm64-darwin","checksum":"ee4026e3d24d2c584476dd0dd1ff4662589711709ef5a91b82d36c995bb711d1"}, -{"name":"google-protobuf","version":"3.22.2","platform":"java","checksum":"d3d5389755bcf788717f000c9de41bed64fc211c46687dd41ebf7f8545b57962"}, -{"name":"google-protobuf","version":"3.22.2","platform":"ruby","checksum":"d516c13248500fb4e1af469c2d71e8b6ecffacb6f55e9be203f01b7d0ff01eff"}, -{"name":"google-protobuf","version":"3.22.2","platform":"x64-mingw-ucrt","checksum":"c26f38dde5612793db886a19485db7d3037628edf1d35ee8b5ca1ba16c82d005"}, -{"name":"google-protobuf","version":"3.22.2","platform":"x64-mingw32","checksum":"5c36e9f519988af2ac52444f3881fc4f6f6181a6177c01bae7b8ea007c76f80b"}, -{"name":"google-protobuf","version":"3.22.2","platform":"x86-linux","checksum":"ab49eb312d414e9a7231542240a4fddc52ea8c78007b812132a2c1d9ba943e26"}, -{"name":"google-protobuf","version":"3.22.2","platform":"x86-mingw32","checksum":"7fa69f62e182bae2a32f499da9ce8e5d9412d0a5768764967a7c1d0d89492e2e"}, -{"name":"google-protobuf","version":"3.22.2","platform":"x86_64-darwin","checksum":"e716c0fc6c970d82febf2447de2c762d265c288dbc26c3043c30544c8a4d60d9"}, -{"name":"google-protobuf","version":"3.22.2","platform":"x86_64-linux","checksum":"8fd16e0115d01209494767b6182c2a9f5d257d5f3c495c513762555a46f1ab88"}, +{"name":"google-protobuf","version":"3.22.3","platform":"aarch64-linux","checksum":"ea99d1ab641dcf1f8e8b8a7e009f862c7f677c7082cbb4cc846ffe7cf9caeeb1"}, +{"name":"google-protobuf","version":"3.22.3","platform":"arm64-darwin","checksum":"ca1a0b5e3602c91794308bcfb82c83b7319ad9b6507de351a25583cbae57e93f"}, +{"name":"google-protobuf","version":"3.22.3","platform":"java","checksum":"2a5b53d9e95141788c270e32a8e248469798144c3e24f87f9a980682949451ab"}, +{"name":"google-protobuf","version":"3.22.3","platform":"ruby","checksum":"09db2a54fcdf2c8ec04d2c10b2818fd6ee0990578317b42e839811f2fd288ff5"}, +{"name":"google-protobuf","version":"3.22.3","platform":"x64-mingw-ucrt","checksum":"8c232ee5746fe4f12cb6f39aeebb5540b50da153bd3e01233b6a36270faf452a"}, +{"name":"google-protobuf","version":"3.22.3","platform":"x64-mingw32","checksum":"242cb646c7bed779fa7c39e03e62f06144ac88acda24941d0d5065269b642457"}, +{"name":"google-protobuf","version":"3.22.3","platform":"x86-linux","checksum":"e15b535d768cc99ccdf1950b71820e502fc9da4f9e7d41c252d10e7447be81e5"}, +{"name":"google-protobuf","version":"3.22.3","platform":"x86-mingw32","checksum":"225ef058f623c88f7d485eb6cc3e63596744cbe05192a9ee80668af55e04474e"}, +{"name":"google-protobuf","version":"3.22.3","platform":"x86_64-darwin","checksum":"b4a686f2bb39cf8212e2bc8c24897fa69a955c06c9db110a58bb6617e495268f"}, +{"name":"google-protobuf","version":"3.22.3","platform":"x86_64-linux","checksum":"d653acddf65acc714fa1a5e201c476bf12c21f537981527f6200365f97816bd5"}, {"name":"googleapis-common-protos","version":"1.4.0","platform":"ruby","checksum":"da2380fb5ab1563580816c74e8d684ac17512c3654c829a3ee84f6d6139de382"}, {"name":"googleapis-common-protos-types","version":"1.5.0","platform":"ruby","checksum":"5769cf7376abc86ef7f5897a4aaca1d5c5a3c49ddabeddd2c251fcf8155f858b"}, {"name":"googleauth","version":"1.3.0","platform":"ruby","checksum":"51dd7362353cf1e90a2d01e1fb94321ae3926c776d4dc4a79db65230217ffcc2"}, @@ -303,7 +303,7 @@ {"name":"ice_nine","version":"0.11.2","platform":"ruby","checksum":"5d506a7d2723d5592dc121b9928e4931742730131f22a1a37649df1c1e2e63db"}, {"name":"imagen","version":"0.1.8","platform":"ruby","checksum":"fde7b727d4fe79c6bb5ac46c1f7184bf87a6d54df54d712ad2be039d2f93a162"}, {"name":"invisible_captcha","version":"2.0.0","platform":"ruby","checksum":"a381edcb1d1b8744e9dc398ecad142c3e2ab077604645f85eeb02f9ea535c042"}, -{"name":"ipaddr","version":"1.2.2","platform":"ruby","checksum":"27916ee6367d549850d3675bc020f1f1ddafbbe1cfc58635f17dfa56c42f9f79"}, +{"name":"ipaddr","version":"1.2.5","platform":"ruby","checksum":"4e679c71d6d8ed99f925487082f70f9a958de155591caa0e7f6cef9aa160f17a"}, {"name":"ipaddress","version":"0.8.3","platform":"ruby","checksum":"85640c4f9194c26937afc8c78e3074a8e7c97d5d1210358d1440f01034d006f5"}, {"name":"jaeger-client","version":"1.1.0","platform":"ruby","checksum":"cb5e9b9bbee6ee8d6a82d03d947a5b04543d8c0a949c22e484254f18d8a458a8"}, {"name":"jaro_winkler","version":"1.5.4","platform":"java","checksum":"0454333a50b44a09745878bfe57859893631ff7dfe48c029827894944514fe7c"}, @@ -316,7 +316,7 @@ {"name":"json-jwt","version":"1.15.3","platform":"ruby","checksum":"66db4f14e538a774c15502a5b5b26b1f3e7585481bbb96df490aa74b5c2d6110"}, {"name":"json_schemer","version":"0.2.18","platform":"ruby","checksum":"3362c21efbefdd12ce994e541a1e7fdb86fd267a6541dd8715e8a580fe3b6be6"}, {"name":"jsonpath","version":"1.1.2","platform":"ruby","checksum":"6804124c244d04418218acb85b15c7caa79c592d7d6970195300428458946d3a"}, -{"name":"jwt","version":"2.1.0","platform":"ruby","checksum":"7e7e7ffc1a5ebce628ac7da428341c50615a3a10ac47bb74c22c1cba325613f0"}, +{"name":"jwt","version":"2.5.0","platform":"ruby","checksum":"b835fe55287572e1f65128d6c12d3ff7402bb4652c4565bf3ecdcb974db7954d"}, {"name":"kaminari","version":"1.2.2","platform":"ruby","checksum":"c4076ff9adccc6109408333f87b5c4abbda5e39dc464bd4c66d06d9f73442a3e"}, {"name":"kaminari-actionview","version":"1.2.2","platform":"ruby","checksum":"1330f6fc8b59a4a4ef6a549ff8a224797289ebf7a3a503e8c1652535287cc909"}, {"name":"kaminari-activerecord","version":"1.2.2","platform":"ruby","checksum":"0dd3a67bab356a356f36b3b7236bcb81cef313095365befe8e98057dd2472430"}, @@ -327,7 +327,7 @@ {"name":"kramdown-parser-gfm","version":"1.1.0","platform":"ruby","checksum":"fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729"}, {"name":"kubeclient","version":"4.11.0","platform":"ruby","checksum":"4985fcd749fb8c364a668a8350a49821647f03aa52d9ee6cbc582beb8e883fcc"}, {"name":"launchy","version":"2.5.0","platform":"ruby","checksum":"954243c4255920982ce682f89a42e76372dba94770bf09c23a523e204bdebef5"}, -{"name":"lefthook","version":"1.3.3","platform":"ruby","checksum":"8269a799d0abad6aaf188edb66a661c729abe6b74f3d8d660529d51f9ed2dc5d"}, +{"name":"lefthook","version":"1.3.10","platform":"ruby","checksum":"68cd583689b0484eed4e5eee58fb4a8c1b40892821d69cd813f8b38e959a59b3"}, {"name":"letter_opener","version":"1.7.0","platform":"ruby","checksum":"095bc0d58e006e5b43ea7d219e64ecf2de8d1f7d9dafc432040a845cf59b4725"}, {"name":"letter_opener_web","version":"2.0.0","platform":"ruby","checksum":"33860ad41e1785d75456500e8ca8bba8ed71ee6eaf08a98d06bbab67c5577b6f"}, {"name":"libyajl2","version":"1.2.0","platform":"ruby","checksum":"1117cd1e48db013b626e36269bbf1cef210538ca6d2e62d3fa3db9ded005b258"}, @@ -338,13 +338,14 @@ {"name":"locale","version":"2.1.3","platform":"ruby","checksum":"b6ddee011e157817cb98e521b3ce7cb626424d5882f1e844aafdee3e8b212725"}, {"name":"lockbox","version":"1.1.1","platform":"ruby","checksum":"0af16b14c54f791c148615a0115387b51903d868c7fe622f49606c97071c2ac0"}, {"name":"lograge","version":"0.11.2","platform":"ruby","checksum":"4cbd1554b86f545d795eff15a0c24fd25057d2ac4e1caa5fc186168b3da932ef"}, -{"name":"loofah","version":"2.19.1","platform":"ruby","checksum":"6c6469efdefe3496010000a346f9d3bf710e11ac4661e353cf56852326fb1023"}, +{"name":"loofah","version":"2.20.0","platform":"ruby","checksum":"e8fa874c8e2cd2fbdbecc1b6badc3f713639796aaca3f6dd494c4737828a24d6"}, {"name":"lookbook","version":"1.5.3","platform":"ruby","checksum":"4a0ff475af85de0dcdf45a5541fbc40dd8f66669a559efe8297c1d7fee028b38"}, {"name":"lru_redux","version":"1.1.0","platform":"ruby","checksum":"ee71d0ccab164c51de146c27b480a68b3631d5b4297b8ffe8eda1c72de87affb"}, {"name":"lumberjack","version":"1.2.7","platform":"ruby","checksum":"a5c6aae6b4234f1420dbcd80b23e3bca0817bd239440dde097ebe3fa63c63b1f"}, {"name":"mail","version":"2.8.1","platform":"ruby","checksum":"ec3b9fadcf2b3755c78785cb17bc9a0ca9ee9857108a64b6f5cfc9c0b5bfc9ad"}, {"name":"marcel","version":"1.0.2","platform":"ruby","checksum":"a013b677ef46cbcb49fd5c59b3d35803d2ee04dd75d8bfdc43533fc5a31f7e4e"}, {"name":"marginalia","version":"1.11.1","platform":"ruby","checksum":"cb63212ab63e42746e27595e912cb20408a1a28bcd0edde55d15b7c45fa289cf"}, +{"name":"matrix","version":"0.4.2","platform":"ruby","checksum":"71083ccbd67a14a43bfa78d3e4dc0f4b503b9cc18e5b4b1d686dc0f9ef7c4cc0"}, {"name":"memoist","version":"0.16.2","platform":"ruby","checksum":"a52c53a3f25b5875151670b2f3fd44388633486dc0f09f9a7150ead1e3bf3c45"}, {"name":"memory_profiler","version":"1.0.1","platform":"ruby","checksum":"38cdb42f22d9100df2eba0365c199724b58b05c38e765cd764a07392916901b1"}, {"name":"method_source","version":"1.0.0","platform":"ruby","checksum":"d779455a2b5666a079ce58577bfad8534f571af7cec8107f4dce328f0981dede"}, @@ -385,29 +386,29 @@ {"name":"nio4r","version":"2.5.8","platform":"java","checksum":"b2b1800f6bf7ce4b797ca8b639ad278a99c9c904fb087a91d944f38e4bd71401"}, {"name":"nio4r","version":"2.5.8","platform":"ruby","checksum":"3becb4ad95ab8ac0a9bd2e1b16466869402be62848082bf6329ae9091f276676"}, {"name":"no_proxy_fix","version":"0.1.2","platform":"ruby","checksum":"4e9b4c31bb146de7fcf347dc1087bb13ac2039b56d50aa019e61036256abcd00"}, -{"name":"nokogiri","version":"1.14.2","platform":"aarch64-linux","checksum":"966acf4f6c1fba10518f86498141cf44265564ac5a65dcc8496b65f8c354f776"}, -{"name":"nokogiri","version":"1.14.2","platform":"arm-linux","checksum":"8a3a35cadae4a800ddc0b967394257343d62196d9d059b54e38cf067981db428"}, -{"name":"nokogiri","version":"1.14.2","platform":"arm64-darwin","checksum":"81404cd014ecb597725c3847523c2ee365191a968d0b5f7d857e03f388c57631"}, -{"name":"nokogiri","version":"1.14.2","platform":"java","checksum":"0a39222af14e75eb0243e8d969345e03b90c0e02b0f33c61f1ebb6ae53538bb5"}, -{"name":"nokogiri","version":"1.14.2","platform":"ruby","checksum":"c765a74aac6cf430a710bb0b6038b8ee11f177393cd6ae8dadc7a44a6e2658b6"}, -{"name":"nokogiri","version":"1.14.2","platform":"x64-mingw-ucrt","checksum":"62a18f9213a0ceeaf563d1bc7ccfd93273323c4356ded58a5617c59bc4635bc5"}, -{"name":"nokogiri","version":"1.14.2","platform":"x64-mingw32","checksum":"54f6ac2c15a7a88f431bb5e23f4616aa8fc97a92eb63336bcf65b7050f2d3be0"}, -{"name":"nokogiri","version":"1.14.2","platform":"x86-linux","checksum":"c42fa0856f01f901954898e28c3c2b4dce0e843056b1b126f441d06e887e1b77"}, -{"name":"nokogiri","version":"1.14.2","platform":"x86-mingw32","checksum":"f940d9c8e47b0f19875465376f2d1c8911bc9489ac9a48c124579819dc4a7f19"}, -{"name":"nokogiri","version":"1.14.2","platform":"x86_64-darwin","checksum":"2508978f5ca28944919973f6300f0a7355fbe72604ab6a6913f1630be1030265"}, -{"name":"nokogiri","version":"1.14.2","platform":"x86_64-linux","checksum":"bc6405e1f3ddac6e401f82d775f1c0c24c6e58c371b3fadaca0596d5d511e476"}, +{"name":"nokogiri","version":"1.14.3","platform":"aarch64-linux","checksum":"9cc53dd8d92868a0f5bcee44396357a19f95e32d8b9754092622a25bc954c60c"}, +{"name":"nokogiri","version":"1.14.3","platform":"arm-linux","checksum":"320fa1836b8e59e86a804baee534893bcf3b901cc255bbec6d87f3dd3e431610"}, +{"name":"nokogiri","version":"1.14.3","platform":"arm64-darwin","checksum":"67dd4ac33a8cf0967c521fa57e5a5422db39da8a9d131aaa2cd53deaa12be4cd"}, +{"name":"nokogiri","version":"1.14.3","platform":"java","checksum":"13969ec7f41d9cff46fc7707224c55490a519feef7cfea727c6945c5b444caa2"}, +{"name":"nokogiri","version":"1.14.3","platform":"ruby","checksum":"3b1cee0eb8879e9e25b6dd431be597ca68f20283b0d4f4ca986521fad107dc3a"}, +{"name":"nokogiri","version":"1.14.3","platform":"x64-mingw-ucrt","checksum":"9885085249303461ee08f9a9b161d0a570391b8f5be0316b3ac5a6d9a947e1e2"}, +{"name":"nokogiri","version":"1.14.3","platform":"x64-mingw32","checksum":"997943d7582a23ad6e7a0abe081d0d40d2c1319a6b2749f9b30fd18037f0c38a"}, +{"name":"nokogiri","version":"1.14.3","platform":"x86-linux","checksum":"58c30b763aebd62dc4222385509d7f83ac398ee520490fadc4b6d7877e29895a"}, +{"name":"nokogiri","version":"1.14.3","platform":"x86-mingw32","checksum":"e1d58a5c56c34aab71b00901a969e19bf9f7322ee459b4e9380f433213887c04"}, +{"name":"nokogiri","version":"1.14.3","platform":"x86_64-darwin","checksum":"f0a1ed1460a91fd2daf558357f4c0ceac6d994899da1bf98431aeda301e4dc74"}, +{"name":"nokogiri","version":"1.14.3","platform":"x86_64-linux","checksum":"e323a7c654ef846e64582fb6e26f6fed869a96753f8e048ff723e74d8005cb11"}, {"name":"notiffany","version":"0.1.3","platform":"ruby","checksum":"d37669605b7f8dcb04e004e6373e2a780b98c776f8eb503ac9578557d7808738"}, {"name":"numerizer","version":"0.2.0","platform":"ruby","checksum":"e58076d5ee5370417b7e52d9cb25836d62acd1b8d9a194c308707986c1705d7b"}, {"name":"oauth","version":"0.5.6","platform":"ruby","checksum":"4085fe28e0c5e2434135e00a6555294fd2a4ff96a98d1bdecdcd619fc6368dff"}, {"name":"oauth2","version":"2.0.9","platform":"ruby","checksum":"b21f9defcf52dc1610e0dfab4c868342173dcd707fd15c777d9f4f04e153f7fb"}, {"name":"octokit","version":"4.25.1","platform":"ruby","checksum":"c02092ee82dcdfe84db0e0ea630a70d32becc54245a4f0bacfd21c010df09b96"}, -{"name":"ohai","version":"16.10.6","platform":"ruby","checksum":"b835806e585faea4ac8346b68c722fb5fc29a29f73fd7e3a022f9073132dec22"}, +{"name":"ohai","version":"17.9.0","platform":"ruby","checksum":"c59cf16124c0a6481fb85013ec7ec5b398651b6abed782d3e06ab058ce9a5406"}, {"name":"oj","version":"3.13.23","platform":"ruby","checksum":"206dfdc4020ad9974705037f269cfba211d61b7662a58c717cce771829ccef51"}, {"name":"oj-introspect","version":"0.7.2","platform":"ruby","checksum":"c415a44567ed2870d8e963a69421d9322128e194fab7867e37e54d5a25d5333d"}, {"name":"omniauth","version":"2.1.0","platform":"ruby","checksum":"bff7234f5ec9323622b217c7f26d52f850de0b0e2b8c807c3358fc79fe572300"}, {"name":"omniauth-alicloud","version":"2.0.1","platform":"ruby","checksum":"b14c425bca02b4d0f73e710ceb62c0f1f8533e0c427c1c495d2b40f87b3f48d3"}, {"name":"omniauth-atlassian-oauth2","version":"0.2.0","platform":"ruby","checksum":"eb07574a188ab8a03376ce288bce86bc2dd4a1382ffa5781cb5e2b7bc15d76c9"}, -{"name":"omniauth-auth0","version":"2.0.0","platform":"ruby","checksum":"823769be7883b45b2fa94367c2f6a17f7b3b1333986016089c016d45827da545"}, +{"name":"omniauth-auth0","version":"3.1.0","platform":"ruby","checksum":"e77ddaf963812ad5bd48aa60d12bc5030ccc01143a864ee31c2c0ea5a36544bc"}, {"name":"omniauth-azure-activedirectory-v2","version":"2.0.0","platform":"ruby","checksum":"c484cedd52cd233e3c216c4b3ed667ec07d20e51c550a613b65a0f90fe8ad072"}, {"name":"omniauth-dingtalk-oauth2","version":"1.0.1","platform":"ruby","checksum":"6545670f1c38344eaf960df9750c550a9534f790f888af088761a9e04269139b"}, {"name":"omniauth-facebook","version":"4.0.0","platform":"ruby","checksum":"05ae3565c8fdb38df8dab04eb8ca854ea6c18e81591d3e6598ce101293a2f20f"}, @@ -436,10 +437,10 @@ {"name":"parslet","version":"1.8.2","platform":"ruby","checksum":"08d1ab3721cd3f175bfbee8788b2ddff71f92038f2d69bd65454c22bb9fbd98a"}, {"name":"pastel","version":"0.8.0","platform":"ruby","checksum":"481da9fb7d2f6e6b1a08faf11fa10363172dc40fd47848f096ae21209f805a75"}, {"name":"peek","version":"1.1.0","platform":"ruby","checksum":"d6501ead8cde46d8d8ed0d59eb6f0ba713d0a41c11a2c4a81447b2dce37b3ecc"}, -{"name":"pg","version":"1.4.5","platform":"ruby","checksum":"c139bd34907e7bbe3291a9b5e651bcf00de1f8a99a3148c064bc2d1b10b5a6f1"}, -{"name":"pg","version":"1.4.5","platform":"x64-mingw-ucrt","checksum":"614814a4597fed5c4a85e107a96ef6c8ee01b3e7dbc6529912249b7d778e5651"}, -{"name":"pg","version":"1.4.5","platform":"x64-mingw32","checksum":"d9a15cb4ee478bf719fee6ecd6c8b41d5569515ee0d968e561fe120aed862cb1"}, -{"name":"pg","version":"1.4.5","platform":"x86-mingw32","checksum":"255764ff8ac89203cc9dcc7188a4205e760fa7b884d75c94007b79897ee8613d"}, +{"name":"pg","version":"1.4.6","platform":"ruby","checksum":"d98f3dcb4a6ae29780a2219340cb0e55dbafbb7eb4ccc2b99f892f2569a7a61e"}, +{"name":"pg","version":"1.4.6","platform":"x64-mingw-ucrt","checksum":"1efb4f932d5579b87b1c37e0ef49d101925d4f0e3fcf282569aed0382a522b68"}, +{"name":"pg","version":"1.4.6","platform":"x64-mingw32","checksum":"26c4a010fe2cefe61f56f0c4ba9a86b6e99d0965af100f30eaba1602a167af56"}, +{"name":"pg","version":"1.4.6","platform":"x86-mingw32","checksum":"14376f8a122ec58b9e1b4123774e7eafb59222544b7c6cfaa379c6ef28785ae6"}, {"name":"pg_query","version":"2.2.1","platform":"ruby","checksum":"6086972bbf4eab86d8425b35f14ca8b6fe41e4341423582801c1ec86ff5f8cea"}, {"name":"plist","version":"3.6.0","platform":"ruby","checksum":"f468bcf6b72ec6d1585ed6744eb4817c1932a5bf91895ed056e69b7f12ca10f2"}, {"name":"png_quantizator","version":"0.2.1","platform":"ruby","checksum":"6023d4d064125c3a7e02929c95b7320ed6ac0d7341f9e8de0c9ea6576ef3106b"}, @@ -461,7 +462,7 @@ {"name":"raabro","version":"1.4.0","platform":"ruby","checksum":"d4fa9ff5172391edb92b242eed8be802d1934b1464061ae5e70d80962c5da882"}, {"name":"racc","version":"1.6.2","platform":"java","checksum":"0880781e7dfde09e665d0b6160b583e01ed52fcc2955d7891447d33c2d1d2cf1"}, {"name":"racc","version":"1.6.2","platform":"ruby","checksum":"58d26b3666382396fea84d33dc0639b7ee8d704156a52f8f22681f07b2f94f26"}, -{"name":"rack","version":"2.2.6.2","platform":"ruby","checksum":"4be320c0fdea6651f0247dbd4182c1bd8acc06606a6b8935a19ad6a504347763"}, +{"name":"rack","version":"2.2.6.4","platform":"ruby","checksum":"d3d92be402b5881058caccc0975e6d67a1e0ba929d1d144a43daf689169bfce1"}, {"name":"rack-accept","version":"0.4.5","platform":"ruby","checksum":"66247b5449db64ebb93ae2ec4af4764b87d1ae8a7463c7c68893ac13fa8d4da2"}, {"name":"rack-attack","version":"6.6.1","platform":"ruby","checksum":"187e5d248c6a162ed8cafa8241a7b5947d9b9cf122a4870eb1cdd0db861f3a11"}, {"name":"rack-cors","version":"1.1.1","platform":"ruby","checksum":"4702644ac6d63ebbddff372a3cd4cd573513287e3524b5a5415f678970057a4b"}, @@ -520,7 +521,7 @@ {"name":"rspec-parameterized-core","version":"1.0.0","platform":"ruby","checksum":"287b494985e79821160af63aba4f91db8dbfa9a21cb200db34ba38f40e16ccc1"}, {"name":"rspec-parameterized-table_syntax","version":"1.0.0","platform":"ruby","checksum":"d7df951eff9c5dd367ca7d5f9ae4853bb7ab7941f9d5b35bba361d112704988c"}, {"name":"rspec-rails","version":"6.0.1","platform":"ruby","checksum":"016c8ebd5b38ce5cbce949de2f5b28f2bde7bb78d4de26940516713597b26e34"}, -{"name":"rspec-retry","version":"0.6.1","platform":"ruby","checksum":"86b7e8513c5b0c713c2e28854f4d996deb8efa6304eef50f0ad68ee6c563d8da"}, +{"name":"rspec-retry","version":"0.6.2","platform":"ruby","checksum":"6101ba23a38809811ae3484acde4ab481c54d846ac66d5037ccb40131a60d858"}, {"name":"rspec-support","version":"3.12.0","platform":"ruby","checksum":"dd4d44b247ff679b95b5607ac5641d197a5f9b1d33f916123cb98fc5f917c58b"}, {"name":"rspec_junit_formatter","version":"0.6.0","platform":"ruby","checksum":"40dde674e6ae4e6cc0ff560da25497677e34fefd2338cc467a8972f602b62b15"}, {"name":"rspec_profiling","version":"0.0.6","platform":"ruby","checksum":"7a45697f79dcec9a174a0e26703465f6bd52ee78e8d798741240bfcef38f6e6e"}, @@ -533,11 +534,12 @@ {"name":"rubocop-rspec","version":"2.18.1","platform":"ruby","checksum":"41c6455630fc98b809ebca047413389e2b7e3f68975028365c07bfea878db5ee"}, {"name":"ruby-fogbugz","version":"0.3.0","platform":"ruby","checksum":"5e04cde474648f498a71cf1e1a7ab42c66b953862fbe224f793ec0a7a1d5f657"}, {"name":"ruby-magic","version":"0.6.0","platform":"ruby","checksum":"7b2138877b7d23aff812c95564eba6473b74b815ef85beb0eb792e729a2b6101"}, +{"name":"ruby-openai","version":"3.7.0","platform":"ruby","checksum":"fb735d4c055e282ade264cab9864944c05a8a10e0cddd45a0551e8a9851b1850"}, {"name":"ruby-progressbar","version":"1.11.0","platform":"ruby","checksum":"cc127db3866dc414ffccbf92928a241e585b3aa2b758a5563e74a6ee0f57d50a"}, {"name":"ruby-saml","version":"1.13.0","platform":"ruby","checksum":"d31cbdf5fb8fdd6aa3187e48dba3085cfeb751af30276a5739aa3659a66f069c"}, {"name":"ruby-statistics","version":"3.0.0","platform":"ruby","checksum":"610301370346931cb701e3a8d3d3e28eb65681162cae6066c0c11abf20efdc81"}, {"name":"ruby2_keywords","version":"0.0.5","platform":"ruby","checksum":"ffd13740c573b7301cf7a2e61fc857b2a8e3d3aff32545d6f8300d8bae10e3ef"}, -{"name":"ruby_parser","version":"3.19.2","platform":"ruby","checksum":"aaadcedd9263e6c32e0e667f10d4f97dac0a5de313323d1dbb5db612605ff896"}, +{"name":"ruby_parser","version":"3.20.0","platform":"ruby","checksum":"17d0c8bbef7fcdf99b1070bb2555d49111758f75d312e8799f66df831ebdcbe3"}, {"name":"rubyntlm","version":"0.6.3","platform":"ruby","checksum":"5b321456dba3130351f7451f8669f1afa83a0d26fd63cdec285b7b88e667102d"}, {"name":"rubypants","version":"0.2.0","platform":"ruby","checksum":"f07e38eac793655a0323fe91946081052341b9e69807026fcf102346589eedee"}, {"name":"rubyzip","version":"2.3.2","platform":"ruby","checksum":"3f57e3935dc2255c414484fbf8d673b4909d8a6a57007ed754dde39342d2373f"}, @@ -554,11 +556,11 @@ {"name":"sd_notify","version":"0.1.1","platform":"ruby","checksum":"cbc7ac6caa7cedd26b30a72b5eeb6f36050dc0752df263452ea24fb5a4ad3131"}, {"name":"seed-fu","version":"2.3.7","platform":"ruby","checksum":"f19673443e9af799b730e3d4eca6a89b39e5a36825015dffd00d02ea3365cf74"}, {"name":"selenium-webdriver","version":"3.142.7","platform":"ruby","checksum":"dea0993e0e4fdb364f0453144814c0e6099a411d17396807c6cac666d0ddac29"}, -{"name":"sentry-rails","version":"5.1.1","platform":"ruby","checksum":"906ef0a776ddc35884ab8b548856ba81c607e3fdee7c9c9f7c44efccc16a657f"}, +{"name":"semver_dialects","version":"1.2.1","platform":"ruby","checksum":"60a1f67659f79c51a667e8858ec9b089c1e4ce4f6d2a0f0b4ac101916946eb23"}, +{"name":"sentry-rails","version":"5.8.0","platform":"ruby","checksum":"c11b2d909de2c2bfda793c45f64180fd784d54c46886338b683ee3f8efa7731b"}, {"name":"sentry-raven","version":"3.1.2","platform":"ruby","checksum":"103d3b122958810d34898ce2e705bcf549ddb9d855a70ce9a3970ee2484f364a"}, -{"name":"sentry-ruby","version":"5.1.1","platform":"ruby","checksum":"4e49563b72c1c22ffe3a67e5024b856c364766146d01e270423fd494d8fcc125"}, -{"name":"sentry-ruby-core","version":"5.1.1","platform":"ruby","checksum":"152ed891ee78348da448a65237be92990f3e8b9e5b34bb39003eade48cca5d04"}, -{"name":"sentry-sidekiq","version":"5.1.1","platform":"ruby","checksum":"e4c3618577fba37f7a9fc3812013a7868d09e0e0a0970efc605e6e184079d1af"}, +{"name":"sentry-ruby","version":"5.8.0","platform":"ruby","checksum":"caeb121433be379fb94e991a45265a287b13a9a9083e7264f539752369d37110"}, +{"name":"sentry-sidekiq","version":"5.8.0","platform":"ruby","checksum":"90d1123d16a9fc5fd99dbad190b766dd189eaf9e2baddad641f1334e1877c779"}, {"name":"set","version":"1.0.1","platform":"ruby","checksum":"d169fe8df4738e9da1118199429a9cf1ce0ac5e8a3cacc481e2ed24d585419dd"}, {"name":"settingslogic","version":"2.0.9","platform":"ruby","checksum":"5925a91d0d48dfb59a6e48ae2bb9c9b801fe6fab25a8e8d302ce8699d92f2ae6"}, {"name":"sexp_processor","version":"4.16.1","platform":"ruby","checksum":"5caadbf4bbe5ab539cb892a5bcf74ca33a2f2a897cecafdee4a63be79b4819dc"}, @@ -581,7 +583,7 @@ {"name":"solargraph","version":"0.47.2","platform":"ruby","checksum":"87ca4b799b9155c2c31c15954c483e952fdacd800f52d6709b901dd447bcac6a"}, {"name":"sorted_set","version":"1.0.3","platform":"java","checksum":"996283f2e5c6e838825bcdcee31d6306515ae5f24bcb0ee4ce09dfff32919b8c"}, {"name":"sorted_set","version":"1.0.3","platform":"ruby","checksum":"4f2b8bee6e8c59cbd296228c0f1f81679357177a8b6859dcc2a99e86cce6372f"}, -{"name":"spamcheck","version":"1.0.0","platform":"ruby","checksum":"dfeea085184091353e17d729d2f3d714b07cba36aaf64c32dfc35ce9b466fc9c"}, +{"name":"spamcheck","version":"1.3.0","platform":"ruby","checksum":"a46082752257838d8484c844736e309ec499f85dcc51283a5f973b33f1c994f5"}, {"name":"spring","version":"4.1.0","platform":"ruby","checksum":"f17f080fb0df558d663c897a6229ed3d5cc54819ab51876ea6eef49a67f0a3cb"}, {"name":"spring-commands-rspec","version":"1.0.4","platform":"ruby","checksum":"6202e54fa4767452e3641461a83347645af478bf45dddcca9737b43af0dd1a2c"}, {"name":"sprite-factory","version":"1.7.1","platform":"ruby","checksum":"5586524a1aec003241f1abc6852b61433e988aba5ee2b55f906387bf49b01ba2"}, @@ -615,7 +617,7 @@ {"name":"term-ansicolor","version":"1.7.1","platform":"ruby","checksum":"92339ffec77c4bddc786a29385c91601dd52fc68feda23609bba0491229b05f7"}, {"name":"terminal-table","version":"3.0.2","platform":"ruby","checksum":"f951b6af5f3e00203fb290a669e0a85c5dd5b051b3b023392ccfd67ba5abae91"}, {"name":"terser","version":"1.0.2","platform":"ruby","checksum":"80c2e0bc7e2db4e12e8529658f9e0820e13d685ae67d745bf981f269743bb28e"}, -{"name":"test-prof","version":"1.0.7","platform":"ruby","checksum":"7df2ece7acf4f14c52788abdfdefae689b4d1cd84530b2fe7cacadf89cfce0ed"}, +{"name":"test-prof","version":"1.2.1","platform":"ruby","checksum":"ea8ac9b75cecc0be469457f9b4681d6f70e3005ff1313907d8553dd7e5c1f026"}, {"name":"test_file_finder","version":"0.1.4","platform":"ruby","checksum":"bc36d8339eac4fb9dc36514a7c5f4d389ac2fb6d010716fc715c5c8fbb98eacd"}, {"name":"text","version":"1.3.1","platform":"ruby","checksum":"2fbbbc82c1ce79c4195b13018a87cbb00d762bda39241bb3cdc32792759dd3f4"}, {"name":"thor","version":"1.2.1","platform":"ruby","checksum":"b1752153dc9c6b8d3fcaa665e9e1a00a3e73f28da5e238b81c404502e539d446"}, @@ -634,6 +636,7 @@ {"name":"train-core","version":"3.4.9","platform":"ruby","checksum":"d7ad8fa9a379c43a30baaaf1141af1cb28349d386c054f7fc81d169a625d6edd"}, {"name":"truncato","version":"0.7.12","platform":"ruby","checksum":"fed9e8a04fa35fd1a64506cd2089761bae4adfe47e756c3ce98a5c43856c9c4c"}, {"name":"tty-color","version":"0.6.0","platform":"ruby","checksum":"6f9c37ca3a4e2367fb2e6d09722762647d6f455c111f05b59f35730eeb24332a"}, +{"name":"tty-command","version":"0.10.1","platform":"ruby","checksum":"0c6c471fcb932d55518734eb4e2e07e9efdd2918713cc39bb7393ba862471192"}, {"name":"tty-cursor","version":"0.7.1","platform":"ruby","checksum":"79534185e6a777888d88628b14b6a1fdf5154a603f285f80b1753e1908e0bf48"}, {"name":"tty-markdown","version":"0.7.2","platform":"ruby","checksum":"1ed81db97028d006ba81e2cfd9fe0a04b0eb28650ad0d4086ed6e5627f4ac511"}, {"name":"tty-prompt","version":"0.23.1","platform":"ruby","checksum":"fcdbce905238993f27eecfdf67597a636bc839d92192f6a0eef22b8166449ec8"}, @@ -669,8 +672,8 @@ {"name":"warning","version":"1.3.0","platform":"ruby","checksum":"23695a5d8e50bd5c46068931b529bee0b28e4982cbcefbe77d867800dde8069e"}, {"name":"webauthn","version":"3.0.0","platform":"ruby","checksum":"3f77d422c2a8a4b31e56cf42f83414bd066e0506e9896936e1730262dc4a20e6"}, {"name":"webfinger","version":"1.2.0","platform":"ruby","checksum":"7814ef1c85da47514f65c6e5ca14205fa9ce41ea2a70785e0c872842162852a2"}, -{"name":"webmock","version":"3.9.1","platform":"ruby","checksum":"bcf6822456b234fb1bed2b0a89bff31fe0641214b44f6ba4ced2b824cf31337d"}, -{"name":"webrick","version":"1.6.1","platform":"ruby","checksum":"0b4d1eab918f5f53333c690ad470825e51844ce9851e403a3fd47d6a84d9d67c"}, +{"name":"webmock","version":"3.18.1","platform":"ruby","checksum":"54c955df4ae4bec6181dd266eeec632a1808288c633f9551d81bafb53921d2d7"}, +{"name":"webrick","version":"1.8.1","platform":"ruby","checksum":"19411ec6912911fd3df13559110127ea2badd0c035f7762873f58afc803e158f"}, {"name":"websocket-driver","version":"0.7.5","platform":"java","checksum":"fffa83aa188e9ac90e32a385832ec9d26acdf019538e1c7d703f2c8a323b39c8"}, {"name":"websocket-driver","version":"0.7.5","platform":"ruby","checksum":"a280c3f44dcbb0323d58bc78dc49350c05d589ab7d13267fcff08d9d5ae76b28"}, {"name":"websocket-extensions","version":"0.1.5","platform":"ruby","checksum":"1c6ba63092cda343eb53fc657110c71c754c56484aad42578495227d717a8241"}, diff --git a/Gemfile.lock b/Gemfile.lock index b624e39085..cbc11b360a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -91,6 +91,13 @@ PATH nokogiri (>= 1.4.4) omniauth (~> 2.0) +PATH + remote: vendor/gems/sidekiq-reliable-fetch + specs: + gitlab-sidekiq-fetcher (0.9.0) + json (>= 2.5) + sidekiq (~> 6.1) + GEM remote: https://rubygems.org/ specs: @@ -192,27 +199,27 @@ GEM asciidoctor-plantuml (0.0.16) asciidoctor (>= 2.0.17, < 3.0.0) ast (2.4.2) - atlassian-jwt (0.2.0) - jwt (~> 2.1.0) + atlassian-jwt (0.2.1) + jwt (~> 2.1) attr_required (1.0.1) autoprefixer-rails (10.2.5.1) execjs (> 0) awesome_print (1.9.2) awrence (1.2.1) aws-eventstream (1.2.0) - aws-partitions (1.730.0) + aws-partitions (1.733.0) aws-sdk-cloudformation (1.41.0) aws-sdk-core (~> 3, >= 3.99.0) aws-sigv4 (~> 1.1) - aws-sdk-core (3.170.1) + aws-sdk-core (3.171.0) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.651.0) aws-sigv4 (~> 1.5) jmespath (~> 1, >= 1.6.1) - aws-sdk-kms (1.62.0) + aws-sdk-kms (1.63.0) aws-sdk-core (~> 3, >= 3.165.0) aws-sigv4 (~> 1.1) - aws-sdk-s3 (1.119.1) + aws-sdk-s3 (1.121.0) aws-sdk-core (~> 3, >= 3.165.0) aws-sdk-kms (~> 1) aws-sigv4 (~> 1.4) @@ -267,15 +274,16 @@ GEM bundler (>= 1.2.0, < 3) thor (>= 0.18, < 2) byebug (11.1.3) - capybara (3.35.3) + capybara (3.39.0) addressable + matrix mini_mime (>= 0.1.3) nokogiri (~> 1.8) rack (>= 1.6.0) rack-test (>= 0.6.3) regexp_parser (>= 1.5, < 3.0) xpath (~> 3.2) - capybara-screenshot (1.0.22) + capybara-screenshot (1.0.26) capybara (>= 1.0, < 4) launchy carrierwave (1.3.3) @@ -308,7 +316,7 @@ GEM descendants_tracker (~> 0.0.1) colored2 (3.1.2) commonmarker (0.23.6) - concurrent-ruby (1.2.0) + concurrent-ruby (1.2.2) connection_pool (2.3.0) cork (0.3.0) colored2 (~> 3.1) @@ -390,11 +398,11 @@ GEM docile (1.4.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - doorkeeper (5.5.4) + doorkeeper (5.6.6) railties (>= 5) - doorkeeper-openid_connect (1.8.3) + doorkeeper-openid_connect (1.8.5) doorkeeper (>= 5.5, < 5.7) - json-jwt (>= 1.15.0) + jwt (>= 2.5) dotenv (2.7.6) dry-configurable (0.12.0) concurrent-ruby (~> 1.0) @@ -447,7 +455,7 @@ GEM tzinfo ethon (0.15.0) ffi (>= 1.15.0) - excon (0.90.0) + excon (0.99.0) execjs (2.8.1) expgen (0.1.1) parslet @@ -477,7 +485,7 @@ GEM faraday-em_http (1.0.0) faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) - faraday-http-cache (2.4.1) + faraday-http-cache (2.5.0) faraday (>= 0.8) faraday-httpclient (1.0.1) faraday-multipart (1.0.4) @@ -587,7 +595,7 @@ GEM terminal-table (>= 1.5.1) gitlab-chronic (0.10.5) numerizer (~> 0.2) - gitlab-dangerfiles (3.8.0) + gitlab-dangerfiles (3.9.0) danger (>= 8.4.5) danger-gitlab (>= 8.0.0) rake @@ -610,12 +618,12 @@ GEM pg_query (~> 2.1) redis (> 3.0.0, < 6.0.0) gitlab-license (2.2.1) - gitlab-mail_room (0.0.9) + gitlab-mail_room (0.0.23) + jwt (>= 2.0) + net-imap (>= 0.2.1) + oauth2 (>= 1.4.4, < 3) gitlab-markup (1.9.0) - gitlab-net-dns (0.9.1) - gitlab-sidekiq-fetcher (0.9.0) - json (>= 2.5) - sidekiq (~> 6.1) + gitlab-net-dns (0.9.2) gitlab-styles (10.0.0) rubocop (~> 1.43.0) rubocop-graphql (~> 0.18) @@ -629,13 +637,15 @@ GEM omniauth (>= 1.3, < 3) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rubyntlm (~> 0.5) - globalid (1.0.0) + globalid (1.1.0) activesupport (>= 5.0) gon (6.4.0) actionpack (>= 3.0.20) i18n (>= 0.7) multi_json request_store (>= 1.0) + google-apis-androidpublisher_v3 (0.34.0) + google-apis-core (>= 0.9.1, < 2.a) google-apis-cloudbilling_v1 (0.21.0) google-apis-core (>= 0.9.1, < 2.a) google-apis-cloudresourcemanager_v1 (0.31.0) @@ -688,7 +698,7 @@ GEM google-cloud-core (~> 1.6) googleauth (>= 0.16.2, < 2.a) mini_mime (~> 1.0) - google-protobuf (3.22.2) + google-protobuf (3.22.3) googleapis-common-protos (1.4.0) google-protobuf (~> 3.14) googleapis-common-protos-types (~> 1.2) @@ -818,7 +828,7 @@ GEM parser (>= 2.5, != 2.5.1.1) invisible_captcha (2.0.0) rails (>= 5.0) - ipaddr (1.2.2) + ipaddr (1.2.5) ipaddress (0.8.3) jaeger-client (1.1.0) opentracing (~> 0.3) @@ -847,7 +857,7 @@ GEM uri_template (~> 0.7) jsonpath (1.1.2) multi_json - jwt (2.1.0) + jwt (2.5.0) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -875,7 +885,7 @@ GEM rest-client (~> 2.0) launchy (2.5.0) addressable (~> 2.7) - lefthook (1.3.3) + lefthook (1.3.10) letter_opener (1.7.0) launchy (~> 2.2) letter_opener_web (2.0.0) @@ -910,7 +920,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.19.1) + loofah (2.20.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lookbook (1.5.3) @@ -937,6 +947,7 @@ GEM marginalia (1.11.1) actionpack (>= 5.2) activerecord (>= 5.2) + matrix (0.4.2) memoist (0.16.2) memory_profiler (1.0.1) method_source (1.0.0) @@ -993,7 +1004,7 @@ GEM netrc (0.11.0) nio4r (2.5.8) no_proxy_fix (0.1.2) - nokogiri (1.14.2) + nokogiri (1.14.3) mini_portile2 (~> 2.8.0) racc (~> 1.4) notiffany (0.1.3) @@ -1011,16 +1022,16 @@ GEM octokit (4.25.1) faraday (>= 1, < 3) sawyer (~> 0.9) - ohai (16.10.6) - chef-config (>= 12.8, < 17) - chef-utils (>= 16.0, < 17) + ohai (17.9.0) + chef-config (>= 14.12, < 18) + chef-utils (>= 16.0, < 18) ffi (~> 1.9) ffi-yajl (~> 2.2) ipaddress mixlib-cli (>= 1.7.0) mixlib-config (>= 2.0, < 4.0) mixlib-log (>= 2.0.1, < 4.0) - mixlib-shellout (>= 2.0, < 4.0) + mixlib-shellout (~> 3.2, >= 3.2.5) plist (~> 3.1) train-core wmi-lite (~> 1.0) @@ -1036,8 +1047,9 @@ GEM omniauth-atlassian-oauth2 (0.2.0) omniauth (>= 1.1.1) omniauth-oauth2 (>= 1.5) - omniauth-auth0 (2.0.0) - omniauth-oauth2 (~> 1.4) + omniauth-auth0 (3.1.0) + omniauth (~> 2) + omniauth-oauth2 (~> 1) omniauth-azure-activedirectory-v2 (2.0.0) omniauth-oauth2 (~> 1.8) omniauth-dingtalk-oauth2 (1.0.1) @@ -1122,7 +1134,7 @@ GEM tty-color (~> 0.5) peek (1.1.0) railties (>= 4.0.0) - pg (1.4.5) + pg (1.4.6) pg_query (2.2.1) google-protobuf (>= 3.19.2) plist (3.6.0) @@ -1162,7 +1174,7 @@ GEM pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) racc (1.6.2) - rack (2.2.6.2) + rack (2.2.6.4) rack-accept (0.4.5) rack (>= 0.4) rack-attack (6.6.1) @@ -1307,7 +1319,7 @@ GEM rspec-expectations (~> 3.11) rspec-mocks (~> 3.11) rspec-support (~> 3.11) - rspec-retry (0.6.1) + rspec-retry (0.6.2) rspec-core (> 3.3) rspec-support (3.12.0) rspec_junit_formatter (0.6.0) @@ -1348,13 +1360,15 @@ GEM multipart-post (~> 2.0) ruby-magic (0.6.0) mini_portile2 (~> 2.8) + ruby-openai (3.7.0) + httparty (>= 0.18.1) ruby-progressbar (1.11.0) ruby-saml (1.13.0) nokogiri (>= 1.10.5) rexml ruby-statistics (3.0.0) ruby2_keywords (0.0.5) - ruby_parser (3.19.2) + ruby_parser (3.20.0) sexp_processor (~> 4.16) rubyntlm (0.6.3) rubypants (0.2.0) @@ -1389,18 +1403,19 @@ GEM selenium-webdriver (3.142.7) childprocess (>= 0.5, < 4.0) rubyzip (>= 1.2.2) - sentry-rails (5.1.1) + semver_dialects (1.2.1) + pastel (~> 0.8.0) + thor (~> 1.2.0) + tty-command (~> 0.10.1) + sentry-rails (5.8.0) railties (>= 5.0) - sentry-ruby-core (~> 5.1.1) + sentry-ruby (~> 5.8.0) sentry-raven (3.1.2) faraday (>= 1.0) - sentry-ruby (5.1.1) + sentry-ruby (5.8.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-ruby-core (= 5.1.1) - sentry-ruby-core (5.1.1) - concurrent-ruby - sentry-sidekiq (5.1.1) - sentry-ruby-core (~> 5.1.1) + sentry-sidekiq (5.8.0) + sentry-ruby (~> 5.8.0) sidekiq (>= 3.0) set (1.0.1) settingslogic (2.0.9) @@ -1455,7 +1470,7 @@ GEM sorted_set (1.0.3) rbtree set (~> 1.0) - spamcheck (1.0.0) + spamcheck (1.3.0) grpc (~> 1.0) spring (4.1.0) spring-commands-rspec (1.0.4) @@ -1505,7 +1520,7 @@ GEM unicode-display_width (>= 1.1.1, < 3) terser (1.0.2) execjs (>= 0.3.0, < 3) - test-prof (1.0.7) + test-prof (1.2.1) test_file_finder (0.1.4) faraday (~> 1.0) text (1.3.1) @@ -1537,6 +1552,8 @@ GEM htmlentities (~> 4.3.1) nokogiri (>= 1.7.0, <= 2.0) tty-color (0.6.0) + tty-command (0.10.1) + pastel (~> 0.8) tty-cursor (0.7.1) tty-markdown (0.7.2) kramdown (>= 1.16.2, < 3.0) @@ -1613,11 +1630,11 @@ GEM webfinger (1.2.0) activesupport httpclient (>= 2.4) - webmock (3.9.1) - addressable (>= 2.3.6) + webmock (3.18.1) + addressable (>= 2.8.0) crack (>= 0.3.2) hashdiff (>= 0.4.0, < 2.0.0) - webrick (1.6.1) + webrick (1.8.1) websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) @@ -1660,8 +1677,8 @@ DEPENDENCIES autoprefixer-rails (= 10.2.5.1) awesome_print aws-sdk-cloudformation (~> 1) - aws-sdk-core (~> 3.170.1) - aws-sdk-s3 (~> 1.119.1) + aws-sdk-core (~> 3.171.0) + aws-sdk-s3 (~> 1.121.0) axe-core-rspec babosa (~> 1.0.4) base32 (~> 0.3.0) @@ -1675,8 +1692,8 @@ DEPENDENCIES bullet (~> 7.0.2) bundler-audit (~> 0.7.0.1) bundler-checksum (~> 0.1.0)! - capybara (~> 3.35.3) - capybara-screenshot (~> 1.0.22) + capybara (~> 3.39) + capybara-screenshot (~> 1.0.26) carrierwave (~> 1.3) charlock_holmes (~> 0.7.7) cloud_profiler_agent (~> 0.0.0)! @@ -1699,8 +1716,8 @@ DEPENDENCIES diff_match_patch (~> 0.1.0) diffy (~> 3.4) discordrb-webhooks (~> 3.4) - doorkeeper (~> 5.5) - doorkeeper-openid_connect (~> 1.8) + doorkeeper (~> 5.6, >= 5.6.6) + doorkeeper-openid_connect (~> 1.8, >= 1.8.5) duo_api (~> 1.3) ed25519 (~> 1.3.0) elasticsearch-api (= 7.13.3) @@ -1729,19 +1746,20 @@ DEPENDENCIES gettext_i18n_rails_js (~> 1.3) gitaly (~> 15.9.0.pre.rc3) gitlab-chronic (~> 0.10.5) - gitlab-dangerfiles (~> 3.8.0) + gitlab-dangerfiles (~> 3.9.0) gitlab-experiment (~> 0.7.1) gitlab-fog-azure-rm (~> 1.7.0) gitlab-labkit (~> 0.31.1) gitlab-license (~> 2.2.1) - gitlab-mail_room (~> 0.0.9) + gitlab-mail_room (~> 0.0.23) gitlab-markup (~> 1.9.0) - gitlab-net-dns (~> 0.9.1) - gitlab-sidekiq-fetcher (= 0.9.0) + gitlab-net-dns (~> 0.9.2) + gitlab-sidekiq-fetcher! gitlab-styles (~> 10.0.0) gitlab_chronic_duration (~> 0.10.6.2) gitlab_omniauth-ldap (~> 2.2.0) gon (~> 6.4.0) + google-apis-androidpublisher_v3 (~> 0.34.0) google-apis-cloudbilling_v1 (~> 0.21.0) google-apis-cloudresourcemanager_v1 (~> 0.31.0) google-apis-compute_v1 (~> 0.57.0) @@ -1752,7 +1770,7 @@ DEPENDENCIES google-apis-serviceusage_v1 (~> 0.28.0) google-apis-sqladmin_v1beta4 (~> 0.41.0) google-cloud-storage (~> 1.44.0) - google-protobuf (~> 3.22, >= 3.22.2) + google-protobuf (~> 3.22, >= 3.22.3) gpgme (~> 2.0.22) grape (~> 1.5.2) grape-entity (~> 0.10.0) @@ -1778,27 +1796,27 @@ DEPENDENCIES httparty (~> 0.20.0) icalendar invisible_captcha (~> 2.0.0) - ipaddr (= 1.2.2) + ipaddr (~> 1.2.5) ipaddress (~> 0.8.3) ipynbdiff! jira-ruby (~> 2.1.4) js_regex (~> 3.8) json (~> 2.6.3) json_schemer (~> 0.2.18) - jwt (~> 2.1.0) + jwt (~> 2.5) kaminari (~> 1.2.2) kas-grpc (~> 0.0.2) knapsack (~> 1.21.1) kramdown (~> 2.3.1) kubeclient (~> 4.11.0) - lefthook (~> 1.3.3) + lefthook (~> 1.3.10) letter_opener_web (~> 2.0.0) license_finder (~> 7.0) licensee (~> 9.15) listen (~> 3.7) lockbox (~> 1.1.1) lograge (~> 0.5) - loofah (~> 2.19.1) + loofah (~> 2.20.0) lookbook (~> 1.5, >= 1.5.3) lru_redux mail (= 2.8.1) @@ -1812,16 +1830,16 @@ DEPENDENCIES net-ldap (~> 0.17.1) net-ntp net-protocol (~> 0.1.3) - nokogiri (~> 1.14.2) + nokogiri (~> 1.14.3) oauth2 (~> 2.0) octokit (~> 4.15) - ohai (~> 16.10) + ohai (~> 17.9) oj (~> 3.13.21) oj-introspect (~> 0.7) omniauth (~> 2.1.0) omniauth-alicloud (~> 2.0.1) omniauth-atlassian-oauth2 (~> 0.2.0) - omniauth-auth0 (~> 2.0.0) + omniauth-auth0 (~> 3.1) omniauth-azure-activedirectory-v2 (~> 2.0) omniauth-azure-oauth2 (~> 0.0.9)! omniauth-cas3 (~> 1.1.4)! @@ -1843,7 +1861,7 @@ DEPENDENCIES parallel (~> 1.19) parslet (~> 1.8) peek (~> 1.1) - pg (~> 1.4.5) + pg (~> 1.4.6) pg_query (~> 2.2, >= 2.2.1) png_quantizator (~> 0.2.1) premailer-rails (~> 1.10.3) @@ -1853,7 +1871,7 @@ DEPENDENCIES pry-shell (~> 0.6.1) puma (~> 5.6.5) puma_worker_killer (~> 0.3.1) - rack (~> 2.2.6, >= 2.2.6.2) + rack (~> 2.2.6, >= 2.2.6.4) rack-attack (~> 6.6.1) rack-cors (~> 1.1.1) rack-oauth2 (~> 1.21.3) @@ -1879,26 +1897,28 @@ DEPENDENCIES rspec-benchmark (~> 0.6.0) rspec-parameterized (~> 1.0) rspec-rails (~> 6.0.1) - rspec-retry (~> 0.6.1) + rspec-retry (~> 0.6.2) rspec_junit_formatter rspec_profiling (~> 0.0.6) rubocop ruby-fogbugz (~> 0.3.0) ruby-magic (~> 0.6) + ruby-openai (~> 3.7) ruby-progressbar (~> 1.10) ruby-saml (~> 1.13.0) - ruby_parser (~> 3.19) + ruby_parser (~> 3.20) rubyzip (~> 2.3.2) rugged (~> 1.5) sanitize (~> 6.0) sassc-rails (~> 2.1.0) sd_notify (~> 0.1.0) seed-fu (~> 2.3.7) - selenium-webdriver (~> 3.142) - sentry-rails (~> 5.1.1) + selenium-webdriver (~> 3.142, >= 3.142.7) + semver_dialects (~> 1.2.1) + sentry-rails (~> 5.8.0) sentry-raven (~> 3.1) - sentry-ruby (~> 5.1.1) - sentry-sidekiq (~> 5.1.1) + sentry-ruby (~> 5.8.0) + sentry-sidekiq (~> 5.8.0) settingslogic (~> 2.0.9) shoulda-matchers (~> 5.1.0) sidekiq (~> 6.5.7) @@ -1911,7 +1931,7 @@ DEPENDENCIES slack-messenger (~> 2.3.4) snowplow-tracker (~> 0.8.0) solargraph (~> 0.47.2) - spamcheck (~> 1.0.0) + spamcheck (~> 1.3.0) spring (~> 4.1.0) spring-commands-rspec (~> 1.0.4) sprite-factory (~> 1.7) @@ -1923,7 +1943,7 @@ DEPENDENCIES tanuki_emoji (~> 0.6) telesignenterprise (~> 2.2) terser (= 1.0.2) - test-prof (~> 1.0.7) + test-prof (~> 1.2.1) test_file_finder (~> 0.1.3) thrift (>= 0.16.0) timfel-krb5-auth (~> 0.8) @@ -1941,10 +1961,10 @@ DEPENDENCIES vmstat (~> 2.3.0) warning (~> 1.3.0) webauthn (~> 3.0) - webmock (~> 3.9.1) - webrick (~> 1.6.1) + webmock (~> 3.18.1) + webrick (~> 1.8.1) wikicloth (= 0.8.1) yajl-ruby (~> 1.4.3) BUNDLED WITH - 2.4.8 + 2.4.12 diff --git a/VERSION b/VERSION index 4058f0a252..7b10f109c5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -15.10.8 \ No newline at end of file +15.11.6 \ No newline at end of file diff --git a/app/assets/images/ci_favicons/canary/favicon_status_canceled.ico b/app/assets/images/ci_favicons/canary/favicon_status_canceled.ico deleted file mode 100644 index 48b1095370..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_canceled.ico and /dev/null differ diff --git a/app/assets/images/ci_favicons/canary/favicon_status_created.ico b/app/assets/images/ci_favicons/canary/favicon_status_created.ico deleted file mode 100644 index 623c728faf..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_created.ico and /dev/null differ diff --git a/app/assets/images/ci_favicons/canary/favicon_status_failed.ico b/app/assets/images/ci_favicons/canary/favicon_status_failed.ico deleted file mode 100644 index 3073fe5a76..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_failed.ico and /dev/null differ diff --git a/app/assets/images/ci_favicons/canary/favicon_status_manual.ico b/app/assets/images/ci_favicons/canary/favicon_status_manual.ico deleted file mode 100644 index 6c713d7b67..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_manual.ico and /dev/null differ diff --git a/app/assets/images/ci_favicons/canary/favicon_status_not_found.ico b/app/assets/images/ci_favicons/canary/favicon_status_not_found.ico deleted file mode 100644 index dbf855fdaf..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_not_found.ico and /dev/null differ diff --git a/app/assets/images/ci_favicons/canary/favicon_status_pending.ico b/app/assets/images/ci_favicons/canary/favicon_status_pending.ico deleted file mode 100644 index ccd00606ae..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_pending.ico and /dev/null differ diff --git a/app/assets/images/ci_favicons/canary/favicon_status_preparing.ico b/app/assets/images/ci_favicons/canary/favicon_status_preparing.ico deleted file mode 100644 index 6cdf3ae2e3..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_preparing.ico and /dev/null differ diff --git a/app/assets/images/ci_favicons/canary/favicon_status_running.ico b/app/assets/images/ci_favicons/canary/favicon_status_running.ico deleted file mode 100644 index 968e7c4c2d..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_running.ico and /dev/null differ diff --git a/app/assets/images/ci_favicons/canary/favicon_status_scheduled.ico b/app/assets/images/ci_favicons/canary/favicon_status_scheduled.ico deleted file mode 100644 index 5444b8e41d..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_scheduled.ico and /dev/null differ diff --git a/app/assets/images/ci_favicons/canary/favicon_status_skipped.ico b/app/assets/images/ci_favicons/canary/favicon_status_skipped.ico deleted file mode 100644 index 7e3be35cc3..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_skipped.ico and /dev/null differ diff --git a/app/assets/images/ci_favicons/canary/favicon_status_success.ico b/app/assets/images/ci_favicons/canary/favicon_status_success.ico deleted file mode 100644 index a1fb6e91d6..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_success.ico and /dev/null differ diff --git a/app/assets/images/ci_favicons/canary/favicon_status_warning.ico b/app/assets/images/ci_favicons/canary/favicon_status_warning.ico deleted file mode 100644 index 5d931619fb..0000000000 Binary files a/app/assets/images/ci_favicons/canary/favicon_status_warning.ico and /dev/null differ diff --git a/app/assets/images/mr_favicons/favicon_status_merged.png b/app/assets/images/mr_favicons/favicon_status_merged.png new file mode 100644 index 0000000000..0acb2e463a Binary files /dev/null and b/app/assets/images/mr_favicons/favicon_status_merged.png differ diff --git a/app/assets/javascripts/access_level/constants.js b/app/assets/javascripts/access_level/constants.js new file mode 100644 index 0000000000..02a4a3c2f1 --- /dev/null +++ b/app/assets/javascripts/access_level/constants.js @@ -0,0 +1,20 @@ +import { __ } from '~/locale'; + +// Matches `lib/gitlab/access.rb` +export const ACCESS_LEVEL_NO_ACCESS_INTEGER = 0; +export const ACCESS_LEVEL_MINIMAL_ACCESS_INTEGER = 5; +export const ACCESS_LEVEL_GUEST_INTEGER = 10; +export const ACCESS_LEVEL_REPORTER_INTEGER = 20; +export const ACCESS_LEVEL_DEVELOPER_INTEGER = 30; +export const ACCESS_LEVEL_MAINTAINER_INTEGER = 40; +export const ACCESS_LEVEL_OWNER_INTEGER = 50; + +export const ACCESS_LEVEL_LABELS = { + [ACCESS_LEVEL_NO_ACCESS_INTEGER]: __('No access'), + [ACCESS_LEVEL_MINIMAL_ACCESS_INTEGER]: __('Minimal Access'), + [ACCESS_LEVEL_GUEST_INTEGER]: __('Guest'), + [ACCESS_LEVEL_REPORTER_INTEGER]: __('Reporter'), + [ACCESS_LEVEL_DEVELOPER_INTEGER]: __('Developer'), + [ACCESS_LEVEL_MAINTAINER_INTEGER]: __('Maintainer'), + [ACCESS_LEVEL_OWNER_INTEGER]: __('Owner'), +}; diff --git a/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue b/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue index c66b595ffd..a5f8f36960 100644 --- a/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue +++ b/app/assets/javascripts/add_context_commits_modal/components/add_context_commits_modal_wrapper.vue @@ -1,10 +1,15 @@ + + diff --git a/app/assets/javascripts/add_context_commits_modal/store/actions.js b/app/assets/javascripts/add_context_commits_modal/store/actions.js index de9c7488ac..f085b0d0e5 100644 --- a/app/assets/javascripts/add_context_commits_modal/store/actions.js +++ b/app/assets/javascripts/add_context_commits_modal/store/actions.js @@ -1,8 +1,11 @@ import _ from 'lodash'; +import * as Sentry from '@sentry/browser'; import Api from '~/api'; import { createAlert } from '~/alert'; import axios from '~/lib/utils/axios_utils'; import { s__ } from '~/locale'; +import { joinPaths } from '~/lib/utils/url_utility'; +import { ACTIVE_AND_BLOCKED_USER_STATES } from '~/users_select/constants'; import * as types from './mutation_types'; export const setBaseConfig = ({ commit }, options) => { @@ -11,14 +14,14 @@ export const setBaseConfig = ({ commit }, options) => { export const setTabIndex = ({ commit }, tabIndex) => commit(types.SET_TABINDEX, tabIndex); -export const searchCommits = ({ dispatch, commit, state }, searchText) => { +export const searchCommits = ({ dispatch, commit, state }, search = {}) => { commit(types.FETCH_COMMITS); let params = {}; - if (searchText) { + if (search) { params = { params: { - search: searchText, + ...search, per_page: 40, }, }; @@ -37,7 +40,7 @@ export const searchCommits = ({ dispatch, commit, state }, searchText) => { } return c; }); - if (!searchText) { + if (!search) { dispatch('setCommits', { commits: [...commits, ...state.contextCommits] }); } else { dispatch('setCommits', { commits }); @@ -131,6 +134,23 @@ export const setSelectedCommits = ({ commit }, selected) => { commit(types.SET_SELECTED_COMMITS, selectedCommits); }; +export const fetchAuthors = ({ dispatch, state }, author = null) => { + const { projectId } = state; + return axios + .get(joinPaths(gon.relative_url_root || '', '/-/autocomplete/users.json'), { + params: { + project_id: projectId, + states: ACTIVE_AND_BLOCKED_USER_STATES, + search: author, + }, + }) + .then(({ data }) => data) + .catch((error) => { + Sentry.captureException(error); + dispatch('receiveAuthorsError'); + }); +}; + export const setSearchText = ({ commit }, searchText) => commit(types.SET_SEARCH_TEXT, searchText); export const setToRemoveCommits = ({ commit }, data) => commit(types.SET_TO_REMOVE_COMMITS, data); diff --git a/app/assets/javascripts/add_context_commits_modal/store/index.js b/app/assets/javascripts/add_context_commits_modal/store/index.js index 0bf3441379..560834a26a 100644 --- a/app/assets/javascripts/add_context_commits_modal/store/index.js +++ b/app/assets/javascripts/add_context_commits_modal/store/index.js @@ -1,5 +1,6 @@ import Vue from 'vue'; import Vuex from 'vuex'; +import filters from '~/vue_shared/components/filtered_search_bar/store/modules/filters'; import * as actions from './actions'; import mutations from './mutations'; import state from './state'; @@ -12,4 +13,5 @@ export default () => state: state(), actions, mutations, + modules: { filters }, }); diff --git a/app/assets/javascripts/add_context_commits_modal/store/state.js b/app/assets/javascripts/add_context_commits_modal/store/state.js index 37239adccb..fed3148bc9 100644 --- a/app/assets/javascripts/add_context_commits_modal/store/state.js +++ b/app/assets/javascripts/add_context_commits_modal/store/state.js @@ -1,4 +1,5 @@ export default () => ({ + projectId: '', contextCommitsPath: '', tabIndex: 0, isLoadingCommits: false, diff --git a/app/assets/javascripts/admin/abuse_reports/components/abuse_report_actions.vue b/app/assets/javascripts/admin/abuse_reports/components/abuse_report_actions.vue new file mode 100644 index 0000000000..f2271f8af2 --- /dev/null +++ b/app/assets/javascripts/admin/abuse_reports/components/abuse_report_actions.vue @@ -0,0 +1,148 @@ + + + diff --git a/app/assets/javascripts/admin/abuse_reports/components/abuse_report_details.vue b/app/assets/javascripts/admin/abuse_reports/components/abuse_report_details.vue new file mode 100644 index 0000000000..f49411604f --- /dev/null +++ b/app/assets/javascripts/admin/abuse_reports/components/abuse_report_details.vue @@ -0,0 +1,66 @@ + + + diff --git a/app/assets/javascripts/admin/abuse_reports/components/abuse_report_row.vue b/app/assets/javascripts/admin/abuse_reports/components/abuse_report_row.vue index a4211002f7..a9fe59a7b8 100644 --- a/app/assets/javascripts/admin/abuse_reports/components/abuse_report_row.vue +++ b/app/assets/javascripts/admin/abuse_reports/components/abuse_report_row.vue @@ -1,11 +1,20 @@ - diff --git a/app/assets/javascripts/admin/users/components/actions/activate.vue b/app/assets/javascripts/admin/users/components/actions/activate.vue index 0099c8da8e..af09c7618e 100644 --- a/app/assets/javascripts/admin/users/components/actions/activate.vue +++ b/app/assets/javascripts/admin/users/components/actions/activate.vue @@ -1,5 +1,5 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/approve.vue b/app/assets/javascripts/admin/users/components/actions/approve.vue index 52560ebe5b..2060528c7a 100644 --- a/app/assets/javascripts/admin/users/components/actions/approve.vue +++ b/app/assets/javascripts/admin/users/components/actions/approve.vue @@ -1,5 +1,5 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/ban.vue b/app/assets/javascripts/admin/users/components/actions/ban.vue index 203d076914..d7bdceb479 100644 --- a/app/assets/javascripts/admin/users/components/actions/ban.vue +++ b/app/assets/javascripts/admin/users/components/actions/ban.vue @@ -1,5 +1,5 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/block.vue b/app/assets/javascripts/admin/users/components/actions/block.vue index d50b76aaa9..534e1c76b8 100644 --- a/app/assets/javascripts/admin/users/components/actions/block.vue +++ b/app/assets/javascripts/admin/users/components/actions/block.vue @@ -1,5 +1,5 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/deactivate.vue b/app/assets/javascripts/admin/users/components/actions/deactivate.vue index ab1069601d..40911131d6 100644 --- a/app/assets/javascripts/admin/users/components/actions/deactivate.vue +++ b/app/assets/javascripts/admin/users/components/actions/deactivate.vue @@ -1,5 +1,5 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/delete.vue b/app/assets/javascripts/admin/users/components/actions/delete.vue index d4f9ff4e52..83aa78c9f0 100644 --- a/app/assets/javascripts/admin/users/components/actions/delete.vue +++ b/app/assets/javascripts/admin/users/components/actions/delete.vue @@ -1,11 +1,11 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/delete_with_contributions.vue b/app/assets/javascripts/admin/users/components/actions/delete_with_contributions.vue index 413804c9a3..24f0cac73f 100644 --- a/app/assets/javascripts/admin/users/components/actions/delete_with_contributions.vue +++ b/app/assets/javascripts/admin/users/components/actions/delete_with_contributions.vue @@ -1,5 +1,5 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/reject.vue b/app/assets/javascripts/admin/users/components/actions/reject.vue index 2b9c4acfcb..7f78699170 100644 --- a/app/assets/javascripts/admin/users/components/actions/reject.vue +++ b/app/assets/javascripts/admin/users/components/actions/reject.vue @@ -1,5 +1,5 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/unban.vue b/app/assets/javascripts/admin/users/components/actions/unban.vue index 42b6fb3bdd..f84c7594f8 100644 --- a/app/assets/javascripts/admin/users/components/actions/unban.vue +++ b/app/assets/javascripts/admin/users/components/actions/unban.vue @@ -1,5 +1,5 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/unblock.vue b/app/assets/javascripts/admin/users/components/actions/unblock.vue index f94e128a94..064f05ef8b 100644 --- a/app/assets/javascripts/admin/users/components/actions/unblock.vue +++ b/app/assets/javascripts/admin/users/components/actions/unblock.vue @@ -1,12 +1,12 @@ diff --git a/app/assets/javascripts/admin/users/components/actions/unlock.vue b/app/assets/javascripts/admin/users/components/actions/unlock.vue index c78c260b4f..039ab3d651 100644 --- a/app/assets/javascripts/admin/users/components/actions/unlock.vue +++ b/app/assets/javascripts/admin/users/components/actions/unlock.vue @@ -1,12 +1,12 @@ diff --git a/app/assets/javascripts/admin/users/components/user_actions.vue b/app/assets/javascripts/admin/users/components/user_actions.vue index c1fb80959c..38c7d3f9b9 100644 --- a/app/assets/javascripts/admin/users/components/user_actions.vue +++ b/app/assets/javascripts/admin/users/components/user_actions.vue @@ -1,10 +1,9 @@ - diff --git a/app/assets/javascripts/authentication/password/components/password_input.vue b/app/assets/javascripts/authentication/password/components/password_input.vue new file mode 100644 index 0000000000..7808620cca --- /dev/null +++ b/app/assets/javascripts/authentication/password/components/password_input.vue @@ -0,0 +1,82 @@ + + + diff --git a/app/assets/javascripts/authentication/password/constants.js b/app/assets/javascripts/authentication/password/constants.js new file mode 100644 index 0000000000..97e1a882d9 --- /dev/null +++ b/app/assets/javascripts/authentication/password/constants.js @@ -0,0 +1,8 @@ +import { __, s__ } from '~/locale'; + +export const SHOW_PASSWORD = __('Show password'); +export const HIDE_PASSWORD = __('Hide password'); + +export const PASSWORD_TITLE = s__( + 'SignUp|Minimum length is %{minimum_password_length} characters.', +); diff --git a/app/assets/javascripts/authentication/password/index.js b/app/assets/javascripts/authentication/password/index.js new file mode 100644 index 0000000000..36e3b74263 --- /dev/null +++ b/app/assets/javascripts/authentication/password/index.js @@ -0,0 +1,32 @@ +import Vue from 'vue'; +import GlFieldErrors from '~/gl_field_errors'; +import PasswordInput from './components/password_input.vue'; + +export const initTogglePasswordVisibility = () => { + const el = document.querySelector('.js-password'); + + if (!el) { + return null; + } + + const { form } = el; + const { resourceName, minimumPasswordLength, qaSelector } = el.dataset; + + // eslint-disable-next-line no-new + new Vue({ + el, + name: 'PasswordInputRoot', + render(createElement) { + return createElement(PasswordInput, { + props: { + resourceName, + minimumPasswordLength, + qaSelector, + }, + }); + }, + }); + + // Since we replaced password input, we need to re-initialize the field errors handler + return new GlFieldErrors(form); +}; diff --git a/app/assets/javascripts/authentication/two_factor_auth/components/manage_two_factor_form.vue b/app/assets/javascripts/authentication/two_factor_auth/components/manage_two_factor_form.vue index 98ed2a3173..907b68e6ff 100644 --- a/app/assets/javascripts/authentication/two_factor_auth/components/manage_two_factor_form.vue +++ b/app/assets/javascripts/authentication/two_factor_auth/components/manage_two_factor_form.vue @@ -7,7 +7,6 @@ export const i18n = { currentPassword: __('Current password'), confirmTitle: __('Are you sure?'), confirmWebAuthn: __('This will invalidate your registered applications and WebAuthn devices.'), - confirm: __('This will invalidate your registered applications and WebAuthn devices.'), disableTwoFactor: __('Disable two-factor authentication'), disable: __('Disable'), cancel: __('Cancel'), @@ -41,7 +40,6 @@ export default { GlModal, }, inject: [ - 'webauthnEnabled', 'isCurrentPasswordRequired', 'profileTwoFactorAuthPath', 'profileTwoFactorAuthMethod', @@ -59,11 +57,7 @@ export default { }, computed: { confirmText() { - if (this.webauthnEnabled) { - return i18n.confirmWebAuthn; - } - - return i18n.confirm; + return i18n.confirmWebAuthn; }, }, methods: { diff --git a/app/assets/javascripts/authentication/two_factor_auth/index.js b/app/assets/javascripts/authentication/two_factor_auth/index.js index 7d21c19ac4..cec80335ba 100644 --- a/app/assets/javascripts/authentication/two_factor_auth/index.js +++ b/app/assets/javascripts/authentication/two_factor_auth/index.js @@ -13,7 +13,6 @@ export const initManageTwoFactorForm = () => { } const { - webauthnEnabled = false, currentPasswordRequired, profileTwoFactorAuthPath = '', profileTwoFactorAuthMethod = '', @@ -26,7 +25,6 @@ export const initManageTwoFactorForm = () => { return new Vue({ el, provide: { - webauthnEnabled, isCurrentPasswordRequired, profileTwoFactorAuthPath, profileTwoFactorAuthMethod, diff --git a/app/assets/javascripts/batch_comments/components/submit_dropdown.vue b/app/assets/javascripts/batch_comments/components/submit_dropdown.vue index beda251aa1..107796a31e 100644 --- a/app/assets/javascripts/batch_comments/components/submit_dropdown.vue +++ b/app/assets/javascripts/batch_comments/components/submit_dropdown.vue @@ -1,19 +1,10 @@ @@ -126,14 +113,6 @@ export default {
{ const el = document.getElementById('js-review-bar'); + if (!el) return; + Vue.use(VueApollo); // eslint-disable-next-line no-new @@ -18,7 +20,7 @@ export const initReviewBar = () => { ReviewBar: () => import('./components/review_bar.vue'), }, provide: { - newSavedRepliesPath: el.dataset.savedRepliesNewPath, + newCommentTemplatePath: el.dataset.newCommentTemplatePath, }, computed: { ...mapGetters('batchComments', ['draftsCount']), diff --git a/app/assets/javascripts/behaviors/date_picker.js b/app/assets/javascripts/behaviors/date_picker.js index 11fe01ca48..89f1ad9c89 100644 --- a/app/assets/javascripts/behaviors/date_picker.js +++ b/app/assets/javascripts/behaviors/date_picker.js @@ -9,7 +9,7 @@ export default function initDatePickers() { const calendar = new Pikaday({ field: $datePicker.get(0), - theme: 'gitlab-theme animate-picker', + theme: 'gl-datepicker-theme animate-picker', format: 'yyyy-mm-dd', container: $datePicker.parent().get(0), parse: (dateString) => parsePikadayDate(dateString), diff --git a/app/assets/javascripts/behaviors/markdown/render_math.js b/app/assets/javascripts/behaviors/markdown/render_math.js index b1bf6ebcb1..b2348cf0ba 100644 --- a/app/assets/javascripts/behaviors/markdown/render_math.js +++ b/app/assets/javascripts/behaviors/markdown/render_math.js @@ -97,7 +97,7 @@ class SafeMathRenderer {
- @@ -184,17 +184,24 @@ class SafeMathRenderer { attachEvents() { document.body.addEventListener('click', (event) => { - if (!event.target.classList.contains('js-lazy-render-math')) { + const alert = event.target.closest('.js-lazy-render-math-container'); + + if (!alert) { return; } - const parent = event.target.closest('.js-lazy-render-math-container'); + // Handle alert close + if (event.target.closest('.js-close')) { + alert.remove(); + return; + } - const pre = parent.nextElementSibling; - - parent.remove(); - - this.renderElement(pre); + // Handle "render anyway" + if (event.target.classList.contains('js-lazy-render-math')) { + const pre = alert.nextElementSibling; + alert.remove(); + this.renderElement(pre); + } }); } } diff --git a/app/assets/javascripts/behaviors/shortcuts/shortcuts.js b/app/assets/javascripts/behaviors/shortcuts/shortcuts.js index 6a7ce4f1c4..301dd1c566 100644 --- a/app/assets/javascripts/behaviors/shortcuts/shortcuts.js +++ b/app/assets/javascripts/behaviors/shortcuts/shortcuts.js @@ -204,7 +204,11 @@ export default class Shortcuts { } static focusSearch(e) { - $('#search').focus(); + if (gon.use_new_navigation) { + document.querySelector('#super-sidebar-search')?.click(); + } else { + document.querySelector('#search')?.focus(); + } if (e.preventDefault) { e.preventDefault(); diff --git a/app/assets/javascripts/blob/sketch_viewer.js b/app/assets/javascripts/blob/sketch_viewer.js index 2c1c6339fd..834aa3e535 100644 --- a/app/assets/javascripts/blob/sketch_viewer.js +++ b/app/assets/javascripts/blob/sketch_viewer.js @@ -1,8 +1,7 @@ -/* eslint-disable no-new */ import SketchLoader from './sketch'; export default () => { const el = document.getElementById('js-sketch-viewer'); - new SketchLoader(el); + new SketchLoader(el); // eslint-disable-line no-new }; diff --git a/app/assets/javascripts/blob/template_selector.js b/app/assets/javascripts/blob/template_selector.js index 7eb699eacb..59b7f82c10 100644 --- a/app/assets/javascripts/blob/template_selector.js +++ b/app/assets/javascripts/blob/template_selector.js @@ -1,5 +1,3 @@ -/* eslint-disable class-methods-use-this */ - import $ from 'jquery'; import initDeprecatedJQueryDropdown from '~/deprecated_jquery_dropdown'; import { loadingIconForLegacyJS } from '~/loading_icon_for_legacy_js'; @@ -70,6 +68,7 @@ export default class TemplateSelector { return this.requestFile(item); } + // eslint-disable-next-line class-methods-use-this requestFile() { // This `requestFile` method is an abstract method that should // be added by all subclasses. diff --git a/app/assets/javascripts/blob_edit/blob_bundle.js b/app/assets/javascripts/blob_edit/blob_bundle.js index 01d35a0980..7e66740955 100644 --- a/app/assets/javascripts/blob_edit/blob_bundle.js +++ b/app/assets/javascripts/blob_edit/blob_bundle.js @@ -1,5 +1,3 @@ -/* eslint-disable no-new */ - import $ from 'jquery'; import initPopover from '~/blob/suggest_gitlab_ci_yml'; import { createAlert } from '~/alert'; @@ -54,6 +52,7 @@ export default () => { import('./edit_blob') .then(({ default: EditBlob } = {}) => { + // eslint-disable-next-line no-new new EditBlob({ assetsPath: `${urlRoot}${assetsPath}`, filePath, @@ -80,7 +79,7 @@ export default () => { window.onbeforeunload = null; }); - new NewCommitForm(editBlobForm); + new NewCommitForm(editBlobForm); // eslint-disable-line no-new // returning here blocks page navigation window.onbeforeunload = () => ''; diff --git a/app/assets/javascripts/boards/components/board_app.vue b/app/assets/javascripts/boards/components/board_app.vue index 48dfcf81f1..c7e6cb38d1 100644 --- a/app/assets/javascripts/boards/components/board_app.vue +++ b/app/assets/javascripts/boards/components/board_app.vue @@ -4,6 +4,7 @@ import { refreshCurrentPage, queryToObject } from '~/lib/utils/url_utility'; import BoardContent from '~/boards/components/board_content.vue'; import BoardSettingsSidebar from '~/boards/components/board_settings_sidebar.vue'; import BoardTopBar from '~/boards/components/board_top_bar.vue'; +import activeBoardItemQuery from 'ee_else_ce/boards/graphql/client/active_board_item.query.graphql'; export default { components: { @@ -11,7 +12,7 @@ export default { BoardSettingsSidebar, BoardTopBar, }, - inject: ['initialBoardId', 'initialFilterParams'], + inject: ['initialBoardId', 'initialFilterParams', 'isIssueBoard', 'isApolloBoard'], data() { return { boardId: this.initialBoardId, @@ -19,11 +20,31 @@ export default { isShowingEpicsSwimlanes: Boolean(queryToObject(window.location.search).group_by), }; }, + apollo: { + activeBoardItem: { + query: activeBoardItemQuery, + variables() { + return { + isIssue: this.isIssueBoard, + }; + }, + skip() { + return !this.isApolloBoard; + }, + }, + }, + computed: { ...mapGetters(['isSidebarOpen']), isSwimlanesOn() { return (gon?.licensed_features?.swimlanes && this.isShowingEpicsSwimlanes) ?? false; }, + isAnySidebarOpen() { + if (this.isApolloBoard) { + return this.activeBoardItem?.id; + } + return this.isSidebarOpen; + }, }, created() { window.addEventListener('popstate', refreshCurrentPage); @@ -45,7 +66,7 @@ export default { diff --git a/app/assets/javascripts/boards/components/issue_due_date.vue b/app/assets/javascripts/boards/components/issue_due_date.vue index c3f7c7d3ca..1f28974afd 100644 --- a/app/assets/javascripts/boards/components/issue_due_date.vue +++ b/app/assets/javascripts/boards/components/issue_due_date.vue @@ -95,9 +95,12 @@ export default { class="board-card-info-icon gl-mr-2" name="calendar" /> - + {{ __('Due date') }} diff --git a/app/assets/javascripts/boards/components/issue_time_estimate.vue b/app/assets/javascripts/boards/components/issue_time_estimate.vue index bc12717a92..611e875fa4 100644 --- a/app/assets/javascripts/boards/components/issue_time_estimate.vue +++ b/app/assets/javascripts/boards/components/issue_time_estimate.vue @@ -38,7 +38,7 @@ export default { - + +import { GlButton, GlSprintf } from '@gitlab/ui'; +import { + I18N_BULK_DELETE_BANNER, + I18N_BULK_DELETE_CLEAR_SELECTION, + I18N_BULK_DELETE_DELETE_SELECTED, +} from '../constants'; + +export default { + name: 'ArtifactsBulkDelete', + components: { + GlButton, + GlSprintf, + }, + props: { + selectedArtifacts: { + type: Array, + required: true, + }, + }, + computed: { + checkedCount() { + return this.selectedArtifacts.length || 0; + }, + }, + i18n: { + banner: I18N_BULK_DELETE_BANNER, + clearSelection: I18N_BULK_DELETE_CLEAR_SELECTION, + deleteSelected: I18N_BULK_DELETE_DELETE_SELECTED, + }, +}; + + diff --git a/app/assets/javascripts/artifacts/components/artifacts_table_row_details.vue b/app/assets/javascripts/ci/artifacts/components/artifacts_table_row_details.vue similarity index 100% rename from app/assets/javascripts/artifacts/components/artifacts_table_row_details.vue rename to app/assets/javascripts/ci/artifacts/components/artifacts_table_row_details.vue diff --git a/app/assets/javascripts/ci/artifacts/components/bulk_delete_modal.vue b/app/assets/javascripts/ci/artifacts/components/bulk_delete_modal.vue new file mode 100644 index 0000000000..00f5b2eab7 --- /dev/null +++ b/app/assets/javascripts/ci/artifacts/components/bulk_delete_modal.vue @@ -0,0 +1,73 @@ + + diff --git a/app/assets/javascripts/artifacts/components/feedback_banner.vue b/app/assets/javascripts/ci/artifacts/components/feedback_banner.vue similarity index 100% rename from app/assets/javascripts/artifacts/components/feedback_banner.vue rename to app/assets/javascripts/ci/artifacts/components/feedback_banner.vue diff --git a/app/assets/javascripts/artifacts/components/job_artifacts_table.vue b/app/assets/javascripts/ci/artifacts/components/job_artifacts_table.vue similarity index 77% rename from app/assets/javascripts/artifacts/components/job_artifacts_table.vue rename to app/assets/javascripts/ci/artifacts/components/job_artifacts_table.vue index ba4026190a..a93964eef9 100644 --- a/app/assets/javascripts/artifacts/components/job_artifacts_table.vue +++ b/app/assets/javascripts/ci/artifacts/components/job_artifacts_table.vue @@ -11,12 +11,15 @@ import { GlFormCheckbox, } from '@gitlab/ui'; import { createAlert } from '~/alert'; -import { getIdFromGraphQLId } from '~/graphql_shared/utils'; +import { getIdFromGraphQLId, convertToGraphQLId } from '~/graphql_shared/utils'; import TimeAgo from '~/vue_shared/components/time_ago_tooltip.vue'; import CiIcon from '~/vue_shared/components/ci_icon.vue'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; +import { TYPENAME_PROJECT } from '~/graphql_shared/constants'; import getJobArtifactsQuery from '../graphql/queries/get_job_artifacts.query.graphql'; import { totalArtifactsSizeForJob, mapArchivesToJobNodes, mapBooleansToJobNodes } from '../utils'; +import bulkDestroyJobArtifactsMutation from '../graphql/mutations/bulk_destroy_job_artifacts.mutation.graphql'; +import { removeArtifactFromStore } from '../graphql/cache_update'; import { STATUS_BADGE_VARIANTS, I18N_DOWNLOAD, @@ -36,10 +39,13 @@ import { JOBS_PER_PAGE, INITIAL_LAST_PAGE_SIZE, BULK_DELETE_FEATURE_FLAG, + I18N_BULK_DELETE_ERROR, + I18N_BULK_DELETE_PARTIAL_ERROR, I18N_BULK_DELETE_CONFIRMATION_TOAST, } from '../constants'; import JobCheckbox from './job_checkbox.vue'; import ArtifactsBulkDelete from './artifacts_bulk_delete.vue'; +import BulkDeleteModal from './bulk_delete_modal.vue'; import ArtifactsTableRowDetails from './artifacts_table_row_details.vue'; import FeedbackBanner from './feedback_banner.vue'; @@ -67,11 +73,12 @@ export default { TimeAgo, JobCheckbox, ArtifactsBulkDelete, + BulkDeleteModal, ArtifactsTableRowDetails, FeedbackBanner, }, mixins: [glFeatureFlagsMixin()], - inject: ['projectPath', 'canDestroyArtifacts'], + inject: ['projectId', 'projectPath', 'canDestroyArtifacts'], apollo: { jobArtifacts: { query: getJobArtifactsQuery, @@ -106,6 +113,9 @@ export default { expandedJobs: [], selectedArtifacts: [], pagination: INITIAL_PAGINATION_STATE, + isBulkDeleteModalVisible: false, + jobArtifactsToDelete: [], + isBulkDeleting: false, }; }, computed: { @@ -144,6 +154,12 @@ export default { canBulkDestroyArtifacts() { return this.glFeatures[BULK_DELETE_FEATURE_FLAG] && this.canDestroyArtifacts; }, + isDeletingArtifactsForJob() { + return this.jobArtifactsToDelete.length > 0; + }, + artifactsToDelete() { + return this.isDeletingArtifactsForJob ? this.jobArtifactsToDelete : this.selectedArtifacts; + }, }, methods: { refetchArtifacts() { @@ -191,12 +207,70 @@ export default { this.selectedArtifacts.splice(this.selectedArtifacts.indexOf(artifactNode.id), 1); } }, + onConfirmBulkDelete(e) { + // don't close modal until deletion is complete + if (e) { + e.preventDefault(); + } + this.isBulkDeleting = true; + + this.$apollo + .mutate({ + mutation: bulkDestroyJobArtifactsMutation, + variables: { + projectId: convertToGraphQLId(TYPENAME_PROJECT, this.projectId), + ids: this.artifactsToDelete, + }, + update: (store, { data }) => { + const { errors, destroyedCount, destroyedIds } = data.bulkDestroyJobArtifacts; + if (errors?.length) { + createAlert({ + message: I18N_BULK_DELETE_PARTIAL_ERROR, + captureError: true, + error: new Error(errors.join(' ')), + }); + } + if (destroyedIds?.length) { + this.$toast.show(I18N_BULK_DELETE_CONFIRMATION_TOAST(destroyedCount)); + + // Remove deleted artifacts from the cache + destroyedIds.forEach((id) => { + removeArtifactFromStore(store, id, getJobArtifactsQuery, this.queryVariables); + }); + store.gc(); + + if (!this.isDeletingArtifactsForJob) { + this.clearSelectedArtifacts(); + } + } + }, + }) + .catch((error) => { + this.onError(error); + }) + .finally(() => { + this.isBulkDeleting = false; + this.isBulkDeleteModalVisible = false; + this.jobArtifactsToDelete = []; + }); + }, + onError(error) { + createAlert({ + message: I18N_BULK_DELETE_ERROR, + captureError: true, + error, + }); + }, + handleBulkDeleteModalShow() { + this.isBulkDeleteModalVisible = true; + }, + handleBulkDeleteModalHidden() { + this.isBulkDeleteModalVisible = false; + this.jobArtifactsToDelete = []; + }, clearSelectedArtifacts() { this.selectedArtifacts = []; }, - showDeletedToast(deletedCount) { - this.$toast.show(I18N_BULK_DELETE_CONFIRMATION_TOAST(deletedCount)); - }, downloadPath(job) { return job.archive?.downloadPath; }, @@ -206,6 +280,13 @@ export default { browseButtonDisabled(job) { return !job.browseArtifactsPath; }, + deleteButtonDisabled(job) { + return !job.hasArtifacts || !this.canBulkDestroyArtifacts; + }, + deleteArtifactsForJob(job) { + this.jobArtifactsToDelete = job.artifacts.nodes.map((node) => node.id); + this.handleBulkDeleteModalShow(); + }, }, fields: [ { @@ -257,11 +338,17 @@ export default {
+ diff --git a/app/assets/javascripts/artifacts/components/job_checkbox.vue b/app/assets/javascripts/ci/artifacts/components/job_checkbox.vue similarity index 100% rename from app/assets/javascripts/artifacts/components/job_checkbox.vue rename to app/assets/javascripts/ci/artifacts/components/job_checkbox.vue diff --git a/app/assets/javascripts/artifacts/constants.js b/app/assets/javascripts/ci/artifacts/constants.js similarity index 100% rename from app/assets/javascripts/artifacts/constants.js rename to app/assets/javascripts/ci/artifacts/constants.js diff --git a/app/assets/javascripts/artifacts/graphql/cache_update.js b/app/assets/javascripts/ci/artifacts/graphql/cache_update.js similarity index 100% rename from app/assets/javascripts/artifacts/graphql/cache_update.js rename to app/assets/javascripts/ci/artifacts/graphql/cache_update.js diff --git a/app/assets/javascripts/artifacts/graphql/mutations/bulk_destroy_job_artifacts.mutation.graphql b/app/assets/javascripts/ci/artifacts/graphql/mutations/bulk_destroy_job_artifacts.mutation.graphql similarity index 100% rename from app/assets/javascripts/artifacts/graphql/mutations/bulk_destroy_job_artifacts.mutation.graphql rename to app/assets/javascripts/ci/artifacts/graphql/mutations/bulk_destroy_job_artifacts.mutation.graphql diff --git a/app/assets/javascripts/artifacts/graphql/mutations/destroy_artifact.mutation.graphql b/app/assets/javascripts/ci/artifacts/graphql/mutations/destroy_artifact.mutation.graphql similarity index 100% rename from app/assets/javascripts/artifacts/graphql/mutations/destroy_artifact.mutation.graphql rename to app/assets/javascripts/ci/artifacts/graphql/mutations/destroy_artifact.mutation.graphql diff --git a/app/assets/javascripts/artifacts/graphql/queries/get_build_artifacts_size.query.graphql b/app/assets/javascripts/ci/artifacts/graphql/queries/get_build_artifacts_size.query.graphql similarity index 100% rename from app/assets/javascripts/artifacts/graphql/queries/get_build_artifacts_size.query.graphql rename to app/assets/javascripts/ci/artifacts/graphql/queries/get_build_artifacts_size.query.graphql diff --git a/app/assets/javascripts/artifacts/graphql/queries/get_job_artifacts.query.graphql b/app/assets/javascripts/ci/artifacts/graphql/queries/get_job_artifacts.query.graphql similarity index 100% rename from app/assets/javascripts/artifacts/graphql/queries/get_job_artifacts.query.graphql rename to app/assets/javascripts/ci/artifacts/graphql/queries/get_job_artifacts.query.graphql diff --git a/app/assets/javascripts/artifacts/index.js b/app/assets/javascripts/ci/artifacts/index.js similarity index 100% rename from app/assets/javascripts/artifacts/index.js rename to app/assets/javascripts/ci/artifacts/index.js diff --git a/app/assets/javascripts/artifacts/utils.js b/app/assets/javascripts/ci/artifacts/utils.js similarity index 100% rename from app/assets/javascripts/artifacts/utils.js rename to app/assets/javascripts/ci/artifacts/utils.js diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_environments_dropdown.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_environments_dropdown.vue index 7387a49017..09b0206838 100644 --- a/app/assets/javascripts/ci/ci_variable_list/components/ci_environments_dropdown.vue +++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_environments_dropdown.vue @@ -1,16 +1,25 @@ @@ -450,7 +460,7 @@ export default { data-testid="aws-guidance-tip" @dismiss="dismissTip" > -
+

@@ -505,7 +515,6 @@ export default { ref="deleteCiVariable" variant="danger" category="secondary" - data-qa-selector="ci_variable_delete_button" @click="deleteVarAndClose" >{{ __('Delete variable') }} diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_settings.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_settings.vue index 257c3309e1..26e20c690b 100644 --- a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_settings.vue +++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_settings.vue @@ -9,6 +9,10 @@ export default { CiVariableModal, }, props: { + areEnvironmentsLoading: { + type: Boolean, + required: true, + }, areScopedVariablesAvailable: { type: Boolean, required: false, @@ -100,6 +104,7 @@ export default { />

diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_shared.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_shared.vue index 9db9bea63b..ee2c0a771c 100644 --- a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_shared.vue +++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_shared.vue @@ -6,8 +6,10 @@ import { mapEnvironmentNames, reportMessageToSentry } from '../utils'; import { ADD_MUTATION_ACTION, DELETE_MUTATION_ACTION, + ENVIRONMENT_QUERY_LIMIT, SORT_DIRECTIONS, UPDATE_MUTATION_ACTION, + mapMutationActionToToast, environmentFetchErrorText, genericMutationErrorText, variableFetchErrorText, @@ -162,6 +164,7 @@ export default { variables() { return { fullPath: this.fullPath, + ...this.environmentQueryVariables, }; }, update(data) { @@ -173,10 +176,26 @@ export default { }, }, computed: { + areEnvironmentsLoading() { + return this.$apollo.queries.environments.loading; + }, + environmentQueryVariables() { + if (this.glFeatures?.ciLimitEnvironmentScope) { + return { + first: ENVIRONMENT_QUERY_LIMIT, + search: '', + }; + } + + return {}; + }, isLoading() { + // TODO: Remove areEnvironmentsLoading and show loading icon in dropdown when + // environment query is loading and FF is enabled + // https://gitlab.com/gitlab-org/gitlab/-/issues/396990 return ( (this.$apollo.queries.ciVariables.loading && this.isInitialLoading) || - this.$apollo.queries.environments.loading || + this.areEnvironmentsLoading || this.isLoadingMoreItems ); }, @@ -228,6 +247,11 @@ export default { updateVariable(variable) { this.variableMutation(UPDATE_MUTATION_ACTION, variable); }, + async searchEnvironmentScope(searchTerm) { + if (this.glFeatures?.ciLimitEnvironmentScope) { + this.$apollo.queries.environments.refetch({ search: searchTerm }); + } + }, async variableMutation(mutationAction, variable) { try { const currentMutation = this.mutationData[mutationAction]; @@ -245,11 +269,15 @@ export default { if (data.ciVariableMutation?.errors?.length) { const { errors } = data.ciVariableMutation; createAlert({ message: errors[0] }); - } else if (this.refetchAfterMutation) { - // The writing to cache for admin variable is not working - // because there is no ID in the cache at the top level. - // We therefore need to manually refetch. - this.$apollo.queries.ciVariables.refetch(); + } else { + this.$toast.show(mapMutationActionToToast[mutationAction](variable.key)); + + if (this.refetchAfterMutation) { + // The writing to cache for admin variable is not working + // because there is no ID in the cache at the top level. + // We therefore need to manually refetch. + this.$apollo.queries.ciVariables.refetch(); + } } } catch (e) { createAlert({ message: genericMutationErrorText }); @@ -264,6 +292,7 @@ export default { diff --git a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_table.vue b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_table.vue index 5e367ff33b..6f6c55e07c 100644 --- a/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_table.vue +++ b/app/assets/javascripts/ci/ci_variable_list/components/ci_variable_table.vue @@ -175,12 +175,7 @@ export default { v-if="glFeatures.ciVariablesPages" class="ci-variable-actions gl-display-flex gl-justify-content-end gl-my-3" > - {{ valuesButtonText }} + {{ valuesButtonText }} {{ __('Add variable') }} - {{ valuesButtonText }} + {{ valuesButtonText }}
+ sprintf(s__('CiVariable|Variable %{key} has been successfully added.'), { key }); +export const UPDATE_VARIABLE_TOAST = (key) => + sprintf(s__('CiVariable|Variable %{key} has been updated.'), { key }); +export const DELETE_VARIABLE_TOAST = (key) => + sprintf(s__('CiVariable|Variable %{key} has been deleted.'), { key }); + +export const mapMutationActionToToast = { + [ADD_MUTATION_ACTION]: ADD_VARIABLE_TOAST, + [UPDATE_MUTATION_ACTION]: UPDATE_VARIABLE_TOAST, + [DELETE_MUTATION_ACTION]: DELETE_VARIABLE_TOAST, +}; + export const EXPANDED_VARIABLES_NOTE = __( '%{codeStart}$%{codeEnd} will be treated as the start of a reference to another variable.', ); diff --git a/app/assets/javascripts/ci/ci_variable_list/graphql/queries/project_environments.query.graphql b/app/assets/javascripts/ci/ci_variable_list/graphql/queries/project_environments.query.graphql index 921e0ca25b..26d1b6a3aa 100644 --- a/app/assets/javascripts/ci/ci_variable_list/graphql/queries/project_environments.query.graphql +++ b/app/assets/javascripts/ci/ci_variable_list/graphql/queries/project_environments.query.graphql @@ -1,7 +1,7 @@ -query getProjectEnvironments($fullPath: ID!) { +query getProjectEnvironments($fullPath: ID!, $first: Int, $search: String) { project(fullPath: $fullPath) { id - environments { + environments(first: $first, search: $search) { nodes { id name diff --git a/app/assets/javascripts/ci/pipeline_editor/components/commit/commit_form.vue b/app/assets/javascripts/ci/pipeline_editor/components/commit/commit_form.vue index 4775836fcc..3fe9103c2b 100644 --- a/app/assets/javascripts/ci/pipeline_editor/components/commit/commit_form.vue +++ b/app/assets/javascripts/ci/pipeline_editor/components/commit/commit_form.vue @@ -146,7 +146,7 @@ export default { -
+
+import { GlAccordionItem, GlFormInput, GlFormGroup, GlButton } from '@gitlab/ui'; +import { get, toPath } from 'lodash'; +import { i18n } from '../constants'; + +export default { + i18n, + components: { + GlFormGroup, + GlAccordionItem, + GlFormInput, + GlButton, + }, + props: { + job: { + type: Object, + required: true, + }, + }, + computed: { + formOptions() { + return [ + { + key: 'artifacts.paths', + title: i18n.ARTIFACTS_AND_CACHE, + paths: this.job.artifacts.paths, + generateInputDataTestId: (index) => `artifacts-paths-input-${index}`, + generateDeleteButtonDataTestId: (index) => `delete-artifacts-paths-button-${index}`, + addButtonDataTestId: 'add-artifacts-paths-button', + }, + { + key: 'artifacts.exclude', + title: i18n.ARTIFACTS_EXCLUDE_PATHS, + paths: this.job.artifacts.exclude, + generateInputDataTestId: (index) => `artifacts-exclude-input-${index}`, + generateDeleteButtonDataTestId: (index) => `delete-artifacts-exclude-button-${index}`, + addButtonDataTestId: 'add-artifacts-exclude-button', + }, + { + key: 'cache.paths', + title: i18n.CACHE_PATHS, + paths: this.job.cache.paths, + generateInputDataTestId: (index) => `cache-paths-input-${index}`, + generateDeleteButtonDataTestId: (index) => `delete-cache-paths-button-${index}`, + addButtonDataTestId: 'add-cache-paths-button', + }, + ]; + }, + }, + methods: { + deleteStringArrayItem(path) { + const parentPath = toPath(path).slice(0, -1); + const array = get(this.job, parentPath); + if (array.length <= 1) { + return; + } + this.$emit('update-job', path); + }, + }, +}; + + diff --git a/app/assets/javascripts/ci/pipeline_editor/components/job_assistant_drawer/accordion_items/image_item.vue b/app/assets/javascripts/ci/pipeline_editor/components/job_assistant_drawer/accordion_items/image_item.vue index c2ae7d7be4..c23a0b866d 100644 --- a/app/assets/javascripts/ci/pipeline_editor/components/job_assistant_drawer/accordion_items/image_item.vue +++ b/app/assets/javascripts/ci/pipeline_editor/components/job_assistant_drawer/accordion_items/image_item.vue @@ -20,14 +20,20 @@ export default {