summaryrefslogtreecommitdiff
path: root/.gitlab
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-08-19 09:08:42 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-08-19 09:08:42 +0000
commitb76ae638462ab0f673e5915986070518dd3f9ad3 (patch)
treebdab0533383b52873be0ec0eb4d3c66598ff8b91 /.gitlab
parent434373eabe7b4be9593d18a585fb763f1e5f1a6f (diff)
downloadgitlab-ce-b76ae638462ab0f673e5915986070518dd3f9ad3.tar.gz
Add latest changes from gitlab-org/gitlab@14-2-stable-eev14.2.0-rc42
Diffstat (limited to '.gitlab')
-rw-r--r--.gitlab/CODEOWNERS5
-rw-r--r--.gitlab/ci/build-images.gitlab-ci.yml3
-rw-r--r--.gitlab/ci/cng.gitlab-ci.yml2
-rw-r--r--.gitlab/ci/docs.gitlab-ci.yml2
-rw-r--r--.gitlab/ci/frontend.gitlab-ci.yml4
-rw-r--r--.gitlab/ci/pages.gitlab-ci.yml20
-rw-r--r--.gitlab/ci/qa.gitlab-ci.yml3
-rw-r--r--.gitlab/ci/rails.gitlab-ci.yml41
-rw-r--r--.gitlab/ci/reports.gitlab-ci.yml16
-rw-r--r--.gitlab/ci/review.gitlab-ci.yml15
-rw-r--r--.gitlab/ci/rules.gitlab-ci.yml240
-rw-r--r--.gitlab/ci/test-metadata.gitlab-ci.yml1
-rw-r--r--.gitlab/issue_templates/Design Sprint.md4
-rw-r--r--.gitlab/issue_templates/Geo Replicate a new Git repository type.md70
-rw-r--r--.gitlab/issue_templates/Geo Replicate a new blob type.md2
-rw-r--r--.gitlab/issue_templates/Problem Validation.md7
-rw-r--r--.gitlab/issue_templates/Security developer workflow.md2
-rw-r--r--.gitlab/issue_templates/Task for Configure group.md9
-rw-r--r--.gitlab/merge_request_templates/Change Documentation Location.md10
-rw-r--r--.gitlab/merge_request_templates/Documentation.md33
20 files changed, 336 insertions, 153 deletions
diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS
index c7da1c5bebc..ae697582623 100644
--- a/.gitlab/CODEOWNERS
+++ b/.gitlab/CODEOWNERS
@@ -49,7 +49,6 @@
/doc/user/clusters/ @marcia
/doc/user/compliance/ @rdickenson @eread
/doc/user/group/ @msedlakjakubowski
-/doc/user/group/bulk_editing/ @msedlakjakubowski
/doc/user/group/devops_adoption/ @msedlakjakubowski
/doc/user/group/epics/ @msedlakjakubowski
/doc/user/group/insights/ @msedlakjakubowski
@@ -115,7 +114,7 @@
/doc/api/tags.md @aqualls
/doc/api/visual_review_discussions.md @aqualls
/doc/api/wikis.md @aqualls
-/doc/intro/README.md @aqualls
+/doc/intro/index.md @aqualls
/doc/topics/gitlab_flow.md @aqualls
/doc/user/admin_area/settings/account_and_limit_settings.md @aqualls
/doc/user/admin_area/settings/instance_template_repository.md @aqualls
@@ -145,7 +144,7 @@
/doc/api/experiments.md @kpaizee
/doc/development/experiment_guide/ @kpaizee
/doc/development/snowplow/ @kpaizee
-/doc/development/usage_ping/ @kpaizee
+/doc/development/service_ping/ @kpaizee
/doc/user/admin_area/license.md @kpaizee
[Frontend]
diff --git a/.gitlab/ci/build-images.gitlab-ci.yml b/.gitlab/ci/build-images.gitlab-ci.yml
index 853f92ed98d..0169f017063 100644
--- a/.gitlab/ci/build-images.gitlab-ci.yml
+++ b/.gitlab/ci/build-images.gitlab-ci.yml
@@ -25,10 +25,9 @@ build-qa-image:
- .build-images:rules:build-qa-image
stage: build-images
needs: []
- variables:
- QA_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_REF_SLUG}"
script:
- !reference [.base-image-build, script]
+ - echo $QA_IMAGE
- /kaniko/executor --context=${CI_PROJECT_DIR} --dockerfile=${CI_PROJECT_DIR}/qa/Dockerfile --destination=${QA_IMAGE} --cache=true
# This image is used by:
diff --git a/.gitlab/ci/cng.gitlab-ci.yml b/.gitlab/ci/cng.gitlab-ci.yml
index f75497c1a3f..bf439288be2 100644
--- a/.gitlab/ci/cng.gitlab-ci.yml
+++ b/.gitlab/ci/cng.gitlab-ci.yml
@@ -7,4 +7,4 @@ cloud-native-image:
GIT_DEPTH: "1"
script:
- install_gitlab_gem
- - CNG_PROJECT_PATH="gitlab-org/build/CNG" ./scripts/trigger-build cng
+ - ./scripts/trigger-build cng
diff --git a/.gitlab/ci/docs.gitlab-ci.yml b/.gitlab/ci/docs.gitlab-ci.yml
index 60025c244f1..ea3e3ac450b 100644
--- a/.gitlab/ci/docs.gitlab-ci.yml
+++ b/.gitlab/ci/docs.gitlab-ci.yml
@@ -44,7 +44,7 @@ docs-lint markdown:
- .default-retry
- .docs:rules:docs-lint
# When updating the image version here, update it in /scripts/lint-doc.sh too.
- image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-markdown:alpine-3.13-vale-2.10.2-markdownlint-0.26.0
+ image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-markdown:alpine-3.14-vale-2.10.4-markdownlint-0.28.1
stage: test
needs: []
script:
diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml
index 318ac20435e..bfc38e73bb5 100644
--- a/.gitlab/ci/frontend.gitlab-ci.yml
+++ b/.gitlab/ci/frontend.gitlab-ci.yml
@@ -143,7 +143,7 @@ rspec-ee frontend_fixture:
extends:
- .frontend-fixtures-base
- .frontend:rules:default-frontend-jobs-ee
- parallel: 2
+ parallel: 3
graphql-schema-dump:
variables:
@@ -242,7 +242,7 @@ jest:
- tmp/tests/frontend/
reports:
junit: junit_jest.xml
- parallel: 4
+ parallel: 5
jest-integration:
extends:
diff --git a/.gitlab/ci/pages.gitlab-ci.yml b/.gitlab/ci/pages.gitlab-ci.yml
index e75b0db9071..2f43e974cf6 100644
--- a/.gitlab/ci/pages.gitlab-ci.yml
+++ b/.gitlab/ci/pages.gitlab-ci.yml
@@ -7,22 +7,32 @@ pages:
- .default-retry
- .pages:rules
stage: pages
+ environment: pages
+ resource_group: pages
needs:
- - rspec:coverage
- - coverage-frontend
- - karma
- - compile-production-assets
- - compile-storybook
+ - job: "rspec:coverage"
+ - job: "coverage-frontend"
+ - job: "karma"
+ - job: "compile-production-assets"
+ - job: "compile-storybook"
+ # `update-tests-metadata` only runs on GitLab.com's EE schedules pipelines
+ # while `pages` runs for all the 2-hourly schedules.
+ - job: "update-tests-metadata"
+ optional: true
before_script:
- apt-get update && apt-get -y install brotli gzip
script:
- mv public/ .public/
- mkdir public/
+ - mkdir -p public/$(dirname "$KNAPSACK_RSPEC_SUITE_REPORT_PATH") public/$(dirname "$FLAKY_RSPEC_SUITE_REPORT_PATH") public/$(dirname "$RSPEC_PACKED_TESTS_MAPPING_PATH")
- mv coverage/ public/coverage-ruby/ || true
- mv coverage-frontend/ public/coverage-frontend/ || true
- mv coverage-javascript/ public/coverage-javascript/ || true
- mv storybook/public public/storybook || true
- cp .public/assets/application-*.css public/application.css || true
+ - mv $KNAPSACK_RSPEC_SUITE_REPORT_PATH public/$KNAPSACK_RSPEC_SUITE_REPORT_PATH || true
+ - mv $FLAKY_RSPEC_SUITE_REPORT_PATH public/$FLAKY_RSPEC_SUITE_REPORT_PATH || true
+ - mv $RSPEC_PACKED_TESTS_MAPPING_PATH.gz public/$RSPEC_PACKED_TESTS_MAPPING_PATH.gz || true
- *compress-public
artifacts:
paths:
diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml
index 8bbd7dbf075..c3e6de76894 100644
--- a/.gitlab/ci/qa.gitlab-ci.yml
+++ b/.gitlab/ci/qa.gitlab-ci.yml
@@ -51,9 +51,10 @@ update-qa-cache:
image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine
stage: qa
retry: 0
- script:
+ before_script:
- source scripts/utils.sh
- install_gitlab_gem
+ script:
- ./scripts/trigger-build omnibus
package-and-qa:
diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml
index 179c00b479c..f4b001ed1ba 100644
--- a/.gitlab/ci/rails.gitlab-ci.yml
+++ b/.gitlab/ci/rails.gitlab-ci.yml
@@ -29,7 +29,6 @@
variables:
RUBY_GC_MALLOC_LIMIT: 67108864
RUBY_GC_MALLOC_LIMIT_MAX: 134217728
- CRYSTALBALL: "true"
RECORD_DEPRECATIONS: "true"
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets", "detect-tests"]
script:
@@ -394,8 +393,7 @@ db:migrate-from-previous-major-version:
- sed -i -e "s/gem 'google-protobuf', '~> 3.8.0'/gem 'google-protobuf', '~> 3.12'/" Gemfile
- sed -i -e "s/gem 'nokogiri', '~> 1.10.5'/gem 'nokogiri', '~> 1.11.0'/" Gemfile
- sed -i -e "s/gem 'mimemagic', '~> 0.3.2'/gem 'ruby-magic', '~> 0.4.0'/" Gemfile
- - run_timed_command "gem install bundler:1.17.3"
- - run_timed_command "bundle update google-protobuf nokogiri grpc mimemagic bootsnap"
+ - run_timed_command "bundle update --bundler google-protobuf nokogiri grpc mimemagic bootsnap"
- SETUP_DB=false USE_BUNDLE_INSTALL=true bash scripts/prepare_build.sh
- run_timed_command "bundle exec rake db:drop db:create db:structure:load db:migrate db:seed_fu"
- git checkout -f $CI_COMMIT_SHA
@@ -449,7 +447,9 @@ db:backup_and_restore:
- date
- bundle exec rake gitlab:backup:restore
rules:
- - changes: ["lib/backup/**/*"]
+ - changes:
+ - "lib/backup/**/*"
+ - "lib/tasks/gitlab/backup.rake"
rspec:deprecations:
extends:
@@ -645,36 +645,33 @@ rspec-ee unit pg12 geo:
- .rails:rules:ee-only-unit
- .rspec-ee-unit-geo-parallel
-# FIXME: Temporarily disable geo minimal rspec jobs https://gitlab.com/gitlab-org/gitlab/-/issues/294212
-#rspec-ee unit pg12 geo minimal:
-# extends:
-# - rspec-ee unit pg12 geo
-# - .minimal-rspec-tests
-# - .rails:rules:ee-only-unit:minimal
+rspec-ee unit pg12 geo minimal:
+ extends:
+ - rspec-ee unit pg12 geo
+ - .minimal-rspec-tests
+ - .rails:rules:ee-only-unit:minimal
rspec-ee integration pg12 geo:
extends:
- .rspec-ee-base-geo-pg12
- .rails:rules:ee-only-integration
-# FIXME: Temporarily disable geo minimal rspec jobs https://gitlab.com/gitlab-org/gitlab/-/issues/294212
-#rspec-ee integration pg12 geo minimal:
-# extends:
-# - rspec-ee integration pg12 geo
-# - .minimal-rspec-tests
-# - .rails:rules:ee-only-integration:minimal
+rspec-ee integration pg12 geo minimal:
+ extends:
+ - rspec-ee integration pg12 geo
+ - .minimal-rspec-tests
+ - .rails:rules:ee-only-integration:minimal
rspec-ee system pg12 geo:
extends:
- .rspec-ee-base-geo-pg12
- .rails:rules:ee-only-system
-# FIXME: Temporarily disable geo minimal rspec jobs https://gitlab.com/gitlab-org/gitlab/-/issues/294212
-#rspec-ee system pg12 geo minimal:
-# extends:
-# - rspec-ee system pg12 geo
-# - .minimal-rspec-tests
-# - .rails:rules:ee-only-system:minimal
+rspec-ee system pg12 geo minimal:
+ extends:
+ - rspec-ee system pg12 geo
+ - .minimal-rspec-tests
+ - .rails:rules:ee-only-system:minimal
db:rollback geo:
extends:
diff --git a/.gitlab/ci/reports.gitlab-ci.yml b/.gitlab/ci/reports.gitlab-ci.yml
index 690a971927c..7fb4e54c4d6 100644
--- a/.gitlab/ci/reports.gitlab-ci.yml
+++ b/.gitlab/ci/reports.gitlab-ci.yml
@@ -41,6 +41,22 @@ nodejs-scan-sast:
semgrep-sast:
rules: !reference [".reports:rules:sast", rules]
+gosec-sast:
+ variables:
+ GOPATH: "$CI_PROJECT_DIR/vendor/go"
+ COMPILE: "false"
+ GOSEC_GO_PKG_PATH: "$CI_PROJECT_DIR"
+ SECURE_LOG_LEVEL: "debug"
+ before_script:
+ - mkdir -p $GOPATH
+ - cd workhorse
+ - go get -d ./...
+ - cd ..
+ cache:
+ paths:
+ - vendor/go
+ rules: !reference [".reports:rules:sast", rules]
+
.secret-analyzer:
extends: .default-retry
needs: []
diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml
index 38d59af5aed..c22b468d674 100644
--- a/.gitlab/ci/review.gitlab-ci.yml
+++ b/.gitlab/ci/review.gitlab-ci.yml
@@ -2,7 +2,7 @@ review-cleanup:
extends:
- .default-retry
- .review:rules:review-cleanup
- image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-helm3.5-kubectl1.17
+ image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-helm3-kubectl1.14
stage: prepare
environment:
name: review/auto-cleanup
@@ -27,12 +27,15 @@ review-build-cng:
- .review:rules:review-build-cng
image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine3.13
stage: review-prepare
- before_script:
- - source ./scripts/utils.sh
- - install_gitlab_gem
needs:
- job: compile-production-assets
artifacts: false
+ variables:
+ CNG_PROJECT_ACCESS_TOKEN: "${CNG_MIRROR_PROJECT_ACCESS_TOKEN}" # "Multi-pipeline (from 'gitlab-org/gitlab' 'review-build-cng' job)" at https://gitlab.com/gitlab-org/build/CNG-mirror/-/settings/access_tokens
+ CNG_PROJECT_PATH: "gitlab-org/build/CNG-mirror"
+ before_script:
+ - source ./scripts/utils.sh
+ - install_gitlab_gem
script:
- ./scripts/trigger-build cng
@@ -43,7 +46,7 @@ review-build-cng:
variables:
HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}"
DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}"
- GITLAB_HELM_CHART_REF: "v4.12.0"
+ GITLAB_HELM_CHART_REF: "v5.1.0"
environment:
name: review/${CI_COMMIT_REF_SLUG}${FREQUENCY}
url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}
@@ -114,7 +117,7 @@ review-stop:
extends:
- .use-docker-in-docker
image:
- name: ${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_REF_SLUG}
+ name: ${QA_IMAGE}
entrypoint: [""]
stage: qa
needs: ["build-qa-image", "review-deploy"]
diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml
index c97ef4fc868..53420dfe31a 100644
--- a/.gitlab/ci/rules.gitlab-ci.yml
+++ b/.gitlab/ci/rules.gitlab-ci.yml
@@ -19,12 +19,6 @@
.if-default-branch-push: &if-default-branch-push
if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push"'
-.if-default-branch-schedule-2-hourly: &if-default-branch-schedule-2-hourly
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "2-hourly"'
-
-.if-default-branch-schedule-nightly: &if-default-branch-schedule-nightly
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "nightly"'
-
.if-auto-deploy-branches: &if-auto-deploy-branches
if: '$CI_COMMIT_BRANCH =~ /^\d+-\d+-auto-deploy-\d+$/'
@@ -34,24 +28,51 @@
.if-merge-request: &if-merge-request
if: '$CI_MERGE_REQUEST_IID'
+.if-merge-request-approved: &if-merge-request-approved
+ if: '$CI_MERGE_REQUEST_IID && $CI_MERGE_REQUEST_APPROVED'
+
+.if-merge-request-not-approved: &if-merge-request-not-approved
+ if: '$CI_MERGE_REQUEST_IID && $CI_MERGE_REQUEST_APPROVED != "true"'
+
+.if-automated-merge-request: &if-automated-merge-request
+ if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "release-tools/update-gitaly" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /stable-ee$/'
+
.if-merge-request-title-as-if-foss: &if-merge-request-title-as-if-foss
- if: '$CI_MERGE_REQUEST_TITLE =~ /RUN AS-IF-FOSS/'
+ if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-foss/'
.if-merge-request-title-update-caches: &if-merge-request-title-update-caches
- if: '$CI_MERGE_REQUEST_TITLE =~ /UPDATE CACHE/'
+ if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:update-cache/'
.if-merge-request-title-run-all-rspec: &if-merge-request-title-run-all-rspec
- if: '$CI_MERGE_REQUEST_TITLE =~ /RUN ALL RSPEC/'
+ if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-all-rspec/'
.if-security-merge-request: &if-security-merge-request
if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_MERGE_REQUEST_IID'
+.if-default-branch-schedule-2-hourly: &if-default-branch-schedule-2-hourly
+ if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "2-hourly"'
+
+.if-default-branch-schedule-nightly: &if-default-branch-schedule-nightly
+ if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "nightly"'
+
.if-security-schedule: &if-security-schedule
if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_PIPELINE_SOURCE == "schedule"'
.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"'
+.if-dot-com-ee-schedule: &if-dot-com-ee-schedule
+ if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "schedule"'
+
+.if-dot-com-ee-2-hourly-schedule: &if-dot-com-ee-2-hourly-schedule
+ if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "2-hourly"'
+
+.if-dot-com-ee-nightly-schedule: &if-dot-com-ee-nightly-schedule
+ if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "nightly"'
+
+.if-cache-credentials-schedule: &if-cache-credentials-schedule
+ if: '$CI_REPO_CACHE_CREDENTIALS && $CI_PIPELINE_SOURCE == "schedule"'
+
.if-dot-com-gitlab-org-default-branch: &if-dot-com-gitlab-org-default-branch
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH'
@@ -64,20 +85,12 @@
.if-dot-com-gitlab-org-and-security-tag: &if-dot-com-gitlab-org-and-security-tag
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/security$)/ && $CI_COMMIT_TAG'
-.if-dot-com-ee-schedule: &if-dot-com-ee-schedule
- if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "schedule"'
-
-.if-cache-credentials-schedule: &if-cache-credentials-schedule
- if: '$CI_REPO_CACHE_CREDENTIALS && $CI_PIPELINE_SOURCE == "schedule"'
-
-.if-merge-request-rspec-minimal-disabled: &if-merge-request-rspec-minimal-disabled
- if: '$CI_MERGE_REQUEST_IID && $RSPEC_MINIMAL_ENABLED != "true"'
.if-rspec-fail-fast-disabled: &if-rspec-fail-fast-disabled
if: '$RSPEC_FAIL_FAST_ENABLED != "true"'
.if-rspec-fail-fast-skipped: &if-rspec-fail-fast-skipped
- if: '$CI_MERGE_REQUEST_TITLE =~ /SKIP RSPEC FAIL-FAST/'
+ if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:skip-rspec-fail-fast/'
# For Security merge requests, the gitlab-release-tools-bot triggers a new
# pipeline for the "Pipelines for merged results" feature. If the pipeline
@@ -205,6 +218,7 @@
- "{,ee/,jh/}spec/support/helpers/database/**/*"
- "config/prometheus/common_metrics.yml" # Used by Gitlab::DatabaseImporters::CommonMetrics::Importer
- "{,ee/,jh/}app/models/project_statistics.rb" # Used to calculate sizes in migration specs
+ - "GITALY_SERVER_VERSION" # Has interactions with background migrations:https://gitlab.com/gitlab-org/gitlab/-/issues/336538
# CI changes
- ".gitlab-ci.yml"
- ".gitlab/ci/**/*"
@@ -551,9 +565,7 @@
###############
.pages:rules:
rules:
- - <<: *if-not-ee
- when: never
- - <<: *if-default-branch-schedule-2-hourly
+ - <<: *if-dot-com-ee-2-hourly-schedule
############
# QA rules #
@@ -597,12 +609,20 @@
###############
.rails:rules:ee-and-foss-migration:
rules:
- - changes: *db-patterns
- <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *db-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
+ - changes: *db-patterns
.rails:rules:ee-and-foss-migration:minimal:
rules:
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request-title-run-all-rspec
when: never
@@ -628,12 +648,20 @@
.rails:rules:ee-and-foss-unit:
rules:
- - changes: *backend-patterns
- <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *backend-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
+ - changes: *backend-patterns
.rails:rules:ee-and-foss-unit:minimal:
rules:
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request-title-run-all-rspec
when: never
@@ -645,12 +673,20 @@
.rails:rules:ee-and-foss-integration:
rules:
- - changes: *backend-patterns
- <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *backend-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
+ - changes: *backend-patterns
.rails:rules:ee-and-foss-integration:minimal:
rules:
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request-title-run-all-rspec
when: never
@@ -662,12 +698,20 @@
.rails:rules:ee-and-foss-system:
rules:
- - changes: *code-backstage-patterns
- <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *code-backstage-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
+ - changes: *code-backstage-patterns
.rails:rules:ee-and-foss-system:minimal:
rules:
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request-title-run-all-rspec
when: never
@@ -679,12 +723,20 @@
.rails:rules:ee-and-foss-fast_spec_helper:
rules:
- - changes: ["config/**/*"]
- <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: ["config/**/*"]
+ - <<: *if-merge-request-not-approved
+ when: never
+ - changes: ["config/**/*"]
.rails:rules:ee-and-foss-fast_spec_helper:minimal:
rules:
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request-title-run-all-rspec
when: never
@@ -703,14 +755,22 @@
rules:
- <<: *if-not-ee
when: never
- - changes: *db-patterns
- <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *db-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
+ - changes: *db-patterns
.rails:rules:ee-only-migration:minimal:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request-title-run-all-rspec
when: never
@@ -724,14 +784,22 @@
rules:
- <<: *if-not-ee
when: never
- - changes: *backend-patterns
- <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *backend-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
+ - changes: *backend-patterns
.rails:rules:ee-only-unit:minimal:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request-title-run-all-rspec
when: never
@@ -745,14 +813,22 @@
rules:
- <<: *if-not-ee
when: never
- - changes: *backend-patterns
- <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *backend-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
+ - changes: *backend-patterns
.rails:rules:ee-only-integration:minimal:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request-title-run-all-rspec
when: never
@@ -766,14 +842,22 @@
rules:
- <<: *if-not-ee
when: never
- - changes: *code-backstage-patterns
- <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *code-backstage-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
+ - changes: *code-backstage-patterns
.rails:rules:ee-only-system:minimal:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request-title-run-all-rspec
when: never
@@ -787,19 +871,25 @@
rules:
- <<: *if-not-ee
when: never
+ - <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *db-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
- <<: *if-security-merge-request
changes: *db-patterns
- <<: *if-merge-request-title-as-if-foss
changes: *db-patterns
- - <<: *if-merge-request-title-run-all-rspec
- - <<: *if-merge-request
- changes: *ci-patterns
.rails:rules:as-if-foss-migration:minimal:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request
changes: *ci-patterns
@@ -808,25 +898,30 @@
changes: *db-patterns
- <<: *if-merge-request-title-as-if-foss
changes: *db-patterns
- - <<: *if-merge-request-title-run-all-rspec
.rails:rules:as-if-foss-unit:
rules:
- <<: *if-not-ee
when: never
+ - <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *backend-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
- <<: *if-security-merge-request
changes: *backend-patterns
- <<: *if-merge-request-title-as-if-foss
changes: *backend-patterns
- - <<: *if-merge-request-title-run-all-rspec
- - <<: *if-merge-request
- changes: *ci-patterns
.rails:rules:as-if-foss-unit:minimal:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request
changes: *ci-patterns
@@ -835,25 +930,30 @@
changes: *backend-patterns
- <<: *if-merge-request-title-as-if-foss
changes: *backend-patterns
- - <<: *if-merge-request-title-run-all-rspec
.rails:rules:as-if-foss-integration:
rules:
- <<: *if-not-ee
when: never
+ - <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *backend-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
- <<: *if-security-merge-request
changes: *backend-patterns
- <<: *if-merge-request-title-as-if-foss
changes: *backend-patterns
- - <<: *if-merge-request-title-run-all-rspec
- - <<: *if-merge-request
- changes: *ci-patterns
.rails:rules:as-if-foss-integration:minimal:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request
changes: *ci-patterns
@@ -862,25 +962,30 @@
changes: *backend-patterns
- <<: *if-merge-request-title-as-if-foss
changes: *backend-patterns
- - <<: *if-merge-request-title-run-all-rspec
.rails:rules:as-if-foss-system:
rules:
- <<: *if-not-ee
when: never
+ - <<: *if-merge-request-title-run-all-rspec
+ - <<: *if-merge-request
+ changes: *ci-patterns
+ - <<: *if-automated-merge-request
+ changes: *code-backstage-patterns
+ - <<: *if-merge-request-not-approved
+ when: never
- <<: *if-security-merge-request
changes: *code-backstage-patterns
- <<: *if-merge-request-title-as-if-foss
changes: *code-backstage-patterns
- - <<: *if-merge-request-title-run-all-rspec
- - <<: *if-merge-request
- changes: *ci-patterns
.rails:rules:as-if-foss-system:minimal:
rules:
- <<: *if-not-ee
when: never
- - <<: *if-merge-request-rspec-minimal-disabled
+ - <<: *if-merge-request-approved
+ when: never
+ - <<: *if-automated-merge-request
when: never
- <<: *if-merge-request
changes: *ci-patterns
@@ -889,7 +994,6 @@
changes: *code-backstage-patterns
- <<: *if-merge-request-title-as-if-foss
changes: *code-backstage-patterns
- - <<: *if-merge-request-title-run-all-rspec
.rails:rules:ee-and-foss-db-library-code:
rules:
@@ -1209,6 +1313,8 @@
- <<: *if-dot-com-gitlab-org-merge-request
changes: *code-qa-patterns
allow_failure: true
+ - <<: *if-dot-com-ee-schedule
+ allow_failure: true
# The rule needs to be duplicated between `on_success` and `on_failure`
# because the jobs `needs` the previous job to complete.
@@ -1235,6 +1341,10 @@
- <<: *if-dot-com-gitlab-org-merge-request
changes: *code-qa-patterns
when: on_failure
+ - <<: *if-dot-com-ee-schedule
+ when: on_success
+ - <<: *if-dot-com-ee-schedule
+ when: on_failure
.review:rules:review-qa-all:
rules:
@@ -1247,6 +1357,8 @@
- <<: *if-dot-com-gitlab-org-merge-request
changes: *qa-patterns
allow_failure: true
+ - <<: *if-dot-com-ee-nightly-schedule
+ allow_failure: true
# The rule needs to be duplicated between `on_success` and `on_failure`
# because the jobs `needs` the previous job to complete.
@@ -1261,12 +1373,18 @@
allow_failure: true
- <<: *if-dot-com-gitlab-org-merge-request
changes: *qa-patterns
- allow_failure: true
when: on_success
+ allow_failure: true
- <<: *if-dot-com-gitlab-org-merge-request
changes: *qa-patterns
+ when: on_failure
allow_failure: true
+ - <<: *if-dot-com-ee-nightly-schedule
+ when: on_success
+ allow_failure: true
+ - <<: *if-dot-com-ee-nightly-schedule
when: on_failure
+ allow_failure: true
.review:rules:review-cleanup:
rules:
@@ -1354,10 +1472,10 @@
rules:
- <<: *if-not-ee
when: never
+ - <<: *if-dot-com-ee-2-hourly-schedule
- changes:
- ".gitlab/ci/test-metadata.gitlab-ci.yml"
- "scripts/rspec_helpers.sh"
- - <<: *if-dot-com-ee-schedule
###################
# workhorse rules #
diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml
index 08c5a7267c2..135bf8b6a8c 100644
--- a/.gitlab/ci/test-metadata.gitlab-ci.yml
+++ b/.gitlab/ci/test-metadata.gitlab-ci.yml
@@ -43,5 +43,6 @@ update-tests-metadata:
script:
- run_timed_command "retry gem install fog-aws mime-types activesupport rspec_profiling postgres-copy --no-document"
- source ./scripts/rspec_helpers.sh
+ - test -f rspec_flaky/report-suite.json || echo -e "\e[31m" 'Consider add ~"pipeline:run-all-rspec" to run full rspec jobs' "\e[0m"
- update_tests_metadata
- update_tests_mapping
diff --git a/.gitlab/issue_templates/Design Sprint.md b/.gitlab/issue_templates/Design Sprint.md
index 06ef7dc9abc..7772c2d5803 100644
--- a/.gitlab/issue_templates/Design Sprint.md
+++ b/.gitlab/issue_templates/Design Sprint.md
@@ -1,5 +1,9 @@
<!-- Title: Design Sprint -->
+This template outlines a sample set-up process, activities and deliverables for running a Remote Design Sprint. The specific activities and deliverables should be customized based on your objectives and timeline.
+
+Please refer to the [Remote Design Sprint Handbook page](#anchor-tag-to-handbook-page) for additional recommendations.
+
## Design Sprint Focus
* [ ] Have you [determined that a Design Sprint is appropriate for this project](#anchor-tag-to-handbook-page)?
<!-- What is the focus of the [Design Sprint](https://about.gitlab.com/handbook/product/product-processes/#design-sprint)? What problem area will you be solving for and who is the target user? -->
diff --git a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md
index 560b1722348..73233644d37 100644
--- a/.gitlab/issue_templates/Geo Replicate a new Git repository type.md
+++ b/.gitlab/issue_templates/Geo Replicate a new Git repository type.md
@@ -62,38 +62,36 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
disable_ddl_transaction!
def up
- unless table_exists?(:cool_widget_registry)
- ActiveRecord::Base.transaction do
- create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
- t.bigint :cool_widget_id, null: false
- t.datetime_with_timezone :created_at, null: false
- t.datetime_with_timezone :last_synced_at
- t.datetime_with_timezone :retry_at
- t.datetime_with_timezone :verified_at
- t.datetime_with_timezone :verification_started_at
- t.datetime_with_timezone :verification_retry_at
- t.integer :state, default: 0, null: false, limit: 2
- t.integer :verification_state, default: 0, null: false, limit: 2
- t.integer :retry_count, default: 0, limit: 2, null: false
- t.integer :verification_retry_count, default: 0, limit: 2, null: false
- t.boolean :checksum_mismatch, default: false, null: false
- t.boolean :force_to_redownload, default: false, null: false
- t.boolean :missing_on_primary, default: false, null: false
- t.binary :verification_checksum
- t.binary :verification_checksum_mismatched
- t.string :verification_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806
- t.string :last_sync_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806
-
- t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true
- t.index :retry_at
- t.index :state
- # To optimize performance of CoolWidgetRegistry.verification_failed_batch
- t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))"
- # To optimize performance of CoolWidgetRegistry.needs_verification_count
- t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
- # To optimize performance of CoolWidgetRegistry.verification_pending_batch
- t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))"
- end
+ ActiveRecord::Base.transaction do
+ create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
+ t.bigint :cool_widget_id, null: false
+ t.datetime_with_timezone :created_at, null: false
+ t.datetime_with_timezone :last_synced_at
+ t.datetime_with_timezone :retry_at
+ t.datetime_with_timezone :verified_at
+ t.datetime_with_timezone :verification_started_at
+ t.datetime_with_timezone :verification_retry_at
+ t.integer :state, default: 0, null: false, limit: 2
+ t.integer :verification_state, default: 0, null: false, limit: 2
+ t.integer :retry_count, default: 0, limit: 2, null: false
+ t.integer :verification_retry_count, default: 0, limit: 2, null: false
+ t.boolean :checksum_mismatch, default: false, null: false
+ t.boolean :force_to_redownload, default: false, null: false
+ t.boolean :missing_on_primary, default: false, null: false
+ t.binary :verification_checksum
+ t.binary :verification_checksum_mismatched
+ t.string :verification_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806
+ t.string :last_sync_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806
+
+ t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true
+ t.index :retry_at
+ t.index :state
+ # To optimize performance of CoolWidgetRegistry.verification_failed_batch
+ t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))"
+ # To optimize performance of CoolWidgetRegistry.needs_verification_count
+ t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
+ # To optimize performance of CoolWidgetRegistry.verification_pending_batch
+ t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))"
end
end
end
@@ -454,7 +452,7 @@ That's all of the required database changes.
```
- [ ] Update `REGISTRY_CLASSES` in `ee/app/workers/geo/secondary/registry_consistency_worker.rb`.
-- [ ] Update `def model_class_factory_name` in `ee/spec/services/geo/registry_consistency_service_spec.rb`.
+- [ ] Add a custom factory name if needed in `def model_class_factory_name` in `ee/spec/services/geo/registry_consistency_service_spec.rb`.
- [ ] Update `it 'creates missing registries for each registry class'` in `ee/spec/workers/geo/secondary/registry_consistency_worker_spec.rb`.
- [ ] Add `cool_widget_registry` to `ActiveSupport::Inflector.inflections` in `config/initializers_before_autoloader/000_inflections.rb`.
- [ ] Create `ee/spec/factories/geo/cool_widget_registry.rb`:
@@ -537,9 +535,11 @@ If you did not add verification state fields to a separate table, `cool_widget_s
Otherwise, you can follow [the example of Merge Request Diffs](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63309).
-- [ ] Add a `Geo::CoolWidgetState` model in `ee/app/models/ee/geo/cool_widget_state.rb`:
+- [ ] Add a `Geo::CoolWidgetState` model in `ee/app/models/geo/cool_widget_state.rb`:
``` ruby
+ # frozen_string_literal: true
+
module Geo
class CoolWidgetState < ApplicationRecord
self.primary_key = :cool_widget_id
@@ -745,7 +745,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
graphql_name 'CoolWidgetRegistry'
description 'Represents the Geo replication and verification state of a cool_widget'
- field :cool_widget_id, GraphQL::ID_TYPE, null: false, description: 'ID of the Cool Widget'
+ field :cool_widget_id, GraphQL::Types::ID, null: false, description: 'ID of the Cool Widget.'
end
end
end
diff --git a/.gitlab/issue_templates/Geo Replicate a new blob type.md b/.gitlab/issue_templates/Geo Replicate a new blob type.md
index 58b08f490f7..cc5a606d68b 100644
--- a/.gitlab/issue_templates/Geo Replicate a new blob type.md
+++ b/.gitlab/issue_templates/Geo Replicate a new blob type.md
@@ -421,7 +421,7 @@ That's all of the required database changes.
```
- [ ] Update `REGISTRY_CLASSES` in `ee/app/workers/geo/secondary/registry_consistency_worker.rb`.
-- [ ] Update `def model_class_factory_name` in `ee/spec/services/geo/registry_consistency_service_spec.rb`.
+- [ ] Add a custom factory name if needed in `def model_class_factory_name` in `ee/spec/services/geo/registry_consistency_service_spec.rb`.
- [ ] Update `it 'creates missing registries for each registry class'` in `ee/spec/workers/geo/secondary/registry_consistency_worker_spec.rb`.
- [ ] Add `cool_widget_registry` to `ActiveSupport::Inflector.inflections` in `config/initializers_before_autoloader/000_inflections.rb`.
- [ ] Create `ee/spec/factories/geo/cool_widget_registry.rb`:
diff --git a/.gitlab/issue_templates/Problem Validation.md b/.gitlab/issue_templates/Problem Validation.md
index f7515c07218..5d417c5a26d 100644
--- a/.gitlab/issue_templates/Problem Validation.md
+++ b/.gitlab/issue_templates/Problem Validation.md
@@ -38,4 +38,11 @@
For example, if the solution will take a product manager, designer, and engineer two weeks of effort - you may quantify this as 1.5 (based on 0.5 months x 3 people). -->
+## Definition of Done
+
+- [ ] The problem is well understood by the PM to have an understanding summarized in a RICE score
+- [ ] The problem is well understood by the PM to decide if they want to move forward with this idea or drop it
+- [ ] The problem is well described and detailed with necessary requirements for product design to understand the problem
+- [ ] The problem is well described and detailed with necessary requirements for engineering to understand the problem
+
/label ~"workflow::validation backlog" ~devops:: ~category: ~group::
diff --git a/.gitlab/issue_templates/Security developer workflow.md b/.gitlab/issue_templates/Security developer workflow.md
index 99149442509..51e8ec378b2 100644
--- a/.gitlab/issue_templates/Security developer workflow.md
+++ b/.gitlab/issue_templates/Security developer workflow.md
@@ -9,7 +9,9 @@ Set the title to: `Description of the original issue`
## Prior to starting the security release work
- [ ] Read the [security process for developers] if you are not familiar with it.
+- [ ] Make sure the issue really needs to follow the security release workflow.
- Verify if the issue you're working on `gitlab-org/gitlab` is confidential, if it's public fix should be placed on GitLab canonical and no backports are required.
+ - If the issue you're fixing doesn't appear to be something that can be exploited by a malicious person and is instead simply a security enhancement do not hesitate to ping `@gitlab-com/gl-security/appsec` to discuss if the issue can be fixed in the canonical repository.
- [ ] **IMPORTANT**: Mark this [issue as linked] to the Security Release Tracking Issue. You can find it on the topic of the `#releases` Slack channel. This issue
MUST be linked for the release bot to know that the associated merge requests should be merged for this security release.
- Fill out the [Links section](#links):
diff --git a/.gitlab/issue_templates/Task for Configure group.md b/.gitlab/issue_templates/Task for Configure group.md
new file mode 100644
index 00000000000..441f66d6698
--- /dev/null
+++ b/.gitlab/issue_templates/Task for Configure group.md
@@ -0,0 +1,9 @@
+## Scope
+
+This issue is part of a bigger development effort described in detail by its epic. The scope of this issue is to ...
+
+## Actions
+
+<!-- Likely in the form of checkboxed elements -->
+
+- [ ] TODO
diff --git a/.gitlab/merge_request_templates/Change Documentation Location.md b/.gitlab/merge_request_templates/Change Documentation Location.md
index 0c675d8d0c6..623d1597744 100644
--- a/.gitlab/merge_request_templates/Change Documentation Location.md
+++ b/.gitlab/merge_request_templates/Change Documentation Location.md
@@ -1,6 +1,8 @@
-<!--See the general Documentation guidelines https://docs.gitlab.com/ee/development/documentation/ -->
-
-<!-- Use this description template for changing documentation location. For new docs or updates to existing docs, use the "Documentation" template -->
+<!--
+ See the general Documentation guidelines https://docs.gitlab.com/ee/development/documentation/
+ Use this description template for changing documentation location. For new documentation or
+ updates to existing documentation, use the Documentation.md template.
+-->
## What does this MR do?
@@ -25,4 +27,4 @@ https://docs.gitlab.com/ee/development/documentation/index.html#move-or-rename-a
- [ ] Update the link in `features.yml` (if applicable)
- [ ] Assign one of the technical writers for review.
-/label ~documentation
+/label ~documentation ~"Technical Writing"
diff --git a/.gitlab/merge_request_templates/Documentation.md b/.gitlab/merge_request_templates/Documentation.md
index 99ad233c7e0..e97ae9a0c43 100644
--- a/.gitlab/merge_request_templates/Documentation.md
+++ b/.gitlab/merge_request_templates/Documentation.md
@@ -1,9 +1,12 @@
-<!-- Follow the documentation workflow https://docs.gitlab.com/ee/development/documentation/workflow.html -->
-<!-- Additional information is located at https://docs.gitlab.com/ee/development/documentation/ -->
-<!-- To find the designated Tech Writer for the stage/group, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers -->
+<!--
+ Follow the documentation workflow https://docs.gitlab.com/ee/development/documentation/workflow.html
+ Additional information is located at https://docs.gitlab.com/ee/development/documentation/
+ To find the designated Tech Writer for the stage/group, see
+ https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
-<!-- Mention "documentation" or "docs" in the MR title -->
-<!-- For changing documentation location use the "Change documentation location" template -->
+ Mention "documentation" or "docs" in the MR title
+ For changing documentation location use the Change Documentation Location.md template
+-->
## What does this MR do?
@@ -15,11 +18,23 @@
## Author's checklist
-- [ ] Follow the [Documentation Guidelines](https://docs.gitlab.com/ee/development/documentation/) and [Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide/).
-- [ ] Ensure that the [product tier badge](https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges) is added to doc's `h1`.
-- [ ] [Request a review](https://docs.gitlab.com/ee/development/code_review.html#dogfooding-the-reviewers-feature) based on the documentation page's metadata and [associated Technical Writer](https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments).
+- [ ] Follow the:
+ - [Documentation Guidelines](https://docs.gitlab.com/ee/development/documentation/).
+ - [Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide/).
+- [ ] Ensure that the [product tier badge](https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges) is added to topic's `h1`.
+- [ ] [Request a review](https://docs.gitlab.com/ee/development/code_review.html#dogfooding-the-reviewers-feature) based on the:
+ - The documentation page's [metadata](https://docs.gitlab.com/ee/development/documentation/#metadata).
+ - The [associated Technical Writer](https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments).
-To avoid having this MR be added to code verification QA issues, don't add these labels: ~"feature", ~"frontend", ~"backend", ~"bug", or ~"database"
+If you are only adding documentation, do not add any of the following labels:
+
+- `~"feature"`
+- `~"frontend"`
+- `~"backend"`
+- `~"bug"`
+- `~"database"`
+
+These labels cause the MR to be added to code verification QA issues.
## Review checklist