New upstream version 14.5.2+ds1
|
@ -1,5 +1,6 @@
|
||||||
---
|
---
|
||||||
engines:
|
version: "2"
|
||||||
|
plugins:
|
||||||
bundler-audit:
|
bundler-audit:
|
||||||
enabled: true
|
enabled: true
|
||||||
duplication:
|
duplication:
|
||||||
|
@ -8,33 +9,22 @@ engines:
|
||||||
languages:
|
languages:
|
||||||
- ruby
|
- ruby
|
||||||
- javascript
|
- javascript
|
||||||
ratings:
|
rubocop:
|
||||||
paths:
|
enabled: false
|
||||||
- Gemfile.lock
|
exclude_patterns:
|
||||||
- "**.erb"
|
- "{ee/,jh/,}config/"
|
||||||
- "**.haml"
|
- "{ee/,jh/,}db/"
|
||||||
- "**.rb"
|
- "**/log/"
|
||||||
- "**.rhtml"
|
- "**/node_modules/"
|
||||||
- "**.slim"
|
- "**/spec/"
|
||||||
- "**.inc"
|
- "**/tmp/"
|
||||||
- "**.js"
|
- "**/vendor/"
|
||||||
- "**.jsx"
|
|
||||||
- "**.module"
|
|
||||||
exclude_paths:
|
|
||||||
- config/
|
|
||||||
- db/
|
|
||||||
- features/
|
|
||||||
- node_modules/
|
|
||||||
- spec/
|
|
||||||
- vendor/
|
|
||||||
- .yarn-cache/
|
- .yarn-cache/
|
||||||
- tmp/
|
- backups/
|
||||||
- builds/
|
- builds/
|
||||||
- coverage/
|
- coverage/
|
||||||
|
- file_hooks/
|
||||||
|
- plugins/
|
||||||
- public/
|
- public/
|
||||||
- shared/
|
- shared/
|
||||||
- webpack-report/
|
- webpack-report/
|
||||||
- log/
|
|
||||||
- backups/
|
|
||||||
- plugins/
|
|
||||||
- file_hooks/
|
|
||||||
|
|
|
@ -7,3 +7,5 @@
|
||||||
/tmp/
|
/tmp/
|
||||||
/vendor/
|
/vendor/
|
||||||
/sitespeed-result/
|
/sitespeed-result/
|
||||||
|
/fixtures/**/*.graphql
|
||||||
|
spec/fixtures/**/*.graphql
|
||||||
|
|
|
@ -113,3 +113,24 @@ overrides:
|
||||||
- '*.stories.js'
|
- '*.stories.js'
|
||||||
rules:
|
rules:
|
||||||
filenames/match-regex: off
|
filenames/match-regex: off
|
||||||
|
- files:
|
||||||
|
- '*.graphql'
|
||||||
|
plugins:
|
||||||
|
- '@graphql-eslint'
|
||||||
|
parserOptions:
|
||||||
|
parser: '@graphql-eslint/eslint-plugin'
|
||||||
|
operations:
|
||||||
|
- '{,ee/,jh/}app/**/*.graphql'
|
||||||
|
# You can run `bundle exec rake gitlab:graphql:schema:dump` and then uncomment this line
|
||||||
|
# schema: './tmp/tests/graphql/gitlab_schema.graphql'
|
||||||
|
rules:
|
||||||
|
filenames/match-regex: off
|
||||||
|
spaced-comment: off
|
||||||
|
# TODO: We need a way to include this rule + support ee_else_ce fragments
|
||||||
|
#'@graphql-eslint/unique-fragment-name': error
|
||||||
|
# TODO: Uncomment these rules when then `schema` is available
|
||||||
|
#'@graphql-eslint/fragments-on-composite-type': error
|
||||||
|
#'@graphql-eslint/known-argument-names': error
|
||||||
|
#'@graphql-eslint/known-type-names': error
|
||||||
|
'@graphql-eslint/no-anonymous-operations': error
|
||||||
|
'@graphql-eslint/unique-operation-name': error
|
||||||
|
|
1
.gitignore
vendored
|
@ -74,6 +74,7 @@ eslint-report.html
|
||||||
/.gitlab_kas_secret
|
/.gitlab_kas_secret
|
||||||
/webpack-report/
|
/webpack-report/
|
||||||
/crystalball/
|
/crystalball/
|
||||||
|
/test_results/
|
||||||
/deprecations/
|
/deprecations/
|
||||||
/knapsack/
|
/knapsack/
|
||||||
/rspec_flaky/
|
/rspec_flaky/
|
||||||
|
|
|
@ -3,6 +3,7 @@ stages:
|
||||||
- prepare
|
- prepare
|
||||||
- build-images
|
- build-images
|
||||||
- fixtures
|
- fixtures
|
||||||
|
- lint
|
||||||
- test
|
- test
|
||||||
- post-test
|
- post-test
|
||||||
- review
|
- review
|
||||||
|
@ -15,7 +16,7 @@ stages:
|
||||||
# in cases where jobs require Docker-in-Docker, the job
|
# in cases where jobs require Docker-in-Docker, the job
|
||||||
# definition must be extended with `.use-docker-in-docker`
|
# definition must be extended with `.use-docker-in-docker`
|
||||||
default:
|
default:
|
||||||
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36"
|
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36"
|
||||||
tags:
|
tags:
|
||||||
- gitlab-org
|
- gitlab-org
|
||||||
# All jobs are interruptible by default
|
# All jobs are interruptible by default
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
/doc/administration/troubleshooting @marcel.amirault @marcia @eread
|
/doc/administration/troubleshooting @marcel.amirault @marcia @eread
|
||||||
/doc/api/graphql/ @msedlakjakubowski @kpaizee
|
/doc/api/graphql/ @msedlakjakubowski @kpaizee
|
||||||
/doc/api/graphql/reference/ @kpaizee
|
/doc/api/graphql/reference/ @kpaizee
|
||||||
/doc/api/group_activity_analytics.md @msedlakjakubowski
|
/doc/api/group_activity_analytics.md @fneill
|
||||||
/doc/ci/ @marcel.amirault @sselhorn
|
/doc/ci/ @marcel.amirault @sselhorn
|
||||||
/doc/ci/environments/ @rdickenson
|
/doc/ci/environments/ @rdickenson
|
||||||
/doc/ci/services/ @sselhorn
|
/doc/ci/services/ @sselhorn
|
||||||
|
@ -34,7 +34,7 @@
|
||||||
/doc/development/ @marcia
|
/doc/development/ @marcia
|
||||||
/doc/development/documentation/ @cnorris @dianalogan
|
/doc/development/documentation/ @cnorris @dianalogan
|
||||||
/doc/development/i18n/ @ngaskill
|
/doc/development/i18n/ @ngaskill
|
||||||
/doc/development/value_stream_analytics.md @msedlakjakubowski
|
/doc/development/value_stream_analytics.md @fneill
|
||||||
/doc/gitlab-basics/ @aqualls
|
/doc/gitlab-basics/ @aqualls
|
||||||
/doc/install/ @marcel.amirault
|
/doc/install/ @marcel.amirault
|
||||||
/doc/operations/ @ngaskill @rdickenson
|
/doc/operations/ @ngaskill @rdickenson
|
||||||
|
@ -45,19 +45,19 @@
|
||||||
/doc/topics/autodevops/ @marcia
|
/doc/topics/autodevops/ @marcia
|
||||||
/doc/topics/git/ @aqualls
|
/doc/topics/git/ @aqualls
|
||||||
/doc/update/ @marcel.amirault @marcia
|
/doc/update/ @marcel.amirault @marcia
|
||||||
/doc/user/analytics/ @msedlakjakubowski @ngaskill
|
/doc/user/analytics/ @fneill @ngaskill
|
||||||
/doc/user/application_security/ @rdickenson
|
/doc/user/application_security/ @rdickenson
|
||||||
/doc/user/application_security/container_scanning/ @ngaskill
|
/doc/user/application_security/container_scanning/ @ngaskill
|
||||||
/doc/user/application_security/cluster_image_scanning/ @ngaskill
|
/doc/user/application_security/cluster_image_scanning/ @ngaskill
|
||||||
/doc/user/clusters/ @marcia
|
/doc/user/clusters/ @marcia
|
||||||
/doc/user/compliance/ @rdickenson @eread
|
/doc/user/compliance/ @rdickenson @eread
|
||||||
/doc/user/group/ @msedlakjakubowski
|
/doc/user/group/ @msedlakjakubowski
|
||||||
/doc/user/group/devops_adoption/ @msedlakjakubowski
|
/doc/user/group/devops_adoption/ @fneill
|
||||||
/doc/user/group/epics/ @msedlakjakubowski
|
/doc/user/group/epics/ @msedlakjakubowski
|
||||||
/doc/user/group/insights/ @msedlakjakubowski
|
/doc/user/group/insights/ @fneill
|
||||||
/doc/user/group/iterations/ @msedlakjakubowski
|
/doc/user/group/iterations/ @msedlakjakubowski
|
||||||
/doc/user/group/roadmap/ @msedlakjakubowski
|
/doc/user/group/roadmap/ @msedlakjakubowski
|
||||||
/doc/user/group/value_stream_analytics/ @msedlakjakubowski
|
/doc/user/group/value_stream_analytics/ @fneill
|
||||||
/doc/user/infrastructure/ @marcia
|
/doc/user/infrastructure/ @marcia
|
||||||
/doc/user/packages/ @ngaskill
|
/doc/user/packages/ @ngaskill
|
||||||
/doc/user/packages/infrastructure_registry/ @marcia
|
/doc/user/packages/infrastructure_registry/ @marcia
|
||||||
|
@ -76,6 +76,7 @@
|
||||||
/doc/user/project/web_ide/index.md @aqualls
|
/doc/user/project/web_ide/index.md @aqualls
|
||||||
/doc/user/project/wiki/index.md @aqualls
|
/doc/user/project/wiki/index.md @aqualls
|
||||||
/doc/user/search/ @marcia @aqualls
|
/doc/user/search/ @marcia @aqualls
|
||||||
|
/doc/user/workspace/ @fneill
|
||||||
|
|
||||||
[Docs Create]
|
[Docs Create]
|
||||||
/doc/administration/file_hooks.md @aqualls
|
/doc/administration/file_hooks.md @aqualls
|
||||||
|
|
|
@ -1,63 +0,0 @@
|
||||||
# Builds a cached .tar.gz of the $CI_DEFAULT_BRANCH branch with full history and
|
|
||||||
# uploads it to Google Cloud Storage. This archive is downloaded by a
|
|
||||||
# script defined by a CI/CD variable named CI_PRE_CLONE_SCRIPT. This has
|
|
||||||
# two benefits:
|
|
||||||
#
|
|
||||||
# 1. It speeds up builds. A 800 MB download only takes seconds.
|
|
||||||
# 2. It significantly reduces load on the file server. Smaller deltas
|
|
||||||
# means less time spent in git pack-objects.
|
|
||||||
#
|
|
||||||
# Since the destination directory of the archive depends on the project
|
|
||||||
# ID, this is only run on GitLab.com.
|
|
||||||
#
|
|
||||||
# CI_REPO_CACHE_CREDENTIALS contains the Google Cloud service account
|
|
||||||
# JSON for uploading to the gitlab-ci-git-repo-cache bucket. These
|
|
||||||
# credentials are stored in the Production vault.
|
|
||||||
#
|
|
||||||
# Note that this bucket should be located in the same continent as the
|
|
||||||
# runner, or network egress charges will apply:
|
|
||||||
# https://cloud.google.com/storage/pricing
|
|
||||||
cache-repo:
|
|
||||||
extends: .cache-repo:rules
|
|
||||||
image: gcr.io/google.com/cloudsdktool/cloud-sdk:alpine
|
|
||||||
stage: sync
|
|
||||||
variables:
|
|
||||||
GIT_STRATEGY: none
|
|
||||||
SHALLOW_CLONE_TAR_FILENAME: gitlab-master-shallow.tar
|
|
||||||
FULL_CLONE_TAR_FILENAME: gitlab-master.tar
|
|
||||||
before_script:
|
|
||||||
- '[ -z "$CI_REPO_CACHE_CREDENTIALS" ] || gcloud auth activate-service-account --key-file=$CI_REPO_CACHE_CREDENTIALS'
|
|
||||||
script:
|
|
||||||
# Enable shallow repo caching unless the $DISABLE_SHALLOW_REPO_CACHING variable exists (in the case the shallow clone caching isn't working well)
|
|
||||||
# The `git repack` call works around a Git bug with shallow clones: https://gitlab.com/gitlab-org/git/-/issues/86
|
|
||||||
- if [ -z "$DISABLE_SHALLOW_REPO_CACHING" ]; then
|
|
||||||
cd .. && rm -rf $CI_PROJECT_NAME;
|
|
||||||
today=$(date +%Y-%m-%d);
|
|
||||||
year=$(date +%Y);
|
|
||||||
last_year=`expr $year - 1`;
|
|
||||||
one_year_ago=$(echo $today | sed "s/$year/$last_year/");
|
|
||||||
echo "Cloning $CI_REPOSITORY_URL into $CI_PROJECT_NAME with commits from $one_year_ago.";
|
|
||||||
time git clone --progress --no-checkout --shallow-since=$one_year_ago $CI_REPOSITORY_URL $CI_PROJECT_NAME;
|
|
||||||
cd $CI_PROJECT_NAME;
|
|
||||||
time git repack -d;
|
|
||||||
echo "Archiving $CI_PROJECT_NAME into /tmp/$SHALLOW_CLONE_TAR_FILENAME.";
|
|
||||||
time git remote rm origin;
|
|
||||||
time tar cf /tmp/$SHALLOW_CLONE_TAR_FILENAME .;
|
|
||||||
echo "GZipping /tmp/$SHALLOW_CLONE_TAR_FILENAME.";
|
|
||||||
time gzip /tmp/$SHALLOW_CLONE_TAR_FILENAME;
|
|
||||||
[ -z "$CI_REPO_CACHE_CREDENTIALS" ] || (echo "Uploading /tmp/$SHALLOW_CLONE_TAR_FILENAME.gz to GCloud." && time gsutil cp /tmp/$SHALLOW_CLONE_TAR_FILENAME.gz gs://gitlab-ci-git-repo-cache/project-$CI_PROJECT_ID/$SHALLOW_CLONE_TAR_FILENAME.gz);
|
|
||||||
fi
|
|
||||||
# Disable the full repo caching unless the $DISABLE_SHALLOW_REPO_CACHING variable exists (in the case the shallow clone caching isn't working well)
|
|
||||||
- if [ -n "$DISABLE_SHALLOW_REPO_CACHING" ]; then
|
|
||||||
cd .. && rm -rf $CI_PROJECT_NAME;
|
|
||||||
echo "Cloning $CI_REPOSITORY_URL into $CI_PROJECT_NAME.";
|
|
||||||
time git clone --progress $CI_REPOSITORY_URL $CI_PROJECT_NAME;
|
|
||||||
cd $CI_PROJECT_NAME;
|
|
||||||
time git repack -d;
|
|
||||||
echo "Archiving $CI_PROJECT_NAME into /tmp/$FULL_CLONE_TAR_FILENAME.";
|
|
||||||
time git remote rm origin;
|
|
||||||
time tar cf /tmp/$FULL_CLONE_TAR_FILENAME .;
|
|
||||||
echo "GZipping /tmp/$FULL_CLONE_TAR_FILENAME.";
|
|
||||||
time gzip /tmp/$FULL_CLONE_TAR_FILENAME;
|
|
||||||
[ -z "$CI_REPO_CACHE_CREDENTIALS" ] || (echo "Uploading /tmp/$FULL_CLONE_TAR_FILENAME.gz to GCloud." && time gsutil cp /tmp/$FULL_CLONE_TAR_FILENAME.gz gs://gitlab-ci-git-repo-cache/project-$CI_PROJECT_ID/$FULL_CLONE_TAR_FILENAME.gz);
|
|
||||||
fi
|
|
|
@ -44,8 +44,8 @@ docs-lint markdown:
|
||||||
- .default-retry
|
- .default-retry
|
||||||
- .docs:rules:docs-lint
|
- .docs:rules:docs-lint
|
||||||
# When updating the image version here, update it in /scripts/lint-doc.sh too.
|
# 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.14-vale-2.10.4-markdownlint-0.28.1
|
image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-markdown:alpine-3.14-vale-2.12.0-markdownlint-0.29.0
|
||||||
stage: test
|
stage: lint
|
||||||
needs: []
|
needs: []
|
||||||
script:
|
script:
|
||||||
- scripts/lint-doc.sh
|
- scripts/lint-doc.sh
|
||||||
|
@ -53,8 +53,8 @@ docs-lint markdown:
|
||||||
docs-lint links:
|
docs-lint links:
|
||||||
extends:
|
extends:
|
||||||
- .docs:rules:docs-lint
|
- .docs:rules:docs-lint
|
||||||
image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-html:alpine-3.14-ruby-2.7.4-db71f027
|
image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-html:alpine-3.14-ruby-2.7.4-0fae0f62
|
||||||
stage: test
|
stage: lint
|
||||||
needs: []
|
needs: []
|
||||||
script:
|
script:
|
||||||
# Prepare docs for build
|
# Prepare docs for build
|
||||||
|
@ -71,7 +71,21 @@ ui-docs-links lint:
|
||||||
extends:
|
extends:
|
||||||
- .docs:rules:docs-lint
|
- .docs:rules:docs-lint
|
||||||
- .static-analysis-base
|
- .static-analysis-base
|
||||||
stage: test
|
- .ruby-cache
|
||||||
|
stage: lint
|
||||||
needs: []
|
needs: []
|
||||||
script:
|
script:
|
||||||
- bundle exec haml-lint -i DocumentationLinks
|
- bundle exec haml-lint -i DocumentationLinks
|
||||||
|
|
||||||
|
docs-lint deprecations:
|
||||||
|
variables:
|
||||||
|
SETUP_DB: "false"
|
||||||
|
extends:
|
||||||
|
- .default-retry
|
||||||
|
- .rails-cache
|
||||||
|
- .default-before_script
|
||||||
|
- .docs:rules:deprecations
|
||||||
|
stage: lint
|
||||||
|
needs: []
|
||||||
|
script:
|
||||||
|
- bundle exec rake gitlab:docs:check_deprecations
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
- .default-retry
|
- .default-retry
|
||||||
- .default-before_script
|
- .default-before_script
|
||||||
- .assets-compile-cache
|
- .assets-compile-cache
|
||||||
image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7-git-2.31-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36
|
image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7-git-2.33-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36
|
||||||
variables:
|
variables:
|
||||||
SETUP_DB: "false"
|
SETUP_DB: "false"
|
||||||
WEBPACK_VENDOR_DLL: "true"
|
WEBPACK_VENDOR_DLL: "true"
|
||||||
|
@ -133,6 +133,7 @@ update-storybook-yarn-cache:
|
||||||
paths:
|
paths:
|
||||||
- tmp/tests/frontend/
|
- tmp/tests/frontend/
|
||||||
- knapsack/
|
- knapsack/
|
||||||
|
- crystalball/
|
||||||
|
|
||||||
# Builds FOSS, and EE fixtures in the EE project.
|
# Builds FOSS, and EE fixtures in the EE project.
|
||||||
# Builds FOSS fixtures in the FOSS project.
|
# Builds FOSS fixtures in the FOSS project.
|
||||||
|
@ -193,21 +194,10 @@ graphql-schema-dump:
|
||||||
# Disable warnings in browserslist which can break on backports
|
# Disable warnings in browserslist which can break on backports
|
||||||
# https://github.com/browserslist/browserslist/blob/a287ec6/node.js#L367-L384
|
# https://github.com/browserslist/browserslist/blob/a287ec6/node.js#L367-L384
|
||||||
BROWSERSLIST_IGNORE_OLD_DATA: "true"
|
BROWSERSLIST_IGNORE_OLD_DATA: "true"
|
||||||
SETUP_DB: "false"
|
|
||||||
before_script:
|
before_script:
|
||||||
- !reference [.default-before_script, before_script]
|
|
||||||
- *yarn-install
|
- *yarn-install
|
||||||
stage: test
|
stage: test
|
||||||
|
|
||||||
eslint-as-if-foss:
|
|
||||||
extends:
|
|
||||||
- .frontend-test-base
|
|
||||||
- .frontend:rules:eslint-as-if-foss
|
|
||||||
- .as-if-foss
|
|
||||||
needs: []
|
|
||||||
script:
|
|
||||||
- run_timed_command "yarn run lint:eslint:all"
|
|
||||||
|
|
||||||
.jest-base:
|
.jest-base:
|
||||||
extends: .frontend-test-base
|
extends: .frontend-test-base
|
||||||
script:
|
script:
|
||||||
|
|
|
@ -44,6 +44,7 @@
|
||||||
prefix: "gitaly-binaries"
|
prefix: "gitaly-binaries"
|
||||||
paths:
|
paths:
|
||||||
- tmp/tests/gitaly/_build/bin/
|
- tmp/tests/gitaly/_build/bin/
|
||||||
|
- tmp/tests/gitaly/_build/deps/git/install/
|
||||||
- tmp/tests/gitaly/config.toml
|
- tmp/tests/gitaly/config.toml
|
||||||
- tmp/tests/gitaly/gitaly2.config.toml
|
- tmp/tests/gitaly/gitaly2.config.toml
|
||||||
- tmp/tests/gitaly/internal/
|
- tmp/tests/gitaly/internal/
|
||||||
|
@ -139,6 +140,10 @@
|
||||||
- <<: *gitaly-binaries-cache
|
- <<: *gitaly-binaries-cache
|
||||||
policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
|
policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
|
||||||
|
|
||||||
|
.ruby-cache:
|
||||||
|
cache:
|
||||||
|
- *ruby-gems-cache
|
||||||
|
|
||||||
.rails-cache:
|
.rails-cache:
|
||||||
cache:
|
cache:
|
||||||
- *ruby-gems-cache
|
- *ruby-gems-cache
|
||||||
|
@ -150,7 +155,12 @@
|
||||||
- *node-modules-cache
|
- *node-modules-cache
|
||||||
- *rubocop-cache
|
- *rubocop-cache
|
||||||
|
|
||||||
.static-analysis-cache-push:
|
.rubocop-job-cache:
|
||||||
|
cache:
|
||||||
|
- *ruby-gems-cache
|
||||||
|
- *rubocop-cache
|
||||||
|
|
||||||
|
.rubocop-job-cache-push:
|
||||||
cache:
|
cache:
|
||||||
- *ruby-gems-cache # We don't push this cache as it's already rebuilt by `update-setup-test-env-cache`
|
- *ruby-gems-cache # We don't push this cache as it's already rebuilt by `update-setup-test-env-cache`
|
||||||
- *rubocop-cache-push
|
- *rubocop-cache-push
|
||||||
|
@ -203,7 +213,7 @@
|
||||||
- *storybook-node-modules-cache-push
|
- *storybook-node-modules-cache-push
|
||||||
|
|
||||||
.use-pg11:
|
.use-pg11:
|
||||||
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36"
|
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36"
|
||||||
services:
|
services:
|
||||||
- name: postgres:11.6
|
- name: postgres:11.6
|
||||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||||
|
@ -212,7 +222,7 @@
|
||||||
POSTGRES_HOST_AUTH_METHOD: trust
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
|
|
||||||
.use-pg12:
|
.use-pg12:
|
||||||
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36"
|
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36"
|
||||||
services:
|
services:
|
||||||
- name: postgres:12
|
- name: postgres:12
|
||||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||||
|
@ -221,7 +231,7 @@
|
||||||
POSTGRES_HOST_AUTH_METHOD: trust
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
|
|
||||||
.use-pg13:
|
.use-pg13:
|
||||||
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36"
|
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36"
|
||||||
services:
|
services:
|
||||||
- name: postgres:13
|
- name: postgres:13
|
||||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||||
|
@ -230,34 +240,34 @@
|
||||||
POSTGRES_HOST_AUTH_METHOD: trust
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
|
|
||||||
.use-pg11-ee:
|
.use-pg11-ee:
|
||||||
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36"
|
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36"
|
||||||
services:
|
services:
|
||||||
- name: postgres:11.6
|
- name: postgres:11.6
|
||||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||||
- name: redis:5.0-alpine
|
- name: redis:5.0-alpine
|
||||||
- name: elasticsearch:7.11.1
|
- name: elasticsearch:7.14.2
|
||||||
command: ["elasticsearch", "-E", "discovery.type=single-node"]
|
command: ["elasticsearch", "-E", "discovery.type=single-node"]
|
||||||
variables:
|
variables:
|
||||||
POSTGRES_HOST_AUTH_METHOD: trust
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
|
|
||||||
.use-pg12-ee:
|
.use-pg12-ee:
|
||||||
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36"
|
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36"
|
||||||
services:
|
services:
|
||||||
- name: postgres:12
|
- name: postgres:12
|
||||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||||
- name: redis:5.0-alpine
|
- name: redis:5.0-alpine
|
||||||
- name: elasticsearch:7.11.1
|
- name: elasticsearch:7.14.2
|
||||||
command: ["elasticsearch", "-E", "discovery.type=single-node"]
|
command: ["elasticsearch", "-E", "discovery.type=single-node"]
|
||||||
variables:
|
variables:
|
||||||
POSTGRES_HOST_AUTH_METHOD: trust
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
|
|
||||||
.use-pg13-ee:
|
.use-pg13-ee:
|
||||||
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.31-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36"
|
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-89-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36"
|
||||||
services:
|
services:
|
||||||
- name: postgres:13
|
- name: postgres:13
|
||||||
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
|
||||||
- name: redis:5.0-alpine
|
- name: redis:5.0-alpine
|
||||||
- name: elasticsearch:7.11.1
|
- name: elasticsearch:7.14.2
|
||||||
command: ["elasticsearch", "-E", "discovery.type=single-node"]
|
command: ["elasticsearch", "-E", "discovery.type=single-node"]
|
||||||
variables:
|
variables:
|
||||||
POSTGRES_HOST_AUTH_METHOD: trust
|
POSTGRES_HOST_AUTH_METHOD: trust
|
||||||
|
|
15
.gitlab/ci/qa-report.gitlab-ci.yml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
test-reliability-report:
|
||||||
|
extends:
|
||||||
|
- .qa:rules:reliable-reports:schedule
|
||||||
|
image:
|
||||||
|
name: ${CI_REGISTRY_IMAGE}/gitlab-ee-qa:${CI_DEFAULT_BRANCH}
|
||||||
|
entrypoint: [""]
|
||||||
|
before_script:
|
||||||
|
- cd /home/gitlab/qa
|
||||||
|
script:
|
||||||
|
- echo "Generate report for 'staging-full' runs"
|
||||||
|
- bundle exec rake "reliable_spec_report[staging-full,30,true]"
|
||||||
|
- bundle exec rake "unreliable_spec_report[staging-full,30,true]"
|
||||||
|
- echo "Generate report for 'package-and-qa' runs"
|
||||||
|
- bundle exec rake "reliable_spec_report[package-and-qa,30,true]"
|
||||||
|
- bundle exec rake "unreliable_spec_report[package-and-qa,30,true]"
|
|
@ -55,14 +55,18 @@ update-qa-cache:
|
||||||
before_script:
|
before_script:
|
||||||
- source scripts/utils.sh
|
- source scripts/utils.sh
|
||||||
- install_gitlab_gem
|
- install_gitlab_gem
|
||||||
|
- tooling/bin/find_change_diffs ${CHANGES_DIFFS_DIR}
|
||||||
script:
|
script:
|
||||||
- ./scripts/trigger-build omnibus
|
- |
|
||||||
|
tooling/bin/qa/package_and_qa_check ${CHANGES_DIFFS_DIR} && exit_code=$?
|
||||||
package-and-qa:
|
if [ $exit_code -eq 0 ]; then
|
||||||
extends:
|
./scripts/trigger-build omnibus
|
||||||
- .package-and-qa-base
|
elif [ $exit_code -eq 1 ]; then
|
||||||
- .qa:rules:package-and-qa
|
exit 1
|
||||||
# This job often times out, so temporarily use private runners and a long timeout: https://gitlab.com/gitlab-org/gitlab/-/issues/238563
|
else
|
||||||
|
echo "Downstream jobs will not be triggered because package_and_qa_check exited with code: $exit_code"
|
||||||
|
fi
|
||||||
|
# These jobs often time out, so temporarily use private runners and a long timeout: https://gitlab.com/gitlab-org/gitlab/-/issues/238563
|
||||||
tags:
|
tags:
|
||||||
- prm
|
- prm
|
||||||
timeout: 4h
|
timeout: 4h
|
||||||
|
@ -71,3 +75,39 @@ package-and-qa:
|
||||||
artifacts: false
|
artifacts: false
|
||||||
- job: build-assets-image
|
- job: build-assets-image
|
||||||
artifacts: false
|
artifacts: false
|
||||||
|
- detect-tests
|
||||||
|
artifacts:
|
||||||
|
expire_in: 7d
|
||||||
|
paths:
|
||||||
|
- ${CHANGES_FILE}
|
||||||
|
- ${CHANGES_DIFFS_DIR}/*
|
||||||
|
variables:
|
||||||
|
CHANGES_FILE: tmp/changed_files.txt
|
||||||
|
CHANGES_DIFFS_DIR: tmp/diffs
|
||||||
|
|
||||||
|
.package-and-qa-ff-base:
|
||||||
|
script:
|
||||||
|
- export GITLAB_QA_OPTIONS="--set-feature-flags $(scripts/changed-feature-flags --files $(cat $CHANGES_FILE | tr ' ' ',') --state $QA_FF_STATE)"
|
||||||
|
- echo $GITLAB_QA_OPTIONS
|
||||||
|
- ./scripts/trigger-build omnibus
|
||||||
|
|
||||||
|
package-and-qa:
|
||||||
|
extends:
|
||||||
|
- .package-and-qa-base
|
||||||
|
- .qa:rules:package-and-qa
|
||||||
|
|
||||||
|
package-and-qa-ff-enabled:
|
||||||
|
extends:
|
||||||
|
- .package-and-qa-base
|
||||||
|
- .package-and-qa-ff-base
|
||||||
|
- .qa:rules:package-and-qa:feature-flags
|
||||||
|
variables:
|
||||||
|
QA_FF_STATE: "enable"
|
||||||
|
|
||||||
|
package-and-qa-ff-disabled:
|
||||||
|
extends:
|
||||||
|
- .package-and-qa-base
|
||||||
|
- .package-and-qa-ff-base
|
||||||
|
- .qa:rules:package-and-qa:feature-flags
|
||||||
|
variables:
|
||||||
|
QA_FF_STATE: "disable"
|
||||||
|
|
|
@ -6,11 +6,6 @@
|
||||||
- .default-before_script
|
- .default-before_script
|
||||||
- .rails-cache
|
- .rails-cache
|
||||||
|
|
||||||
.minimal-bundle-install:
|
|
||||||
script:
|
|
||||||
- export BUNDLE_WITHOUT="${BUNDLE_WITHOUT}:default:test:puma:kerberos:metrics:omnibus:ed25519"
|
|
||||||
- bundle_install_script
|
|
||||||
|
|
||||||
.base-script:
|
.base-script:
|
||||||
script:
|
script:
|
||||||
# Only install knapsack after bundle install! Otherwise oddly some native
|
# Only install knapsack after bundle install! Otherwise oddly some native
|
||||||
|
@ -26,6 +21,8 @@
|
||||||
.decomposed-database-rspec:
|
.decomposed-database-rspec:
|
||||||
variables:
|
variables:
|
||||||
DECOMPOSED_DB: "true"
|
DECOMPOSED_DB: "true"
|
||||||
|
GITLAB_LOAD_BALANCING_REUSE_PRIMARY_ci: "main"
|
||||||
|
GITLAB_USE_MODEL_LOAD_BALANCING: "true"
|
||||||
|
|
||||||
.rspec-base:
|
.rspec-base:
|
||||||
extends: .rails-job-base
|
extends: .rails-job-base
|
||||||
|
@ -77,6 +74,12 @@
|
||||||
- .use-pg12
|
- .use-pg12
|
||||||
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets as-if-foss", "detect-tests"]
|
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets as-if-foss", "detect-tests"]
|
||||||
|
|
||||||
|
.rspec-base-pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-base
|
||||||
|
- .use-pg12
|
||||||
|
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets as-if-jh", "detect-tests", "add-jh-folder"]
|
||||||
|
|
||||||
.rspec-base-pg13:
|
.rspec-base-pg13:
|
||||||
extends:
|
extends:
|
||||||
- .rspec-base
|
- .rspec-base
|
||||||
|
@ -92,6 +95,11 @@
|
||||||
- .rspec-base
|
- .rspec-base
|
||||||
- .use-pg12-ee
|
- .use-pg12-ee
|
||||||
|
|
||||||
|
.rspec-jh-base-pg12:
|
||||||
|
extends:
|
||||||
|
- .rspec-base-pg12-as-if-jh
|
||||||
|
- .use-pg12-ee
|
||||||
|
|
||||||
.rspec-ee-base-pg13:
|
.rspec-ee-base-pg13:
|
||||||
extends:
|
extends:
|
||||||
- .rspec-base
|
- .rspec-base
|
||||||
|
@ -113,6 +121,12 @@
|
||||||
- .rspec-ee-base-geo
|
- .rspec-ee-base-geo
|
||||||
- .use-pg12-ee
|
- .use-pg12-ee
|
||||||
|
|
||||||
|
.rspec-jh-base-geo-pg12:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-pg12
|
||||||
|
script:
|
||||||
|
- !reference [.rspec-ee-base-geo, script]
|
||||||
|
|
||||||
.rspec-ee-base-geo-pg13:
|
.rspec-ee-base-geo-pg13:
|
||||||
extends:
|
extends:
|
||||||
- .rspec-ee-base-geo
|
- .rspec-ee-base-geo
|
||||||
|
@ -165,10 +179,9 @@ setup-test-env:
|
||||||
extends:
|
extends:
|
||||||
- .rails-job-base
|
- .rails-job-base
|
||||||
- .setup-test-env-cache
|
- .setup-test-env-cache
|
||||||
- .rails:rules:code-backstage-qa
|
- .rails:rules:setup-test-env
|
||||||
stage: prepare
|
stage: prepare
|
||||||
variables:
|
variables:
|
||||||
GITLAB_TEST_EAGER_LOAD: "0"
|
|
||||||
SETUP_DB: "false"
|
SETUP_DB: "false"
|
||||||
script:
|
script:
|
||||||
- run_timed_command "scripts/setup-test-env"
|
- run_timed_command "scripts/setup-test-env"
|
||||||
|
@ -181,6 +194,7 @@ setup-test-env:
|
||||||
paths:
|
paths:
|
||||||
- config/secrets.yml
|
- config/secrets.yml
|
||||||
- tmp/tests/gitaly/_build/bin/
|
- tmp/tests/gitaly/_build/bin/
|
||||||
|
- tmp/tests/gitaly/_build/deps/git/install
|
||||||
- tmp/tests/gitaly/config.toml
|
- tmp/tests/gitaly/config.toml
|
||||||
- tmp/tests/gitaly/gitaly2.config.toml
|
- tmp/tests/gitaly/gitaly2.config.toml
|
||||||
- tmp/tests/gitaly/internal/
|
- tmp/tests/gitaly/internal/
|
||||||
|
@ -223,11 +237,11 @@ update-gitaly-binaries-cache:
|
||||||
.coverage-base:
|
.coverage-base:
|
||||||
extends:
|
extends:
|
||||||
- .default-retry
|
- .default-retry
|
||||||
- .default-before_script
|
|
||||||
- .coverage-cache
|
- .coverage-cache
|
||||||
variables:
|
before_script:
|
||||||
SETUP_DB: "false"
|
- source scripts/utils.sh
|
||||||
USE_BUNDLE_INSTALL: "false"
|
- export BUNDLE_WITHOUT="${BUNDLE_WITHOUT}:default:test:puma:kerberos:metrics:omnibus:ed25519"
|
||||||
|
- bundle_install_script
|
||||||
|
|
||||||
rspec migration pg12:
|
rspec migration pg12:
|
||||||
extends:
|
extends:
|
||||||
|
@ -324,27 +338,17 @@ rspec fast_spec_helper minimal:
|
||||||
- .minimal-rspec-tests
|
- .minimal-rspec-tests
|
||||||
- .rails:rules:ee-and-foss-fast_spec_helper:minimal
|
- .rails:rules:ee-and-foss-fast_spec_helper:minimal
|
||||||
|
|
||||||
|
db:rollback:
|
||||||
|
extends: .db-job-base
|
||||||
|
script:
|
||||||
|
- bundle exec rake db:migrate VERSION=20181228175414
|
||||||
|
- bundle exec rake db:migrate SKIP_SCHEMA_VERSION_CHECK=true
|
||||||
|
|
||||||
db:migrate:reset:
|
db:migrate:reset:
|
||||||
extends: .db-job-base
|
extends: .db-job-base
|
||||||
script:
|
script:
|
||||||
- bundle exec rake db:migrate:reset
|
- bundle exec rake db:migrate:reset
|
||||||
|
|
||||||
db:check-schema:
|
|
||||||
extends:
|
|
||||||
- .db-job-base
|
|
||||||
- .rails:rules:ee-mr-and-default-branch-only
|
|
||||||
script:
|
|
||||||
- source scripts/schema_changed.sh
|
|
||||||
- scripts/validate_migration_timestamps
|
|
||||||
|
|
||||||
db:check-migrations:
|
|
||||||
extends:
|
|
||||||
- .db-job-base
|
|
||||||
- .rails:rules:ee-and-foss-mr-with-migration
|
|
||||||
script:
|
|
||||||
- scripts/validate_migration_schema
|
|
||||||
allow_failure: true
|
|
||||||
|
|
||||||
db:migrate-from-previous-major-version:
|
db:migrate-from-previous-major-version:
|
||||||
extends: .db-job-base
|
extends: .db-job-base
|
||||||
variables:
|
variables:
|
||||||
|
@ -352,7 +356,8 @@ db:migrate-from-previous-major-version:
|
||||||
SETUP_DB: "false"
|
SETUP_DB: "false"
|
||||||
PROJECT_TO_CHECKOUT: "gitlab-foss"
|
PROJECT_TO_CHECKOUT: "gitlab-foss"
|
||||||
TAG_TO_CHECKOUT: "v13.12.9"
|
TAG_TO_CHECKOUT: "v13.12.9"
|
||||||
script:
|
before_script:
|
||||||
|
- !reference [.default-before_script, before_script]
|
||||||
- '[[ -d "ee/" ]] || export PROJECT_TO_CHECKOUT="gitlab"'
|
- '[[ -d "ee/" ]] || export PROJECT_TO_CHECKOUT="gitlab"'
|
||||||
- '[[ -d "ee/" ]] || export TAG_TO_CHECKOUT="${TAG_TO_CHECKOUT}-ee"'
|
- '[[ -d "ee/" ]] || export TAG_TO_CHECKOUT="${TAG_TO_CHECKOUT}-ee"'
|
||||||
- retry 'git fetch https://gitlab.com/gitlab-org/$PROJECT_TO_CHECKOUT.git $TAG_TO_CHECKOUT'
|
- retry 'git fetch https://gitlab.com/gitlab-org/$PROJECT_TO_CHECKOUT.git $TAG_TO_CHECKOUT'
|
||||||
|
@ -361,13 +366,28 @@ db:migrate-from-previous-major-version:
|
||||||
- run_timed_command "bundle exec rake db:drop db:create db:structure:load db:migrate db:seed_fu"
|
- run_timed_command "bundle exec rake db:drop db:create db:structure:load db:migrate db:seed_fu"
|
||||||
- git checkout -f $CI_COMMIT_SHA
|
- git checkout -f $CI_COMMIT_SHA
|
||||||
- SETUP_DB=false USE_BUNDLE_INSTALL=true bash scripts/prepare_build.sh
|
- SETUP_DB=false USE_BUNDLE_INSTALL=true bash scripts/prepare_build.sh
|
||||||
|
script:
|
||||||
- run_timed_command "bundle exec rake db:migrate"
|
- run_timed_command "bundle exec rake db:migrate"
|
||||||
|
|
||||||
db:rollback:
|
db:check-schema:
|
||||||
extends: .db-job-base
|
extends:
|
||||||
|
- db:migrate-from-previous-major-version
|
||||||
|
- .rails:rules:ee-mr-and-default-branch-only
|
||||||
|
variables:
|
||||||
|
TAG_TO_CHECKOUT: "v14.4.0"
|
||||||
script:
|
script:
|
||||||
- bundle exec rake db:migrate VERSION=20181228175414
|
- run_timed_command "bundle exec rake db:migrate"
|
||||||
- bundle exec rake db:migrate SKIP_SCHEMA_VERSION_CHECK=true
|
- scripts/schema_changed.sh
|
||||||
|
- scripts/validate_migration_timestamps
|
||||||
|
|
||||||
|
db:check-migrations:
|
||||||
|
extends:
|
||||||
|
- .db-job-base
|
||||||
|
- .rails:rules:ee-and-foss-mr-with-migration
|
||||||
|
script:
|
||||||
|
- git fetch origin $CI_MERGE_REQUEST_TARGET_BRANCH_NAME:$CI_MERGE_REQUEST_TARGET_BRANCH_NAME --depth 20
|
||||||
|
- scripts/validate_migration_schema
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
db:gitlabcom-database-testing:
|
db:gitlabcom-database-testing:
|
||||||
extends: .rails:rules:db:gitlabcom-database-testing
|
extends: .rails:rules:db:gitlabcom-database-testing
|
||||||
|
@ -457,21 +477,38 @@ rspec:coverage:
|
||||||
# so we use `dependencies` here.
|
# so we use `dependencies` here.
|
||||||
dependencies:
|
dependencies:
|
||||||
- setup-test-env
|
- setup-test-env
|
||||||
|
# FOSS/EE jobs
|
||||||
- rspec migration pg12
|
- rspec migration pg12
|
||||||
- rspec unit pg12
|
- rspec unit pg12
|
||||||
- rspec integration pg12
|
- rspec integration pg12
|
||||||
- rspec system pg12
|
- rspec system pg12
|
||||||
|
# FOSS/EE minimal jobs
|
||||||
|
- rspec migration pg12 minimal
|
||||||
|
- rspec unit pg12 minimal
|
||||||
|
- rspec integration pg12 minimal
|
||||||
|
- rspec system pg12 minimal
|
||||||
|
# EE jobs
|
||||||
- rspec-ee migration pg12
|
- rspec-ee migration pg12
|
||||||
- rspec-ee unit pg12
|
- rspec-ee unit pg12
|
||||||
- rspec-ee integration pg12
|
- rspec-ee integration pg12
|
||||||
- rspec-ee system pg12
|
- rspec-ee system pg12
|
||||||
|
# EE minimal jobs
|
||||||
|
- rspec-ee migration pg12 minimal
|
||||||
|
- rspec-ee unit pg12 minimal
|
||||||
|
- rspec-ee integration pg12 minimal
|
||||||
|
- rspec-ee system pg12 minimal
|
||||||
|
# Geo jobs
|
||||||
- rspec-ee unit pg12 geo
|
- rspec-ee unit pg12 geo
|
||||||
- rspec-ee integration pg12 geo
|
- rspec-ee integration pg12 geo
|
||||||
- rspec-ee system pg12 geo
|
- rspec-ee system pg12 geo
|
||||||
|
# Geo minimal jobs
|
||||||
|
- rspec-ee unit pg12 geo minimal
|
||||||
|
- rspec-ee integration pg12 geo minimal
|
||||||
|
- rspec-ee system pg12 geo minimal
|
||||||
|
# Memory jobs
|
||||||
- memory-static
|
- memory-static
|
||||||
- memory-on-boot
|
- memory-on-boot
|
||||||
script:
|
script:
|
||||||
- !reference [.minimal-bundle-install, script]
|
|
||||||
- run_timed_command "bundle exec scripts/merge-simplecov"
|
- run_timed_command "bundle exec scripts/merge-simplecov"
|
||||||
- run_timed_command "bundle exec scripts/gather-test-memory-data"
|
- run_timed_command "bundle exec scripts/gather-test-memory-data"
|
||||||
coverage: '/LOC \((\d+\.\d+%)\) covered.$/'
|
coverage: '/LOC \((\d+\.\d+%)\) covered.$/'
|
||||||
|
@ -490,15 +527,67 @@ rspec:feature-flags:
|
||||||
- .coverage-base
|
- .coverage-base
|
||||||
- .rails:rules:rspec-feature-flags
|
- .rails:rules:rspec-feature-flags
|
||||||
stage: post-test
|
stage: post-test
|
||||||
needs: ["static-analysis"]
|
needs:
|
||||||
|
- job: "feature-flags-usage"
|
||||||
|
- job: "haml-lint foss"
|
||||||
|
- job: "haml-lint ee"
|
||||||
|
optional: true
|
||||||
script:
|
script:
|
||||||
- !reference [.minimal-bundle-install, script]
|
|
||||||
- if [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then
|
- if [ "$CI_COMMIT_BRANCH" == "$CI_DEFAULT_BRANCH" ]; then
|
||||||
run_timed_command "bundle exec scripts/used-feature-flags" || (scripts/slack master-broken "☠️ \`${CI_JOB_NAME}\` failed! ☠️ See ${CI_JOB_URL}" ci_failing "GitLab Bot" && exit 1);
|
run_timed_command "bundle exec scripts/used-feature-flags" || (scripts/slack master-broken "☠️ \`${CI_JOB_NAME}\` failed! ☠️ See ${CI_JOB_URL}" ci_failing "GitLab Bot" && exit 1);
|
||||||
else
|
else
|
||||||
run_timed_command "bundle exec scripts/used-feature-flags";
|
run_timed_command "bundle exec scripts/used-feature-flags";
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
rspec:skipped-flaky-tests-report:
|
||||||
|
extends:
|
||||||
|
- .default-retry
|
||||||
|
- .rails:rules:skipped-flaky-tests-report
|
||||||
|
image: ruby:2.7-alpine
|
||||||
|
stage: post-test
|
||||||
|
# We cannot use needs since it would mean needing 84 jobs (since most are parallelized)
|
||||||
|
# so we use `dependencies` here.
|
||||||
|
dependencies:
|
||||||
|
# FOSS/EE jobs
|
||||||
|
- rspec migration pg12
|
||||||
|
- rspec unit pg12
|
||||||
|
- rspec integration pg12
|
||||||
|
- rspec system pg12
|
||||||
|
# FOSS/EE minimal jobs
|
||||||
|
- rspec migration pg12 minimal
|
||||||
|
- rspec unit pg12 minimal
|
||||||
|
- rspec integration pg12 minimal
|
||||||
|
- rspec system pg12 minimal
|
||||||
|
# EE jobs
|
||||||
|
- rspec-ee migration pg12
|
||||||
|
- rspec-ee unit pg12
|
||||||
|
- rspec-ee integration pg12
|
||||||
|
- rspec-ee system pg12
|
||||||
|
# EE minimal jobs
|
||||||
|
- rspec-ee migration pg12 minimal
|
||||||
|
- rspec-ee unit pg12 minimal
|
||||||
|
- rspec-ee integration pg12 minimal
|
||||||
|
- rspec-ee system pg12 minimal
|
||||||
|
# Geo jobs
|
||||||
|
- rspec-ee unit pg12 geo
|
||||||
|
- rspec-ee integration pg12 geo
|
||||||
|
- rspec-ee system pg12 geo
|
||||||
|
# Geo minimal jobs
|
||||||
|
- rspec-ee unit pg12 geo minimal
|
||||||
|
- rspec-ee integration pg12 geo minimal
|
||||||
|
- rspec-ee system pg12 geo minimal
|
||||||
|
variables:
|
||||||
|
SKIPPED_FLAKY_TESTS_REPORT: skipped_flaky_tests_report.txt
|
||||||
|
before_script:
|
||||||
|
- 'echo "SKIP_FLAKY_TESTS_AUTOMATICALLY: $SKIP_FLAKY_TESTS_AUTOMATICALLY"'
|
||||||
|
- mkdir -p rspec_flaky
|
||||||
|
script:
|
||||||
|
- find rspec_flaky/ -type f -name 'skipped_flaky_tests_*_report.txt' -exec cat {} + >> "${SKIPPED_FLAKY_TESTS_REPORT}"
|
||||||
|
artifacts:
|
||||||
|
expire_in: 31d
|
||||||
|
paths:
|
||||||
|
- ${SKIPPED_FLAKY_TESTS_REPORT}
|
||||||
|
|
||||||
# EE/FOSS: default refs (MRs, default branch, schedules) jobs #
|
# EE/FOSS: default refs (MRs, default branch, schedules) jobs #
|
||||||
#######################################################
|
#######################################################
|
||||||
|
|
||||||
|
@ -577,6 +666,31 @@ rspec system pg12-as-if-foss decomposed:
|
||||||
- .decomposed-database-rspec
|
- .decomposed-database-rspec
|
||||||
- .rails:rules:decomposed-databases
|
- .rails:rules:decomposed-databases
|
||||||
|
|
||||||
|
rspec migration pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-base-pg12-as-if-jh
|
||||||
|
- .rspec-base-migration
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
- .rspec-migration-parallel
|
||||||
|
|
||||||
|
rspec unit pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-base-pg12-as-if-jh
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
- .rspec-unit-parallel
|
||||||
|
|
||||||
|
rspec integration pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-base-pg12-as-if-jh
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
- .rspec-integration-parallel
|
||||||
|
|
||||||
|
rspec system pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-base-pg12-as-if-jh
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
- .rspec-system-parallel
|
||||||
|
|
||||||
rspec-ee migration pg12:
|
rspec-ee migration pg12:
|
||||||
extends:
|
extends:
|
||||||
- .rspec-ee-base-pg12
|
- .rspec-ee-base-pg12
|
||||||
|
@ -684,6 +798,83 @@ rspec-ee system pg12 geo minimal:
|
||||||
- .minimal-rspec-tests
|
- .minimal-rspec-tests
|
||||||
- .rails:rules:ee-only-system:minimal
|
- .rails:rules:ee-only-system:minimal
|
||||||
|
|
||||||
|
rspec-ee migration pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-pg12
|
||||||
|
- .rspec-base-migration
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
- .rspec-ee-migration-parallel
|
||||||
|
|
||||||
|
rspec-ee unit pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
- .rspec-ee-unit-parallel
|
||||||
|
|
||||||
|
rspec-ee integration pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
- .rspec-ee-integration-parallel
|
||||||
|
|
||||||
|
rspec-ee system pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
- .rspec-ee-system-parallel
|
||||||
|
|
||||||
|
rspec-ee unit pg12-as-if-jh geo:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-geo-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
- .rspec-ee-unit-geo-parallel
|
||||||
|
|
||||||
|
rspec-ee integration pg12-as-if-jh geo:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-geo-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
|
||||||
|
rspec-ee system pg12-as-if-jh geo:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-geo-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
|
||||||
|
rspec-jh migration pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-pg12
|
||||||
|
- .rspec-base-migration
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
|
||||||
|
rspec-jh unit pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
|
||||||
|
rspec-jh integration pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
|
||||||
|
rspec-jh system pg12-as-if-jh:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
|
||||||
|
rspec-jh unit pg12-as-if-jh geo:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-geo-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
|
||||||
|
rspec-jh integration pg12-as-if-jh geo:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-geo-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
|
||||||
|
rspec-jh system pg12-as-if-jh geo:
|
||||||
|
extends:
|
||||||
|
- .rspec-jh-base-geo-pg12
|
||||||
|
- .rails:rules:as-if-jh-rspec
|
||||||
|
|
||||||
db:rollback geo:
|
db:rollback geo:
|
||||||
extends:
|
extends:
|
||||||
- db:rollback
|
- db:rollback
|
||||||
|
@ -884,5 +1075,24 @@ fail-pipeline-early:
|
||||||
- install_gitlab_gem
|
- install_gitlab_gem
|
||||||
script:
|
script:
|
||||||
- fail_pipeline_early
|
- fail_pipeline_early
|
||||||
|
|
||||||
|
rspec rspec-pg12-rerun-previous-failed-tests:
|
||||||
|
extends:
|
||||||
|
- .rspec-base-pg12
|
||||||
|
- .rails:rules:rerun-previous-failed-tests
|
||||||
|
stage: test
|
||||||
|
needs: ["setup-test-env", "compile-test-assets", "detect-previous-failed-tests"]
|
||||||
|
script:
|
||||||
|
- !reference [.base-script, script]
|
||||||
|
- rspec_rerun_previous_failed_tests tmp/previous_failed_tests/rspec_failed_files.txt
|
||||||
|
|
||||||
|
rspec rspec-ee-pg12-rerun-previous-failed-tests:
|
||||||
|
extends:
|
||||||
|
- "rspec rspec-pg12-rerun-previous-failed-tests"
|
||||||
|
- .rspec-ee-base-pg12
|
||||||
|
script:
|
||||||
|
- !reference [.base-script, script]
|
||||||
|
- rspec_rerun_previous_failed_tests tmp/previous_failed_tests/rspec_ee_failed_files.txt
|
||||||
|
|
||||||
# EE: Canonical MR pipelines
|
# EE: Canonical MR pipelines
|
||||||
##################################################
|
##################################################
|
||||||
|
|
|
@ -9,6 +9,7 @@ code_quality:
|
||||||
extends:
|
extends:
|
||||||
- .default-retry
|
- .default-retry
|
||||||
- .use-docker-in-docker
|
- .use-docker-in-docker
|
||||||
|
stage: lint
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- gl-code-quality-report.json # GitLab-specific
|
- gl-code-quality-report.json # GitLab-specific
|
||||||
|
@ -20,6 +21,7 @@ code_quality:
|
||||||
extends:
|
extends:
|
||||||
- .default-retry
|
- .default-retry
|
||||||
- sast
|
- sast
|
||||||
|
stage: lint
|
||||||
needs: []
|
needs: []
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
|
@ -54,6 +56,7 @@ gosec-sast:
|
||||||
|
|
||||||
.secret-analyzer:
|
.secret-analyzer:
|
||||||
extends: .default-retry
|
extends: .default-retry
|
||||||
|
stage: lint
|
||||||
needs: []
|
needs: []
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
|
@ -68,6 +71,7 @@ secret_detection:
|
||||||
extends:
|
extends:
|
||||||
- .default-retry
|
- .default-retry
|
||||||
- dependency_scanning
|
- dependency_scanning
|
||||||
|
stage: lint
|
||||||
needs: []
|
needs: []
|
||||||
variables:
|
variables:
|
||||||
DS_EXCLUDED_PATHS: "qa/qa/ee/fixtures/secure_premade_reports, spec, ee/spec, tmp" # GitLab-specific
|
DS_EXCLUDED_PATHS: "qa/qa/ee/fixtures/secure_premade_reports, spec, ee/spec, tmp" # GitLab-specific
|
||||||
|
@ -92,6 +96,13 @@ retire-js-dependency_scanning:
|
||||||
gemnasium-python-dependency_scanning:
|
gemnasium-python-dependency_scanning:
|
||||||
rules: !reference [".reports:rules:gemnasium-python-dependency_scanning", rules]
|
rules: !reference [".reports:rules:gemnasium-python-dependency_scanning", rules]
|
||||||
|
|
||||||
|
yarn-audit-dependency_scanning:
|
||||||
|
extends: .ds-analyzer
|
||||||
|
image: "registry.gitlab.com/gitlab-org/security-products/analyzers/npm-audit:1.4.0"
|
||||||
|
variables:
|
||||||
|
TOOL: yarn
|
||||||
|
rules: !reference [".reports:rules:yarn-audit-dependency_scanning", rules]
|
||||||
|
|
||||||
# Analyze dependencies for malicious behavior
|
# Analyze dependencies for malicious behavior
|
||||||
# See https://gitlab.com/gitlab-com/gl-security/security-research/package-hunter
|
# See https://gitlab.com/gitlab-com/gl-security/security-research/package-hunter
|
||||||
.package_hunter-base:
|
.package_hunter-base:
|
||||||
|
@ -134,6 +145,7 @@ package_hunter-bundler:
|
||||||
|
|
||||||
license_scanning:
|
license_scanning:
|
||||||
extends: .default-retry
|
extends: .default-retry
|
||||||
|
stage: lint
|
||||||
needs: []
|
needs: []
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: 1 week # GitLab-specific
|
expire_in: 1 week # GitLab-specific
|
||||||
|
|
|
@ -35,10 +35,11 @@ review-build-cng:
|
||||||
extends:
|
extends:
|
||||||
- .default-retry
|
- .default-retry
|
||||||
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.5-kubectl1.17
|
||||||
|
resource_group: "review/${CI_COMMIT_REF_NAME}"
|
||||||
variables:
|
variables:
|
||||||
HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}"
|
HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}"
|
||||||
DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}"
|
DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}"
|
||||||
GITLAB_HELM_CHART_REF: "v5.2.1"
|
GITLAB_HELM_CHART_REF: "v5.4.1"
|
||||||
environment:
|
environment:
|
||||||
name: review/${CI_COMMIT_REF_SLUG}${FREQUENCY}
|
name: review/${CI_COMMIT_REF_SLUG}${FREQUENCY}
|
||||||
url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}
|
url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}
|
||||||
|
@ -51,7 +52,6 @@ review-deploy:
|
||||||
- .review:rules:review-deploy
|
- .review:rules:review-deploy
|
||||||
stage: deploy
|
stage: deploy
|
||||||
needs: ["review-build-cng"]
|
needs: ["review-build-cng"]
|
||||||
resource_group: "review/${CI_COMMIT_REF_NAME}"
|
|
||||||
before_script:
|
before_script:
|
||||||
- export GITLAB_SHELL_VERSION=$(<GITLAB_SHELL_VERSION)
|
- export GITLAB_SHELL_VERSION=$(<GITLAB_SHELL_VERSION)
|
||||||
- export GITALY_VERSION=$(<GITALY_SERVER_VERSION)
|
- export GITALY_VERSION=$(<GITALY_SERVER_VERSION)
|
||||||
|
@ -101,6 +101,7 @@ review-stop:
|
||||||
extends:
|
extends:
|
||||||
- .review-stop-base
|
- .review-stop-base
|
||||||
- .review:rules:review-stop
|
- .review:rules:review-stop
|
||||||
stage: post-qa
|
stage: deploy
|
||||||
|
needs: []
|
||||||
script:
|
script:
|
||||||
- delete_k8s_release_namespace
|
- delete_k8s_release_namespace
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
GITLAB_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}"
|
GITLAB_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}"
|
||||||
GITLAB_ADMIN_USERNAME: "root"
|
GITLAB_ADMIN_USERNAME: "root"
|
||||||
GITLAB_ADMIN_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}"
|
GITLAB_ADMIN_PASSWORD: "${REVIEW_APPS_ROOT_PASSWORD}"
|
||||||
|
GITLAB_QA_ADMIN_ACCESS_TOKEN: "${REVIEW_APPS_ROOT_TOKEN}"
|
||||||
GITHUB_ACCESS_TOKEN: "${REVIEW_APPS_QA_GITHUB_ACCESS_TOKEN}"
|
GITHUB_ACCESS_TOKEN: "${REVIEW_APPS_QA_GITHUB_ACCESS_TOKEN}"
|
||||||
EE_LICENSE: "${REVIEW_APPS_EE_LICENSE}"
|
EE_LICENSE: "${REVIEW_APPS_EE_LICENSE}"
|
||||||
SIGNUP_DISABLED: "true"
|
SIGNUP_DISABLED: "true"
|
||||||
|
@ -31,9 +32,23 @@
|
||||||
expire_in: 7 days
|
expire_in: 7 days
|
||||||
when: always
|
when: always
|
||||||
|
|
||||||
|
.parallel-qa-base:
|
||||||
|
parallel: 5
|
||||||
|
script:
|
||||||
|
- export KNAPSACK_REPORT_PATH=knapsack/master_report.json
|
||||||
|
- export KNAPSACK_TEST_FILE_PATTERN=qa/specs/features/**/*_spec.rb
|
||||||
|
- |
|
||||||
|
bin/test "${QA_SCENARIO}" "${CI_ENVIRONMENT_URL}" \
|
||||||
|
-- \
|
||||||
|
--color --format documentation \
|
||||||
|
--format RspecJunitFormatter --out tmp/rspec.xml
|
||||||
|
artifacts:
|
||||||
|
reports:
|
||||||
|
junit: qa/tmp/rspec.xml
|
||||||
|
|
||||||
.allure-report-base:
|
.allure-report-base:
|
||||||
image:
|
image:
|
||||||
name: ${GITLAB_DEPENDENCY_PROXY}andrcuns/allure-report-publisher:0.3.6
|
name: ${GITLAB_DEPENDENCY_PROXY}andrcuns/allure-report-publisher:0.4.1
|
||||||
entrypoint: [""]
|
entrypoint: [""]
|
||||||
stage: post-qa
|
stage: post-qa
|
||||||
variables:
|
variables:
|
||||||
|
@ -64,24 +79,23 @@ review-qa-smoke:
|
||||||
script:
|
script:
|
||||||
- bin/test Test::Instance::Smoke "${CI_ENVIRONMENT_URL}"
|
- bin/test Test::Instance::Smoke "${CI_ENVIRONMENT_URL}"
|
||||||
|
|
||||||
|
review-qa-reliable:
|
||||||
|
extends:
|
||||||
|
- .review-qa-base
|
||||||
|
- .review:rules:review-qa-reliable
|
||||||
|
- .parallel-qa-base
|
||||||
|
variables:
|
||||||
|
QA_RUN_TYPE: review-qa-reliable
|
||||||
|
QA_SCENARIO: Test::Instance::Reliable
|
||||||
|
|
||||||
review-qa-all:
|
review-qa-all:
|
||||||
extends:
|
extends:
|
||||||
- .review-qa-base
|
- .review-qa-base
|
||||||
- .review:rules:review-qa-all
|
- .review:rules:review-qa-all
|
||||||
|
- .parallel-qa-base
|
||||||
variables:
|
variables:
|
||||||
QA_RUN_TYPE: review-qa-all
|
QA_RUN_TYPE: review-qa-all
|
||||||
parallel: 5
|
QA_SCENARIO: Test::Instance::All
|
||||||
script:
|
|
||||||
- export KNAPSACK_REPORT_PATH=knapsack/master_report.json
|
|
||||||
- export KNAPSACK_TEST_FILE_PATTERN=qa/specs/features/**/*_spec.rb
|
|
||||||
- |
|
|
||||||
bin/test Test::Instance::All "${CI_ENVIRONMENT_URL}" \
|
|
||||||
-- \
|
|
||||||
--color --format documentation \
|
|
||||||
--format RspecJunitFormatter --out tmp/rspec.xml
|
|
||||||
artifacts:
|
|
||||||
reports:
|
|
||||||
junit: qa/tmp/rspec.xml
|
|
||||||
|
|
||||||
review-performance:
|
review-performance:
|
||||||
extends:
|
extends:
|
||||||
|
|
|
@ -64,6 +64,9 @@
|
||||||
.if-merge-request-labels-run-decomposed: &if-merge-request-labels-run-decomposed
|
.if-merge-request-labels-run-decomposed: &if-merge-request-labels-run-decomposed
|
||||||
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-decomposed/'
|
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-decomposed/'
|
||||||
|
|
||||||
|
.if-merge-request-labels-run-review-app: &if-merge-request-labels-run-review-app
|
||||||
|
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-review-app/'
|
||||||
|
|
||||||
.if-security-merge-request: &if-security-merge-request
|
.if-security-merge-request: &if-security-merge-request
|
||||||
if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_MERGE_REQUEST_IID'
|
if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_MERGE_REQUEST_IID'
|
||||||
|
|
||||||
|
@ -97,9 +100,6 @@
|
||||||
.if-dot-com-ee-nightly-schedule-child-pipeline: &if-dot-com-ee-nightly-schedule-child-pipeline
|
.if-dot-com-ee-nightly-schedule-child-pipeline: &if-dot-com-ee-nightly-schedule-child-pipeline
|
||||||
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "parent_pipeline" && $FREQUENCY == "nightly"'
|
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "parent_pipeline" && $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-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'
|
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH'
|
||||||
|
|
||||||
|
@ -109,6 +109,9 @@
|
||||||
.if-dot-com-gitlab-org-and-security-merge-request: &if-dot-com-gitlab-org-and-security-merge-request
|
.if-dot-com-gitlab-org-and-security-merge-request: &if-dot-com-gitlab-org-and-security-merge-request
|
||||||
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/security$)/ && $CI_MERGE_REQUEST_IID'
|
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/security$)/ && $CI_MERGE_REQUEST_IID'
|
||||||
|
|
||||||
|
.if-dot-com-gitlab-org-and-security-merge-request-manual-ff-package-and-qa: &if-dot-com-gitlab-org-and-security-merge-request-manual-ff-package-and-qa
|
||||||
|
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/security$)/ && $CI_MERGE_REQUEST_IID && $QA_MANUAL_FF_PACKAGE_AND_QA'
|
||||||
|
|
||||||
.if-dot-com-gitlab-org-and-security-tag: &if-dot-com-gitlab-org-and-security-tag
|
.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: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/security$)/ && $CI_COMMIT_TAG'
|
||||||
|
|
||||||
|
@ -118,6 +121,9 @@
|
||||||
.if-security-pipeline-merge-result: &if-security-pipeline-merge-result
|
.if-security-pipeline-merge-result: &if-security-pipeline-merge-result
|
||||||
if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "gitlab-org/security" && $GITLAB_USER_LOGIN == "gitlab-release-tools-bot"'
|
if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH && $CI_PROJECT_NAMESPACE == "gitlab-org/security" && $GITLAB_USER_LOGIN == "gitlab-release-tools-bot"'
|
||||||
|
|
||||||
|
.if-skip-flaky-tests-automatically: &if-skip-flaky-tests-automatically
|
||||||
|
if: '$SKIP_FLAKY_TESTS_AUTOMATICALLY == "true"'
|
||||||
|
|
||||||
####################
|
####################
|
||||||
# Changes patterns #
|
# Changes patterns #
|
||||||
####################
|
####################
|
||||||
|
@ -165,11 +171,19 @@
|
||||||
- ".markdownlint.yml"
|
- ".markdownlint.yml"
|
||||||
- "scripts/lint-doc.sh"
|
- "scripts/lint-doc.sh"
|
||||||
|
|
||||||
|
.docs-deprecations-patterns: &docs-deprecations-patterns
|
||||||
|
- "doc/deprecations/index.md"
|
||||||
|
- "data/deprecations/*.yml"
|
||||||
|
- "data/deprecations/templates/_deprecation_template.md.erb"
|
||||||
|
- "lib/tasks/gitlab/docs/compile_deprecations.rake"
|
||||||
|
- "tooling/deprecations/docs.rb"
|
||||||
|
|
||||||
.bundler-patterns: &bundler-patterns
|
.bundler-patterns: &bundler-patterns
|
||||||
- '{Gemfile.lock,*/Gemfile.lock,*/*/Gemfile.lock}'
|
- '{Gemfile.lock,*/Gemfile.lock,*/*/Gemfile.lock}'
|
||||||
|
|
||||||
.nodejs-patterns: &nodejs-patterns
|
.nodejs-patterns: &nodejs-patterns
|
||||||
- '{package.json,*/package.json,*/*/package.json}'
|
- '{package.json,*/package.json,*/*/package.json}'
|
||||||
|
- '{yarn.lock,*/yarn.lock,*/*/yarn.lock}'
|
||||||
|
|
||||||
.python-patterns: &python-patterns
|
.python-patterns: &python-patterns
|
||||||
- '{requirements.txt,*/requirements.txt,*/*/requirements.txt}'
|
- '{requirements.txt,*/requirements.txt,*/*/requirements.txt}'
|
||||||
|
@ -217,6 +231,7 @@
|
||||||
.startup-css-patterns: &startup-css-patterns
|
.startup-css-patterns: &startup-css-patterns
|
||||||
- "{,ee/,jh/}app/assets/stylesheets/startup/**/*"
|
- "{,ee/,jh/}app/assets/stylesheets/startup/**/*"
|
||||||
|
|
||||||
|
# Backend patterns + .ci-patterns
|
||||||
.backend-patterns: &backend-patterns
|
.backend-patterns: &backend-patterns
|
||||||
- "{,jh/}Gemfile{,.lock}"
|
- "{,jh/}Gemfile{,.lock}"
|
||||||
- "Rakefile"
|
- "Rakefile"
|
||||||
|
@ -230,6 +245,7 @@
|
||||||
- ".gitlab/ci/**/*"
|
- ".gitlab/ci/**/*"
|
||||||
- "*_VERSION"
|
- "*_VERSION"
|
||||||
|
|
||||||
|
# DB patterns + .ci-patterns
|
||||||
.db-patterns: &db-patterns
|
.db-patterns: &db-patterns
|
||||||
- "{,ee/,jh/}{,spec/}{db,migrations}/**/*"
|
- "{,ee/,jh/}{,spec/}{db,migrations}/**/*"
|
||||||
- "{,ee/,jh/}{,spec/}lib/{,ee/,jh/}gitlab/database/**/*"
|
- "{,ee/,jh/}{,spec/}lib/{,ee/,jh/}gitlab/database/**/*"
|
||||||
|
@ -258,6 +274,11 @@
|
||||||
- "{,ee/,jh/}spec/**/*"
|
- "{,ee/,jh/}spec/**/*"
|
||||||
- "{,spec/}tooling/**/*"
|
- "{,spec/}tooling/**/*"
|
||||||
|
|
||||||
|
.qa-patterns: &qa-patterns
|
||||||
|
- ".dockerignore"
|
||||||
|
- "qa/**/*"
|
||||||
|
|
||||||
|
# Code patterns + .ci-patterns + .workhorse-patterns
|
||||||
.code-patterns: &code-patterns
|
.code-patterns: &code-patterns
|
||||||
- "{package.json,yarn.lock}"
|
- "{package.json,yarn.lock}"
|
||||||
- ".browserslistrc"
|
- ".browserslistrc"
|
||||||
|
@ -266,9 +287,6 @@
|
||||||
- ".csscomb.json"
|
- ".csscomb.json"
|
||||||
- "Dockerfile.assets"
|
- "Dockerfile.assets"
|
||||||
- "vendor/assets/**/*"
|
- "vendor/assets/**/*"
|
||||||
# CI changes
|
|
||||||
- ".gitlab-ci.yml"
|
|
||||||
- ".gitlab/ci/**/*"
|
|
||||||
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
||||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
||||||
- "*_VERSION"
|
- "*_VERSION"
|
||||||
|
@ -279,11 +297,11 @@
|
||||||
- "{,ee/,jh/}{app,bin,config,db,generator_templates,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*"
|
- "{,ee/,jh/}{app,bin,config,db,generator_templates,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*"
|
||||||
- "doc/api/graphql/reference/*" # Files in this folder are auto-generated
|
- "doc/api/graphql/reference/*" # Files in this folder are auto-generated
|
||||||
- "data/whats_new/*.yml"
|
- "data/whats_new/*.yml"
|
||||||
|
# CI changes
|
||||||
|
- ".gitlab-ci.yml"
|
||||||
|
- ".gitlab/ci/**/*"
|
||||||
|
|
||||||
.qa-patterns: &qa-patterns
|
# .code-patterns + .backstage-patterns
|
||||||
- ".dockerignore"
|
|
||||||
- "qa/**/*"
|
|
||||||
|
|
||||||
.code-backstage-patterns: &code-backstage-patterns
|
.code-backstage-patterns: &code-backstage-patterns
|
||||||
- "{package.json,yarn.lock}"
|
- "{package.json,yarn.lock}"
|
||||||
- ".browserslistrc"
|
- ".browserslistrc"
|
||||||
|
@ -292,9 +310,6 @@
|
||||||
- ".csscomb.json"
|
- ".csscomb.json"
|
||||||
- "Dockerfile.assets"
|
- "Dockerfile.assets"
|
||||||
- "vendor/assets/**/*"
|
- "vendor/assets/**/*"
|
||||||
# CI changes
|
|
||||||
- ".gitlab-ci.yml"
|
|
||||||
- ".gitlab/ci/**/*"
|
|
||||||
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
||||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
||||||
- "*_VERSION"
|
- "*_VERSION"
|
||||||
|
@ -305,6 +320,9 @@
|
||||||
- "{,ee/,jh/}{app,bin,config,db,generator_templates,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*"
|
- "{,ee/,jh/}{app,bin,config,db,generator_templates,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*"
|
||||||
- "doc/api/graphql/reference/*" # Files in this folder are auto-generated
|
- "doc/api/graphql/reference/*" # Files in this folder are auto-generated
|
||||||
- "data/whats_new/*.yml"
|
- "data/whats_new/*.yml"
|
||||||
|
# CI changes
|
||||||
|
- ".gitlab-ci.yml"
|
||||||
|
- ".gitlab/ci/**/*"
|
||||||
# Backstage changes
|
# Backstage changes
|
||||||
- "Dangerfile"
|
- "Dangerfile"
|
||||||
- "danger/**/*"
|
- "danger/**/*"
|
||||||
|
@ -313,6 +331,7 @@
|
||||||
- "{,ee/,jh/}spec/**/*"
|
- "{,ee/,jh/}spec/**/*"
|
||||||
- "{,spec/}tooling/**/*"
|
- "{,spec/}tooling/**/*"
|
||||||
|
|
||||||
|
# .code-patterns + .qa-patterns
|
||||||
.code-qa-patterns: &code-qa-patterns
|
.code-qa-patterns: &code-qa-patterns
|
||||||
- "{package.json,yarn.lock}"
|
- "{package.json,yarn.lock}"
|
||||||
- ".browserslistrc"
|
- ".browserslistrc"
|
||||||
|
@ -321,9 +340,6 @@
|
||||||
- ".csscomb.json"
|
- ".csscomb.json"
|
||||||
- "Dockerfile.assets"
|
- "Dockerfile.assets"
|
||||||
- "vendor/assets/**/*"
|
- "vendor/assets/**/*"
|
||||||
# CI changes
|
|
||||||
- ".gitlab-ci.yml"
|
|
||||||
- ".gitlab/ci/**/*"
|
|
||||||
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
||||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
||||||
- "*_VERSION"
|
- "*_VERSION"
|
||||||
|
@ -334,10 +350,14 @@
|
||||||
- "{,ee/,jh/}{app,bin,config,db,generator_templates,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*"
|
- "{,ee/,jh/}{app,bin,config,db,generator_templates,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*"
|
||||||
- "doc/api/graphql/reference/*" # Files in this folder are auto-generated
|
- "doc/api/graphql/reference/*" # Files in this folder are auto-generated
|
||||||
- "data/whats_new/*.yml"
|
- "data/whats_new/*.yml"
|
||||||
|
# CI changes
|
||||||
|
- ".gitlab-ci.yml"
|
||||||
|
- ".gitlab/ci/**/*"
|
||||||
# QA changes
|
# QA changes
|
||||||
- ".dockerignore"
|
- ".dockerignore"
|
||||||
- "qa/**/*"
|
- "qa/**/*"
|
||||||
|
|
||||||
|
# .code-patterns + .backstage-patterns + .qa-patterns
|
||||||
.code-backstage-qa-patterns: &code-backstage-qa-patterns
|
.code-backstage-qa-patterns: &code-backstage-qa-patterns
|
||||||
- "{package.json,yarn.lock}"
|
- "{package.json,yarn.lock}"
|
||||||
- ".browserslistrc"
|
- ".browserslistrc"
|
||||||
|
@ -346,9 +366,6 @@
|
||||||
- ".csscomb.json"
|
- ".csscomb.json"
|
||||||
- "Dockerfile.assets"
|
- "Dockerfile.assets"
|
||||||
- "vendor/assets/**/*"
|
- "vendor/assets/**/*"
|
||||||
# CI changes
|
|
||||||
- ".gitlab-ci.yml"
|
|
||||||
- ".gitlab/ci/**/*"
|
|
||||||
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
||||||
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
||||||
- "*_VERSION"
|
- "*_VERSION"
|
||||||
|
@ -359,6 +376,9 @@
|
||||||
- "{,ee/,jh/}{app,bin,config,db,generator_templates,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*"
|
- "{,ee/,jh/}{app,bin,config,db,generator_templates,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*"
|
||||||
- "doc/api/graphql/reference/*" # Files in this folder are auto-generated
|
- "doc/api/graphql/reference/*" # Files in this folder are auto-generated
|
||||||
- "data/whats_new/*.yml"
|
- "data/whats_new/*.yml"
|
||||||
|
# CI changes
|
||||||
|
- ".gitlab-ci.yml"
|
||||||
|
- ".gitlab/ci/**/*"
|
||||||
# Backstage changes
|
# Backstage changes
|
||||||
- "Dangerfile"
|
- "Dangerfile"
|
||||||
- "danger/**/*"
|
- "danger/**/*"
|
||||||
|
@ -370,8 +390,44 @@
|
||||||
- ".dockerignore"
|
- ".dockerignore"
|
||||||
- "qa/**/*"
|
- "qa/**/*"
|
||||||
|
|
||||||
.code-backstage-danger-patterns: &code-backstage-danger-patterns
|
# .code-backstage-qa-patterns + .workhorse-patterns
|
||||||
|
.setup-test-env-patterns: &setup-test-env-patterns
|
||||||
|
- "{package.json,yarn.lock}"
|
||||||
|
- ".browserslistrc"
|
||||||
|
- "babel.config.js"
|
||||||
|
- "jest.config.{base,integration,unit}.js"
|
||||||
|
- ".csscomb.json"
|
||||||
|
- "Dockerfile.assets"
|
||||||
|
- "vendor/assets/**/*"
|
||||||
|
- ".{eslintignore,gitattributes,nvmrc,prettierrc,stylelintrc,yamllint}"
|
||||||
|
- ".{codeclimate,eslintrc,gitlab-ci,haml-lint,haml-lint_todo,rubocop,rubocop_todo,rubocop_manual_todo}.yml"
|
||||||
|
- "*_VERSION"
|
||||||
|
- "{,jh/}Gemfile{,.lock}"
|
||||||
|
- "Rakefile"
|
||||||
|
- "tests.yml"
|
||||||
|
- "config.ru"
|
||||||
|
- "{,ee/,jh/}{app,bin,config,db,generator_templates,haml_lint,lib,locale,public,scripts,symbol,vendor}/**/*"
|
||||||
|
- "doc/api/graphql/reference/*" # Files in this folder are auto-generated
|
||||||
|
- "data/whats_new/*.yml"
|
||||||
|
# CI changes
|
||||||
|
- ".gitlab-ci.yml"
|
||||||
|
- ".gitlab/ci/**/*"
|
||||||
# Backstage changes
|
# Backstage changes
|
||||||
|
- "Dangerfile"
|
||||||
|
- "danger/**/*"
|
||||||
|
- "{,ee/,jh/}fixtures/**/*"
|
||||||
|
- "{,ee/,jh/}rubocop/**/*"
|
||||||
|
- "{,ee/,jh/}spec/**/*"
|
||||||
|
- "{,spec/}tooling/**/*"
|
||||||
|
# QA changes
|
||||||
|
- ".dockerignore"
|
||||||
|
- "qa/**/*"
|
||||||
|
# Workhorse changes
|
||||||
|
- "GITLAB_WORKHORSE_VERSION"
|
||||||
|
- "workhorse/**/*"
|
||||||
|
- ".gitlab/ci/workhorse.gitlab-ci.yml"
|
||||||
|
|
||||||
|
.danger-patterns: &danger-patterns
|
||||||
- "Dangerfile"
|
- "Dangerfile"
|
||||||
- "danger/**/*"
|
- "danger/**/*"
|
||||||
- "tooling/danger/**/*"
|
- "tooling/danger/**/*"
|
||||||
|
@ -387,6 +443,9 @@
|
||||||
- "config/helpers/**/*.js"
|
- "config/helpers/**/*.js"
|
||||||
- "vendor/assets/javascripts/**/*"
|
- "vendor/assets/javascripts/**/*"
|
||||||
|
|
||||||
|
.feature-flag-development-config-patterns: &feature-flag-development-config-patterns
|
||||||
|
- "{,ee/}config/feature_flags/{development,ops}/*.yml"
|
||||||
|
|
||||||
################
|
################
|
||||||
# Shared rules #
|
# Shared rules #
|
||||||
################
|
################
|
||||||
|
@ -408,6 +467,7 @@
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
- <<: *if-dot-com-gitlab-org-and-security-merge-request
|
- <<: *if-dot-com-gitlab-org-and-security-merge-request
|
||||||
changes: *ci-build-images-patterns
|
changes: *ci-build-images-patterns
|
||||||
- <<: *if-dot-com-gitlab-org-and-security-merge-request
|
- <<: *if-dot-com-gitlab-org-and-security-merge-request
|
||||||
|
@ -420,18 +480,11 @@
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-canonical-namespace
|
- <<: *if-not-canonical-namespace
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
- <<: *if-auto-deploy-branches
|
- <<: *if-auto-deploy-branches
|
||||||
- changes: *ci-build-images-patterns
|
- changes: *ci-build-images-patterns
|
||||||
- changes: *code-qa-patterns
|
- changes: *code-qa-patterns
|
||||||
|
|
||||||
####################
|
|
||||||
# Cache repo rules #
|
|
||||||
####################
|
|
||||||
.cache-repo:rules:
|
|
||||||
rules:
|
|
||||||
- <<: *if-cache-credentials-schedule
|
|
||||||
allow_failure: true
|
|
||||||
|
|
||||||
#############
|
#############
|
||||||
# CNG rules #
|
# CNG rules #
|
||||||
#############
|
#############
|
||||||
|
@ -482,6 +535,11 @@
|
||||||
changes: *docs-patterns
|
changes: *docs-patterns
|
||||||
when: on_success
|
when: on_success
|
||||||
|
|
||||||
|
.docs:rules:deprecations:
|
||||||
|
rules:
|
||||||
|
- <<: *if-default-refs
|
||||||
|
changes: *docs-deprecations-patterns
|
||||||
|
|
||||||
##################
|
##################
|
||||||
# GraphQL rules #
|
# GraphQL rules #
|
||||||
##################
|
##################
|
||||||
|
@ -501,6 +559,7 @@
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-canonical-namespace
|
- <<: *if-not-canonical-namespace
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
- <<: *if-auto-deploy-branches
|
- <<: *if-auto-deploy-branches
|
||||||
- changes: *code-qa-patterns
|
- changes: *code-qa-patterns
|
||||||
|
|
||||||
|
@ -537,8 +596,8 @@
|
||||||
|
|
||||||
.frontend:rules:default-frontend-jobs:
|
.frontend:rules:default-frontend-jobs:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-default-refs
|
- <<: *if-merge-request-labels-run-all-rspec
|
||||||
changes: *code-backstage-patterns
|
- changes: *code-backstage-patterns
|
||||||
|
|
||||||
.frontend:rules:default-frontend-jobs-as-if-foss:
|
.frontend:rules:default-frontend-jobs-as-if-foss:
|
||||||
rules:
|
rules:
|
||||||
|
@ -698,6 +757,9 @@
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-dot-com-gitlab-org-and-security-merge-request
|
||||||
|
changes: *feature-flag-development-config-patterns
|
||||||
|
when: never
|
||||||
- <<: *if-dot-com-gitlab-org-and-security-merge-request
|
- <<: *if-dot-com-gitlab-org-and-security-merge-request
|
||||||
changes: *ci-qa-patterns
|
changes: *ci-qa-patterns
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
@ -711,12 +773,35 @@
|
||||||
- <<: *if-dot-com-gitlab-org-schedule
|
- <<: *if-dot-com-gitlab-org-schedule
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
|
.qa:rules:package-and-qa:feature-flags:
|
||||||
|
rules:
|
||||||
|
- <<: *if-not-ee
|
||||||
|
when: never
|
||||||
|
- <<: *if-dot-com-gitlab-org-and-security-merge-request-manual-ff-package-and-qa
|
||||||
|
changes: *feature-flag-development-config-patterns
|
||||||
|
when: manual
|
||||||
|
allow_failure: true
|
||||||
|
- <<: *if-dot-com-gitlab-org-and-security-merge-request
|
||||||
|
changes: *feature-flag-development-config-patterns
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
|
.qa:rules:reliable-reports:schedule:
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $QA_RELIABLE_REPORT == "true"'
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Rails rules #
|
# Rails rules #
|
||||||
###############
|
###############
|
||||||
|
.rails:rules:setup-test-env:
|
||||||
|
rules:
|
||||||
|
- changes: *setup-test-env-patterns
|
||||||
|
- <<: *if-merge-request-labels-run-all-rspec
|
||||||
|
|
||||||
.rails:rules:decomposed-databases:
|
.rails:rules:decomposed-databases:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-merge-request-labels-run-decomposed
|
- <<: *if-merge-request-labels-run-decomposed
|
||||||
|
- <<: *if-default-branch-schedule-nightly
|
||||||
|
|
||||||
.rails:rules:ee-and-foss-migration:
|
.rails:rules:ee-and-foss-migration:
|
||||||
rules:
|
rules:
|
||||||
|
@ -1214,9 +1299,25 @@
|
||||||
|
|
||||||
.rails:rules:detect-tests:
|
.rails:rules:detect-tests:
|
||||||
rules:
|
rules:
|
||||||
- changes: *code-backstage-patterns
|
- changes: *code-backstage-qa-patterns
|
||||||
- <<: *if-merge-request-labels-run-all-rspec
|
- <<: *if-merge-request-labels-run-all-rspec
|
||||||
|
|
||||||
|
.rails:rules:detect-previous-failed-tests:
|
||||||
|
rules:
|
||||||
|
- <<: *if-security-merge-request
|
||||||
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-all-rspec
|
||||||
|
- <<: *if-merge-request
|
||||||
|
changes: *code-backstage-patterns
|
||||||
|
|
||||||
|
.rails:rules:rerun-previous-failed-tests:
|
||||||
|
rules:
|
||||||
|
- <<: *if-security-merge-request
|
||||||
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-all-rspec
|
||||||
|
- <<: *if-merge-request
|
||||||
|
changes: *code-backstage-patterns
|
||||||
|
|
||||||
.rails:rules:rspec-foss-impact:
|
.rails:rules:rspec-foss-impact:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
|
@ -1286,6 +1387,14 @@
|
||||||
when: never
|
when: never
|
||||||
- changes: *code-backstage-patterns
|
- changes: *code-backstage-patterns
|
||||||
|
|
||||||
|
.rails:rules:skipped-flaky-tests-report:
|
||||||
|
rules:
|
||||||
|
- <<: *if-not-ee
|
||||||
|
when: never
|
||||||
|
- <<: *if-skip-flaky-tests-automatically
|
||||||
|
changes: *code-backstage-patterns
|
||||||
|
- changes: *ci-patterns
|
||||||
|
|
||||||
#########################
|
#########################
|
||||||
# Static analysis rules #
|
# Static analysis rules #
|
||||||
#########################
|
#########################
|
||||||
|
@ -1294,6 +1403,12 @@
|
||||||
rules:
|
rules:
|
||||||
- changes: *code-backstage-qa-patterns
|
- changes: *code-backstage-qa-patterns
|
||||||
|
|
||||||
|
.static-analysis:rules:ee:
|
||||||
|
rules:
|
||||||
|
- <<: *if-not-ee
|
||||||
|
when: never
|
||||||
|
- changes: *code-backstage-qa-patterns
|
||||||
|
|
||||||
.static-analysis:rules:as-if-foss:
|
.static-analysis:rules:as-if-foss:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
|
@ -1404,6 +1519,12 @@
|
||||||
when: never
|
when: never
|
||||||
- changes: *python-patterns
|
- changes: *python-patterns
|
||||||
|
|
||||||
|
.reports:rules:yarn-audit-dependency_scanning:
|
||||||
|
rules:
|
||||||
|
- if: '$DEPENDENCY_SCANNING_DISABLED || $GITLAB_FEATURES !~ /\bdependency_scanning\b/'
|
||||||
|
when: never
|
||||||
|
- changes: *nodejs-patterns
|
||||||
|
|
||||||
.reports:rules:schedule-dast:
|
.reports:rules:schedule-dast:
|
||||||
rules:
|
rules:
|
||||||
- if: '$DAST_DISABLED || $GITLAB_FEATURES !~ /\bdast\b/'
|
- if: '$DAST_DISABLED || $GITLAB_FEATURES !~ /\bdast\b/'
|
||||||
|
@ -1439,6 +1560,7 @@
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *ci-review-patterns
|
changes: *ci-review-patterns
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
|
@ -1449,13 +1571,13 @@
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *qa-patterns
|
changes: *qa-patterns
|
||||||
allow_failure: true
|
|
||||||
- <<: *if-dot-com-gitlab-org-schedule
|
- <<: *if-dot-com-gitlab-org-schedule
|
||||||
|
|
||||||
.review:rules:review-build-cng:
|
.review:rules:review-build-cng:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *ci-review-patterns
|
changes: *ci-review-patterns
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
|
@ -1465,24 +1587,22 @@
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *qa-patterns
|
changes: *qa-patterns
|
||||||
allow_failure: true
|
|
||||||
- <<: *if-dot-com-gitlab-org-schedule-child-pipeline
|
- <<: *if-dot-com-gitlab-org-schedule-child-pipeline
|
||||||
|
|
||||||
.review:rules:review-deploy:
|
.review:rules:review-deploy:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *ci-review-patterns
|
changes: *ci-review-patterns
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *frontend-patterns
|
changes: *frontend-patterns
|
||||||
allow_failure: true
|
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *code-patterns
|
changes: *code-patterns
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *qa-patterns
|
changes: *qa-patterns
|
||||||
allow_failure: true
|
|
||||||
- <<: *if-dot-com-gitlab-org-schedule-child-pipeline
|
- <<: *if-dot-com-gitlab-org-schedule-child-pipeline
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
|
@ -1492,6 +1612,7 @@
|
||||||
when: never
|
when: never
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *ci-review-patterns
|
changes: *ci-review-patterns
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
|
@ -1507,6 +1628,7 @@
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *code-qa-patterns
|
changes: *code-qa-patterns
|
||||||
|
|
||||||
|
@ -1514,24 +1636,32 @@
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *ci-review-patterns
|
changes: *ci-review-patterns
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *frontend-patterns
|
changes: *frontend-patterns
|
||||||
allow_failure: true
|
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *code-qa-patterns
|
changes: *qa-patterns
|
||||||
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
|
changes: *code-patterns
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
- <<: *if-dot-com-ee-schedule-child-pipeline
|
- <<: *if-dot-com-ee-schedule-child-pipeline
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
# The rule needs to be duplicated between `on_success` and `on_failure`
|
# The rule needs to be duplicated between `on_success` and `on_failure`
|
||||||
# because the jobs `needs` the previous job to complete.
|
# because the jobs `needs` the previous job to complete.
|
||||||
|
# With `when: always`, and the `review-qa-*` jobs are manual, the `allure-report-qa-*` jobs
|
||||||
|
# would start running before the qa jobs have started.
|
||||||
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63844#note_599012559
|
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63844#note_599012559
|
||||||
.review:rules:review-qa-smoke-report:
|
.review:rules:review-qa-smoke-report:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
|
when: on_success
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
|
when: on_failure
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *ci-review-patterns
|
changes: *ci-review-patterns
|
||||||
when: on_success
|
when: on_success
|
||||||
|
@ -1555,10 +1685,16 @@
|
||||||
- <<: *if-dot-com-ee-schedule-child-pipeline
|
- <<: *if-dot-com-ee-schedule-child-pipeline
|
||||||
when: on_failure
|
when: on_failure
|
||||||
|
|
||||||
|
.review:rules:review-qa-reliable:
|
||||||
|
rules:
|
||||||
|
- when: on_success
|
||||||
|
allow_failure: true
|
||||||
|
|
||||||
.review:rules:review-qa-all:
|
.review:rules:review-qa-all:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *code-patterns
|
changes: *code-patterns
|
||||||
when: manual
|
when: manual
|
||||||
|
@ -1571,11 +1707,17 @@
|
||||||
|
|
||||||
# The rule needs to be duplicated between `on_success` and `on_failure`
|
# The rule needs to be duplicated between `on_success` and `on_failure`
|
||||||
# because the jobs `needs` the previous job to complete.
|
# because the jobs `needs` the previous job to complete.
|
||||||
|
# With `when: always`, and the `review-qa-*` jobs are manual, the `allure-report-qa-*` jobs
|
||||||
|
# would start running before the qa jobs have started.
|
||||||
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63844#note_599012559
|
# See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63844#note_599012559
|
||||||
.review:rules:review-qa-all-report:
|
.review:rules:review-qa-all-report:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
|
when: on_success
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
|
when: on_failure
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *code-patterns
|
changes: *code-patterns
|
||||||
when: manual
|
when: manual
|
||||||
|
@ -1603,13 +1745,16 @@
|
||||||
changes: *code-qa-patterns
|
changes: *code-qa-patterns
|
||||||
when: manual
|
when: manual
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
- <<: *if-dot-com-gitlab-org-schedule-child-pipeline
|
- <<: *if-dot-com-gitlab-org-schedule
|
||||||
allow_failure: true
|
allow_failure: true
|
||||||
|
|
||||||
.review:rules:review-stop:
|
.review:rules:review-stop:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
when: never
|
when: never
|
||||||
|
- <<: *if-merge-request-labels-run-review-app
|
||||||
|
when: manual
|
||||||
|
allow_failure: true
|
||||||
- <<: *if-dot-com-gitlab-org-merge-request
|
- <<: *if-dot-com-gitlab-org-merge-request
|
||||||
changes: *code-qa-patterns
|
changes: *code-qa-patterns
|
||||||
when: manual
|
when: manual
|
||||||
|
@ -1622,7 +1767,7 @@
|
||||||
.review:rules:danger-local:
|
.review:rules:danger-local:
|
||||||
rules:
|
rules:
|
||||||
- if: '$CI_MERGE_REQUEST_IID'
|
- if: '$CI_MERGE_REQUEST_IID'
|
||||||
changes: *code-backstage-danger-patterns
|
changes: *danger-patterns
|
||||||
|
|
||||||
###############
|
###############
|
||||||
# Setup rules #
|
# Setup rules #
|
||||||
|
@ -1650,7 +1795,7 @@
|
||||||
changes: *code-backstage-patterns
|
changes: *code-backstage-patterns
|
||||||
when: on_success
|
when: on_success
|
||||||
|
|
||||||
.setup:rules:no_ee_check:
|
.setup:rules:no-ee-check:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-foss
|
- <<: *if-not-foss
|
||||||
when: never
|
when: never
|
||||||
|
@ -1658,6 +1803,14 @@
|
||||||
changes: *code-backstage-patterns
|
changes: *code-backstage-patterns
|
||||||
when: on_success
|
when: on_success
|
||||||
|
|
||||||
|
.setup:rules:no-jh-check:
|
||||||
|
rules:
|
||||||
|
- <<: *if-jh
|
||||||
|
when: never
|
||||||
|
- <<: *if-default-refs
|
||||||
|
changes: *code-backstage-patterns
|
||||||
|
when: on_success
|
||||||
|
|
||||||
.setup:rules:verify-tests-yml:
|
.setup:rules:verify-tests-yml:
|
||||||
rules:
|
rules:
|
||||||
- <<: *if-not-ee
|
- <<: *if-not-ee
|
||||||
|
|
|
@ -41,13 +41,21 @@ gitlab_git_test:
|
||||||
script:
|
script:
|
||||||
- spec/support/prepare-gitlab-git-test-for-commit --check-for-changes
|
- spec/support/prepare-gitlab-git-test-for-commit --check-for-changes
|
||||||
|
|
||||||
no_ee_check:
|
no-ee-check:
|
||||||
extends:
|
extends:
|
||||||
- .minimal-job
|
- .minimal-job
|
||||||
- .setup:rules:no_ee_check
|
- .setup:rules:no-ee-check
|
||||||
stage: test
|
stage: test
|
||||||
script:
|
script:
|
||||||
- scripts/no-ee-check
|
- scripts/no-dir-check ee
|
||||||
|
|
||||||
|
no-jh-check:
|
||||||
|
extends:
|
||||||
|
- .minimal-job
|
||||||
|
- .setup:rules:no-jh-check
|
||||||
|
stage: test
|
||||||
|
script:
|
||||||
|
- scripts/no-dir-check jh
|
||||||
|
|
||||||
verify-tests-yml:
|
verify-tests-yml:
|
||||||
extends:
|
extends:
|
||||||
|
@ -102,6 +110,23 @@ detect-tests as-if-foss:
|
||||||
before_script:
|
before_script:
|
||||||
- '[ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb'
|
- '[ "$FOSS_ONLY" = "1" ] && rm -rf ee/ qa/spec/ee/ qa/qa/specs/features/ee/ qa/qa/ee/ qa/qa/ee.rb'
|
||||||
|
|
||||||
|
detect-previous-failed-tests:
|
||||||
|
extends:
|
||||||
|
- .detect-test-base
|
||||||
|
- .rails:rules:detect-previous-failed-tests
|
||||||
|
variables:
|
||||||
|
PREVIOUS_FAILED_TESTS_DIR: tmp/previous_failed_tests/
|
||||||
|
RSPEC_PG_REGEX: /rspec .+ pg12( .+)?/
|
||||||
|
RSPEC_EE_PG_REGEX: /rspec-ee .+ pg12( .+)?/
|
||||||
|
script:
|
||||||
|
- source ./scripts/utils.sh
|
||||||
|
- source ./scripts/rspec_helpers.sh
|
||||||
|
- retrieve_previous_failed_tests ${PREVIOUS_FAILED_TESTS_DIR} "${RSPEC_PG_REGEX}" "${RSPEC_EE_PG_REGEX}"
|
||||||
|
artifacts:
|
||||||
|
expire_in: 7d
|
||||||
|
paths:
|
||||||
|
- ${PREVIOUS_FAILED_TESTS_DIR}
|
||||||
|
|
||||||
add-jh-folder:
|
add-jh-folder:
|
||||||
extends: .setup:rules:add-jh-folder
|
extends: .setup:rules:add-jh-folder
|
||||||
image: ${GITLAB_DEPENDENCY_PROXY}alpine:edge
|
image: ${GITLAB_DEPENDENCY_PROXY}alpine:edge
|
||||||
|
@ -112,6 +137,7 @@ add-jh-folder:
|
||||||
- curl --location -o "jh-folder.tar.gz" "https://gitlab.com/gitlab-jh/gitlab/-/archive/main-jh/gitlab-main-jh.tar.gz?path=jh"
|
- curl --location -o "jh-folder.tar.gz" "https://gitlab.com/gitlab-jh/gitlab/-/archive/main-jh/gitlab-main-jh.tar.gz?path=jh"
|
||||||
- tar -xf "jh-folder.tar.gz"
|
- tar -xf "jh-folder.tar.gz"
|
||||||
- mv gitlab-main-jh-jh/jh/ ./
|
- mv gitlab-main-jh-jh/jh/ ./
|
||||||
|
- cp Gemfile.lock jh/
|
||||||
- ls -l jh/
|
- ls -l jh/
|
||||||
artifacts:
|
artifacts:
|
||||||
expire_in: 2d
|
expire_in: 2d
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
extends:
|
extends:
|
||||||
- .default-retry
|
- .default-retry
|
||||||
- .default-before_script
|
- .default-before_script
|
||||||
- .static-analysis-cache
|
stage: lint
|
||||||
needs: []
|
needs: []
|
||||||
variables:
|
variables:
|
||||||
SETUP_DB: "false"
|
SETUP_DB: "false"
|
||||||
|
@ -14,7 +14,7 @@
|
||||||
update-static-analysis-cache:
|
update-static-analysis-cache:
|
||||||
extends:
|
extends:
|
||||||
- .static-analysis-base
|
- .static-analysis-base
|
||||||
- .static-analysis-cache-push
|
- .rubocop-job-cache-push
|
||||||
- .shared:rules:update-cache
|
- .shared:rules:update-cache
|
||||||
stage: prepare
|
stage: prepare
|
||||||
script:
|
script:
|
||||||
|
@ -23,31 +23,95 @@ update-static-analysis-cache:
|
||||||
static-analysis:
|
static-analysis:
|
||||||
extends:
|
extends:
|
||||||
- .static-analysis-base
|
- .static-analysis-base
|
||||||
|
- .static-analysis-cache
|
||||||
- .static-analysis:rules:ee-and-foss
|
- .static-analysis:rules:ee-and-foss
|
||||||
stage: test
|
parallel: 2
|
||||||
parallel: 4
|
|
||||||
script:
|
script:
|
||||||
- run_timed_command "retry yarn install --frozen-lockfile"
|
- run_timed_command "retry yarn install --frozen-lockfile"
|
||||||
- scripts/static-analysis
|
- scripts/static-analysis
|
||||||
artifacts:
|
|
||||||
expire_in: 31d
|
|
||||||
when: always
|
|
||||||
paths:
|
|
||||||
- tmp/feature_flags/
|
|
||||||
|
|
||||||
static-analysis-with-database:
|
|
||||||
extends:
|
|
||||||
- .static-analysis-base
|
|
||||||
- .static-analysis:rules:ee-and-foss
|
|
||||||
- .use-pg12
|
|
||||||
stage: test
|
|
||||||
script:
|
|
||||||
- bundle exec rake lint:static_verification_with_database
|
|
||||||
variables:
|
|
||||||
SETUP_DB: "true"
|
|
||||||
|
|
||||||
static-analysis as-if-foss:
|
static-analysis as-if-foss:
|
||||||
extends:
|
extends:
|
||||||
- static-analysis
|
- static-analysis
|
||||||
- .static-analysis:rules:as-if-foss
|
- .static-analysis:rules:as-if-foss
|
||||||
- .as-if-foss
|
- .as-if-foss
|
||||||
|
|
||||||
|
static-verification-with-database:
|
||||||
|
extends:
|
||||||
|
- .static-analysis-base
|
||||||
|
- .rubocop-job-cache
|
||||||
|
- .static-analysis:rules:ee-and-foss
|
||||||
|
- .use-pg12
|
||||||
|
script:
|
||||||
|
- bundle exec rake lint:static_verification_with_database
|
||||||
|
variables:
|
||||||
|
SETUP_DB: "true"
|
||||||
|
|
||||||
|
eslint:
|
||||||
|
extends:
|
||||||
|
- .static-analysis-base
|
||||||
|
- .yarn-cache
|
||||||
|
- .static-analysis:rules:ee
|
||||||
|
needs: []
|
||||||
|
variables:
|
||||||
|
USE_BUNDLE_INSTALL: "false"
|
||||||
|
script:
|
||||||
|
- run_timed_command "retry yarn install --frozen-lockfile"
|
||||||
|
- run_timed_command "yarn run lint:eslint:all"
|
||||||
|
|
||||||
|
eslint as-if-foss:
|
||||||
|
extends:
|
||||||
|
- eslint
|
||||||
|
- .frontend:rules:eslint-as-if-foss
|
||||||
|
- .as-if-foss
|
||||||
|
|
||||||
|
haml-lint foss:
|
||||||
|
extends:
|
||||||
|
- .static-analysis-base
|
||||||
|
- .ruby-cache
|
||||||
|
- .static-analysis:rules:ee-and-foss
|
||||||
|
script:
|
||||||
|
- run_timed_command "bin/rake 'haml_lint[app/views]'"
|
||||||
|
artifacts:
|
||||||
|
expire_in: 31d
|
||||||
|
when: always
|
||||||
|
paths:
|
||||||
|
- tmp/feature_flags/
|
||||||
|
|
||||||
|
haml-lint ee:
|
||||||
|
extends:
|
||||||
|
- "haml-lint foss"
|
||||||
|
- .static-analysis:rules:ee
|
||||||
|
script:
|
||||||
|
- run_timed_command "bin/rake 'haml_lint[ee/app/views]'"
|
||||||
|
|
||||||
|
rubocop:
|
||||||
|
extends:
|
||||||
|
- .static-analysis-base
|
||||||
|
- .rubocop-job-cache
|
||||||
|
- .static-analysis:rules:ee-and-foss
|
||||||
|
script:
|
||||||
|
- run_timed_command "bundle exec rubocop --parallel"
|
||||||
|
|
||||||
|
qa:testcases:
|
||||||
|
extends:
|
||||||
|
- .static-analysis-base
|
||||||
|
- .rubocop-job-cache
|
||||||
|
- .static-analysis:rules:ee-and-foss
|
||||||
|
script:
|
||||||
|
- run_timed_command "bundle exec rubocop qa/qa/specs/features/**/* --only QA/DuplicateTestcaseLink"
|
||||||
|
|
||||||
|
feature-flags-usage:
|
||||||
|
extends:
|
||||||
|
- .static-analysis-base
|
||||||
|
- .rubocop-job-cache
|
||||||
|
- .static-analysis:rules:ee-and-foss
|
||||||
|
script:
|
||||||
|
# We need to disable the cache for this cop since it creates files under tmp/feature_flags/*.used,
|
||||||
|
# the cache would prevent these files from being created.
|
||||||
|
- run_timed_command "bundle exec rubocop --only Gitlab/MarkUsedFeatureFlags --cache false"
|
||||||
|
artifacts:
|
||||||
|
expire_in: 31d
|
||||||
|
when: always
|
||||||
|
paths:
|
||||||
|
- tmp/feature_flags/
|
||||||
|
|
|
@ -9,24 +9,21 @@ workhorse:verify:
|
||||||
|
|
||||||
.workhorse:test:
|
.workhorse:test:
|
||||||
extends: .workhorse:rules:workhorse
|
extends: .workhorse:rules:workhorse
|
||||||
services:
|
|
||||||
- name: registry.gitlab.com/gitlab-org/build/cng/gitaly:latest
|
|
||||||
# Disable the hooks so we don't have to stub the GitLab API
|
|
||||||
command: ["/usr/bin/env", "GITALY_TESTING_NO_GIT_HOOKS=1", "/scripts/process-wrapper"]
|
|
||||||
alias: gitaly
|
|
||||||
variables:
|
variables:
|
||||||
GITALY_ADDRESS: "tcp://gitaly:8075"
|
GITALY_ADDRESS: "tcp://127.0.0.1:8075"
|
||||||
stage: test
|
stage: test
|
||||||
needs: []
|
needs:
|
||||||
|
- setup-test-env
|
||||||
script:
|
script:
|
||||||
- go version
|
- go version
|
||||||
- apt-get update && apt-get -y install libimage-exiftool-perl
|
- apt-get update && apt-get -y install libimage-exiftool-perl
|
||||||
|
- scripts/gitaly-test-build
|
||||||
- make -C workhorse test
|
- make -C workhorse test
|
||||||
|
|
||||||
workhorse:test using go 1.16:
|
workhorse:test using go 1.16:
|
||||||
extends: .workhorse:test
|
extends: .workhorse:test
|
||||||
image: ${GITLAB_DEPENDENCY_PROXY}golang:1.16
|
image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7-golang-1.16-git-2.31
|
||||||
|
|
||||||
workhorse:test using go 1.17:
|
workhorse:test using go 1.17:
|
||||||
extends: .workhorse:test
|
extends: .workhorse:test
|
||||||
image: ${GITLAB_DEPENDENCY_PROXY}golang:1.17
|
image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7-golang-1.17-git-2.31
|
||||||
|
|
|
@ -5,7 +5,7 @@ lint-yaml:
|
||||||
- .default-retry
|
- .default-retry
|
||||||
- .yaml-lint:rules
|
- .yaml-lint:rules
|
||||||
image: pipelinecomponents/yamllint:latest
|
image: pipelinecomponents/yamllint:latest
|
||||||
stage: test
|
stage: lint
|
||||||
needs: []
|
needs: []
|
||||||
variables:
|
variables:
|
||||||
LINT_PATHS: .gitlab-ci.yml .gitlab/ci lib/gitlab/ci/templates
|
LINT_PATHS: .gitlab-ci.yml .gitlab/ci lib/gitlab/ci/templates
|
||||||
|
|
|
@ -9,5 +9,5 @@
|
||||||
<!-- Describe the audit event you are proposing should be added, including any details of what should be captured, how, and why. -->
|
<!-- Describe the audit event you are proposing should be added, including any details of what should be captured, how, and why. -->
|
||||||
|
|
||||||
/label ~"Category:Audit Events"
|
/label ~"Category:Audit Events"
|
||||||
/label ~"feature"
|
/label ~"type::feature"
|
||||||
/label ~"group::compliance"
|
/label ~"group::compliance"
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
Please read this!
|
Please read this!
|
||||||
|
|
||||||
Before opening a new issue, make sure to search for keywords in the issues
|
Before opening a new issue, make sure to search for keywords in the issues
|
||||||
filtered by the "regression" or "bug" label:
|
filtered by the "regression" or "type::bug" label:
|
||||||
|
|
||||||
- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=regression
|
- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=regression
|
||||||
- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=bug
|
- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=type::bug
|
||||||
|
|
||||||
and verify the issue you're about to submit isn't a duplicate.
|
and verify the issue you're about to submit isn't a duplicate.
|
||||||
--->
|
--->
|
||||||
|
@ -82,4 +82,4 @@ will also determine whether the bug is fixed in a more recent version. -->
|
||||||
|
|
||||||
<!-- If you can, link to the line of code that might be responsible for the problem. -->
|
<!-- If you can, link to the line of code that might be responsible for the problem. -->
|
||||||
|
|
||||||
/label ~bug
|
/label ~"type::bug"
|
||||||
|
|
|
@ -41,7 +41,11 @@ Which tier is this feature available in?
|
||||||
|
|
||||||
### Deprecation Milestone
|
### Deprecation Milestone
|
||||||
|
|
||||||
<!-- In which milestone will this deprecation happen? -->
|
<!-- In which milestone will this deprecation be announced ? -->
|
||||||
|
|
||||||
|
### Planned Removal Milestone
|
||||||
|
|
||||||
|
<!-- In which milestone will the feature or functionality be removed and announced? -->
|
||||||
|
|
||||||
### Links
|
### Links
|
||||||
|
|
||||||
|
|
80
.gitlab/issue_templates/Empty state.md
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
<!-- Before implementing a new empty state solution, make sure to read the
|
||||||
|
Empty State region docs in Pajamas: https://design.gitlab.com/regions/empty-states -->
|
||||||
|
|
||||||
|
## Description
|
||||||
|
|
||||||
|
<!-- Describe the solution you're proposing for your empty state region.
|
||||||
|
Include links to user research (if applicable). -->
|
||||||
|
|
||||||
|
## Location
|
||||||
|
|
||||||
|
<!-- Provide a link and location of the new empty state solution.
|
||||||
|
For example: https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/issues -->
|
||||||
|
|
||||||
|
## Use case
|
||||||
|
|
||||||
|
<!-- What is the use case for the solution you're proposing?
|
||||||
|
Read the Empty State docs and select the use case below: https://design.gitlab.com/regions/empty-states -->
|
||||||
|
|
||||||
|
- [ ] Blank content
|
||||||
|
- [ ] Empty search results
|
||||||
|
- [ ] Configuration required
|
||||||
|
- [ ] Higher tier
|
||||||
|
|
||||||
|
## Checklist
|
||||||
|
|
||||||
|
<!-- Follow the steps below that correspond with the use case selected above.
|
||||||
|
Follow the steps to complete this issue -->
|
||||||
|
|
||||||
|
### Blank content
|
||||||
|
|
||||||
|
- [ ] The solution follows the `Blank content` specifications [in Pajamas](https://design.gitlab.com/regions/empty-states#blank-content).
|
||||||
|
- [ ] Follow the instructions from the [`After merge` section](#after-merge) below to add Snowplow tracking.
|
||||||
|
|
||||||
|
### Empty search results
|
||||||
|
|
||||||
|
- [ ] The solution follows the `Empty search results` specifications [in Pajamas](https://design.gitlab.com/regions/empty-states#empty-search-results).
|
||||||
|
- [ ] Follow the instructions from the [`After merge` section](#after-merge) below to add Snowplow tracking.
|
||||||
|
|
||||||
|
### Configuration required
|
||||||
|
|
||||||
|
- [ ] The solution follows the `Configuration required` specifications [in Pajamas](https://design.gitlab.com/regions/empty-states#configuration-required).
|
||||||
|
- [ ] Ask a [Growth product manager or Designer](https://about.gitlab.com/handbook/engineering/development/growth/#stable-counterparts) to review your solution.
|
||||||
|
- [ ] Is your solution introducing a new empty states or modifying an existing one?
|
||||||
|
- [ ] Introducing a new empty state: Follow the instructions from the [`After merge` section](#after-merge) below to add Snowplow tracking.
|
||||||
|
- [ ] Modifying an existing empty state: Follow the [`Experimentation` process](#experimentation) below. _Note_: If the empty state you want to replace hasn't been updated in a long time, doesn't pitch the value of the feature, or does not contain a next step action CTA, then we recommend you skip the experimentation process to implement and add tracking to your new empty state.
|
||||||
|
|
||||||
|
<!-- IF experimentation -->
|
||||||
|
#### Experimentation
|
||||||
|
|
||||||
|
- [ ] Collaborate with a [Growth product manager](https://about.gitlab.com/handbook/engineering/development/growth/#stable-counterparts) to help you determine if you can validate your solution through an experiment on SaaS.
|
||||||
|
- [ ] If an experiment is possible, create an issue using the [experiment idea template](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Experiment%20Idea) and follow the template intructions. Otherwise, follow the instructions from the [`After merge` section](#after-merge) below to add Snowplow tracking.
|
||||||
|
- [ ] Ask a [Growth product manager or Designer](https://about.gitlab.com/handbook/engineering/development/growth/#stable-counterparts) to review your experiment set-up.
|
||||||
|
- [ ] Implement and monitor the experiment following the [implementation guide](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/experiment_guide/gitlab_experiment.md#implement-an-experiment).
|
||||||
|
- [ ] Review and discuss the findings.
|
||||||
|
- [ ] Add the findings to the [Growth experimentation knowledge](https://about.gitlab.com/direction/growth/#growth-experiments-knowledge-base---concluded-experiments).
|
||||||
|
|
||||||
|
### Higher tier
|
||||||
|
|
||||||
|
- [ ] The solution follows the `Higher tier` specifications [in Pajamas](https://design.gitlab.com/regions/empty-states#higher-tier).
|
||||||
|
- [ ] Ask a Product Manager or Designer from the [Conversion group](https://about.gitlab.com/handbook/engineering/development/growth/conversion/#group-members) to review your solution.
|
||||||
|
- [ ] Is your solution introducing a new empty states or modifying an existing one?
|
||||||
|
- [ ] Introducing a new empty state: follow the instructions from the [`After merge` section](#after-merge) below to add Snowplow tracking.
|
||||||
|
- [ ] Modifying an existing empty state, follow the [`Experimentation` process](#experimentation) below.
|
||||||
|
|
||||||
|
<!-- IF experimentation -->
|
||||||
|
#### Experimentation
|
||||||
|
|
||||||
|
- [ ] Collaborate with a [Growth product manager](https://about.gitlab.com/handbook/engineering/development/growth/#stable-counterparts) to help you determine if you can validate your solution through an experiment on SaaS.
|
||||||
|
- [ ] If an experiment is possible, create an issue using the [experiment idea template](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Experiment%20Idea) and follow the template intructions. Otherwise, follow the instructions from the [`After merge` section](#after-merge) below to add Snowplow tracking.
|
||||||
|
- [ ] Add a ~"Category:Conversion Experiment" label to the experiment idea issue.
|
||||||
|
- [ ] Ask a Product Manager or Designer from the [Conversion group](https://about.gitlab.com/handbook/engineering/development/growth/conversion/#group-members) to review your experiment set-up.
|
||||||
|
- [ ] Implement and monitor the experiment following the [implementation guide](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/experiment_guide/gitlab_experiment.md#implement-an-experiment) .
|
||||||
|
- [ ] Review and discuss the findings.
|
||||||
|
- [ ] Add the findings to the [Growth experimentation knowledge](https://about.gitlab.com/direction/growth/#growth-experiments-knowledge-base---concluded-experiments).
|
||||||
|
|
||||||
|
|
||||||
|
## After merge
|
||||||
|
|
||||||
|
- [ ] Use the `Snowplow event tracking` [issue template](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Snowplow%20event%20tracking) and open an issue to add Snowplow event tracking to your new empty state solution.
|
||||||
|
- [ ] Add your ~devops:: and ~group:: labels to the new issue.
|
25
.gitlab/issue_templates/Experiment Implementation.md
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
<!-- Title suggestion: Experiment Implementation: [description] -->
|
||||||
|
|
||||||
|
# Experiment Summary
|
||||||
|
<!-- Quick rundown of what is being done -->
|
||||||
|
|
||||||
|
# Design
|
||||||
|
<!-- This should include the contexts that determine the reproducibility (stickiness) of an experiment. This means that if you want the same behavior for a user, the context would be user, or if you want all users when viewing a specific project, the context would be the project being viewed, etc. -->
|
||||||
|
|
||||||
|
# Rollout strategy
|
||||||
|
<!-- This is currently called A/B test, which isn't accurate for multi-variants. Let's call this rollout strategy. It should outline the percentages for variants and if there's more than one step to this, each of those steps and the timing for those steps (e.g. 30 days after initial rollout). -->
|
||||||
|
|
||||||
|
# Inclusions and exclusions
|
||||||
|
<!-- These would be the rules for which given context (and are limited to context or resolvable at experiment time details) is included or excluded from the test. An example of this would be to only run an experiment on groups less than N number of days old. -->
|
||||||
|
|
||||||
|
# Segmentation
|
||||||
|
<!-- Rules for always saying context with these criteria always get this variant. For instance, if you want to always give groups less than N number of days old the experiment experience, they are specified here. This is different from the exclusion rules above. -->
|
||||||
|
|
||||||
|
# Tracking Details
|
||||||
|
|
||||||
|
- [json schema](https://gitlab.com/gitlab-org/iglu/-/blob/master/public/schemas/com.gitlab/gitlab_experiment/jsonschema/0-3-0) used in `gitlab-experiment` tracking.
|
||||||
|
- see [taxonomy](https://docs.gitlab.com/ee/development/snowplow/index.html#structured-event-taxonomy) for a guide.
|
||||||
|
|
||||||
|
| activity | category | action | label | context | property | value |
|
||||||
|
| -------- | -------- | ------ | ----- | ------- | -------- | ----- |
|
||||||
|
| | | | | json schema | | |
|
|
@ -105,5 +105,16 @@ In this rollout issue, ensure the scoped `experiment::` label is kept accurate.
|
||||||
/chatops run feature set <experiment-key> false
|
/chatops run feature set <experiment-key> false
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Experiment Successful Cleanup Concerns
|
||||||
|
|
||||||
|
_Items to be considered if candidate experience is to become a permanent part of GitLab_
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Add a list of items raised during MR review or otherwise that may need further thought/consideration
|
||||||
|
before becoming permanent parts of the product.
|
||||||
|
|
||||||
|
Example: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70451#note_727246104
|
||||||
|
-->
|
||||||
|
|
||||||
/label ~"feature flag" ~"devops::growth" ~"growth experiment" ~"experiment-rollout" ~Engineering ~"workflow::scheduling" ~"experiment::pending"
|
/label ~"feature flag" ~"devops::growth" ~"growth experiment" ~"experiment-rollout" ~Engineering ~"workflow::scheduling" ~"experiment::pending"
|
||||||
/milestone %"Next 1-3 releases"
|
/milestone %"Next 1-3 releases"
|
||||||
|
|
|
@ -12,9 +12,10 @@ The changes need to become an official part of the product.
|
||||||
- [ ] Determine if tracking should be kept as is, removed, or modified.
|
- [ ] Determine if tracking should be kept as is, removed, or modified.
|
||||||
- [ ] Ensure any relevant documentation has been updated.
|
- [ ] Ensure any relevant documentation has been updated.
|
||||||
- [ ] Consider changes to any `feature_category:` introduced by the experiment if ownership is changing (PM for Growth and PM for the new category as DRIs)
|
- [ ] Consider changes to any `feature_category:` introduced by the experiment if ownership is changing (PM for Growth and PM for the new category as DRIs)
|
||||||
|
- [ ] Check to see if the experiment introduced new design assets. Add them to the appropriate repos and document them if needed.
|
||||||
- [ ] Optional: Migrate experiment to a default enabled [feature flag](https://docs.gitlab.com/ee/development/feature_flags) for one milestone and add a changelog. Converting to a feature flag can be skipped at the ICs discretion if risk is deemed low with consideration to both SaaS and (if applicable) self managed
|
- [ ] Optional: Migrate experiment to a default enabled [feature flag](https://docs.gitlab.com/ee/development/feature_flags) for one milestone and add a changelog. Converting to a feature flag can be skipped at the ICs discretion if risk is deemed low with consideration to both SaaS and (if applicable) self managed
|
||||||
- [ ] In the next milestone, [remove the feature flag](https://docs.gitlab.com/ee/development/feature_flags/controls.html#cleaning-up) if applicable
|
- [ ] In the next milestone, [remove the feature flag](https://docs.gitlab.com/ee/development/feature_flags/controls.html#cleaning-up) if applicable
|
||||||
- [ ] After the flag removal is deployed, [clean up the feature/experiment feature flags](https://docs.gitlab.com/ee/development/feature_flags/controls.html#cleaning-up) by running chatops command in `#production` channel
|
- [ ] After the flag removal is deployed, [clean up the feature/experiment feature flags](https://docs.gitlab.com/ee/development/feature_flags/controls.html#cleaning-up) by running chatops command in `#production` channel
|
||||||
- [ ] Ensure the corresponding [Experiment Tracking](https://gitlab.com/groups/gitlab-org/-/boards/1352542?label_name[]=devops%3A%3Agrowth&label_name[]=growth%20experiment&label_name[]=experiment%20tracking) issue is updated
|
- [ ] Ensure the corresponding [Experiment Rollout](https://gitlab.com/groups/gitlab-org/-/boards/1352542?label_name[]=devops%3A%3Agrowth&label_name[]=growth%20experiment&label_name[]=experiment-rollout) issue is updated
|
||||||
|
|
||||||
/label ~"feature" ~"feature::maintenance" ~"workflow::scheduling" ~"growth experiment" ~"feature flag"
|
/label ~"type::maintenance" ~"workflow::scheduling" ~"growth experiment" ~"feature flag"
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
<!-- Title suggestion: Experiment: [description] -->
|
|
||||||
|
|
||||||
# Experiment Summary
|
|
||||||
<!-- Quick rundown of what is being done -->
|
|
||||||
|
|
||||||
# Design
|
|
||||||
<!-- This should include the contexts that determine the reproducibility (stickiness) of an experiment. This means that if you want the same behavior for a user, the context would be user, or if you want all users when viewing a specific project, the context would be the project being viewed, etc. -->
|
|
||||||
|
|
||||||
# Rollout strategy
|
|
||||||
<!-- This is currently called A/B test, which isn't accurate for multi-variants. Let's call this rollout strategy. It should outline the percentages for variants and if there's more than one step to this, each of those steps and the timing for those steps (e.g. 30 days after initial rollout). -->
|
|
||||||
|
|
||||||
# Inclusions and exclusions
|
|
||||||
<!-- These would be the rules for which given context (and are limited to context or resolvable at experiment time details) is included or excluded from the test. An example of this would be to only run an experiment on groups less than N number of days old. -->
|
|
||||||
|
|
||||||
# Segmentation
|
|
||||||
<!-- Rules for always saying context with these criteria always get this variant. For instance, if you want to always give groups less than N number of days old the experiment experience, they are specified here. This is different from the exclusion rules above. -->
|
|
||||||
|
|
||||||
# Tracking Details
|
|
||||||
|
|
||||||
- [json schema](https://gitlab.com/gitlab-org/iglu/-/blob/master/public/schemas/com.gitlab/gitlab_experiment/jsonschema/0-3-0) used in `gitlab-experiment` tracking.
|
|
||||||
- see [taxonomy](https://docs.gitlab.com/ee/development/snowplow/index.html#structured-event-taxonomy) for a guide.
|
|
||||||
|
|
||||||
| activity | category | action | label | context | property | value |
|
|
||||||
| -------- | -------- | ------ | ----- | ------- | -------- | ----- |
|
|
||||||
| | | | | json schema | | |
|
|
|
@ -30,6 +30,17 @@ Are there any other stages or teams involved that need to be kept in the loop?
|
||||||
|
|
||||||
<!-- Describe the expected outcome when rolling out this feature -->
|
<!-- Describe the expected outcome when rolling out this feature -->
|
||||||
|
|
||||||
|
### When is the feature viable?
|
||||||
|
|
||||||
|
<!-- What are the settings we need to configure in order to have this feature viable? -->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Example below:
|
||||||
|
|
||||||
|
1. Enable service ping collection
|
||||||
|
`ApplicationSetting.first.update(usage_ping_enabled: true)`
|
||||||
|
-->
|
||||||
|
|
||||||
### What might happen if this goes wrong?
|
### What might happen if this goes wrong?
|
||||||
|
|
||||||
<!-- Should the feature flag be turned off? Any MRs that need to be rolled back? Communication that needs to happen? What are some things you can think of that could go wrong - data loss or broken pages? -->
|
<!-- Should the feature flag be turned off? Any MRs that need to be rolled back? Communication that needs to happen? What are some things you can think of that could go wrong - data loss or broken pages? -->
|
||||||
|
@ -37,6 +48,12 @@ Are there any other stages or teams involved that need to be kept in the loop?
|
||||||
### What can we monitor to detect problems with this?
|
### What can we monitor to detect problems with this?
|
||||||
|
|
||||||
<!-- Which dashboards from https://dashboards.gitlab.net are most relevant? -->
|
<!-- Which dashboards from https://dashboards.gitlab.net are most relevant? -->
|
||||||
|
_Consider mentioning checks for 5xx errors or other anomalies like an increase in redirects
|
||||||
|
(302 HTTP response status)_
|
||||||
|
|
||||||
|
### What can we check for monitoring production after rollouts?
|
||||||
|
|
||||||
|
_Consider adding links to check for Sentry errors, Production logs for 5xx, 302s, etc._
|
||||||
|
|
||||||
## Rollout Steps
|
## Rollout Steps
|
||||||
|
|
||||||
|
@ -73,11 +90,14 @@ Are there any other stages or teams involved that need to be kept in the loop?
|
||||||
If a different developer will be covering, or an exception is needed, please inform the oncall SRE by using the `@sre-oncall` Slack alias.
|
If a different developer will be covering, or an exception is needed, please inform the oncall SRE by using the `@sre-oncall` Slack alias.
|
||||||
- [ ] Ensure that documentation has been updated ([More info](https://docs.gitlab.com/ee/development/documentation/feature_flags.html#features-that-became-enabled-by-default)).
|
- [ ] Ensure that documentation has been updated ([More info](https://docs.gitlab.com/ee/development/documentation/feature_flags.html#features-that-became-enabled-by-default)).
|
||||||
- [ ] Announce on [the feature issue](ISSUE LINK) an estimated time this will be enabled on GitLab.com.
|
- [ ] Announce on [the feature issue](ISSUE LINK) an estimated time this will be enabled on GitLab.com.
|
||||||
- [ ] If the feature might impact the user experience, notify `#support_gitlab-com` and your team channel ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/ee/development/feature_flags/controls.html#communicate-the-change)).
|
- [ ] Notify `#support_gitlab-com` and your team channel ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/ee/development/feature_flags/controls.html#communicate-the-change)).
|
||||||
|
|
||||||
### Global rollout on production
|
### Global rollout on production
|
||||||
|
|
||||||
All `/chatops` commands that target production should be done in the `#production` slack channel for visibility.
|
For visibility, all `/chatops` commands that target production should be:
|
||||||
|
|
||||||
|
- Executed in the `#production` slack channel.
|
||||||
|
- Cross-posted (with the command results) to the responsible team's slack channel (`#g_TEAM_NAME`).
|
||||||
|
|
||||||
- [ ] [Incrementally roll out](https://docs.gitlab.com/ee/development/feature_flags/controls.html#process) the feature.
|
- [ ] [Incrementally roll out](https://docs.gitlab.com/ee/development/feature_flags/controls.html#process) the feature.
|
||||||
- If the feature flag in code has [an actor](https://docs.gitlab.com/ee/development/feature_flags/#feature-actors), perform **actor-based** rollout.
|
- If the feature flag in code has [an actor](https://docs.gitlab.com/ee/development/feature_flags/#feature-actors), perform **actor-based** rollout.
|
||||||
|
@ -148,5 +168,5 @@ codebase.
|
||||||
/chatops run feature set <feature-flag-name> false
|
/chatops run feature set <feature-flag-name> false
|
||||||
```
|
```
|
||||||
|
|
||||||
/label ~"feature flag"
|
/label ~"feature flag" ~"type::feature" ~"feature::addition"
|
||||||
/assign DRI
|
/assign DRI
|
||||||
|
|
|
@ -7,4 +7,10 @@
|
||||||
<!-- Consider adding related issues and epics to this issue. You can also reference the Feature Proposal Template (https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20proposal%20-%20detailed.md) for additional details to consider adding to this issue. Additionally, as a data oriented organization, when your feature exits planning breakdown, consider adding the `What does success look like, and how can we measure that?` section.
|
<!-- Consider adding related issues and epics to this issue. You can also reference the Feature Proposal Template (https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20proposal%20-%20detailed.md) for additional details to consider adding to this issue. Additionally, as a data oriented organization, when your feature exits planning breakdown, consider adding the `What does success look like, and how can we measure that?` section.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
/label ~feature::addition ~"group::" ~"section::" ~"Category:" ~"GitLab Core"/~"GitLab Premium"/~"GitLab Ultimate"
|
<!-- Label reminders
|
||||||
|
Use the following resources to find the appropriate labels:
|
||||||
|
- https://gitlab.com/gitlab-org/gitlab/-/labels
|
||||||
|
- https://about.gitlab.com/handbook/product/categories/features/
|
||||||
|
-->
|
||||||
|
|
||||||
|
/label ~"type::feature" ~feature::addition ~"group::" ~"section::" ~"Category:" ~"GitLab Core"/~"GitLab Premium"/~"GitLab Ultimate"
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
<!-- This issue template can be used a great starting point for feature requests. The last section "Release notes" can be used as a summary of the feature and is also required if you want to have your release post blog MR auto generated using the release post item generator: https://about.gitlab.com/handbook/marketing/blog/release-posts/#release-post-item-generator. The remaining sections are the backbone for every feature in GitLab. -->
|
<!-- This issue template can be used as a great starting point for feature requests. The section "Release notes" can be used as a summary of the feature and is also required if you want to have your release post blog MR auto generated using the release post item generator: https://about.gitlab.com/handbook/marketing/blog/release-posts/#release-post-item-generator. The remaining sections are the backbone for every feature in GitLab.
|
||||||
|
|
||||||
|
The goal of this template is brevity for quick/smaller iterations. For a more thorough list of considerations for larger features or feature sets, you can leverage the detailed [feature proposal](https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20proposal%20-%20detailed.md). -->
|
||||||
|
|
||||||
### Release notes
|
### Release notes
|
||||||
|
|
||||||
|
@ -12,22 +14,9 @@
|
||||||
|
|
||||||
<!-- Use this section to explain the feature and how it will work. It can be helpful to add technical details, design proposals, and links to related epics or issues. -->
|
<!-- Use this section to explain the feature and how it will work. It can be helpful to add technical details, design proposals, and links to related epics or issues. -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/label ~"feature" ~"group::" ~"section::" ~"Category::" ~"GitLab Free"/~"GitLab Premium"/~"GitLab Ultimate"
|
|
||||||
|
|
||||||
|
|
||||||
<!--- Use the following resources to find the appropriate labels:
|
|
||||||
- https://gitlab.com/gitlab-org/gitlab/-/labels
|
|
||||||
- https://about.gitlab.com/handbook/product/categories/features/
|
|
||||||
|
|
||||||
Consider adding related issues and epics to this issue. You can also reference the Feature Proposal Template (https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Feature%20proposal%20-%20detailed.md) for additional details to consider adding to this issue. Additionally, as a data oriented organization, when your feature exits planning breakdown, consider adding the `What does success look like, and how can we measure that?` section.
|
|
||||||
|
|
||||||
Other sections to consider adding:
|
|
||||||
|
|
||||||
### Intended users
|
### Intended users
|
||||||
|
|
||||||
Who will use this feature? If known, include any of the following: types of users (e.g. Developer), personas, or specific company roles (e.g. Release Manager). It's okay to write "Unknown" and fill this field in later.
|
<!-- Who will use this feature? If known, include any of the following: types of users (e.g. Developer), personas, or specific company roles (e.g. Release Manager). It's okay to write "Unknown" and fill this field in later.
|
||||||
|
|
||||||
Personas are described at https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/
|
Personas are described at https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/
|
||||||
|
|
||||||
|
@ -45,62 +34,22 @@ Personas are described at https://about.gitlab.com/handbook/marketing/product-ma
|
||||||
* [Allison (Application Ops)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops)
|
* [Allison (Application Ops)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops)
|
||||||
* [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer)
|
* [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer)
|
||||||
* [Dana (Data Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#dana-data-analyst)
|
* [Dana (Data Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#dana-data-analyst)
|
||||||
|
* [Eddie (Content Editor)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#eddie-content-editor)
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
### User experience goal
|
### Metrics
|
||||||
|
|
||||||
What is the single user experience workflow this problem addresses?
|
<!-- How are you going to track uage of this feature? Think about user behavior and their interaction with the product. What indicates someone is getting value from it?
|
||||||
For example, "The user should be able to use the UI/API/.gitlab-ci.yml with GitLab to <perform a specific task>"
|
|
||||||
https://about.gitlab.com/handbook/engineering/ux/ux-research-training/user-story-mapping/
|
|
||||||
|
|
||||||
|
Create tracking issue using the Snowplow event tracking template. See https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Snowplow%20event%20tracking.md
|
||||||
|
|
||||||
### Further details
|
-->
|
||||||
|
|
||||||
Include use cases, benefits, goals, or any other details that will help us understand the problem better.
|
<!-- Label reminders
|
||||||
|
Use the following resources to find the appropriate labels:
|
||||||
|
- https://gitlab.com/gitlab-org/gitlab/-/labels
|
||||||
|
- https://about.gitlab.com/handbook/product/categories/features/
|
||||||
|
-->
|
||||||
|
|
||||||
### Permissions and Security
|
/label ~"type::feature" ~"group::" ~"section::" ~"Category::" ~"GitLab Free"/~"GitLab Premium"/~"GitLab Ultimate" ~documentation ~direction
|
||||||
|
|
||||||
<!-- What permissions are required to perform the described actions? Are they consistent with the existing permissions as documented for users, groups, and projects as appropriate? Is the proposed behavior consistent between the UI, API, and other access methods (e.g. email replies)?
|
|
||||||
Consider adding checkboxes and expectations of users with certain levels of membership https://docs.gitlab.com/ee/user/permissions.html
|
|
||||||
* [ ] Add expected impact to members with no access (0)
|
|
||||||
* [ ] Add expected impact to Guest (10) members
|
|
||||||
* [ ] Add expected impact to Reporter (20) members
|
|
||||||
* [ ] Add expected impact to Developer (30) members
|
|
||||||
* [ ] Add expected impact to Maintainer (40) members
|
|
||||||
* [ ] Add expected impact to Owner (50) members
|
|
||||||
|
|
||||||
### Documentation
|
|
||||||
|
|
||||||
See the Feature Change Documentation Workflow https://docs.gitlab.com/ee/development/documentation/workflow.html#for-a-product-change
|
|
||||||
|
|
||||||
* Add all known Documentation Requirements in this section. See https://docs.gitlab.com/ee/development/documentation/workflow.html
|
|
||||||
* If this feature requires changing permissions, update the permissions document. See https://docs.gitlab.com/ee/user/permissions.html
|
|
||||||
|
|
||||||
### Availability & Testing
|
|
||||||
|
|
||||||
This section needs to be retained and filled in during the workflow planning breakdown phase of this feature proposal, if not earlier.
|
|
||||||
|
|
||||||
What risks does this change pose to our availability? How might it affect the quality of the product? What additional test coverage or changes to tests will be needed? Will it require cross-browser testing?
|
|
||||||
|
|
||||||
Please list the test areas (unit, integration and end-to-end) that needs to be added or updated to ensure that this feature will work as intended. Please use the list below as guidance.
|
|
||||||
* Unit test changes
|
|
||||||
* Integration test changes
|
|
||||||
* End-to-end test change
|
|
||||||
|
|
||||||
See the test engineering planning process and reach out to your counterpart Software Engineer in Test for assistance: https://about.gitlab.com/handbook/engineering/quality/test-engineering/#test-planning
|
|
||||||
|
|
||||||
### What does success look like, and how can we measure that?
|
|
||||||
|
|
||||||
Define both the success metrics and acceptance criteria. Note that success metrics indicate the desired business outcomes, while acceptance criteria indicate when the solution is working correctly. If there is no way to measure success, link to an issue that will implement a way to measure this.
|
|
||||||
|
|
||||||
### What is the type of buyer?
|
|
||||||
|
|
||||||
What is the buyer persona for this feature? See https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/buyer-persona/
|
|
||||||
In which enterprise tier should this feature go? See https://about.gitlab.com/handbook/product/pricing/#three-tiers
|
|
||||||
|
|
||||||
### Is this a cross-stage feature?
|
|
||||||
|
|
||||||
Communicate if this change will affect multiple Stage Groups or product areas. We recommend always start with the assumption that a feature request will have an impact into another Group. Loop in the most relevant PM and Product Designer from that Group to provide strategic support to help align the Group's broader plan and vision, as well as to avoid UX and technical debt. https://about.gitlab.com/handbook/product/#cross-stage-features -->
|
|
||||||
|
|
||||||
/label ~documentation
|
|
||||||
/label ~direction
|
|
||||||
|
|
|
@ -31,6 +31,14 @@ Personas are described at https://about.gitlab.com/handbook/marketing/product-ma
|
||||||
* [Eddie (Content Editor)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#eddie-content-editor)
|
* [Eddie (Content Editor)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#eddie-content-editor)
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
### Metrics
|
||||||
|
|
||||||
|
<!-- How are you going to track uage of this feature? Think about user behavior and their interaction with the product. What indicates someone is getting value from it?
|
||||||
|
|
||||||
|
Create tracking issue using the Snowplow event tracking template. See https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Snowplow%20event%20tracking.md
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
### User experience goal
|
### User experience goal
|
||||||
|
|
||||||
<!-- What is the single user experience workflow this problem addresses?
|
<!-- What is the single user experience workflow this problem addresses?
|
||||||
|
@ -112,6 +120,4 @@ Use the following resources to find the appropriate labels:
|
||||||
-->
|
-->
|
||||||
/label ~devops:: ~group: ~Category:
|
/label ~devops:: ~group: ~Category:
|
||||||
/label ~"GitLab Free"/~"GitLab Premium"/~"GitLab Ultimate"
|
/label ~"GitLab Free"/~"GitLab Premium"/~"GitLab Ultimate"
|
||||||
/label ~feature
|
/label ~"type::feature" ~documentation ~direction
|
||||||
/label ~documentation
|
|
||||||
/label ~direction
|
|
||||||
|
|
|
@ -111,115 +111,9 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
|
||||||
|
|
||||||
- [ ] Be sure to commit the relevant changes in `ee/db/geo/structure.sql`
|
- [ ] Be sure to commit the relevant changes in `ee/db/geo/structure.sql`
|
||||||
|
|
||||||
### Add verification state fields on the Geo primary site
|
### Add verification state to the Model
|
||||||
|
|
||||||
The Geo primary site needs to checksum every replicable in order for secondaries to verify their own checksums. To do this, Geo requires fields on the Model. There are two ways to add the necessary verification state fields. If the table is large and wide, then it may be a good idea to add verification state fields to a separate table (Option 2). Consult a database expert if needed.
|
The Geo primary site needs to checksum every replicable so secondaries can verify their own checksums. To do this, Geo requires the Model to have an associated table to track verification state.
|
||||||
|
|
||||||
#### Add verification state fields to the model table (Option 1)
|
|
||||||
|
|
||||||
- [ ] Create the migration file in `db/migrate`:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
bin/rails generate migration AddVerificationStateToCoolWidgets
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Replace the contents of the migration file with:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class AddVerificationStateToCoolWidgets < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
change_table(:cool_widgets) do |t|
|
|
||||||
t.integer :verification_state, default: 0, limit: 2, null: false
|
|
||||||
t.column :verification_started_at, :datetime_with_timezone
|
|
||||||
t.integer :verification_retry_count, limit: 2, null: false
|
|
||||||
t.column :verification_retry_at, :datetime_with_timezone
|
|
||||||
t.column :verified_at, :datetime_with_timezone
|
|
||||||
t.binary :verification_checksum, using: 'verification_checksum::bytea'
|
|
||||||
|
|
||||||
t.text :verification_failure # rubocop:disable Migration/AddLimitToTextColumns
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
|
|
||||||
- [ ] If `cool_widgets` is a high-traffic table, follow [the database documentation to use `with_lock_retries`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/migration_style_guide.md#when-to-use-the-helper-method)
|
|
||||||
- [ ] Adding a `text` column also [requires](../database/strings_and_the_text_data_type.md#add-a-text-column-to-an-existing-table) setting a limit. Create the migration file in `db/migrate`:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
bin/rails generate migration AddVerificationFailureLimitToCoolWidgets
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Replace the contents of the migration file with:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class AddVerificationFailureLimitToCoolWidgets < ActiveRecord::Migration[6.0]
|
|
||||||
include Gitlab::Database::MigrationHelpers
|
|
||||||
|
|
||||||
disable_ddl_transaction!
|
|
||||||
|
|
||||||
CONSTRAINT_NAME = 'cool_widget_verification_failure_text_limit'
|
|
||||||
|
|
||||||
def up
|
|
||||||
add_text_limit :cool_widget, :verification_failure, 255, constraint_name: CONSTRAINT_NAME
|
|
||||||
end
|
|
||||||
|
|
||||||
def down
|
|
||||||
remove_check_constraint(:cool_widget, CONSTRAINT_NAME)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Add indexes on verification fields to ensure verification can be performed efficiently. Some or all of these indexes can be omitted if the table is guaranteed to be small. Ask a database expert if you are considering omitting indexes. Create the migration file in `db/migrate`:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
bin/rails generate migration AddVerificationIndexesToCoolWidgets
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Replace the contents of the migration file with:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class AddVerificationIndexesToCoolWidgets < ActiveRecord::Migration[6.0]
|
|
||||||
include Gitlab::Database::MigrationHelpers
|
|
||||||
|
|
||||||
VERIFICATION_STATE_INDEX_NAME = "index_cool_widgets_on_verification_state"
|
|
||||||
PENDING_VERIFICATION_INDEX_NAME = "index_cool_widgets_pending_verification"
|
|
||||||
FAILED_VERIFICATION_INDEX_NAME = "index_cool_widgets_failed_verification"
|
|
||||||
NEEDS_VERIFICATION_INDEX_NAME = "index_cool_widgets_needs_verification"
|
|
||||||
|
|
||||||
disable_ddl_transaction!
|
|
||||||
|
|
||||||
def up
|
|
||||||
add_concurrent_index :cool_widgets, :verification_state, name: VERIFICATION_STATE_INDEX_NAME
|
|
||||||
add_concurrent_index :cool_widgets, :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME
|
|
||||||
add_concurrent_index :cool_widgets, :verification_retry_at, where: "(verification_state = 3)", order: { verification_retry_at: 'ASC NULLS FIRST' }, name: FAILED_VERIFICATION_INDEX_NAME
|
|
||||||
add_concurrent_index :cool_widgets, :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME
|
|
||||||
end
|
|
||||||
|
|
||||||
def down
|
|
||||||
remove_concurrent_index_by_name :cool_widgets, VERIFICATION_STATE_INDEX_NAME
|
|
||||||
remove_concurrent_index_by_name :cool_widgets, PENDING_VERIFICATION_INDEX_NAME
|
|
||||||
remove_concurrent_index_by_name :cool_widgets, FAILED_VERIFICATION_INDEX_NAME
|
|
||||||
remove_concurrent_index_by_name :cool_widgets, NEEDS_VERIFICATION_INDEX_NAME
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Run database migrations:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
bin/rake db:migrate
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Be sure to commit the relevant changes in `db/structure.sql`
|
|
||||||
|
|
||||||
#### Add verification state fields to a separate table (Option 2)
|
|
||||||
|
|
||||||
- [ ] Create the migration file in `db/migrate`:
|
- [ ] Create the migration file in `db/migrate`:
|
||||||
|
|
||||||
|
@ -273,6 +167,7 @@ The Geo primary site needs to checksum every replicable in order for secondaries
|
||||||
```
|
```
|
||||||
|
|
||||||
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
|
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
|
||||||
|
|
||||||
- [ ] Run database migrations:
|
- [ ] Run database migrations:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
|
@ -287,7 +182,14 @@ That's all of the required database changes.
|
||||||
|
|
||||||
#### Step 1. Implement replication and verification
|
#### Step 1. Implement replication and verification
|
||||||
|
|
||||||
- [ ] Include `Gitlab::Geo::ReplicableModel` in the `CoolWidget` class, and specify the Replicator class `with_replicator Geo::CoolWidgetReplicator`.
|
- [ ] Add the following lines to the `cool_widget` model to accomplish some important tasks:
|
||||||
|
- Include `Gitlab::Geo::ReplicableModel` in the `CoolWidget` class, and specify the Replicator class `with_replicator Geo::CoolWidgetReplicator`.
|
||||||
|
- Include the `::Gitlab::Geo::VerificationState` concern.
|
||||||
|
- Delegate verification related methods to the `cool_widget_state` model.
|
||||||
|
- For verification, override some scopes to use the `cool_widget_states` table instead of the model table.
|
||||||
|
- Implement the `verification_state_object` method to return the object that holds
|
||||||
|
the verification details
|
||||||
|
- Override some methods to use the `cool_widget_states` table in verification-related queries.
|
||||||
|
|
||||||
Pay some attention to method `pool_repository`. Not every repository type uses repository pooling. As Geo prefers to use repository snapshotting, it can lead to data loss. Make sure to overwrite `pool_repository` so it returns nil for repositories that do not have pools.
|
Pay some attention to method `pool_repository`. Not every repository type uses repository pooling. As Geo prefers to use repository snapshotting, it can lead to data loss. Make sure to overwrite `pool_repository` so it returns nil for repositories that do not have pools.
|
||||||
|
|
||||||
|
@ -297,6 +199,7 @@ That's all of the required database changes.
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class CoolWidget < ApplicationRecord
|
class CoolWidget < ApplicationRecord
|
||||||
|
...
|
||||||
include ::Gitlab::Geo::ReplicableModel
|
include ::Gitlab::Geo::ReplicableModel
|
||||||
include ::Gitlab::Geo::VerificationState
|
include ::Gitlab::Geo::VerificationState
|
||||||
|
|
||||||
|
@ -304,14 +207,39 @@ That's all of the required database changes.
|
||||||
|
|
||||||
mount_uploader :file, CoolWidgetUploader
|
mount_uploader :file, CoolWidgetUploader
|
||||||
|
|
||||||
|
has_one :cool_widget_state, autosave: false, inverse_of: :cool_widget, class_name: 'Geo::CoolWidgetState'
|
||||||
|
|
||||||
|
delegate :verification_retry_at, :verification_retry_at=,
|
||||||
|
:verified_at, :verified_at=,
|
||||||
|
:verification_checksum, :verification_checksum=,
|
||||||
|
:verification_failure, :verification_failure=,
|
||||||
|
:verification_retry_count, :verification_retry_count=,
|
||||||
|
:verification_state=, :verification_state,
|
||||||
|
:verification_started_at=, :verification_started_at,
|
||||||
|
to: :cool_widget_state
|
||||||
|
...
|
||||||
|
|
||||||
|
scope :with_verification_state, ->(state) { joins(:cool_widget_state).where(cool_widget_states: { verification_state: verification_state_value(state) }) }
|
||||||
|
scope :checksummed, -> { joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil } ) }
|
||||||
|
scope :not_checksummed, -> { joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil } ) }
|
||||||
|
|
||||||
# Override the `all` default if not all records can be replicated. For an
|
# Override the `all` default if not all records can be replicated. For an
|
||||||
# example of an existing Model that needs to do this, see
|
# example of an existing Model that needs to do this, see
|
||||||
# `EE::MergeRequestDiff`.
|
# `EE::MergeRequestDiff`.
|
||||||
# scope :available_replicables, -> { all }
|
# scope :available_replicables, -> { all }
|
||||||
|
|
||||||
|
def verification_state_object
|
||||||
|
cool_widget_state
|
||||||
|
end
|
||||||
|
...
|
||||||
|
|
||||||
|
class_methods do
|
||||||
|
extend ::Gitlab::Utils::Override
|
||||||
|
...
|
||||||
|
|
||||||
# @param primary_key_in [Range, CoolWidget] arg to pass to primary_key_in scope
|
# @param primary_key_in [Range, CoolWidget] arg to pass to primary_key_in scope
|
||||||
# @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced to this node, restricted by primary key
|
# @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced to this node, restricted by primary key
|
||||||
def self.replicables_for_current_secondary(primary_key_in)
|
def replicables_for_current_secondary(primary_key_in)
|
||||||
# This issue template does not help you write this method.
|
# This issue template does not help you write this method.
|
||||||
#
|
#
|
||||||
# This method is called only on Geo secondary sites. It is called when
|
# This method is called only on Geo secondary sites. It is called when
|
||||||
|
@ -331,11 +259,22 @@ That's all of the required database changes.
|
||||||
# Search the codebase for examples, and consult a Geo expert if needed.
|
# Search the codebase for examples, and consult a Geo expert if needed.
|
||||||
end
|
end
|
||||||
|
|
||||||
|
override :verification_state_table_class
|
||||||
|
def verification_state_table_class
|
||||||
|
CoolWidgetState
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# Geo checks this method in FrameworkRepositorySyncService to avoid
|
# Geo checks this method in FrameworkRepositorySyncService to avoid
|
||||||
# snapshotting repositories using object pools
|
# snapshotting repositories using object pools
|
||||||
def pool_repository
|
def pool_repository
|
||||||
nil
|
nil
|
||||||
end
|
end
|
||||||
|
...
|
||||||
|
|
||||||
|
def cool_widget_state
|
||||||
|
super || build_cool_widget_state
|
||||||
|
end
|
||||||
|
|
||||||
...
|
...
|
||||||
end
|
end
|
||||||
|
@ -343,6 +282,15 @@ That's all of the required database changes.
|
||||||
|
|
||||||
- [ ] Implement `CoolWidget.replicables_for_current_secondary` above.
|
- [ ] Implement `CoolWidget.replicables_for_current_secondary` above.
|
||||||
- [ ] Ensure `CoolWidget.replicables_for_current_secondary` is well-tested. Search the codebase for `replicables_for_current_secondary` to find examples of parameterized table specs. You may need to add more `FactoryBot` traits.
|
- [ ] Ensure `CoolWidget.replicables_for_current_secondary` is well-tested. Search the codebase for `replicables_for_current_secondary` to find examples of parameterized table specs. You may need to add more `FactoryBot` traits.
|
||||||
|
- [ ] Add the following shared examples to `ee/spec/models/ee/cool_widget_spec.rb`:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
include_examples 'a replicable model with a separate table for verification state' do
|
||||||
|
let(:verifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is included in `available_verifiables`
|
||||||
|
let(:unverifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is NOT included in `available_verifiables`
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
- [ ] Create `ee/app/replicators/geo/cool_widget_replicator.rb`. Implement the `#repository` method which should return a `<Repository>` instance, and implement the class method `.model` to return the `CoolWidget` class:
|
- [ ] Create `ee/app/replicators/geo/cool_widget_replicator.rb`. Implement the `#repository` method which should return a `<Repository>` instance, and implement the class method `.model` to return the `CoolWidget` class:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
|
@ -536,13 +484,7 @@ That's all of the required database changes.
|
||||||
|
|
||||||
- [ ] Make sure the factory also allows setting a `project` attribute. If the model does not have a direct relation to a project, you can use a `transient` attribute. Check out `spec/factories/merge_request_diffs.rb` for an example.
|
- [ ] Make sure the factory also allows setting a `project` attribute. If the model does not have a direct relation to a project, you can use a `transient` attribute. Check out `spec/factories/merge_request_diffs.rb` for an example.
|
||||||
|
|
||||||
##### If you added verification state fields to a separate table (option 2 above), then you need to make additional model and factory changes
|
- [ ] Following [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`:
|
||||||
|
|
||||||
If you did not add verification state fields to a separate table, `cool_widget_states`, then skip to [Step 2. Implement metrics gathering](#step-2-implement-metrics-gathering).
|
|
||||||
|
|
||||||
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/geo/cool_widget_state.rb`:
|
|
||||||
|
|
||||||
``` ruby
|
``` ruby
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
@ -576,63 +518,6 @@ Otherwise, you can follow [the example of Merge Request Diffs](https://gitlab.co
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
- [ ] Add the following lines to the `cool_widget` model to accomplish some important tasks:
|
|
||||||
- Include the `::Gitlab::Geo::VerificationState` concern.
|
|
||||||
- Delegate verification related methods to the `cool_widget_state` model.
|
|
||||||
- Override some scopes to use the `cool_widget_states` table instead of the model table, for verification.
|
|
||||||
- Override some methods to use the `cool_widget_states` table in verification related queries.
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
class CoolWidget < ApplicationRecord
|
|
||||||
...
|
|
||||||
include ::Gitlab::Geo::VerificationState
|
|
||||||
|
|
||||||
has_one :cool_widget_state, autosave: true, inverse_of: :cool_widget, class_name: 'Geo::CoolWidgetState'
|
|
||||||
|
|
||||||
delegate :verification_retry_at, :verification_retry_at=,
|
|
||||||
:verified_at, :verified_at=,
|
|
||||||
:verification_checksum, :verification_checksum=,
|
|
||||||
:verification_failure, :verification_failure=,
|
|
||||||
:verification_retry_count, :verification_retry_count=,
|
|
||||||
:verification_state=, :verification_state,
|
|
||||||
:verification_started_at=, :verification_started_at,
|
|
||||||
to: :cool_widget_state
|
|
||||||
...
|
|
||||||
|
|
||||||
scope :with_verification_state, ->(state) { joins(:cool_widget_state).where(cool_widget_states: { verification_state: verification_state_value(state) }) }
|
|
||||||
scope :checksummed, -> { joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil } ) }
|
|
||||||
scope :not_checksummed, -> { joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil } ) }
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
class_methods do
|
|
||||||
extend ::Gitlab::Utils::Override
|
|
||||||
...
|
|
||||||
override :verification_state_table_name
|
|
||||||
def verification_state_table_name
|
|
||||||
'cool_widget_states'
|
|
||||||
end
|
|
||||||
|
|
||||||
override :verification_state_model_key
|
|
||||||
def verification_state_model_key
|
|
||||||
'cool_widget_id'
|
|
||||||
end
|
|
||||||
|
|
||||||
override :verification_arel_table
|
|
||||||
def verification_arel_table
|
|
||||||
CoolWidgetState.arel_table
|
|
||||||
end
|
|
||||||
end
|
|
||||||
...
|
|
||||||
|
|
||||||
def cool_widget_state
|
|
||||||
super || build_cool_widget_state
|
|
||||||
end
|
|
||||||
|
|
||||||
...
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Step 2. Implement metrics gathering
|
#### Step 2. Implement metrics gathering
|
||||||
|
|
||||||
Metrics are gathered by `Geo::MetricsUpdateWorker`, persisted in `GeoNodeStatus` for display in the UI, and sent to Prometheus:
|
Metrics are gathered by `Geo::MetricsUpdateWorker`, persisted in `GeoNodeStatus` for display in the UI, and sent to Prometheus:
|
||||||
|
|
|
@ -37,6 +37,7 @@ It is also a good idea to first open a proof-of-concept merge request. It can be
|
||||||
You can look into the following examples of MRs for implementing replication/verification for a new blob type:
|
You can look into the following examples of MRs for implementing replication/verification for a new blob type:
|
||||||
- [Add db changes](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60935) and [add verification for MR diffs using SSF](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63309)
|
- [Add db changes](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/60935) and [add verification for MR diffs using SSF](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63309)
|
||||||
- [Verify Terraform state versions](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58800)
|
- [Verify Terraform state versions](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/58800)
|
||||||
|
- [Verify LFS objects](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63981)
|
||||||
|
|
||||||
### Modify database schemas to prepare to add Geo support for Cool Widgets
|
### Modify database schemas to prepare to add Geo support for Cool Widgets
|
||||||
|
|
||||||
|
@ -114,113 +115,9 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
|
||||||
|
|
||||||
### Add verification state fields on the Geo primary site
|
### Add verification state fields on the Geo primary site
|
||||||
|
|
||||||
The Geo primary site needs to checksum every replicable in order for secondaries to verify their own checksums. To do this, Geo requires fields on the Model. There are two ways to add the necessary verification state fields. If the table is large and wide, then it may be a good idea to add verification state fields to a separate table (Option 2). Consult a database expert if needed.
|
The Geo primary site needs to checksum every replicable so secondaries can verify their own checksums. To do this, Geo requires fields on the Model. Add verification state fields to a separate table. Consult a database expert if needed.
|
||||||
|
|
||||||
#### Add verification state fields to the model table (Option 1)
|
#### Add verification state fields to a new table
|
||||||
|
|
||||||
- [ ] Create the migration file in `db/migrate`:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
bin/rails generate migration AddVerificationStateToCoolWidgets
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Replace the contents of the migration file with:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class AddVerificationStateToCoolWidgets < ActiveRecord::Migration[6.0]
|
|
||||||
def change
|
|
||||||
change_table(:cool_widgets) do |t|
|
|
||||||
t.integer :verification_state, default: 0, limit: 2, null: false
|
|
||||||
t.column :verification_started_at, :datetime_with_timezone
|
|
||||||
t.integer :verification_retry_count, limit: 2, null: false
|
|
||||||
t.column :verification_retry_at, :datetime_with_timezone
|
|
||||||
t.column :verified_at, :datetime_with_timezone
|
|
||||||
t.binary :verification_checksum, using: 'verification_checksum::bytea'
|
|
||||||
|
|
||||||
t.text :verification_failure # rubocop:disable Migration/AddLimitToTextColumns
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
|
|
||||||
- [ ] If `cool_widgets` is a high-traffic table, follow [the database documentation to use `with_lock_retries`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/migration_style_guide.md#when-to-use-the-helper-method)
|
|
||||||
- [ ] Adding a `text` column also [requires](../database/strings_and_the_text_data_type.md#add-a-text-column-to-an-existing-table) setting a limit. Create the migration file in `db/migrate`:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
bin/rails generate migration AddVerificationFailureLimitToCoolWidgets
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Replace the contents of the migration file with:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class AddVerificationFailureLimitToCoolWidgets < ActiveRecord::Migration[6.0]
|
|
||||||
include Gitlab::Database::MigrationHelpers
|
|
||||||
|
|
||||||
disable_ddl_transaction!
|
|
||||||
|
|
||||||
CONSTRAINT_NAME = 'cool_widget_verification_failure_text_limit'
|
|
||||||
|
|
||||||
def up
|
|
||||||
add_text_limit :cool_widget, :verification_failure, 255, constraint_name: CONSTRAINT_NAME
|
|
||||||
end
|
|
||||||
|
|
||||||
def down
|
|
||||||
remove_check_constraint(:cool_widget, CONSTRAINT_NAME)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Add indexes on verification fields to ensure verification can be performed efficiently. Some or all of these indexes can be omitted if the table is guaranteed to be small. Ask a database expert if you are considering omitting indexes. Create the migration file in `db/migrate`:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
bin/rails generate migration AddVerificationIndexesToCoolWidgets
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Replace the contents of the migration file with:
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
# frozen_string_literal: true
|
|
||||||
|
|
||||||
class AddVerificationIndexesToCoolWidgets < ActiveRecord::Migration[6.0]
|
|
||||||
include Gitlab::Database::MigrationHelpers
|
|
||||||
|
|
||||||
VERIFICATION_STATE_INDEX_NAME = "index_cool_widgets_on_verification_state"
|
|
||||||
PENDING_VERIFICATION_INDEX_NAME = "index_cool_widgets_pending_verification"
|
|
||||||
FAILED_VERIFICATION_INDEX_NAME = "index_cool_widgets_failed_verification"
|
|
||||||
NEEDS_VERIFICATION_INDEX_NAME = "index_cool_widgets_needs_verification"
|
|
||||||
|
|
||||||
disable_ddl_transaction!
|
|
||||||
|
|
||||||
def up
|
|
||||||
add_concurrent_index :cool_widgets, :verification_state, name: VERIFICATION_STATE_INDEX_NAME
|
|
||||||
add_concurrent_index :cool_widgets, :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME
|
|
||||||
add_concurrent_index :cool_widgets, :verification_retry_at, where: "(verification_state = 3)", order: { verification_retry_at: 'ASC NULLS FIRST' }, name: FAILED_VERIFICATION_INDEX_NAME
|
|
||||||
add_concurrent_index :cool_widgets, :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME
|
|
||||||
end
|
|
||||||
|
|
||||||
def down
|
|
||||||
remove_concurrent_index_by_name :cool_widgets, VERIFICATION_STATE_INDEX_NAME
|
|
||||||
remove_concurrent_index_by_name :cool_widgets, PENDING_VERIFICATION_INDEX_NAME
|
|
||||||
remove_concurrent_index_by_name :cool_widgets, FAILED_VERIFICATION_INDEX_NAME
|
|
||||||
remove_concurrent_index_by_name :cool_widgets, NEEDS_VERIFICATION_INDEX_NAME
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Run database migrations:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
bin/rake db:migrate
|
|
||||||
```
|
|
||||||
|
|
||||||
- [ ] Be sure to commit the relevant changes in `db/structure.sql`
|
|
||||||
|
|
||||||
#### Add verification state fields to a separate table (Option 2)
|
|
||||||
|
|
||||||
- [ ] Create the migration file in `db/migrate`:
|
- [ ] Create the migration file in `db/migrate`:
|
||||||
|
|
||||||
|
@ -274,12 +171,15 @@ The Geo primary site needs to checksum every replicable in order for secondaries
|
||||||
```
|
```
|
||||||
|
|
||||||
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
|
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
|
||||||
|
|
||||||
- [ ] Run database migrations:
|
- [ ] Run database migrations:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
bin/rake db:migrate
|
bin/rake db:migrate
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- [ ] If `cool_widgets` is a high-traffic table, follow [the database documentation to use `with_lock_retries`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/migration_style_guide.md#when-to-use-the-helper-method)
|
||||||
|
|
||||||
- [ ] Be sure to commit the relevant changes in `db/structure.sql`
|
- [ ] Be sure to commit the relevant changes in `db/structure.sql`
|
||||||
|
|
||||||
That's all of the required database changes.
|
That's all of the required database changes.
|
||||||
|
@ -288,7 +188,14 @@ That's all of the required database changes.
|
||||||
|
|
||||||
#### Step 1. Implement replication and verification
|
#### Step 1. Implement replication and verification
|
||||||
|
|
||||||
- [ ] Include `Gitlab::Geo::ReplicableModel` in the `CoolWidget` class, and specify the Replicator class `with_replicator Geo::CoolWidgetReplicator`.
|
- [ ] Add the following lines to the `cool_widget` model to accomplish some important tasks:
|
||||||
|
- Include `Gitlab::Geo::ReplicableModel` in the `CoolWidget` class, and specify the Replicator class `with_replicator Geo::CoolWidgetReplicator`.
|
||||||
|
- Include the `::Gitlab::Geo::VerificationState` concern.
|
||||||
|
- Delegate verification related methods to the `cool_widget_state` model.
|
||||||
|
- For verification, override some scopes to use the `cool_widget_states` table instead of the model table.
|
||||||
|
- Implement the `verification_state_object` method to return the object that holds
|
||||||
|
the verification details
|
||||||
|
- Override some methods to use the `cool_widget_states` table in verification-related queries.
|
||||||
|
|
||||||
At this point the `CoolWidget` class should look like this:
|
At this point the `CoolWidget` class should look like this:
|
||||||
|
|
||||||
|
@ -296,6 +203,7 @@ That's all of the required database changes.
|
||||||
# frozen_string_literal: true
|
# frozen_string_literal: true
|
||||||
|
|
||||||
class CoolWidget < ApplicationRecord
|
class CoolWidget < ApplicationRecord
|
||||||
|
...
|
||||||
include ::Gitlab::Geo::ReplicableModel
|
include ::Gitlab::Geo::ReplicableModel
|
||||||
include ::Gitlab::Geo::VerificationState
|
include ::Gitlab::Geo::VerificationState
|
||||||
|
|
||||||
|
@ -303,11 +211,36 @@ That's all of the required database changes.
|
||||||
|
|
||||||
mount_uploader :file, CoolWidgetUploader
|
mount_uploader :file, CoolWidgetUploader
|
||||||
|
|
||||||
|
has_one :cool_widget_state, autosave: false, inverse_of: :cool_widget, class_name: 'Geo::CoolWidgetState'
|
||||||
|
|
||||||
|
delegate :verification_retry_at, :verification_retry_at=,
|
||||||
|
:verified_at, :verified_at=,
|
||||||
|
:verification_checksum, :verification_checksum=,
|
||||||
|
:verification_failure, :verification_failure=,
|
||||||
|
:verification_retry_count, :verification_retry_count=,
|
||||||
|
:verification_state=, :verification_state,
|
||||||
|
:verification_started_at=, :verification_started_at,
|
||||||
|
to: :cool_widget_state
|
||||||
|
...
|
||||||
|
|
||||||
|
scope :with_verification_state, ->(state) { joins(:cool_widget_state).where(cool_widget_states: { verification_state: verification_state_value(state) }) }
|
||||||
|
scope :checksummed, -> { joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil } ) }
|
||||||
|
scope :not_checksummed, -> { joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil } ) }
|
||||||
|
|
||||||
# Override the `all` default if not all records can be replicated. For an
|
# Override the `all` default if not all records can be replicated. For an
|
||||||
# example of an existing Model that needs to do this, see
|
# example of an existing Model that needs to do this, see
|
||||||
# `EE::MergeRequestDiff`.
|
# `EE::MergeRequestDiff`.
|
||||||
# scope :available_replicables, -> { all }
|
# scope :available_replicables, -> { all }
|
||||||
|
|
||||||
|
def verification_state_object
|
||||||
|
cool_widget_state
|
||||||
|
end
|
||||||
|
...
|
||||||
|
|
||||||
|
class_methods do
|
||||||
|
extend ::Gitlab::Utils::Override
|
||||||
|
...
|
||||||
|
|
||||||
# @param primary_key_in [Range, CoolWidget] arg to pass to primary_key_in scope
|
# @param primary_key_in [Range, CoolWidget] arg to pass to primary_key_in scope
|
||||||
# @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced to this node, restricted by primary key
|
# @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced to this node, restricted by primary key
|
||||||
def self.replicables_for_current_secondary(primary_key_in)
|
def self.replicables_for_current_secondary(primary_key_in)
|
||||||
|
@ -329,12 +262,33 @@ That's all of the required database changes.
|
||||||
#
|
#
|
||||||
# Search the codebase for examples, and consult a Geo expert if needed.
|
# Search the codebase for examples, and consult a Geo expert if needed.
|
||||||
end
|
end
|
||||||
|
|
||||||
|
override :verification_state_table_class
|
||||||
|
def verification_state_table_class
|
||||||
|
CoolWidgetState
|
||||||
|
end
|
||||||
|
end
|
||||||
|
...
|
||||||
|
|
||||||
|
def cool_widget_state
|
||||||
|
super || build_cool_widget_state
|
||||||
|
end
|
||||||
|
|
||||||
...
|
...
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
- [ ] Implement `CoolWidget.replicables_for_current_secondary` above.
|
- [ ] Implement `CoolWidget.replicables_for_current_secondary` above.
|
||||||
- [ ] Ensure `CoolWidget.replicables_for_current_secondary` is well-tested. Search the codebase for `replicables_for_current_secondary` to find examples of parameterized table specs. You may need to add more `FactoryBot` traits.
|
- [ ] Ensure `CoolWidget.replicables_for_current_secondary` is well-tested. Search the codebase for `replicables_for_current_secondary` to find examples of parameterized table specs. You may need to add more `FactoryBot` traits.
|
||||||
|
- [ ] Add the following shared examples to `ee/spec/models/ee/cool_widget_spec.rb`:
|
||||||
|
|
||||||
|
```ruby
|
||||||
|
include_examples 'a replicable model with a separate table for verification state' do
|
||||||
|
let(:verifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is included in `available_verifiables`
|
||||||
|
let(:unverifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is NOT included in `available_verifiables`
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
- [ ] Create `ee/app/replicators/geo/cool_widget_replicator.rb`. Implement the `#carrierwave_uploader` method which should return a `CarrierWave::Uploader`, and implement the class method `.model` to return the `CoolWidget` class:
|
- [ ] Create `ee/app/replicators/geo/cool_widget_replicator.rb`. Implement the `#carrierwave_uploader` method which should return a `CarrierWave::Uploader`, and implement the class method `.model` to return the `CoolWidget` class:
|
||||||
|
|
||||||
```ruby
|
```ruby
|
||||||
|
@ -498,13 +452,7 @@ That's all of the required database changes.
|
||||||
|
|
||||||
- [ ] Make sure the factory also allows setting a `project` attribute. If the model does not have a direct relation to a project, you can use a `transient` attribute. Check out `spec/factories/merge_request_diffs.rb` for an example.
|
- [ ] Make sure the factory also allows setting a `project` attribute. If the model does not have a direct relation to a project, you can use a `transient` attribute. Check out `spec/factories/merge_request_diffs.rb` for an example.
|
||||||
|
|
||||||
##### If you added verification state fields to a separate table (option 2 above), then you need to make additional model and factory changes
|
- [ ] Following [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`:
|
||||||
|
|
||||||
If you did not add verification state fields to a separate table, `cool_widget_states`, then skip to [Step 2. Implement metrics gathering](#step-2-implement-metrics-gathering).
|
|
||||||
|
|
||||||
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`:
|
|
||||||
|
|
||||||
``` ruby
|
``` ruby
|
||||||
module Geo
|
module Geo
|
||||||
|
@ -536,63 +484,6 @@ Otherwise, you can follow [the example of Merge Request Diffs](https://gitlab.co
|
||||||
end
|
end
|
||||||
```
|
```
|
||||||
|
|
||||||
- [ ] Add the following lines to the `cool_widget` model to accomplish some important tasks:
|
|
||||||
- Include the `::Gitlab::Geo::VerificationState` concern.
|
|
||||||
- Delegate verification related methods to the `cool_widget_state` model.
|
|
||||||
- Override some scopes to use the `cool_widget_states` table instead of the model table, for verification.
|
|
||||||
- Override some methods to use the `cool_widget_states` table in verification related queries.
|
|
||||||
|
|
||||||
```ruby
|
|
||||||
class CoolWidget < ApplicationRecord
|
|
||||||
...
|
|
||||||
include ::Gitlab::Geo::VerificationState
|
|
||||||
|
|
||||||
has_one :cool_widget_state, autosave: true, inverse_of: :cool_widget, class_name: 'Geo::CoolWidgetState'
|
|
||||||
|
|
||||||
delegate :verification_retry_at, :verification_retry_at=,
|
|
||||||
:verified_at, :verified_at=,
|
|
||||||
:verification_checksum, :verification_checksum=,
|
|
||||||
:verification_failure, :verification_failure=,
|
|
||||||
:verification_retry_count, :verification_retry_count=,
|
|
||||||
:verification_state=, :verification_state,
|
|
||||||
:verification_started_at=, :verification_started_at,
|
|
||||||
to: :cool_widget_state
|
|
||||||
...
|
|
||||||
|
|
||||||
scope :with_verification_state, ->(state) { joins(:cool_widget_state).where(cool_widget_states: { verification_state: verification_state_value(state) }) }
|
|
||||||
scope :checksummed, -> { joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil } ) }
|
|
||||||
scope :not_checksummed, -> { joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil } ) }
|
|
||||||
|
|
||||||
...
|
|
||||||
|
|
||||||
class_methods do
|
|
||||||
extend ::Gitlab::Utils::Override
|
|
||||||
...
|
|
||||||
override :verification_state_table_name
|
|
||||||
def verification_state_table_name
|
|
||||||
'cool_widget_states'
|
|
||||||
end
|
|
||||||
|
|
||||||
override :verification_state_model_key
|
|
||||||
def verification_state_model_key
|
|
||||||
'cool_widget_id'
|
|
||||||
end
|
|
||||||
|
|
||||||
override :verification_arel_table
|
|
||||||
def verification_arel_table
|
|
||||||
CoolWidgetState.arel_table
|
|
||||||
end
|
|
||||||
end
|
|
||||||
...
|
|
||||||
|
|
||||||
def cool_widget_state
|
|
||||||
super || build_cool_widget_state
|
|
||||||
end
|
|
||||||
|
|
||||||
...
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Step 2. Implement metrics gathering
|
#### Step 2. Implement metrics gathering
|
||||||
|
|
||||||
Metrics are gathered by `Geo::MetricsUpdateWorker`, persisted in `GeoNodeStatus` for display in the UI, and sent to Prometheus:
|
Metrics are gathered by `Geo::MetricsUpdateWorker`, persisted in `GeoNodeStatus` for display in the UI, and sent to Prometheus:
|
||||||
|
|
|
@ -53,4 +53,4 @@ See also:
|
||||||
-->
|
-->
|
||||||
|
|
||||||
/label ~"infradev"
|
/label ~"infradev"
|
||||||
/label ~"bug"
|
/label ~"type::bug"
|
||||||
|
|
|
@ -1,3 +1,7 @@
|
||||||
|
<!-- This template is used as a starting point for understing and articulating a customer problem.
|
||||||
|
Learn more about it in the handbook: https://about.gitlab.com/handbook/product-development-flow/#validation-phase-2-problem-validation
|
||||||
|
-->
|
||||||
|
|
||||||
## Problem Statement
|
## Problem Statement
|
||||||
|
|
||||||
<!-- What is the problem we hope to validate? Reference how to write a real customer problem statement at https://productcoalition.com/how-to-write-a-good-customer-problem-statement-a815f80189ba for guidance. -->
|
<!-- What is the problem we hope to validate? Reference how to write a real customer problem statement at https://productcoalition.com/how-to-write-a-good-customer-problem-statement-a815f80189ba for guidance. -->
|
||||||
|
@ -45,4 +49,8 @@ For example, if the solution will take a product manager, designer, and engineer
|
||||||
- [ ] 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 product design to understand the problem
|
||||||
- [ ] The problem is well described and detailed with necessary requirements for engineering to understand the problem
|
- [ ] The problem is well described and detailed with necessary requirements for engineering to understand the problem
|
||||||
|
|
||||||
|
## Research Issue
|
||||||
|
|
||||||
|
<!-- Link to the Problem Validation Research issue that will be executed by the UX Researcher. https://gitlab.com/gitlab-org/ux-research/ -->
|
||||||
|
|
||||||
/label ~"workflow::validation backlog" ~devops:: ~category: ~group::
|
/label ~"workflow::validation backlog" ~devops:: ~category: ~group::
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Please describe the engineering productivity problem that needs to be solved backed by charts from
|
Please describe the engineering productivity problem that needs to be solved backed by charts from
|
||||||
https://about.gitlab.com/handbook/engineering/quality/engineering-productivity-team/#engineering-productivity-team-metrics.
|
https://about.gitlab.com/handbook/engineering/quality/engineering-productivity/#engineering-productivity-metrics.
|
||||||
-->
|
-->
|
||||||
|
|
||||||
### Problem identification checklist
|
### Problem identification checklist
|
||||||
|
|
|
@ -41,9 +41,9 @@ please list them here.
|
||||||
<!--
|
<!--
|
||||||
Please select the appropriate label from the following:
|
Please select the appropriate label from the following:
|
||||||
~"feature::addition"
|
~"feature::addition"
|
||||||
~"feature::maintenance"
|
~"type::maintenance"
|
||||||
~"tooling::pipelines"
|
~"tooling::pipelines"
|
||||||
~"tooling::workflow"
|
~"tooling::workflow"
|
||||||
-->
|
-->
|
||||||
|
|
||||||
/label ~"feature::maintenance"
|
/label ~"type::maintenance"
|
||||||
|
|
|
@ -12,7 +12,7 @@ Set the title to: `Description of the original issue`
|
||||||
- [ ] Make sure the issue really needs to follow the security release workflow.
|
- [ ] 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.
|
- 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.
|
- 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
|
- [ ] **IMPORTANT**: Mark this [issue as linked] to the Security Release Tracking Issue. You can find it [here](https://gitlab.com/gitlab-org/gitlab/-/issues?sort=created_date&state=opened&label_name[]=upcoming+security+release). This issue
|
||||||
MUST be linked for the release bot to know that the associated merge requests should be merged for this security release.
|
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):
|
- Fill out the [Links section](#links):
|
||||||
- [ ] Next to **Issue on GitLab**, add a link to the `gitlab-org/gitlab` issue that describes the security vulnerability.
|
- [ ] Next to **Issue on GitLab**, add a link to the `gitlab-org/gitlab` issue that describes the security vulnerability.
|
||||||
|
|
|
@ -29,5 +29,5 @@
|
||||||
|
|
||||||
### Team
|
### Team
|
||||||
|
|
||||||
- [ ] Add ~"workflow::planning breakdown" ~feature and the corresponding `~devops::<stage>` and `~group::<group>` labels.
|
- [ ] Add ~"workflow::planning breakdown" ~"type::feature" and the corresponding `~devops::<stage>` and `~group::<group>` labels.
|
||||||
- [ ] Ping the PM and EM.
|
- [ ] Ping the PM and EM.
|
||||||
|
|
|
@ -6,16 +6,19 @@
|
||||||
|
|
||||||
**Be sure to link this MR to the relevant deprecation issue(s).**
|
**Be sure to link this MR to the relevant deprecation issue(s).**
|
||||||
|
|
||||||
|
Deprecation announcements can and should be created and merged into Docs at any time, to optimize user awareness and planning. We encourage confirmed deprecations to be merged as soon as the required reviews are complete, even if weeks ahead of the target milestone's release post. For the announcement to be included in a specific release post and that release's documentation packages, this MR must be reviewed/merged per the due dates below:
|
||||||
|
|
||||||
**By the 10th**: Assign this MR to these team members as Reviewer and for Approval (optional unless noted as required):
|
**By the 10th**: Assign this MR to these team members as Reviewer and for Approval (optional unless noted as required):
|
||||||
|
|
||||||
- Product Marketing: `@PMM`
|
- Product Marketing: `@PMM`
|
||||||
- Product Designer(s): `@ProductDesigners`
|
- Product Designer(s): `@ProductDesigners`
|
||||||
- Group Manager or Director: `@manager`
|
- Group Manager or Director: `@manager`
|
||||||
- Engineering Manager: `@EM` - Required
|
- Engineering Manager: `@EM` - Required
|
||||||
|
- Technical writer: `@TW` - Required
|
||||||
|
|
||||||
**By 8:00 AM PDT 15th**: PM will assign this MR to the TW reviewer: `@PM`
|
**By 11:59 AM PDT 15th**: PM assigns this MR to the TW reviewer for final review and merge: `@PM`
|
||||||
|
|
||||||
**By 11:59 PM PDT 15th**: TW Reviewer will perform final review and merge this MR to Master: `@TW`
|
**By 11:59 PM PDT 17th**: TW Reviewer updates Docs by merging this MR to `master`: `@TW`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -31,8 +34,9 @@ They are frequently updated, and everyone should make sure they are aware of the
|
||||||
## PM release post item checklist
|
## PM release post item checklist
|
||||||
|
|
||||||
- [ ] Set yourself as the Assignee.
|
- [ ] Set yourself as the Assignee.
|
||||||
|
- [ ] If the deprecation is a [breaking change](https://about.gitlab.com/handbook/product/gitlab-the-product/#breaking-change), add label `breaking change`.
|
||||||
- [ ] Follow the process to [create a deprecation YAML file](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-a-deprecation-entry).
|
- [ ] Follow the process to [create a deprecation YAML file](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-a-deprecation-entry).
|
||||||
- [ ] Add reviewers by the 10th
|
- [ ] Add reviewers by the 10th.
|
||||||
- [ ] When ready to be merged and not later than the 15th, add the ~ready label and @ message the TW for final review and merge.
|
- [ ] When ready to be merged and not later than the 15th, add the ~ready label and @ message the TW for final review and merge.
|
||||||
|
|
||||||
## Reviewers
|
## Reviewers
|
||||||
|
@ -78,5 +82,18 @@ yourself as a reviewer if it's not ready for merge yet.
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
|
|
||||||
When the PM indicates it is ready for merge, all issues have been addressed merge this MR.
|
When the PM indicates it is ready for merge and all issues have been addressed, start the merge process.
|
||||||
- You must merge this MR by the 15th so the Release Post TW lead can run the [deprecations in Docs rake task](https://about.gitlab.com/handbook/marketing/blog/release-posts/#update-the-deprecations-doc) on the 16th
|
|
||||||
|
#### Technical writer merge process
|
||||||
|
|
||||||
|
The [deprecations doc's `.md` file](https://gitlab.com/gitlab-org/gitlab/blob/master/doc/update/deprecations.md)
|
||||||
|
must be updated before this MR is merged:
|
||||||
|
|
||||||
|
1. Check out the MR's branch (in the [`gitlab-org/gitlab`](https://gitlab.com/gitlab-org/gitlab) project).
|
||||||
|
1. From the command line (in the branch), run `bin/rake gitlab:docs:compile_deprecations`.
|
||||||
|
If you want to double check that it worked, you can run `bin/rake gitlab:docs:check_deprecations`
|
||||||
|
to verify that the doc is up to date.
|
||||||
|
1. Commit the updated file and push the changes.
|
||||||
|
1. Set the MR to merge when the pipeline succeeds (or merge if the pipeline is already complete).
|
||||||
|
|
||||||
|
If you have trouble running the rake task, check the [troubleshooting steps](https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecation-rake-task-troubleshooting).
|
||||||
|
|
|
@ -20,10 +20,10 @@
|
||||||
|
|
||||||
If you are only adding documentation, do not add any of the following labels:
|
If you are only adding documentation, do not add any of the following labels:
|
||||||
|
|
||||||
- `~"feature"`
|
- `~"type::feature"`
|
||||||
- `~"frontend"`
|
- `~"frontend"`
|
||||||
- `~"backend"`
|
- `~"backend"`
|
||||||
- `~"bug"`
|
- `~"type::bug"`
|
||||||
- `~"database"`
|
- `~"database"`
|
||||||
|
|
||||||
These labels cause the MR to be added to code verification QA issues.
|
These labels cause the MR to be added to code verification QA issues.
|
||||||
|
|
|
@ -24,5 +24,5 @@ Please link to the respective test case in the testcases project
|
||||||
|
|
||||||
/label ~"Quality:test-gap" ~"Quality:EE test gaps"
|
/label ~"Quality:test-gap" ~"Quality:EE test gaps"
|
||||||
|
|
||||||
<!-- Select the appropriate feature label, ~"feature::addition" for tests added for new features, ~"feature::maintenance" for tests added for existing features -->
|
<!-- Select the appropriate feature label, ~"feature::addition" for tests added for new features, ~"type::maintenance" for tests added for existing features -->
|
||||||
/label ~"feature::addition" ~"feature::maintenance"
|
/label ~"feature::addition" ~"type::maintenance"
|
||||||
|
|
|
@ -33,6 +33,6 @@ This will help keep track of expected cost increases to the [GitLab project aver
|
||||||
|
|
||||||
### Post-merge
|
### Post-merge
|
||||||
|
|
||||||
- [ ] Consider communicating these changes to the broader team following the [communication guideline for pipeline changes](https://about.gitlab.com/handbook/engineering/quality/engineering-productivity-team/#pipeline-changes)
|
- [ ] Consider communicating these changes to the broader team following the [communication guideline for pipeline changes](https://about.gitlab.com/handbook/engineering/quality/engineering-productivity/#pipeline-changes)
|
||||||
|
|
||||||
/label ~tooling ~"tooling::pipelines" ~"Engineering Productivity"
|
/label ~"type::tooling" ~"tooling::pipelines" ~"Engineering Productivity"
|
||||||
|
|
|
@ -30,7 +30,7 @@ the noise (due to constantly failing tests, flaky tests, and so on) so that new
|
||||||
- [ ] To ensure a faster turnaround, ask in the `#quality` Slack channel for someone to review and merge the merge request, rather than assigning it directly.
|
- [ ] To ensure a faster turnaround, ask in the `#quality` Slack channel for someone to review and merge the merge request, rather than assigning it directly.
|
||||||
|
|
||||||
<!-- Base labels. -->
|
<!-- Base labels. -->
|
||||||
/label ~"Quality" ~"QA" ~"feature" ~"feature::maintenance"
|
/label ~"Quality" ~"QA" ~"type::maintenance"
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Choose the stage that appears in the test path, e.g. ~"devops::create" for
|
Choose the stage that appears in the test path, e.g. ~"devops::create" for
|
||||||
|
|
|
@ -19,6 +19,8 @@ tasks:
|
||||||
# ensure gdk.yml has correct instance settings
|
# ensure gdk.yml has correct instance settings
|
||||||
gdk config set gitlab.rails.port 443
|
gdk config set gitlab.rails.port 443
|
||||||
gdk config set gitlab.rails.https.enabled true
|
gdk config set gitlab.rails.https.enabled true
|
||||||
|
# make documentation builds available
|
||||||
|
gdk config set gitlab_docs.enabled true
|
||||||
# reconfigure GDK
|
# reconfigure GDK
|
||||||
echo "$(date) – Reconfiguring GDK" | tee -a /workspace/startup.log
|
echo "$(date) – Reconfiguring GDK" | tee -a /workspace/startup.log
|
||||||
gdk reconfigure
|
gdk reconfigure
|
||||||
|
@ -76,8 +78,6 @@ tasks:
|
||||||
sleep 5
|
sleep 5
|
||||||
printf "$(date) – GitLab is up (took ~%.1f minutes)\n" "$((10*$SECONDS/60))e-1" | tee -a /workspace/startup.log
|
printf "$(date) – GitLab is up (took ~%.1f minutes)\n" "$((10*$SECONDS/60))e-1" | tee -a /workspace/startup.log
|
||||||
gp preview $(gp url 3000) || true
|
gp preview $(gp url 3000) || true
|
||||||
# Speed up backend tests
|
|
||||||
export GITLAB_TEST_EAGER_LOAD=false
|
|
||||||
)
|
)
|
||||||
|
|
||||||
ports:
|
ports:
|
||||||
|
@ -85,6 +85,8 @@ ports:
|
||||||
onOpen: ignore
|
onOpen: ignore
|
||||||
- port: 3000 # rails-web
|
- port: 3000 # rails-web
|
||||||
onOpen: notify
|
onOpen: notify
|
||||||
|
- port: 3005 # gitlab-docs
|
||||||
|
onOpen: notify
|
||||||
- port: 3010 # gitlab-pages
|
- port: 3010 # gitlab-pages
|
||||||
onOpen: ignore
|
onOpen: ignore
|
||||||
- port: 3808 # webpack
|
- port: 3808 # webpack
|
||||||
|
@ -104,3 +106,4 @@ vscode:
|
||||||
- octref.vetur@0.34.1
|
- octref.vetur@0.34.1
|
||||||
- dbaeumer.vscode-eslint@2.1.8
|
- dbaeumer.vscode-eslint@2.1.8
|
||||||
- gitlab.gitlab-workflow@3.24.0
|
- gitlab.gitlab-workflow@3.24.0
|
||||||
|
- DavidAnson.vscode-markdownlint@0.44.4
|
||||||
|
|
|
@ -6,6 +6,7 @@ skip_frontmatter: false
|
||||||
exclude:
|
exclude:
|
||||||
- 'vendor/**/*'
|
- 'vendor/**/*'
|
||||||
- 'spec/**/*'
|
- 'spec/**/*'
|
||||||
|
- 'ee/spec/**/*'
|
||||||
require:
|
require:
|
||||||
- './haml_lint/linter/no_plain_nodes.rb'
|
- './haml_lint/linter/no_plain_nodes.rb'
|
||||||
- './haml_lint/linter/documentation_links.rb'
|
- './haml_lint/linter/documentation_links.rb'
|
||||||
|
|
2
.nvmrc
|
@ -1 +1 @@
|
||||||
14.15.4
|
14.17.5
|
||||||
|
|
60
.rubocop.yml
|
@ -106,25 +106,31 @@ RSpec/MultipleMemoizedHelpers:
|
||||||
|
|
||||||
Naming/FileName:
|
Naming/FileName:
|
||||||
ExpectMatchingDefinition: true
|
ExpectMatchingDefinition: true
|
||||||
|
CheckDefinitionPathHierarchy: false
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'db/**/*'
|
- '**/*/*.builder'
|
||||||
- 'ee/db/**/*'
|
|
||||||
- 'spec/**/*'
|
|
||||||
- 'features/**/*'
|
|
||||||
- 'ee/spec/**/*'
|
|
||||||
- 'qa/spec/**/*'
|
|
||||||
- 'qa/qa/specs/**/*'
|
|
||||||
- 'qa/bin/*'
|
|
||||||
- 'ee/bin/*'
|
- 'ee/bin/*'
|
||||||
|
- 'config.ru'
|
||||||
- 'config/**/*'
|
- 'config/**/*'
|
||||||
- 'ee/config/**/*'
|
- 'ee/config/**/*'
|
||||||
|
- 'jh/config/**/*'
|
||||||
|
- 'db/**/*'
|
||||||
|
- 'ee/db/**/*'
|
||||||
|
- 'ee/elastic/migrate/*'
|
||||||
|
- 'lib/tasks/**/*.rake'
|
||||||
|
- 'ee/lib/tasks/**/*.rake'
|
||||||
- 'lib/generators/**/*'
|
- 'lib/generators/**/*'
|
||||||
- 'locale/unfound_translations.rb'
|
|
||||||
- 'ee/locale/unfound_translations.rb'
|
|
||||||
- 'ee/lib/generators/**/*'
|
- 'ee/lib/generators/**/*'
|
||||||
- 'qa/qa/scenario/test/integration/ldap_no_tls.rb'
|
- 'scripts/**/*'
|
||||||
- 'qa/qa/scenario/test/integration/ldap_tls.rb'
|
- 'spec/**/*'
|
||||||
- 'qa/tasks/*'
|
- 'tooling/bin/**/*'
|
||||||
|
- 'ee/spec/**/*'
|
||||||
|
- 'jh/spec/**/*'
|
||||||
|
- 'qa/bin/*'
|
||||||
|
- 'qa/spec/**/*'
|
||||||
|
- 'qa/qa/specs/**/*'
|
||||||
|
- 'qa/tasks/**/*.rake'
|
||||||
|
- '**/*.ru'
|
||||||
|
|
||||||
IgnoreExecutableScripts: true
|
IgnoreExecutableScripts: true
|
||||||
AllowedAcronyms:
|
AllowedAcronyms:
|
||||||
|
@ -146,6 +152,26 @@ Naming/FileName:
|
||||||
- CI
|
- CI
|
||||||
- CD
|
- CD
|
||||||
- OAuth
|
- OAuth
|
||||||
|
- CSP
|
||||||
|
- CSV
|
||||||
|
- SCA
|
||||||
|
- SAN
|
||||||
|
- CIDR
|
||||||
|
- SPDX
|
||||||
|
- MR
|
||||||
|
- SSE
|
||||||
|
- JWT
|
||||||
|
- HLL
|
||||||
|
- GPG
|
||||||
|
- OTP
|
||||||
|
- GID
|
||||||
|
- AR
|
||||||
|
- RSpec
|
||||||
|
- ECDSA
|
||||||
|
- ED25519
|
||||||
|
- GitLab
|
||||||
|
- JavaScript
|
||||||
|
- VSCode
|
||||||
# default ones:
|
# default ones:
|
||||||
- CLI
|
- CLI
|
||||||
- DSL
|
- DSL
|
||||||
|
@ -682,10 +708,6 @@ Cop/UserAdmin:
|
||||||
- 'spec/**/*.rb'
|
- 'spec/**/*.rb'
|
||||||
- 'ee/spec/**/*.rb'
|
- 'ee/spec/**/*.rb'
|
||||||
|
|
||||||
Performance/OpenStruct:
|
|
||||||
Exclude:
|
|
||||||
- 'ee/spec/**/*.rb'
|
|
||||||
|
|
||||||
# See https://gitlab.com/gitlab-org/gitlab/-/issues/327495
|
# See https://gitlab.com/gitlab-org/gitlab/-/issues/327495
|
||||||
Style/RegexpLiteral:
|
Style/RegexpLiteral:
|
||||||
Enabled: false
|
Enabled: false
|
||||||
|
@ -712,6 +734,10 @@ QA/SelectorUsage:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'spec/rubocop/**/*_spec.rb'
|
- 'spec/rubocop/**/*_spec.rb'
|
||||||
|
|
||||||
|
QA/DuplicateTestcaseLink:
|
||||||
|
# this cop is executed in static-analysis.gitlab-ci.yml since it cannot be run in parallel
|
||||||
|
Enabled: false
|
||||||
|
|
||||||
Performance/ActiveRecordSubtransactions:
|
Performance/ActiveRecordSubtransactions:
|
||||||
Exclude:
|
Exclude:
|
||||||
- 'spec/**/*.rb'
|
- 'spec/**/*.rb'
|
||||||
|
|
|
@ -32,7 +32,6 @@ Rails/SaveBang:
|
||||||
- 'ee/spec/models/approval_project_rule_spec.rb'
|
- 'ee/spec/models/approval_project_rule_spec.rb'
|
||||||
- 'ee/spec/models/burndown_spec.rb'
|
- 'ee/spec/models/burndown_spec.rb'
|
||||||
- 'ee/spec/models/elasticsearch_indexed_namespace_spec.rb'
|
- 'ee/spec/models/elasticsearch_indexed_namespace_spec.rb'
|
||||||
- 'ee/spec/models/epic_spec.rb'
|
|
||||||
- 'ee/spec/models/gitlab_subscription_spec.rb'
|
- 'ee/spec/models/gitlab_subscription_spec.rb'
|
||||||
- 'ee/spec/models/issue_spec.rb'
|
- 'ee/spec/models/issue_spec.rb'
|
||||||
- 'ee/spec/models/label_note_spec.rb'
|
- 'ee/spec/models/label_note_spec.rb'
|
||||||
|
@ -40,7 +39,6 @@ Rails/SaveBang:
|
||||||
- 'ee/spec/models/license_spec.rb'
|
- 'ee/spec/models/license_spec.rb'
|
||||||
- 'ee/spec/models/merge_request_spec.rb'
|
- 'ee/spec/models/merge_request_spec.rb'
|
||||||
- 'ee/spec/models/merge_train_spec.rb'
|
- 'ee/spec/models/merge_train_spec.rb'
|
||||||
- 'spec/models/packages/package_spec.rb'
|
|
||||||
- 'ee/spec/models/project_ci_cd_setting_spec.rb'
|
- 'ee/spec/models/project_ci_cd_setting_spec.rb'
|
||||||
- 'ee/spec/models/project_spec.rb'
|
- 'ee/spec/models/project_spec.rb'
|
||||||
- 'ee/spec/models/protected_environment_spec.rb'
|
- 'ee/spec/models/protected_environment_spec.rb'
|
||||||
|
@ -136,32 +134,6 @@ Rails/SaveBang:
|
||||||
- 'spec/lib/gitlab/middleware/go_spec.rb'
|
- 'spec/lib/gitlab/middleware/go_spec.rb'
|
||||||
- 'spec/lib/gitlab/shard_health_cache_spec.rb'
|
- 'spec/lib/gitlab/shard_health_cache_spec.rb'
|
||||||
- 'spec/mailers/notify_spec.rb'
|
- 'spec/mailers/notify_spec.rb'
|
||||||
- 'spec/models/clusters/applications/helm_spec.rb'
|
|
||||||
- 'spec/models/design_management/version_spec.rb'
|
|
||||||
- 'spec/models/environment_spec.rb'
|
|
||||||
- 'spec/models/event_spec.rb'
|
|
||||||
- 'spec/models/fork_network_spec.rb'
|
|
||||||
- 'spec/models/generic_commit_status_spec.rb'
|
|
||||||
- 'spec/models/grafana_integration_spec.rb'
|
|
||||||
- 'spec/models/group_spec.rb'
|
|
||||||
- 'spec/models/identity_spec.rb'
|
|
||||||
- 'spec/models/jira_import_state_spec.rb'
|
|
||||||
- 'spec/models/namespace_spec.rb'
|
|
||||||
- 'spec/models/note_spec.rb'
|
|
||||||
- 'spec/models/notification_setting_spec.rb'
|
|
||||||
- 'spec/models/operations/feature_flag_scope_spec.rb'
|
|
||||||
- 'spec/models/operations/feature_flags/strategy_spec.rb'
|
|
||||||
- 'spec/models/operations/feature_flags/user_list_spec.rb'
|
|
||||||
- 'spec/models/pages_domain_spec.rb'
|
|
||||||
- 'spec/models/protectable_dropdown_spec.rb'
|
|
||||||
- 'spec/models/redirect_route_spec.rb'
|
|
||||||
- 'spec/models/release_spec.rb'
|
|
||||||
- 'spec/models/remote_mirror_spec.rb'
|
|
||||||
- 'spec/models/resource_milestone_event_spec.rb'
|
|
||||||
- 'spec/models/route_spec.rb'
|
|
||||||
- 'spec/models/sentry_issue_spec.rb'
|
|
||||||
- 'spec/models/snippet_spec.rb'
|
|
||||||
- 'spec/models/upload_spec.rb'
|
|
||||||
|
|
||||||
Rails/TimeZone:
|
Rails/TimeZone:
|
||||||
Enabled: true
|
Enabled: true
|
||||||
|
@ -204,7 +176,6 @@ Rails/TimeZone:
|
||||||
- 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_renamed_event_spec.rb'
|
- 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_renamed_event_spec.rb'
|
||||||
- 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_updated_event_spec.rb'
|
- 'ee/spec/lib/gitlab/geo/log_cursor/events/repository_updated_event_spec.rb'
|
||||||
- 'ee/spec/lib/gitlab/geo/log_cursor/events/reset_checksum_event_spec.rb'
|
- 'ee/spec/lib/gitlab/geo/log_cursor/events/reset_checksum_event_spec.rb'
|
||||||
- 'ee/spec/lib/gitlab/geo/log_cursor/events/upload_deleted_event_spec.rb'
|
|
||||||
- 'ee/spec/lib/gitlab/geo/log_cursor/logger_spec.rb'
|
- 'ee/spec/lib/gitlab/geo/log_cursor/logger_spec.rb'
|
||||||
- 'ee/spec/lib/gitlab/git_access_spec.rb'
|
- 'ee/spec/lib/gitlab/git_access_spec.rb'
|
||||||
- 'ee/spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb'
|
- 'ee/spec/lib/gitlab/prometheus/queries/additional_metrics_deployment_query_spec.rb'
|
||||||
|
@ -1165,6 +1136,7 @@ Gitlab/NamespacedClass:
|
||||||
- 'app/models/members/group_member.rb'
|
- 'app/models/members/group_member.rb'
|
||||||
- 'app/models/members/last_group_owner_assigner.rb'
|
- 'app/models/members/last_group_owner_assigner.rb'
|
||||||
- 'app/models/members/project_member.rb'
|
- 'app/models/members/project_member.rb'
|
||||||
|
- 'app/models/members/member_task.rb'
|
||||||
- 'app/models/members_preloader.rb'
|
- 'app/models/members_preloader.rb'
|
||||||
- 'app/models/merge_request.rb'
|
- 'app/models/merge_request.rb'
|
||||||
- 'app/models/merge_request_assignee.rb'
|
- 'app/models/merge_request_assignee.rb'
|
||||||
|
@ -2199,21 +2171,6 @@ Cop/UserAdmin:
|
||||||
- 'lib/gitlab/visibility_level.rb'
|
- 'lib/gitlab/visibility_level.rb'
|
||||||
- 'qa/qa/runtime/api/client.rb'
|
- 'qa/qa/runtime/api/client.rb'
|
||||||
|
|
||||||
# WIP https://gitlab.com/gitlab-org/gitlab/-/issues/325744
|
|
||||||
Performance/OpenStruct:
|
|
||||||
Exclude:
|
|
||||||
- 'Guardfile'
|
|
||||||
- 'app/finders/snippets_finder.rb'
|
|
||||||
- 'app/helpers/application_settings_helper.rb'
|
|
||||||
- 'ee/lib/gitlab/graphql/aggregations/epics/epic_node.rb'
|
|
||||||
- 'ee/lib/gitlab/graphql/aggregations/epics/epic_node.rb'
|
|
||||||
- 'lib/api/wikis.rb'
|
|
||||||
- 'lib/gitlab/ci/ansi2html.rb'
|
|
||||||
- 'lib/gitlab/git/diff_collection.rb'
|
|
||||||
- 'lib/gitlab/import_export/after_export_strategies/base_after_export_strategy.rb'
|
|
||||||
- 'lib/gitlab/testing/request_inspector_middleware.rb'
|
|
||||||
- 'lib/mattermost/session.rb'
|
|
||||||
|
|
||||||
# WIP: https://gitlab.com/gitlab-org/gitlab/-/issues/324629
|
# WIP: https://gitlab.com/gitlab-org/gitlab/-/issues/324629
|
||||||
Gitlab/DelegatePredicateMethods:
|
Gitlab/DelegatePredicateMethods:
|
||||||
Exclude:
|
Exclude:
|
||||||
|
@ -2443,28 +2400,14 @@ Database/MultipleDatabases:
|
||||||
- 'lib/gitlab/database/load_balancing/sticking.rb'
|
- 'lib/gitlab/database/load_balancing/sticking.rb'
|
||||||
- 'lib/gitlab/database/migrations/observers/migration_observer.rb'
|
- 'lib/gitlab/database/migrations/observers/migration_observer.rb'
|
||||||
- 'lib/gitlab/database/migrations/observers/query_log.rb'
|
- 'lib/gitlab/database/migrations/observers/query_log.rb'
|
||||||
- 'lib/gitlab/database/multi_threaded_migration.rb'
|
|
||||||
- 'lib/gitlab/database/partitioning_migration_helpers/backfill_partitioned_table.rb'
|
- 'lib/gitlab/database/partitioning_migration_helpers/backfill_partitioned_table.rb'
|
||||||
- 'lib/gitlab/database/partitioning/monthly_strategy.rb'
|
|
||||||
- 'lib/gitlab/database/partitioning/partition_manager.rb'
|
|
||||||
- 'lib/gitlab/database/partitioning/partition_creator.rb'
|
|
||||||
- 'lib/gitlab/database/partitioning/replace_table.rb'
|
|
||||||
- 'lib/gitlab/database/partitioning/time_partition.rb'
|
|
||||||
- 'lib/gitlab/database/postgres_hll/batch_distinct_counter.rb'
|
|
||||||
- 'lib/gitlab/database/postgresql_adapter/dump_schema_versions_mixin.rb'
|
|
||||||
- 'lib/gitlab/database/postgresql_database_tasks/load_schema_versions_mixin.rb'
|
|
||||||
- 'lib/gitlab/database.rb'
|
- 'lib/gitlab/database.rb'
|
||||||
- 'lib/gitlab/database/reindexing/concurrent_reindex.rb'
|
|
||||||
- 'lib/gitlab/database/reindexing/reindex_concurrently.rb'
|
|
||||||
- 'lib/gitlab/database/schema_cache_with_renamed_table.rb'
|
- 'lib/gitlab/database/schema_cache_with_renamed_table.rb'
|
||||||
- 'lib/gitlab/database/schema_migrations/context.rb'
|
|
||||||
- 'lib/gitlab/database/schema_version_files.rb'
|
|
||||||
- 'lib/gitlab/database/unidirectional_copy_trigger.rb'
|
|
||||||
- 'lib/gitlab/database/with_lock_retries.rb'
|
- 'lib/gitlab/database/with_lock_retries.rb'
|
||||||
- 'lib/gitlab/gitlab_import/importer.rb'
|
- 'lib/gitlab/gitlab_import/importer.rb'
|
||||||
- 'lib/gitlab/health_checks/db_check.rb'
|
- 'lib/gitlab/health_checks/db_check.rb'
|
||||||
- 'lib/gitlab/import_export/base/relation_factory.rb'
|
- 'lib/gitlab/import_export/base/relation_factory.rb'
|
||||||
- 'lib/gitlab/import_export/relation_tree_restorer.rb'
|
- 'lib/gitlab/import_export/group/relation_tree_restorer.rb'
|
||||||
- 'lib/gitlab/legacy_github_import/importer.rb'
|
- 'lib/gitlab/legacy_github_import/importer.rb'
|
||||||
- 'lib/gitlab/metrics/samplers/database_sampler.rb'
|
- 'lib/gitlab/metrics/samplers/database_sampler.rb'
|
||||||
- 'lib/gitlab/seeder.rb'
|
- 'lib/gitlab/seeder.rb'
|
||||||
|
@ -2604,3 +2547,72 @@ Rails/IncludeUrlHelper:
|
||||||
- 'spec/lib/banzai/filter/issuable_state_filter_spec.rb'
|
- 'spec/lib/banzai/filter/issuable_state_filter_spec.rb'
|
||||||
- 'spec/lib/banzai/filter/reference_redactor_filter_spec.rb'
|
- 'spec/lib/banzai/filter/reference_redactor_filter_spec.rb'
|
||||||
- 'spec/lib/banzai/reference_redactor_spec.rb'
|
- 'spec/lib/banzai/reference_redactor_spec.rb'
|
||||||
|
|
||||||
|
# TODO issue: https://gitlab.com/gitlab-org/gitlab/-/issues/344279
|
||||||
|
Style/OpenStructUse:
|
||||||
|
Exclude:
|
||||||
|
- 'app/helpers/application_settings_helper.rb'
|
||||||
|
- 'ee/spec/db/production/license_spec.rb'
|
||||||
|
- 'ee/spec/features/projects/new_project_spec.rb'
|
||||||
|
- 'ee/spec/finders/template_finder_spec.rb'
|
||||||
|
- 'ee/spec/graphql/ee/resolvers/board_lists_resolver_spec.rb'
|
||||||
|
- 'ee/spec/graphql/resolvers/board_groupings/epics_resolvers_spec.rb'
|
||||||
|
- 'ee/spec/helpers/ee/blob_helper_spec.rb'
|
||||||
|
- 'ee/spec/lib/gitlab/auth/group_saml/failure_handler_spec.rb'
|
||||||
|
- 'ee/spec/lib/gitlab/legacy_github_import/project_creator_spec.rb'
|
||||||
|
- 'ee/spec/requests/api/ldap_spec.rb'
|
||||||
|
- 'lib/api/wikis.rb'
|
||||||
|
- 'lib/gitlab/git/diff_collection.rb'
|
||||||
|
- 'lib/gitlab/import_export/after_export_strategies/base_after_export_strategy.rb'
|
||||||
|
- 'lib/gitlab/testing/request_inspector_middleware.rb'
|
||||||
|
- 'lib/mattermost/session.rb'
|
||||||
|
- 'spec/bin/feature_flag_spec.rb'
|
||||||
|
- 'spec/controllers/admin/clusters_controller_spec.rb'
|
||||||
|
- 'spec/controllers/groups/clusters_controller_spec.rb'
|
||||||
|
- 'spec/controllers/import/fogbugz_controller_spec.rb'
|
||||||
|
- 'spec/controllers/import/gitlab_controller_spec.rb'
|
||||||
|
- 'spec/controllers/projects/clusters_controller_spec.rb'
|
||||||
|
- 'spec/dependencies/omniauth_saml_spec.rb'
|
||||||
|
- 'spec/factories/go_module_versions.rb'
|
||||||
|
- 'spec/factories/wiki_pages.rb'
|
||||||
|
- 'spec/features/projects/clusters/gcp_spec.rb'
|
||||||
|
- 'spec/features/projects/clusters_spec.rb'
|
||||||
|
- 'spec/finders/template_finder_spec.rb'
|
||||||
|
- 'spec/graphql/mutations/branches/create_spec.rb'
|
||||||
|
- 'spec/graphql/mutations/clusters/agent_tokens/create_spec.rb'
|
||||||
|
- 'spec/graphql/mutations/clusters/agents/create_spec.rb'
|
||||||
|
- 'spec/graphql/mutations/clusters/agents/delete_spec.rb'
|
||||||
|
- 'spec/graphql/mutations/commits/create_spec.rb'
|
||||||
|
- 'spec/graphql/mutations/merge_requests/accept_spec.rb'
|
||||||
|
- 'spec/graphql/mutations/merge_requests/create_spec.rb'
|
||||||
|
- 'spec/graphql/types/range_input_type_spec.rb'
|
||||||
|
- 'spec/helpers/application_settings_helper_spec.rb'
|
||||||
|
- 'spec/helpers/profiles_helper_spec.rb'
|
||||||
|
- 'spec/initializers/doorkeeper_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/auth/o_auth/provider_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/cleanup/orphan_lfs_file_references_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/database/migrations/runner_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/gitaly_client/blobs_stitcher_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/grape_logging/loggers/exception_logger_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/graphql/pagination/keyset/connection_generic_keyset_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/graphql/pagination/keyset/connection_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/legacy_github_import/project_creator_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/quick_actions/command_definition_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/quick_actions/dsl_spec.rb'
|
||||||
|
- 'spec/lib/gitlab/relative_positioning/range_spec.rb'
|
||||||
|
- 'spec/models/design_management/design_action_spec.rb'
|
||||||
|
- 'spec/models/design_management/design_at_version_spec.rb'
|
||||||
|
- 'spec/models/user_spec.rb'
|
||||||
|
- 'spec/presenters/packages/nuget/search_results_presenter_spec.rb'
|
||||||
|
- 'spec/requests/api/import_github_spec.rb'
|
||||||
|
- 'spec/services/packages/nuget/metadata_extraction_service_spec.rb'
|
||||||
|
- 'spec/services/projects/import_service_spec.rb'
|
||||||
|
- 'spec/services/system_note_service_spec.rb'
|
||||||
|
- 'spec/support/helpers/import_spec_helper.rb'
|
||||||
|
- 'spec/support/helpers/login_helpers.rb'
|
||||||
|
- 'spec/support/helpers/repo_helpers.rb'
|
||||||
|
- 'spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb'
|
||||||
|
- 'spec/support/shared_examples/requests/api/nuget_packages_shared_examples.rb'
|
||||||
|
- 'spec/tooling/rspec_flaky/flaky_example_spec.rb'
|
||||||
|
- 'tooling/rspec_flaky/flaky_example.rb'
|
||||||
|
|
|
@ -208,12 +208,6 @@ Metrics/CyclomaticComplexity:
|
||||||
Metrics/PerceivedComplexity:
|
Metrics/PerceivedComplexity:
|
||||||
Max: 25
|
Max: 25
|
||||||
|
|
||||||
# Offense count: 196
|
|
||||||
# Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, Regex, IgnoreExecutableScripts, AllowedAcronyms.
|
|
||||||
# AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
|
|
||||||
Naming/FileName:
|
|
||||||
Enabled: false
|
|
||||||
|
|
||||||
# Offense count: 11
|
# Offense count: 11
|
||||||
# Configuration parameters: EnforcedStyle.
|
# Configuration parameters: EnforcedStyle.
|
||||||
# SupportedStyles: lowercase, uppercase
|
# SupportedStyles: lowercase, uppercase
|
||||||
|
|
21
.stylelintrc
|
@ -13,27 +13,6 @@
|
||||||
"./scripts/frontend/stylelint/stylelint-utility-classes.js",
|
"./scripts/frontend/stylelint/stylelint-utility-classes.js",
|
||||||
],
|
],
|
||||||
"rules":{
|
"rules":{
|
||||||
"at-rule-disallowed-list": ["extend"],
|
|
||||||
"max-nesting-depth": [
|
|
||||||
3,
|
|
||||||
{
|
|
||||||
"ignoreAtRules":[
|
|
||||||
"each",
|
|
||||||
"media",
|
|
||||||
"supports",
|
|
||||||
"include"
|
|
||||||
],
|
|
||||||
"severity":"warning"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"selector-max-compound-selectors":[3, { "severity": "warning" }],
|
|
||||||
"stylelint-gitlab/utility-classes":[true,{ "severity": "warning" }],
|
"stylelint-gitlab/utility-classes":[true,{ "severity": "warning" }],
|
||||||
"declaration-block-no-duplicate-properties": [
|
|
||||||
true,
|
|
||||||
{
|
|
||||||
"ignore": ["consecutive-duplicates"]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"no-eol-whitespace": true,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
618
CHANGELOG.md
|
@ -2,20 +2,547 @@
|
||||||
documentation](doc/development/changelog.md) for instructions on adding your own
|
documentation](doc/development/changelog.md) for instructions on adding your own
|
||||||
entry.
|
entry.
|
||||||
|
|
||||||
## 14.4.4 (2021-12-03)
|
## 14.5.2 (2021-12-03)
|
||||||
|
|
||||||
No changes.
|
No changes.
|
||||||
|
|
||||||
## 14.4.3 (2021-12-01)
|
## 14.5.1 (2021-12-01)
|
||||||
|
|
||||||
### Fixed (6 changes)
|
### Fixed (4 changes)
|
||||||
|
|
||||||
- [Check validation only if new record of license](gitlab-org/gitlab@5e0834a921dad1b1e07119de629ea44eb0ad5733) ([merge request](gitlab-org/gitlab!75421)) **GitLab Enterprise Edition**
|
- [Check validation for license only if new record](gitlab-org/gitlab@3e34c2dc431a2b1c1828f5154a4d2be350359b16) ([merge request](gitlab-org/gitlab!75498)) **GitLab Enterprise Edition**
|
||||||
- [Fix for hexadecimal branch deletion](gitlab-org/gitlab@fc3c2f211d5a2f190032c4d0109e2bcb31050b4d) ([merge request](gitlab-org/gitlab!75421))
|
- [Fix for hexadecimal branch deletion](gitlab-org/gitlab@eb74cd44edac0c16c44aa11d710b742586c31741) ([merge request](gitlab-org/gitlab!75498))
|
||||||
- [Geo - Fix no repo error message for group-level wikis](gitlab-org/gitlab@bdf3a712a4bfe245dfa7e7a90c24f2fdb482e309) ([merge request](gitlab-org/gitlab!75421)) **GitLab Enterprise Edition**
|
- [Fix the SSL_CERT_DIR logging on git operations](gitlab-org/gitlab@6ef3b63ad5e58baa0e0e0a922fe43a2fb4494508) ([merge request](gitlab-org/gitlab!75498))
|
||||||
- [Prevent Git operations from checking replication lag on non-Geo-secondary sites](gitlab-org/gitlab@c158c01027f61aadd1c72f0817731d368d0d58cc) ([merge request](gitlab-org/gitlab!75421)) **GitLab Enterprise Edition**
|
- [Support Action Cable on GCP Memorystore](gitlab-org/gitlab@d62aa5bcbad5851209a9d248ca267d0c46d1e7c9) ([merge request](gitlab-org/gitlab!75498))
|
||||||
- [Allow SSO callbacks through maintenance mode](gitlab-org/gitlab@1acae9807b1808ac360a4be098a50c547c9540b9) by @dzaporozhets ([merge request](gitlab-org/gitlab!75421)) **GitLab Enterprise Edition**
|
|
||||||
- [Fix 2FA setup for LDAP users](gitlab-org/gitlab@9b9a7230aed3ffeef3e8f608dd1a569397c71684) ([merge request](gitlab-org/gitlab!75421))
|
## 14.5.0 (2021-11-19)
|
||||||
|
|
||||||
|
### Added (113 changes)
|
||||||
|
|
||||||
|
- [Show warning for markdown structure changes](gitlab-org/gitlab@9b44058536cff8e36996dc04820636a3c39cef2f) ([merge request](gitlab-org/gitlab!71064))
|
||||||
|
- [Implement Pipeline Editor Walkthrough experiment](gitlab-org/gitlab@2ab23a789a355eb2f1a923b263f2194f72665b5f) ([merge request](gitlab-org/gitlab!73050))
|
||||||
|
- [Add endpoint for activating all pending members](gitlab-org/gitlab@fb949a578e625f21242fccf20ad8883efb425e56) ([merge request](gitlab-org/gitlab!73849)) **GitLab Enterprise Edition**
|
||||||
|
- [Add Yaml Source Editor Extension](gitlab-org/gitlab@fe4f8022b129997263cc3e26c597b4c77df878a7) ([merge request](gitlab-org/gitlab!72764))
|
||||||
|
- [Introduced the Source Editor Instance module](gitlab-org/gitlab@7dbdf10e35cf793e0219344d0830dfcbb229667d) ([merge request](gitlab-org/gitlab!74566))
|
||||||
|
- [Add total counters in each runner type tab](gitlab-org/gitlab@b852ba5b2da2cabae8eaf5bf1f4f9b950b0576de) ([merge request](gitlab-org/gitlab!74196))
|
||||||
|
- [Add customer relations organizations viewer](gitlab-org/gitlab@9db2c7fef64053f78eebbc6bf12978ca46d08979) by @leetickett ([merge request](gitlab-org/gitlab!73508))
|
||||||
|
- [Add customer relations contacts viewer](gitlab-org/gitlab@22a90aa556d503e617b22a8795754197a807dab1) by @leetickett ([merge request](gitlab-org/gitlab!73429))
|
||||||
|
- [Add endpoint for activating an waiting member](gitlab-org/gitlab@c9857c9dc7f3196ee14f9ff40bd3bc8a4382329e) ([merge request](gitlab-org/gitlab!73845)) **GitLab Enterprise Edition**
|
||||||
|
- [Add keyset pagination for tags API](gitlab-org/gitlab@e9c3b012dcba273ec9eb2c5aaa4c8163d295cd9a) ([merge request](gitlab-org/gitlab!74239))
|
||||||
|
- [Enable loose_foreign_key_cleanup FF by default](gitlab-org/gitlab@8e8864cf97eae6f3e9d8bd1187d743d88f243fe9) ([merge request](gitlab-org/gitlab!74499))
|
||||||
|
- [Allow reporters to see the service desk email address](gitlab-org/gitlab@b12fcd0eccdc9fc66ec0647d7939eb53310a374d) ([merge request](gitlab-org/gitlab!74179))
|
||||||
|
- [Upgrade GitLab Pages to 1.48.0](gitlab-org/gitlab@a8e068be055bc0bb5805321b175dc6f70278461b) ([merge request](gitlab-org/gitlab!74483))
|
||||||
|
- [Implement deep linking for project VSA filters](gitlab-org/gitlab@cd4c047cc1c70529c2782b89f5bc9662b8978445) ([merge request](gitlab-org/gitlab!72777))
|
||||||
|
- [Feature: Let OmniAuth support DingTalk](gitlab-org/gitlab@b1999a4b44c0e6fb2290a4386d7cd0d6a0f0f953) by @icbd ([merge request](gitlab-org/gitlab!72071))
|
||||||
|
- [Add group SAML configuration changes to group audit events](gitlab-org/gitlab@490388aa861ef9e1a1779f88653e2706739f6fcf) ([merge request](gitlab-org/gitlab!73656)) **GitLab Enterprise Edition**
|
||||||
|
- [Add migration for backfilling project namespaces](gitlab-org/gitlab@6af415608ee18595c057f977cea2cc263eb344f2) ([merge request](gitlab-org/gitlab!72527))
|
||||||
|
- [Audit changes to compliance frameworks](gitlab-org/gitlab@77d672bb1177b59c7b62a41a49b018ac5048c9be) ([merge request](gitlab-org/gitlab!74292)) **GitLab Enterprise Edition**
|
||||||
|
- [Enable dependency_proxy_manifest_workhorse by dflt](gitlab-org/gitlab@8f22a47b4176c13bf7f39e11df1bef93cfcd73b7) ([merge request](gitlab-org/gitlab!73770))
|
||||||
|
- [Upgrade GitLab Pages to 1.47.0](gitlab-org/gitlab@a2cf642816798d61d244a588a6f969c54c776c51) ([merge request](gitlab-org/gitlab!74280))
|
||||||
|
- [Add exists support to includes:rules CI config](gitlab-org/gitlab@c73f2fd42120fb6104e8e29f8de6de12d503eb18) ([merge request](gitlab-org/gitlab!71745))
|
||||||
|
- [Enable configure_iac_scanning_via_mr by default](gitlab-org/gitlab@86d830fa9345b17cd86a1e5878a4c0ed7ec711b3) ([merge request](gitlab-org/gitlab!73268))
|
||||||
|
- [Allow Minimal Access role for top-level SAML Group Links](gitlab-org/gitlab@2b2a80a2c0ffb36ce32339521294ef335410c0cd) ([merge request](gitlab-org/gitlab!72825)) **GitLab Enterprise Edition**
|
||||||
|
- [Add slash command to promote issue to incident](gitlab-org/gitlab@9a27a599a83ff0af1006be31d00ab4c6579da579) ([merge request](gitlab-org/gitlab!73992))
|
||||||
|
- [Add member approval service](gitlab-org/gitlab@5fcbee2d37cf1243232f672ddbb7e849fa1ad044) ([merge request](gitlab-org/gitlab!73483)) **GitLab Enterprise Edition**
|
||||||
|
- [Enable linear GroupPlanPreloader ancestors queries](gitlab-org/gitlab@6905dd1c49c1b045cb555bcb1ea23e72f435d325) ([merge request](gitlab-org/gitlab!72594)) **GitLab Enterprise Edition**
|
||||||
|
- [Create default merge commit message using customizable template](gitlab-org/gitlab@61729d8adb84b735feac21ab4213786408b4e05a) by @trakos ([merge request](gitlab-org/gitlab!64437))
|
||||||
|
- [GithubImporter: Thread diff notes](gitlab-org/gitlab@2b6b33c4bf0a5c18905e556edcf9510f315bda74) ([merge request](gitlab-org/gitlab!73595))
|
||||||
|
- [Query all partitions when loading loose FK records](gitlab-org/gitlab@44af21f9488cb99dfd4c646408a5ec420e29cf45) ([merge request](gitlab-org/gitlab!74072))
|
||||||
|
- [Remove flag that hides event streaming from graphQL schema](gitlab-org/gitlab@eba5b07100d5255d250137ed1f8f356fca70664f) ([merge request](gitlab-org/gitlab!74092)) **GitLab Enterprise Edition**
|
||||||
|
- [Add opensource plan to database](gitlab-org/gitlab@1e8248435b2d9a447cbb268cc66f43ca75a983f9) ([merge request](gitlab-org/gitlab!73925))
|
||||||
|
- [Add wiki migration to projects and groups](gitlab-org/gitlab@9acfe49a03331800cbc2aaeb5ced38341471f788) ([merge request](gitlab-org/gitlab!72146)) **GitLab Enterprise Edition**
|
||||||
|
- [Send invite team email after a root group is created](gitlab-org/gitlab@e5f31632956ab62f37850c676cd2ee3d84f3c689) ([merge request](gitlab-org/gitlab!72470))
|
||||||
|
- [Render inherited templates from group in service desk](gitlab-org/gitlab@9887a3617731374cea9ef4599bb75f4d2325e6a6) ([merge request](gitlab-org/gitlab!71176))
|
||||||
|
- [Add indexes to aggregated VSA tables](gitlab-org/gitlab@3e11d29f59fd08d1ffbf23de6665890cf3e788a9) ([merge request](gitlab-org/gitlab!73427))
|
||||||
|
- [Add required label to tag name in release form](gitlab-org/gitlab@9d268fe047e9c20a5bf3a6bf651c1bb1e98276e5) ([merge request](gitlab-org/gitlab!73759))
|
||||||
|
- [Add modal to warn group owners the impact of changing user cap](gitlab-org/gitlab@16b44b500f2394578d9c4e78d2561fa36d3405bf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/72805)) **GitLab Enterprise Edition**
|
||||||
|
- [Add issues set crm contacts service and graphql mutation](gitlab-org/gitlab@6b0c5e6ccbc849ecc65a8fe3a704b06407e54f39) by @leetickett ([merge request](gitlab-org/gitlab!72686))
|
||||||
|
- [Add pagination support for FindAllTagsRequest](gitlab-org/gitlab@440c1357fcea2a3fd1b61a33c7db97d21ebc2c7e) ([merge request](gitlab-org/gitlab!70199))
|
||||||
|
- [Enable linear ancestors for groups](gitlab-org/gitlab@524d55023cd37cd8697bd5b97c619c4d49ff006f) ([merge request](gitlab-org/gitlab!72490))
|
||||||
|
- [Add note regarding topic visibility to admin doc](gitlab-org/gitlab@5ae0eb97ec6f1108836f472d9484c1a037b8d02a) by @wwwjon ([merge request](gitlab-org/gitlab!73934))
|
||||||
|
- [Track Shared Runners duration separate from CI minutes consumption](gitlab-org/gitlab@2d79fae14d5584a6885da4585bfab7b033e75ea9) ([merge request](gitlab-org/gitlab!73933)) **GitLab Enterprise Edition**
|
||||||
|
- [Show blocked icon on epic blocked issues](gitlab-org/gitlab@12a16d1895afd13687c0c78b714beb0ea6dd940a) ([merge request](gitlab-org/gitlab!72229)) **GitLab Enterprise Edition**
|
||||||
|
- [Add Sentry configs to application settings](gitlab-org/gitlab@8b15bbbd5acf1537c7d2516b592a3d81ed7b6454) ([merge request](gitlab-org/gitlab!73381))
|
||||||
|
- [Add helpful text to project select modal](gitlab-org/gitlab@3d3dbe631de4a6d8633fe77e76033f853c8c8df5) ([merge request](gitlab-org/gitlab!73766))
|
||||||
|
- [Enable linear ApplicationSettings ancestors queries](gitlab-org/gitlab@6ab1a7ae58ba829700230f8016db6ee8c39c0855) ([merge request](gitlab-org/gitlab!72500)) **GitLab Enterprise Edition**
|
||||||
|
- [Enable pipeline_editor_mini_graph feature flag by default](gitlab-org/gitlab@779b703805f0dc5aa7bbcf13b075738f158b9b03) ([merge request](gitlab-org/gitlab!73612))
|
||||||
|
- [Limit issues one user can quickly create using service desk](gitlab-org/gitlab@cdbd23328c311270873dbab346c322c494edb43f) ([merge request](gitlab-org/gitlab!73346))
|
||||||
|
- [Add Helm metadata to GraphQL](gitlab-org/gitlab@2b58d6ccd253e73fdbed3d4892ff28e8ecee1f37) by @sathieu ([merge request](gitlab-org/gitlab!71963))
|
||||||
|
- [Enable linear EE Group ancestors queries](gitlab-org/gitlab@d2cf27b20fbf7dcd6ae80c2d4848694015426fd3) ([merge request](gitlab-org/gitlab!73532)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove redundant index_events_on_target_type_and_target_id](gitlab-org/gitlab@7c3d5fb203591cbb6cb6ef8833965ea394b960e2) ([merge request](gitlab-org/gitlab!73712))
|
||||||
|
- [Rollout user namespace & project tracking](gitlab-org/gitlab@57c880783d323587b1b38f38f97ecdcbce38a3b6) ([merge request](gitlab-org/gitlab!73677))
|
||||||
|
- [Unblock LDAP blocked user on sign-in with other auth methods](gitlab-org/gitlab@8190473e461f1bf0409108082701d073def1be03) ([merge request](gitlab-org/gitlab!73471))
|
||||||
|
- [Add queuing mechanic for reindexing](gitlab-org/gitlab@446ebbc9549c6f00529e2238d2b1adc1734968e3) ([merge request](gitlab-org/gitlab!73480))
|
||||||
|
- [Topic management: add link to topic detail page](gitlab-org/gitlab@db82cd254c0667a8fd9bcb0c762dfb7c14767a82) by @wwwjon ([merge request](gitlab-org/gitlab!73648))
|
||||||
|
- [Add jobArtifacts to PipelineType](gitlab-org/gitlab@22787ff46e8a5935a9904167fdc5c758372c8390) by @genctys ([merge request](gitlab-org/gitlab!72412))
|
||||||
|
- [Track processed loose FK records](gitlab-org/gitlab@dac93679a0374abbd138263d545f1db7c06fb422) ([merge request](gitlab-org/gitlab!73541))
|
||||||
|
- [Update user attributes for Group SAML enterprise users](gitlab-org/gitlab@d1db69ca88fc8fe78b3e6626e55e503bbbeee7ce) ([merge request](gitlab-org/gitlab!72792)) **GitLab Enterprise Edition**
|
||||||
|
- [Add 'show' page for topic](gitlab-org/gitlab@3b325e920700a30e6cda601462fcce1e87ab6614) by @wwwjon ([merge request](gitlab-org/gitlab!71830))
|
||||||
|
- [Record transaction duration during migrations](gitlab-org/gitlab@3afb6966876aaa3738b13524ea3406cd93e070fa) ([merge request](gitlab-org/gitlab!72181))
|
||||||
|
- [Add corpus create mutation and service](gitlab-org/gitlab@07e6c2ebee1c9d02e5bb9c5396b8dc65306f1bb4) ([merge request](gitlab-org/gitlab!71992)) **GitLab Enterprise Edition**
|
||||||
|
- [Update scroll position to synchronize the Jump To Next button](gitlab-org/gitlab@65e7685f25228dd1aa9eef7c86c3492503f33340) ([merge request](gitlab-org/gitlab!71508))
|
||||||
|
- [Add created_at to the GraphQL LicenseType](gitlab-org/gitlab@53256ffebba0a407c1219e11f2ad6805f7f3c026) ([merge request](gitlab-org/gitlab!72905)) **GitLab Enterprise Edition**
|
||||||
|
- [Speed up searching environments by ref deployed](gitlab-org/gitlab@3dac2744978d1e60e625a73756011277ce3de51d) ([merge request](gitlab-org/gitlab!72781))
|
||||||
|
- [Add customer relations menu item and root apps](gitlab-org/gitlab@5bcce5792a2aa237e3004f12ace933bec4535885) by @leetickett ([merge request](gitlab-org/gitlab!72787))
|
||||||
|
- [Enable linear ParticipantsService ancestors queries](gitlab-org/gitlab@e910d9e20b0399075fdb5c3185e92030af4adeec) ([merge request](gitlab-org/gitlab!72593))
|
||||||
|
- [Enable linear MembersFinder ancestors queries](gitlab-org/gitlab@9af3cdf155b92a90ab067177ba0a8153da085826) ([merge request](gitlab-org/gitlab!72592))
|
||||||
|
- [Promote empty_repo_upload experiment](gitlab-org/gitlab@396f2c495369c354f6d4d8f76a2922c9920ebac0) ([merge request](gitlab-org/gitlab!73111))
|
||||||
|
- [Adding Special diff rendering for .ipynb notebooks](gitlab-org/gitlab@46a0f612b0d4cefb8ebdfa93864622ea0b94b727) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71477))
|
||||||
|
- [VSA: Add deployment frequency links](gitlab-org/gitlab@fb9c7aaa932c11a25b9c914a0992f75c805a685c) ([merge request](gitlab-org/gitlab!72485)) **GitLab Enterprise Edition**
|
||||||
|
- [Enables the mr_changes_fluid_layout flag by default](gitlab-org/gitlab@0f3a585321a79df4925477157613d4ce49fc2842) ([merge request](gitlab-org/gitlab!73261))
|
||||||
|
- [Adds vulnerability state to Vulnerability-Check](gitlab-org/gitlab@586e14b7462ce11bf69ef233279f9875caa5e73b) ([merge request](gitlab-org/gitlab!72405))
|
||||||
|
- [Enable logging of Sidekiq bulk job insertions](gitlab-org/gitlab@4fea71a9a5da31c3fa049cb578f7a7c48c734d45) ([merge request](gitlab-org/gitlab!73223))
|
||||||
|
- [Remove group_authorized_agents feature flag](gitlab-org/gitlab@a8cb522b6b0ab8d9d46c288d6988712e90530b65) ([merge request](gitlab-org/gitlab!71441))
|
||||||
|
- [Add Prometheus metrics for loose foreign keys](gitlab-org/gitlab@3076b64925711a2900110ddd63e45a660b6b9537) ([merge request](gitlab-org/gitlab!73192))
|
||||||
|
- [Include state_id when gathering VSA data](gitlab-org/gitlab@f576360f0921ac39b827463985a94797fae729af) ([merge request](gitlab-org/gitlab!72974))
|
||||||
|
- [Loose foreign key definition experiment](gitlab-org/gitlab@d906530828b3045b0449a1ff4a8213f0571342ce) ([merge request](gitlab-org/gitlab!73146))
|
||||||
|
- [Enable real-time issue assignees by default](gitlab-org/gitlab@099f9e0e513190bed76863dd6af1dbae6591a8f4) ([merge request](gitlab-org/gitlab!71953))
|
||||||
|
- [Feature: add user track script entry point](gitlab-org/gitlab@697834c6e26857cda5e66efa069a12cd3408fd24) by @orozot ([merge request](gitlab-org/gitlab!73097))
|
||||||
|
- [Fix spec to properly support many databases](gitlab-org/gitlab@3bdf92cb1ceefd0969025bf17a0f042dffa9cbca) ([merge request](gitlab-org/gitlab!70063))
|
||||||
|
- [Enable group-level MR approval settings by default](gitlab-org/gitlab@b20b34405af236b1b2e8b334466224e3c7055095) ([merge request](gitlab-org/gitlab!73058)) **GitLab Enterprise Edition**
|
||||||
|
- [Enable linear GroupTree ancestors queries](gitlab-org/gitlab@a532cfbde60dab31467cff218db51d9178de9484) ([merge request](gitlab-org/gitlab!72494))
|
||||||
|
- [Annotate DAST models strings for localization](gitlab-org/gitlab@f85a7cbb5a358dfd2d4c5a4b9385c3ab0e50458f) ([merge request](gitlab-org/gitlab!72799)) **GitLab Enterprise Edition**
|
||||||
|
- [Persist credit card network](gitlab-org/gitlab@44a6f14acf300e6d7ed18d6c1b417cb34a4ebf5a) ([merge request](gitlab-org/gitlab!72272))
|
||||||
|
- [Adds DB column for merge request assignee state](gitlab-org/gitlab@11cf2cd3c5c5d01f29ba55dc3cc305782cdcb1e7) ([merge request](gitlab-org/gitlab!72677))
|
||||||
|
- [Add native systemd units](gitlab-org/gitlab@857efa0d218a883a53c0f4075492d2f4af9a89ab) by @behrmann ([merge request](gitlab-org/gitlab!53847))
|
||||||
|
- [Clean up migration to populate commit users](gitlab-org/gitlab@9800171fc1aba6a3e5fd5e408b60bce82c4d3954) ([merge request](gitlab-org/gitlab!72219))
|
||||||
|
- [Enabled variables for CI services](gitlab-org/gitlab@a0b96c07d0fa21a88aaf36a752328a16cd6c54bf) by @ST-Apps1 ([merge request](gitlab-org/gitlab!72025))
|
||||||
|
- [Add runtime_runner_features column to ci_builds_metadata](gitlab-org/gitlab@1632f48e944728844e37514c531625d856e4bb27) ([merge request](gitlab-org/gitlab!72378))
|
||||||
|
- [Add metric for users associating group milestones to releases](gitlab-org/gitlab@5618ea7a90f2a74e1c548c9a570c3299aae35048) ([merge request](gitlab-org/gitlab!71650))
|
||||||
|
- [Loose foreign key worker implementation](gitlab-org/gitlab@1a1e4bdf8267aceee709c1d20509151ef8ab2366) ([merge request](gitlab-org/gitlab!69165))
|
||||||
|
- [Added kaniko ci template to build docker images](gitlab-org/gitlab@91a10b11726bb27d2652b4705a7b9e6b9db308dd) ([merge request](gitlab-org/gitlab!72400))
|
||||||
|
- [Invite members for task experiment](gitlab-org/gitlab@56afab221043f7199cb7de4b434ac6c0c2998988) ([merge request](gitlab-org/gitlab!69299))
|
||||||
|
- [Remove FF verification_state_backfill_worker](gitlab-org/gitlab@9726601c0273c7a30b223cbb6f7a26a42b204330) ([merge request](gitlab-org/gitlab!72762)) **GitLab Enterprise Edition**
|
||||||
|
- [Add 'tencent_serverless_framework' to built-in project template](gitlab-org/gitlab@69f2c1d5b641fee434fe65ae3e0ba3fe8b856b98) ([merge request](gitlab-org/gitlab!71458))
|
||||||
|
- [Merge branch 'mw/clearup-ff_group_membership_export' into 'master'](gitlab-org/gitlab@1222dd099b01226f05c92f9dbcde2c5207c5ba1c) ([merge request](gitlab-org/gitlab!72624)) **GitLab Enterprise Edition**
|
||||||
|
- [Allow custom support email without configuring custom project suffix](gitlab-org/gitlab@6bcf1b17da2e28ceb6bfa644d6643d52f3bb4f98) ([merge request](gitlab-org/gitlab!71940))
|
||||||
|
- [Add median lead time for changes to VSA](gitlab-org/gitlab@b26ee08d7910092308b429378aff7f84e69e8b6b) ([merge request](gitlab-org/gitlab!72283)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove ff_group_membership_export flag](gitlab-org/gitlab@445a68ce019b072bc6268a4b141d90daa6b80a52) ([merge request](gitlab-org/gitlab!72624)) **GitLab Enterprise Edition**
|
||||||
|
- [Move Agent usage metrics to Core](gitlab-org/gitlab@ca2e56efc791c9e67ddc22e7c83faeea28383fd6) ([merge request](gitlab-org/gitlab!72086))
|
||||||
|
- [Enable Agent creation in Core](gitlab-org/gitlab@fc6adf3d27b048a0db8ee2c4524f9b5ade8e6504) ([merge request](gitlab-org/gitlab!71882))
|
||||||
|
- [Move Agent KUBECONFIG variable generation to core](gitlab-org/gitlab@0ee1914b42171a3b2ca6e5378103bb4513d6f2f9) ([merge request](gitlab-org/gitlab!72085))
|
||||||
|
- [Sync creating requirements with requirements issue](gitlab-org/gitlab@34449b20ccba8018d0427ed12ee55ebc70389923) ([merge request](gitlab-org/gitlab!71104)) **GitLab Enterprise Edition**
|
||||||
|
- [Add user caps to group's membership settings](gitlab-org/gitlab@365904e82491e027a22b1ea84e883795e8d8b387) ([merge request](gitlab-org/gitlab!72006)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove the rails_apdex_counters feature flag](gitlab-org/gitlab@f8e5122d0178a701a0836ba99b6fc4e88739ad87) ([merge request](gitlab-org/gitlab!72427))
|
||||||
|
- [Add CustomerRelations::IssueContact model](gitlab-org/gitlab@5c6b2c4bc62826d7cbda4094637468fa63f30d77) by @leetickett ([merge request](gitlab-org/gitlab!72246))
|
||||||
|
- [Cleanup project_storage_ui feature flag](gitlab-org/gitlab@0438d9d77383a8456480c1050baf2e2f4cbba689) ([merge request](gitlab-org/gitlab!71270))
|
||||||
|
- [Add created_at filters to MR resolver](gitlab-org/gitlab@72d09bd815b1aaed8d5fc5d6e26c9f669669fbe0) ([merge request](gitlab-org/gitlab!72498))
|
||||||
|
- [Add integration with ZenTao](gitlab-org/gitlab@398fd4f01643aff08e579e1a83e8552f8b91575e) by @icbd ([merge request](gitlab-org/gitlab!69602))
|
||||||
|
- [Move Agent CI tunnel functionality to Core](gitlab-org/gitlab@eec9855d6869dc19858340bf1647156349324aa6) ([merge request](gitlab-org/gitlab!71972))
|
||||||
|
- [Add Debian endpoint for distribution key](gitlab-org/gitlab@dd0552011089b074b13c422f208ce35d6dfb31fb) by @sathieu ([merge request](gitlab-org/gitlab!71716))
|
||||||
|
- [Filter issues by releaseTag in GraphQL](gitlab-org/gitlab@df4fad342f1b120eafa636d8e43cd73e06d83844) ([merge request](gitlab-org/gitlab!71012))
|
||||||
|
- [Add 'Explore topics' page](gitlab-org/gitlab@745b7d7c7b45c7cc89c692359da4b71a58c42592) by @wwwjon ([merge request](gitlab-org/gitlab!62443))
|
||||||
|
|
||||||
|
### Fixed (123 changes)
|
||||||
|
|
||||||
|
- [Fix SAML SSO redirects for pseudonymized URLS](gitlab-org/gitlab@aa6f3db27821292fc072343cd0134e99f8eb93ba) ([merge request](gitlab-org/gitlab!74476))
|
||||||
|
- [Add suggestion_commit_message length validation](gitlab-org/gitlab@df22130968eae889cdf89d66fc7a10e58eabe79d) by @trakos ([merge request](gitlab-org/gitlab!74310))
|
||||||
|
- [GithubImporter: Fix import duration metric](gitlab-org/gitlab@4ef1a8e3865fd1ae76d1b9f52de3cd21944daa81) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74610))
|
||||||
|
- [Fix a bug with the metadata during the npm package upload](gitlab-org/gitlab@ec6908c336bcaf7b2321715ae77aaad62752f0bb) ([merge request](gitlab-org/gitlab!74588))
|
||||||
|
- [Fix error when Origin header is null](gitlab-org/gitlab@969951adbc875a1c45f37e14ccdaf90489b4b50f) ([merge request](gitlab-org/gitlab!74581))
|
||||||
|
- [Fix loading authors in issues list](gitlab-org/gitlab@d23866a9d2f5f4b3b92ca1615a857b1464b4c515) ([merge request](gitlab-org/gitlab!74562))
|
||||||
|
- [Fix regression in code blocks in the Content Editor](gitlab-org/gitlab@fcc0f65481d30f4bedc6a3cd188316de7d14e00e) ([merge request](gitlab-org/gitlab!74520))
|
||||||
|
- [Fix sysvinit Sidekiq logging](gitlab-org/gitlab@6f7e676a346036f10753f9d5a5880c845e3c58bb) ([merge request](gitlab-org/gitlab!73850))
|
||||||
|
- [Fix setting block animation issues](gitlab-org/gitlab@88aff5d7d8afc417d37cc0166205df62508befe9) ([merge request](gitlab-org/gitlab!74411))
|
||||||
|
- [Remove presence validator on name on WebauthnRegistration](gitlab-org/gitlab@9c88b3ad8ac9728cc248dd9a4a2a84cbe74564d0) ([merge request](gitlab-org/gitlab!74376))
|
||||||
|
- [Fix common errors in AuthorizedProjectsWorker](gitlab-org/gitlab@3f8caeda714051e288b2346aa2beebab2450e602) ([merge request](gitlab-org/gitlab!74055))
|
||||||
|
- [Fix widget dropdown title overflow](gitlab-org/gitlab@7572bc6e5f2c4b9401dd1ce4bdbd77561b2826ea) ([merge request](gitlab-org/gitlab!74358))
|
||||||
|
- [Don't transform empty .ipynb diffs](gitlab-org/gitlab@a306f0f4cadf9fb2b40dd1ca84c39f7f051d83d6) ([merge request](gitlab-org/gitlab!74299))
|
||||||
|
- [Allow destruction of records in archived pending_delete projects](gitlab-org/gitlab@f8c6c9508346664157db3094ce8f2f1faef20a51) ([merge request](gitlab-org/gitlab!73863))
|
||||||
|
- [Allow to create service desk issues for all quoted emails](gitlab-org/gitlab@bcdf73f999c8ec6a9912594a7664081000964324) ([merge request](gitlab-org/gitlab!73397))
|
||||||
|
- [Fix bug due to fuzzy matching in Infrastructure Registry](gitlab-org/gitlab@5a4da09185c10915cb4e2e8e13c176a29233d145) ([merge request](gitlab-org/gitlab!73588))
|
||||||
|
- [Fix no repo error message for group-level wikis](gitlab-org/gitlab@f3a0725f2a599a53790d35fab011540e5d61f241) ([merge request](gitlab-org/gitlab!74133)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix commit msg color for dark mode graph](gitlab-org/gitlab@533bc79998d58c21c99a224ec84c02202887720f) ([merge request](gitlab-org/gitlab!74050))
|
||||||
|
- [Fixes broken trigger layout](gitlab-org/gitlab@3941d96ac395b3e9accb6c0488ef86e9c12c7e64) ([merge request](gitlab-org/gitlab!74213))
|
||||||
|
- [Fix agent install page paths](gitlab-org/gitlab@6932f814a0a08ef5c232f5214829e3af1e2ef4be) ([merge request](gitlab-org/gitlab!74120))
|
||||||
|
- [Reduce noise in cluster cleanup workers](gitlab-org/gitlab@f3e541c092bd73b529b4f3e1b2b5f36f372b1004) ([merge request](gitlab-org/gitlab!74117))
|
||||||
|
- [Fix scoped board milestone/iteration Timebox global ID](gitlab-org/gitlab@a3569025baa1b7f42ef494ff651ac8f975dc435b) ([merge request](gitlab-org/gitlab!73875)) **GitLab Enterprise Edition**
|
||||||
|
- [Prevent overflowing of runner tags](gitlab-org/gitlab@38e06e46908256138c9aa696101e53e3aaee46dd) ([merge request](gitlab-org/gitlab!74071))
|
||||||
|
- [Fix manifest workhorse upload](gitlab-org/gitlab@a8545c048e70c17d08af62a65f6f50e14cc59eea) ([merge request](gitlab-org/gitlab!73810))
|
||||||
|
- [Extend the OverrideUuids service logic](gitlab-org/gitlab@942553b2b2b7e5cabdd29ed04d34fd0a72f55088) ([merge request](gitlab-org/gitlab!73563)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix foreign_key of using on data_fields](gitlab-org/gitlab@fc1244a50bc17b762a10ecb1f29c65fb06a43522) by @icbd ([merge request](gitlab-org/gitlab!73456))
|
||||||
|
- [Vulnerability Report: Fix typo in description text](gitlab-org/gitlab@ebb1d6293ec35767e5a6cb483469957a03c3af4b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74047)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix built-in template import creating duplicate audit logs](gitlab-org/gitlab@e45a50039b18647a9c4b0c6a565adf02fb70b66f) ([merge request](gitlab-org/gitlab!73822)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix merge requests not importing for older projects](gitlab-org/gitlab@49daa959ac0ac056d54ca965e4788b08a9c18378) ([merge request](gitlab-org/gitlab!74031))
|
||||||
|
- [Add sidebar highlight and fix link](gitlab-org/gitlab@927e921b1d3cc2231f9f38969e5abb5181c0d6a7) by @icbd ([merge request](gitlab-org/gitlab!73245))
|
||||||
|
- [Fix 2FA setup for LDAP users](gitlab-org/gitlab@c29aca2e77e42802b495f09066abbc6c8823486c) ([merge request](gitlab-org/gitlab!73538))
|
||||||
|
- [Recalculate project authorizations on group transfer](gitlab-org/gitlab@63ab878f71d374b657005058bed2c776c19a2632) by @vfazio ([merge request](gitlab-org/gitlab!72550))
|
||||||
|
- [Clear closure references when issue is reopened](gitlab-org/gitlab@06ae33b82e3b96e29a7ca3c60c2a139911c3b23f) ([merge request](gitlab-org/gitlab!73958))
|
||||||
|
- [Prevent Git operations from checking replication lag on non-Geo sites](gitlab-org/gitlab@369dbc7c2e0c0b8764b26b0f12dacac8b111050a) ([merge request](gitlab-org/gitlab!73952)) **GitLab Enterprise Edition**
|
||||||
|
- [Allow non-group Agent projects to authorize themselves](gitlab-org/gitlab@6a5201ede1bc5eef7e4403becd5e827c2eac9168) ([merge request](gitlab-org/gitlab!73917))
|
||||||
|
- [Vulnerability Modal: Fix issue with long URLs](gitlab-org/gitlab@5258a998fa4a1db5b03b8df3b876aa6518ae09eb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73713)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix Type error about namespace through provides on members page](gitlab-org/gitlab@4597c630af4303aad371afbfd5a668039241ae68) ([merge request](gitlab-org/gitlab!73687))
|
||||||
|
- [Fix pipeline editor crashing the browser when getting a 500 error](gitlab-org/gitlab@6f7a848589b9547cfd63c040a9dfe01512f20d15) ([merge request](gitlab-org/gitlab!73861))
|
||||||
|
- [Reset subscription max seats used on new term](gitlab-org/gitlab@78dae45f419e989db38bf0282364a325ad11506f) ([merge request](gitlab-org/gitlab!73078)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix issue rebalance banner](gitlab-org/gitlab@8383b1b19cabd99e02ba5247f0bd421989a527cf) ([merge request](gitlab-org/gitlab!73608))
|
||||||
|
- [Disable query cache when outside Rails executor](gitlab-org/gitlab@23152fd9f74f92ed6360dafbb074553c61af0450) ([merge request](gitlab-org/gitlab!73814))
|
||||||
|
- [Fix todo API when used with Alerts](gitlab-org/gitlab@d3e62ab765d2ce35105dd5e264e796be37459a75) ([merge request](gitlab-org/gitlab!73812))
|
||||||
|
- [Add remediation based on cve or id](gitlab-org/gitlab@84a557d426d78960fd5fcc01bbe9f4e16cf603e6) by @ssarka ([merge request](gitlab-org/gitlab!73581)) **GitLab Enterprise Edition**
|
||||||
|
- [Wrap Sidekiq scheduler threads in Rails reloader](gitlab-org/gitlab@7c2e4a6cabdc736c839d52bcdea45d653fe1ed42) ([merge request](gitlab-org/gitlab!73716))
|
||||||
|
- [Fix quick action permissions to match UI](gitlab-org/gitlab@8e85fac366e8d6e329ede3e616b35db7c788cec2) ([merge request](gitlab-org/gitlab!73710))
|
||||||
|
- [Skip retrying for reads on connection errors if primary only](gitlab-org/gitlab@7d0c81a7576fe7a8fc5d926346c8635c0504a245) ([merge request](gitlab-org/gitlab!73715))
|
||||||
|
- [Fix illustration paths in survey response page](gitlab-org/gitlab@e9f76ac046a897b6e1fa4193772ec6bb896e4887) ([merge request](gitlab-org/gitlab!73705)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix MR commits with missing committers/authors](gitlab-org/gitlab@9b553e50f3add5c638fc79c62cbe07f5be991d5f) ([merge request](gitlab-org/gitlab!73307))
|
||||||
|
- [Fix: update broken pipeline layout](gitlab-org/gitlab@af0a80f94d8b9ad1a815dd336f7bb43cd25ddf6e) ([merge request](gitlab-org/gitlab!73477))
|
||||||
|
- [Use the To header when sending pipeline emails](gitlab-org/gitlab@3b5330e9bcf66d7f66ff5b51dbb60adcf2197f67) ([merge request](gitlab-org/gitlab!73363))
|
||||||
|
- [Cleanup sticky_environments_in_job_retry feature flag](gitlab-org/gitlab@a4e3412d88e7feb4def05b253aef7f760d0cbaf4) ([merge request](gitlab-org/gitlab!73606))
|
||||||
|
- [Improve tracking of requests in rate limiter](gitlab-org/gitlab@7c3c7942b3570672dadfe6858317c0fe537a29f4) ([merge request](gitlab-org/gitlab!73343))
|
||||||
|
- [Check correct permissions before showing Release Evidence link](gitlab-org/gitlab@dffa6549fdb8fe1abd092ba531c476eea02f5367) ([merge request](gitlab-org/gitlab!73574))
|
||||||
|
- [Fix ghost button on payment step for subscriptions](gitlab-org/gitlab@ae7bd2c62116008240278e6bf33e5fd497ceda87) ([merge request](gitlab-org/gitlab!73293)) **GitLab Enterprise Edition**
|
||||||
|
- [Allow SSO callbacks through maintenance mode](gitlab-org/gitlab@b59f528b254d6b40d62dace7c78416237db5d102) ([merge request](gitlab-org/gitlab!73550)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix error on environment rollback](gitlab-org/gitlab@bdd4abadb56c417f31841e6fcc0804bed0f0d196) ([merge request](gitlab-org/gitlab!73473))
|
||||||
|
- [Fix permission check for confidential quick action](gitlab-org/gitlab@561f4402419cf535d97b16331439e0a71cfe68b6) ([merge request](gitlab-org/gitlab!73515))
|
||||||
|
- [Fix Geo: Secondaries may be orphaning Upload files](gitlab-org/gitlab@d4e54efcfe1d9fbdcb24e7bc6cd4fb0ea1861988) ([merge request](gitlab-org/gitlab!69763)) **GitLab Enterprise Edition**
|
||||||
|
- [Add better error handling to BulkImports::GroupLoader](gitlab-org/gitlab@b470e9bbe761094f4d90f200dd58def3837014ed) ([merge request](gitlab-org/gitlab!73191))
|
||||||
|
- [Ensure that GlSingleStat animates](gitlab-org/gitlab@1402f8303ac1a5582ce405d6bb53af8c09c50b61) ([merge request](gitlab-org/gitlab!72759))
|
||||||
|
- [Fix tasklist header counts in Test Cases](gitlab-org/gitlab@0303c8b1322093c0d8f26bb8ef079f5a78772411) ([merge request](gitlab-org/gitlab!73453)) **GitLab Enterprise Edition**
|
||||||
|
- [Allow relative WebP image embed in markdown](gitlab-org/gitlab@9d9618fc821f12d1441b668e8f6ce7ae0cd6ca4b) by @KevSlashNull ([merge request](gitlab-org/gitlab!73426))
|
||||||
|
- [Fix uninitialized constant STICK_OBJECT](gitlab-org/gitlab@be042a560485a17907613828147981b675255060) by @leetickett ([merge request](gitlab-org/gitlab!73405))
|
||||||
|
- [Increase file import size validator timeout](gitlab-org/gitlab@d7bbc0784a5badf2c3810d5f3b209e94437c55b3) ([merge request](gitlab-org/gitlab!73400))
|
||||||
|
- [Fix breadcrumb click event handling](gitlab-org/gitlab@5d05b3d8a5c688ec06d63b252d373ed3b64cf336) ([merge request](gitlab-org/gitlab!73287))
|
||||||
|
- [Do not update feedback when it is persisted](gitlab-org/gitlab@18861c4269a6d246f777e63c99c42ef27bc73e58) ([merge request](gitlab-org/gitlab!73311)) **GitLab Enterprise Edition**
|
||||||
|
- [Increase the deduplication TTL for future jobs](gitlab-org/gitlab@24318caeb54f6479e2aafe3c46c1c7e3a2694743) ([merge request](gitlab-org/gitlab!73257))
|
||||||
|
- [Fix filtering of "Not connected" runners](gitlab-org/gitlab@e4ccc98de6febe9f550c53a5c7207523e446a4e1) ([merge request](gitlab-org/gitlab!73292))
|
||||||
|
- [Exclude project bots from deactivation in DeactivateDormantUsersWorker](gitlab-org/gitlab@7320c15f48c10ea67979dbe26cb50179cfe7eabf) ([merge request](gitlab-org/gitlab!73028))
|
||||||
|
- [Fix 2FA management on Safari](gitlab-org/gitlab@65389a3bafd68315abe54e09ab081e64fea5656a) ([merge request](gitlab-org/gitlab!73218))
|
||||||
|
- [Fix slight scroll bounce when jumping between unresolved discussions](gitlab-org/gitlab@78cd69f9013aa77a4c5e28a7f12cc62f6d8ce36e) ([merge request](gitlab-org/gitlab!73281))
|
||||||
|
- [Don't limit number of Gitaly client keepalives](gitlab-org/gitlab@4636ed9bdeab3f3a664c52e8876b17391c0bbc19) ([merge request](gitlab-org/gitlab!73302))
|
||||||
|
- [Silence unknown PostgreSQL OIDs warnings](gitlab-org/gitlab@71917b7313e7232a623a52f5ebbedf7936790f7e) ([merge request](gitlab-org/gitlab!73244))
|
||||||
|
- [Do not auto-retry unrecoverable job failure](gitlab-org/gitlab@f049bb62c76a6192136fc45f4e8516812c53cb13) ([merge request](gitlab-org/gitlab!73150))
|
||||||
|
- [Fix: filename display when copy/paste in comment](gitlab-org/gitlab@f4737a3a585d2e205bca19e5b3ba3f2d5a7e344d) by @orozot ([merge request](gitlab-org/gitlab!72878))
|
||||||
|
- [Do now unescape branch name when deleting branch](gitlab-org/gitlab@f3e44598b1a9e06fc93a6ec58c0acb3b89c5a1fc) ([merge request](gitlab-org/gitlab!73253))
|
||||||
|
- [Enable surface_environment_creation_failure feature flag by default](gitlab-org/gitlab@82a474083a87962473a45bd25bab8bd0ed6af7e1) ([merge request](gitlab-org/gitlab!72194))
|
||||||
|
- [Prevent timeouts when updating `share_with_group_lock` of a group](gitlab-org/gitlab@2dfecc4fa25ed9b87ca4fc8dc45ba4bbb6a32a96) ([merge request](gitlab-org/gitlab!72955))
|
||||||
|
- [Fix epic board scope text](gitlab-org/gitlab@aec0eb917ad7c9165cd23097012e33b28bb304c0) ([merge request](gitlab-org/gitlab!73234))
|
||||||
|
- [Standardize error message field in structured logs](gitlab-org/gitlab@400dd57ba4207079d70b9b0fcd509297b2b5da3a) ([merge request](gitlab-org/gitlab!73196))
|
||||||
|
- [Make `LoadBalancer` to configure pool sizes of all classes](gitlab-org/gitlab@fcc216a23746cfa52ba86a869f26e0a2c40fb8f0) ([merge request](gitlab-org/gitlab!72989))
|
||||||
|
- [Sort epic ancestors in hierarchical order in graphQL endpoint](gitlab-org/gitlab@758d5a3738d85677f45b8e988514b7a06c82dee0) ([merge request](gitlab-org/gitlab!72811)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix cascading settings attr reader behavior](gitlab-org/gitlab@f7c013d8931d84dba719cd929147dfa9f3b578f5) by @gizero ([merge request](gitlab-org/gitlab!72962))
|
||||||
|
- [Don't fail DeleteStoredFilesWorker if one of the files is missing](gitlab-org/gitlab@7915af8aae24a76586a43eaf08e68de3677d11e1) ([merge request](gitlab-org/gitlab!73084))
|
||||||
|
- [Schedule AutoFix background job after ingesting the security reports](gitlab-org/gitlab@f496649ec5100ebda2933ca4d0693f1fe8b45df4) ([merge request](gitlab-org/gitlab!72957)) **GitLab Enterprise Edition**
|
||||||
|
- [Move yaml processor secrets configuration to EE](gitlab-org/gitlab@80adf2e64a5b547925398f123a20528876e7cfa3) ([merge request](gitlab-org/gitlab!73017)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove the pipelines link from Auto DevOps toast](gitlab-org/gitlab@0c144e2ff0c51c9d47ca3b880a3cbce60882bf7f) ([merge request](gitlab-org/gitlab!73054))
|
||||||
|
- [Fix 'private method 'load' called' when posting non-whitelisted webhook](gitlab-org/gitlab@0fcfb496c725d3c87f888474378c04bb7de281bf) by @perlun ([merge request](gitlab-org/gitlab!72672))
|
||||||
|
- [Change manage events metric counter method](gitlab-org/gitlab@e8e0288768709f812f12cdb2fae13c82ada96529) ([merge request](gitlab-org/gitlab!72975))
|
||||||
|
- [Fix `canUpdate` console error on external issues](gitlab-org/gitlab@e093779ae951f21359966475a9bfdcb21326f244) ([merge request](gitlab-org/gitlab!72950)) **GitLab Enterprise Edition**
|
||||||
|
- [Show captcha verification on issue boards](gitlab-org/gitlab@fddd98bf2fd70ca2591e16259558d8ae488de155) ([merge request](gitlab-org/gitlab!72818))
|
||||||
|
- [Fix error when archiving requirements](gitlab-org/gitlab@500cef40295d5158d4a16847cbe22c2ab645d411) ([merge request](gitlab-org/gitlab!73010)) **GitLab Enterprise Edition**
|
||||||
|
- [Persist solution, message and description fields](gitlab-org/gitlab@ed62453626233c9c411648acb72d7ccf82270fd8) ([merge request](gitlab-org/gitlab!72883)) **GitLab Enterprise Edition**
|
||||||
|
- [Skip st_diff setting on LegacyDiffNote during import](gitlab-org/gitlab@e2c6b1390b0e4d17fbe9924dc619a3545905c6db) ([merge request](gitlab-org/gitlab!72897))
|
||||||
|
- [Use `overridden_uuid` as primary lookup for the report finding](gitlab-org/gitlab@643582f6c1b0e70f823938f2e0ec481406ef1c58) ([merge request](gitlab-org/gitlab!72835)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove duplicate text from create group description](gitlab-org/gitlab@1467e1d396beb37032566cba8c2ca8556c3f5e96) ([merge request](gitlab-org/gitlab!72954))
|
||||||
|
- [Add reschedule option to Resource Group worker](gitlab-org/gitlab@63cc19469b1d7fd2085cc78efc76cbc46850ef66) ([merge request](gitlab-org/gitlab!72961))
|
||||||
|
- [Fix SMIME signature for emails on push](gitlab-org/gitlab@20439de242730db94622f1cf92ad2a6cac159ecd) ([merge request](gitlab-org/gitlab!72956))
|
||||||
|
- [Fix error 500 loading branch with UTF-8 characters with performance bar](gitlab-org/gitlab@cbbe03492b18ee07901bde5f055c2b4cd0a00a44) ([merge request](gitlab-org/gitlab!72925))
|
||||||
|
- [Fix file mode changes not always visible in MRs](gitlab-org/gitlab@3fbaa336ea9f8a54df8f41bfd0e63b504dc25eaf) by @hypemc ([merge request](gitlab-org/gitlab!72937))
|
||||||
|
- [Allow job token to perform all release REST API operations](gitlab-org/gitlab@3cea963ff14e61f60fe9fff45d81fd3bdbd39d1d) by @guillaume.chauvel ([merge request](gitlab-org/gitlab!72448))
|
||||||
|
- [Fix 2+ discussions on one line not working](gitlab-org/gitlab@b6a340c9cd8dccebcb0f165d5757b536506423b2) ([merge request](gitlab-org/gitlab!72915))
|
||||||
|
- [Fix issues with frame-src CSP directive](gitlab-org/gitlab@ee10fb1e26b51b91befa68a19b537986b365f957) ([merge request](gitlab-org/gitlab!72830))
|
||||||
|
- [Fix shared runners form injections](gitlab-org/gitlab@467733230658dcc101ae5c60f9b11bcd5592c866) ([merge request](gitlab-org/gitlab!72907))
|
||||||
|
- [Fix deployment merge request link creation](gitlab-org/gitlab@dcda9b1eebf5a88f1219cf7bc6983ca1d7af411d) ([merge request](gitlab-org/gitlab!72757))
|
||||||
|
- [Add latest commit hash to compare cache key](gitlab-org/gitlab@2cd7de9991329356e27f72b7902af1a54d964520) ([merge request](gitlab-org/gitlab!72388))
|
||||||
|
- [Move DAST CI Job keys to the EE Variant](gitlab-org/gitlab@cc91cf3e86b862441990a5b15c8f40f2ed172c2c) ([merge request](gitlab-org/gitlab!72829)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix issue with CSP using Safari in dev mode](gitlab-org/gitlab@1890efe73df4173104917c7031c38764c355272f) ([merge request](gitlab-org/gitlab!72728))
|
||||||
|
- [Remove compliance framework section for unlicensed EE](gitlab-org/gitlab@3578a1c857c7a32f776ccca445faea415ab350a7) ([merge request](gitlab-org/gitlab!72691)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix unnecessary epics fetch req with empty filters](gitlab-org/gitlab@689b1f691ad88b3426a1bbe791f24e18d4288b56) ([merge request](gitlab-org/gitlab!72774)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix object deduplication on Geo first sync](gitlab-org/gitlab@f7fd7b0392476503b1d2d7d040861de1cfc42186) ([merge request](gitlab-org/gitlab!72605)) **GitLab Enterprise Edition**
|
||||||
|
- [Allow newlines in HTTP URLs](gitlab-org/gitlab@f1c1b914082c6c90ee2964f956436ce1709e86e3) ([merge request](gitlab-org/gitlab!72655))
|
||||||
|
- [Fix `Security::OverrideUuidsService` matching logic](gitlab-org/gitlab@25db632a95b5f2575d937864b8ee02dd55ab4952) ([merge request](gitlab-org/gitlab!72723)) **GitLab Enterprise Edition**
|
||||||
|
- [Add cloak-startup class and apply to mobile overlay](gitlab-org/gitlab@b4d6183adbbf96cefbd74ab7971b72010f5f202f) by @leetickett ([merge request](gitlab-org/gitlab!71148))
|
||||||
|
- [Stop polling when checking task lists on an issue](gitlab-org/gitlab@7b42afcd7fa71a0c09ed8899fe90740914cb7499) ([merge request](gitlab-org/gitlab!72629))
|
||||||
|
- [Modify error message for clarity](gitlab-org/gitlab@cba9950182b23a78dda3da5994167fb0ac5c284b) ([merge request](gitlab-org/gitlab!72658))
|
||||||
|
- [Ensure Azure-related gems are loaded](gitlab-org/gitlab@b221a58d23caf99293a61ca7f2987eaa247f23a5) ([merge request](gitlab-org/gitlab!72433))
|
||||||
|
- [Ensure commits limit is always positive](gitlab-org/gitlab@bb179a08051c46555d96e7c446702aa4ada300b9) ([merge request](gitlab-org/gitlab!72274))
|
||||||
|
- [Add DEFAULT_CERT_DIR handling to Spamcheck and fix Gitaly GRPC Bug](gitlab-org/gitlab@2c6b10b8ce4d3dbbc76415c58ee8ed493311d4c8) ([merge request](gitlab-org/gitlab!72386))
|
||||||
|
- [Fix a join in the postgres_indexes view](gitlab-org/gitlab@1ab9822a16cace04f1efd6b9d057fb2da1dfd60f) ([merge request](gitlab-org/gitlab!72540))
|
||||||
|
- [Fix spacing around code quality problem icon in diff view](gitlab-org/gitlab@3b6a3ecb77d0406d9f4fd0f83560ef56baf342b7) by @antonykor.ak ([merge request](gitlab-org/gitlab!72137)) **GitLab Enterprise Edition**
|
||||||
|
- [Transaction metrics from workers are not collected](gitlab-org/gitlab@c64c0191b944c889539b172d77d7e1913b30ad55) ([merge request](gitlab-org/gitlab!72108))
|
||||||
|
- [Fix nil value in location column in vulnerability_occurrences](gitlab-org/gitlab@9f192fd6c4d7859879e4582051023b5cb0c02143) ([merge request](gitlab-org/gitlab!72224)) **GitLab Enterprise Edition**
|
||||||
|
|
||||||
|
### Changed (142 changes)
|
||||||
|
|
||||||
|
- [Update deprecation notice](gitlab-org/gitlab@4d9e007e329055246968251a225f5e305702308e) ([merge request](gitlab-org/gitlab!74729))
|
||||||
|
- [Increase LFS token entropy for keys/deploy keys](gitlab-org/gitlab@9a2e2837a94603b0beff2d26ddd27019b47433b1) ([merge request](gitlab-org/gitlab!74699))
|
||||||
|
- [Fixes cross-db modification for Ci::JobArtifacts::DestroyBatchService](gitlab-org/gitlab@78e6a0de07eacc59da0cb85bbe889f54f0caea0c) ([merge request](gitlab-org/gitlab!74583))
|
||||||
|
- [Remove query_project_ci_feature_usages_for_coverage flag](gitlab-org/gitlab@b92364cc5ac02aeba68a17412b92c2a1e9481242) ([merge request](gitlab-org/gitlab!74230)) **GitLab Enterprise Edition**
|
||||||
|
- [Replace `window.confirm` with `GlModal` confirmation](gitlab-org/gitlab@ee280ed2b763d1278ad38c6e7e8a0aff092f617a) ([merge request](gitlab-org/gitlab!73950))
|
||||||
|
- [Update audit events to filter by username](gitlab-org/gitlab@406fef79f6b2e06cef5a57d348ccebb78662e3e9) ([merge request](gitlab-org/gitlab!73742)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix OpenStruct use](gitlab-org/gitlab@e52f31cd736617f19018b23c376f3b834dc7b256) by @mehulsharma ([merge request](gitlab-org/gitlab!74192))
|
||||||
|
- [Fix OpenStruct use](gitlab-org/gitlab@7077c3d2bd4ecd9a6a2f7c2d5c0cf399d5ef8617) by @mehulsharma ([merge request](gitlab-org/gitlab!74420))
|
||||||
|
- [Move API fuzzing YAML generation to the client](gitlab-org/gitlab@6e204daf0ee57b4f9486f0c1a46a7b1f0040fced) ([merge request](gitlab-org/gitlab!74514)) **GitLab Enterprise Edition**
|
||||||
|
- [Use after_commit in Vulnerabilities::Feedback](gitlab-org/gitlab@82ce5be4a8a9451e5f180bacbf5bfa39463cb5ed) ([merge request](gitlab-org/gitlab!74508))
|
||||||
|
- [Use allowlist of allowed attributes for imported models](gitlab-org/gitlab@4af697f6983abfb13a356ae8f9ec65124d45b8db) ([merge request](gitlab-org/gitlab!72152))
|
||||||
|
- [Use image digest for Auto DevOps deployments](gitlab-org/gitlab@782c95ec8dfaf50e259cefcdd30ff8c7995098de) by @kinolaev ([merge request](gitlab-org/gitlab!68783))
|
||||||
|
- [Make capitalization of incident management objects uniform in modal](gitlab-org/gitlab@294974a95b8a94953a47ac8a974e4f7882e683b5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74453))
|
||||||
|
- [feat: Update default PAT prefix when not set](gitlab-org/gitlab@0762b5ca672b8eabe3567ed3b3bd73fdf90abe00) ([merge request](gitlab-org/gitlab!74439))
|
||||||
|
- [Use rectangular avatar on topic detail page](gitlab-org/gitlab@242281e38af1cca1ff522076449fedaff0d1912e) by @wwwjon ([merge request](gitlab-org/gitlab!74424))
|
||||||
|
- [Fix OpenStruct use](gitlab-org/gitlab@e960176b022d49e95cb04a37ab91b8e0a3fd4786) by @mehulsharma ([merge request](gitlab-org/gitlab!74419))
|
||||||
|
- [Fixed OpenStruct use offense](gitlab-org/gitlab@924eb6d05e99001dc04d00c5a637086a19ebc73b) by @mehulsharma ([merge request](gitlab-org/gitlab!73398))
|
||||||
|
- [Fix OpenStruct usage](gitlab-org/gitlab@b7b81a84417c6d92301e3267fb8534c77a4a968f) by @mehulsharma ([merge request](gitlab-org/gitlab!74405))
|
||||||
|
- [Release the NPM metadata abbreviated support](gitlab-org/gitlab@b6e2d1462922f5699451697c6d3f762122869071) ([merge request](gitlab-org/gitlab!74409))
|
||||||
|
- [Deprecation of the cert-based K8s integration](gitlab-org/gitlab@9c2253808d054d48146df3203203d7a7ae5f95ac) ([merge request](gitlab-org/gitlab!74194))
|
||||||
|
- [Use token authentication in the Debian distribution APIs](gitlab-org/gitlab@e81e649f72acf09023b8ff28717c84cb802f78d5) by @sathieu ([merge request](gitlab-org/gitlab!71911))
|
||||||
|
- [Get cluster_id from kubernetes_resource for CIS](gitlab-org/gitlab@2bcd97376543347ee65d3468c48c2134939bc222) ([merge request](gitlab-org/gitlab!74300)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove Apollo error suppression feature flag](gitlab-org/gitlab@65dd9c132dad0d8c41f35c33d19374cbb24fd2a0) ([merge request](gitlab-org/gitlab!74291))
|
||||||
|
- [Show validation error for setting project suffix](gitlab-org/gitlab@16b13f2ddf5c198a3f53749c4a7bbefb101edf46) ([merge request](gitlab-org/gitlab!73458))
|
||||||
|
- [Update admin deploy keys table to comply with Pajamas design system](gitlab-org/gitlab@62bdd95d3a1a5d805fc74995ab855ae6b1286c2d) ([merge request](gitlab-org/gitlab!73860))
|
||||||
|
- [Go back denylist for importing project](gitlab-org/gitlab@90cf3aca8a230a5c5e1251b97ef581217c1783ca) ([merge request](gitlab-org/gitlab!74248))
|
||||||
|
- [Add shared_runners_duration field to NamespaceMonthlyUsageType](gitlab-org/gitlab@56813743c4b208e3bb65f0525b72b6d52edc3d74) ([merge request](gitlab-org/gitlab!74114))
|
||||||
|
- [Update vendored cluster management project template](gitlab-org/gitlab@dd487e2d5c0b3eb7d19aa9a0e2fac6674daf46b8) ([merge request](gitlab-org/gitlab!74118))
|
||||||
|
- [Move creation of external cross-references into background worker](gitlab-org/gitlab@200f731230da192375ceac6276b1779bff5129ef) ([merge request](gitlab-org/gitlab!72794))
|
||||||
|
- [Enable by default new refactored page](gitlab-org/gitlab@c019228102cf9b303fed28d0403c0a0214f7659b) ([merge request](gitlab-org/gitlab!73367))
|
||||||
|
- [Remove cached_loading_hints feature flag](gitlab-org/gitlab@6a0dd5846d3716d060a45e5e9d99c8cb3fb82a25) ([merge request](gitlab-org/gitlab!74226))
|
||||||
|
- [Restore TagsFinder class interface](gitlab-org/gitlab@707830697dfb8f9bb72364f8629b9e348fdbdfce) ([merge request](gitlab-org/gitlab!74210))
|
||||||
|
- [Refactor profile authentication log to show relevent events](gitlab-org/gitlab@aebb2e0c2db0306b178b9348cb56483e07788671) ([merge request](gitlab-org/gitlab!73890))
|
||||||
|
- [Redirect to Pipeline Editor from Suggest Pipeline banner CTA](gitlab-org/gitlab@82418b00474d7950e39af4121a664a70c4e0ca40) ([merge request](gitlab-org/gitlab!73514))
|
||||||
|
- [Fixed OpenStruct use](gitlab-org/gitlab@e1f7f314bb2f7ca024a3b2ea84930e4005fce8e4) by @mehulsharma ([merge request](gitlab-org/gitlab!73935)) **GitLab Enterprise Edition**
|
||||||
|
- [Create ProjectNamespace when a Project is created](gitlab-org/gitlab@63220fc84e2e581e2c5e5967a9655bbc1ec1dd14) ([merge request](gitlab-org/gitlab!70972))
|
||||||
|
- [Source Editor Extension module](gitlab-org/gitlab@6e41c79c94e225220f28ff6173b0d579535f36cd) ([merge request](gitlab-org/gitlab!73797))
|
||||||
|
- [Update workflow propeties in CI json schema](gitlab-org/gitlab@edd6282071e6dac437ee6aca44bbca6106cf8266) ([merge request](gitlab-org/gitlab!74164))
|
||||||
|
- [Avoid sending send-data headers in API response body](gitlab-org/gitlab@fe3740277d26bf53a147f26b9fbfb3308723a4f3) ([merge request](gitlab-org/gitlab!74161))
|
||||||
|
- [Fixed OpenStruct use](gitlab-org/gitlab@572063f311cddb76ec567d5d763c3d218fa34774) by @mehulsharma ([merge request](gitlab-org/gitlab!73932))
|
||||||
|
- [Add tooltip and commit title to pipeline editor's status header](gitlab-org/gitlab@2b56a27749d6e5c4ce41232d30a53ba4a3706729) ([merge request](gitlab-org/gitlab!73724))
|
||||||
|
- [Add user popup to CI pipeline header](gitlab-org/gitlab@18c3d927c691f265b2c19b29f3c252772f1f1865) by @KevSlashNull ([merge request](gitlab-org/gitlab!60841))
|
||||||
|
- [Redirect to continuous onboarding after trial reg](gitlab-org/gitlab@d48f786d554066533355850bbcc4e19d02af67c5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73594)) **GitLab Enterprise Edition**
|
||||||
|
- [Add read_at to dependency proxy objects](gitlab-org/gitlab@af9efed71e5739b63bf78c1d08dcc5399ac388dc) ([merge request](gitlab-org/gitlab!73842))
|
||||||
|
- [Add pipeline artifacts size to admin area project statistics](gitlab-org/gitlab@510aa2d6c5c1255a3832a430cbd5c7e099e666b2) by @guillaume.chauvel ([merge request](gitlab-org/gitlab!72216))
|
||||||
|
- [Spin reviewer on UX label](gitlab-org/gitlab@2561d97993dcba11251d4ce00dd12ea7e6717fd6) ([merge request](gitlab-org/gitlab!51127))
|
||||||
|
- [Refactor fetching board scope to GraphQL](gitlab-org/gitlab@703f89dff03efeab9732d1962257ba5b3903ab87) ([merge request](gitlab-org/gitlab!73604)) **GitLab Enterprise Edition**
|
||||||
|
- [Use allowlist for importing project attributes](gitlab-org/gitlab@c8c6f4687836bef271b162c5992ae034ad0ce080) ([merge request](gitlab-org/gitlab!72457))
|
||||||
|
- [Filter runner type via tabs](gitlab-org/gitlab@2f27901f299eb7555a486316110af253cbeb26a6) ([merge request](gitlab-org/gitlab!73680))
|
||||||
|
- [Update runner status badges and locked icon](gitlab-org/gitlab@02ab624c7642d0e1eaeb580e87fcdd4564913b28) ([merge request](gitlab-org/gitlab!73254))
|
||||||
|
- [Reorganise Jira Connect UI](gitlab-org/gitlab@b000e17571d15d04b89bc0264495dfa7a6b65d92) ([merge request](gitlab-org/gitlab!73714))
|
||||||
|
- [Update Rugged to v1.2.0](gitlab-org/gitlab@5def0d1caf9138d7ae7853ca65397ee5b5ce43f2) ([merge request](gitlab-org/gitlab!73915))
|
||||||
|
- [Vulnerability Chart: Fix selected state of buttons](gitlab-org/gitlab@31c993cd04803978ecebd8930f019fd5cd699cc8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73516)) **GitLab Enterprise Edition**
|
||||||
|
- [Log when primary host for DB load balancing is marked offline](gitlab-org/gitlab@9a13e3ee52e545fb3d8b02937045184b03ee3912) ([merge request](gitlab-org/gitlab!73904))
|
||||||
|
- [Review Adv Search admin UI text](gitlab-org/gitlab@998c396d2654eaf2d9dc5087961724939e0d2426) ([merge request](gitlab-org/gitlab!73269))
|
||||||
|
- [Load MR widget artifacts on mount](gitlab-org/gitlab@139a59e67ae54dd95ca87354c08b7906c6b964f8) ([merge request](gitlab-org/gitlab!71785))
|
||||||
|
- [Change API permissions to set epic of an issue](gitlab-org/gitlab@f97684dea8d3058001a88aabcb49c49c3a1de51c) ([merge request](gitlab-org/gitlab!66865)) **GitLab Enterprise Edition**
|
||||||
|
- [Use path_with_namespace for delete confirmation phrase](gitlab-org/gitlab@451f206d17989f0d6017bca6d5fc45e065504bf2) ([merge request](gitlab-org/gitlab!73506))
|
||||||
|
- [Flash a warning when not using index aliases](gitlab-org/gitlab@14d035b487afa677ad461bb672d98d6e5a95fa61) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/71609)) **GitLab Enterprise Edition**
|
||||||
|
- [Toggle file tree bolding based on file "Viewed" status](gitlab-org/gitlab@b3cc00ac9ea8e950ed9fc349a8fee858e0fb0d0f) ([merge request](gitlab-org/gitlab!73688))
|
||||||
|
- [Change Geo SSH proxy to internal primary URL](gitlab-org/gitlab@d7111269af72e6a331e87954559868ab864b2f8f) ([merge request](gitlab-org/gitlab!73738)) **GitLab Enterprise Edition**
|
||||||
|
- [Add empty state for CI mintues](gitlab-org/gitlab@8abb5284b3ff43a58d67c9cb4bb0e4c2a7939c61) ([merge request](gitlab-org/gitlab!73681)) **GitLab Enterprise Edition**
|
||||||
|
- [Runner status won't return "paused"](gitlab-org/gitlab@7c5173b6345f8d83a5313fa0364a072207ad7744) ([merge request](gitlab-org/gitlab!73530))
|
||||||
|
- [Add policy name to ScanExecutionPolicyCommit mutation](gitlab-org/gitlab@35a53cae27785da6d0b851a3709d8548cdb0f533) ([merge request](gitlab-org/gitlab!71994)) **GitLab Enterprise Edition**
|
||||||
|
- [Update omniauth-oauth2 and remove error verification monkey-patch](gitlab-org/gitlab@e54d847effd7dc00008c40f9f387365830a7f061) ([merge request](gitlab-org/gitlab!73658))
|
||||||
|
- [Add optional include_jobs param for CI lint APIs](gitlab-org/gitlab@55762622ad4c2982a7bb88ac60bd621a922d7241) ([merge request](gitlab-org/gitlab!72539))
|
||||||
|
- [Shift a user's contribution calendar based on their timezone setting](gitlab-org/gitlab@45f0d6aadc77fd0fd966d2d7c1eb911c6ccbb056) by @davebarr ([merge request](gitlab-org/gitlab!72938))
|
||||||
|
- [Updated texts and illustrations on Kubernetes page](gitlab-org/gitlab@9154ad4a14a2c74e8d43615c0860d0647cdd56ff) ([merge request](gitlab-org/gitlab!73586))
|
||||||
|
- [Improve run pipeline ux](gitlab-org/gitlab@32bfb6ac3e6ecc951f2928f625d6fea54f6a60ef) ([merge request](gitlab-org/gitlab!73479))
|
||||||
|
- [Add project count and coverage count to tooltip](gitlab-org/gitlab@bf87128d1707c90271802405f6806cc391fd01cb) ([merge request](gitlab-org/gitlab!73215)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove not_null constraint and default for public_email](gitlab-org/gitlab@9ba66b0181b8c36e90b70c76b7dc26dc5d36def9) ([merge request](gitlab-org/gitlab!72514))
|
||||||
|
- [Replaced v-html with v-safe-html](gitlab-org/gitlab@7448898ed877680d979e7dd93618c53080c800bd) by @mehulsharma ([merge request](gitlab-org/gitlab!73371))
|
||||||
|
- [Refactor manual variables form](gitlab-org/gitlab@770107542007fa2094d0c83f82a3cc5965501921) ([merge request](gitlab-org/gitlab!73013))
|
||||||
|
- [Remove jira_connect_asymmetric_jwt feature flag](gitlab-org/gitlab@d5bbb49f5360cf50df66bbf1501a1b627000dab0) ([merge request](gitlab-org/gitlab!73540))
|
||||||
|
- [Revert temporary change for sending expiration email for all ssh keys](gitlab-org/gitlab@62dad96d489597400e3bf4bc4de1ea084ea1101a) ([merge request](gitlab-org/gitlab!73185))
|
||||||
|
- [Add clarification of repo size limits](gitlab-org/gitlab@e9fa6a15f912e834a282953940df6d271ec68c5d) ([merge request](gitlab-org/gitlab!73531))
|
||||||
|
- [Pluralize DevOps Report to DevOps Reports](gitlab-org/gitlab@13e84237be2d43fc6812efa7d870e5e2dd6c8ef7) ([merge request](gitlab-org/gitlab!73319))
|
||||||
|
- [Add limit-container-width to Jira create branch](gitlab-org/gitlab@1b29508bdb8a84f736b8a5395451d96e710f3f59) ([merge request](gitlab-org/gitlab!73521))
|
||||||
|
- [Restore namespace requirement for project deletion confirmation](gitlab-org/gitlab@d20ed309e7351854da31db2c4690bef7738e405d) ([merge request](gitlab-org/gitlab!73176))
|
||||||
|
- [Handle `Errno::ENETUNREACH` in `Gitlab::HTTP`](gitlab-org/gitlab@9e1e36c1e71c1f142b12b2f34562edf8cc047824) ([merge request](gitlab-org/gitlab!73507))
|
||||||
|
- [Enable `terms_of_service_vue` feature flag by default](gitlab-org/gitlab@b8174778b9593cbba708be6db472f1007af6c91b) ([merge request](gitlab-org/gitlab!73502))
|
||||||
|
- [Add links to Jira-related error messages](gitlab-org/gitlab@4a4c9839edb7ffdcbe59745212a314b6a4707741) ([merge request](gitlab-org/gitlab!72854))
|
||||||
|
- [Update breadcrumb toggle to inline](gitlab-org/gitlab@16e7f7a248accc22cd3cf08e821f734450899a9c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/72754))
|
||||||
|
- [Use GlAvatar in approval rule selector](gitlab-org/gitlab@20082d12e5174f3da1bed0d0d15d39b150fe417e) ([merge request](gitlab-org/gitlab!73334)) **GitLab Enterprise Edition**
|
||||||
|
- [Change the active link color in the sidebar](gitlab-org/gitlab@61ed7221c570530ce2eb22b0b0ba653e172737be) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73077))
|
||||||
|
- [Moved clusters empty state to Vue component](gitlab-org/gitlab@b28bf503503cc9de7e734c1d661afa74b0bc2d57) ([merge request](gitlab-org/gitlab!73064))
|
||||||
|
- [Store trace files outside of a database transaction](gitlab-org/gitlab@6d80cdc624a8a27699201ec3c1036b1b5485a648) ([merge request](gitlab-org/gitlab!66203))
|
||||||
|
- [Exclude internal API and Geo git_ssh routes from secondary proxying](gitlab-org/gitlab@6b01a82a705882227e0000d524960bc9622ddd58) ([merge request](gitlab-org/gitlab!73202)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove jQuery from Jira connect app](gitlab-org/gitlab@f531c64b3ad62fb69ff7809bebd7ce9bdcb67831) ([merge request](gitlab-org/gitlab!72105))
|
||||||
|
- [Add GITLAB_CDN_HOST to frame-src and worker-src](gitlab-org/gitlab@63daa954bd7ed4581852a12482dcfe0ad2c3d465) ([merge request](gitlab-org/gitlab!72542))
|
||||||
|
- [Only delete data from Elasticsearch 30 days after subscription expires](gitlab-org/gitlab@39a1ed5f4aabda478b56fb522c8c8e508354b47f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/72923)) **GitLab Enterprise Edition**
|
||||||
|
- [feat: Set PersonalAccessToken default prefix](gitlab-org/gitlab@1f7d3d1832abd3c47fb6d0e8245477fc9fe2cdc6) ([merge request](gitlab-org/gitlab!73314))
|
||||||
|
- [Turn on Feature Flag of ZenTao](gitlab-org/gitlab@499a27c8587abe2dc8f6ea0f1e5f673641a138db) by @icbd ([merge request](gitlab-org/gitlab!72958))
|
||||||
|
- [Skip already imported merge requests on importer](gitlab-org/gitlab@4ac0e6711f357abe1e96ff53091fbaaa7b98ba50) ([merge request](gitlab-org/gitlab!69478))
|
||||||
|
- [Say when MR was approved by me](gitlab-org/gitlab@2846f45a8b547c95d826645be4a10f92c93eeaf6) by @KevSlashNull ([merge request](gitlab-org/gitlab!63174))
|
||||||
|
- [Update clusters index help paths](gitlab-org/gitlab@b74b6367a1b5b67e266e58950e182e03d657baa7) ([merge request](gitlab-org/gitlab!72012))
|
||||||
|
- [Change question marks to Learn More in Settings](gitlab-org/gitlab@1bea1a18a4323239c38ee47e1e1dc81be1cc2950) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73130))
|
||||||
|
- [Enable dependency proxy by default](gitlab-org/gitlab@d9c19aa16db2fae08f8adae58cdfaf7cc4a49814) ([merge request](gitlab-org/gitlab!73290))
|
||||||
|
- [Re-position merge train help icon](gitlab-org/gitlab@00cd1f2e28fe9e881572eddbbe817069f15e2a8f) ([merge request](gitlab-org/gitlab!73184)) **GitLab Enterprise Edition**
|
||||||
|
- [Rename crm related policies and consider feature flag status](gitlab-org/gitlab@9b46e46671dbf2ffd2b7b7b4a8f8507799f8b782) by @leetickett ([merge request](gitlab-org/gitlab!73209))
|
||||||
|
- [Remove skip_legacy_diff_note_callback_on_import feature flag](gitlab-org/gitlab@d2e74ca749f3aaeeb147a0c1788818334f9170df) ([merge request](gitlab-org/gitlab!73207))
|
||||||
|
- [Use secured analyzer image for cluster image scanning](gitlab-org/gitlab@a10845868073e609ada3b2ac6f916581c2bb5cad) ([merge request](gitlab-org/gitlab!72940)) **GitLab Enterprise Edition**
|
||||||
|
- [Edit UI text](gitlab-org/gitlab@88e7205228551acfc08e51c6f09893201c6fae37) ([merge request](gitlab-org/gitlab!71985))
|
||||||
|
- [Add response in Publish a package file endpoint](gitlab-org/gitlab@18148d1dd5b247d9819ff56ca56aa9b82fc3260c) ([merge request](gitlab-org/gitlab!72201))
|
||||||
|
- [Update copy of branches_to_be_notified label](gitlab-org/gitlab@f3dcb70e907d72e6a723d6d91104c537ee9c914a) ([merge request](gitlab-org/gitlab!73098))
|
||||||
|
- [Migrate Terraform template to use rules syntax](gitlab-org/gitlab@a8684074106ba89f88680119a912e036c6393f2d) by @willianpaixao ([merge request](gitlab-org/gitlab!69634))
|
||||||
|
- [Link Pipeline Editor button to open in correct branch](gitlab-org/gitlab@2e42c5b1b9e3d1f074061d9004e0dec48a7105c9) ([merge request](gitlab-org/gitlab!73011))
|
||||||
|
- [Admin: card match can have different holder name](gitlab-org/gitlab@a9d489ca0d3d1f6985abbbd251ef05f9c1431702) ([merge request](gitlab-org/gitlab!72574)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix translation of title of ZenTao](gitlab-org/gitlab@dd0fd0c5051f101c827ad8754a9f2b27e7b92914) by @icbd ([merge request](gitlab-org/gitlab!72960)) **GitLab Enterprise Edition**
|
||||||
|
- [Add "Load more" button to environment dropdown](gitlab-org/gitlab@995503b722f4d4d21adf2274bf0ebee016967168) ([merge request](gitlab-org/gitlab!72731)) **GitLab Enterprise Edition**
|
||||||
|
- [Convert dropdowns in Admin / Visiblity and access to radio buttons](gitlab-org/gitlab@6e0c8d37b0b5b203e855e046ac4300566c1f9ffa) ([merge request](gitlab-org/gitlab!72721))
|
||||||
|
- [Make cosmetic improvements to Geo Admin UI](gitlab-org/gitlab@166df95959632f25b6077a2ae3f17e4e4a1f01b4) ([merge request](gitlab-org/gitlab!72035)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove the left-overs of `use-deprecated-sizes` attributes](gitlab-org/gitlab@fa536eede049a96e6ef94c356981c78e2d4cbdfa) ([merge request](gitlab-org/gitlab!73012))
|
||||||
|
- [Remove stage default from CI schema](gitlab-org/gitlab@99f2bd99e146a62eed4922cc83a22e45f18f5c98) ([merge request](gitlab-org/gitlab!72747))
|
||||||
|
- [Enable feature flag default on](gitlab-org/gitlab@caa0906e7f06d01bf310b4062b998a2d04319d2a) ([merge request](gitlab-org/gitlab!72837))
|
||||||
|
- [Replace registration token in registration modal](gitlab-org/gitlab@972d777103aa0f81efc80ec369fa1263d3863066) ([merge request](gitlab-org/gitlab!72705))
|
||||||
|
- [Move register runner information to a dropdown](gitlab-org/gitlab@e4071f727ba70745f4e48c12e43a7301a79b5bc4) ([merge request](gitlab-org/gitlab!72529))
|
||||||
|
- [Run GraphQL docs rake task on changes](gitlab-org/gitlab@15ceccd30c6dafb4e32aa801ce55207c83814a46) ([merge request](gitlab-org/gitlab!72891))
|
||||||
|
- [Removes cross-joins FF in MergeRequest#environements](gitlab-org/gitlab@48359ce146c03a020904a1b530cf9560dabbcb22) ([merge request](gitlab-org/gitlab!72884))
|
||||||
|
- [Redirect Geo HTTP(s) pulls to different path with missing repo](gitlab-org/gitlab@c98b04348cb7bed4dfe5438fac3808dac0526f95) ([merge request](gitlab-org/gitlab!72881)) **GitLab Enterprise Edition**
|
||||||
|
- [Hide private group name when access request is denied](gitlab-org/gitlab@a5594b08d3e21cbe10cc3aa3a5b2493567a790e5) ([merge request](gitlab-org/gitlab!72708))
|
||||||
|
- [Improve empty state when artifacts fail to load](gitlab-org/gitlab@e9bc002c93a11bf171f1b6ab8e105fd41714ae8e) by @mehulsharma ([merge request](gitlab-org/gitlab!71666))
|
||||||
|
- [Change enforcement label to status](gitlab-org/gitlab@63bdd6720e026dcde8f361a18872aeefb016824c) ([merge request](gitlab-org/gitlab!72394)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove retarget_merge_requests feature flag](gitlab-org/gitlab@8d38b170a6c92d174b8109b9c5ab1491a33705e8) ([merge request](gitlab-org/gitlab!72782))
|
||||||
|
- [Handle MissingPersonalAccessTokenError on Go middleware](gitlab-org/gitlab@0ebc748804404d13b2b37a04e98a2ed6a3741421) ([merge request](gitlab-org/gitlab!72671))
|
||||||
|
- [Add missing labels when password is filled out](gitlab-org/gitlab@e9d27520a5e540e576564768a4b7b3544ce535c2) ([merge request](gitlab-org/gitlab!71970))
|
||||||
|
- [UI polish on the webhook log page](gitlab-org/gitlab@91733c8dcf9ed694b144ee238a982c4a3009801c) ([merge request](gitlab-org/gitlab!71872))
|
||||||
|
- [Fix ZenTao spelling](gitlab-org/gitlab@c9c4b607bccd1d758f171e6cfaf1c1b806b08349) by @icbd ([merge request](gitlab-org/gitlab!72561)) **GitLab Enterprise Edition**
|
||||||
|
- [Update audit events date range filter](gitlab-org/gitlab@ff64ae2df3ee5116405f901d186a8e0d34b53007) ([merge request](gitlab-org/gitlab!71671)) **GitLab Enterprise Edition**
|
||||||
|
- [Improve merge blocked text](gitlab-org/gitlab@94ab56adecf63ecfb7e2d9b3218f27e67d78c789) ([merge request](gitlab-org/gitlab!72520)) **GitLab Enterprise Edition**
|
||||||
|
- [Show CSV and json artifact download on security tab and merge request](gitlab-org/gitlab@f285c4917b5c90e1e2c01be4eb431b9b8cdac0d6) ([merge request](gitlab-org/gitlab!72060))
|
||||||
|
- [Add custom label GitHub status check checkbox](gitlab-org/gitlab@3091c55fe6cce44df58fc5830710672cd0677295) ([merge request](gitlab-org/gitlab!72566)) **GitLab Enterprise Edition**
|
||||||
|
- [Use default timeouts for Jira calls](gitlab-org/gitlab@9d854558304b005bfb385f61ed11dd11a13ab8c8) ([merge request](gitlab-org/gitlab!72571))
|
||||||
|
- [Deduplicate http transport creation](gitlab-org/gitlab@c8a45af37ee4fb99ee84241c78fa3a5331d1c09b) ([merge request](gitlab-org/gitlab!69471))
|
||||||
|
- [Update Terraform.latest.gitlab-ci.yml template](gitlab-org/gitlab@a36e00c1b8a42bf22280734cd21cd26c8323ba43) by @willianpaixao ([merge request](gitlab-org/gitlab!71188))
|
||||||
|
- [Does not update Geo node if running on a primary site](gitlab-org/gitlab@651dd5cf0c671d9ecce213ef3cdb2bae9e7af59c) ([merge request](gitlab-org/gitlab!72530)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove `roadmap_daterange_filter` ff & legacy code](gitlab-org/gitlab@605d5dca2b2dd53364ffa70ce8d70a08ea58acb3) ([merge request](gitlab-org/gitlab!72419)) **GitLab Enterprise Edition**
|
||||||
|
- [Use Gitlab::HTTP in download method](gitlab-org/gitlab@e225ad3e80db5af9e4cae6fbb175e0b47048eb7f) ([merge request](gitlab-org/gitlab!72465))
|
||||||
|
- [Order Deployments by Finish Time](gitlab-org/gitlab@75c9f7e32b16a4b7069b283d2d0c2d7f026507ad) ([merge request](gitlab-org/gitlab!71767))
|
||||||
|
- [Enable flag group_authorized_agents by default](gitlab-org/gitlab@09bb3c0445a5787c97fe26e9f8e83049647bce5e) ([merge request](gitlab-org/gitlab!72319))
|
||||||
|
- [Drop Vulnerabilites that would be invalid as well](gitlab-org/gitlab@317151e170fcdf7d50550a05f701b8b7d7a8f405) ([merge request](gitlab-org/gitlab!71752))
|
||||||
|
- [Rename Import Uploader Extension Allowlist Constant](gitlab-org/gitlab@27bf30563fba8d71ebfe28dd92a13b4633165611) ([merge request](gitlab-org/gitlab!63236))
|
||||||
|
|
||||||
|
### Deprecated (1 change)
|
||||||
|
|
||||||
|
- [Remove include MR description checkbox and deprecate related API field](gitlab-org/gitlab@18819eeca2922f9d52959c99f9d9ce28940e6784) by @trakos ([merge request](gitlab-org/gitlab!64437))
|
||||||
|
|
||||||
|
### Removed (6 changes)
|
||||||
|
|
||||||
|
- [Remove chat_names -> ci_pipeline_chat_data FK](gitlab-org/gitlab@155c821a513aaec5e525ce79f4d35bdaf7dc5670) ([merge request](gitlab-org/gitlab!74404))
|
||||||
|
- [Remove deprecated WIP from GraphQL](gitlab-org/gitlab@29a85cfe949c428afe362c2b8dd2e54b8e497ee7) ([merge request](gitlab-org/gitlab!73349))
|
||||||
|
- [Remove frontend for editing of Jira labels](gitlab-org/gitlab@83e98e05d3843e881d338a3fecdd06b29c49f03a) ([merge request](gitlab-org/gitlab!73668)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove jobs and projects columns](gitlab-org/gitlab@e15a5196f4368ba951e3f8108d2ca058a9af863b) ([merge request](gitlab-org/gitlab!73472))
|
||||||
|
- [Remove the DORA DF feature flag in VSA](gitlab-org/gitlab@8d83b74453f8d4c18f67ee6b4958027bc2970a41) ([merge request](gitlab-org/gitlab!73719))
|
||||||
|
- [Remove product analytics tracking](gitlab-org/gitlab@eae5f187c4d0ab6dcd0168d5db89850740ae0c9b) ([merge request](gitlab-org/gitlab!72042))
|
||||||
|
|
||||||
|
### Security (15 changes)
|
||||||
|
|
||||||
|
- [Add reCAPTCHA to password reset and confirmation email forms](gitlab-org/gitlab@6fa2efdfe258414b2acf41fba11044e997a88ad7) ([merge request](gitlab-org/gitlab!72331))
|
||||||
|
- [Highlight usage of unicode bidi characters](gitlab-org/gitlab@3fb44197195b5789b99a13f7bf482e9a895dfc58)
|
||||||
|
- [Fix dompurify.js to prevent path traversal attacks](gitlab-org/gitlab@bff4673d75cefd130b567f1b02ba3f26d62f983d)
|
||||||
|
- [Refresh authorizations on transfer of groups having project shares](gitlab-org/gitlab@f35d2f170059bf667936b7bca7a72c6f30c677d3)
|
||||||
|
- [Don't allow author to resolve discussions when MR is locked via GraphQL](gitlab-org/gitlab@ba230b385b1246ec19b755a61745de28efcf782e)
|
||||||
|
- [Workhorse: Allow uploading only a single file](gitlab-org/gitlab@254e11b7a8d2ac081cf5602c19646040453af7fc)
|
||||||
|
- [Adding a '[redacted]' to mask private email addresses](gitlab-org/gitlab@b84cf6dd7ddfc1c17c2327150975930669cadf95)
|
||||||
|
- [Avoid decoding the whole tiff image on isTIFF check](gitlab-org/gitlab@486ee8411cde78eb3a510456f3e3e6277f360c45)
|
||||||
|
- [Respect visibility level settings when updating project via API](gitlab-org/gitlab@35a1f06f3748a0da0d50c72db5e18698a7116627)
|
||||||
|
- [Only include visible groups a project is shared with](gitlab-org/gitlab@4d1265e4ac6cda24ae7a12fbb5183e64de0472a8)
|
||||||
|
- [Stop using 'self' in the CSP's frame-src directive](gitlab-org/gitlab@005603b24f2dc92dc78be53c1a0b647657c12c7c) ([merge request](gitlab-org/gitlab!71345))
|
||||||
|
- [Do not display the root password by default](gitlab-org/gitlab@b4b8d80d00780fbb80ecac7506dcdcfb328d4f03)
|
||||||
|
- [Group owners should see SCIM token only once](gitlab-org/gitlab@7cec14e42e40e6489665828ee88bb6fa9f9653c1) **GitLab Enterprise Edition**
|
||||||
|
- [Set PipelineSchedules to inactive](gitlab-org/gitlab@03d2b9600b226593b896a222f291202fff0d40ac)
|
||||||
|
- [Do not allow Applications API to create apps with blank scopes](gitlab-org/gitlab@0c59b0a577915c3ed530ef2dee1543f7251aaaa5)
|
||||||
|
|
||||||
|
### Performance (25 changes)
|
||||||
|
|
||||||
|
- [Enable API v3 `branches/:sha` partial response](gitlab-org/gitlab@7a20e62e39bebbe6ca2fcc2c638e1527a4620af5) ([merge request](gitlab-org/gitlab!74355))
|
||||||
|
- [Avoid cross-joins in PipelinesForMergeRequestFinder](gitlab-org/gitlab@51df5a072802b71d0c69f7a7ea411b83c1429fbf) ([merge request](gitlab-org/gitlab!74293))
|
||||||
|
- [Improve ETag caching for issue discussions](gitlab-org/gitlab@4c550234b090a2de5c47469ea4791fbdc1ef9faf) ([merge request](gitlab-org/gitlab!74272))
|
||||||
|
- [GraphQL user.groups node authorization DB query count optimization](gitlab-org/gitlab@58fd8844fbc4c1abb331213755dc9868dbd6efa2) ([merge request](gitlab-org/gitlab!73121))
|
||||||
|
- [Remove unused index index_for_resource_group on ci_builds](gitlab-org/gitlab@27c4a288e1788fa0b3715717f6bed36ed99fbfef) ([merge request](gitlab-org/gitlab!74018))
|
||||||
|
- [Remove startup JS call for issue notes](gitlab-org/gitlab@62afe29cc5cbead8c0a24ee7de80a7c0b04f106f) ([merge request](gitlab-org/gitlab!74146))
|
||||||
|
- [Use keyset pagination when fixing diff commits](gitlab-org/gitlab@0687ed31ca5f002c96132d0d733d931fdca2d677) ([merge request](gitlab-org/gitlab!73836))
|
||||||
|
- [Enable workhorse_use_sidechannel by default](gitlab-org/gitlab@a09edca131894868c060ab9e2b1b5d99a9e6a3c1) ([merge request](gitlab-org/gitlab!73536))
|
||||||
|
- [Omit query params for discussions.json](gitlab-org/gitlab@31aa4311d1429a39d936b368c56d0c926497516e) ([merge request](gitlab-org/gitlab!73089))
|
||||||
|
- [Add index to events table support UMAU metric](gitlab-org/gitlab@8b781a35d79e5214d3195c9f3e135c359d32355f) ([merge request](gitlab-org/gitlab!73273))
|
||||||
|
- [Use new worker/service to refresh authorizations of project members](gitlab-org/gitlab@f28aeac8c21d39a02e18524efbdb5c5b9563e3e9) ([merge request](gitlab-org/gitlab!73337))
|
||||||
|
- [Add an index on vulnerability_occurrence_pipelines](gitlab-org/gitlab@a09fb11d6fccb7fb4d951717016df521b147db36) ([merge request](gitlab-org/gitlab!73255))
|
||||||
|
- [Add index for cluster_id in vulnerability_occurrences location](gitlab-org/gitlab@3b6bc848186e2e17fad3ef3d6247317c5240d381) ([merge request](gitlab-org/gitlab!72882))
|
||||||
|
- [Default enable new_graphql_keyset_pagination](gitlab-org/gitlab@6032662ecba69405c891e8aa9fe6dc983fe0b72f) ([merge request](gitlab-org/gitlab!72942))
|
||||||
|
- [Omit WHERE clause for NOT labels filter when empty](gitlab-org/gitlab@dce09398e054c26d9aae5fce884e34af62e9055d) ([merge request](gitlab-org/gitlab!73230))
|
||||||
|
- [Remove releases author_id index](gitlab-org/gitlab@45f7b0d53fba3b2f8beca308b77f79462e16c43a) ([merge request](gitlab-org/gitlab!72993))
|
||||||
|
- [Optimize JIRA ref lookup](gitlab-org/gitlab@1993feb5e100c04f33c876ba1b9b7a9083227d8a) ([merge request](gitlab-org/gitlab!72739))
|
||||||
|
- [Recreate broken ci_builds index](gitlab-org/gitlab@3c69765c0aaf8360171d8fb929eb62a1421e5368) ([merge request](gitlab-org/gitlab!71990))
|
||||||
|
- [Fix N+1 query in VulnerabilitiesResolver](gitlab-org/gitlab@17d45deea3692293f20b9ce17024d69483966f75) ([merge request](gitlab-org/gitlab!72985)) **GitLab Enterprise Edition**
|
||||||
|
- [Cleanup update_deployment_after_transaction_commit feature flag](gitlab-org/gitlab@f823b146446019eb6b0f6f17214ba0bc7e36d566) ([merge request](gitlab-org/gitlab!72755))
|
||||||
|
- [Search for group descendants through a btree](gitlab-org/gitlab@ec0cdd21e7b09b4e06aba529f4b9f8813a133a17) ([merge request](gitlab-org/gitlab!69535))
|
||||||
|
- [Improve TBT on file source view](gitlab-org/gitlab@95dae81e11ab95bf8793471b00e5213dcffbddf8) ([merge request](gitlab-org/gitlab!72606))
|
||||||
|
- [Cache CI variables used for rules evaluation](gitlab-org/gitlab@084f1ad54b0eafa53d21c83e002efc005d487e4a) ([merge request](gitlab-org/gitlab!72602))
|
||||||
|
- [Speed up Sidekiq size limiter middleware](gitlab-org/gitlab@af9327e6ea6e1915aa4f392ac0519c51f41de965) ([merge request](gitlab-org/gitlab!72435))
|
||||||
|
- [Remove use of Redis multi in Sidekiq client](gitlab-org/gitlab@e2afebc199f13f5d9321d5883e47916d3d0a7bbf) ([merge request](gitlab-org/gitlab!72473))
|
||||||
|
|
||||||
|
### Other (78 changes)
|
||||||
|
|
||||||
|
- [Fix the offenses introduced by Style/OpenStructUse](gitlab-org/gitlab@8f392435bbc402476b06b6ca197d388398c8b3bb) by @edith007 ([merge request](gitlab-org/gitlab!74197))
|
||||||
|
- [Fix OpenStruct use](gitlab-org/gitlab@29afe4ac550e25ef377298e117af18c49d8ea7d5) by @mehulsharma ([merge request](gitlab-org/gitlab!74415)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix OpenStruct use](gitlab-org/gitlab@cab0eb279117f1e349d0fffda8686c07fcfada7f) by @mehulsharma ([merge request](gitlab-org/gitlab!74620))
|
||||||
|
- [Set total of Progress bar nil when replication is disabled](gitlab-org/gitlab@64716b33b1a79c1d4991d23324cc8625c8dee47d) by @edith007 ([merge request](gitlab-org/gitlab!68303)) **GitLab Enterprise Edition**
|
||||||
|
- [Add post deploy migration to remove open_project_data](gitlab-org/gitlab@e5543c4b536b41a82d78500464648157bbbc51e8) by @lenikadali ([merge request](gitlab-org/gitlab!71116))
|
||||||
|
- [Create pipeline trigger application limits](gitlab-org/gitlab@e7b6e65aff212a749fb40232a79c4fc4089ab805) ([merge request](gitlab-org/gitlab!73985))
|
||||||
|
- [Convert admin users page tabs to Pajamas](gitlab-org/gitlab@b82a4bd4a65a0788a643b10815aca79cb1a256e1) ([merge request](gitlab-org/gitlab!74011))
|
||||||
|
- [Geo: Remove legacy code for upload sync](gitlab-org/gitlab@3fc77c2bf6828f8f3bb602324085644e02e14b90) ([merge request](gitlab-org/gitlab!72714))
|
||||||
|
- [Cleanup feature flag gitaly_tags_finder](gitlab-org/gitlab@ede40667b60504b6b69108875d1c1551ea8a452f) ([merge request](gitlab-org/gitlab!74406))
|
||||||
|
- [Remove `paginated_tree_graphql_query` feature flag](gitlab-org/gitlab@af6c4bf7f749bce63ec8bf4767175c55c34ff45e) ([merge request](gitlab-org/gitlab!72512))
|
||||||
|
- [Convert labels page tabs to Pajamas](gitlab-org/gitlab@ad9a628a3139c458c2e0e551a95025a00b99d7e0) ([merge request](gitlab-org/gitlab!74006))
|
||||||
|
- [Set user's highlight theme for the Blame page during SSR](gitlab-org/gitlab@3d9da5c498baafe93f8774b69107b519dcaa4503) by @cyberap ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/74335))
|
||||||
|
- [Convert projects dashboard tabs to Pajamas](gitlab-org/gitlab@fefe70a1826261e0d943032f4db7f1e61f4c0ffc) ([merge request](gitlab-org/gitlab!74004))
|
||||||
|
- [Convert snippets page tabs to Pajamas](gitlab-org/gitlab@f151421ec1c75750c3e736c500e4c197e51dab0e) ([merge request](gitlab-org/gitlab!73995))
|
||||||
|
- [Convert projects explore page tabs to Pajamas](gitlab-org/gitlab@f599bf0ccb146cfcb84f655ecbd2a6b9d8546774) ([merge request](gitlab-org/gitlab!74007))
|
||||||
|
- [Convert admin users page tabs to Pajamas](gitlab-org/gitlab@c96a99d2f8addd95540bd40b203a520ff222ddf6) ([merge request](gitlab-org/gitlab!74014))
|
||||||
|
- [Convert pipeline schedules page tabs to Pajamas](gitlab-org/gitlab@60ff426c309e191f7b1af8586906b5c3d4ff33a7) ([merge request](gitlab-org/gitlab!74002))
|
||||||
|
- [Convert commit tabs to pajamas](gitlab-org/gitlab@ce5e44e69c8ce593bbc7fe6e15ddd90d0e83eba8) ([merge request](gitlab-org/gitlab!73970))
|
||||||
|
- [Decouple group's storage table from feature flag](gitlab-org/gitlab@0aa7613a05c05dc99d3277495197367dcb617624) ([merge request](gitlab-org/gitlab!73237)) **GitLab Enterprise Edition**
|
||||||
|
- [Add with_highest_role_minimal_access to statistics](gitlab-org/gitlab@15b863d07246e475ba7627726cf6b701f1a4e925) ([merge request](gitlab-org/gitlab!73651))
|
||||||
|
- [Update GlTab helpers](gitlab-org/gitlab@09d95dcac1938ccf49e7cfed4fcbbe6a3dfcb280) ([merge request](gitlab-org/gitlab!74181))
|
||||||
|
- [Hide details for invited members in seats usage](gitlab-org/gitlab@5601765b04a4aaadde4e40f24591fc4e8ef5df63) ([merge request](gitlab-org/gitlab!74224)) **GitLab Enterprise Edition**
|
||||||
|
- [Adds margin to billings page](gitlab-org/gitlab@e0de376b574c1801e76acf036722f4595a5f2a60) ([merge request](gitlab-org/gitlab!74221)) **GitLab Enterprise Edition**
|
||||||
|
- [Enabling jupyter_clean_diff by default](gitlab-org/gitlab@a578853e0d21f8dcfec3c176f8e51d0b5b3e7df7) ([merge request](gitlab-org/gitlab!74187))
|
||||||
|
- [Remove report_on_long_redis_durations flag](gitlab-org/gitlab@11eb211ee655d9d95b02275b678c431d5e2c36b5) ([merge request](gitlab-org/gitlab!74183))
|
||||||
|
- [Replace dotenv constants with application limits](gitlab-org/gitlab@8fc6799a56220d78d6910220d55aac9525f905fe) ([merge request](gitlab-org/gitlab!73855))
|
||||||
|
- [Convert search tabs to pajamas](gitlab-org/gitlab@c0d202b20fefd7f06c6152b07640844c62369043) ([merge request](gitlab-org/gitlab!73983))
|
||||||
|
- [Convert blob editor tabs to pajamas](gitlab-org/gitlab@77f6de74044cf0f5b61f9dafe68281bfb1d90058) ([merge request](gitlab-org/gitlab!73993))
|
||||||
|
- [Convert markdown field tabs to pajamas](gitlab-org/gitlab@b288ae83d010442b89ecd55ff64508c1446d7411) ([merge request](gitlab-org/gitlab!73987))
|
||||||
|
- [Convert credential inventory tabs to pajamas](gitlab-org/gitlab@389c65bdcaaa80ea06c4004c94ec5aa134ae45a9) ([merge request](gitlab-org/gitlab!73974)) **GitLab Enterprise Edition**
|
||||||
|
- [Migrate requirement to work items](gitlab-org/gitlab@d787d48626a92fcd545c10947b9c9c5bc0e1347e) ([merge request](gitlab-org/gitlab!71778))
|
||||||
|
- [Convert explore tabs to pajamas](gitlab-org/gitlab@e043fff6625130c7b1f144056f11f5daf0220557) ([merge request](gitlab-org/gitlab!73956))
|
||||||
|
- [Convert explore tabs to pajamas](gitlab-org/gitlab@e406816c3f528621123f9e7f1a6d111f90a08bc2) ([merge request](gitlab-org/gitlab!73959))
|
||||||
|
- [Remove rate limiter feature flag](gitlab-org/gitlab@395d7ca5a95e1e0e6dd2c0af139f93d7cf057df6) ([merge request](gitlab-org/gitlab!73939))
|
||||||
|
- [Improve Blame Page rendering performance](gitlab-org/gitlab@32e45383f01517c687294b2e72aeb8f9f9f74a97) by @cyberap ([merge request](gitlab-org/gitlab!73885))
|
||||||
|
- [Convert product analytics tabs to pajamas](gitlab-org/gitlab@8c18ed02a7d1020c233ab767e743dc4455ddcf37) ([merge request](gitlab-org/gitlab!73862))
|
||||||
|
- [Drop ci_build_trace_sections table and related](gitlab-org/gitlab@b24c3873de1f99179ebfd115ce44ee2fef993b6b) ([merge request](gitlab-org/gitlab!73841))
|
||||||
|
- [Changed the chronological order of Job history sequence on CI Job](gitlab-org/gitlab@729f105ee2b2ee65d28c0e6ebd5aed5372a7af66) by @edith007 ([merge request](gitlab-org/gitlab!68753))
|
||||||
|
- [Remove FF ci_create_external_pr_pipeline_async](gitlab-org/gitlab@cb49dc14536d3b1c7837a8e30c5f7b15792f5667) ([merge request](gitlab-org/gitlab!73828))
|
||||||
|
- [Remove FF ci_new_artifact_file_reader](gitlab-org/gitlab@ca8e9af383be73b826a9df6cb12682661860ca54) ([merge request](gitlab-org/gitlab!73763))
|
||||||
|
- [Fix the Style/OpenStructUse Cop offense for Guardfile](gitlab-org/gitlab@ad3b51bbdb948f37926a32ceaf395adee8049457) by @edith007 ([merge request](gitlab-org/gitlab!65386))
|
||||||
|
- [Remove the packages_remove_cross_joins_to_pipelines feature flag](gitlab-org/gitlab@aad1b85da4e13e357782bfa1036b1a6c0a53cbba) ([merge request](gitlab-org/gitlab!73751))
|
||||||
|
- [Remove the container_registry_expiration_policies_caching feature flag](gitlab-org/gitlab@7cced2645d8ee55c02d9ebf0e5b028bb006e546d) ([merge request](gitlab-org/gitlab!73737))
|
||||||
|
- [Remove include_sti_condition flag](gitlab-org/gitlab@a4b4fbfe224232cc8550b3db92240e5d5f16b053) ([merge request](gitlab-org/gitlab!73734))
|
||||||
|
- [Expose 'blocked' attribute on epic issues endpoint](gitlab-org/gitlab@036e9852a72dcc8f43bb805afcf13db50a4d4316) ([merge request](gitlab-org/gitlab!73308)) **GitLab Enterprise Edition**
|
||||||
|
- [Removed new_customersdot_staging_url feature flag](gitlab-org/gitlab@35eda894e1cd509380ff91461381df65e06004d5) ([merge request](gitlab-org/gitlab!73666))
|
||||||
|
- [Remove variable_inside_variable feature flag](gitlab-org/gitlab@9e60bd9a471849eaaff7aa954afc714778f245aa) ([merge request](gitlab-org/gitlab!73662))
|
||||||
|
- [Add spacing at top of project/group blank new forms](gitlab-org/gitlab@b9353cee2290e603b214e2fb91b43f263d40166a) ([merge request](gitlab-org/gitlab!73205))
|
||||||
|
- [Exclude ProjectNamespaces from GraphQL namespace results](gitlab-org/gitlab@baf4ef770f03a1234224d29c88731791b8c3a3b2) ([merge request](gitlab-org/gitlab!73351))
|
||||||
|
- [Pass formats explicitly when rendering .md.erb](gitlab-org/gitlab@4a307a690bd6aeed824317056a0dde14bfdc7bd4) by @edith007 ([merge request](gitlab-org/gitlab!73420)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove pipeline association from Vulnerabilities::Finding](gitlab-org/gitlab@84b9c5bcaa988e30501632c66de068fbfa489673) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73115)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove release_evidence feature flag](gitlab-org/gitlab@8d9f643b380b72d14ba6c0fa7d0bf789291d61f4) ([merge request](gitlab-org/gitlab!73503))
|
||||||
|
- [Fix the offences introduced by Performance/OpenStruct](gitlab-org/gitlab@4b9efcaf9bed5895d312679ee60c8aa1537900d7) by @edith007 ([merge request](gitlab-org/gitlab!70900))
|
||||||
|
- [Add icons to project's storage table](gitlab-org/gitlab@450f6c19708f0fb5d95800f841560ad3d56d2e8d) ([merge request](gitlab-org/gitlab!72524))
|
||||||
|
- [Cleanup unused tagging records](gitlab-org/gitlab@2cd94915d477b0e6fc7199a13a6a66c1ca015a37) ([merge request](gitlab-org/gitlab!73260))
|
||||||
|
- [Backfill default namespace as User namespace](gitlab-org/gitlab@f9d95243da3e0f9006fe4dcdfda8cc9492655970) ([merge request](gitlab-org/gitlab!71510))
|
||||||
|
- [Pass formats explicitly when rendering svg icons](gitlab-org/gitlab@2852c6055781cab52202cb32deb0cc2e6462eaac) by @edith007 ([merge request](gitlab-org/gitlab!73418))
|
||||||
|
- [Pass formats explicitly when rendering svg icons](gitlab-org/gitlab@6f9b1968774a9b87a4cd9b69dba6d724148270e1) by @edith007 ([merge request](gitlab-org/gitlab!73417))
|
||||||
|
- [Pass formats explicitly when rendering svg icons](gitlab-org/gitlab@e0a3233df796f3d9f35c977024c3dd13c0cd3f89) by @edith007 ([merge request](gitlab-org/gitlab!73415))
|
||||||
|
- [Enable quarantined service ping metrics](gitlab-org/gitlab@7197509e00b6929f88da465ec9dba59ff0d2311d) ([merge request](gitlab-org/gitlab!73348)) **GitLab Enterprise Edition**
|
||||||
|
- [Replace v-html with v-safe-html to improve frontend security posture](gitlab-org/gitlab@809b12710d0e65671cddfc8a6c8a88fe5d48c30f) by @edith007 ([merge request](gitlab-org/gitlab!72912))
|
||||||
|
- [Improve User Exprience for Blame page](gitlab-org/gitlab@53ec56009b1092a58e57fe003eb91f2797e53b90) by @cyberap ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/73173))
|
||||||
|
- [Mark all time events ServicePing metric as broken](gitlab-org/gitlab@3af1f00ff62be735735d3fce875c1f9a09276631) ([merge request](gitlab-org/gitlab!73266))
|
||||||
|
- [Restore MR to populate MR diff commit users](gitlab-org/gitlab@422f65be80087c0f2c7d83186e7b866d70870570) ([merge request](gitlab-org/gitlab!73068))
|
||||||
|
- [Fixing the deprecation warning as using `.` in template has deprecated](gitlab-org/gitlab@58d603bd3dfeddb0194d23c7df7e99cf869c50e1) by @edith007 ([merge request](gitlab-org/gitlab!72842))
|
||||||
|
- [Drop redundant broken index](gitlab-org/gitlab@6f061f0b9c33c666769ef16a993c2c6ab053a9c7) ([merge request](gitlab-org/gitlab!72889))
|
||||||
|
- [Refactor protected paths UI and documentation](gitlab-org/gitlab@0f8fc0b0f2cac8d1deca5a6f9d671db7564cb761) ([merge request](gitlab-org/gitlab!72157))
|
||||||
|
- [Update GitLab Runner Helm Chart to 0.34.0](gitlab-org/gitlab@39538ec722da0fe70d5b570bde2762cc0f03700e) ([merge request](gitlab-org/gitlab!73001))
|
||||||
|
- [Update gitlab-dangerfiles to 2.3.1](gitlab-org/gitlab@cd8dd8e4a9151e6e487efb045ced15e2cca51b8a) ([merge request](gitlab-org/gitlab!72422))
|
||||||
|
- [Remove the dast_on_demand_scans_scheduler feature flag](gitlab-org/gitlab@e12031e32b4e24dc36ea246d6fa4e433cc340887) ([merge request](gitlab-org/gitlab!72953)) **GitLab Enterprise Edition**
|
||||||
|
- [Fix storage row line height](gitlab-org/gitlab@ebb97b803461a0c0007ff70e202427814e9cf7d9) ([merge request](gitlab-org/gitlab!72861)) **GitLab Enterprise Edition**
|
||||||
|
- [Remove managed cluster alerts feature flag](gitlab-org/gitlab@e76d58137167358d2a934846cbdca299d9ba2e5e) ([merge request](gitlab-org/gitlab!63829))
|
||||||
|
- [Schedule migration to remove duplicate Findings](gitlab-org/gitlab@59da2c5664f161dc8cbd1eed5b7afb3fce43b65c) ([merge request](gitlab-org/gitlab!72528))
|
||||||
|
- [Show all storage types in project's storage usage](gitlab-org/gitlab@8d5273b22a395ddcfc901d2c82db242ef17be938) ([merge request](gitlab-org/gitlab!72582))
|
||||||
|
- [Remove ci_synchronous_artifact_parsing feature flag](gitlab-org/gitlab@06c45bd2db99fe8fda85b2d383a6472c104137f6) ([merge request](gitlab-org/gitlab!72618))
|
||||||
|
- [Add pipeline artifacts, packages and uploads size to group REST API](gitlab-org/gitlab@fc6fdede8e459e83df4d048868ee96f3e1a49489) by @guillaume.chauvel ([merge request](gitlab-org/gitlab!72075))
|
||||||
|
- [Add pipeline artifacts and uploads sizes to project REST API](gitlab-org/gitlab@58d66f28faf42ae98ca11ff1ba0bdd9180e988ad) by @guillaume.chauvel ([merge request](gitlab-org/gitlab!72075))
|
||||||
|
- [Remove not used parameter from epics finder](gitlab-org/gitlab@49fce172b57b2f376a114726b1dd1900fe36a238) ([merge request](gitlab-org/gitlab!72285)) **GitLab Enterprise Edition**
|
||||||
|
|
||||||
## 14.4.2 (2021-11-08)
|
## 14.4.2 (2021-11-08)
|
||||||
|
|
||||||
|
@ -440,6 +967,24 @@ No changes.
|
||||||
- [Cleanup bigint conversion for ci_builds](gitlab-org/gitlab@176992aa2b2e76b22637a07d5bafbd6541324a7d) ([merge request](gitlab-org/gitlab!70351))
|
- [Cleanup bigint conversion for ci_builds](gitlab-org/gitlab@176992aa2b2e76b22637a07d5bafbd6541324a7d) ([merge request](gitlab-org/gitlab!70351))
|
||||||
- [Drop support for data-track-event](gitlab-org/gitlab@ac6027fbef6adf41643412a84945fda6f15c9666) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70234))
|
- [Drop support for data-track-event](gitlab-org/gitlab@ac6027fbef6adf41643412a84945fda6f15c9666) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/70234))
|
||||||
|
|
||||||
|
## 14.3.4 (2021-10-28)
|
||||||
|
|
||||||
|
### Security (13 changes)
|
||||||
|
|
||||||
|
- [Highlight usage of unicode bidi characters](gitlab-org/security/gitlab@0b9bcafa73bc12ad873f75584b993f7b94f1f2e7) ([merge request](gitlab-org/security/gitlab!1938))
|
||||||
|
- [Fix dompurify.js to prevent path traversal attacks](gitlab-org/security/gitlab@6599afd4d7357ab356fcb773af19f8388978b3ed) ([merge request](gitlab-org/security/gitlab!1930))
|
||||||
|
- [Refresh authorizations on transfer of groups having project shares](gitlab-org/security/gitlab@faad71f44a1b1048b73897d450c923a18ec18c0b) ([merge request](gitlab-org/security/gitlab!1917))
|
||||||
|
- [Do not allow Applications API to create apps with blank scopes](gitlab-org/security/gitlab@293931500c84ef7ea9a2117d3ddf094f8ac15dcf) ([merge request](gitlab-org/security/gitlab!1923))
|
||||||
|
- [Don't allow author to resolve discussions when MR is locked via GraphQL](gitlab-org/security/gitlab@5027cb2b0303645a921b95d324d3d55dcf7632e4) ([merge request](gitlab-org/security/gitlab!1920))
|
||||||
|
- [Workhorse: Allow uploading only a single file](gitlab-org/security/gitlab@c18c2ddfa34a4c3e476136ab3eba9be7f265ad59) ([merge request](gitlab-org/security/gitlab!1914))
|
||||||
|
- [Group owners should see SCIM token only once](gitlab-org/security/gitlab@3d6664461da720fb256d8e139961b383e33a3b90) ([merge request](gitlab-org/security/gitlab!1907)) **GitLab Enterprise Edition**
|
||||||
|
- [Respect visibility level settings when updating project via API](gitlab-org/security/gitlab@124ca62c02bfa8ef6f7de7b328f80756fd01c052) ([merge request](gitlab-org/security/gitlab!1904))
|
||||||
|
- [Avoid decoding the whole tiff image on isTIFF check](gitlab-org/security/gitlab@8e6ffd52f50170a5cf2761e50a3d6efaca5fe64f) ([merge request](gitlab-org/security/gitlab!1900))
|
||||||
|
- [Adding a '[redacted]' to mask private email addresses](gitlab-org/security/gitlab@6f2a2b2240eb7590bbc773f35d3927d4854a31b5) ([merge request](gitlab-org/security/gitlab!1894))
|
||||||
|
- [Do not display the root password by default](gitlab-org/security/gitlab@87893548183fc4a111e12c0bdb3e409175a41668) ([merge request](gitlab-org/security/gitlab!1803))
|
||||||
|
- [Set PipelineSchedules to inactive](gitlab-org/security/gitlab@0e77e1cd938f876f3e9c049a84486c8c90cd0f3f) ([merge request](gitlab-org/security/gitlab!1879))
|
||||||
|
- [Remove external_webhook_token from exported project](gitlab-org/security/gitlab@1362f7481aad5e4295da11f0db53e31600c7c7b5) ([merge request](gitlab-org/security/gitlab!1866))
|
||||||
|
|
||||||
## 14.3.3 (2021-10-12)
|
## 14.3.3 (2021-10-12)
|
||||||
|
|
||||||
### Fixed (3 changes)
|
### Fixed (3 changes)
|
||||||
|
@ -988,6 +1533,24 @@ No changes.
|
||||||
- [Remove the FF ci_reset_bridge_with_subsequent_jobs](gitlab-org/gitlab@a4a75095b9b0250d0b1bdadea90c8a4cd24449b2) ([merge request](gitlab-org/gitlab!68295))
|
- [Remove the FF ci_reset_bridge_with_subsequent_jobs](gitlab-org/gitlab@a4a75095b9b0250d0b1bdadea90c8a4cd24449b2) ([merge request](gitlab-org/gitlab!68295))
|
||||||
- [Removes ci_same_stage_job_needs ff](gitlab-org/gitlab@5e509cf7aa90041a541b19dda563120a359f0bf9) ([merge request](gitlab-org/gitlab!68041))
|
- [Removes ci_same_stage_job_needs ff](gitlab-org/gitlab@5e509cf7aa90041a541b19dda563120a359f0bf9) ([merge request](gitlab-org/gitlab!68041))
|
||||||
|
|
||||||
|
## 14.2.6 (2021-10-28)
|
||||||
|
|
||||||
|
### Security (13 changes)
|
||||||
|
|
||||||
|
- [Highlight usage of unicode bidi characters](gitlab-org/security/gitlab@18a768bb3cd19b6dc780bb85d91a93605ec8aa4f) ([merge request](gitlab-org/security/gitlab!1939))
|
||||||
|
- [Fix dompurify.js to prevent path traversal attacks](gitlab-org/security/gitlab@cfd7c715162c22060b9b80268ef501a9e604421a) ([merge request](gitlab-org/security/gitlab!1931))
|
||||||
|
- [Refresh authorizations on transfer of groups having project shares](gitlab-org/security/gitlab@3fc08eb869156a090b015e78da79c8ced16a7162) ([merge request](gitlab-org/security/gitlab!1918))
|
||||||
|
- [Do not allow Applications API to create apps with blank scopes](gitlab-org/security/gitlab@c4ffc8c0ee5356bcb9b76dbfa92517589b4225a8) ([merge request](gitlab-org/security/gitlab!1924))
|
||||||
|
- [Don't allow author to resolve discussions when MR is locked via GraphQL](gitlab-org/security/gitlab@fe2d0b6f250b60619da97f162c93c9e645daf4af) ([merge request](gitlab-org/security/gitlab!1921))
|
||||||
|
- [Workhorse: Allow uploading only a single file](gitlab-org/security/gitlab@89b04599592b7dfc0e4883cfde5d3ecd9ea855b2) ([merge request](gitlab-org/security/gitlab!1915))
|
||||||
|
- [Group owners should see SCIM token only once](gitlab-org/security/gitlab@d52c1e41f38039db075a7a3418b8eb9ed8474c2a) ([merge request](gitlab-org/security/gitlab!1908)) **GitLab Enterprise Edition**
|
||||||
|
- [Respect visibility level settings when updating project via API](gitlab-org/security/gitlab@3051d6a00d1a56133a77ecd24313bafb4565d576) ([merge request](gitlab-org/security/gitlab!1905))
|
||||||
|
- [Avoid decoding the whole tiff image on isTIFF check](gitlab-org/security/gitlab@bab7f45def8fc81fe4b0961a21b4c90a60358ff9) ([merge request](gitlab-org/security/gitlab!1901))
|
||||||
|
- [Adding a '[redacted]' to mask private email addresses](gitlab-org/security/gitlab@8eb9749f40b87b9b49b034bceb263219a4d3b114) ([merge request](gitlab-org/security/gitlab!1895))
|
||||||
|
- [Do not display the root password by default](gitlab-org/security/gitlab@4ccf08b6645b9f616657edd266d9d31e3602d170) ([merge request](gitlab-org/security/gitlab!1802))
|
||||||
|
- [Set PipelineSchedules to inactive](gitlab-org/security/gitlab@ebee16945325d22ceb5c07b7ba48df6fd0b2f067) ([merge request](gitlab-org/security/gitlab!1878))
|
||||||
|
- [Remove external_webhook_token from exported project](gitlab-org/security/gitlab@f3ef12185902f3ed5c9d62ffce07418fd704a753) ([merge request](gitlab-org/security/gitlab!1865))
|
||||||
|
|
||||||
## 14.2.5 (2021-09-30)
|
## 14.2.5 (2021-09-30)
|
||||||
|
|
||||||
### Security (28 changes)
|
### Security (28 changes)
|
||||||
|
@ -1612,6 +2175,19 @@ No changes.
|
||||||
- [Add helpful text to URL group validation and limit text](gitlab-org/gitlab@59a5a6266cb0d5434596170ffa36e4e74b8d2c2c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65369)) **GitLab Enterprise Edition**
|
- [Add helpful text to URL group validation and limit text](gitlab-org/gitlab@59a5a6266cb0d5434596170ffa36e4e74b8d2c2c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65369)) **GitLab Enterprise Edition**
|
||||||
- [Refactor external storage admin area configuration UI and docs](gitlab-org/gitlab@497ba4fc8f4ec1d234c9f5f1ec5c69712b8c7cb3) ([merge request](gitlab-org/gitlab!66219))
|
- [Refactor external storage admin area configuration UI and docs](gitlab-org/gitlab@497ba4fc8f4ec1d234c9f5f1ec5c69712b8c7cb3) ([merge request](gitlab-org/gitlab!66219))
|
||||||
|
|
||||||
|
## 14.1.8 (2021-11-15)
|
||||||
|
|
||||||
|
### Fixed (1 change)
|
||||||
|
|
||||||
|
- [Prevent Git operations from checking replication lag on non-Geo-secondary sites](gitlab-org/gitlab@5abc66f89524b63873b0ce96b0f78c0acc2687f6) ([merge request](gitlab-org/gitlab!73980)) **GitLab Enterprise Edition**
|
||||||
|
|
||||||
|
### Changed (4 changes)
|
||||||
|
|
||||||
|
- [Geo: Alternate redownload and normal design sync attempts](gitlab-org/gitlab@c23c94e9d791770fd169723845b12097b8512a9e) ([merge request](gitlab-org/gitlab!73980)) **GitLab Enterprise Edition**
|
||||||
|
- [Geo: Alternate redownload and normal SSF sync attempts](gitlab-org/gitlab@5aba12770829d43041ef4307049ed500c02b1d77) ([merge request](gitlab-org/gitlab!73980)) **GitLab Enterprise Edition**
|
||||||
|
- [Geo: Alternate redownload and normal project syncs](gitlab-org/gitlab@4d3a5798e1f136a027c0b7aab6a35afb3c207ce7) ([merge request](gitlab-org/gitlab!73980)) **GitLab Enterprise Edition**
|
||||||
|
- [Geo: Reduce frequency of redownload attempts](gitlab-org/gitlab@795271787c70b7c92a85daa253d2d61561603443) ([merge request](gitlab-org/gitlab!73980)) **GitLab Enterprise Edition**
|
||||||
|
|
||||||
## 14.1.7 (2021-09-30)
|
## 14.1.7 (2021-09-30)
|
||||||
|
|
||||||
### Security (28 changes)
|
### Security (28 changes)
|
||||||
|
@ -2288,6 +2864,15 @@ No changes.
|
||||||
- [Remove diffs gradual load feature flag](gitlab-org/gitlab@027d7c4327b5b6205a84281239027273517bf81b) ([merge request](gitlab-org/gitlab!55478))
|
- [Remove diffs gradual load feature flag](gitlab-org/gitlab@027d7c4327b5b6205a84281239027273517bf81b) ([merge request](gitlab-org/gitlab!55478))
|
||||||
- [Remove partial index for Hashed Storage migration](gitlab-org/gitlab@3ed017a1023d7b0941a7606b69e6caee8d22f15c) ([merge request](gitlab-org/gitlab!62920))
|
- [Remove partial index for Hashed Storage migration](gitlab-org/gitlab@3ed017a1023d7b0941a7606b69e6caee8d22f15c) ([merge request](gitlab-org/gitlab!62920))
|
||||||
|
|
||||||
|
## 14.0.12 (2021-11-05)
|
||||||
|
|
||||||
|
### Changed (4 changes)
|
||||||
|
|
||||||
|
- [Geo: Alternate redownload and normal design sync attempts](gitlab-org/gitlab@ed34172e5c7425316480efb732a9429e93e81017) ([merge request](gitlab-org/gitlab!73722)) **GitLab Enterprise Edition**
|
||||||
|
- [Geo: Alternate redownload and normal SSF sync attempts](gitlab-org/gitlab@c0f2f40b98c4b9fc72c21c474a2224e045263ea2) ([merge request](gitlab-org/gitlab!73722)) **GitLab Enterprise Edition**
|
||||||
|
- [Geo: Alternate redownload and normal project syncs](gitlab-org/gitlab@6370a7258719d5eb0ad83c54383ecb7f4fd54fc2) ([merge request](gitlab-org/gitlab!73722)) **GitLab Enterprise Edition**
|
||||||
|
- [Geo: Reduce frequency of redownload attempts](gitlab-org/gitlab@1bcd41f28733b01286a42689857f6530c0805186) ([merge request](gitlab-org/gitlab!73722)) **GitLab Enterprise Edition**
|
||||||
|
|
||||||
## 14.0.11 (2021-09-23)
|
## 14.0.11 (2021-09-23)
|
||||||
|
|
||||||
### Fixed (1 change)
|
### Fixed (1 change)
|
||||||
|
@ -3059,6 +3644,21 @@ No changes.
|
||||||
- [Add missing metrics information](gitlab-org/gitlab@89cd7fe3b95323e635b2d73e08549b2e6153dc4d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61772/edit))
|
- [Add missing metrics information](gitlab-org/gitlab@89cd7fe3b95323e635b2d73e08549b2e6153dc4d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61772/edit))
|
||||||
- [Track usage of the resolve UI](gitlab-org/gitlab@35c8e30fce288cecefcf2f7c0077d4608e696519) ([merge request](gitlab-org/gitlab!61654))
|
- [Track usage of the resolve UI](gitlab-org/gitlab@35c8e30fce288cecefcf2f7c0077d4608e696519) ([merge request](gitlab-org/gitlab!61654))
|
||||||
|
|
||||||
|
## 13.12.15 (2021-11-03)
|
||||||
|
|
||||||
|
### Fixed (2 changes)
|
||||||
|
|
||||||
|
- [Allow nil for remaining ci cd settings](gitlab-org/gitlab@896fd7ecf23714fa9f710efa4af245a26c677dce) ([merge request](gitlab-org/gitlab!73522))
|
||||||
|
- [Allow nil on delegated CI/CD settings](gitlab-org/gitlab@d57a9ea79080fc473eb54c0ee696a50fd270e8a4) ([merge request](gitlab-org/gitlab!73522))
|
||||||
|
|
||||||
|
## 13.12.14 (2021-11-03)
|
||||||
|
|
||||||
|
This version has been skipped due to QA problems.
|
||||||
|
|
||||||
|
## 13.12.13 (2021-10-29)
|
||||||
|
|
||||||
|
This version has been skipped due to QA problems.
|
||||||
|
|
||||||
## 13.12.12 (2021-09-21)
|
## 13.12.12 (2021-09-21)
|
||||||
|
|
||||||
No changes.
|
No changes.
|
||||||
|
|
17
Dangerfile
|
@ -17,6 +17,21 @@ end
|
||||||
|
|
||||||
anything_to_post = status_report.values.any? { |data| data.any? }
|
anything_to_post = status_report.values.any? { |data| data.any? }
|
||||||
|
|
||||||
if helper.ci? && anything_to_post
|
return unless helper.ci?
|
||||||
|
|
||||||
|
def post_labels
|
||||||
|
gitlab.api.update_merge_request(gitlab.mr_json['project_id'],
|
||||||
|
gitlab.mr_json['iid'],
|
||||||
|
add_labels: project_helper.labels_to_add.join(','))
|
||||||
|
rescue Gitlab::Error::Forbidden
|
||||||
|
labels = project_helper.labels_to_add.map { |label| %Q(~"#{label}") }
|
||||||
|
warn("This Merge Request needs to be labelled with #{labels.join(' ')}. Please request a reviewer or maintainer to add them.")
|
||||||
|
end
|
||||||
|
|
||||||
|
if project_helper.labels_to_add.any?
|
||||||
|
post_labels
|
||||||
|
end
|
||||||
|
|
||||||
|
if anything_to_post
|
||||||
markdown("**If needed, you can retry the [`danger-review` job](#{ENV['CI_JOB_URL']}) that generated this comment.**")
|
markdown("**If needed, you can retry the [`danger-review` job](#{ENV['CI_JOB_URL']}) that generated this comment.**")
|
||||||
end
|
end
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
14.4.4
|
14.5.2
|
|
@ -1 +1 @@
|
||||||
14.4.0
|
14.5.0
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
1.46.0
|
1.48.0
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
13.21.1
|
13.22.1
|
||||||
|
|
24
Gemfile
|
@ -4,7 +4,7 @@ source 'https://rubygems.org'
|
||||||
|
|
||||||
gem 'rails', '~> 6.1.4.1'
|
gem 'rails', '~> 6.1.4.1'
|
||||||
|
|
||||||
gem 'bootsnap', '~> 1.4.6'
|
gem 'bootsnap', '~> 1.9.1', require: false
|
||||||
|
|
||||||
# Responders respond_to and respond_with
|
# Responders respond_to and respond_with
|
||||||
gem 'responders', '~> 3.0'
|
gem 'responders', '~> 3.0'
|
||||||
|
@ -17,14 +17,14 @@ gem 'default_value_for', '~> 3.4.0'
|
||||||
# Supported DBs
|
# Supported DBs
|
||||||
gem 'pg', '~> 1.1'
|
gem 'pg', '~> 1.1'
|
||||||
|
|
||||||
gem 'rugged', '~> 1.1'
|
gem 'rugged', '~> 1.2'
|
||||||
gem 'grape-path-helpers', '~> 1.7.0'
|
gem 'grape-path-helpers', '~> 1.7.0'
|
||||||
|
|
||||||
gem 'faraday', '~> 1.0'
|
gem 'faraday', '~> 1.0'
|
||||||
gem 'marginalia', '~> 1.10.0'
|
gem 'marginalia', '~> 1.10.0'
|
||||||
|
|
||||||
# Authorization
|
# Authorization
|
||||||
gem 'declarative_policy', '~> 1.0.0'
|
gem 'declarative_policy', '~> 1.1.0'
|
||||||
|
|
||||||
# Authentication libraries
|
# Authentication libraries
|
||||||
gem 'devise', '~> 4.7.2'
|
gem 'devise', '~> 4.7.2'
|
||||||
|
@ -38,6 +38,7 @@ gem 'omniauth-auth0', '~> 2.0.0'
|
||||||
gem 'omniauth-azure-activedirectory-v2', '~> 1.0'
|
gem 'omniauth-azure-activedirectory-v2', '~> 1.0'
|
||||||
gem 'omniauth-azure-oauth2', '~> 0.0.9' # Deprecated v1 version
|
gem 'omniauth-azure-oauth2', '~> 0.0.9' # Deprecated v1 version
|
||||||
gem 'omniauth-cas3', '~> 1.1.4'
|
gem 'omniauth-cas3', '~> 1.1.4'
|
||||||
|
gem 'omniauth-dingtalk-oauth2', '~> 1.0'
|
||||||
gem 'omniauth-facebook', '~> 4.0.0'
|
gem 'omniauth-facebook', '~> 4.0.0'
|
||||||
gem 'omniauth-github', '~> 1.4'
|
gem 'omniauth-github', '~> 1.4'
|
||||||
gem 'omniauth-gitlab', '~> 1.0.2'
|
gem 'omniauth-gitlab', '~> 1.0.2'
|
||||||
|
@ -129,7 +130,7 @@ gem 'fog-local', '~> 0.6'
|
||||||
gem 'fog-openstack', '~> 1.0'
|
gem 'fog-openstack', '~> 1.0'
|
||||||
gem 'fog-rackspace', '~> 0.1.1'
|
gem 'fog-rackspace', '~> 0.1.1'
|
||||||
gem 'fog-aliyun', '~> 0.3'
|
gem 'fog-aliyun', '~> 0.3'
|
||||||
gem 'gitlab-fog-azure-rm', '~> 1.2.0', require: false
|
gem 'gitlab-fog-azure-rm', '~> 1.2.0', require: 'fog/azurerm'
|
||||||
|
|
||||||
# for Google storage
|
# for Google storage
|
||||||
gem 'google-api-client', '~> 0.33'
|
gem 'google-api-client', '~> 0.33'
|
||||||
|
@ -186,6 +187,7 @@ gem 'rack-timeout', '~> 0.5.1', require: 'rack/timeout/base'
|
||||||
group :puma do
|
group :puma do
|
||||||
gem 'puma', '~> 5.3.1', require: false
|
gem 'puma', '~> 5.3.1', require: false
|
||||||
gem 'puma_worker_killer', '~> 0.3.1', require: false
|
gem 'puma_worker_killer', '~> 0.3.1', require: false
|
||||||
|
gem 'sd_notify', '~> 0.1.0', require: false
|
||||||
end
|
end
|
||||||
|
|
||||||
# State machine
|
# State machine
|
||||||
|
@ -290,7 +292,7 @@ gem 'autoprefixer-rails', '10.2.5.1'
|
||||||
gem 'terser', '1.0.2'
|
gem 'terser', '1.0.2'
|
||||||
|
|
||||||
gem 'addressable', '~> 2.8'
|
gem 'addressable', '~> 2.8'
|
||||||
gem 'gemojione', '~> 3.3'
|
gem 'tanuki_emoji', '~> 0.5'
|
||||||
gem 'gon', '~> 6.4.0'
|
gem 'gon', '~> 6.4.0'
|
||||||
gem 'request_store', '~> 1.5'
|
gem 'request_store', '~> 1.5'
|
||||||
gem 'base32', '~> 0.3.0'
|
gem 'base32', '~> 0.3.0'
|
||||||
|
@ -341,13 +343,15 @@ group :development do
|
||||||
gem 'lefthook', '~> 0.7.0', require: false
|
gem 'lefthook', '~> 0.7.0', require: false
|
||||||
gem 'solargraph', '~> 0.43', require: false
|
gem 'solargraph', '~> 0.43', require: false
|
||||||
|
|
||||||
gem 'letter_opener_web', '~> 1.4.1'
|
gem 'letter_opener_web', '~> 2.0.0'
|
||||||
|
|
||||||
# Better errors handler
|
# Better errors handler
|
||||||
gem 'better_errors', '~> 2.9.0'
|
gem 'better_errors', '~> 2.9.0'
|
||||||
|
|
||||||
# thin instead webrick
|
# thin instead webrick
|
||||||
gem 'thin', '~> 1.8.0'
|
gem 'thin', '~> 1.8.0'
|
||||||
|
|
||||||
|
gem 'sprite-factory', '~> 1.7'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development, :test do
|
group :development, :test do
|
||||||
|
@ -372,7 +376,7 @@ group :development, :test do
|
||||||
gem 'spring', '~> 2.1.0'
|
gem 'spring', '~> 2.1.0'
|
||||||
gem 'spring-commands-rspec', '~> 1.0.4'
|
gem 'spring-commands-rspec', '~> 1.0.4'
|
||||||
|
|
||||||
gem 'gitlab-styles', '~> 6.3.0', require: false
|
gem 'gitlab-styles', '~> 6.4.0', require: false
|
||||||
|
|
||||||
gem 'haml_lint', '~> 0.36.0', require: false
|
gem 'haml_lint', '~> 0.36.0', require: false
|
||||||
gem 'bundler-audit', '~> 0.7.0.1', require: false
|
gem 'bundler-audit', '~> 0.7.0.1', require: false
|
||||||
|
@ -396,7 +400,7 @@ group :development, :test do
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development, :test, :danger do
|
group :development, :test, :danger do
|
||||||
gem 'gitlab-dangerfiles', '~> 2.3.0', require: false
|
gem 'gitlab-dangerfiles', '~> 2.5.0', require: false
|
||||||
end
|
end
|
||||||
|
|
||||||
group :development, :test, :coverage do
|
group :development, :test, :coverage do
|
||||||
|
@ -474,7 +478,7 @@ end
|
||||||
gem 'spamcheck', '~> 0.1.0'
|
gem 'spamcheck', '~> 0.1.0'
|
||||||
|
|
||||||
# Gitaly GRPC protocol definitions
|
# Gitaly GRPC protocol definitions
|
||||||
gem 'gitaly', '~> 14.3.0.pre.rc2'
|
gem 'gitaly', '~> 14.4.0.pre.rc43'
|
||||||
|
|
||||||
# KAS GRPC protocol definitions
|
# KAS GRPC protocol definitions
|
||||||
gem 'kas-grpc', '~> 0.0.2'
|
gem 'kas-grpc', '~> 0.0.2'
|
||||||
|
@ -534,3 +538,5 @@ gem 'webauthn', '~> 2.3'
|
||||||
gem 'ipaddress', '~> 0.8.3'
|
gem 'ipaddress', '~> 0.8.3'
|
||||||
|
|
||||||
gem 'parslet', '~> 1.8'
|
gem 'parslet', '~> 1.8'
|
||||||
|
|
||||||
|
gem 'ipynbdiff', '0.3.7'
|
||||||
|
|
55
Gemfile.lock
|
@ -148,7 +148,7 @@ GEM
|
||||||
rack (>= 0.9.0)
|
rack (>= 0.9.0)
|
||||||
bindata (2.4.10)
|
bindata (2.4.10)
|
||||||
binding_ninja (0.2.3)
|
binding_ninja (0.2.3)
|
||||||
bootsnap (1.4.6)
|
bootsnap (1.9.1)
|
||||||
msgpack (~> 1.0)
|
msgpack (~> 1.0)
|
||||||
bootstrap_form (4.2.0)
|
bootstrap_form (4.2.0)
|
||||||
actionpack (>= 5.0)
|
actionpack (>= 5.0)
|
||||||
|
@ -222,7 +222,7 @@ GEM
|
||||||
css_parser (1.7.0)
|
css_parser (1.7.0)
|
||||||
addressable
|
addressable
|
||||||
daemons (1.3.1)
|
daemons (1.3.1)
|
||||||
danger (8.3.1)
|
danger (8.4.1)
|
||||||
claide (~> 1.0)
|
claide (~> 1.0)
|
||||||
claide-plugins (>= 0.9.2)
|
claide-plugins (>= 0.9.2)
|
||||||
colored2 (~> 3.1)
|
colored2 (~> 3.1)
|
||||||
|
@ -244,7 +244,7 @@ GEM
|
||||||
html-pipeline
|
html-pipeline
|
||||||
declarative (0.0.20)
|
declarative (0.0.20)
|
||||||
declarative-option (0.1.0)
|
declarative-option (0.1.0)
|
||||||
declarative_policy (1.0.0)
|
declarative_policy (1.1.0)
|
||||||
default_value_for (3.4.0)
|
default_value_for (3.4.0)
|
||||||
activerecord (>= 3.2.0, < 7.0)
|
activerecord (>= 3.2.0, < 7.0)
|
||||||
deprecation_toolkit (1.5.1)
|
deprecation_toolkit (1.5.1)
|
||||||
|
@ -436,8 +436,6 @@ GEM
|
||||||
ruby-progressbar (~> 1.4)
|
ruby-progressbar (~> 1.4)
|
||||||
fuzzyurl (0.9.0)
|
fuzzyurl (0.9.0)
|
||||||
gemoji (3.0.1)
|
gemoji (3.0.1)
|
||||||
gemojione (3.3.0)
|
|
||||||
json
|
|
||||||
get_process_mem (0.2.5)
|
get_process_mem (0.2.5)
|
||||||
ffi (~> 1.0)
|
ffi (~> 1.0)
|
||||||
gettext (3.3.6)
|
gettext (3.3.6)
|
||||||
|
@ -452,7 +450,7 @@ GEM
|
||||||
rails (>= 3.2.0)
|
rails (>= 3.2.0)
|
||||||
git (1.7.0)
|
git (1.7.0)
|
||||||
rchardet (~> 1.8)
|
rchardet (~> 1.8)
|
||||||
gitaly (14.3.0.pre.rc2)
|
gitaly (14.4.0.pre.rc43)
|
||||||
grpc (~> 1.0)
|
grpc (~> 1.0)
|
||||||
github-markup (1.7.0)
|
github-markup (1.7.0)
|
||||||
gitlab (4.16.1)
|
gitlab (4.16.1)
|
||||||
|
@ -460,7 +458,7 @@ GEM
|
||||||
terminal-table (~> 1.5, >= 1.5.1)
|
terminal-table (~> 1.5, >= 1.5.1)
|
||||||
gitlab-chronic (0.10.5)
|
gitlab-chronic (0.10.5)
|
||||||
numerizer (~> 0.2)
|
numerizer (~> 0.2)
|
||||||
gitlab-dangerfiles (2.3.0)
|
gitlab-dangerfiles (2.5.0)
|
||||||
danger (>= 8.3.1)
|
danger (>= 8.3.1)
|
||||||
danger-gitlab (>= 8.0.0)
|
danger-gitlab (>= 8.0.0)
|
||||||
gitlab-experiment (0.6.4)
|
gitlab-experiment (0.6.4)
|
||||||
|
@ -492,7 +490,7 @@ GEM
|
||||||
openid_connect (~> 1.2)
|
openid_connect (~> 1.2)
|
||||||
gitlab-sidekiq-fetcher (0.8.0)
|
gitlab-sidekiq-fetcher (0.8.0)
|
||||||
sidekiq (~> 6.1)
|
sidekiq (~> 6.1)
|
||||||
gitlab-styles (6.3.0)
|
gitlab-styles (6.4.0)
|
||||||
rubocop (~> 0.91, >= 0.91.1)
|
rubocop (~> 0.91, >= 0.91.1)
|
||||||
rubocop-gitlab-security (~> 0.1.1)
|
rubocop-gitlab-security (~> 0.1.1)
|
||||||
rubocop-performance (~> 1.9.2)
|
rubocop-performance (~> 1.9.2)
|
||||||
|
@ -642,6 +640,9 @@ GEM
|
||||||
invisible_captcha (1.1.0)
|
invisible_captcha (1.1.0)
|
||||||
rails (>= 4.2)
|
rails (>= 4.2)
|
||||||
ipaddress (0.8.3)
|
ipaddress (0.8.3)
|
||||||
|
ipynbdiff (0.3.7)
|
||||||
|
diffy (= 3.3.0)
|
||||||
|
json (= 2.5.1)
|
||||||
jaeger-client (1.1.0)
|
jaeger-client (1.1.0)
|
||||||
opentracing (~> 0.3)
|
opentracing (~> 0.3)
|
||||||
thrift
|
thrift
|
||||||
|
@ -699,10 +700,11 @@ GEM
|
||||||
lefthook (0.7.5)
|
lefthook (0.7.5)
|
||||||
letter_opener (1.7.0)
|
letter_opener (1.7.0)
|
||||||
launchy (~> 2.2)
|
launchy (~> 2.2)
|
||||||
letter_opener_web (1.4.1)
|
letter_opener_web (2.0.0)
|
||||||
actionmailer (>= 3.2)
|
actionmailer (>= 5.2)
|
||||||
letter_opener (~> 1.0)
|
letter_opener (~> 1.7)
|
||||||
railties (>= 3.2)
|
railties (>= 5.2)
|
||||||
|
rexml
|
||||||
libyajl2 (1.2.0)
|
libyajl2 (1.2.0)
|
||||||
license_finder (6.0.0)
|
license_finder (6.0.0)
|
||||||
bundler
|
bundler
|
||||||
|
@ -839,6 +841,8 @@ GEM
|
||||||
addressable (~> 2.3)
|
addressable (~> 2.3)
|
||||||
nokogiri (~> 1.7, >= 1.7.1)
|
nokogiri (~> 1.7, >= 1.7.1)
|
||||||
omniauth (~> 1.2)
|
omniauth (~> 1.2)
|
||||||
|
omniauth-dingtalk-oauth2 (1.0.0)
|
||||||
|
omniauth-oauth2 (~> 1.7.1)
|
||||||
omniauth-facebook (4.0.0)
|
omniauth-facebook (4.0.0)
|
||||||
omniauth-oauth2 (~> 1.2)
|
omniauth-oauth2 (~> 1.2)
|
||||||
omniauth-github (1.4.0)
|
omniauth-github (1.4.0)
|
||||||
|
@ -859,7 +863,7 @@ GEM
|
||||||
omniauth-oauth (1.1.0)
|
omniauth-oauth (1.1.0)
|
||||||
oauth
|
oauth
|
||||||
omniauth (~> 1.0)
|
omniauth (~> 1.0)
|
||||||
omniauth-oauth2 (1.7.1)
|
omniauth-oauth2 (1.7.2)
|
||||||
oauth2 (~> 1.4)
|
oauth2 (~> 1.4)
|
||||||
omniauth (>= 1.9, < 3)
|
omniauth (>= 1.9, < 3)
|
||||||
omniauth-oauth2-generic (0.2.2)
|
omniauth-oauth2-generic (0.2.2)
|
||||||
|
@ -1129,7 +1133,7 @@ GEM
|
||||||
rubyntlm (0.6.2)
|
rubyntlm (0.6.2)
|
||||||
rubypants (0.2.0)
|
rubypants (0.2.0)
|
||||||
rubyzip (2.0.0)
|
rubyzip (2.0.0)
|
||||||
rugged (1.1.0)
|
rugged (1.2.0)
|
||||||
safe_yaml (1.0.4)
|
safe_yaml (1.0.4)
|
||||||
safety_net_attestation (0.4.0)
|
safety_net_attestation (0.4.0)
|
||||||
jwt (~> 2.0)
|
jwt (~> 2.0)
|
||||||
|
@ -1155,6 +1159,7 @@ GEM
|
||||||
addressable (>= 2.3.5)
|
addressable (>= 2.3.5)
|
||||||
faraday (> 0.8, < 2.0)
|
faraday (> 0.8, < 2.0)
|
||||||
scientist (1.6.0)
|
scientist (1.6.0)
|
||||||
|
sd_notify (0.1.0)
|
||||||
securecompare (1.0.0)
|
securecompare (1.0.0)
|
||||||
seed-fu (2.3.7)
|
seed-fu (2.3.7)
|
||||||
activerecord (>= 3.1)
|
activerecord (>= 3.1)
|
||||||
|
@ -1216,6 +1221,7 @@ GEM
|
||||||
spring (2.1.1)
|
spring (2.1.1)
|
||||||
spring-commands-rspec (1.0.4)
|
spring-commands-rspec (1.0.4)
|
||||||
spring (>= 0.9.1)
|
spring (>= 0.9.1)
|
||||||
|
sprite-factory (1.7.1)
|
||||||
sprockets (3.7.2)
|
sprockets (3.7.2)
|
||||||
concurrent-ruby (~> 1.0)
|
concurrent-ruby (~> 1.0)
|
||||||
rack (> 1, < 3)
|
rack (> 1, < 3)
|
||||||
|
@ -1246,6 +1252,7 @@ GEM
|
||||||
sys-filesystem (1.1.9)
|
sys-filesystem (1.1.9)
|
||||||
ffi
|
ffi
|
||||||
sysexits (1.2.0)
|
sysexits (1.2.0)
|
||||||
|
tanuki_emoji (0.5.0)
|
||||||
temple (0.8.2)
|
temple (0.8.2)
|
||||||
terminal-table (1.8.0)
|
terminal-table (1.8.0)
|
||||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||||
|
@ -1399,7 +1406,7 @@ DEPENDENCIES
|
||||||
benchmark-ips (~> 2.3.0)
|
benchmark-ips (~> 2.3.0)
|
||||||
benchmark-memory (~> 0.1)
|
benchmark-memory (~> 0.1)
|
||||||
better_errors (~> 2.9.0)
|
better_errors (~> 2.9.0)
|
||||||
bootsnap (~> 1.4.6)
|
bootsnap (~> 1.9.1)
|
||||||
bootstrap_form (~> 4.2.0)
|
bootstrap_form (~> 4.2.0)
|
||||||
browser (~> 4.2)
|
browser (~> 4.2)
|
||||||
bullet (~> 6.1.3)
|
bullet (~> 6.1.3)
|
||||||
|
@ -1416,7 +1423,7 @@ DEPENDENCIES
|
||||||
crystalball (~> 0.7.0)
|
crystalball (~> 0.7.0)
|
||||||
database_cleaner (~> 1.7.0)
|
database_cleaner (~> 1.7.0)
|
||||||
deckar01-task_list (= 2.3.1)
|
deckar01-task_list (= 2.3.1)
|
||||||
declarative_policy (~> 1.0.0)
|
declarative_policy (~> 1.1.0)
|
||||||
default_value_for (~> 3.4.0)
|
default_value_for (~> 3.4.0)
|
||||||
deprecation_toolkit (~> 1.5.1)
|
deprecation_toolkit (~> 1.5.1)
|
||||||
derailed_benchmarks
|
derailed_benchmarks
|
||||||
|
@ -1454,14 +1461,13 @@ DEPENDENCIES
|
||||||
fog-rackspace (~> 0.1.1)
|
fog-rackspace (~> 0.1.1)
|
||||||
fugit (~> 1.2.1)
|
fugit (~> 1.2.1)
|
||||||
fuubar (~> 2.2.0)
|
fuubar (~> 2.2.0)
|
||||||
gemojione (~> 3.3)
|
|
||||||
gettext (~> 3.3)
|
gettext (~> 3.3)
|
||||||
gettext_i18n_rails (~> 1.8.0)
|
gettext_i18n_rails (~> 1.8.0)
|
||||||
gettext_i18n_rails_js (~> 1.3)
|
gettext_i18n_rails_js (~> 1.3)
|
||||||
gitaly (~> 14.3.0.pre.rc2)
|
gitaly (~> 14.4.0.pre.rc43)
|
||||||
github-markup (~> 1.7.0)
|
github-markup (~> 1.7.0)
|
||||||
gitlab-chronic (~> 0.10.5)
|
gitlab-chronic (~> 0.10.5)
|
||||||
gitlab-dangerfiles (~> 2.3.0)
|
gitlab-dangerfiles (~> 2.5.0)
|
||||||
gitlab-experiment (~> 0.6.4)
|
gitlab-experiment (~> 0.6.4)
|
||||||
gitlab-fog-azure-rm (~> 1.2.0)
|
gitlab-fog-azure-rm (~> 1.2.0)
|
||||||
gitlab-labkit (~> 0.21.1)
|
gitlab-labkit (~> 0.21.1)
|
||||||
|
@ -1471,7 +1477,7 @@ DEPENDENCIES
|
||||||
gitlab-net-dns (~> 0.9.1)
|
gitlab-net-dns (~> 0.9.1)
|
||||||
gitlab-omniauth-openid-connect (~> 0.8.0)
|
gitlab-omniauth-openid-connect (~> 0.8.0)
|
||||||
gitlab-sidekiq-fetcher (= 0.8.0)
|
gitlab-sidekiq-fetcher (= 0.8.0)
|
||||||
gitlab-styles (~> 6.3.0)
|
gitlab-styles (~> 6.4.0)
|
||||||
gitlab_chronic_duration (~> 0.10.6.2)
|
gitlab_chronic_duration (~> 0.10.6.2)
|
||||||
gitlab_omniauth-ldap (~> 2.1.1)
|
gitlab_omniauth-ldap (~> 2.1.1)
|
||||||
gon (~> 6.4.0)
|
gon (~> 6.4.0)
|
||||||
|
@ -1501,6 +1507,7 @@ DEPENDENCIES
|
||||||
icalendar
|
icalendar
|
||||||
invisible_captcha (~> 1.1.0)
|
invisible_captcha (~> 1.1.0)
|
||||||
ipaddress (~> 0.8.3)
|
ipaddress (~> 0.8.3)
|
||||||
|
ipynbdiff (= 0.3.7)
|
||||||
jira-ruby (~> 2.1.4)
|
jira-ruby (~> 2.1.4)
|
||||||
js_regex (~> 3.7)
|
js_regex (~> 3.7)
|
||||||
json (~> 2.5.1)
|
json (~> 2.5.1)
|
||||||
|
@ -1512,7 +1519,7 @@ DEPENDENCIES
|
||||||
kramdown (~> 2.3.1)
|
kramdown (~> 2.3.1)
|
||||||
kubeclient (~> 4.9.2)
|
kubeclient (~> 4.9.2)
|
||||||
lefthook (~> 0.7.0)
|
lefthook (~> 0.7.0)
|
||||||
letter_opener_web (~> 1.4.1)
|
letter_opener_web (~> 2.0.0)
|
||||||
license_finder (~> 6.0)
|
license_finder (~> 6.0)
|
||||||
licensee (~> 9.14.1)
|
licensee (~> 9.14.1)
|
||||||
lockbox (~> 0.6.2)
|
lockbox (~> 0.6.2)
|
||||||
|
@ -1542,6 +1549,7 @@ DEPENDENCIES
|
||||||
omniauth-azure-activedirectory-v2 (~> 1.0)
|
omniauth-azure-activedirectory-v2 (~> 1.0)
|
||||||
omniauth-azure-oauth2 (~> 0.0.9)
|
omniauth-azure-oauth2 (~> 0.0.9)
|
||||||
omniauth-cas3 (~> 1.1.4)
|
omniauth-cas3 (~> 1.1.4)
|
||||||
|
omniauth-dingtalk-oauth2 (~> 1.0)
|
||||||
omniauth-facebook (~> 4.0.0)
|
omniauth-facebook (~> 4.0.0)
|
||||||
omniauth-github (~> 1.4)
|
omniauth-github (~> 1.4)
|
||||||
omniauth-gitlab (~> 1.0.2)
|
omniauth-gitlab (~> 1.0.2)
|
||||||
|
@ -1603,9 +1611,10 @@ DEPENDENCIES
|
||||||
ruby-saml (~> 1.13.0)
|
ruby-saml (~> 1.13.0)
|
||||||
ruby_parser (~> 3.15)
|
ruby_parser (~> 3.15)
|
||||||
rubyzip (~> 2.0.0)
|
rubyzip (~> 2.0.0)
|
||||||
rugged (~> 1.1)
|
rugged (~> 1.2)
|
||||||
sanitize (~> 5.2.1)
|
sanitize (~> 5.2.1)
|
||||||
sassc-rails (~> 2.1.0)
|
sassc-rails (~> 2.1.0)
|
||||||
|
sd_notify (~> 0.1.0)
|
||||||
seed-fu (~> 2.3.7)
|
seed-fu (~> 2.3.7)
|
||||||
selenium-webdriver (~> 3.142)
|
selenium-webdriver (~> 3.142)
|
||||||
sentry-raven (~> 3.1)
|
sentry-raven (~> 3.1)
|
||||||
|
@ -1622,11 +1631,13 @@ DEPENDENCIES
|
||||||
spamcheck (~> 0.1.0)
|
spamcheck (~> 0.1.0)
|
||||||
spring (~> 2.1.0)
|
spring (~> 2.1.0)
|
||||||
spring-commands-rspec (~> 1.0.4)
|
spring-commands-rspec (~> 1.0.4)
|
||||||
|
sprite-factory (~> 1.7)
|
||||||
sprockets (~> 3.7.0)
|
sprockets (~> 3.7.0)
|
||||||
sshkey (~> 2.0)
|
sshkey (~> 2.0)
|
||||||
stackprof (~> 0.2.15)
|
stackprof (~> 0.2.15)
|
||||||
state_machines-activerecord (~> 0.8.0)
|
state_machines-activerecord (~> 0.8.0)
|
||||||
sys-filesystem (~> 1.1.6)
|
sys-filesystem (~> 1.1.6)
|
||||||
|
tanuki_emoji (~> 0.5)
|
||||||
terser (= 1.0.2)
|
terser (= 1.0.2)
|
||||||
test-prof (~> 1.0.7)
|
test-prof (~> 1.0.7)
|
||||||
test_file_finder (~> 0.1.3)
|
test_file_finder (~> 0.1.3)
|
||||||
|
|
|
@ -9,7 +9,7 @@ cmd = ENV['GUARD_CMD'] || (ENV['SPRING'] ? 'spring rspec' : 'bundle exec rspec')
|
||||||
directories %w(app ee lib rubocop tooling spec)
|
directories %w(app ee lib rubocop tooling spec)
|
||||||
|
|
||||||
rspec_context_for = proc do |context_path|
|
rspec_context_for = proc do |context_path|
|
||||||
OpenStruct.new(to_s: "spec").tap do |rspec|
|
OpenStruct.new(to_s: "spec").tap do |rspec| # rubocop:disable Style/OpenStructUse
|
||||||
rspec.spec_dir = "#{context_path}spec"
|
rspec.spec_dir = "#{context_path}spec"
|
||||||
rspec.spec = ->(m) { Guard::RSpec::Dsl.detect_spec_file_for(rspec, m) }
|
rspec.spec = ->(m) { Guard::RSpec::Dsl.detect_spec_file_for(rspec, m) }
|
||||||
rspec.spec_helper = "#{rspec.spec_dir}/spec_helper.rb"
|
rspec.spec_helper = "#{rspec.spec_dir}/spec_helper.rb"
|
||||||
|
@ -19,7 +19,7 @@ rspec_context_for = proc do |context_path|
|
||||||
end
|
end
|
||||||
|
|
||||||
rails_context_for = proc do |context_path, exts|
|
rails_context_for = proc do |context_path, exts|
|
||||||
OpenStruct.new.tap do |rails|
|
OpenStruct.new.tap do |rails| # rubocop:disable Style/OpenStructUse
|
||||||
rails.app_files = %r{^#{context_path}app/(.+)\.rb$}
|
rails.app_files = %r{^#{context_path}app/(.+)\.rb$}
|
||||||
|
|
||||||
rails.views = %r{^#{context_path}app/(views/.+/[^/]*\.(?:#{exts}))$}
|
rails.views = %r{^#{context_path}app/(views/.+/[^/]*\.(?:#{exts}))$}
|
||||||
|
|
|
@ -71,7 +71,7 @@ To work on GitLab itself, we recommend setting up your development environment w
|
||||||
If you do not use the GitLab Development Kit you need to install and configure all the dependencies yourself, this is a lot of work and error prone.
|
If you do not use the GitLab Development Kit you need to install and configure all the dependencies yourself, this is a lot of work and error prone.
|
||||||
One small thing you also have to do when installing it yourself is to copy the example development Puma configuration file:
|
One small thing you also have to do when installing it yourself is to copy the example development Puma configuration file:
|
||||||
|
|
||||||
cp config/puma.rb.example.development config/puma.rb
|
cp config/puma.example.development.rb config/puma.rb
|
||||||
|
|
||||||
Instructions on how to start GitLab and how to run the tests can be found in the [getting started section of the GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit#getting-started).
|
Instructions on how to start GitLab and how to run the tests can be found in the [getting started section of the GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit#getting-started).
|
||||||
|
|
||||||
|
|
2
VERSION
|
@ -1 +1 @@
|
||||||
14.4.4
|
14.5.2
|
BIN
app/assets/images/auth_buttons/dingtalk_64.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 1.2 MiB After Width: | Height: | Size: 1.3 MiB |
Before Width: | Height: | Size: 793 B |
Before Width: | Height: | Size: 676 B |
Before Width: | Height: | Size: 810 B |
Before Width: | Height: | Size: 469 B |
Before Width: | Height: | Size: 505 B |
Before Width: | Height: | Size: 646 B |
Before Width: | Height: | Size: 670 B |
Before Width: | Height: | Size: 491 B |
Before Width: | Height: | Size: 759 B |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 953 B |
Before Width: | Height: | Size: 839 B |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1 KiB |
Before Width: | Height: | Size: 779 B |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 2 KiB |
Before Width: | Height: | Size: 594 B |
Before Width: | Height: | Size: 551 B |
Before Width: | Height: | Size: 845 B |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 655 B |
Before Width: | Height: | Size: 648 B |
Before Width: | Height: | Size: 711 B |
Before Width: | Height: | Size: 429 B |
Before Width: | Height: | Size: 543 B |