From 859a6fb938bb9ee2a317c46dfa4fcc1af49608f0 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 18 Feb 2021 10:34:06 +0000 Subject: Add latest changes from gitlab-org/gitlab@13-9-stable-ee --- .gitlab/CODEOWNERS | 263 +++++++++++---------- .gitlab/ci/cng.gitlab-ci.yml | 2 +- .gitlab/ci/docs.gitlab-ci.yml | 9 +- .gitlab/ci/frontend.gitlab-ci.yml | 6 +- .gitlab/ci/global.gitlab-ci.yml | 34 ++- .gitlab/ci/notify.gitlab-ci.yml | 2 +- .gitlab/ci/qa.gitlab-ci.yml | 2 +- .gitlab/ci/rails.gitlab-ci.yml | 33 ++- .gitlab/ci/releases.gitlab-ci.yml | 2 +- .gitlab/ci/review.gitlab-ci.yml | 4 +- .gitlab/ci/rules.gitlab-ci.yml | 12 + .gitlab/ci/setup.gitlab-ci.yml | 6 +- .gitlab/ci/test-metadata.gitlab-ci.yml | 2 +- .gitlab/ci/verify-lockfile.gitlab-ci.yml | 11 + .gitlab/ci/workhorse.gitlab-ci.yml | 38 ++- .gitlab/issue_templates/Actionable Insight.md | 28 +++ .gitlab/issue_templates/Adoption Engineering.md | 14 ++ .gitlab/issue_templates/Basic Proposal.md | 2 +- .gitlab/issue_templates/Dogfooding.md | 17 ++ .gitlab/issue_templates/Feature Flag Roll Out.md | 3 +- .gitlab/issue_templates/Feature proposal.md | 6 +- .gitlab/issue_templates/Lean Feature Proposal.md | 6 +- .../Query Performance Investigation.md | 39 +++ .../issue_templates/Security developer workflow.md | 2 +- .gitlab/issue_templates/actionable_insight.md | 34 --- .../Change Documentation Location.md | 4 +- .gitlab/merge_request_templates/Documentation.md | 8 +- .../New Static Analysis Check.md | 5 + 28 files changed, 377 insertions(+), 217 deletions(-) create mode 100644 .gitlab/ci/verify-lockfile.gitlab-ci.yml create mode 100644 .gitlab/issue_templates/Actionable Insight.md create mode 100644 .gitlab/issue_templates/Adoption Engineering.md create mode 100644 .gitlab/issue_templates/Dogfooding.md create mode 100644 .gitlab/issue_templates/Query Performance Investigation.md delete mode 100644 .gitlab/issue_templates/actionable_insight.md (limited to '.gitlab') diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index df81d05eec1..0d34eeccf8c 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 269996dfd09..af735d3212a 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 955f44c6216..b42b32ea44d 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 c87305cab18..1b4b8a12772 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 355607c17ac..5de8a6bc250 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 e18a092bb8f..a8c156c7dba 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 1dc403c9d06..788b482f0a6 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 a2a16424f4a..22aa92779ea 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 b3f961afe62..77f23814f3c 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 b7d9f18dcb4..c18e898dc12 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 5e8cdf0daaf..1eafd024f5e 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 74510a0a03a..27b68115edc 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 aec0a1640f1..b90c02c08ef 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 00000000000..6336a428b4b --- /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 29131159876..a40eebd131b 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 00000000000..df519f81799 --- /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 00000000000..01e9d0ea033 --- /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 4232561354c..8d47e87f8a3 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 00000000000..d780fbd3f1f --- /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 67686b654bd..615fb644967 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 66450c37a22..2cdf2341c88 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 44210a89023..fb9ac306f31 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 3de004b0319..beb066cdfc4 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 ff6a4f12918..00000000000 --- 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 1197c6adc40..0c675d8d0c6 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 9113bf7d028..0c507277ede 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 5fd2d31767a..66041a784e8 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