diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 0000000000..3ae7766c32
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1,16 @@
+#
+# This list of browsers is a conservative first definition, based on
+# https://docs.gitlab.com/ee/install/requirements.html#supported-web-browsers
+# with the following reasoning:
+#
+# - Edge: Pick the last two major version before the Chrome switch
+# - Rest: We should support the latest ESR of Firefox: 68, because it used quite a lot.
+# For the rest, pick browser versions that have a similar age to Firefox 68.
+#
+# See also this follow-up epic:
+# https://gitlab.com/groups/gitlab-org/-/epics/3957
+#
+chrome >= 73
+edge >= 17
+firefox >= 68
+safari >= 12
diff --git a/.eslintrc.yml b/.eslintrc.yml
index a764f74978..75c52ac131 100644
--- a/.eslintrc.yml
+++ b/.eslintrc.yml
@@ -42,21 +42,50 @@ rules:
no-jquery/no-serialize: error
promise/always-return: off
promise/no-callback-in-promise: off
- "@gitlab/no-global-event-off": error
-
- # BEGIN eslint-plugin-vue@7 overrides
- # TODO: Remove these rules as part of
- # https://gitlab.com/groups/gitlab-org/-/epics/5142. These are setting
- # various vue lint rules as they were in eslint-plugin-vue@6, or disabling
- # new ones, to ease migration to v7, so violations of each can be fixed
- # separately.
- vue/no-mutating-props: off
- vue/one-component-per-file: off
- vue/no-lone-template: off
- vue/component-definition-name-casing: off
- # END eslint-plugin-vue@7 overrides
+ '@gitlab/no-global-event-off': error
+ import/order:
+ - error
+ - groups:
+ - builtin
+ - external
+ - internal
+ - parent
+ - sibling
+ - index
+ pathGroups:
+ - pattern: ~/**
+ group: internal
+ - pattern: emojis/**
+ group: internal
+ - pattern: '{ee_,}empty_states/**'
+ group: internal
+ - pattern: '{ee_,}icons/**'
+ group: internal
+ - pattern: '{ee_,}images/**'
+ group: internal
+ - pattern: vendor/**
+ group: internal
+ - pattern: shared_queries/**
+ group: internal
+ - pattern: '{ee_,}spec/**'
+ group: internal
+ - pattern: '{ee_,}jest/**'
+ group: internal
+ - pattern: ee_else_ce/**
+ group: internal
+ - pattern: ee/**
+ group: internal
+ - pattern: ee_component/**
+ group: internal
+ - pattern: '{test_,}helpers/**'
+ group: internal
+ - pattern: test_fixtures/**
+ group: internal
+ alphabetize:
+ order: asc
overrides:
- files:
- '**/spec/**/*'
rules:
- "@gitlab/require-i18n-strings": off
+ '@gitlab/require-i18n-strings': off
+ '@gitlab/no-runtime-template-compiler': off
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index b41d7bcd34..e38e2f765b 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -17,7 +17,7 @@ stages:
# in cases where jobs require Docker-in-Docker, the job
# definition must be extended with `.use-docker-in-docker`
default:
- image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2-golang-1.14-git-2.29-lfs-2.9-chrome-85-node-12.18-yarn-1.22-postgresql-11-graphicsmagick-1.3.34"
+ image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.34"
tags:
- gitlab-org
# All jobs are interruptible by default
@@ -111,3 +111,4 @@ include:
- local: .gitlab/ci/dast.gitlab-ci.yml
- local: .gitlab/ci/workhorse.gitlab-ci.yml
- local: .gitlab/ci/graphql.gitlab-ci.yml
+ - local: .gitlab/ci/verify-lockfile.gitlab-ci.yml
diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS
index df81d05eec..0d34eeccf8 100644
--- a/.gitlab/CODEOWNERS
+++ b/.gitlab/CODEOWNERS
@@ -6,137 +6,128 @@
*.rb @gitlab-org/maintainers/rails-backend
*.rake @gitlab-org/maintainers/rails-backend
-[Documentation]
+[Documentation Directories]
/doc/ @gl-docsteam
-/doc/administration/monitoring/ @aqualls
+/doc/.vale/ @marcel.amirault @eread @aqualls @cnorris
+/doc/administration/geo/ @axil
+/doc/administration/gitaly/ @eread
+/doc/administration/integration/ @aqualls
+/doc/administration/lfs/ @aqualls
+/doc/administration/monitoring/ @ngaskill
+/doc/administration/operations/ @axil @eread @marcia
+/doc/administration/packages/ @ngaskill
+/doc/administration/postgresql/ @marcia
+/doc/administration/raketasks/ @axil @eread @mjang1
+/doc/administration/redis/ @axil
+/doc/administration/reference_architectures/ @axil
+/doc/administration/snippets/ @aqualls
+/doc/administration/troubleshooting @axil @marcia @mjang1
+/doc/ci/ @marcel.amirault @sselhorn
+/doc/ci/environments/ @axil
+/doc/ci/release/ @axil
+/doc/ci/services/ @sselhorn
+/doc/ci/test_cases/ @msedlakjakubowski
/doc/development/ @marcia @mjang1
/doc/development/documentation/ @cnorris
-/doc/ci @marcel.amirault @sselhorn
-/doc/operations @aqualls @eread
-/doc/user/clusters @aqualls
-/doc/user/infrastructure @aqualls
-/doc/user/project/clusters @aqualls
-/doc/.vale/ @marcel.amirault @eread @aqualls @cnorris
+/doc/gitlab-basics/ @marcia
+/doc/install/ @axil
+/doc/integration/ @aqualls @mjang1
+/doc/operations/ @ngaskill @axil
+/doc/push_rules/ @aqualls
+/doc/ssh/ @mjang1
+/doc/subscriptions/ @sselhorn
+/doc/topics/autodevops/ @ngaskill @marcia
+/doc/topics/git/ @aqualls
+/doc/update/ @axil @marcia
+/doc/user/analytics/ @mjang1 @ngaskill
+/doc/user/application_security @rdickenson
+/doc/user/clusters/ @marcia
+/doc/user/compliance/ @mjang1 @rdickenson
+/doc/user/group/ @mjang1 @msedlakjakubowski
+/doc/user/group/bulk_editing/ @msedlakjakubowski
+/doc/user/group/epics/ @msedlakjakubowski
+/doc/user/group/iterations/ @msedlakjakubowski
+/doc/user/group/roadmap/ @msedlakjakubowski
+/doc/user/infrastructure/ @marcia
+/doc/user/packages/ @ngaskill
+/doc/user/profile/ @mjang1 @msedlakjakubowski
+/doc/user/project/ @aqualls @axil @eread @mjang1 @msedlakjakubowski @ngaskill
+/doc/user/project/clusters/ @ngaskill
+/doc/user/project/import/ @mjang1 @msedlakjakubowski
+/doc/user/project/integrations/ @aqualls
+/doc/user/project/integrations/prometheus_library/ @ngaskill
+/doc/user/project/issues/ @msedlakjakubowski
+/doc/user/project/merge_requests/ @aqualls @eread
+/doc/user/project/milestones/ @msedlakjakubowski
+/doc/user/project/pages/ @axil
+/doc/user/project/repository/ @aqualls
+/doc/user/project/settings/ @mjang1 @aqualls
+/doc/user/project/static_site_editor/index.md @aqualls
+/doc/user/project/web_ide/index.md @aqualls
+/doc/user/project/wiki/index.md @aqualls
+/doc/user/search/ @marcia @aqualls
[Docs Create]
-/doc/user/project/merge_requests/allow_collaboration.md @marcia
-/doc/user/project/merge_requests/authorization_for_merge_requests.md @marcia
-/doc/user/project/merge_requests/cherry_pick_changes.md @marcia
-/doc/user/project/merge_requests/creating_merge_requests.md @marcia
-/doc/user/project/merge_requests/fast_forward_merge.md @marcia
-/doc/user/project/merge_requests/getting_started.md @marcia
-/doc/user/project/merge_requests/index.md @marcia
-/doc/user/project/merge_requests/merge_request_approvals.md @marcia
-/doc/user/project/merge_requests/merge_request_dependencies.md @marcia
-/doc/user/project/merge_requests/resolve_conflicts.md @marcia
-/doc/user/project/merge_requests/revert_changes.md @marcia
-/doc/user/project/merge_requests/reviewing_and_managing_merge_requests.md @marcia
-/doc/user/project/merge_requests/squash_and_merge.md @marcia
-/doc/user/project/merge_requests/work_in_progress_merge_requests.md @marcia
-/doc/user/project/repository/file_finder.md @marcia
-/doc/user/project/repository/forking_workflow.md @marcia
-/doc/user/project/repository/git_blame.md @marcia
-/doc/user/project/repository/git_history.md @marcia
-/doc/user/project/repository/index.md @marcia
-/doc/user/project/repository/repository_mirroring.md @marcia
-/doc/user/project/repository/web_editor.md @marcia
-/doc/user/project/autocomplete_characters.md @marcia
-/doc/user/project/badges.md @marcia
-/doc/user/project/code_intelligence.md @marcia
-/doc/user/project/code_owners.md @marcia
-/doc/user/project/file_lock.md @marcia
-/doc/user/project/git_attributes.md @marcia
-/doc/user/project/highlighting.md @marcia
-/doc/user/project/index.md @marcia
-/doc/user/project/protected_branches.md @marcia
-/doc/user/project/protected_tags.md @marcia
-/doc/user/project/push_options.md @marcia
-/doc/user/project/repository/branches/index.md @marcia
-/doc/user/project/repository/gpg_signed_commits/index.md @marcia
-/doc/user/project/repository/jupyter_notebooks/index.md @marcia
-/doc/user/project/repository/x509_signed_commits/index.md @marcia
-/doc/user/project/settings/import_export.md @marcia
-/doc/user/project/settings/index.md @marcia
-/doc/user/project/settings/project_access_tokens.md @marcia
-/doc/user/project/static_site_editor/index.md @marcia
-/doc/user/project/web_ide/index.md @marcia
-/doc/user/project/wiki/index.md @marcia
-/doc/gitlab-basics/README.md @marcia
-/doc/gitlab-basics/add-file.md @marcia
-/doc/gitlab-basics/command-line-commands.md @marcia
-/doc/gitlab-basics/create-branch.md @marcia
-/doc/gitlab-basics/create-project.md @marcia
-/doc/gitlab-basics/create-your-ssh-keys.md @marcia
-/doc/gitlab-basics/feature_branch_workflow.md @marcia
-/doc/gitlab-basics/fork-project.md @marcia
-/doc/gitlab-basics/start-using-git.md @marcia
-/doc/integration/sourcegraph.md @marcia
-/doc/intro/README.md @marcia
-/doc/push_rules/push_rules.md @marcia
-/doc/ssh/README.md @marcia
-/doc/topics/git/feature_branch_development.md @marcia
-/doc/topics/git/how_to_install_git/index.md @marcia
-/doc/topics/git/index.md @marcia
-/doc/topics/git/lfs/index.md @marcia
-/doc/topics/git/lfs/migrate_from_git_annex_to_git_lfs.md @marcia
-/doc/topics/git/numerous_undo_possibilities_in_git/index.md @marcia
-/doc/topics/git/partial_clone.md @marcia
-/doc/topics/git/troubleshooting_git.md @marcia
-/doc/topics/git/useful_git_commands.md @marcia
-/doc/topics/gitlab_flow.md @marcia
-/doc/user/index.md @marcia
-/doc/user/snippets.md @marcia
-/doc/administration/issue_closing_pattern.md @marcia
-/doc/user/asciidoc.md @marcia
-/doc/user/markdown.md @marcia
-/doc/user/search/advanced_global_search.md @marcia
-/doc/user/search/advanced_search_syntax.md @marcia
-/doc/user/search/index.md @marcia
-/doc/administration/file_hooks.md @marcia
-/doc/administration/git_annex.md @marcia
-/doc/administration/git_protocol.md @marcia
-/doc/administration/integration/plantuml.md @marcia
-/doc/administration/invalidate_markdown_cache.md @marcia
-/doc/administration/issue_closing_pattern.md @marcia
-/doc/administration/lfs/index.md @marcia
-/doc/administration/merge_request_diffs.md @marcia
-/doc/administration/repository_checks.md @marcia
-/doc/administration/snippets/index.md @marcia
-/doc/administration/static_objects_external_storage.md @marcia
-/doc/api/access_requests.md @marcia
-/doc/api/branches.md @marcia
-/doc/api/commits.md @marcia
-/doc/api/discussions.md @marcia
-/doc/api/group_wikis.md @marcia
-/doc/api/keys.md @marcia
-/doc/api/markdown.md @marcia
-/doc/api/merge_request_approvals.md @marcia
-/doc/api/merge_request_context_commits.md @marcia
-/doc/api/merge_requests.md @marcia
-/doc/api/project_aliases.md @marcia
-/doc/api/project_badges.md @marcia
-/doc/api/project_import_export.md @marcia
-/doc/api/project_level_variables.md @marcia
-/doc/api/project_snippets.md @marcia
-/doc/api/project_statistics.md @marcia
-/doc/api/project_templates.md @marcia
-/doc/api/project_vulnerabilities.md @marcia
-/doc/api/protected_branches.md @marcia
-/doc/api/protected_tags.md @marcia
-/doc/api/remote_mirrors.md @marcia
-/doc/api/repositories.md @marcia
-/doc/api/repository_files.md @marcia
-/doc/api/repository_submodules.md @marcia
-/doc/api/search.md @marcia
-/doc/api/snippets.md @marcia
-/doc/api/suggestions.md @marcia
-/doc/api/tags.md @marcia
-/doc/api/visual_review_discussions.md @marcia
-/doc/api/wikis.md @marcia
-/doc/user/admin_area/settings/account_and_limit_settings.md @marcia
-/doc/user/admin_area/settings/instance_template_repository.md @marcia
-/doc/user/admin_area/settings/push_event_activities_limit.md @marcia
-/doc/user/admin_area/settings/visibility_and_access_controls.md @marcia
+/doc/administration/file_hooks.md @aqualls
+/doc/administration/git_annex.md @aqualls
+/doc/administration/git_protocol.md @aqualls
+/doc/administration/invalidate_markdown_cache.md @aqualls
+/doc/administration/issue_closing_pattern.md @aqualls
+/doc/administration/merge_request_diffs.md @aqualls
+/doc/administration/repository_checks.md @aqualls
+/doc/administration/static_objects_external_storage.md @aqualls
+/doc/api/access_requests.md @aqualls
+/doc/api/branches.md @aqualls
+/doc/api/commits.md @aqualls
+/doc/api/discussions.md @aqualls
+/doc/api/group_wikis.md @aqualls
+/doc/api/keys.md @aqualls
+/doc/api/markdown.md @aqualls
+/doc/api/merge_request_approvals.md @aqualls
+/doc/api/merge_request_context_commits.md @aqualls
+/doc/api/merge_requests.md @aqualls
+/doc/api/project_aliases.md @aqualls
+/doc/api/project_badges.md @aqualls
+/doc/api/project_import_export.md @aqualls
+/doc/api/project_level_variables.md @aqualls
+/doc/api/project_snippets.md @aqualls
+/doc/api/project_statistics.md @aqualls
+/doc/api/project_templates.md @aqualls
+/doc/api/project_vulnerabilities.md @aqualls
+/doc/api/protected_branches.md @aqualls
+/doc/api/protected_tags.md @aqualls
+/doc/api/remote_mirrors.md @aqualls
+/doc/api/repositories.md @aqualls
+/doc/api/repository_files.md @aqualls
+/doc/api/repository_submodules.md @aqualls
+/doc/api/search.md @aqualls
+/doc/api/snippets.md @aqualls
+/doc/api/suggestions.md @aqualls
+/doc/api/tags.md @aqualls
+/doc/api/visual_review_discussions.md @aqualls
+/doc/api/wikis.md @aqualls
+/doc/intro/README.md @aqualls
+/doc/topics/gitlab_flow.md @aqualls
+/doc/user/admin_area/settings/account_and_limit_settings.md @aqualls
+/doc/user/admin_area/settings/instance_template_repository.md @aqualls
+/doc/user/admin_area/settings/push_event_activities_limit.md @aqualls
+/doc/user/admin_area/settings/visibility_and_access_controls.md @aqualls
+/doc/user/asciidoc.md @aqualls
+/doc/user/index.md @aqualls
+/doc/user/markdown.md @aqualls
+/doc/user/project/autocomplete_characters.md @aqualls
+/doc/user/project/badges.md @aqualls
+/doc/user/project/code_intelligence.md @aqualls
+/doc/user/project/code_owners.md @aqualls
+/doc/user/project/file_lock.md @aqualls
+/doc/user/project/git_attributes.md @aqualls
+/doc/user/project/highlighting.md @aqualls
+/doc/user/project/index.md @aqualls
+/doc/user/project/protected_branches.md @aqualls
+/doc/user/project/protected_tags.md @aqualls
+/doc/user/project/push_options.md @aqualls
+/doc/user/project/settings/import_export.md @aqualls
+/doc/user/snippets.md @aqualls
[Frontend]
*.scss @annabeldunstone @gitlab-org/maintainers/frontend
@@ -173,7 +164,7 @@
/.gitlab/CODEOWNERS @gl-quality/eng-prod
Dangerfile @gl-quality/eng-prod
/danger/ @gl-quality/eng-prod
-/lib/gitlab/danger/ @gl-quality/eng-prod
+/tooling/danger/ @gl-quality/eng-prod
/scripts/ @gl-quality/eng-prod
/scripts/frontend/ @gl-quality/eng-prod @gitlab-org/maintainers/frontend
/scripts/review_apps/seed-dast-test-data.sh @dappelt @ngeorge1 @gl-quality/eng-prod
@@ -257,3 +248,21 @@ Dangerfile @gl-quality/eng-prod
/lib/gitlab/usage_data.rb @gitlab-org/growth/product_intelligence/engineers
/lib/gitlab/cycle_analytics/usage_data.rb @gitlab-org/growth/product-intelligence/engineers
/lib/gitlab/usage_data_counters/ @gitlab-org/growth/product-intelligence/engineers
+
+[Growth Experiments]
+/app/assets/javascripts/lib/utils/experimentation.js @gitlab-org/growth/experiment-devs
+/app/experiments/ @gitlab-org/growth/experiment-devs
+/app/models/experiment.rb @gitlab-org/growth/experiment-devs
+/app/models/experiment_subject.rb @gitlab-org/growth/experiment-devs
+/app/models/experiment_user.rb @gitlab-org/growth/experiment-devs
+/app/workers/experiments/ @gitlab-org/growth/experiment-devs
+/config/feature_flags/experiment/ @gitlab-org/growth/experiment-devs
+/ee/config/feature_flags/experiment/ @gitlab-org/growth/experiment-devs
+/ee/lib/api/experiments.rb @gitlab-org/growth/experiment-devs
+/ee/lib/ee/api/entities/experiment.rb @gitlab-org/growth/experiment-devs
+/lib/gitlab/experimentation/ @gitlab-org/growth/experiment-devs
+/lib/gitlab/experimentation.rb @gitlab-org/growth/experiment-devs
+/lib/gitlab/experimentation_logger.rb @gitlab-org/growth/experiment-devs
+
+[Legal]
+/config/dependency_decisions.yml @gitlab-org/legal-reviewers
diff --git a/.gitlab/ci/cng.gitlab-ci.yml b/.gitlab/ci/cng.gitlab-ci.yml
index 269996dfd0..af735d3212 100644
--- a/.gitlab/ci/cng.gitlab-ci.yml
+++ b/.gitlab/ci/cng.gitlab-ci.yml
@@ -1,6 +1,6 @@
cloud-native-image:
extends: .cng:rules
- image: ruby:2.7-alpine
+ image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine
dependencies: []
stage: post-test
variables:
diff --git a/.gitlab/ci/docs.gitlab-ci.yml b/.gitlab/ci/docs.gitlab-ci.yml
index 955f44c621..b42b32ea44 100644
--- a/.gitlab/ci/docs.gitlab-ci.yml
+++ b/.gitlab/ci/docs.gitlab-ci.yml
@@ -2,7 +2,7 @@
extends:
- .default-retry
- .docs:rules:review-docs
- image: ruby:2.7-alpine
+ image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine
stage: review
needs: []
variables:
@@ -66,13 +66,6 @@ docs-lint links:
- bundle exec nanoc
# Check the internal links
- bundle exec nanoc check internal_links
- # Delete the redirect files, rebuild, and check internal links again, to see if we are linking to redirects.
- # Don't delete the documentation/index.md, which is a false positive for the simple grep.
- - grep -rl "redirect_to:" /tmp/gitlab-docs/content/ee/ | grep -v "development/documentation/index.md" | xargs rm -f
- - bundle exec nanoc
- - echo -e "\e[1;96mThe following test fails when a doc links to a redirect file."
- - echo -e "\e[1;96mMake sure all links point to the correct page."
- - bundle exec nanoc check internal_links
# Check the internal anchor links
- bundle exec nanoc check internal_anchors
diff --git a/.gitlab/ci/frontend.gitlab-ci.yml b/.gitlab/ci/frontend.gitlab-ci.yml
index c87305cab1..1b4b8a1277 100644
--- a/.gitlab/ci/frontend.gitlab-ci.yml
+++ b/.gitlab/ci/frontend.gitlab-ci.yml
@@ -15,7 +15,7 @@
extends:
- .frontend-base
- .assets-compile-cache
- image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2-git-2.29-lfs-2.9-node-12.18-yarn-1.22-graphicsmagick-1.3.34
+ image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2-git-2.29-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.34
variables:
WEBPACK_VENDOR_DLL: "true"
stage: prepare
@@ -259,13 +259,13 @@ coverage-frontend:
qa-frontend-node:10:
extends: .qa-frontend-node
- image: node:dubnium
+ image: ${GITLAB_DEPENDENCY_PROXY}node:dubnium
qa-frontend-node:latest:
extends:
- .qa-frontend-node
- .frontend:rules:qa-frontend-node-latest
- image: node:latest
+ image: ${GITLAB_DEPENDENCY_PROXY}node:latest
webpack-dev-server:
extends:
diff --git a/.gitlab/ci/global.gitlab-ci.yml b/.gitlab/ci/global.gitlab-ci.yml
index 355607c17a..5de8a6bc25 100644
--- a/.gitlab/ci/global.gitlab-ci.yml
+++ b/.gitlab/ci/global.gitlab-ci.yml
@@ -16,15 +16,23 @@
- source scripts/utils.sh
- source scripts/prepare_build.sh
-.rails-cache:
+.setup-test-env-cache:
cache:
- key: "rails-v3"
+ key: "setup-test-env-v1"
paths:
- vendor/ruby/
- vendor/gitaly-ruby/
- .go/pkg/mod/
policy: pull
+.rails-cache:
+ cache:
+ key: "rails-v4"
+ paths:
+ - vendor/ruby/
+ - vendor/gitaly-ruby/
+ policy: pull
+
.static-analysis-cache:
cache:
key: "static-analysis-v2"
@@ -71,41 +79,41 @@
policy: pull
.use-pg11:
- image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2-golang-1.14-git-2.29-lfs-2.9-chrome-85-node-12.18-yarn-1.22-postgresql-11-graphicsmagick-1.3.34"
+ image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.34"
services:
- name: postgres:11.6
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- - name: redis:4.0-alpine
+ - name: redis:5.0-alpine
variables:
POSTGRES_HOST_AUTH_METHOD: trust
.use-pg12:
- image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2-golang-1.14-git-2.29-lfs-2.9-chrome-85-node-12.18-yarn-1.22-postgresql-12-graphicsmagick-1.3.34"
+ image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.34"
services:
- name: postgres:12
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- - name: redis:4.0-alpine
+ - name: redis:5.0-alpine
variables:
POSTGRES_HOST_AUTH_METHOD: trust
.use-pg11-ee:
- image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2-golang-1.14-git-2.29-lfs-2.9-chrome-85-node-12.18-yarn-1.22-postgresql-11-graphicsmagick-1.3.34"
+ image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.34"
services:
- name: postgres:11.6
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- - name: redis:4.0-alpine
- - name: elasticsearch:7.9.2
+ - name: redis:5.0-alpine
+ - name: elasticsearch:7.10.1
command: ["elasticsearch", "-E", "discovery.type=single-node"]
variables:
POSTGRES_HOST_AUTH_METHOD: trust
.use-pg12-ee:
- image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2-golang-1.14-git-2.29-lfs-2.9-chrome-85-node-12.18-yarn-1.22-postgresql-12-graphicsmagick-1.3.34"
+ image: "registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2.patched-golang-1.14-git-2.29-lfs-2.9-chrome-87-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.34"
services:
- name: postgres:12
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- - name: redis:4.0-alpine
- - name: elasticsearch:7.9.2
+ - name: redis:5.0-alpine
+ - name: elasticsearch:7.10.1
command: ["elasticsearch", "-E", "discovery.type=single-node"]
variables:
POSTGRES_HOST_AUTH_METHOD: trust
@@ -124,7 +132,7 @@
FOSS_ONLY: '1'
.use-docker-in-docker:
- image: docker:${DOCKER_VERSION}
+ image: ${GITLAB_DEPENDENCY_PROXY}docker:${DOCKER_VERSION}
services:
- docker:${DOCKER_VERSION}-dind
variables:
diff --git a/.gitlab/ci/notify.gitlab-ci.yml b/.gitlab/ci/notify.gitlab-ci.yml
index e18a092bb8..a8c156c7db 100644
--- a/.gitlab/ci/notify.gitlab-ci.yml
+++ b/.gitlab/ci/notify.gitlab-ci.yml
@@ -1,5 +1,5 @@
.notify-slack:
- image: alpine
+ image: ${GITLAB_DEPENDENCY_PROXY}alpine
stage: notify
dependencies: []
cache: {}
diff --git a/.gitlab/ci/qa.gitlab-ci.yml b/.gitlab/ci/qa.gitlab-ci.yml
index 1dc403c9d0..788b482f0a 100644
--- a/.gitlab/ci/qa.gitlab-ci.yml
+++ b/.gitlab/ci/qa.gitlab-ci.yml
@@ -47,7 +47,7 @@ update-qa-cache:
policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
.package-and-qa-base:
- image: ruby:2.7-alpine
+ image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine
stage: qa
retry: 0
script:
diff --git a/.gitlab/ci/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml
index a2a16424f4..22aa92779e 100644
--- a/.gitlab/ci/rails.gitlab-ci.yml
+++ b/.gitlab/ci/rails.gitlab-ci.yml
@@ -141,6 +141,7 @@
setup-test-env:
extends:
- .rails-job-base
+ - .setup-test-env-cache
- .rails:rules:default-refs-code-backstage-qa
- .use-pg11
stage: prepare
@@ -180,11 +181,19 @@ setup-test-env:
- tmp/tests/second_storage/
when: always
-update-rails-cache:
+update-setup-test-env-cache:
extends:
- setup-test-env
- .shared:rules:update-cache
- artifacts: {} # This job's purpose is only to update the cache.
+ artifacts:
+ paths: [] # This job's purpose is only to update the cache.
+ cache:
+ policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
+
+update-rails-cache:
+ extends:
+ - update-setup-test-env-cache
+ - .rails-cache
cache:
policy: push # We want to rebuild the cache from scratch to ensure stale dependencies are cleaned up.
@@ -376,6 +385,17 @@ db:rollback:
- bundle exec rake db:migrate VERSION=20181228175414
- bundle exec rake db:migrate SKIP_SCHEMA_VERSION_CHECK=true
+db:gitlabcom-database-testing:
+ extends: .rails:rules:db:gitlabcom-database-testing
+ stage: test
+ image: ruby:2.7-alpine
+ needs: []
+ allow_failure: true
+ script:
+ - source scripts/utils.sh
+ - install_gitlab_gem
+ - ./scripts/trigger-build gitlab-com-database-testing
+
gitlab:setup:
extends: .db-job-base
variables:
@@ -433,6 +453,8 @@ rspec:deprecations:
variables:
SETUP_DB: "false"
script:
+ - grep -h -R "keyword" deprecations/ | awk '{$1=$1};1' | sort | uniq -c | sort
+ - grep -R "keyword" deprecations/ | wc
- run_timed_command "bundle exec rubocop --only Lint/LastKeywordArgument --parallel"
artifacts:
expire_in: 31d
@@ -482,7 +504,6 @@ rspec:feature-flags:
- .coverage-base
- .rails:rules:rspec-feature-flags
stage: post-test
- allow_failure: true
# We cannot use needs since it would mean needing 84 jobs (since most are parallelized)
# so we use `dependencies` here.
dependencies:
@@ -502,7 +523,11 @@ rspec:feature-flags:
- memory-on-boot
script:
- run_timed_command "bundle install --jobs=$(nproc) --path=vendor --retry=3 --quiet --without default development test production puma unicorn kerberos metrics omnibus ed25519"
- - '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)'
+ - 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);
+ else
+ run_timed_command "bundle exec scripts/used-feature-flags";
+ fi
# EE/FOSS: default refs (MRs, master, schedules) jobs #
#######################################################
diff --git a/.gitlab/ci/releases.gitlab-ci.yml b/.gitlab/ci/releases.gitlab-ci.yml
index b3f961afe6..77f23814f3 100644
--- a/.gitlab/ci/releases.gitlab-ci.yml
+++ b/.gitlab/ci/releases.gitlab-ci.yml
@@ -4,7 +4,7 @@
.merge-train-sync:
# We don't need/want any global before/after commands, so we overwrite these
# settings.
- image: alpine:edge
+ image: ${GITLAB_DEPENDENCY_PROXY}alpine:edge
stage: sync
before_script:
- apk add --no-cache --update curl bash jq
diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml
index b7d9f18dcb..c18e898dc1 100644
--- a/.gitlab/ci/review.gitlab-ci.yml
+++ b/.gitlab/ci/review.gitlab-ci.yml
@@ -25,7 +25,7 @@ review-build-cng:
extends:
- .default-retry
- .review:rules:review-build-cng
- image: ruby:2.7-alpine
+ image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine
stage: review-prepare
before_script:
- source ./scripts/utils.sh
@@ -199,7 +199,7 @@ review-performance:
parallel-spec-reports:
extends:
- .review:rules:mr-only-manual
- image: ruby:2.7-alpine
+ image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine
stage: post-qa
dependencies: ["review-qa-all"]
variables:
diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml
index 5e8cdf0daa..1eafd024f5 100644
--- a/.gitlab/ci/rules.gitlab-ci.yml
+++ b/.gitlab/ci/rules.gitlab-ci.yml
@@ -112,6 +112,7 @@
.workhorse-patterns: &workhorse-patterns
- "GITLAB_WORKHORSE_VERSION"
- "workhorse/**/*"
+ - ".gitlab/ci/workhorse.gitlab-ci.yml"
.yaml-lint-patterns: &yaml-lint-patterns
- ".gitlab-ci.yml"
@@ -123,9 +124,12 @@
- ".gitlab/route-map.yml"
- "doc/**/*"
- ".markdownlint.json"
+ - "scripts/lint-doc.sh"
.frontend-dependency-patterns: &frontend-dependency-patterns
- "{package.json,yarn.lock}"
+ - "config/webpack.config.js"
+ - "config/helpers/*.js"
.frontend-patterns: &frontend-patterns
- "{package.json,yarn.lock}"
@@ -523,6 +527,13 @@
changes: *db-patterns
- <<: *if-merge-request-title-run-all-rspec
+.rails:rules:db:gitlabcom-database-testing:
+ rules:
+ - if: '$GITLABCOM_DATABASE_TESTING_TRIGGER_TOKEN == null'
+ when: never
+ - <<: *if-merge-request
+ changes: *db-patterns
+
.rails:rules:ee-and-foss-unit:
rules:
- changes: *backend-patterns
@@ -869,6 +880,7 @@
- <<: *if-not-ee
when: never
- <<: *if-master-schedule-2-hourly
+ allow_failure: true
- <<: *if-merge-request-title-run-all-rspec
.rails:rules:master-schedule-nightly--code-backstage:
diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml
index 74510a0a03..27b68115ed 100644
--- a/.gitlab/ci/setup.gitlab-ci.yml
+++ b/.gitlab/ci/setup.gitlab-ci.yml
@@ -26,7 +26,7 @@ cache gems:
dont-interrupt-me:
extends: .setup:rules:dont-interrupt-me
stage: sync
- image: alpine:edge
+ image: ${GITLAB_DEPENDENCY_PROXY}alpine:edge
interruptible: false
variables:
GIT_STRATEGY: none
@@ -52,7 +52,7 @@ no_ee_check:
verify-tests-yml:
extends:
- .setup:rules:verify-tests-yml
- image: ruby:2.7-alpine
+ image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine
stage: test
needs: []
script:
@@ -61,7 +61,7 @@ verify-tests-yml:
- scripts/verify-tff-mapping
.detect-test-base:
- image: ruby:2.7
+ image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7
needs: []
stage: prepare
script:
diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml
index aec0a1640f..b90c02c08e 100644
--- a/.gitlab/ci/test-metadata.gitlab-ci.yml
+++ b/.gitlab/ci/test-metadata.gitlab-ci.yml
@@ -1,5 +1,5 @@
.tests-metadata-state:
- image: ruby:2.7
+ image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7
before_script:
- source scripts/utils.sh
artifacts:
diff --git a/.gitlab/ci/verify-lockfile.gitlab-ci.yml b/.gitlab/ci/verify-lockfile.gitlab-ci.yml
new file mode 100644
index 0000000000..6336a428b4
--- /dev/null
+++ b/.gitlab/ci/verify-lockfile.gitlab-ci.yml
@@ -0,0 +1,11 @@
+verify_lockfile:
+ stage: test
+ image: registry.gitlab.com/gitlab-org/gitlab-build-images:ruby-2.7.2-git-2.29-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.34
+ needs: []
+ rules:
+ - changes:
+ - yarn.lock
+ script:
+ - npm config set @dappelt:registry https://gitlab.com/api/v4/projects/22564149/packages/npm/
+ - npx lockfile-lint@4.3.7 --path yarn.lock --allowed-hosts yarn --validate-https
+ - npx @dappelt/untamper-my-lockfile --lockfile yarn.lock
diff --git a/.gitlab/ci/workhorse.gitlab-ci.yml b/.gitlab/ci/workhorse.gitlab-ci.yml
index 2913115987..a40eebd131 100644
--- a/.gitlab/ci/workhorse.gitlab-ci.yml
+++ b/.gitlab/ci/workhorse.gitlab-ci.yml
@@ -1,6 +1,6 @@
workhorse:
extends: .workhorse:rules:workhorse
- image: golang:1.14
+ image: ${GITLAB_DEPENDENCY_PROXY}golang:1.14
stage: test
needs: []
script:
@@ -8,3 +8,39 @@ workhorse:
- git checkout .
- scripts/update-workhorse check
- make -C workhorse
+
+workhorse:verify:
+ extends: .workhorse:rules:workhorse
+ image: ${GITLAB_DEPENDENCY_PROXY}golang:1.15
+ stage: test
+ needs: []
+ script:
+ - make -C workhorse verify
+
+.workhorse:test:
+ 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:
+ GITALY_ADDRESS: "tcp://gitaly:8075"
+ stage: test
+ needs: []
+ script:
+ - go version
+ - apt-get update && apt-get -y install libimage-exiftool-perl
+ - make -C workhorse test
+
+workhorse:test using go 1.13:
+ extends: .workhorse:test
+ image: ${GITLAB_DEPENDENCY_PROXY}golang:1.13
+
+workhorse:test using go 1.14:
+ extends: .workhorse:test
+ image: ${GITLAB_DEPENDENCY_PROXY}golang:1.14
+
+workhorse:test using go 1.15:
+ extends: .workhorse:test
+ image: ${GITLAB_DEPENDENCY_PROXY}golang:1.15
diff --git a/.gitlab/issue_templates/Actionable Insight.md b/.gitlab/issue_templates/Actionable Insight.md
new file mode 100644
index 0000000000..df519f8179
--- /dev/null
+++ b/.gitlab/issue_templates/Actionable Insight.md
@@ -0,0 +1,28 @@
+
+
+### Insight
+
+
+### Supporting evidence
+
+
+### Action
+
+
+### Resources
+
+
+- :dove: [Dovetail project](Paste URL for Dovetail project here)
+- :mag: [Research issue](Paste URL for research issue here)
+- :footprints: [Follow-up issue or epic](Paste URL for follow-up issue or epic here)
+
+### Tasks
+- [ ] Assign this issue to the appropriate Product Manager, Product Designer, or UX Researcher.
+- [ ] Add the appropriate `Group` (such as `~"group::source code"`) label to the issue. This helps identify and track actionable insights at the group level.
+- [ ] Link this issue back to the original research issue in the GitLab UX Research project and the Dovetail project.
+
+
+
+
+/label ~"Actionable Insight"
+
diff --git a/.gitlab/issue_templates/Adoption Engineering.md b/.gitlab/issue_templates/Adoption Engineering.md
new file mode 100644
index 0000000000..01e9d0ea03
--- /dev/null
+++ b/.gitlab/issue_templates/Adoption Engineering.md
@@ -0,0 +1,14 @@
+#Design
+
+
+
+#Rollout strategy
+
+
+#Inclusions and exclusions
+
+
+#Segmentation
+
+
+#Tracking
diff --git a/.gitlab/issue_templates/Basic Proposal.md b/.gitlab/issue_templates/Basic Proposal.md
index 4232561354..8d47e87f8a 100644
--- a/.gitlab/issue_templates/Basic Proposal.md
+++ b/.gitlab/issue_templates/Basic Proposal.md
@@ -6,6 +6,6 @@
diff --git a/.gitlab/issue_templates/Dogfooding.md b/.gitlab/issue_templates/Dogfooding.md
new file mode 100644
index 0000000000..d780fbd3f1
--- /dev/null
+++ b/.gitlab/issue_templates/Dogfooding.md
@@ -0,0 +1,17 @@
+
+
+/label ~"dogfooding" ~"group::" ~"section::" ~"Category::"
+
+## Feature to Dogfood
+
+
+## Goals
+
+
+## Progress Tracker
+
+
+## Why Dogfooding is Important
+- https://about.gitlab.com/handbook/values/#dogfooding
+- https://about.gitlab.com/handbook/product/product-processes/#dogfood-everything
+- https://about.gitlab.com/handbook/engineering/#dogfooding
diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md
index 67686b654b..615fb64496 100644
--- a/.gitlab/issue_templates/Feature Flag Roll Out.md
+++ b/.gitlab/issue_templates/Feature Flag Roll Out.md
@@ -31,7 +31,6 @@ If applicable, any groups/projects that are happy to have this feature turned on
## Roll Out Steps
-- [ ] Confirm that QA tests pass with the feature flag enabled (if you're unsure how, contact the relevant [stable counterpart in the Quality department](https://about.gitlab.com/handbook/engineering/quality/#individual-contributors))
- [ ] Enable on staging (`/chatops run feature set feature_name true --staging`)
- [ ] Test on staging
- [ ] Ensure that documentation has been updated
@@ -42,7 +41,7 @@ If applicable, any groups/projects that are happy to have this feature turned on
- [ ] Enable on GitLab.com by running chatops command in `#production` (`/chatops run feature set feature_name true`)
- [ ] Cross post chatops Slack command to `#support_gitlab-com` ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/ee/development/feature_flags/controls.html#where-to-run-commands)) and in your team channel
- [ ] Announce on the issue that the flag has been enabled
-- [ ] Remove feature flag and add changelog entry
+- [ ] Remove feature flag and add changelog entry. Ensure that the feature flag definition YAML file has been removed in the **same MR** that is removing the feature flag from the code
- [ ] After the flag removal is deployed, [clean up the feature flag](https://docs.gitlab.com/ee/development/feature_flags/controls.html#cleaning-up) by running chatops command in `#production` channel
## Rollback Steps
diff --git a/.gitlab/issue_templates/Feature proposal.md b/.gitlab/issue_templates/Feature proposal.md
index 66450c37a2..2cdf2341c8 100644
--- a/.gitlab/issue_templates/Feature proposal.md
+++ b/.gitlab/issue_templates/Feature proposal.md
@@ -61,7 +61,7 @@ Consider adding checkboxes and expectations of users with certain levels of memb
### Availability & Testing
@@ -97,7 +97,7 @@ Create tracking issue using the the Snowplow event tracking template. See https:
### What is the type of buyer?
+In which enterprise tier should this feature go? See https://about.gitlab.com/handbook/product/pricing/#three-tiers -->
### Is this a cross-stage feature?
@@ -111,5 +111,5 @@ Use the following resources to find the appropriate labels:
- https://about.gitlab.com/handbook/product/categories/features/
-->
/label ~devops:: ~group: ~Category:
-
+/label ~"GitLab Core"/~"GitLab Premium"/~"GitLab Ultimate"
/label ~feature
diff --git a/.gitlab/issue_templates/Lean Feature Proposal.md b/.gitlab/issue_templates/Lean Feature Proposal.md
index 44210a8902..fb9ac306f3 100644
--- a/.gitlab/issue_templates/Lean Feature Proposal.md
+++ b/.gitlab/issue_templates/Lean Feature Proposal.md
@@ -14,7 +14,7 @@
-/label ~"feature" ~"group::" ~"section::" ~"Category::" ~"GitLab Core"/~"GitLab Starter"/~"GitLab Premium"/~"GitLab Ultimate"
+/label ~"feature" ~"group::" ~"section::" ~"Category::" ~"GitLab Core"/~"GitLab Premium"/~"GitLab Ultimate"
+
+/label ~"group::database" ~"database::triage"
diff --git a/.gitlab/issue_templates/Security developer workflow.md b/.gitlab/issue_templates/Security developer workflow.md
index 3de004b031..beb066cdfc 100644
--- a/.gitlab/issue_templates/Security developer workflow.md
+++ b/.gitlab/issue_templates/Security developer workflow.md
@@ -1,7 +1,7 @@
diff --git a/.gitlab/issue_templates/actionable_insight.md b/.gitlab/issue_templates/actionable_insight.md
deleted file mode 100644
index ff6a4f1291..0000000000
--- a/.gitlab/issue_templates/actionable_insight.md
+++ /dev/null
@@ -1,34 +0,0 @@
-## Actionable Insights
-Actionable insights always have a follow-up action that needs to take place as a result of the research observation or data, and a clear recommendation or action associated with it. An actionable insight both defines the insight and clearly calls out the next step. These insights are tracked over time and at the group level.
-
-#### Link
-
-- [ ] Provide the link to the Dovetail actionable insight you created earlier (this should contain all the essential details)
-- [ ] If applicable, link this actionable insight issue back to the original Research Issue in the GitLab UX Research project
-
-#### Assign
-
-- [ ] Assign this issue to the appropriate Product Manager, Product Designer, or UX Researcher
-
-#### Group label
-
-- [ ] Add the appropriate `Group` (such as `~"group::source code"`) label to the issue. This is done to identify and track actionable insights at the group level.
-
-#### Description
-
-- [ ] Provide some brief details on the actionable insight and the action to take
-
--------------------------------------------------------------------------------
-
-| | PLEASE COMPLETE THE BELOW |
-| ------ | ------ |
-| Dovetail link: | (URL goes here) |
-| Details: | (details go here) |
-| Action to take: | (action goes here) |
-
-
-
-
-
-
-/label ~"Actionable Insight"
diff --git a/.gitlab/merge_request_templates/Change Documentation Location.md b/.gitlab/merge_request_templates/Change Documentation Location.md
index 1197c6adc4..0c675d8d0c 100644
--- a/.gitlab/merge_request_templates/Change Documentation Location.md
+++ b/.gitlab/merge_request_templates/Change Documentation Location.md
@@ -8,9 +8,7 @@
## Related issues
-
-
-Closes
+
## Moving docs to a new location?
diff --git a/.gitlab/merge_request_templates/Documentation.md b/.gitlab/merge_request_templates/Documentation.md
index 9113bf7d02..0c507277ed 100644
--- a/.gitlab/merge_request_templates/Documentation.md
+++ b/.gitlab/merge_request_templates/Documentation.md
@@ -11,7 +11,7 @@
## Related issues
-
+
## Author's checklist (required)
@@ -31,13 +31,13 @@ When applicable:
- [ ] Update the [permissions table](https://docs.gitlab.com/ee/user/permissions.html).
- [ ] Link docs to and from the higher-level index page, plus other related docs where helpful.
-- [ ] Add the [product tier badge](https://docs.gitlab.com/ee/development/documentation/styleguide.html#product-badges) accordingly.
-- [ ] Add [GitLab's version history note(s)](https://docs.gitlab.com/ee/development/documentation/styleguide.html#text-for-documentation-requiring-version-text).
+- [ ] Add the [product tier badge](https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges) accordingly.
+- [ ] Add [GitLab's version history note(s)](https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#gitlab-versions).
- [ ] Add/update the [feature flag section](https://docs.gitlab.com/ee/development/documentation/feature_flags.html).
## Review checklist
-All reviewers can help ensure accuracy, clarity, completeness, and adherence to the [Documentation Guidelines](https://docs.gitlab.com/ee/development/documentation/) and [Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide.html).
+All reviewers can help ensure accuracy, clarity, completeness, and adherence to the [Documentation Guidelines](https://docs.gitlab.com/ee/development/documentation/) and [Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide/).
**1. Primary Reviewer**
diff --git a/.gitlab/merge_request_templates/New Static Analysis Check.md b/.gitlab/merge_request_templates/New Static Analysis Check.md
index 5fd2d31767..66041a784e 100644
--- a/.gitlab/merge_request_templates/New Static Analysis Check.md
+++ b/.gitlab/merge_request_templates/New Static Analysis Check.md
@@ -1,3 +1,8 @@
+
+
## Description of the proposal
+
+
+ {{ __('We want to be sure it is you, please confirm you are not a robot.') }}
+ {{ $options.i18n.highlightMessage }} +
+
+
{{ s__('GrafanaIntegration|Embed Grafana charts in GitLab issues.') }} diff --git a/app/assets/javascripts/grafana_integration/index.js b/app/assets/javascripts/grafana_integration/index.js index a93edab438..208a92c97c 100644 --- a/app/assets/javascripts/grafana_integration/index.js +++ b/app/assets/javascripts/grafana_integration/index.js @@ -1,6 +1,6 @@ import Vue from 'vue'; -import store from './store'; import GrafanaIntegration from './components/grafana_integration.vue'; +import store from './store'; export default () => { const el = document.querySelector('.js-grafana-integration'); diff --git a/app/assets/javascripts/grafana_integration/store/actions.js b/app/assets/javascripts/grafana_integration/store/actions.js index 436f92eae8..7c5d469573 100644 --- a/app/assets/javascripts/grafana_integration/store/actions.js +++ b/app/assets/javascripts/grafana_integration/store/actions.js @@ -1,7 +1,7 @@ -import axios from '~/lib/utils/axios_utils'; -import { __ } from '~/locale'; import { deprecatedCreateFlash as createFlash } from '~/flash'; +import axios from '~/lib/utils/axios_utils'; import { refreshCurrentPage } from '~/lib/utils/url_utility'; +import { __ } from '~/locale'; import * as mutationTypes from './mutation_types'; export const setGrafanaUrl = ({ commit }, url) => commit(mutationTypes.SET_GRAFANA_URL, url); diff --git a/app/assets/javascripts/grafana_integration/store/index.js b/app/assets/javascripts/grafana_integration/store/index.js index e3dcfd31a8..a11bd8089f 100644 --- a/app/assets/javascripts/grafana_integration/store/index.js +++ b/app/assets/javascripts/grafana_integration/store/index.js @@ -1,8 +1,8 @@ import Vue from 'vue'; import Vuex from 'vuex'; -import createState from './state'; import * as actions from './actions'; import mutations from './mutations'; +import createState from './state'; Vue.use(Vuex); diff --git a/app/assets/javascripts/graphql_shared/fragments/alert_note.fragment.graphql b/app/assets/javascripts/graphql_shared/fragments/alert_note.fragment.graphql index 74b425717a..801311301a 100644 --- a/app/assets/javascripts/graphql_shared/fragments/alert_note.fragment.graphql +++ b/app/assets/javascripts/graphql_shared/fragments/alert_note.fragment.graphql @@ -1,4 +1,4 @@ -#import "~/graphql_shared/fragments/author.fragment.graphql" +#import "./author.fragment.graphql" fragment AlertNote on Note { id diff --git a/app/assets/javascripts/graphql_shared/mutations/update_alert_status.mutation.graphql b/app/assets/javascripts/graphql_shared/mutations/alert_status_update.mutation.graphql similarity index 83% rename from app/assets/javascripts/graphql_shared/mutations/update_alert_status.mutation.graphql rename to app/assets/javascripts/graphql_shared/mutations/alert_status_update.mutation.graphql index 42dc388c9d..ba1e607bc1 100644 --- a/app/assets/javascripts/graphql_shared/mutations/update_alert_status.mutation.graphql +++ b/app/assets/javascripts/graphql_shared/mutations/alert_status_update.mutation.graphql @@ -1,4 +1,4 @@ -#import "~/graphql_shared/fragments/alert_note.fragment.graphql" +#import "../fragments/alert_note.fragment.graphql" mutation updateAlertStatus($projectPath: ID!, $status: AlertManagementStatus!, $iid: String!) { updateAlertStatus(input: { iid: $iid, status: $status, projectPath: $projectPath }) { diff --git a/app/assets/javascripts/graphql_shared/queries/get_alerts.query.graphql b/app/assets/javascripts/graphql_shared/queries/get_alerts.query.graphql index e94758ef60..7a676e67f1 100644 --- a/app/assets/javascripts/graphql_shared/queries/get_alerts.query.graphql +++ b/app/assets/javascripts/graphql_shared/queries/get_alerts.query.graphql @@ -10,6 +10,7 @@ query getAlerts( $nextPageCursor: String = "" $searchTerm: String = "" $assigneeUsername: String = "" + $domain: AlertManagementDomainFilter = operations ) { project(fullPath: $projectPath) { alertManagementAlerts( @@ -21,6 +22,7 @@ query getAlerts( last: $lastPageSize after: $nextPageCursor before: $prevPageCursor + domain: $domain ) { nodes { ...AlertListItem diff --git a/app/assets/javascripts/group.js b/app/assets/javascripts/group.js index 6878635b28..39c8a88d48 100644 --- a/app/assets/javascripts/group.js +++ b/app/assets/javascripts/group.js @@ -1,7 +1,7 @@ -import { slugify } from './lib/utils/text_utility'; -import fetchGroupPathAvailability from '~/pages/groups/new/fetch_group_path_availability'; import { deprecatedCreateFlash as flash } from '~/flash'; import { __ } from '~/locale'; +import fetchGroupPathAvailability from '~/pages/groups/new/fetch_group_path_availability'; +import { slugify } from './lib/utils/text_utility'; export default class Group { constructor() { diff --git a/app/assets/javascripts/group_label_subscription.js b/app/assets/javascripts/group_label_subscription.js index bfaa54080b..257f5ac965 100644 --- a/app/assets/javascripts/group_label_subscription.js +++ b/app/assets/javascripts/group_label_subscription.js @@ -1,8 +1,8 @@ import $ from 'jquery'; import { __ } from '~/locale'; -import axios from './lib/utils/axios_utils'; -import { deprecatedCreateFlash as flash } from './flash'; import { fixTitle, hide } from '~/tooltips'; +import { deprecatedCreateFlash as flash } from './flash'; +import axios from './lib/utils/axios_utils'; const tooltipTitles = { group: __('Unsubscribe at group level'), diff --git a/app/assets/javascripts/group_settings/components/shared_runners_form.vue b/app/assets/javascripts/group_settings/components/shared_runners_form.vue index d6ed08a940..a1d706f0f6 100644 --- a/app/assets/javascripts/group_settings/components/shared_runners_form.vue +++ b/app/assets/javascripts/group_settings/components/shared_runners_form.vue @@ -1,8 +1,8 @@ @@ -134,17 +153,22 @@ export default { @after-enter="afterEndTransition" >
{{ overviewText }}