From 9bf56c16214cad0bac280c8b70f71a6e528ae8e5 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Tue, 5 Mar 2024 18:13:48 +0000 Subject: [PATCH] Add latest changes from gitlab-org/gitlab@master --- .gitlab/ci/as-if-foss.gitlab-ci.yml | 1 + .gitlab/ci/rails/shared.gitlab-ci.yml | 30 ++++++++----- .gitlab/ci/rules.gitlab-ci.yml | 8 +++- .../merge_request_templates/Deprecations.md | 2 +- .markdownlint.yml | 2 - Gemfile | 4 +- Gemfile.checksum | 2 +- Gemfile.lock | 8 ++-- .../services/autocomplete_helper.js | 2 +- .../pages/projects/usage_quotas/index.js | 23 ++-------- .../javascripts/usage_quotas/constants.js | 2 +- .../usage_quotas/group_view_metadata.js | 5 ++- app/assets/javascripts/usage_quotas/index.js | 7 ++- .../usage_quotas/project_view_metadata.js | 6 +++ .../usage_quotas/storage/tab_metadata.js | 45 +++++++++++++++++-- .../javascripts/usage_quotas/storage/utils.js | 2 +- app/mailers/emails/remote_mirrors.rb | 1 + app/models/event.rb | 8 +--- app/serializers/stage_entity.rb | 5 +-- .../ci/trigger_downstream_pipeline_service.rb | 6 +-- app/views/groups/usage_quotas/index.html.haml | 2 +- ...emote_mirror_update_failed_email.html.haml | 2 +- ...remote_mirror_update_failed_email.text.erb | 2 +- .../projects/usage_quotas/index.html.haml | 20 ++++----- .../ci_rate_limit_downstream_pipelines.yml | 9 ---- ...preload_ci_bridge_downstream_pipelines.yml | 8 ---- ...equired-pipeline-configuration-premium.yml | 2 +- .../14-8-iteration-started-field.yml | 2 +- .../14-8-sast-analyzer-removals.yml | 4 +- .../15-0-deprecate-monitor-metrics.yml | 2 +- data/deprecations/15-10-grafana-chart.yml | 2 +- .../deprecations/15-10-helm-chart-updates.yml | 2 +- data/deprecations/15-10-omniauth-dingtalk.yml | 2 +- .../15-11-geo-project-redownload.yml | 2 +- .../deprecations/15-2-job_age-deprecation.yml | 19 -------- .../15-3-pipeline_activity_limit.yml | 19 -------- .../15-7-deprecate-phabricator-importer.yml | 4 +- ...ate-import-bare-repositories-rake-task.yml | 6 +-- .../15-8-deprecate-updated-at-error.yml | 2 +- .../15-8-projects-api-ops-access-level.yml | 2 +- ...-pull-through-cache-container-registry.yml | 2 +- .../15-8-third-party-registries.yml | 2 +- .../15-9-managed-licenses-api.yml | 2 +- data/deprecations/15-9-trigger-job-status.yml | 2 +- data/deprecations/16-0-Vault-integration.yml | 2 +- .../16-0-deprecate-omnibus-grafana.yml | 2 +- .../16-0-deprecate-postgresql-13.yml | 2 +- .../16-0-fail_null_vault_secrets.yml | 2 +- data/deprecations/16-0-post-ci-lint.yml | 18 -------- .../16-4_support_for_delete_tags_endpoint.yml | 2 +- .../templates/_deprecation_template.md.erb | 4 +- data/deprecations/templates/example.yml | 2 +- data/whats_new/202206220001_15_1.yml | 2 +- .../templates/YYYYMMDD0001_XX_YY.yml | 2 +- .../settings/continuous_integration.md | 2 +- doc/api/integrations.md | 21 +++++---- doc/api/settings.md | 2 +- .../blueprints/secret_detection/index.md | 6 +-- doc/ci/environments/index.md | 8 +++- doc/ci/runners/runners_scope.md | 2 +- doc/update/deprecations.md | 32 ++++++------- doc/user/analytics/dora_metrics.md | 9 ++-- doc/user/group/access_and_permissions.md | 10 +++-- .../settings/project_features_permissions.md | 25 ++++++----- lib/banzai/filter/task_list_filter.rb | 2 +- locale/gitlab.pot | 5 +-- package.json | 2 +- scripts/gitlab_component_helpers.sh | 8 +++- scripts/setup/generate-as-if-foss-env.rb | 10 +++-- .../components/clusters_actions_spec.js | 4 +- .../services/autocomplete_helper_spec.js | 16 ++++++- .../global_search_autocomplete_items_spec.js | 4 +- .../global_search_scoped_items_spec.js | 4 +- .../components/user_menu_profile_item_spec.js | 4 +- .../banzai/filter/task_list_filter_spec.rb | 17 +++++++ .../setup/generate_as_if_foss_env_spec.rb | 3 ++ ...rigger_downstream_pipeline_service_spec.rb | 17 ------- vite.config.js | 3 ++ yarn.lock | 8 ++-- 79 files changed, 277 insertions(+), 275 deletions(-) create mode 100644 app/assets/javascripts/usage_quotas/project_view_metadata.js delete mode 100644 config/feature_flags/gitlab_com_derisk/ci_rate_limit_downstream_pipelines.yml delete mode 100644 config/feature_flags/gitlab_com_derisk/preload_ci_bridge_downstream_pipelines.yml diff --git a/.gitlab/ci/as-if-foss.gitlab-ci.yml b/.gitlab/ci/as-if-foss.gitlab-ci.yml index 110b20bb080..5686be6deea 100644 --- a/.gitlab/ci/as-if-foss.gitlab-ci.yml +++ b/.gitlab/ci/as-if-foss.gitlab-ci.yml @@ -84,6 +84,7 @@ start-as-if-foss: ENABLE_COMPILE_PRODUCTION_ASSETS: $ENABLE_COMPILE_PRODUCTION_ASSETS ENABLE_COMPILE_STORYBOOK: $ENABLE_COMPILE_STORYBOOK ENABLE_COMPILE_TEST_ASSETS: $ENABLE_COMPILE_TEST_ASSETS + ENABLE_CACHE_ASSETS: $ENABLE_CACHE_ASSETS ENABLE_ESLINT: $ENABLE_ESLINT ENABLE_GENERATE_APOLLO_GRAPHQL_SCHEMA: $ENABLE_GENERATE_APOLLO_GRAPHQL_SCHEMA ENABLE_GRAPHQL_SCHEMA_DUMP: $ENABLE_GRAPHQL_SCHEMA_DUMP diff --git a/.gitlab/ci/rails/shared.gitlab-ci.yml b/.gitlab/ci/rails/shared.gitlab-ci.yml index 4ed021f9c38..dfa20aedb22 100644 --- a/.gitlab/ci/rails/shared.gitlab-ci.yml +++ b/.gitlab/ci/rails/shared.gitlab-ci.yml @@ -89,9 +89,10 @@ include: # in unit tests again. - rspec_section rspec_parallelized_job "--fail-fast=${RSPEC_FAIL_FAST_THRESHOLD} --tag ~quarantine --tag ~level:background_migration --tag ~click_house --tag ~real_ai_request" after_script: - - echo -e "\e[0Ksection_start:`date +%s`:report_results_section[collapsed=true]\r\e[0KReport results" + - source scripts/utils.sh - bundle exec gem list gitlab_quality-test_tooling - | + section_start "relate-failure-issue" "Report test failures" if [ "$CREATE_RAILS_TEST_FAILURE_ISSUES" == "true" ]; then input_file="rspec/rspec-${CI_JOB_ID}.json" @@ -108,15 +109,18 @@ include: --system-log-files "log" \ --related-issues-file "rspec/${CI_JOB_ID}-failed-test-issues.json"; fi - + section_end "relate-failure-issue" + - | + section_start "flaky-test-issues" "Report test flakiness" if [ "$CREATE_RAILS_FLAKY_TEST_ISSUES" == "true" ] && [ -f "rspec/rspec-retry-${CI_JOB_ID}.json" ]; then bundle exec flaky-test-issues \ - --token "${RAILS_FLAKY_TEST_PROJECT_TOKEN}" \ - --project "gitlab-org/quality/engineering-productivity/flaky-tests" \ - --merge_request_iid "$CI_MERGE_REQUEST_IID" \ - --input-files "rspec/rspec-retry-${CI_JOB_ID}.json" || true # We don't want this command to fail the job. + --token "${TEST_FAILURES_PROJECT_TOKEN}" \ + --project "gitlab-org/gitlab" \ + --input-files "rspec/rspec-retry-${CI_JOB_ID}.json"; fi - + section_end "flaky-test-issues" + - | + section_start "slow-test-issues" "Report test slowness" if [ "$CREATE_RAILS_SLOW_TEST_ISSUES" == "true" ]; then bundle exec slow-test-issues \ --token "${TEST_FAILURES_PROJECT_TOKEN}" \ @@ -124,7 +128,9 @@ include: --input-files "rspec/rspec-*.json" \ --related-issues-file "rspec/${CI_JOB_ID}-slow-test-issues.json"; fi - + section_end "slow-test-issues" + - | + section_start "slow-test-merge-request-report-note" "Report test slowness in MR note" if [ "$ADD_SLOW_TEST_NOTE_TO_MERGE_REQUEST" == "true" ]; then bundle exec slow-test-merge-request-report-note \ --token "${TEST_SLOW_NOTE_PROJECT_TOKEN}" \ @@ -132,15 +138,17 @@ include: --input-files "rspec/rspec-*.json" \ --merge_request_iid "$CI_MERGE_REQUEST_IID"; fi - + section_end "slow-test-merge-request-report-note" + - | + section_start "knapsack-report-issues" "Report test files close to timing out" if [ "$ALLOW_KNAPSACK_REPORT_CREATE_ISSUES" == "true" ]; then bundle exec knapsack-report-issues \ --token "${KNAPSACK_REPORT_ISSUES_PROJECT_TOKEN}" \ --project "gitlab-org/gitlab" \ - --input-file knapsack/rspec_*_report.json \ + --input-file knapsack/rspec*_report.json \ --expected-report knapsack/node_specs_expected_duration.json; fi - - echo -e "\e[0Ksection_end:`date +%s`:report_results_section\r\e[0K" + section_end "knapsack-report-issues" - tooling/bin/push_job_metrics || true allow_failure: diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 394ae2fa5ad..c78f5e8f547 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -140,6 +140,9 @@ .if-foss-default-branch: &if-foss-default-branch if: '$CI_PROJECT_PATH == "gitlab-org/gitlab-foss" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH' +.if-not-dot-com-gitlab-org-and-not-jihulab: &if-not-dot-com-gitlab-org-and-not-jihulab + if: '($CI_SERVER_HOST != "gitlab.com" || $CI_PROJECT_NAMESPACE != "gitlab-org") && ($CI_SERVER_HOST != "jihulab.com" || $CI_PROJECT_NAMESPACE != "gitlab-cn")' + .if-dot-com-gitlab-org-schedule: &if-dot-com-gitlab-org-schedule if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_PIPELINE_SOURCE == "schedule"' @@ -1044,7 +1047,7 @@ # The new strategy to cache assets as generic packages is experimental and can be disabled by removing the `CACHE_ASSETS_AS_PACKAGE` variable - if: '$CACHE_ASSETS_AS_PACKAGE != "true"' when: never - - <<: *if-not-ee + - <<: *if-not-dot-com-gitlab-org-and-not-jihulab when: never # That would run for any project that has a "maintenance" pipeline schedule # but in fact, the cache package is only uploaded for gitlab.com/gitlab-org/gitlab and jihulab.com/gitlab-cn/gitlab @@ -1058,6 +1061,9 @@ - "lib/tasks/gitlab/assets.rake" when: manual allow_failure: true + - if: '$ENABLE_CACHE_ASSETS == "true"' + when: manual + allow_failure: true .caching:rules:cache-assets-as-if-foss: rules: diff --git a/.gitlab/merge_request_templates/Deprecations.md b/.gitlab/merge_request_templates/Deprecations.md index fb998dae6c1..e8496a07ac7 100644 --- a/.gitlab/merge_request_templates/Deprecations.md +++ b/.gitlab/merge_request_templates/Deprecations.md @@ -28,7 +28,7 @@ Deprecation announcements can and should be created and merged into Docs at any Please review: - The definitions of ["Deprecation", "End of Support", and "Removal"](https://docs.gitlab.com/ee/development/deprecation_guidelines/). -- The [guidelines for deprecations](https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes). +- The [guidelines for deprecations](https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes). - The process for [creating a deprecation announcement](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-the-announcement). They are frequently updated, and everyone should make sure they are aware of the current standards (PM, PMM, EM, and TW). diff --git a/.markdownlint.yml b/.markdownlint.yml index a5e24bcdc40..d6fe0c60732 100644 --- a/.markdownlint.yml +++ b/.markdownlint.yml @@ -153,8 +153,6 @@ proper-names: # MD044 "unicorn-worker-killer", "URL", "WebdriverIO", - "Workload Identity Pool", - "Workload Identity Provider", "YAML", "YouTrack" ] diff --git a/Gemfile b/Gemfile index 06d09b1abca..dd5bbe0ed9d 100644 --- a/Gemfile +++ b/Gemfile @@ -215,7 +215,7 @@ gem 'typhoeus', '~> 1.4.0' # Used with Elasticsearch to support http keep-alive # Markdown and HTML processing gem 'html-pipeline', '~> 2.14.3', feature_category: :team_planning -gem 'deckar01-task_list', '2.3.3', feature_category: :team_planning +gem 'deckar01-task_list', '2.3.4', feature_category: :team_planning gem 'gitlab-markup', '~> 1.9.0', require: 'github/markup' # rubocop:todo Gemfile/MissingFeatureCategory gem 'commonmarker', '~> 0.23.10', feature_category: :team_planning gem 'kramdown', '~> 2.3.1' # rubocop:todo Gemfile/MissingFeatureCategory @@ -504,7 +504,7 @@ group :test do gem 'rspec_profiling', '~> 0.0.8', feature_category: :tooling gem 'rspec-benchmark', '~> 0.6.0', feature_category: :tooling gem 'rspec-parameterized', '~> 1.0', require: false, feature_category: :tooling - gem 'os', '~> 1.1', feature_category: :tooling + gem 'os', '~> 1.1', '>= 1.1.4', feature_category: :tooling gem 'capybara', '~> 3.40' # rubocop:todo Gemfile/MissingFeatureCategory gem 'capybara-screenshot', '~> 1.0.26' # rubocop:todo Gemfile/MissingFeatureCategory diff --git a/Gemfile.checksum b/Gemfile.checksum index e5e549ade23..bfce01860b2 100644 --- a/Gemfile.checksum +++ b/Gemfile.checksum @@ -108,7 +108,7 @@ {"name":"dead_end","version":"3.1.1","platform":"ruby","checksum":"1011df7f7c0149be004e11cbbc37747760227c55305cd902fd3c06e1394b2f5b"}, {"name":"deb_version","version":"1.0.2","platform":"ruby","checksum":"c21f911d7f2fd1d61219caae254fc078e6598e477fdff8a05a18bec6c72ee713"}, {"name":"debug_inspector","version":"1.1.0","platform":"ruby","checksum":"eaa5a2d0195e1d65fb4164e8e7e466cca2e7eb53bc5e608cf12b8bf02c3a8606"}, -{"name":"deckar01-task_list","version":"2.3.3","platform":"ruby","checksum":"918abaf3f81e6c0d224c2b7bef593d7f84ee5847a0692726d24e3fb272c2c758"}, +{"name":"deckar01-task_list","version":"2.3.4","platform":"ruby","checksum":"66abdc7e009ea759732bb53867e1ea42de550e2aa03ac30a015cbf42a04c1667"}, {"name":"declarative","version":"0.0.20","platform":"ruby","checksum":"8021dd6cb17ab2b61233c56903d3f5a259c5cf43c80ff332d447d395b17d9ff9"}, {"name":"declarative_policy","version":"1.1.0","platform":"ruby","checksum":"9af4cf299ade03f2bbf63908f2ce6a117d132fc714c39a128596667fb13331cb"}, {"name":"deprecation_toolkit","version":"1.5.1","platform":"ruby","checksum":"a8a1ab1a19ae40ea12560b65010e099f3459ebde390b76621ef0c21c516a04ba"}, diff --git a/Gemfile.lock b/Gemfile.lock index bb89ae3b7b4..119b3734346 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -463,8 +463,8 @@ GEM dead_end (3.1.1) deb_version (1.0.2) debug_inspector (1.1.0) - deckar01-task_list (2.3.3) - html-pipeline + deckar01-task_list (2.3.4) + html-pipeline (~> 2.0) declarative (0.0.20) declarative_policy (1.1.0) deprecation_toolkit (1.5.1) @@ -1865,7 +1865,7 @@ DEPENDENCIES csv_builder! cvss-suite (~> 3.0.1) database_cleaner-active_record (~> 2.1.0) - deckar01-task_list (= 2.3.3) + deckar01-task_list (= 2.3.4) declarative_policy (~> 1.1.0) deprecation_toolkit (~> 1.5.1) derailed_benchmarks @@ -2036,7 +2036,7 @@ DEPENDENCIES openid_connect (= 1.3.0) openssl (~> 3.0) org-ruby (~> 0.9.12) - os (~> 1.1) + os (~> 1.1, >= 1.1.4) pact (~> 1.64) parallel (~> 1.19) parser (~> 3.3, >= 3.3.0.2) diff --git a/app/assets/javascripts/content_editor/services/autocomplete_helper.js b/app/assets/javascripts/content_editor/services/autocomplete_helper.js index 4bafe486fef..233367a5096 100644 --- a/app/assets/javascripts/content_editor/services/autocomplete_helper.js +++ b/app/assets/javascripts/content_editor/services/autocomplete_helper.js @@ -120,7 +120,7 @@ export default class AutocompleteHelper { constructor({ dataSourceUrls, sidebarMediator }) { this.dataSourceUrls = !isEmpty(dataSourceUrls) ? dataSourceUrls - : gl.GfmAutoComplete?.dataSources; + : gl.GfmAutoComplete?.dataSources || {}; this.sidebarMediator = sidebarMediator; diff --git a/app/assets/javascripts/pages/projects/usage_quotas/index.js b/app/assets/javascripts/pages/projects/usage_quotas/index.js index d907b8a470d..52dfaf1e22d 100644 --- a/app/assets/javascripts/pages/projects/usage_quotas/index.js +++ b/app/assets/javascripts/pages/projects/usage_quotas/index.js @@ -1,21 +1,4 @@ -import initProjectStorage from '~/usage_quotas/storage/init_project_storage'; -import initSearchSettings from '~/search_settings'; -import { GlTabsBehavior, HISTORY_TYPE_HASH } from '~/tabs'; +import initUsageQuotas from '~/usage_quotas'; +import { PROJECT_VIEW_TYPE } from '~/usage_quotas/constants'; -const initGlTabs = () => { - const tabsEl = document.getElementById('js-project-usage-quotas-tabs'); - if (!tabsEl) { - return; - } - - // eslint-disable-next-line no-new - new GlTabsBehavior(tabsEl, { history: HISTORY_TYPE_HASH }); -}; - -const initVueApp = () => { - initProjectStorage('js-project-storage-count-app'); -}; - -initGlTabs(); -initVueApp(); -initSearchSettings(); +initUsageQuotas(PROJECT_VIEW_TYPE); diff --git a/app/assets/javascripts/usage_quotas/constants.js b/app/assets/javascripts/usage_quotas/constants.js index b41459b1b41..a6dfe13d1fe 100644 --- a/app/assets/javascripts/usage_quotas/constants.js +++ b/app/assets/javascripts/usage_quotas/constants.js @@ -2,4 +2,4 @@ export const GROUP_VIEW_TYPE = 'group_view'; export const PROJECT_VIEW_TYPE = 'project_view'; export const PROFILE_VIEW_TYPE = 'profile_view'; -export const STORAGE_TAB_METADATA_EL_SELECTOR = '#js-namespace-storage-app'; +export const STORAGE_TAB_METADATA_EL_SELECTOR = '#js-storage-usage-app'; diff --git a/app/assets/javascripts/usage_quotas/group_view_metadata.js b/app/assets/javascripts/usage_quotas/group_view_metadata.js index 5e762a779a0..7f00e30528e 100644 --- a/app/assets/javascripts/usage_quotas/group_view_metadata.js +++ b/app/assets/javascripts/usage_quotas/group_view_metadata.js @@ -1,3 +1,6 @@ +import { GROUP_VIEW_TYPE } from './constants'; import { getStorageTabMetadata } from './storage/tab_metadata'; -export const usageQuotasTabsMetadata = [getStorageTabMetadata()].filter(Boolean); +export const usageQuotasTabsMetadata = [ + getStorageTabMetadata({ viewType: GROUP_VIEW_TYPE }), +].filter(Boolean); diff --git a/app/assets/javascripts/usage_quotas/index.js b/app/assets/javascripts/usage_quotas/index.js index 5993c8ee1d1..4cf67eb92a5 100644 --- a/app/assets/javascripts/usage_quotas/index.js +++ b/app/assets/javascripts/usage_quotas/index.js @@ -1,14 +1,19 @@ import Vue from 'vue'; import { usageQuotasTabsMetadata as groupViewTabsMetadata } from 'ee_else_ce/usage_quotas/group_view_metadata'; import { usageQuotasTabsMetadata as profileViewTabsMetadata } from 'ee_else_ce/usage_quotas/profile_view_metadata'; +import { usageQuotasTabsMetadata as projectViewTabsMetadata } from 'ee_else_ce/usage_quotas/project_view_metadata'; import UsageQuotasApp from './components/usage_quotas_app.vue'; -import { GROUP_VIEW_TYPE, PROFILE_VIEW_TYPE } from './constants'; +import { GROUP_VIEW_TYPE, PROJECT_VIEW_TYPE, PROFILE_VIEW_TYPE } from './constants'; const getViewTabs = (viewType) => { if (viewType === GROUP_VIEW_TYPE) { return groupViewTabsMetadata; } + if (viewType === PROJECT_VIEW_TYPE) { + return projectViewTabsMetadata; + } + if (viewType === PROFILE_VIEW_TYPE) { return profileViewTabsMetadata; } diff --git a/app/assets/javascripts/usage_quotas/project_view_metadata.js b/app/assets/javascripts/usage_quotas/project_view_metadata.js new file mode 100644 index 00000000000..47c720c1bda --- /dev/null +++ b/app/assets/javascripts/usage_quotas/project_view_metadata.js @@ -0,0 +1,6 @@ +import { PROJECT_VIEW_TYPE } from './constants'; +import { getStorageTabMetadata } from './storage/tab_metadata'; + +export const usageQuotasTabsMetadata = [ + getStorageTabMetadata({ viewType: PROJECT_VIEW_TYPE }), +].filter(Boolean); diff --git a/app/assets/javascripts/usage_quotas/storage/tab_metadata.js b/app/assets/javascripts/usage_quotas/storage/tab_metadata.js index d0c730da3b6..3e4fbada976 100644 --- a/app/assets/javascripts/usage_quotas/storage/tab_metadata.js +++ b/app/assets/javascripts/usage_quotas/storage/tab_metadata.js @@ -2,13 +2,50 @@ import Vue from 'vue'; import VueApollo from 'vue-apollo'; import { __ } from '~/locale'; import createDefaultClient from '~/lib/graphql'; -import { parseProvideData } from 'ee_else_ce/usage_quotas/storage/utils'; -import { STORAGE_TAB_METADATA_EL_SELECTOR } from '../constants'; +import { parseNamespaceProvideData } from 'ee_else_ce/usage_quotas/storage/utils'; +import { + GROUP_VIEW_TYPE, + PROJECT_VIEW_TYPE, + PROFILE_VIEW_TYPE, + STORAGE_TAB_METADATA_EL_SELECTOR, +} from '../constants'; import NamespaceStorageApp from './components/namespace_storage_app.vue'; +import ProjectStorageApp from './components/project_storage_app.vue'; -export const getStorageTabMetadata = ({ includeEl = false, customApolloProvider = null } = {}) => { +const parseProjectProvideData = (el) => { + const { projectPath } = el.dataset; + + return { + projectPath, + }; +}; + +const getViewSpecificOptions = (viewType) => { + if (viewType === GROUP_VIEW_TYPE || viewType === PROFILE_VIEW_TYPE) { + return { + vueComponent: NamespaceStorageApp, + parseProvideData: parseNamespaceProvideData, + }; + } + + if (viewType === PROJECT_VIEW_TYPE) { + return { + vueComponent: ProjectStorageApp, + parseProvideData: parseProjectProvideData, + }; + } + + return {}; +}; + +export const getStorageTabMetadata = ({ + viewType = null, + includeEl = false, + customApolloProvider = null, +} = {}) => { let apolloProvider; const el = document.querySelector(STORAGE_TAB_METADATA_EL_SELECTOR); + const { vueComponent, parseProvideData } = getViewSpecificOptions(viewType); if (!el) return false; @@ -30,7 +67,7 @@ export const getStorageTabMetadata = ({ includeEl = false, customApolloProvider provide: parseProvideData(el), apolloProvider, render(createElement) { - return createElement(NamespaceStorageApp); + return createElement(vueComponent); }, }, }; diff --git a/app/assets/javascripts/usage_quotas/storage/utils.js b/app/assets/javascripts/usage_quotas/storage/utils.js index 35415ad11dc..6800c272a2a 100644 --- a/app/assets/javascripts/usage_quotas/storage/utils.js +++ b/app/assets/javascripts/usage_quotas/storage/utils.js @@ -84,7 +84,7 @@ export const parseGetStorageResults = (data) => { }; }; -export const parseProvideData = (el) => { +export const parseNamespaceProvideData = (el) => { if (!el) { return {}; } diff --git a/app/mailers/emails/remote_mirrors.rb b/app/mailers/emails/remote_mirrors.rb index 791ab7103b4..81bf621e3b3 100644 --- a/app/mailers/emails/remote_mirrors.rb +++ b/app/mailers/emails/remote_mirrors.rb @@ -5,6 +5,7 @@ module Emails def remote_mirror_update_failed_email(remote_mirror_id, recipient_id) @remote_mirror = RemoteMirror.find_by_id(remote_mirror_id) @project = @remote_mirror.project + @target_url = project_settings_repository_url(@project, anchor: 'js-mirror-settings') user = User.find(recipient_id) mail_with_locale(to: user.notification_email_for(@project.group), subject: subject('Remote mirror update failed')) diff --git a/app/models/event.rb b/app/models/event.rb index 1ad08518b27..1e2704f2c68 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -94,14 +94,14 @@ class Event < ApplicationRecord scope :created_between, ->(start_time, end_time) { where(created_at: start_time..end_time) } scope :count_by_dates, ->(date_interval) { group("DATE(created_at + #{date_interval})").count } - scope :contributions, ->(target_types: nil) do + scope :contributions, -> do contribution_actions = [actions[:pushed], actions[:commented]] target_contribution_actions = [actions[:created], actions[:closed], actions[:merged], actions[:approved]] where( 'action IN (?) OR (target_type IN (?) AND action IN (?))', contribution_actions, - target_types || contributable_target_types, target_contribution_actions + CONTRIBUTABLE_TARGET_TYPES, target_contribution_actions ) end @@ -144,10 +144,6 @@ class Event < ApplicationRecord end end - def contributable_target_types - CONTRIBUTABLE_TARGET_TYPES - end - def limit_recent(limit = 20, offset = nil) recent.limit(limit).offset(offset) end diff --git a/app/serializers/stage_entity.rb b/app/serializers/stage_entity.rb index 49f7a04155c..60cf8dc7473 100644 --- a/app/serializers/stage_entity.rb +++ b/app/serializers/stage_entity.rb @@ -67,10 +67,7 @@ class StageEntity < Grape::Entity end def preload_metadata(statuses) - relations = [:metadata, :pipeline] - if Feature.enabled?(:preload_ci_bridge_downstream_pipelines, stage.pipeline.project, type: :gitlab_com_derisk) - relations << { downstream_pipeline: [:user, { project: [:route, { namespace: :route }] }] } - end + relations = [:metadata, :pipeline, { downstream_pipeline: [:user, { project: [:route, { namespace: :route }] }] }] Preloaders::CommitStatusPreloader.new(statuses).execute(relations) diff --git a/app/services/ci/trigger_downstream_pipeline_service.rb b/app/services/ci/trigger_downstream_pipeline_service.rb index 4fc09fd7492..05f69613536 100644 --- a/app/services/ci/trigger_downstream_pipeline_service.rb +++ b/app/services/ci/trigger_downstream_pipeline_service.rb @@ -15,7 +15,7 @@ module Ci return ServiceResponse.success(message: 'Does not trigger a downstream pipeline') end - if rate_limit_throttled? && enforce_rate_limit? + if rate_limit_throttled? bridge.drop!(:reached_downstream_pipeline_trigger_rate_limit) return ServiceResponse.error(message: 'Reached downstream pipeline trigger rate limit') @@ -49,9 +49,5 @@ module Ci message: 'Activated downstream pipeline trigger rate limit' ) end - - def enforce_rate_limit? - ::Feature.enabled?(:ci_rate_limit_downstream_pipelines, project, type: :gitlab_com_derisk) - end end end diff --git a/app/views/groups/usage_quotas/index.html.haml b/app/views/groups/usage_quotas/index.html.haml index 16f5fe3137a..9f56e980eea 100644 --- a/app/views/groups/usage_quotas/index.html.haml +++ b/app/views/groups/usage_quotas/index.html.haml @@ -14,4 +14,4 @@ .gl-font-lg.gl--flex-center %span.gl-mr-1= s_('UsageQuota|Loading Usage Quotas tabs') = render Pajamas::SpinnerComponent.new(inline: true, size: :md) - #js-namespace-storage-app{ data: storage_usage_app_data(@group) } + #js-storage-usage-app{ data: storage_usage_app_data(@group) } diff --git a/app/views/notify/remote_mirror_update_failed_email.html.haml b/app/views/notify/remote_mirror_update_failed_email.html.haml index db95398d2d6..eb299e77790 100644 --- a/app/views/notify/remote_mirror_update_failed_email.html.haml +++ b/app/views/notify/remote_mirror_update_failed_email.html.haml @@ -16,7 +16,7 @@ %tbody{ style: "font-size:15px;line-height:1.4;color:#8c8c8c;" } %tr %td{ style: "font-weight:300;padding:14px 0;margin:0;" } - = _('Project') + = _('Source project') %td{ style: "font-weight:500;padding:14px 0;margin:0;color:#333333;width:75%;padding-left:5px;" } - namespace_url = @project.group ? group_url(@project.group) : user_url(@project.namespace.owner) %a.muted{ href: namespace_url, style: "color:#333333;text-decoration:none;" } diff --git a/app/views/notify/remote_mirror_update_failed_email.text.erb b/app/views/notify/remote_mirror_update_failed_email.text.erb index c6f29f0ad1c..239dd76aee1 100644 --- a/app/views/notify/remote_mirror_update_failed_email.text.erb +++ b/app/views/notify/remote_mirror_update_failed_email.text.erb @@ -1,6 +1,6 @@ A remote mirror update has failed. -Project: <%= @project.human_name %> ( <%= project_url(@project) %> ) +Source Project: <%= @project.human_name %> ( <%= project_url(@project) %> ) Remote mirror: <%= @remote_mirror.safe_url %> Last update at: <%= @remote_mirror.last_update_at %> Last error: diff --git a/app/views/projects/usage_quotas/index.html.haml b/app/views/projects/usage_quotas/index.html.haml index 039df9738ff..54e131579dd 100644 --- a/app/views/projects/usage_quotas/index.html.haml +++ b/app/views/projects/usage_quotas/index.html.haml @@ -13,16 +13,16 @@ .row .col-sm-12 %p.gl-text-secondary - = s_('UsageQuota|Usage of project resources across the %{strong_start}%{project_name}%{strong_end} project').html_safe % { strong_start: ''.html_safe, strong_end: ''.html_safe, project_name: @project.name } + '.' + = safe_format(s_('UsageQuota|Usage of project resources across the %{strong_start}%{project_name}%{strong_end} project.'), + { project_name: @project.name }, + tag_pair(tag.strong, :strong_start, :strong_end)) %a{ href: help_page_path('user/usage_quotas'), target: '_blank', rel: 'noopener noreferrer' } - = s_('UsageQuota|Learn more about usage quotas') + '.' + = s_('UsageQuota|Learn more about usage quotas.') -= gl_tabs_nav({ id: 'js-project-usage-quotas-tabs' }) do - = gl_tab_link_to '#storage-quota-tab', item_active: true do - = s_('UsageQuota|Storage') - = render_if_exists 'projects/usage_quotas/transfer_tab_link' - -.tab-content - .tab-pane.active#storage-quota-tab - #js-project-storage-count-app{ data: { project_path: @project.full_path } } +#js-usage-quotas-view + .gl-font-lg.gl--flex-center + %span.gl-mr-1= s_('UsageQuota|Loading Usage Quotas tabs') + = render Pajamas::SpinnerComponent.new(inline: true, size: :md) + #js-storage-usage-app{ data: { project_path: @project.full_path } } = render_if_exists 'projects/usage_quotas/transfer_tab_content' + diff --git a/config/feature_flags/gitlab_com_derisk/ci_rate_limit_downstream_pipelines.yml b/config/feature_flags/gitlab_com_derisk/ci_rate_limit_downstream_pipelines.yml deleted file mode 100644 index 8f4fa323f7b..00000000000 --- a/config/feature_flags/gitlab_com_derisk/ci_rate_limit_downstream_pipelines.yml +++ /dev/null @@ -1,9 +0,0 @@ ---- -name: ci_rate_limit_downstream_pipelines -feature_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/425941 -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/142869 -rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/17471 -milestone: '16.9' -group: group::pipeline authoring -type: gitlab_com_derisk -default_enabled: false diff --git a/config/feature_flags/gitlab_com_derisk/preload_ci_bridge_downstream_pipelines.yml b/config/feature_flags/gitlab_com_derisk/preload_ci_bridge_downstream_pipelines.yml deleted file mode 100644 index 846e49291db..00000000000 --- a/config/feature_flags/gitlab_com_derisk/preload_ci_bridge_downstream_pipelines.yml +++ /dev/null @@ -1,8 +0,0 @@ ---- -name: preload_ci_bridge_downstream_pipelines -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/142199 -rollout_issue_url: https://gitlab.com/gitlab-com/gl-infra/production/-/issues/17473 -milestone: '16.9' -group: 'group::pipeline execution' -type: gitlab_com_derisk -default_enabled: false diff --git a/data/deprecations/14-8-compliance-required-pipeline-configuration-premium.yml b/data/deprecations/14-8-compliance-required-pipeline-configuration-premium.yml index 67d2c94e776..f8cf481f3b0 100644 --- a/data/deprecations/14-8-compliance-required-pipeline-configuration-premium.yml +++ b/data/deprecations/14-8-compliance-required-pipeline-configuration-premium.yml @@ -6,7 +6,7 @@ body: | # Do not modify this line, instead modify the lines below. The [required pipeline configuration](https://docs.gitlab.com/ee/administration/settings/continuous_integration.html#required-pipeline-configuration) feature is deprecated in GitLab 14.8 for Premium customers and is scheduled for removal in GitLab 15.0. This feature is not deprecated for GitLab Ultimate customers. - This change to move the feature to GitLab's Ultimate tier is intended to help our features better align with our [pricing philosophy](https://about.gitlab.com/company/pricing/#three-tiers) as we see demand for this feature originating primarily from executives. + This change to move the feature to GitLab's Ultimate tier is intended to help our features better align with our [pricing philosophy](https://handbook.gitlab.com/handbook/company/pricing/#three-tiers) as we see demand for this feature originating primarily from executives. This change will also help GitLab remain consistent in its tiering strategy with the other related Ultimate-tier features of: [Security policies](https://docs.gitlab.com/ee/user/application_security/policies/) and [compliance framework pipelines](https://docs.gitlab.com/ee/user/project/settings/index.html#compliance-pipeline-configuration). diff --git a/data/deprecations/14-8-iteration-started-field.yml b/data/deprecations/14-8-iteration-started-field.yml index a591aa04db4..8150467d5c5 100644 --- a/data/deprecations/14-8-iteration-started-field.yml +++ b/data/deprecations/14-8-iteration-started-field.yml @@ -5,7 +5,7 @@ removal_date: "2022-05-22" # The date of the milestone release when this feature was first announced as deprecated. This should almost always be the 22nd of a month (YYYY-MM-22), unless you did an out of band blog post. breaking_change: true # If this deprecation is a breaking change, set this value to true body: | # Do not modify this line, instead modify the lines below. - The `started` iteration state in the [iterations GraphQL API](https://https://docs.gitlab.com/ee/api/graphql/reference/index.html#iterationstate) + The `started` iteration state in the [iterations GraphQL API](https://docs.gitlab.com/ee/api/graphql/reference/index.html#iterationstate) and [iterations REST API](https://docs.gitlab.com/ee/api/iterations.html#list-project-iterations) is deprecated. The GraphQL API version will be removed in GitLab 16.0. This state is being replaced with the `current` state (already available) diff --git a/data/deprecations/14-8-sast-analyzer-removals.yml b/data/deprecations/14-8-sast-analyzer-removals.yml index 427833d569e..20fdf3b0a3c 100644 --- a/data/deprecations/14-8-sast-analyzer-removals.yml +++ b/data/deprecations/14-8-sast-analyzer-removals.yml @@ -7,7 +7,7 @@ GitLab SAST uses various [analyzers](https://docs.gitlab.com/ee/user/application_security/sast/analyzers/) to scan code for vulnerabilities. We are reducing the number of analyzers used in GitLab SAST as part of our long-term strategy to deliver a better and more consistent user experience. - Streamlining the set of analyzers will also enable faster [iteration](https://about.gitlab.com/handbook/values/#iteration), better [results](https://about.gitlab.com/handbook/values/#results), and greater [efficiency](https://about.gitlab.com/handbook/values/#efficiency) (including a reduction in CI runner usage in most cases). + Streamlining the set of analyzers will also enable faster [iteration](https://handbook.gitlab.com/handbook/values/#iteration), better [results](https://handbook.gitlab.com/handbook/values/#results), and greater [efficiency](https://handbook.gitlab.com/handbook/values/#efficiency) (including a reduction in CI runner usage in most cases). In GitLab 15.4, GitLab SAST will no longer use the following analyzers: @@ -21,7 +21,7 @@ These analyzers will be removed from the [GitLab-managed SAST CI/CD template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml) and replaced with the [Semgrep-based analyzer](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep). Effective immediately, they will receive only security updates; other routine improvements or updates are not guaranteed. After these analyzers reach End of Support, no further updates will be provided. - We will not delete container images previously published for these analyzers; any such change would be announced as a [deprecation, removal, or breaking change announcement](https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes). + We will not delete container images previously published for these analyzers; any such change would be announced as a [deprecation, removal, or breaking change announcement](https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes). We will also remove Java from the scope of the [SpotBugs](https://gitlab.com/gitlab-org/security-products/analyzers/spotbugs) analyzer and replace it with the [Semgrep-based analyzer](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep). This change will make it simpler to scan Java code; compilation will no longer be required. diff --git a/data/deprecations/15-0-deprecate-monitor-metrics.yml b/data/deprecations/15-0-deprecate-monitor-metrics.yml index e10dba0c8e0..5e0abd4a3ef 100644 --- a/data/deprecations/15-0-deprecate-monitor-metrics.yml +++ b/data/deprecations/15-0-deprecate-monitor-metrics.yml @@ -4,7 +4,7 @@ breaking_change: true # If this deprecation is a breaking change, set this value to true body: | # Do not modify this line, instead modify the lines below. By displaying data stored in a Prometheus instance, GitLab allows users to view performance metrics. GitLab also displays visualizations of these metrics in dashboards. The user can connect to a previously-configured external Prometheus instance, or set up Prometheus as a GitLab Managed App. - However, since certificate-based integration with Kubernetes clusters is deprecated in GitLab, the metrics functionality in GitLab that relies on Prometheus is also deprecated. This includes the metrics visualizations in dashboards. GitLab is working to develop a single user experience based on [Opstrace](https://about.gitlab.com/press/releases/2021-12-14-gitlab-acquires-opstrace-to-expand-its-devops-platform-with-open-source-observability-solution.html). An [issue exists](https://gitlab.com/groups/gitlab-org/-/epics/6976) for you to follow work on the Opstrace integration. + However, since certificate-based integration with Kubernetes clusters is deprecated in GitLab, the metrics functionality in GitLab that relies on Prometheus is also deprecated. This includes the metrics visualizations in dashboards. GitLab is working to develop a single user experience based on [Opstrace](https://about.gitlab.com/press/releases/2021-12-14-gitlab-acquires-opstrace-to-expand-its-devops-platform-with-open-source-observability-solution/). An [issue exists](https://gitlab.com/groups/gitlab-org/-/epics/6976) for you to follow work on the Opstrace integration. # The following items are not published on the docs page, but may be used in the future. stage: Monitor # (optional - may be required in the future) String value of the stage that the feature was created in. e.g., Growth tiers: [Free] # (optional - may be required in the future) An array of tiers that the feature is available in currently. e.g., [Free, Silver, Gold, Core, Premium, Ultimate] diff --git a/data/deprecations/15-10-grafana-chart.yml b/data/deprecations/15-10-grafana-chart.yml index ac66aca7910..94e21a141b1 100644 --- a/data/deprecations/15-10-grafana-chart.yml +++ b/data/deprecations/15-10-grafana-chart.yml @@ -11,7 +11,7 @@ # See the OPTIONAL END OF SUPPORT FIELDS section below if an End of Support period also applies. # # For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements # # Please delete this line and above before submitting your merge request. # diff --git a/data/deprecations/15-10-helm-chart-updates.yml b/data/deprecations/15-10-helm-chart-updates.yml index 08be6fd477c..cc24c66e2a4 100644 --- a/data/deprecations/15-10-helm-chart-updates.yml +++ b/data/deprecations/15-10-helm-chart-updates.yml @@ -11,7 +11,7 @@ # See the OPTIONAL END OF SUPPORT FIELDS section below if an End of Support period also applies. # # For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements # # Please delete this line and above before submitting your merge request. # diff --git a/data/deprecations/15-10-omniauth-dingtalk.yml b/data/deprecations/15-10-omniauth-dingtalk.yml index a591b619146..c16d757f21a 100644 --- a/data/deprecations/15-10-omniauth-dingtalk.yml +++ b/data/deprecations/15-10-omniauth-dingtalk.yml @@ -9,7 +9,7 @@ # See the OPTIONAL END OF SUPPORT FIELDS section below if an End of Support period also applies. # # For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements # # Please delete this line and above before submitting your merge request. # diff --git a/data/deprecations/15-11-geo-project-redownload.yml b/data/deprecations/15-11-geo-project-redownload.yml index 229bab04b0a..afb140bc5e8 100644 --- a/data/deprecations/15-11-geo-project-redownload.yml +++ b/data/deprecations/15-11-geo-project-redownload.yml @@ -11,7 +11,7 @@ # See the OPTIONAL END OF SUPPORT FIELDS section below if an End of Support period also applies. # # For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements # # Please delete this line and above before submitting your merge request. # diff --git a/data/deprecations/15-2-job_age-deprecation.yml b/data/deprecations/15-2-job_age-deprecation.yml index c4b2d5bb683..39287bce412 100644 --- a/data/deprecations/15-2-job_age-deprecation.yml +++ b/data/deprecations/15-2-job_age-deprecation.yml @@ -1,22 +1,3 @@ -# This is a template for a feature deprecation. -# -# Please refer to the deprecation guidelines to confirm your understanding of GitLab's definitions. -# https://docs.gitlab.com/ee/development/deprecation_guidelines/#terminology -# -# Deprecations must be announced at least three releases prior to removal. -# -# If an End of Support period applies, the announcement should be shared with GitLab Support -# in the `#spt_managers` on Slack and mention `@gitlab-com/support` in this MR. -# -# Breaking changes must happen in a major release. -# -# For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations -# -# Please delete this line and above before submitting your merge request. -# -# REQUIRED FIELDS -# - title: "Remove `job_age` parameter from `POST /jobs/request` Runner endpoint" # (required) The name of the feature to be deprecated announcement_milestone: "15.2" # (required) The milestone when this feature was first announced as deprecated. removal_milestone: "16.0" # (required) The milestone when this feature is planned to be removed diff --git a/data/deprecations/15-3-pipeline_activity_limit.yml b/data/deprecations/15-3-pipeline_activity_limit.yml index c0e37292d06..86b122b2c5d 100644 --- a/data/deprecations/15-3-pipeline_activity_limit.yml +++ b/data/deprecations/15-3-pipeline_activity_limit.yml @@ -1,22 +1,3 @@ -# This is a template for a feature deprecation. -# -# Please refer to the deprecation guidelines to confirm your understanding of GitLab's definitions. -# https://docs.gitlab.com/ee/development/deprecation_guidelines/#terminology -# -# Deprecations must be announced at least three releases prior to removal. -# -# If an End of Support period applies, the announcement should be shared with GitLab Support -# in the `#spt_managers` on Slack and mention `@gitlab-com/support` in this MR. -# -# Breaking changes must happen in a major release. -# -# For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations -# -# Please delete this line and above before submitting your merge request. -# -# REQUIRED FIELDS -# - title: "Maximum number of active pipelines per project limit (`ci_active_pipelines`)" # (required) The name of the feature to be deprecated announcement_milestone: "15.3" # (required) The milestone when this feature was first announced as deprecated. removal_milestone: "16.0" # (required) The milestone when this feature is planned to be removed diff --git a/data/deprecations/15-7-deprecate-phabricator-importer.yml b/data/deprecations/15-7-deprecate-phabricator-importer.yml index fa2c643e9b7..7024a4b142b 100644 --- a/data/deprecations/15-7-deprecate-phabricator-importer.yml +++ b/data/deprecations/15-7-deprecate-phabricator-importer.yml @@ -3,8 +3,8 @@ removal_milestone: '16.0' breaking_change: true body: | - The [Phabricator task importer](https://docs.gitlab.com/ee/user/project/import/phabricator.html) is being deprecated. Phabricator itself as a project is no longer actively maintained since June 1, 2021. We haven't observed imports using this tool. There has been no activity on the open related issues on GitLab. + The Phabricator task importer is being deprecated. Phabricator itself as a project is no longer actively maintained since June 1, 2021. We haven't observed imports using this tool. There has been no activity on the open related issues on GitLab. stage: manage tiers: issue_url: https://gitlab.com/gitlab-com/Product/-/issues/4894 - documentation_url: https://docs.gitlab.com/ee/user/project/import/phabricator.html + documentation_url: https://docs.gitlab.com/ee/user/project/import/ diff --git a/data/deprecations/15-8-deprecate-import-bare-repositories-rake-task.yml b/data/deprecations/15-8-deprecate-import-bare-repositories-rake-task.yml index 5619a52ef34..3eaf7988a71 100644 --- a/data/deprecations/15-8-deprecate-import-bare-repositories-rake-task.yml +++ b/data/deprecations/15-8-deprecate-import-bare-repositories-rake-task.yml @@ -5,7 +5,7 @@ removal_date: '2023-05-22' breaking_change: false body: | - The [Rake task for importing bare repositories](https://docs.gitlab.com/ee/raketasks/import.html) `gitlab:import:repos` is deprecated in GitLab 15.8 and will be removed in GitLab 16.0. + The Rake task for importing bare repositories (`gitlab:import:repos`) is deprecated in GitLab 15.8 and will be removed in GitLab 16.0. This Rake task imports a directory tree of repositories into a GitLab instance. These repositories must have been managed by GitLab previously, because the Rake task relies on the specific directory structure or a specific custom Git setting in order to work (`gitlab.fullpath`). @@ -21,8 +21,8 @@ - Migrating projects using either [an export file](https://docs.gitlab.com/ee/user/project/settings/import_export.html) or [direct transfer](https://docs.gitlab.com/ee/user/group/import/#migrate-groups-by-direct-transfer-recommended) migrate repositories as well. - Importing a [repository by URL](https://docs.gitlab.com/ee/user/project/import/repo_by_url.html). - - Importing a [repositories from a non-GitLab source](https://docs.gitlab.com/ee/user/project/import/). + - Importing [repositories from a non-GitLab source](https://docs.gitlab.com/ee/user/project/import/). stage: manage tiers: issue_url: https://gitlab.com/gitlab-com/Product/-/issues/5255 - documentation_url: https://docs.gitlab.com/ee/raketasks/import.html + documentation_url: https://docs.gitlab.com/ee/user/project/import/ diff --git a/data/deprecations/15-8-deprecate-updated-at-error.yml b/data/deprecations/15-8-deprecate-updated-at-error.yml index 6985803c12e..3c205159eb1 100644 --- a/data/deprecations/15-8-deprecate-updated-at-error.yml +++ b/data/deprecations/15-8-deprecate-updated-at-error.yml @@ -11,7 +11,7 @@ # See the OPTIONAL END OF SUPPORT FIELDS section below if an End of Support period also applies. # # For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements # # Please delete this line and above before submitting your merge request. # diff --git a/data/deprecations/15-8-projects-api-ops-access-level.yml b/data/deprecations/15-8-projects-api-ops-access-level.yml index 06fb1b76232..857e19f74a1 100644 --- a/data/deprecations/15-8-projects-api-ops-access-level.yml +++ b/data/deprecations/15-8-projects-api-ops-access-level.yml @@ -11,7 +11,7 @@ # See the OPTIONAL END OF SUPPORT FIELDS section below if an End of Support period also applies. # # For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements # # Please delete this line and above before submitting your merge request. # diff --git a/data/deprecations/15-8-pull-through-cache-container-registry.yml b/data/deprecations/15-8-pull-through-cache-container-registry.yml index 18c17f321ff..3271aecbef9 100644 --- a/data/deprecations/15-8-pull-through-cache-container-registry.yml +++ b/data/deprecations/15-8-pull-through-cache-container-registry.yml @@ -6,4 +6,4 @@ stage: Package # (required) String value of the stage that the feature was created in. e.g., Growth issue_url: https://gitlab.com/gitlab-org/container-registry/-/issues/842 # (required) Link to the deprecation issue in GitLab body: | # (required) Do not modify this line, instead modify the lines below. - The container registry [pull-through cache](https://docs.docker.com/registry/recipes/mirror/) is deprecated in GitLab 15.8 and will be removed in GitLab 16.0. The pull-through cache is part of the upstream [Docker Distribution project](https://github.com/distribution/distribution). However, we are removing the pull-through cache in favor of the GitLab Dependency Proxy, which allows you to proxy and cache container images from Docker Hub. Removing the pull-through cache allows us also to remove the upstream client code without sacrificing functionality. + The container registry [pull-through cache](https://docs.docker.com/docker-hub/mirror/) is deprecated in GitLab 15.8 and will be removed in GitLab 16.0. The pull-through cache is part of the upstream [Docker Distribution project](https://github.com/distribution/distribution). However, we are removing the pull-through cache in favor of the GitLab Dependency Proxy, which allows you to proxy and cache container images from Docker Hub. Removing the pull-through cache allows us also to remove the upstream client code without sacrificing functionality. diff --git a/data/deprecations/15-8-third-party-registries.yml b/data/deprecations/15-8-third-party-registries.yml index 6607835c675..23325ad053b 100644 --- a/data/deprecations/15-8-third-party-registries.yml +++ b/data/deprecations/15-8-third-party-registries.yml @@ -8,7 +8,7 @@ body: | # (required) Do not modify this line, instead modify the lines below. Using third-party container registries with GitLab as an auth endpoint is deprecated in GitLab 15.8 and the [end of support](https://docs.gitlab.com/ee/development/deprecation_guidelines/#terminology) is scheduled for GitLab 16.0. This impacts self-managed customers that have connected their external registry to the GitLab user interface to find, view, and delete container images. - Supporting both GitLab's container registry as well as third-party container registries is challenging for maintenance, code quality, and backward compatibility. This hinders our ability to stay [efficient](https://about.gitlab.com/handbook/values/#efficiency). As a result we will not support this functionality moving forward. + Supporting both GitLab's container registry as well as third-party container registries is challenging for maintenance, code quality, and backward compatibility. This hinders our ability to stay [efficient](https://handbook.gitlab.com/handbook/values/#efficiency). As a result we will not support this functionality moving forward. This change will not impact your ability to pull and push container images to external registries using pipelines. diff --git a/data/deprecations/15-9-managed-licenses-api.yml b/data/deprecations/15-9-managed-licenses-api.yml index cbba35c465c..d4938b4885d 100644 --- a/data/deprecations/15-9-managed-licenses-api.yml +++ b/data/deprecations/15-9-managed-licenses-api.yml @@ -6,4 +6,4 @@ stage: govern issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/390417 body: | - The [Managed Licenses API](https://docs.gitlab.com/ee/api/managed_licenses.html) is now deprecated and is scheduled for removal in GitLab 16.0. + The Managed Licenses API is now deprecated and is scheduled for removal in GitLab 16.0. diff --git a/data/deprecations/15-9-trigger-job-status.yml b/data/deprecations/15-9-trigger-job-status.yml index fb9d93bfb81..d7c25561e7a 100644 --- a/data/deprecations/15-9-trigger-job-status.yml +++ b/data/deprecations/15-9-trigger-job-status.yml @@ -11,7 +11,7 @@ # See the OPTIONAL END OF SUPPORT FIELDS section below if an End of Support period also applies. # # For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements # # Please delete this line and above before submitting your merge request. # diff --git a/data/deprecations/16-0-Vault-integration.yml b/data/deprecations/16-0-Vault-integration.yml index 422852a5477..2f484e15f77 100644 --- a/data/deprecations/16-0-Vault-integration.yml +++ b/data/deprecations/16-0-Vault-integration.yml @@ -11,7 +11,7 @@ # See the OPTIONAL END OF SUPPORT FIELDS section below if an End of Support period also applies. # # For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements # # Please delete this line and above before submitting your merge request. # diff --git a/data/deprecations/16-0-deprecate-omnibus-grafana.yml b/data/deprecations/16-0-deprecate-omnibus-grafana.yml index 4035c3ce44a..c7feaa887a4 100644 --- a/data/deprecations/16-0-deprecate-omnibus-grafana.yml +++ b/data/deprecations/16-0-deprecate-omnibus-grafana.yml @@ -6,7 +6,7 @@ stage: Enablement issue_url: https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/7772 body: | # (required) Do not modify this line, instead modify the lines below. - The version of [Grafana bundled with Omnibus GitLab](https://docs.gitlab.com/omnibus/settings/grafana.html) is + The version of Grafana bundled with Omnibus GitLab is [deprecated and disabled](https://docs.gitlab.com/ee/administration/monitoring/performance/grafana_configuration.html#deprecation-of-bundled-grafana) in 16.0 and will be removed in 16.3. If you are using the bundled Grafana, you must migrate to either: diff --git a/data/deprecations/16-0-deprecate-postgresql-13.yml b/data/deprecations/16-0-deprecate-postgresql-13.yml index 828f9e64ab8..ef52582d732 100644 --- a/data/deprecations/16-0-deprecate-postgresql-13.yml +++ b/data/deprecations/16-0-deprecate-postgresql-13.yml @@ -6,7 +6,7 @@ stage: Enablement issue_url: https://gitlab.com/groups/gitlab-org/-/epics/9065 body: | - GitLab follows an [annual upgrade cadence for PostgreSQL](https://about.gitlab.com/handbook/engineering/development/enablement/data_stores/database/postgresql-upgrade-cadence.html). + GitLab follows an [annual upgrade cadence for PostgreSQL](https://handbook.gitlab.com/handbook/engineering/infrastructure/core-platform/data_stores/database/postgresql-upgrade-cadence/). Support for PostgreSQL 13 is scheduled for removal in GitLab 17.0. In GitLab 17.0, PostgreSQL 14 becomes the minimum required PostgreSQL version. diff --git a/data/deprecations/16-0-fail_null_vault_secrets.yml b/data/deprecations/16-0-fail_null_vault_secrets.yml index c3639717e65..c48d7002e9c 100644 --- a/data/deprecations/16-0-fail_null_vault_secrets.yml +++ b/data/deprecations/16-0-fail_null_vault_secrets.yml @@ -11,7 +11,7 @@ # See the OPTIONAL END OF SUPPORT FIELDS section below if an End of Support period also applies. # # For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements # # Please delete this line and above before submitting your merge request. # diff --git a/data/deprecations/16-0-post-ci-lint.yml b/data/deprecations/16-0-post-ci-lint.yml index 407b0124a83..3b5535c64a4 100644 --- a/data/deprecations/16-0-post-ci-lint.yml +++ b/data/deprecations/16-0-post-ci-lint.yml @@ -1,21 +1,3 @@ -# This is a template for a feature deprecation. -# -# Please refer to the deprecation guidelines to confirm your understanding of the -# definitions for "Deprecation", "End of Support", and "Removal": -# https://docs.gitlab.com/ee/development/deprecation_guidelines/#terminology -# -# Deprecations must be announced at least three releases prior to removal. -# See the OPTIONAL END OF SUPPORT FIELDS section below if an End of Support period also applies. -# -# Breaking changes must happen in a major release. -# -# For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations -# -# Please delete this line and above before submitting your merge request. -# -# REQUIRED FIELDS -# - title: "`POST ci/lint` API endpoint deprecated" # (required) The name of the feature to be deprecated announcement_milestone: "15.7" # (required) The milestone when this feature was first announced as deprecated. removal_milestone: "16.0" # (required) The milestone when this feature is planned to be removed diff --git a/data/deprecations/16-4_support_for_delete_tags_endpoint.yml b/data/deprecations/16-4_support_for_delete_tags_endpoint.yml index ccaf26e4a4f..d2b3a2c59f9 100644 --- a/data/deprecations/16-4_support_for_delete_tags_endpoint.yml +++ b/data/deprecations/16-4_support_for_delete_tags_endpoint.yml @@ -6,7 +6,7 @@ stage: Package # (required) String value of the stage that the feature was created in. e.g., Growth issue_url: https://gitlab.com/gitlab-org/container-registry/-/issues/1094 # (required) Link to the deprecation issue in GitLab body: | # (required) Do not modify this line, instead modify the lines below. - The [Docker Registry HTTP API V2 Spec](https://docs.docker.com/registry/spec/api/), later replaced by the [OCI Distribution Spec](https://github.com/opencontainers/distribution-spec/blob/main/spec.md) did not include a tag delete operation, and an unsafe and slow workaround (involving deleting manifests, not tags) had to be used to achieve the same end. + The Docker Registry HTTP API V2 Spec, later replaced by the [OCI Distribution Spec](https://github.com/opencontainers/distribution-spec/blob/main/spec.md) did not include a tag delete operation, and an unsafe and slow workaround (involving deleting manifests, not tags) had to be used to achieve the same end. Tag deletion is an important function, so we added a tag deletion operation to the GitLab container registry, extending the V2 API beyond the scope of the Docker and OCI distribution spec. diff --git a/data/deprecations/templates/_deprecation_template.md.erb b/data/deprecations/templates/_deprecation_template.md.erb index 9fb703da44b..631def08a8b 100644 --- a/data/deprecations/templates/_deprecation_template.md.erb +++ b/data/deprecations/templates/_deprecation_template.md.erb @@ -37,14 +37,14 @@ For deprecation authors (usually Product Managers and Engineering Managers): - To add a deprecation, use the example.yml file in `/data/deprecations/templates` as a template. - For more information about authoring deprecations, check the the deprecation item guidance: - https://about.gitlab.com/handbook/marketing/blog/release-posts/#update-the-deprecations-and-removals-docs + https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#update-the-deprecations-doc For deprecation reviewers (Technical Writers only): - To update the deprecation doc, run: `bin/rake gitlab:docs:compile_deprecations` - To verify the deprecations doc is up to date, run: `bin/rake gitlab:docs:check_deprecations` - For more information about updating the deprecation doc, see the deprecation doc update guidance: - https://about.gitlab.com/handbook/marketing/blog/release-posts/#update-the-deprecations-and-removals-docs + https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#update-the-deprecations-doc --> {::options parse_block_html="true" /} diff --git a/data/deprecations/templates/example.yml b/data/deprecations/templates/example.yml index e6b8982b3c0..156ab1e4dc8 100644 --- a/data/deprecations/templates/example.yml +++ b/data/deprecations/templates/example.yml @@ -8,7 +8,7 @@ # If an End of Support period applies, see the OPTIONAL section below. # # For more information, see the handbook: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-and-other-planned-breaking-change-announcements # =================== # REQUIRED FIELDS diff --git a/data/whats_new/202206220001_15_1.yml b/data/whats_new/202206220001_15_1.yml index 4a57db233b9..eae52721e69 100644 --- a/data/whats_new/202206220001_15_1.yml +++ b/data/whats_new/202206220001_15_1.yml @@ -5,7 +5,7 @@ # and what types we expect those attribute values to be. All attributes are required. # # For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/index.html#create-mr-for-whats-new-entries +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#creating-an-mr-for-whats-new-entries # # Please delete this line and above before submitting your merge request. diff --git a/data/whats_new/templates/YYYYMMDD0001_XX_YY.yml b/data/whats_new/templates/YYYYMMDD0001_XX_YY.yml index 691db083301..3a5fd158aff 100644 --- a/data/whats_new/templates/YYYYMMDD0001_XX_YY.yml +++ b/data/whats_new/templates/YYYYMMDD0001_XX_YY.yml @@ -5,7 +5,7 @@ # and what types we expect those attribute values to be. All attributes are required. # # For more information please refer to the handbook documentation here: -# https://about.gitlab.com/handbook/marketing/blog/release-posts/index.html#create-mr-for-whats-new-entries +# https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#creating-an-mr-for-whats-new-entries # # Please delete this line and above before submitting your merge request. diff --git a/doc/administration/settings/continuous_integration.md b/doc/administration/settings/continuous_integration.md index 469d2915778..925d4ca4777 100644 --- a/doc/administration/settings/continuous_integration.md +++ b/doc/administration/settings/continuous_integration.md @@ -207,7 +207,7 @@ The default is `150`. ## Maximum downstream pipeline trigger rate -> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/144077) in GitLab 16.10 [with feature flag](../feature_flags.md) named `ci_rate_limit_downstream_pipelines`. Disabled by default. +> - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/144077) in GitLab 16.10. The maximum number of [downstream pipelines](../../ci/pipelines/downstream_pipelines.md) that can be triggered per minute (for a given project, user, and commit) can be set at the instance level. diff --git a/doc/api/integrations.md b/doc/api/integrations.md index bd5717f62a2..0edbf42195f 100644 --- a/doc/api/integrations.md +++ b/doc/api/integrations.md @@ -293,11 +293,14 @@ Get the Buildkite integration settings for a project. GET /projects/:id/integrations/buildkite ``` -## Campfire +## Campfire Classic -### Set up Campfire +You can integrate with Campfire Classic. Note that Campfire Classic is an old product that is +[no longer sold](https://gitlab.com/gitlab-org/gitlab/-/issues/329337) by Basecamp. -Set up the Campfire integration for a project. +### Set up Campfire Classic + +Set up the Campfire Classic integration for a project. ```plaintext PUT /projects/:id/integrations/campfire @@ -307,21 +310,21 @@ Parameters: | Parameter | Type | Required | Description | |---------------|---------|----------|---------------------------------------------------------------------------------------------| -| `token` | string | true | API authentication token from Campfire. To get the token, sign in to Campfire and select **My info**. | +| `token` | string | true | API authentication token from Campfire Classic. To get the token, sign in to Campfire Classic and select **My info**. | | `subdomain` | string | false | `.campfirenow.com` subdomain when you're signed in. | -| `room` | string | false | ID portion of the Campfire room URL. | +| `room` | string | false | ID portion of the Campfire Classic room URL. | -### Disable Campfire +### Disable Campfire Classic -Disable the Campfire integration for a project. Integration settings are reset. +Disable the Campfire Classic integration for a project. Integration settings are reset. ```plaintext DELETE /projects/:id/integrations/campfire ``` -### Get Campfire settings +### Get Campfire Classic settings -Get the Campfire integration settings for a project. +Get the Campfire Classic integration settings for a project. ```plaintext GET /projects/:id/integrations/campfire diff --git a/doc/api/settings.md b/doc/api/settings.md index 7fb30deb79a..af26dd90121 100644 --- a/doc/api/settings.md +++ b/doc/api/settings.md @@ -393,7 +393,7 @@ listed in the descriptions of the relevant settings. | `domain_denylist_enabled` | boolean | no | (**If enabled, requires:** `domain_denylist`) Allows blocking sign-ups from emails from specific domains. | | `domain_denylist` | array of strings | no | Users with email addresses that match these domains **cannot** sign up. Wildcards allowed. Use separate lines for multiple entries. For example: `domain.com`, `*.domain.com`. | | `domain_allowlist` | array of strings | no | Force people to use only corporate emails for sign-up. Default is `null`, meaning there is no restriction. | -| `downstream_pipeline_trigger_limit_per_project_user_sha` | integer | no | [Maximum downstream pipeline trigger rate](../administration/settings/continuous_integration.md#maximum-downstream-pipeline-trigger-rate). Default: `0`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/144077) in GitLab 16.10 with a [flag](../administration/feature_flags.md) named `ci_rate_limit_downstream_pipelines`. Disabled by default. | +| `downstream_pipeline_trigger_limit_per_project_user_sha` | integer | no | [Maximum downstream pipeline trigger rate](../administration/settings/continuous_integration.md#maximum-downstream-pipeline-trigger-rate). Default: `0`. [Introduced](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/144077) in GitLab 16.10. | | `dsa_key_restriction` | integer | no | The minimum allowed bit length of an uploaded DSA key. Default is `0` (no restriction). `-1` disables DSA keys. | | `ecdsa_key_restriction` | integer | no | The minimum allowed curve size (in bits) of an uploaded ECDSA key. Default is `0` (no restriction). `-1` disables ECDSA keys. | | `ecdsa_sk_key_restriction` | integer | no | The minimum allowed curve size (in bits) of an uploaded ECDSA_SK key. Default is `0` (no restriction). `-1` disables ECDSA_SK keys. | diff --git a/doc/architecture/blueprints/secret_detection/index.md b/doc/architecture/blueprints/secret_detection/index.md index c7b485fcbc4..3fef1abcc9f 100644 --- a/doc/architecture/blueprints/secret_detection/index.md +++ b/doc/architecture/blueprints/secret_detection/index.md @@ -1,11 +1,11 @@ --- status: ongoing creation-date: "2022-11-25" -authors: [ "@theoretick" ] -coach: "@DylanGriffith" +authors: [ "@theoretick", "@vbhat161", "@ahmed.hemdan" ] +coach: [ "@theoretick" ] approvers: [ "@connorgilbert", "@amarpatel" ] owning-stage: "~devops::secure" -participating-stages: [] +participating-stages: [ "~devops::systems" ] --- diff --git a/doc/ci/environments/index.md b/doc/ci/environments/index.md index 8e8f5ebc845..bb3480f2622 100644 --- a/doc/ci/environments/index.md +++ b/doc/ci/environments/index.md @@ -1003,11 +1003,15 @@ See [Deployment-only access to protected environments](protected_environments.md ### The job with `action: stop` doesn't run -In some cases, environments do not [stop when a branch is deleted](#stop-an-environment-when-a-branch-is-deleted). +In some cases, environments do not stop despite an `on_stop` job being configured. This happens when the job +with the `action: stop` is not in a runnable state due to its `stages:` or `needs:` configuration. -For example, the environment might start in a stage that also has a job that failed. +For example: + +- The environment might start in a stage that also has a job that failed. Then the jobs in later stages job don't start. If the job with the `action: stop` for the environment is also in a later stage, it can't start and the environment isn't deleted. +- The job with the `action: stop` might have a dependency on a job that has not yet completed. To ensure the `action: stop` can always run when needed, you can: diff --git a/doc/ci/runners/runners_scope.md b/doc/ci/runners/runners_scope.md index a64f8d7acda..5d3f966c22d 100644 --- a/doc/ci/runners/runners_scope.md +++ b/doc/ci/runners/runners_scope.md @@ -661,6 +661,6 @@ you must have the Owner role for the project. 1. Go to the project's **Settings > CI/CD** and expand the **Runners** section. -1. On the details page you should see a row for **IP Address**. +1. Select the runner name and find the **IP Address** row. ![Project runner IP address](img/project_runner_ip_address.png) diff --git a/doc/update/deprecations.md b/doc/update/deprecations.md index 93f47792d2e..2dffdf1a7fc 100644 --- a/doc/update/deprecations.md +++ b/doc/update/deprecations.md @@ -37,14 +37,14 @@ For deprecation authors (usually Product Managers and Engineering Managers): - To add a deprecation, use the example.yml file in `/data/deprecations/templates` as a template. - For more information about authoring deprecations, check the the deprecation item guidance: - https://about.gitlab.com/handbook/marketing/blog/release-posts/#update-the-deprecations-and-removals-docs + https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#update-the-deprecations-doc For deprecation reviewers (Technical Writers only): - To update the deprecation doc, run: `bin/rake gitlab:docs:compile_deprecations` - To verify the deprecations doc is up to date, run: `bin/rake gitlab:docs:check_deprecations` - For more information about updating the deprecation doc, see the deprecation doc update guidance: - https://about.gitlab.com/handbook/marketing/blog/release-posts/#update-the-deprecations-and-removals-docs + https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#update-the-deprecations-doc --> {::options parse_block_html="true" /} @@ -1233,7 +1233,7 @@ set `AUTO_DEVOPS_BUILD_IMAGE_CNB_BUILDER` to `heroku/builder:20`. - To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/container-registry/-/issues/1094). -The [Docker Registry HTTP API V2 Spec](https://docs.docker.com/registry/spec/api/), later replaced by the [OCI Distribution Spec](https://github.com/opencontainers/distribution-spec/blob/main/spec.md) did not include a tag delete operation, and an unsafe and slow workaround (involving deleting manifests, not tags) had to be used to achieve the same end. +The Docker Registry HTTP API V2 Spec, later replaced by the [OCI Distribution Spec](https://github.com/opencontainers/distribution-spec/blob/main/spec.md) did not include a tag delete operation, and an unsafe and slow workaround (involving deleting manifests, not tags) had to be used to achieve the same end. Tag deletion is an important function, so we added a tag deletion operation to the GitLab container registry, extending the V2 API beyond the scope of the Docker and OCI distribution spec. @@ -1529,7 +1529,7 @@ The [`project_fingerprint`](https://gitlab.com/groups/gitlab-org/-/epics/2791) a - To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/groups/gitlab-org/-/epics/9065). -GitLab follows an [annual upgrade cadence for PostgreSQL](https://about.gitlab.com/handbook/engineering/development/enablement/data_stores/database/postgresql-upgrade-cadence.html). +GitLab follows an [annual upgrade cadence for PostgreSQL](https://handbook.gitlab.com/handbook/engineering/infrastructure/core-platform/data_stores/database/postgresql-upgrade-cadence/). Support for PostgreSQL 13 is scheduled for removal in GitLab 17.0. In GitLab 17.0, PostgreSQL 14 becomes the minimum required PostgreSQL version. @@ -2346,7 +2346,7 @@ As a result, the following Rake tasks that relied on legacy code have also been - To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/omnibus-gitlab/-/issues/7772). -The version of [Grafana bundled with Omnibus GitLab](https://docs.gitlab.com/omnibus/settings/grafana.html) is +The version of Grafana bundled with Omnibus GitLab is [deprecated and disabled](https://docs.gitlab.com/ee/administration/monitoring/performance/grafana_configuration.html#deprecation-of-bundled-grafana) in 16.0 and will be removed in 16.3. If you are using the bundled Grafana, you must migrate to either: @@ -2647,7 +2647,7 @@ All Container Scanning variables that are prefixed by `DOCKER_` in variable name - To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/container-registry/-/issues/842). -The container registry [pull-through cache](https://docs.docker.com/registry/recipes/mirror/) is deprecated in GitLab 15.8 and will be removed in GitLab 16.0. The pull-through cache is part of the upstream [Docker Distribution project](https://github.com/distribution/distribution). However, we are removing the pull-through cache in favor of the GitLab Dependency Proxy, which allows you to proxy and cache container images from Docker Hub. Removing the pull-through cache allows us also to remove the upstream client code without sacrificing functionality. +The container registry [pull-through cache](https://docs.docker.com/docker-hub/mirror/) is deprecated in GitLab 15.8 and will be removed in GitLab 16.0. The pull-through cache is part of the upstream [Docker Distribution project](https://github.com/distribution/distribution). However, we are removing the pull-through cache in favor of the GitLab Dependency Proxy, which allows you to proxy and cache container images from Docker Hub. Removing the pull-through cache allows us also to remove the upstream client code without sacrificing functionality. @@ -3207,7 +3207,7 @@ The full GitLab Helm Chart 7.0 upgrade steps will be available in the [upgrade d - To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/390417). -The [Managed Licenses API](https://docs.gitlab.com/ee/api/managed_licenses.html) is now deprecated and is scheduled for removal in GitLab 16.0. +The Managed Licenses API is now deprecated and is scheduled for removal in GitLab 16.0. @@ -3239,7 +3239,7 @@ The [**Maximum number of active pipelines per project** limit](https://docs.gitl By displaying data stored in a Prometheus instance, GitLab allows users to view performance metrics. GitLab also displays visualizations of these metrics in dashboards. The user can connect to a previously-configured external Prometheus instance, or set up Prometheus as a GitLab Managed App. -However, since certificate-based integration with Kubernetes clusters is deprecated in GitLab, the metrics functionality in GitLab that relies on Prometheus is also deprecated. This includes the metrics visualizations in dashboards. GitLab is working to develop a single user experience based on [Opstrace](https://about.gitlab.com/press/releases/2021-12-14-gitlab-acquires-opstrace-to-expand-its-devops-platform-with-open-source-observability-solution.html). An [issue exists](https://gitlab.com/groups/gitlab-org/-/epics/6976) for you to follow work on the Opstrace integration. +However, since certificate-based integration with Kubernetes clusters is deprecated in GitLab, the metrics functionality in GitLab that relies on Prometheus is also deprecated. This includes the metrics visualizations in dashboards. GitLab is working to develop a single user experience based on [Opstrace](https://about.gitlab.com/press/releases/2021-12-14-gitlab-acquires-opstrace-to-expand-its-devops-platform-with-open-source-observability-solution/). An [issue exists](https://gitlab.com/groups/gitlab-org/-/epics/6976) for you to follow work on the Opstrace integration. @@ -3367,7 +3367,7 @@ We are deprecating the `operations_access_level` field in the Projects API. This - To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-com/Product/-/issues/5255). -The [Rake task for importing bare repositories](https://docs.gitlab.com/ee/raketasks/import.html) `gitlab:import:repos` is deprecated in GitLab 15.8 and will be removed in GitLab 16.0. +The Rake task for importing bare repositories (`gitlab:import:repos`) is deprecated in GitLab 15.8 and will be removed in GitLab 16.0. This Rake task imports a directory tree of repositories into a GitLab instance. These repositories must have been managed by GitLab previously, because the Rake task relies on the specific directory structure or a specific custom Git setting in order to work (`gitlab.fullpath`). @@ -3383,7 +3383,7 @@ Alternatives to using the `gitlab:import:repos` Rake task include: - Migrating projects using either [an export file](https://docs.gitlab.com/ee/user/project/settings/import_export.html) or [direct transfer](https://docs.gitlab.com/ee/user/group/import/#migrate-groups-by-direct-transfer-recommended) migrate repositories as well. - Importing a [repository by URL](https://docs.gitlab.com/ee/user/project/import/repo_by_url.html). -- Importing a [repositories from a non-GitLab source](https://docs.gitlab.com/ee/user/project/import/). +- Importing [repositories from a non-GitLab source](https://docs.gitlab.com/ee/user/project/import/). @@ -3667,7 +3667,7 @@ This change affects the following REST and GraphQL API endpoints: - To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-com/Product/-/issues/4894). -The [Phabricator task importer](https://docs.gitlab.com/ee/user/project/import/phabricator.html) is being deprecated. Phabricator itself as a project is no longer actively maintained since June 1, 2021. We haven't observed imports using this tool. There has been no activity on the open related issues on GitLab. +The Phabricator task importer is being deprecated. Phabricator itself as a project is no longer actively maintained since June 1, 2021. We haven't observed imports using this tool. There has been no activity on the open related issues on GitLab. @@ -3748,7 +3748,7 @@ You can use the vulnerabilityFindingDismiss GraphQL mutation to set the status o Using third-party container registries with GitLab as an auth endpoint is deprecated in GitLab 15.8 and the [end of support](https://docs.gitlab.com/ee/development/deprecation_guidelines/#terminology) is scheduled for GitLab 16.0. This impacts self-managed customers that have connected their external registry to the GitLab user interface to find, view, and delete container images. -Supporting both GitLab's container registry as well as third-party container registries is challenging for maintenance, code quality, and backward compatibility. This hinders our ability to stay [efficient](https://about.gitlab.com/handbook/values/#efficiency). As a result we will not support this functionality moving forward. +Supporting both GitLab's container registry as well as third-party container registries is challenging for maintenance, code quality, and backward compatibility. This hinders our ability to stay [efficient](https://handbook.gitlab.com/handbook/values/#efficiency). As a result we will not support this functionality moving forward. This change will not impact your ability to pull and push container images to external registries using pipelines. @@ -3861,7 +3861,7 @@ To avoid confusion and duplication, the `environment_tier` parameter is deprecat - To discuss this change or learn more, see the [deprecation issue](https://gitlab.com/gitlab-org/gitlab/-/issues/334018). -The `started` iteration state in the [iterations GraphQL API](https://https://docs.gitlab.com/ee/api/graphql/reference/index.html#iterationstate) +The `started` iteration state in the [iterations GraphQL API](https://docs.gitlab.com/ee/api/graphql/reference/index.html#iterationstate) and [iterations REST API](https://docs.gitlab.com/ee/api/iterations.html#list-project-iterations) is deprecated. The GraphQL API version will be removed in GitLab 16.0. This state is being replaced with the `current` state (already available) @@ -4084,7 +4084,7 @@ This is not expected to cause any incompatibilities with the previous version of GitLab SAST uses various [analyzers](https://docs.gitlab.com/ee/user/application_security/sast/analyzers/) to scan code for vulnerabilities. We are reducing the number of analyzers used in GitLab SAST as part of our long-term strategy to deliver a better and more consistent user experience. -Streamlining the set of analyzers will also enable faster [iteration](https://about.gitlab.com/handbook/values/#iteration), better [results](https://about.gitlab.com/handbook/values/#results), and greater [efficiency](https://about.gitlab.com/handbook/values/#efficiency) (including a reduction in CI runner usage in most cases). +Streamlining the set of analyzers will also enable faster [iteration](https://handbook.gitlab.com/handbook/values/#iteration), better [results](https://handbook.gitlab.com/handbook/values/#results), and greater [efficiency](https://handbook.gitlab.com/handbook/values/#efficiency) (including a reduction in CI runner usage in most cases). In GitLab 15.4, GitLab SAST will no longer use the following analyzers: @@ -4098,7 +4098,7 @@ This change was originally planned for GitLab 15.0 and was postponed to GitLab 1 These analyzers will be removed from the [GitLab-managed SAST CI/CD template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Security/SAST.gitlab-ci.yml) and replaced with the [Semgrep-based analyzer](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep). Effective immediately, they will receive only security updates; other routine improvements or updates are not guaranteed. After these analyzers reach End of Support, no further updates will be provided. -We will not delete container images previously published for these analyzers; any such change would be announced as a [deprecation, removal, or breaking change announcement](https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes). +We will not delete container images previously published for these analyzers; any such change would be announced as a [deprecation, removal, or breaking change announcement](https://handbook.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes). We will also remove Java from the scope of the [SpotBugs](https://gitlab.com/gitlab-org/security-products/analyzers/spotbugs) analyzer and replace it with the [Semgrep-based analyzer](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep). This change will make it simpler to scan Java code; compilation will no longer be required. @@ -4938,7 +4938,7 @@ For more information, check the [summary section of the deprecation issue](https The [required pipeline configuration](https://docs.gitlab.com/ee/administration/settings/continuous_integration.html#required-pipeline-configuration) feature is deprecated in GitLab 14.8 for Premium customers and is scheduled for removal in GitLab 15.0. This feature is not deprecated for GitLab Ultimate customers. -This change to move the feature to GitLab's Ultimate tier is intended to help our features better align with our [pricing philosophy](https://about.gitlab.com/company/pricing/#three-tiers) as we see demand for this feature originating primarily from executives. +This change to move the feature to GitLab's Ultimate tier is intended to help our features better align with our [pricing philosophy](https://handbook.gitlab.com/handbook/company/pricing/#three-tiers) as we see demand for this feature originating primarily from executives. This change will also help GitLab remain consistent in its tiering strategy with the other related Ultimate-tier features of: [Security policies](https://docs.gitlab.com/ee/user/application_security/policies/) and [compliance framework pipelines](https://docs.gitlab.com/ee/user/project/settings/index.html#compliance-pipeline-configuration). diff --git a/doc/user/analytics/dora_metrics.md b/doc/user/analytics/dora_metrics.md index c49d411d354..31f2d128ca8 100644 --- a/doc/user/analytics/dora_metrics.md +++ b/doc/user/analytics/dora_metrics.md @@ -115,12 +115,13 @@ High change failure rate may indicate an inefficient deployment process or insuf ### How change failure rate is calculated In GitLab, change failure rate is measured as the percentage of deployments that cause an incident in production in the given time period. -GitLab calculates this as the number of incidents divided by the number of deployments to a production environment. This assumes: +GitLab calculates change failure rate as the number of incidents divided by the number of deployments to a production environment. This calculation assumes: - [GitLab incidents](../../operations/incident_management/incidents.md) are tracked. -- All incidents are related to a production environment. -- Incidents and deployments have a strictly one-to-one relationship. An incident is related to only one production deployment, and any production deployment is related to no - more than one incident. +- All incidents are production incidents, regardless of the environment. +- Change failure rate is used primarily as high-level stability tracking, which is why in a given day, all incidents and deployments are aggregated into a joined daily rate. Adding specific relations between deployments and incidents is proposed in [issue 444295](https://gitlab.com/gitlab-org/gitlab/-/issues/444295). + +For example, if you have 10 deployments (considering one deployment per day) with two incidents on the first day and one incident on the last day, then your change failure rate is 0.3. ### How to improve change failure rate diff --git a/doc/user/group/access_and_permissions.md b/doc/user/group/access_and_permissions.md index 28a2612c7ec..612da1ad572 100644 --- a/doc/user/group/access_and_permissions.md +++ b/doc/user/group/access_and_permissions.md @@ -225,12 +225,14 @@ DETAILS: > - [Introduced](https://gitlab.com/gitlab-org/gitlab/-/issues/216987) in GitLab 13.3. By default, projects in a group can be forked. -Optionally, on [GitLab Premium and Ultimate tiers](https://about.gitlab.com/pricing/), +In [GitLab Premium and Ultimate tiers](https://about.gitlab.com/pricing/), you can prevent the projects in a group from being forked outside of the current top-level group. -This setting is removed from the SAML setting page, and migrated to the -group settings page. In the interim period, both of these settings are taken into consideration. -If even one is set to `true`, then the group does not allow outside forks. +Prerequisites: + +- This setting is enabled on the top-level group only. +- All subgroups inherit this setting from the top-level group, and it cannot be + changed at the subgroup level. To prevent projects from being forked outside the group: diff --git a/doc/user/project/settings/project_features_permissions.md b/doc/user/project/settings/project_features_permissions.md index 0b14b744b17..da345ca4891 100644 --- a/doc/user/project/settings/project_features_permissions.md +++ b/doc/user/project/settings/project_features_permissions.md @@ -137,8 +137,9 @@ You can assign a topic to several projects. For example, you can create and assign the topics `python` and `hackathon` to all projects that use Python and are intended for Hackathon contributions. -Topics assigned to a project are listed in the **Project overview**, below the project name and activity information. +Topics assigned to a project are displayed in the **Project overview** and [**Projects**](../working_with_projects.md#view-all-projects-for-the-instance) lists, below the project information description. +NOTE: Only users with access to the project can see the topics assigned to that project, but everyone (including unauthenticated users) can see the topics available on the GitLab instance. Do not include sensitive information in the name of a topic. @@ -149,28 +150,30 @@ To explore project topics: 1. On the left sidebar, select **Search or go to**. 1. Select **Explore**. -1. On the left sidebar, select **Topics**. -1. To view projects associated with a topic, select a topic. - -The **Explore topics** page shows a list of projects with this topic. +1. On the left sidebar, select **Topics**. The **Explore topics** page displays a list of all project topics. +1. Optional. To filter topics by name, in the search box, enter your search criteria. +1. To view the projects associated with a topic, select a topic. + You can also access a topic page with the URL `https://gitlab.com/explore/projects/topics/`. ### Filter and sort topics -You can filter the list of projects that have a certain topic by: +On the project topic page, you can filter the list of projects that have that topic by: - Name - Language -- Owner -- Archive status - Visibility +- Owner +- Archived projects -You can sort the projects by: +You can also sort the projects by: -- Date created -- Date updated +- Date - Name - Number of stars +- To filter projects by name, in the search box, enter your search criteria. +- To sort projects by other criteria, from the dropdown lists, select an option. + ### Subscribe to a topic If you want to know when new projects are added to a topic, you can use its RSS feed. diff --git a/lib/banzai/filter/task_list_filter.rb b/lib/banzai/filter/task_list_filter.rb index 4f39a25ff68..595f1590611 100644 --- a/lib/banzai/filter/task_list_filter.rb +++ b/lib/banzai/filter/task_list_filter.rb @@ -37,7 +37,7 @@ module Banzai # Pattern used to identify all task list items. # Useful when you need iterate over all items. NEWITEMPATTERN = / - ^ + \A (?:\s*[-+*]|(?:\d+\.))? # optional list prefix \s* # optional whitespace prefix ( # checkbox diff --git a/locale/gitlab.pot b/locale/gitlab.pot index d2058b1dd49..9998275b143 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -53992,9 +53992,6 @@ msgstr "" msgid "UsageQuota|Job artifacts created by CI/CD." msgstr "" -msgid "UsageQuota|Learn more about usage quotas" -msgstr "" - msgid "UsageQuota|Learn more about usage quotas." msgstr "" @@ -54151,7 +54148,7 @@ msgstr "" msgid "UsageQuota|Usage of group resources across the projects in the %{strong_start}%{group_name}%{strong_end} group" msgstr "" -msgid "UsageQuota|Usage of project resources across the %{strong_start}%{project_name}%{strong_end} project" +msgid "UsageQuota|Usage of project resources across the %{strong_start}%{project_name}%{strong_end} project." msgstr "" msgid "UsageQuota|Usage of resources across your projects" diff --git a/package.json b/package.json index cb9c044d114..fae67583e1f 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,7 @@ "@gitlab/favicon-overlay": "2.0.0", "@gitlab/fonts": "^1.3.0", "@gitlab/svgs": "3.88.0", - "@gitlab/ui": "77.1.0", + "@gitlab/ui": "77.6.0", "@gitlab/visual-review-tools": "1.7.3", "@gitlab/web-ide": "^0.0.1-dev-20240226152102", "@mattiasbuelens/web-streams-adapter": "^0.1.0", diff --git a/scripts/gitlab_component_helpers.sh b/scripts/gitlab_component_helpers.sh index 3d9f996e7c0..e16770760ff 100644 --- a/scripts/gitlab_component_helpers.sh +++ b/scripts/gitlab_component_helpers.sh @@ -8,13 +8,19 @@ source scripts/packages/helpers.sh export CURL_TOKEN_HEADER="${CURL_TOKEN_HEADER:-"JOB-TOKEN"}" export GITLAB_COM_CANONICAL_PROJECT_ID="278964" # https://gitlab.com/gitlab-org/gitlab +export GITLAB_COM_CANONICAL_FOSS_PROJECT_ID="13083" # https://gitlab.com/gitlab-org/gitlab-foss export JIHULAB_COM_CANONICAL_PROJECT_ID="13953" # https://jihulab.com/gitlab-cn/gitlab export CANONICAL_PROJECT_ID="${GITLAB_COM_CANONICAL_PROJECT_ID}" # By default, we only want to store/retrieve packages from GitLab.com... export API_V4_URL="https://gitlab.com/api/v4" -# Unless we're in the JiHu project, which needs to use its own package registry +# If it's a FOSS repository, it needs to use FOSS package registry +if [[ ! -d "ee/" ]]; then + export CANONICAL_PROJECT_ID="${GITLAB_COM_CANONICAL_FOSS_PROJECT_ID}" +fi + +# If it's in the JiHu project, it needs to use its own package registry if [[ "${CI_SERVER_HOST}" = "jihulab.com" ]]; then export API_V4_URL="${CI_API_V4_URL}" export CANONICAL_PROJECT_ID="${JIHULAB_COM_CANONICAL_PROJECT_ID}" diff --git a/scripts/setup/generate-as-if-foss-env.rb b/scripts/setup/generate-as-if-foss-env.rb index e0a3dbddd74..71db2101f0c 100755 --- a/scripts/setup/generate-as-if-foss-env.rb +++ b/scripts/setup/generate-as-if-foss-env.rb @@ -74,13 +74,15 @@ class GenerateAsIfFossEnv end def detect_other_jobs(job) + # rubocop:disable Lint/AssignmentInCondition -- More clear without this cop if FOSS_JOBS.member?(job.name) other_jobs << job.name - else - jest_type = job.name[%r{^(jest(?:-\w+)?)(?: \d+/\d+)?$}, 1] - - other_jobs << jest_type if jest_type + elsif jest_type = job.name[%r{^(jest(?:-\w+)?)(?: \d+/\d+)?$}, 1] + other_jobs << jest_type + elsif cache_assets_type = job.name[%r{^(cache-assets)\b}, 1] + other_jobs << cache_assets_type end + # rubocop:enable Lint/AssignmentInCondition end def rspec_variables diff --git a/spec/frontend/clusters_list/components/clusters_actions_spec.js b/spec/frontend/clusters_list/components/clusters_actions_spec.js index 6957862dc2b..5265d092181 100644 --- a/spec/frontend/clusters_list/components/clusters_actions_spec.js +++ b/spec/frontend/clusters_list/components/clusters_actions_spec.js @@ -5,7 +5,7 @@ import { GlTooltip, GlButtonGroup, } from '@gitlab/ui'; -import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; +import { mountExtended } from 'helpers/vue_test_utils_helper'; import ClustersActions from '~/clusters_list/components/clusters_actions.vue'; import { createMockDirective, getBinding } from 'helpers/vue_mock_directive'; import { INSTALL_AGENT_MODAL_ID, CLUSTERS_ACTIONS } from '~/clusters_list/constants'; @@ -36,7 +36,7 @@ describe('ClustersActionsComponent', () => { const findConnectClusterLink = () => wrapper.findByTestId('connect-cluster-link'); const createWrapper = (provideData = {}) => { - wrapper = shallowMountExtended(ClustersActions, { + wrapper = mountExtended(ClustersActions, { provide: { ...defaultProvide, ...provideData, diff --git a/spec/frontend/content_editor/services/autocomplete_helper_spec.js b/spec/frontend/content_editor/services/autocomplete_helper_spec.js index abbc60c2288..ab2ec2aa83b 100644 --- a/spec/frontend/content_editor/services/autocomplete_helper_spec.js +++ b/spec/frontend/content_editor/services/autocomplete_helper_spec.js @@ -19,7 +19,10 @@ import { MOCK_REVIEWERS, } from './autocomplete_mock_data'; -jest.mock('~/emoji'); +jest.mock('~/emoji', () => ({ + initEmojiMap: () => jest.fn(), + getAllEmoji: () => [{ name: 'thumbsup' }], +})); describe('defaultSorter', () => { it('returns items as is if query is empty', () => { @@ -151,6 +154,8 @@ describe('AutocompleteHelper', () => { afterEach(() => { mock.restore(); + delete gl.GfmAutoComplete; + jest.spyOn(Date, 'now').mockImplementation(() => dateNowOld); }); @@ -212,4 +217,13 @@ describe('AutocompleteHelper', () => { '/gitlab-org/gitlab-test/-/autocomplete_sources/members', ); }); + + it("loads emoji if dataSources doesn't exist", async () => { + autocompleteHelper = new AutocompleteHelper({}); + + const dataSource = autocompleteHelper.getDataSource('emoji'); + const results = await dataSource.search(''); + + expect(results).toEqual([{ emoji: { name: 'thumbsup' }, fieldValue: 'thumbsup' }]); + }); }); diff --git a/spec/frontend/super_sidebar/components/global_search/components/global_search_autocomplete_items_spec.js b/spec/frontend/super_sidebar/components/global_search/components/global_search_autocomplete_items_spec.js index a2cec411d9f..2a04f64f70d 100644 --- a/spec/frontend/super_sidebar/components/global_search/components/global_search_autocomplete_items_spec.js +++ b/spec/frontend/super_sidebar/components/global_search/components/global_search_autocomplete_items_spec.js @@ -5,7 +5,7 @@ import { GlAvatar, GlAlert, } from '@gitlab/ui'; -import { shallowMount } from '@vue/test-utils'; +import { mount } from '@vue/test-utils'; import Vue from 'vue'; // eslint-disable-next-line no-restricted-imports import Vuex from 'vuex'; @@ -37,7 +37,7 @@ describe('GlobalSearchAutocompleteItems', () => { }, }); - wrapper = shallowMount(GlobalSearchAutocompleteItems, { + wrapper = mount(GlobalSearchAutocompleteItems, { store, propsData: { ...props, diff --git a/spec/frontend/super_sidebar/components/global_search/components/global_search_scoped_items_spec.js b/spec/frontend/super_sidebar/components/global_search/components/global_search_scoped_items_spec.js index 1f74dd17f5c..dfe32897131 100644 --- a/spec/frontend/super_sidebar/components/global_search/components/global_search_scoped_items_spec.js +++ b/spec/frontend/super_sidebar/components/global_search/components/global_search_scoped_items_spec.js @@ -1,5 +1,5 @@ import { GlDisclosureDropdownGroup, GlDisclosureDropdownItem } from '@gitlab/ui'; -import { shallowMount } from '@vue/test-utils'; +import { mount } from '@vue/test-utils'; import Vue from 'vue'; // eslint-disable-next-line no-restricted-imports import Vuex from 'vuex'; @@ -29,7 +29,7 @@ describe('GlobalSearchScopedItems', () => { }, }); - wrapper = shallowMount(GlobalSearchScopedItems, { + wrapper = mount(GlobalSearchScopedItems, { store, propsData: { ...props, diff --git a/spec/frontend/super_sidebar/components/user_menu_profile_item_spec.js b/spec/frontend/super_sidebar/components/user_menu_profile_item_spec.js index 9cf55154a59..ac80188dac1 100644 --- a/spec/frontend/super_sidebar/components/user_menu_profile_item_spec.js +++ b/spec/frontend/super_sidebar/components/user_menu_profile_item_spec.js @@ -1,5 +1,5 @@ import { GlDisclosureDropdownItem, GlTooltip } from '@gitlab/ui'; -import { shallowMountExtended } from 'helpers/vue_test_utils_helper'; +import { mountExtended } from 'helpers/vue_test_utils_helper'; import UserMenuProfileItem from '~/super_sidebar/components/user_menu_profile_item.vue'; import { userMenuMockData, userMenuMockStatus } from '../mock_data'; @@ -13,7 +13,7 @@ describe('UserMenuProfileItem component', () => { const GlEmoji = { template: '' }; const createWrapper = (userDataChanges = {}) => { - wrapper = shallowMountExtended(UserMenuProfileItem, { + wrapper = mountExtended(UserMenuProfileItem, { propsData: { user: { ...userMenuMockData, diff --git a/spec/lib/banzai/filter/task_list_filter_spec.rb b/spec/lib/banzai/filter/task_list_filter_spec.rb index 3eef6761153..908abbf73e2 100644 --- a/spec/lib/banzai/filter/task_list_filter_spec.rb +++ b/spec/lib/banzai/filter/task_list_filter_spec.rb @@ -11,6 +11,23 @@ RSpec.describe Banzai::Filter::TaskListFilter, feature_category: :team_planning expect(doc.xpath('.//li//task-button').count).to eq(2) end + it 'ignores checkbox on following line' do + doc = filter( + <<~HTML + + HTML + ) + + expect(doc.xpath('.//li//input').count).to eq(0) + end + describe 'inapplicable list items' do shared_examples 'a valid inapplicable task list item' do |html| it "behaves correctly for `#{html}`" do diff --git a/spec/scripts/setup/generate_as_if_foss_env_spec.rb b/spec/scripts/setup/generate_as_if_foss_env_spec.rb index bafe306bbe5..94c87c445d0 100644 --- a/spec/scripts/setup/generate_as_if_foss_env_spec.rb +++ b/spec/scripts/setup/generate_as_if_foss_env_spec.rb @@ -36,6 +36,7 @@ RSpec.describe GenerateAsIfFossEnv, feature_category: :tooling do 'compile-production-assets', 'compile-storybook', 'compile-test-assets', + 'cache-assets:test', 'eslint', 'generate-apollo-graphql-schema', 'graphql-schema-dump', @@ -82,6 +83,7 @@ RSpec.describe GenerateAsIfFossEnv, feature_category: :tooling do ENABLE_COMPILE_PRODUCTION_ASSETS: 'true', ENABLE_COMPILE_STORYBOOK: 'true', ENABLE_COMPILE_TEST_ASSETS: 'true', + ENABLE_CACHE_ASSETS: 'true', ENABLE_ESLINT: 'true', ENABLE_GENERATE_APOLLO_GRAPHQL_SCHEMA: 'true', ENABLE_GRAPHQL_SCHEMA_DUMP: 'true', @@ -118,6 +120,7 @@ RSpec.describe GenerateAsIfFossEnv, feature_category: :tooling do ENABLE_COMPILE_PRODUCTION_ASSETS=true ENABLE_COMPILE_STORYBOOK=true ENABLE_COMPILE_TEST_ASSETS=true + ENABLE_CACHE_ASSETS=true ENABLE_ESLINT=true ENABLE_GENERATE_APOLLO_GRAPHQL_SCHEMA=true ENABLE_GRAPHQL_SCHEMA_DUMP=true diff --git a/spec/services/ci/trigger_downstream_pipeline_service_spec.rb b/spec/services/ci/trigger_downstream_pipeline_service_spec.rb index 299f765b95c..9761353dc60 100644 --- a/spec/services/ci/trigger_downstream_pipeline_service_spec.rb +++ b/spec/services/ci/trigger_downstream_pipeline_service_spec.rb @@ -80,23 +80,6 @@ RSpec.describe Ci::TriggerDownstreamPipelineService, feature_category: :continuo it_behaves_like 'creates a log entry', 'child' end - - context 'when FF `ci_rate_limit_downstream_pipelines` is disabled' do - before do - stub_feature_flags(ci_rate_limit_downstream_pipelines: false) - end - - it 'schedules the downstream pipeline worker' do - service.execute - - expect { execute }.to change { ::Ci::CreateDownstreamPipelineWorker.jobs.size }.by(1) - expect(bridge).not_to be_failed - expect(execute).to be_success - expect(execute.message).to eq('Downstream pipeline enqueued') - end - - it_behaves_like 'creates a log entry' - end end context 'when the limit is not exceeded' do diff --git a/vite.config.js b/vite.config.js index 53d439cd80d..c74ef145b42 100644 --- a/vite.config.js +++ b/vite.config.js @@ -169,4 +169,7 @@ export default defineConfig({ ], }, }, + worker: { + format: 'es', + }, }); diff --git a/yarn.lock b/yarn.lock index d7c37973047..32028b03532 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1326,10 +1326,10 @@ resolved "https://registry.yarnpkg.com/@gitlab/svgs/-/svgs-3.88.0.tgz#f57bd0ea94866038b19d94a2fa815d54f10c2c09" integrity sha512-j2C+Ddt2LcJTf2hQZZ6sybsiQ/mMnZG4wKmJfM5YjXR5qPVaAUyH+MHnvPGcHnt+tMYr2P52zlcpsQa6WB5xeQ== -"@gitlab/ui@77.1.0": - version "77.1.0" - resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-77.1.0.tgz#51ac399bc4aaeb4781f3777e579e88f0e9efbb27" - integrity sha512-splN4opsOBrhqUypXjWms/kjVl/tPBNMgU1taQoAfAyIZ/iscnYHawDu5VBOKX0vfWknbTAO1DO05kKwKifXqg== +"@gitlab/ui@77.6.0": + version "77.6.0" + resolved "https://registry.yarnpkg.com/@gitlab/ui/-/ui-77.6.0.tgz#8915af5870bd70c6b07b2ec5e0c76dc794536063" + integrity sha512-Hl6EkBU1kNn5hV639pVOF1vKehYMhzc9TbY99gIuvMDS+zL8CkbQIVYdP+RAuLBhSy+GwO6Fg+t9OjbMBgSJSQ== dependencies: "@floating-ui/dom" "1.4.3" bootstrap-vue "2.23.1"