diff --git a/.eslintrc.yml b/.eslintrc.yml index 48294e0084..1e6df6f5a7 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -42,6 +42,7 @@ rules: no-jquery/no-serialize: error promise/always-return: off promise/no-callback-in-promise: off + "@gitlab/no-global-event-off": error overrides: - files: - '**/spec/**/*' diff --git a/.gitattributes b/.gitattributes index 8d21784ed1..720e5f6254 100644 --- a/.gitattributes +++ b/.gitattributes @@ -2,3 +2,4 @@ VERSION merge=ours Dangerfile gitlab-language=ruby *.pdf filter=lfs diff=lfs merge=lfs -text *.rb diff=ruby +workhorse/testdata/*.pdf -filter -diff -merge diff --git a/.gitignore b/.gitignore index 30cb231e83..93fb0b1144 100644 --- a/.gitignore +++ b/.gitignore @@ -77,6 +77,7 @@ eslint-report.html /.gitlab_kas_secret /webpack-report/ /crystalball/ +/deprecations/ /knapsack/ /rspec_flaky/ /locale/**/LC_MESSAGES diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 4ea5ad1b40..5e54f9cde3 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -109,3 +109,4 @@ include: - local: .gitlab/ci/releases.gitlab-ci.yml - local: .gitlab/ci/notify.gitlab-ci.yml - local: .gitlab/ci/dast.gitlab-ci.yml + - local: .gitlab/ci/workhorse.gitlab-ci.yml diff --git a/.gitlab/CODEOWNERS b/.gitlab/CODEOWNERS index a24fef5e44..70d9dbc9ad 100644 --- a/.gitlab/CODEOWNERS +++ b/.gitlab/CODEOWNERS @@ -147,6 +147,8 @@ /ee/spec/javascripts/ @gitlab-org/maintainers/frontend /spec/frontend/ @gitlab-org/maintainers/frontend /ee/spec/frontend/ @gitlab-org/maintainers/frontend +/spec/frontend_integration/ @gitlab-org/maintainers/frontend +/ee/spec/frontend_integration/ @gitlab-org/maintainers/frontend [Database] /db/ @gitlab-org/maintainers/database @@ -159,6 +161,7 @@ /lib/gitlab/github_import/ @gitlab-org/maintainers/database /app/finders/ @gitlab-org/maintainers/database /ee/app/finders/ @gitlab-org/maintainers/database +/rubocop/rubocop-migrations.yml @gitlab-org/maintainers/database [Engineering Productivity] /.gitlab-ci.yml @gl-quality/eng-prod @@ -194,12 +197,17 @@ Dangerfile @gl-quality/eng-prod # Secure & Threat Management ownership delineation # https://about.gitlab.com/handbook/engineering/development/threat-management/delineate-secure-threat-management.html#technical-boundaries -[Secure] +[Threat Insights] /ee/app/finders/security/ @gitlab-org/secure/threat-insights-backend-team /ee/app/models/security/ @gitlab-org/secure/threat-insights-backend-team /ee/app/models/vulnerabilities/ @gitlab-org/secure/threat-insights-backend-team /ee/app/models/vulnerability.rb @gitlab-org/secure/threat-insights-backend-team +/ee/app/policies/vulnerabilities/ @gitlab-org/secure/threat-insights-backend-team +/ee/app/policies/vulnerability*.rb @gitlab-org/secure/threat-insights-backend-team /ee/lib/api/vulnerabilit*.rb @gitlab-org/secure/threat-insights-backend-team +/ee/spec/policies/vulnerabilities/ @gitlab-org/secure/threat-insights-backend-team +/ee/spec/policies/vulnerabilities/vulnerability*.rb @gitlab-org/secure/threat-insights-backend-team +[Secure] /ee/lib/gitlab/ci/parsers/license_compliance/ @gitlab-org/secure/composition-analysis-be /ee/lib/gitlab/ci/parsers/security/ @gitlab-org/secure/composition-analysis-be @gitlab-org/secure/dynamic-analysis-be @gitlab-org/secure/static-analysis-be @gitlab-org/secure/fuzzing-be /ee/lib/gitlab/ci/reports/coverage_fuzzing/ @gitlab-org/secure/fuzzing-be diff --git a/.gitlab/ci/dev-fixtures.gitlab-ci.yml b/.gitlab/ci/dev-fixtures.gitlab-ci.yml index 4141cc7f07..c19dce7e4a 100644 --- a/.gitlab/ci/dev-fixtures.gitlab-ci.yml +++ b/.gitlab/ci/dev-fixtures.gitlab-ci.yml @@ -8,9 +8,9 @@ needs: ["setup-test-env"] variables: FIXTURE_PATH: "db/fixtures/development" - SEED_CYCLE_ANALYTICS: "true" + SEED_VSA: "true" SEED_PRODUCTIVITY_ANALYTICS: "true" - CYCLE_ANALYTICS_ISSUE_COUNT: 1 + VSA_ISSUE_COUNT: 1 SIZE: 0 # number of external projects to fork, requires network connection # SEED_NESTED_GROUPS: "false" # requires network connection diff --git a/.gitlab/ci/docs.gitlab-ci.yml b/.gitlab/ci/docs.gitlab-ci.yml index b258eb7351..d6dc709a11 100644 --- a/.gitlab/ci/docs.gitlab-ci.yml +++ b/.gitlab/ci/docs.gitlab-ci.yml @@ -53,7 +53,7 @@ docs-lint links: extends: - .default-retry - .docs:rules:docs-lint - image: "registry.gitlab.com/gitlab-org/gitlab-docs/lint:ruby-2.7.2-alpine-3.12-vale-2.4.3-markdownlint-0.24.0" + image: "registry.gitlab.com/gitlab-org/gitlab-docs/lint-html:alpine-3.12-ruby-2.7.2" stage: test needs: [] script: @@ -66,6 +66,13 @@ 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/rails.gitlab-ci.yml b/.gitlab/ci/rails.gitlab-ci.yml index 14b07dd4a2..2818b6be17 100644 --- a/.gitlab/ci/rails.gitlab-ci.yml +++ b/.gitlab/ci/rails.gitlab-ci.yml @@ -14,6 +14,10 @@ - run_timed_command "scripts/gitaly-test-spawn" - source ./scripts/rspec_helpers.sh +.minimal-rspec-tests: + variables: + RSPEC_TESTS_MAPPING_ENABLED: "true" + .rspec-base: extends: .rails-job-base stage: test @@ -21,7 +25,8 @@ RUBY_GC_MALLOC_LIMIT: 67108864 RUBY_GC_MALLOC_LIMIT_MAX: 134217728 CRYSTALBALL: "true" - needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets"] + RECORD_DEPRECATIONS: "true" + needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets", "detect-tests"] script: - *base-script - rspec_paralellized_job "--tag ~quarantine --tag ~geo --tag ~level:migration" @@ -31,6 +36,7 @@ paths: - coverage/ - crystalball/ + - deprecations/ - knapsack/ - rspec_flaky/ - rspec_profiling/ @@ -62,7 +68,7 @@ - .rspec-base - .as-if-foss - .use-pg11 - needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets as-if-foss"] + needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets as-if-foss", "detect-tests"] .rspec-ee-base-pg11: extends: @@ -238,24 +244,48 @@ rspec migration pg11: - .rspec-base-migration - .rspec-migration-parallel +rspec migration pg11 minimal: + extends: + - rspec migration pg11 + - .minimal-rspec-tests + - .rails:rules:ee-and-foss-migration:minimal + rspec unit pg11: extends: - .rspec-base-pg11 - .rails:rules:ee-and-foss-unit - .rspec-unit-parallel +rspec unit pg11 minimal: + extends: + - rspec unit pg11 + - .minimal-rspec-tests + - .rails:rules:ee-and-foss-unit:minimal + rspec integration pg11: extends: - .rspec-base-pg11 - .rails:rules:ee-and-foss-integration - .rspec-integration-parallel +rspec integration pg11 minimal: + extends: + - rspec integration pg11 + - .minimal-rspec-tests + - .rails:rules:ee-and-foss-integration:minimal + rspec system pg11: extends: - .rspec-base-pg11 - .rails:rules:ee-and-foss-system - .rspec-system-parallel +rspec system pg11 minimal: + extends: + - rspec system pg11 + - .minimal-rspec-tests + - .rails:rules:ee-and-foss-system:minimal + rspec fast_spec_helper: extends: - .rspec-base-pg11 @@ -263,6 +293,12 @@ rspec fast_spec_helper: script: - bin/rspec spec/fast_spec_helper.rb +rspec fast_spec_helper minimal: + extends: + - rspec fast_spec_helper + - .minimal-rspec-tests + - .rails:rules:ee-and-foss-fast_spec_helper:minimal + db:migrate:reset: extends: .db-job-base script: @@ -284,7 +320,7 @@ db:migrate-from-v12.10.0: - export TAG_TO_CHECKOUT="v12.10.0-ee" - '[[ -d "ee/" ]] || export PROJECT_TO_CHECKOUT="gitlab-foss"' - '[[ -d "ee/" ]] || export TAG_TO_CHECKOUT="v12.10.0"' - - 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' - git checkout -f FETCH_HEAD - sed -i -e "s/gem 'grpc', '~> 1.24.0'/gem 'grpc', '~> 1.30.2'/" Gemfile # Update gRPC for Ruby 2.7 - sed -i -e "s/gem 'google-protobuf', '~> 3.8.0'/gem 'google-protobuf', '~> 3.12.0'/" Gemfile @@ -382,6 +418,7 @@ 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: @@ -401,7 +438,8 @@ 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" + - '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)' + # EE/FOSS: default refs (MRs, master, schedules) jobs # ####################################################### @@ -414,24 +452,48 @@ rspec migration pg11-as-if-foss: - .rails:rules:as-if-foss-migration - .rspec-migration-parallel +rspec migration pg11-as-if-foss minimal: + extends: + - rspec migration pg11-as-if-foss + - .minimal-rspec-tests + - .rails:rules:as-if-foss-migration:minimal + rspec unit pg11-as-if-foss: extends: - .rspec-base-pg11-as-if-foss - .rails:rules:as-if-foss-unit - .rspec-unit-parallel +rspec unit pg11-as-if-foss minimal: + extends: + - rspec unit pg11-as-if-foss + - .minimal-rspec-tests + - .rails:rules:as-if-foss-unit:minimal + rspec integration pg11-as-if-foss: extends: - .rspec-base-pg11-as-if-foss - .rails:rules:as-if-foss-integration - .rspec-integration-parallel +rspec integration pg11-as-if-foss minimal: + extends: + - rspec integration pg11-as-if-foss + - .minimal-rspec-tests + - .rails:rules:as-if-foss-integration:minimal + rspec system pg11-as-if-foss: extends: - .rspec-base-pg11-as-if-foss - .rails:rules:as-if-foss-system - .rspec-system-parallel +rspec system pg11-as-if-foss minimal: + extends: + - rspec system pg11-as-if-foss + - .minimal-rspec-tests + - .rails:rules:as-if-foss-system:minimal + rspec-ee migration pg11: extends: - .rspec-ee-base-pg11 @@ -439,40 +501,82 @@ rspec-ee migration pg11: - .rails:rules:ee-only-migration - .rspec-ee-migration-parallel +rspec-ee migration pg11 minimal: + extends: + - rspec-ee migration pg11 + - .minimal-rspec-tests + - .rails:rules:ee-only-migration:minimal + rspec-ee unit pg11: extends: - .rspec-ee-base-pg11 - .rails:rules:ee-only-unit - .rspec-ee-unit-parallel +rspec-ee unit pg11 minimal: + extends: + - rspec-ee unit pg11 + - .minimal-rspec-tests + - .rails:rules:ee-only-unit:minimal + rspec-ee integration pg11: extends: - .rspec-ee-base-pg11 - .rails:rules:ee-only-integration - .rspec-ee-integration-parallel +rspec-ee integration pg11 minimal: + extends: + - rspec-ee integration pg11 + - .minimal-rspec-tests + - .rails:rules:ee-only-integration:minimal + rspec-ee system pg11: extends: - .rspec-ee-base-pg11 - .rails:rules:ee-only-system - .rspec-ee-system-parallel +rspec-ee system pg11 minimal: + extends: + - rspec-ee system pg11 + - .minimal-rspec-tests + - .rails:rules:ee-only-system:minimal + rspec-ee unit pg11 geo: extends: - .rspec-ee-base-geo-pg11 - .rails:rules:ee-only-unit - .rspec-ee-unit-geo-parallel +rspec-ee unit pg11 geo minimal: + extends: + - rspec-ee unit pg11 geo + - .minimal-rspec-tests + - .rails:rules:ee-only-unit:minimal + rspec-ee integration pg11 geo: extends: - .rspec-ee-base-geo-pg11 - .rails:rules:ee-only-integration +rspec-ee integration pg11 geo minimal: + extends: + - rspec-ee integration pg11 geo + - .minimal-rspec-tests + - .rails:rules:ee-only-integration:minimal + rspec-ee system pg11 geo: extends: - .rspec-ee-base-geo-pg11 - .rails:rules:ee-only-system +rspec-ee system pg11 geo minimal: + extends: + - rspec-ee system pg11 geo + - .minimal-rspec-tests + - .rails:rules:ee-only-system:minimal + db:rollback geo: extends: - db:rollback diff --git a/.gitlab/ci/reports.gitlab-ci.yml b/.gitlab/ci/reports.gitlab-ci.yml index 565ed93967..85aec07055 100644 --- a/.gitlab/ci/reports.gitlab-ci.yml +++ b/.gitlab/ci/reports.gitlab-ci.yml @@ -145,6 +145,10 @@ dependency_scanning: --volume "$PWD:/code" \ --volume /var/run/docker.sock:/var/run/docker.sock \ "registry.gitlab.com/gitlab-org/security-products/dependency-scanning:$DS_MAJOR_VERSION" /code + # Post-processing: This will be an after_script once this job will use the Dependency Scanning CI template + - apk add jq + # Lower execa severity based on https://gitlab.com/gitlab-org/gitlab/-/issues/223859#note_452922390 + - jq '(.vulnerabilities[] | select (.cve == "yarn.lock:execa:gemnasium:05cfa2e8-2d0c-42c1-8894-638e2f12ff3d")).severity = "Medium"' gl-dependency-scanning-report.json > temp.json && mv temp.json gl-dependency-scanning-report.json artifacts: paths: - gl-dependency-scanning-report.json # GitLab-specific diff --git a/.gitlab/ci/review.gitlab-ci.yml b/.gitlab/ci/review.gitlab-ci.yml index d3069657e8..f1bd173ff6 100644 --- a/.gitlab/ci/review.gitlab-ci.yml +++ b/.gitlab/ci/review.gitlab-ci.yml @@ -38,7 +38,7 @@ review-build-cng: - BUILD_TRIGGER_TOKEN=$REVIEW_APPS_BUILD_TRIGGER_TOKEN ./scripts/trigger-build cng # When the job is manual, review-deploy is also manual and we don't want people # to have to manually start the jobs in sequence, so we do it for them. - - '[ -z $CI_JOB_MANUAL ] || play_job "review-deploy"' + - '[ -z $CI_JOB_MANUAL ] || scripts/api/play_job --job-name "review-deploy"' .review-workflow-base: extends: @@ -78,8 +78,8 @@ review-deploy: - disable_sign_ups || (delete_release && exit 1) # When the job is manual, review-qa-smoke is also manual and we don't want people # to have to manually start the jobs in sequence, so we do it for them. - - '[ -z $CI_JOB_MANUAL ] || play_job "review-qa-smoke"' - - '[ -z $CI_JOB_MANUAL ] || play_job "review-performance"' + - '[ -z $CI_JOB_MANUAL ] || scripts/api/play_job --job-name "review-qa-smoke"' + - '[ -z $CI_JOB_MANUAL ] || scripts/api/play_job --job-name "review-performance"' after_script: # Run seed-dast-test-data.sh only when DAST_RUN is set to true. This is to pupulate review app with data for DAST scan. # Set DAST_RUN to true when jobs are manually scheduled. diff --git a/.gitlab/ci/rules.gitlab-ci.yml b/.gitlab/ci/rules.gitlab-ci.yml index 7f469221da..159defc83c 100644 --- a/.gitlab/ci/rules.gitlab-ci.yml +++ b/.gitlab/ci/rules.gitlab-ci.yml @@ -46,6 +46,9 @@ .if-security-merge-request: &if-security-merge-request if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_MERGE_REQUEST_IID' +.if-security-schedule: &if-security-schedule + if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_PIPELINE_SOURCE == "schedule"' + .if-dot-com-gitlab-org-schedule: &if-dot-com-gitlab-org-schedule if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_PIPELINE_SOURCE == "schedule"' @@ -67,6 +70,9 @@ .if-cache-credentials-schedule: &if-cache-credentials-schedule if: '$CI_REPO_CACHE_CREDENTIALS && $CI_PIPELINE_SOURCE == "schedule"' +.if-merge-request-rspec-minimal-disabled: &if-merge-request-rspec-minimal-disabled + if: '$CI_MERGE_REQUEST_IID && $RSPEC_MINIMAL_ENABLED != "true"' + .if-rspec-fail-fast-disabled: &if-rspec-fail-fast-disabled if: '$RSPEC_FAIL_FAST_ENABLED != "true"' @@ -103,6 +109,10 @@ - ".gitlab/ci/build-images.gitlab-ci.yml" - ".gitlab/ci/qa.gitlab-ci.yml" +.workhorse-patterns: &workhorse-patterns + - "GITLAB_WORKHORSE_VERSION" + - "workhorse/**/*" + .yaml-lint-patterns: &yaml-lint-patterns - ".gitlab-ci.yml" - ".gitlab/ci/**/*.yml" @@ -154,6 +164,7 @@ - "{,ee/}fixtures/**/*" - "{,ee/}rubocop/**/*" - "{,ee/}spec/**/*" + - "{,spec/}tooling/**/*" .code-patterns: &code-patterns - "{package.json,yarn.lock}" @@ -200,6 +211,7 @@ - "{,ee/}fixtures/**/*" - "{,ee/}rubocop/**/*" - "{,ee/}spec/**/*" + - "{,spec/}tooling/**/*" .code-qa-patterns: &code-qa-patterns - "{package.json,yarn.lock}" @@ -245,6 +257,7 @@ - "{,ee/}fixtures/**/*" - "{,ee/}rubocop/**/*" - "{,ee/}spec/**/*" + - "{,spec/}tooling/**/*" # QA changes - ".dockerignore" - "qa/**/*" @@ -255,6 +268,7 @@ .shared:rules:update-cache: rules: - <<: *if-master-schedule-2-hourly + - <<: *if-security-schedule - <<: *if-merge-request-title-update-caches ###################### @@ -395,6 +409,7 @@ when: never - <<: *if-merge-request changes: *code-backstage-patterns + when: always - <<: *if-master-refs changes: *code-backstage-patterns @@ -480,26 +495,86 @@ - changes: *db-patterns - <<: *if-merge-request-title-run-all-rspec +.rails:rules:ee-and-foss-migration:minimal: + rules: + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request-title-run-all-rspec + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-merge-request + changes: *db-patterns + .rails:rules:ee-and-foss-unit: rules: - changes: *backend-patterns - <<: *if-merge-request-title-run-all-rspec +.rails:rules:ee-and-foss-unit:minimal: + rules: + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request-title-run-all-rspec + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-merge-request + changes: *backend-patterns + .rails:rules:ee-and-foss-integration: rules: - changes: *backend-patterns - <<: *if-merge-request-title-run-all-rspec +.rails:rules:ee-and-foss-integration:minimal: + rules: + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request-title-run-all-rspec + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-merge-request + changes: *backend-patterns + .rails:rules:ee-and-foss-system: rules: - changes: *code-backstage-patterns - <<: *if-merge-request-title-run-all-rspec +.rails:rules:ee-and-foss-system:minimal: + rules: + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request-title-run-all-rspec + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-merge-request + changes: *code-backstage-patterns + .rails:rules:ee-and-foss-fast_spec_helper: rules: - changes: ["config/**/*"] - <<: *if-merge-request-title-run-all-rspec +.rails:rules:ee-and-foss-fast_spec_helper:minimal: + rules: + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request-title-run-all-rspec + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-merge-request + changes: ["config/**/*"] + .rails:rules:default-refs-code-backstage-qa: rules: - <<: *if-default-refs @@ -513,6 +588,20 @@ - changes: *db-patterns - <<: *if-merge-request-title-run-all-rspec +.rails:rules:ee-only-migration:minimal: + rules: + - <<: *if-not-ee + when: never + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request-title-run-all-rspec + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-merge-request + changes: *db-patterns + .rails:rules:ee-only-unit: rules: - <<: *if-not-ee @@ -520,6 +609,20 @@ - changes: *backend-patterns - <<: *if-merge-request-title-run-all-rspec +.rails:rules:ee-only-unit:minimal: + rules: + - <<: *if-not-ee + when: never + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request-title-run-all-rspec + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-merge-request + changes: *backend-patterns + .rails:rules:ee-only-integration: rules: - <<: *if-not-ee @@ -527,6 +630,20 @@ - changes: *backend-patterns - <<: *if-merge-request-title-run-all-rspec +.rails:rules:ee-only-integration:minimal: + rules: + - <<: *if-not-ee + when: never + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request-title-run-all-rspec + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-merge-request + changes: *backend-patterns + .rails:rules:ee-only-system: rules: - <<: *if-not-ee @@ -534,6 +651,20 @@ - changes: *code-backstage-patterns - <<: *if-merge-request-title-run-all-rspec +.rails:rules:ee-only-system:minimal: + rules: + - <<: *if-not-ee + when: never + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request-title-run-all-rspec + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-merge-request + changes: *code-backstage-patterns + .rails:rules:as-if-foss-migration: rules: - <<: *if-not-ee @@ -545,6 +676,20 @@ - <<: *if-merge-request changes: *ci-patterns +.rails:rules:as-if-foss-migration:minimal: + rules: + - <<: *if-not-ee + when: never + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-security-merge-request + changes: *db-patterns + - <<: *if-merge-request-title-as-if-foss + changes: *db-patterns + .rails:rules:as-if-foss-unit: rules: - <<: *if-not-ee @@ -556,6 +701,20 @@ - <<: *if-merge-request changes: *ci-patterns +.rails:rules:as-if-foss-unit:minimal: + rules: + - <<: *if-not-ee + when: never + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-security-merge-request + changes: *backend-patterns + - <<: *if-merge-request-title-as-if-foss + changes: *backend-patterns + .rails:rules:as-if-foss-integration: rules: - <<: *if-not-ee @@ -567,6 +726,20 @@ - <<: *if-merge-request changes: *ci-patterns +.rails:rules:as-if-foss-integration:minimal: + rules: + - <<: *if-not-ee + when: never + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-security-merge-request + changes: *backend-patterns + - <<: *if-merge-request-title-as-if-foss + changes: *backend-patterns + .rails:rules:as-if-foss-system: rules: - <<: *if-not-ee @@ -578,6 +751,20 @@ - <<: *if-merge-request changes: *ci-patterns +.rails:rules:as-if-foss-system:minimal: + rules: + - <<: *if-not-ee + when: never + - <<: *if-merge-request-rspec-minimal-disabled + when: never + - <<: *if-merge-request + changes: *ci-patterns + when: never + - <<: *if-security-merge-request + changes: *code-backstage-patterns + - <<: *if-merge-request-title-as-if-foss + changes: *code-backstage-patterns + .rails:rules:ee-mr-and-master-only: rules: - <<: *if-not-ee @@ -590,12 +777,9 @@ .rails:rules:detect-tests: rules: - - <<: *if-not-ee - when: never - - <<: *if-security-merge-request - changes: *code-backstage-patterns - - <<: *if-dot-com-gitlab-org-merge-request + - <<: *if-default-refs changes: *code-backstage-patterns + - <<: *if-merge-request-title-run-all-rspec .rails:rules:rspec-foss-impact: rules: @@ -647,8 +831,10 @@ when: never - <<: *if-merge-request changes: *code-backstage-patterns + when: always - <<: *if-master-schedule-2-hourly - <<: *if-merge-request-title-run-all-rspec + when: always .rails:rules:rspec-feature-flags: rules: @@ -912,6 +1098,14 @@ - <<: *if-dot-com-ee-schedule changes: *code-backstage-patterns +################### +# workhorse rules # +################### +.workhorse:rules:workhorse: + rules: + - <<: *if-default-refs + changes: *workhorse-patterns + ################### # yaml-lint rules # ################### diff --git a/.gitlab/ci/setup.gitlab-ci.yml b/.gitlab/ci/setup.gitlab-ci.yml index abe7625c74..74510a0a03 100644 --- a/.gitlab/ci/setup.gitlab-ci.yml +++ b/.gitlab/ci/setup.gitlab-ci.yml @@ -61,15 +61,17 @@ verify-tests-yml: - scripts/verify-tff-mapping .detect-test-base: - image: ruby:2.7-alpine + image: ruby:2.7 needs: [] stage: prepare script: - - source scripts/utils.sh + - source ./scripts/utils.sh + - source ./scripts/rspec_helpers.sh - install_gitlab_gem - install_tff_gem - - tooling/bin/find_foss_tests ${MATCHED_TESTS_FILE} - - 'echo "test files affected: $(cat $MATCHED_TESTS_FILE)"' + - retrieve_tests_mapping + - 'if [ -n "$CI_MERGE_REQUEST_IID" ]; then tooling/bin/find_tests ${MATCHED_TESTS_FILE}; fi' + - 'if [ -n "$CI_MERGE_REQUEST_IID" ]; then echo "test files affected: $(cat $MATCHED_TESTS_FILE)"; fi' artifacts: expire_in: 7d paths: @@ -80,6 +82,7 @@ detect-tests: - .detect-test-base - .rails:rules:detect-tests variables: + RSPEC_TESTS_MAPPING_ENABLED: "true" MATCHED_TESTS_FILE: tmp/matching_tests.txt detect-tests as-if-foss: diff --git a/.gitlab/ci/test-metadata.gitlab-ci.yml b/.gitlab/ci/test-metadata.gitlab-ci.yml index e4b7047ef7..aec0a1640f 100644 --- a/.gitlab/ci/test-metadata.gitlab-ci.yml +++ b/.gitlab/ci/test-metadata.gitlab-ci.yml @@ -1,6 +1,5 @@ .tests-metadata-state: - variables: - TESTS_METADATA_S3_BUCKET: "gitlab-ce-cache" + image: ruby:2.7 before_script: - source scripts/utils.sh artifacts: @@ -17,7 +16,8 @@ retrieve-tests-metadata: - .test-metadata:rules:retrieve-tests-metadata stage: prepare script: - - source scripts/rspec_helpers.sh + - install_gitlab_gem + - source ./scripts/rspec_helpers.sh - retrieve_tests_metadata update-tests-metadata: diff --git a/.gitlab/ci/workhorse.gitlab-ci.yml b/.gitlab/ci/workhorse.gitlab-ci.yml new file mode 100644 index 0000000000..2913115987 --- /dev/null +++ b/.gitlab/ci/workhorse.gitlab-ci.yml @@ -0,0 +1,10 @@ +workhorse: + extends: .workhorse:rules:workhorse + image: golang:1.14 + stage: test + needs: [] + script: + - rm .git/hooks/post-checkout + - git checkout . + - scripts/update-workhorse check + - make -C workhorse diff --git a/.gitlab/issue_templates/Doc Review.md b/.gitlab/issue_templates/Doc Review.md index bd3843ac5c..5b470ed7c7 100644 --- a/.gitlab/issue_templates/Doc Review.md +++ b/.gitlab/issue_templates/Doc Review.md @@ -3,7 +3,7 @@ + [listed for that stage](https://about.gitlab.com/handbook/product/categories/#devops-stages). --> ## References diff --git a/.gitlab/issue_templates/Experiment Successful Cleanup.md b/.gitlab/issue_templates/Experiment Successful Cleanup.md new file mode 100644 index 0000000000..3f148ec00b --- /dev/null +++ b/.gitlab/issue_templates/Experiment Successful Cleanup.md @@ -0,0 +1,18 @@ + + +## Summary + +The experiment is currently rolled out to 100% of users and has been deemed a success. +The changes need to become an official part of the product. + +## Steps + +- [ ] Determine whether the feature should apply to SaaS and/or self-managed +- [ ] Determine whether the feature should apply to EE - and which tiers - and/or Core +- [ ] Determine if tracking should be kept as is, removed, or modified. +- [ ] Migrate experiment to a default enabled [feature flag](https://docs.gitlab.com/ee/development/feature_flags/development.html) 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. +- [ ] Ensure any relevant documentation has been updated. +- [ ] In the next milestone, [remove the feature flag](https://docs.gitlab.com/ee/development/feature_flags/controls.html#cleaning-up). +- [ ] 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 + +/label ~"feature" ~"feature::maintenance" ~"workflow::scheduling" ~"growth experiment" ~"feature flag" diff --git a/.gitlab/issue_templates/Feature Flag Roll Out.md b/.gitlab/issue_templates/Feature Flag Roll Out.md index a0b64b5325..67686b654b 100644 --- a/.gitlab/issue_templates/Feature Flag Roll Out.md +++ b/.gitlab/issue_templates/Feature Flag Roll Out.md @@ -18,7 +18,8 @@ Remove the `:feature_name` feature flag ... ### What can we monitor to detect problems with this? - + + ## Beta groups/projects @@ -30,13 +31,13 @@ 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 - [ ] Enable on GitLab.com for individual groups/projects listed above and verify behaviour (`/chatops run feature set --project=gitlab-org/gitlab feature_name true`) - [ ] Coordinate a time to enable the flag with the SRE oncall and release managers - - In `#production` by pinging `@sre-oncall` - - In `#g_delivery` by pinging `@release-managers` + - In `#production` mention `@sre-oncall` and `@release-managers`. Once an SRE on call and Release Manager on call confirm, you can proceed with the rollout - [ ] Announce on the issue an estimated time this will be enabled on GitLab.com - [ ] 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 diff --git a/.gitlab/issue_templates/Feature proposal.md b/.gitlab/issue_templates/Feature proposal.md index b6f83be912..5ab46bfa26 100644 --- a/.gitlab/issue_templates/Feature proposal.md +++ b/.gitlab/issue_templates/Feature proposal.md @@ -96,8 +96,11 @@ In which enterprise tier should this feature go? See https://about.gitlab.com/ha ### Links / references - + /label ~devops:: ~group: ~Category: /label ~feature diff --git a/.gitlab/issue_templates/Implementation.md b/.gitlab/issue_templates/Implementation.md index dc5eb18a25..888c993766 100644 --- a/.gitlab/issue_templates/Implementation.md +++ b/.gitlab/issue_templates/Implementation.md @@ -42,7 +42,7 @@ call-out responsibilities for other team members or teams. --> - [ ] ~frontend Step 1 - - [ ] @person Step 1a + - [ ] `@person` Step 1a - [ ] ~frontend Step 2 diff --git a/.gitlab/issue_templates/Lean Feature Proposal.md b/.gitlab/issue_templates/Lean Feature Proposal.md index b1cb98ba5e..44210a8902 100644 --- a/.gitlab/issue_templates/Lean Feature Proposal.md +++ b/.gitlab/issue_templates/Lean Feature Proposal.md @@ -17,7 +17,11 @@ /label ~"feature" ~"group::" ~"section::" ~"Category::" ~"GitLab Core"/~"GitLab Starter"/~"GitLab Premium"/~"GitLab Ultimate" - - -:warning: **Only Release Managers and members of the AppSec team can edit the description of this issue** - -------- - -## Version issues: - -12.2.X, 12.1.X, 12.0.X: {release task link} - -## Issues in GitLab Security - -To include your issue and merge requests in this Security Release, please mark -your security issues as related to this release tracking issue. You can do this -in the "Linked issues" section below this issue description. - -:warning: If your security issues are not marked as related to this release -tracking issue, their merge requests will not be included in the security -release. - -### Branches to target in GitLab Security - -Your Security Implementation Issue should have `4` merge requests associated: - -- [master and 3 backports](https://gitlab.com/gitlab-org/release/docs/-/blob/master/general/security/developer.md#backports) -- Backports should target the stable branches for the versions mentioned included in this Security Release - -## Blog post - -Security: {https://gitlab.com/gitlab-org/security/www-gitlab-com/merge_requests/ link}
-GitLab.com: {https://gitlab.com/gitlab-com/www-gitlab-com/merge_requests/ link} - -## Email notification -{https://gitlab.com/gitlab-com/marketing/general/issues/ link} - -/label ~security ~"upcoming security release" -/confidential diff --git a/.gitlab/issue_templates/Snowplow event tracking.md b/.gitlab/issue_templates/Snowplow event tracking.md index 47b97f377c..4a906b6137 100644 --- a/.gitlab/issue_templates/Snowplow event tracking.md +++ b/.gitlab/issue_templates/Snowplow event tracking.md @@ -37,6 +37,10 @@ We generally recommend events be tracked using a [structured event](https://docs * [ ] Create chart(s) to track your event(s) in the relevant dashboard * [ ] Use the [Chart Snowplow Actions](https://app.periscopedata.com/app/gitlab/snippet/Chart-Snowplow-Actions/5546da87ae2c4a3fbc98415c88b3eedd/edit) SQL snippet to quickly visualize usage. See [example](https://app.periscopedata.com/app/gitlab/737489/Health-Group-Dashboard?widget=9797112&udv=0) - + /label ~devops:: ~group: ~Category: /label ~"snowplow tracking events" diff --git a/.gitlab/issue_templates/actionable_insight.md b/.gitlab/issue_templates/actionable_insight.md index 68b2b15383..ff6a4f1291 100644 --- a/.gitlab/issue_templates/actionable_insight.md +++ b/.gitlab/issue_templates/actionable_insight.md @@ -31,5 +31,4 @@ Actionable insights always have a follow-up action that needs to take place as a - - /label ~"Actionable Insight" +/label ~"Actionable Insight" diff --git a/.gitlab/merge_request_templates/Documentation.md b/.gitlab/merge_request_templates/Documentation.md index b059c1f68a..9113bf7d02 100644 --- a/.gitlab/merge_request_templates/Documentation.md +++ b/.gitlab/merge_request_templates/Documentation.md @@ -15,9 +15,9 @@ ## Author's checklist (required) -- [ ] Follow the [Documentation Guidelines](https://docs.gitlab.com/ee/development/documentation/) and [Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide.html). +- [ ] Follow the [Documentation Guidelines](https://docs.gitlab.com/ee/development/documentation/) and [Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide/). - If you have **Developer** permissions or higher: - - [ ] Ensure that the [product tier badge](https://docs.gitlab.com/ee/development/documentation/styleguide.html#product-badges) is added to doc's `h1`. + - [ ] Ensure that the [product tier badge](https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges) is added to doc's `h1`. - [ ] Apply the ~documentation label, plus: - The corresponding DevOps stage and group labels, if applicable. - ~"development guidelines" when changing docs under `doc/development/*`, `CONTRIBUTING.md`, or `README.md`. @@ -45,7 +45,7 @@ All reviewers can help ensure accuracy, clarity, completeness, and adherence to **2. Technical Writer** -- [ ] Technical writer review. If not requested for this MR, must be scheduled post-merge. To request for this MR, assign the writer listed for the applicable [DevOps stage](https://about.gitlab.com/handbook/product/product-categories/#devops-stages). +- [ ] Technical writer review. If not requested for this MR, must be scheduled post-merge. To request for this MR, assign the writer listed for the applicable [DevOps stage](https://about.gitlab.com/handbook/product/categories/#devops-stages). - [ ] Ensure docs metadata are present and up-to-date. - [ ] Ensure ~"Technical Writing" and ~"documentation" are added. - [ ] Add the corresponding `docs::` [scoped label](https://gitlab.com/groups/gitlab-org/-/labels?utf8=%E2%9C%93&subscribed=&search=docs%3A%3A). diff --git a/.gitlab/merge_request_templates/New End To End Test.md b/.gitlab/merge_request_templates/New End To End Test.md new file mode 100644 index 0000000000..9bd7f11d4a --- /dev/null +++ b/.gitlab/merge_request_templates/New End To End Test.md @@ -0,0 +1,26 @@ +## Description of the test + + + +### Check-list + +- [ ] Confirm the test has a [`testcase:` tag linking to an existing test case](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/best_practices.html#link-a-test-to-its-test-case-issue) in the test case project. +- [ ] Note if the test is intended to run in specific scenarios. If a scenario is new, add a link to the MR that adds the new scenario. +- [ ] Follow the end-to-end tests [style guide](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/style_guide.html) and [best practices](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/best_practices.html). +- [ ] Use the appropriate [RSpec metadata tag(s)](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/rspec_metadata_tests.html#rspec-metadata-for-end-to-end-tests). +- [ ] Ensure that a created resource is removed after test execution. +- [ ] Verify the tags to ensure it runs on the desired test environments. +- [ ] If this MR has a dependency on another MR, such as a GitLab QA MR, specify the order in which the MRs should be merged. +- [ ] (If applicable) Create a follow-up issue to document [the special setup](https://docs.gitlab.com/ee/development/testing_guide/end_to_end/running_tests_that_require_special_setup.html) necessary to run the test: ISSUE_LINK + + +/label ~"Quality" ~"QA" ~test + + + +/label ~"Quality:test-gap" ~"Quality:EE test gaps" + + +/label ~"feature::addition" ~"feature::maintenance" diff --git a/.haml-lint_todo.yml b/.haml-lint_todo.yml index 6d6a5d2a81..c83d5420a4 100644 --- a/.haml-lint_todo.yml +++ b/.haml-lint_todo.yml @@ -214,7 +214,6 @@ linters: - 'app/views/projects/mattermosts/_team_selection.html.haml' - 'app/views/projects/mattermosts/new.html.haml' - 'app/views/projects/merge_requests/_commits.html.haml' - - 'app/views/projects/merge_requests/_how_to_merge.html.haml' - 'app/views/projects/merge_requests/_mr_title.html.haml' - 'app/views/projects/merge_requests/conflicts/_commit_stats.html.haml' - 'app/views/projects/merge_requests/conflicts/_file_actions.html.haml' @@ -286,7 +285,6 @@ linters: - 'app/views/shared/hook_logs/_content.html.haml' - 'app/views/shared/issuable/_assignees.html.haml' - 'app/views/shared/issuable/_board_create_list_dropdown.html.haml' - - 'app/views/shared/issuable/_close_reopen_report_toggle.html.haml' - 'app/views/shared/issuable/_form.html.haml' - 'app/views/shared/issuable/_search_bar.html.haml' - 'app/views/shared/issuable/_sidebar.html.haml' diff --git a/.rubocop.yml b/.rubocop.yml index 34d6fe5e43..b133ecbcf9 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -32,6 +32,7 @@ AllCops: - 'builds/**/*' - 'plugins/**/*' - 'file_hooks/**/*' + - 'workhorse/**/*' CacheRootDirectory: tmp MaxFilesInCache: 18000 @@ -47,6 +48,10 @@ Cop/StaticTranslationDefinition: - 'spec/**/*' - 'ee/spec/**/*' +Lint/LastKeywordArgument: + Enabled: true + Safe: false + # This cop checks whether some constant value isn't a # mutable literal (e.g. array or hash). Style/MutableConstant: @@ -271,6 +276,12 @@ GitlabSecurity/PublicSend: Gitlab/DuplicateSpecLocation: Enabled: true +Gitlab/PolicyRuleBoolean: + Enabled: true + Include: + - 'app/policies/**/*' + - 'ee/app/policies/**/*' + Cop/InjectEnterpriseEditionModule: Enabled: true Exclude: @@ -357,6 +368,8 @@ Cop/SidekiqOptionsQueue: Graphql/ResolverType: Enabled: true + Exclude: + - 'app/graphql/resolvers/base_resolver.rb' Include: - 'app/graphql/resolvers/**/*' - 'ee/app/graphql/resolvers/**/*' @@ -422,13 +435,11 @@ Scalability/FileUploads: Graphql/Descriptions: Enabled: true + AutoCorrect: true Include: - 'app/graphql/**/*' - 'ee/app/graphql/**/*' -RSpec/AnyInstanceOf: - Enabled: false - # Cops for upgrade to gitlab-styles 3.1.0 RSpec/ImplicitSubject: Enabled: false diff --git a/.rubocop_manual_todo.yml b/.rubocop_manual_todo.yml index 0b6e0f6494..2ffbef850d 100644 --- a/.rubocop_manual_todo.yml +++ b/.rubocop_manual_todo.yml @@ -2,7 +2,6 @@ FactoryBot/InlineAssociation: Exclude: - 'ee/spec/factories/analytics/cycle_analytics/group_stages.rb' - 'ee/spec/factories/geo/event_log.rb' - - 'ee/spec/factories/groups.rb' - 'ee/spec/factories/merge_request_blocks.rb' - 'ee/spec/factories/vulnerabilities/feedback.rb' - 'spec/factories/atlassian_identities.rb' @@ -14,20 +13,14 @@ FactoryBot/InlineAssociation: - 'spec/factories/go_modules.rb' - 'spec/factories/group_group_links.rb' - 'spec/factories/import_export_uploads.rb' - - 'spec/factories/merge_requests.rb' - 'spec/factories/notes.rb' - - 'spec/factories/sent_notifications.rb' - 'spec/factories/uploads.rb' - 'spec/factories/wiki_pages.rb' Graphql/IDType: Exclude: - 'ee/app/graphql/ee/mutations/issues/update.rb' - - 'ee/app/graphql/mutations/iterations/update.rb' - - 'ee/app/graphql/resolvers/iterations_resolver.rb' - 'app/graphql/mutations/boards/issues/issue_move_list.rb' - - 'app/graphql/mutations/issues/update.rb' - - 'app/graphql/mutations/metrics/dashboard/annotations/delete.rb' - 'app/graphql/resolvers/design_management/design_at_version_resolver.rb' - 'app/graphql/resolvers/design_management/design_resolver.rb' - 'app/graphql/resolvers/design_management/designs_resolver.rb' @@ -39,18 +32,9 @@ Graphql/IDType: - 'app/graphql/resolvers/error_tracking/sentry_error_stack_trace_resolver.rb' - 'app/graphql/resolvers/user_merge_requests_resolver.rb' -Graphql/ResolverType: +Gitlab/PolicyRuleBoolean: Exclude: - - 'app/graphql/resolvers/base_resolver.rb' - - 'app/graphql/resolvers/ci/jobs_resolver.rb' - - 'app/graphql/resolvers/ci/pipeline_stages_resolver.rb' - - 'app/graphql/resolvers/error_tracking/sentry_error_stack_trace_resolver.rb' - - 'app/graphql/resolvers/merge_requests_resolver.rb' - - 'app/graphql/resolvers/users/group_count_resolver.rb' - - 'ee/app/graphql/resolvers/geo/merge_request_diff_registries_resolver.rb' - - 'ee/app/graphql/resolvers/geo/package_file_registries_resolver.rb' - - 'ee/app/graphql/resolvers/geo/terraform_state_version_registries_resolver.rb' - - 'ee/app/graphql/resolvers/vulnerabilities_base_resolver.rb' + - 'ee/app/policies/ee/identity_provider_policy.rb' Rails/SaveBang: Exclude: @@ -66,7 +50,6 @@ Rails/SaveBang: - 'ee/spec/lib/gitlab/auth/ldap/access_spec.rb' - 'ee/spec/lib/gitlab/auth/o_auth/user_spec.rb' - 'ee/spec/lib/gitlab/auth/saml/user_spec.rb' - - 'ee/spec/lib/gitlab/background_migration/fix_orphan_promoted_issues_spec.rb' - 'ee/spec/lib/gitlab/elastic/search_results_spec.rb' - 'ee/spec/lib/gitlab/email/handler/ee/service_desk_handler_spec.rb' - 'ee/spec/lib/gitlab/geo_spec.rb' @@ -74,11 +57,6 @@ Rails/SaveBang: - 'ee/spec/lib/gitlab/import_export/group/relation_factory_spec.rb' - 'ee/spec/lib/gitlab/mirror_spec.rb' - 'ee/spec/mailers/notify_spec.rb' - - 'ee/spec/migrations/fix_any_approver_rule_for_projects_spec.rb' - - 'ee/spec/migrations/geo/migrate_ci_job_artifacts_to_separate_registry_spec.rb' - - 'ee/spec/migrations/geo/migrate_lfs_objects_to_separate_registry_spec.rb' - - 'ee/spec/migrations/schedule_merge_request_any_approval_rule_migration_spec.rb' - - 'ee/spec/migrations/schedule_project_any_approval_rule_migration_spec.rb' - 'ee/spec/models/application_setting_spec.rb' - 'ee/spec/models/approval_merge_request_rule_spec.rb' - 'ee/spec/models/approval_project_rule_spec.rb' @@ -113,7 +91,6 @@ Rails/SaveBang: - 'ee/spec/models/scim_oauth_access_token_spec.rb' - 'ee/spec/models/upload_spec.rb' - 'ee/spec/models/user_preference_spec.rb' - - 'ee/spec/models/user_spec.rb' - 'ee/spec/models/visible_approvable_spec.rb' - 'ee/spec/models/vulnerabilities/feedback_spec.rb' - 'ee/spec/models/vulnerabilities/issue_link_spec.rb' @@ -236,7 +213,6 @@ Rails/SaveBang: - 'spec/features/admin/admin_sees_project_statistics_spec.rb' - 'spec/features/admin/admin_sees_projects_statistics_spec.rb' - 'spec/features/admin/admin_users_impersonation_tokens_spec.rb' - - 'spec/features/admin/admin_users_spec.rb' - 'spec/features/boards/sidebar_spec.rb' - 'spec/features/calendar_spec.rb' - 'spec/features/commits_spec.rb' @@ -262,7 +238,6 @@ Rails/SaveBang: - 'spec/features/profiles/personal_access_tokens_spec.rb' - 'spec/features/projects/features_visibility_spec.rb' - 'spec/features/projects/fork_spec.rb' - - 'spec/features/projects/jobs/permissions_spec.rb' - 'spec/features/projects/jobs_spec.rb' - 'spec/features/projects/members/user_requests_access_spec.rb' - 'spec/features/projects/pages_lets_encrypt_spec.rb' @@ -301,32 +276,6 @@ Rails/SaveBang: - 'spec/lib/gitlab/auth/saml/user_spec.rb' - 'spec/lib/gitlab/auth_spec.rb' - 'spec/lib/gitlab/authorized_keys_spec.rb' - - 'spec/lib/gitlab/background_migration/backfill_deployment_clusters_from_deployments_spec.rb' - - 'spec/lib/gitlab/background_migration/backfill_project_repositories_spec.rb' - - 'spec/lib/gitlab/background_migration/backfill_project_settings_spec.rb' - - 'spec/lib/gitlab/background_migration/backfill_push_rules_id_in_projects_spec.rb' - - 'spec/lib/gitlab/background_migration/backfill_snippet_repositories_spec.rb' - - 'spec/lib/gitlab/background_migration/digest_column_spec.rb' - - 'spec/lib/gitlab/background_migration/encrypt_columns_spec.rb' - - 'spec/lib/gitlab/background_migration/fix_cross_project_label_links_spec.rb' - - 'spec/lib/gitlab/background_migration/fix_projects_without_project_feature_spec.rb' - - 'spec/lib/gitlab/background_migration/fix_projects_without_prometheus_service_spec.rb' - - 'spec/lib/gitlab/background_migration/fix_user_namespace_names_spec.rb' - - 'spec/lib/gitlab/background_migration/fix_user_project_route_names_spec.rb' - - 'spec/lib/gitlab/background_migration/legacy_upload_mover_spec.rb' - - 'spec/lib/gitlab/background_migration/legacy_uploads_migrator_spec.rb' - - 'spec/lib/gitlab/background_migration/link_lfs_objects_projects_spec.rb' - - 'spec/lib/gitlab/background_migration/migrate_issue_trackers_sensitive_data_spec.rb' - - 'spec/lib/gitlab/background_migration/migrate_stage_index_spec.rb' - - 'spec/lib/gitlab/background_migration/migrate_users_bio_to_user_details_spec.rb' - - 'spec/lib/gitlab/background_migration/populate_canonical_emails_spec.rb' - - 'spec/lib/gitlab/background_migration/populate_merge_request_assignees_table_spec.rb' - - 'spec/lib/gitlab/background_migration/populate_user_highest_roles_table_spec.rb' - - 'spec/lib/gitlab/background_migration/recalculate_project_authorizations_spec.rb' - - 'spec/lib/gitlab/background_migration/remove_restricted_todos_spec.rb' - - 'spec/lib/gitlab/background_migration/reset_merge_status_spec.rb' - - 'spec/lib/gitlab/background_migration/set_confidential_note_events_on_services_spec.rb' - - 'spec/lib/gitlab/background_migration/set_confidential_note_events_on_webhooks_spec.rb' - 'spec/lib/gitlab/bitbucket_server_import/importer_spec.rb' - 'spec/lib/gitlab/ci/ansi2json/style_spec.rb' - 'spec/lib/gitlab/ci/status/build/common_spec.rb' @@ -377,38 +326,6 @@ Rails/SaveBang: - 'spec/lib/mattermost/session_spec.rb' - 'spec/lib/mattermost/team_spec.rb' - 'spec/mailers/notify_spec.rb' - - 'spec/migrations/20190924152703_migrate_issue_trackers_data_spec.rb' - - 'spec/migrations/20200122123016_backfill_project_settings_spec.rb' - - 'spec/migrations/20200123155929_remove_invalid_jira_data_spec.rb' - - 'spec/migrations/20200127090233_remove_invalid_issue_tracker_data_spec.rb' - - 'spec/migrations/20200130145430_reschedule_migrate_issue_trackers_data_spec.rb' - - 'spec/migrations/20200313203550_remove_orphaned_chat_names_spec.rb' - - 'spec/migrations/20200406102120_backfill_deployment_clusters_from_deployments_spec.rb' - - 'spec/migrations/20200526115436_dedup_mr_metrics_spec.rb' - - 'spec/migrations/add_deploy_token_type_to_deploy_tokens_spec.rb' - - 'spec/migrations/add_incident_settings_to_all_existing_projects_spec.rb' - - 'spec/migrations/add_unique_constraint_to_approvals_user_id_and_merge_request_id_spec.rb' - - 'spec/migrations/backfill_and_add_not_null_constraint_to_released_at_column_on_releases_table_spec.rb' - - 'spec/migrations/backfill_imported_snippet_repositories_spec.rb' - - 'spec/migrations/backfill_releases_table_updated_at_and_add_not_null_constraints_to_timestamps_spec.rb' - - 'spec/migrations/backfill_snippet_repositories_spec.rb' - - 'spec/migrations/encrypt_plaintext_attributes_on_application_settings_spec.rb' - - 'spec/migrations/enqueue_reset_merge_status_second_run_spec.rb' - - 'spec/migrations/enqueue_reset_merge_status_spec.rb' - - 'spec/migrations/fill_file_store_lfs_objects_spec.rb' - - 'spec/migrations/fill_store_uploads_spec.rb' - - 'spec/migrations/fix_null_type_labels_spec.rb' - - 'spec/migrations/fix_pool_repository_source_project_id_spec.rb' - - 'spec/migrations/fix_projects_without_project_feature_spec.rb' - - 'spec/migrations/fix_projects_without_prometheus_services_spec.rb' - - 'spec/migrations/fix_wrong_pages_access_level_spec.rb' - - 'spec/migrations/insert_project_hooks_plan_limits_spec.rb' - - 'spec/migrations/migrate_auto_dev_ops_domain_to_cluster_domain_spec.rb' - - 'spec/migrations/move_limits_from_plans_spec.rb' - - 'spec/migrations/populate_project_statistics_packages_size_spec.rb' - - 'spec/migrations/schedule_link_lfs_objects_projects_spec.rb' - - 'spec/migrations/schedule_populate_merge_request_assignees_table_spec.rb' - - 'spec/migrations/seed_repository_storages_weighted_spec.rb' - 'spec/models/appearance_spec.rb' - 'spec/models/application_record_spec.rb' - 'spec/models/application_setting_spec.rb' @@ -704,14 +621,10 @@ RSpec/TimecopFreeze: - 'ee/spec/services/vulnerability_exports/export_service_spec.rb' - 'ee/spec/support/shared_contexts/lib/gitlab/insights/reducers/reducers_shared_contexts.rb' - 'qa/spec/support/repeater_spec.rb' - - 'spec/features/profiles/active_sessions_spec.rb' - - 'spec/features/projects/environments/environment_metrics_spec.rb' - 'spec/features/users/active_sessions_spec.rb' - - 'spec/lib/atlassian/jira_connect/client_spec.rb' - 'spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb' - 'spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb' - 'spec/lib/gitlab/analytics/cycle_analytics/records_fetcher_spec.rb' - - 'spec/lib/gitlab/anonymous_session_spec.rb' - 'spec/lib/gitlab/auth/unique_ips_limiter_spec.rb' - 'spec/lib/gitlab/checks/timed_logger_spec.rb' - 'spec/lib/gitlab/cycle_analytics/stage_summary_spec.rb' @@ -724,10 +637,6 @@ RSpec/TimecopFreeze: - 'spec/lib/rspec_flaky/flaky_example_spec.rb' - 'spec/lib/rspec_flaky/listener_spec.rb' - 'spec/models/active_session_spec.rb' - - 'spec/models/container_repository_spec.rb' - - 'spec/models/pages/lookup_path_spec.rb' - - 'spec/models/project_feature_usage_spec.rb' - - 'spec/requests/api/v3/github_spec.rb' - 'spec/serializers/entity_date_helper_spec.rb' - 'spec/support/cycle_analytics_helpers/test_generation.rb' - 'spec/support/helpers/cycle_analytics_helpers.rb' @@ -757,3 +666,891 @@ RSpec/TimecopTravel: - 'spec/support/shared_examples/workers/concerns/reenqueuer_shared_examples.rb' - 'spec/workers/concerns/reenqueuer_spec.rb' - 'spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb' + +Graphql/Descriptions: + Exclude: + - 'app/graphql/mutations/admin/sidekiq_queues/delete_jobs.rb' + - 'app/graphql/mutations/alert_management/base.rb' + - 'app/graphql/mutations/alert_management/http_integration/create.rb' + - 'app/graphql/mutations/alert_management/http_integration/destroy.rb' + - 'app/graphql/mutations/alert_management/http_integration/http_integration_base.rb' + - 'app/graphql/mutations/alert_management/http_integration/reset_token.rb' + - 'app/graphql/mutations/alert_management/http_integration/update.rb' + - 'app/graphql/mutations/alert_management/prometheus_integration/create.rb' + - 'app/graphql/mutations/alert_management/prometheus_integration/prometheus_integration_base.rb' + - 'app/graphql/mutations/alert_management/prometheus_integration/reset_token.rb' + - 'app/graphql/mutations/alert_management/prometheus_integration/update.rb' + - 'app/graphql/mutations/alert_management/update_alert_status.rb' + - 'app/graphql/mutations/award_emojis/base.rb' + - 'app/graphql/mutations/boards/destroy.rb' + - 'app/graphql/mutations/boards/issues/issue_move_list.rb' + - 'app/graphql/mutations/boards/lists/base.rb' + - 'app/graphql/mutations/boards/lists/create.rb' + - 'app/graphql/mutations/boards/lists/update.rb' + - 'app/graphql/mutations/branches/create.rb' + - 'app/graphql/mutations/ci/base.rb' + - 'app/graphql/mutations/ci/pipeline_retry.rb' + - 'app/graphql/mutations/commits/create.rb' + - 'app/graphql/mutations/concerns/mutations/resolves_resource_parent.rb' + - 'app/graphql/mutations/concerns/mutations/resolves_subscription.rb' + - 'app/graphql/mutations/concerns/mutations/spammable_mutation_fields.rb' + - 'app/graphql/mutations/container_expiration_policies/update.rb' + - 'app/graphql/mutations/container_repositories/destroy_tags.rb' + - 'app/graphql/mutations/custom_emoji/create.rb' + - 'app/graphql/mutations/design_management/base.rb' + - 'app/graphql/mutations/design_management/delete.rb' + - 'app/graphql/mutations/design_management/move.rb' + - 'app/graphql/mutations/design_management/upload.rb' + - 'app/graphql/mutations/discussions/toggle_resolve.rb' + - 'app/graphql/mutations/environments/canary_ingress/update.rb' + - 'app/graphql/mutations/issues/base.rb' + - 'app/graphql/mutations/issues/create.rb' + - 'app/graphql/mutations/issues/move.rb' + - 'app/graphql/mutations/issues/set_due_date.rb' + - 'app/graphql/mutations/issues/set_locked.rb' + - 'app/graphql/mutations/issues/update.rb' + - 'app/graphql/mutations/jira_import/import_users.rb' + - 'app/graphql/mutations/jira_import/start.rb' + - 'app/graphql/mutations/labels/create.rb' + - 'app/graphql/mutations/merge_requests/base.rb' + - 'app/graphql/mutations/merge_requests/create.rb' + - 'app/graphql/mutations/metrics/dashboard/annotations/create.rb' + - 'app/graphql/mutations/metrics/dashboard/annotations/delete.rb' + - 'app/graphql/mutations/notes/base.rb' + - 'app/graphql/mutations/notes/create/base.rb' + - 'app/graphql/mutations/notes/create/note.rb' + - 'app/graphql/mutations/notes/destroy.rb' + - 'app/graphql/mutations/notes/reposition_image_diff_note.rb' + - 'app/graphql/mutations/notes/update/base.rb' + - 'app/graphql/mutations/releases/base.rb' + - 'app/graphql/mutations/releases/create.rb' + - 'app/graphql/mutations/releases/update.rb' + - 'app/graphql/mutations/snippets/base.rb' + - 'app/graphql/mutations/snippets/create.rb' + - 'app/graphql/mutations/snippets/destroy.rb' + - 'app/graphql/mutations/snippets/mark_as_spam.rb' + - 'app/graphql/mutations/snippets/update.rb' + - 'app/graphql/mutations/terraform/state/base.rb' + - 'app/graphql/mutations/todos/create.rb' + - 'app/graphql/mutations/todos/mark_all_done.rb' + - 'app/graphql/mutations/todos/mark_done.rb' + - 'app/graphql/mutations/todos/restore.rb' + - 'app/graphql/mutations/todos/restore_many.rb' + - 'app/graphql/resolvers/admin/analytics/instance_statistics/measurements_resolver.rb' + - 'app/graphql/resolvers/alert_management/alert_resolver.rb' + - 'app/graphql/resolvers/alert_management/alert_status_counts_resolver.rb' + - 'app/graphql/resolvers/board_list_issues_resolver.rb' + - 'app/graphql/resolvers/board_lists_resolver.rb' + - 'app/graphql/resolvers/board_resolver.rb' + - 'app/graphql/resolvers/boards_resolver.rb' + - 'app/graphql/resolvers/ci/config_resolver.rb' + - 'app/graphql/resolvers/ci/jobs_resolver.rb' + - 'app/graphql/resolvers/ci/runner_setup_resolver.rb' + - 'app/graphql/resolvers/concerns/issue_resolver_arguments.rb' + - 'app/graphql/resolvers/concerns/resolves_pipelines.rb' + - 'app/graphql/resolvers/concerns/resolves_snippets.rb' + - 'app/graphql/resolvers/concerns/time_frame_arguments.rb' + - 'app/graphql/resolvers/container_repositories_resolver.rb' + - 'app/graphql/resolvers/design_management/design_at_version_resolver.rb' + - 'app/graphql/resolvers/design_management/design_resolver.rb' + - 'app/graphql/resolvers/design_management/designs_resolver.rb' + - 'app/graphql/resolvers/design_management/version/design_at_version_resolver.rb' + - 'app/graphql/resolvers/design_management/version/designs_at_version_resolver.rb' + - 'app/graphql/resolvers/design_management/version_in_collection_resolver.rb' + - 'app/graphql/resolvers/design_management/version_resolver.rb' + - 'app/graphql/resolvers/design_management/versions_resolver.rb' + - 'app/graphql/resolvers/echo_resolver.rb' + - 'app/graphql/resolvers/environments_resolver.rb' + - 'app/graphql/resolvers/error_tracking/sentry_detailed_error_resolver.rb' + - 'app/graphql/resolvers/error_tracking/sentry_error_stack_trace_resolver.rb' + - 'app/graphql/resolvers/error_tracking/sentry_errors_resolver.rb' + - 'app/graphql/resolvers/full_path_resolver.rb' + - 'app/graphql/resolvers/group_members_resolver.rb' + - 'app/graphql/resolvers/group_milestones_resolver.rb' + - 'app/graphql/resolvers/issues_resolver.rb' + - 'app/graphql/resolvers/members_resolver.rb' + - 'app/graphql/resolvers/merge_request_resolver.rb' + - 'app/graphql/resolvers/merge_requests_resolver.rb' + - 'app/graphql/resolvers/metrics/dashboard_resolver.rb' + - 'app/graphql/resolvers/metrics/dashboards/annotation_resolver.rb' + - 'app/graphql/resolvers/milestones_resolver.rb' + - 'app/graphql/resolvers/namespace_projects_resolver.rb' + - 'app/graphql/resolvers/project_members_resolver.rb' + - 'app/graphql/resolvers/project_milestones_resolver.rb' + - 'app/graphql/resolvers/project_pipeline_resolver.rb' + - 'app/graphql/resolvers/projects/jira_projects_resolver.rb' + - 'app/graphql/resolvers/projects/services_resolver.rb' + - 'app/graphql/resolvers/projects_resolver.rb' + - 'app/graphql/resolvers/release_resolver.rb' + - 'app/graphql/resolvers/releases_resolver.rb' + - 'app/graphql/resolvers/snippets/blobs_resolver.rb' + - 'app/graphql/resolvers/snippets_resolver.rb' + - 'app/graphql/resolvers/todo_resolver.rb' + - 'app/graphql/resolvers/tree_resolver.rb' + - 'app/graphql/resolvers/user_resolver.rb' + - 'app/graphql/resolvers/user_starred_projects_resolver.rb' + - 'app/graphql/resolvers/users/snippets_resolver.rb' + - 'app/graphql/resolvers/users_resolver.rb' + - 'app/graphql/types/access_level_type.rb' + - 'app/graphql/types/admin/analytics/instance_statistics/measurement_type.rb' + - 'app/graphql/types/admin/sidekiq_queues/delete_jobs_response_type.rb' + - 'app/graphql/types/alert_management/alert_status_counts_type.rb' + - 'app/graphql/types/alert_management/alert_type.rb' + - 'app/graphql/types/alert_management/integration_type.rb' + - 'app/graphql/types/award_emojis/award_emoji_type.rb' + - 'app/graphql/types/board_list_type.rb' + - 'app/graphql/types/board_type.rb' + - 'app/graphql/types/boards/board_issue_input_base_type.rb' + - 'app/graphql/types/boards/board_issue_input_type.rb' + - 'app/graphql/types/branch_type.rb' + - 'app/graphql/types/ci/analytics_type.rb' + - 'app/graphql/types/ci/config/config_type.rb' + - 'app/graphql/types/ci/config/group_type.rb' + - 'app/graphql/types/ci/config/job_type.rb' + - 'app/graphql/types/ci/config/need_type.rb' + - 'app/graphql/types/ci/config/stage_type.rb' + - 'app/graphql/types/ci/detailed_status_type.rb' + - 'app/graphql/types/ci/group_type.rb' + - 'app/graphql/types/ci/job_artifact_type.rb' + - 'app/graphql/types/ci/job_type.rb' + - 'app/graphql/types/ci/pipeline_type.rb' + - 'app/graphql/types/ci/runner_architecture_type.rb' + - 'app/graphql/types/ci/runner_platform_type.rb' + - 'app/graphql/types/ci/runner_setup_type.rb' + - 'app/graphql/types/ci/stage_type.rb' + - 'app/graphql/types/ci/status_action_type.rb' + - 'app/graphql/types/commit_action_type.rb' + - 'app/graphql/types/commit_type.rb' + - 'app/graphql/types/container_expiration_policy_type.rb' + - 'app/graphql/types/container_repository_details_type.rb' + - 'app/graphql/types/container_repository_type.rb' + - 'app/graphql/types/countable_connection_type.rb' + - 'app/graphql/types/current_user_todos.rb' + - 'app/graphql/types/custom_emoji_type.rb' + - 'app/graphql/types/design_management/design_at_version_type.rb' + - 'app/graphql/types/design_management/design_collection_type.rb' + - 'app/graphql/types/design_management/design_fields.rb' + - 'app/graphql/types/design_management/design_type.rb' + - 'app/graphql/types/design_management/version_type.rb' + - 'app/graphql/types/design_management_type.rb' + - 'app/graphql/types/diff_paths_input_type.rb' + - 'app/graphql/types/diff_refs_type.rb' + - 'app/graphql/types/diff_stats_summary_type.rb' + - 'app/graphql/types/diff_stats_type.rb' + - 'app/graphql/types/environment_type.rb' + - 'app/graphql/types/error_tracking/sentry_detailed_error_type.rb' + - 'app/graphql/types/error_tracking/sentry_error_collection_type.rb' + - 'app/graphql/types/error_tracking/sentry_error_frequency_type.rb' + - 'app/graphql/types/error_tracking/sentry_error_stack_trace_context_type.rb' + - 'app/graphql/types/error_tracking/sentry_error_stack_trace_entry_type.rb' + - 'app/graphql/types/error_tracking/sentry_error_stack_trace_type.rb' + - 'app/graphql/types/error_tracking/sentry_error_tags_type.rb' + - 'app/graphql/types/error_tracking/sentry_error_type.rb' + - 'app/graphql/types/evidence_type.rb' + - 'app/graphql/types/grafana_integration_type.rb' + - 'app/graphql/types/group_invitation_type.rb' + - 'app/graphql/types/group_member_type.rb' + - 'app/graphql/types/group_type.rb' + - 'app/graphql/types/invitation_interface.rb' + - 'app/graphql/types/issue_type.rb' + - 'app/graphql/types/jira_import_type.rb' + - 'app/graphql/types/jira_user_type.rb' + - 'app/graphql/types/jira_users_mapping_input_type.rb' + - 'app/graphql/types/label_type.rb' + - 'app/graphql/types/member_interface.rb' + - 'app/graphql/types/merge_request_connection_type.rb' + - 'app/graphql/types/merge_request_type.rb' + - 'app/graphql/types/metadata_type.rb' + - 'app/graphql/types/metrics/dashboard_type.rb' + - 'app/graphql/types/metrics/dashboards/annotation_type.rb' + - 'app/graphql/types/milestone_stats_type.rb' + - 'app/graphql/types/milestone_type.rb' + - 'app/graphql/types/namespace_type.rb' + - 'app/graphql/types/notes/diff_position_type.rb' + - 'app/graphql/types/notes/discussion_type.rb' + - 'app/graphql/types/notes/note_type.rb' + - 'app/graphql/types/notes/noteable_type.rb' + - 'app/graphql/types/package_type.rb' + - 'app/graphql/types/project_invitation_type.rb' + - 'app/graphql/types/project_member_type.rb' + - 'app/graphql/types/project_statistics_type.rb' + - 'app/graphql/types/project_type.rb' + - 'app/graphql/types/projects/service_type.rb' + - 'app/graphql/types/projects/services/jira_project_type.rb' + - 'app/graphql/types/projects/services/jira_service_type.rb' + - 'app/graphql/types/prometheus_alert_type.rb' + - 'app/graphql/types/query_type.rb' + - 'app/graphql/types/range_input_type.rb' + - 'app/graphql/types/release_asset_link_input_type.rb' + - 'app/graphql/types/release_asset_link_type.rb' + - 'app/graphql/types/release_assets_input_type.rb' + - 'app/graphql/types/release_assets_type.rb' + - 'app/graphql/types/release_links_type.rb' + - 'app/graphql/types/release_source_type.rb' + - 'app/graphql/types/release_type.rb' + - 'app/graphql/types/repository_type.rb' + - 'app/graphql/types/resolvable_interface.rb' + - 'app/graphql/types/root_storage_statistics_type.rb' + - 'app/graphql/types/snippet_type.rb' + - 'app/graphql/types/snippets/blob_action_input_type.rb' + - 'app/graphql/types/snippets/blob_type.rb' + - 'app/graphql/types/snippets/blob_viewer_type.rb' + - 'app/graphql/types/task_completion_status.rb' + - 'app/graphql/types/terraform/state_type.rb' + - 'app/graphql/types/terraform/state_version_type.rb' + - 'app/graphql/types/todo_type.rb' + - 'app/graphql/types/tree/blob_type.rb' + - 'app/graphql/types/tree/entry_type.rb' + - 'app/graphql/types/tree/submodule_type.rb' + - 'app/graphql/types/tree/tree_entry_type.rb' + - 'app/graphql/types/tree/tree_type.rb' + - 'app/graphql/types/user_status_type.rb' + - 'app/graphql/types/user_type.rb' + - 'ee/app/graphql/ee/mutations/boards/issues/issue_move_list.rb' + - 'ee/app/graphql/ee/mutations/boards/lists/create.rb' + - 'ee/app/graphql/ee/mutations/issues/create.rb' + - 'ee/app/graphql/ee/mutations/issues/update.rb' + - 'ee/app/graphql/ee/resolvers/issues_resolver.rb' + - 'ee/app/graphql/ee/resolvers/namespace_projects_resolver.rb' + - 'ee/app/graphql/ee/types/board_list_type.rb' + - 'ee/app/graphql/ee/types/board_type.rb' + - 'ee/app/graphql/ee/types/boards/board_issue_input_base_type.rb' + - 'ee/app/graphql/ee/types/boards/board_issue_input_type.rb' + - 'ee/app/graphql/ee/types/ci/pipeline_type.rb' + - 'ee/app/graphql/ee/types/group_type.rb' + - 'ee/app/graphql/ee/types/issue_connection_type.rb' + - 'ee/app/graphql/ee/types/merge_request_type.rb' + - 'ee/app/graphql/ee/types/namespace_type.rb' + - 'ee/app/graphql/ee/types/project_type.rb' + - 'ee/app/graphql/ee/types/query_type.rb' + - 'ee/app/graphql/mutations/admin/analytics/devops_adoption/segments/delete.rb' + - 'ee/app/graphql/mutations/admin/analytics/devops_adoption/segments/mixins.rb' + - 'ee/app/graphql/mutations/admin/analytics/devops_adoption/segments/update.rb' + - 'ee/app/graphql/mutations/boards/lists/update_limit_metrics.rb' + - 'ee/app/graphql/mutations/boards/update.rb' + - 'ee/app/graphql/mutations/boards/update_epic_user_preferences.rb' + - 'ee/app/graphql/mutations/compliance_management/frameworks/destroy.rb' + - 'ee/app/graphql/mutations/compliance_management/frameworks/update.rb' + - 'ee/app/graphql/mutations/clusters/agent_tokens/create.rb' + - 'ee/app/graphql/mutations/clusters/agent_tokens/delete.rb' + - 'ee/app/graphql/mutations/clusters/agents/create.rb' + - 'ee/app/graphql/mutations/clusters/agents/delete.rb' + - 'ee/app/graphql/mutations/concerns/mutations/shared_epic_arguments.rb' + - 'ee/app/graphql/mutations/epic_tree/reorder.rb' + - 'ee/app/graphql/mutations/epics/add_issue.rb' + - 'ee/app/graphql/mutations/epics/base.rb' + - 'ee/app/graphql/mutations/epics/create.rb' + - 'ee/app/graphql/mutations/epics/set_subscription.rb' + - 'ee/app/graphql/mutations/epics/update.rb' + - 'ee/app/graphql/mutations/incident_management/oncall_schedule/create.rb' + - 'ee/app/graphql/mutations/incident_management/oncall_schedule/destroy.rb' + - 'ee/app/graphql/mutations/incident_management/oncall_schedule/oncall_schedule_base.rb' + - 'ee/app/graphql/mutations/incident_management/oncall_schedule/update.rb' + - 'ee/app/graphql/mutations/instance_security_dashboard/add_project.rb' + - 'ee/app/graphql/mutations/instance_security_dashboard/remove_project.rb' + - 'ee/app/graphql/mutations/issues/common_ee_mutation_arguments.rb' + - 'ee/app/graphql/mutations/issues/promote_to_epic.rb' + - 'ee/app/graphql/mutations/issues/set_weight.rb' + - 'ee/app/graphql/mutations/iterations/create.rb' + - 'ee/app/graphql/mutations/namespaces/base.rb' + - 'ee/app/graphql/mutations/quality_management/test_cases/create.rb' + - 'ee/app/graphql/mutations/requirements_management/base_requirement.rb' + - 'ee/app/graphql/mutations/requirements_management/update_requirement.rb' + - 'ee/app/graphql/mutations/security/ci_configuration/configure_sast.rb' + - 'ee/app/graphql/mutations/vulnerabilities/confirm.rb' + - 'ee/app/graphql/mutations/vulnerabilities/dismiss.rb' + - 'ee/app/graphql/mutations/vulnerabilities/resolve.rb' + - 'ee/app/graphql/mutations/vulnerabilities/revert_to_detected.rb' + - 'ee/app/graphql/resolvers/board_groupings/epics_resolver.rb' + - 'ee/app/graphql/resolvers/boards/epic_boards_resolver.rb' + - 'ee/app/graphql/resolvers/ci/code_coverage_activities_resolver.rb' + - 'ee/app/graphql/resolvers/clusters/agents_resolver.rb' + - 'ee/app/graphql/resolvers/dast_site_profile_resolver.rb' + - 'ee/app/graphql/resolvers/dast_site_validation_resolver.rb' + - 'ee/app/graphql/resolvers/epics_resolver.rb' + - 'ee/app/graphql/resolvers/geo/registries_resolver.rb' + - 'ee/app/graphql/resolvers/requirements_management/requirements_resolver.rb' + - 'ee/app/graphql/resolvers/requirements_management/test_reports_resolver.rb' + - 'ee/app/graphql/resolvers/timelog_resolver.rb' + - 'ee/app/graphql/resolvers/vulnerabilities/issue_links_resolver.rb' + - 'ee/app/graphql/resolvers/vulnerabilities_count_per_day_resolver.rb' + - 'ee/app/graphql/resolvers/vulnerabilities_grade_resolver.rb' + - 'ee/app/graphql/resolvers/vulnerabilities_history_resolver.rb' + - 'ee/app/graphql/resolvers/vulnerabilities_resolver.rb' + - 'ee/app/graphql/resolvers/vulnerability_severities_count_resolver.rb' + - 'ee/app/graphql/types/admin/analytics/devops_adoption/segment_type.rb' + - 'ee/app/graphql/types/admin/analytics/devops_adoption/snapshot_type.rb' + - 'ee/app/graphql/types/boards/board_epic_type.rb' + - 'ee/app/graphql/types/boards/epic_board_type.rb' + - 'ee/app/graphql/types/boards/epic_user_preferences_type.rb' + - 'ee/app/graphql/types/burnup_chart_daily_totals_type.rb' + - 'ee/app/graphql/types/ci_configuration/sast/analyzers_entity_input_type.rb' + - 'ee/app/graphql/types/ci_configuration/sast/analyzers_entity_type.rb' + - 'ee/app/graphql/types/ci_configuration/sast/entity_input_type.rb' + - 'ee/app/graphql/types/ci_configuration/sast/input_type.rb' + - 'ee/app/graphql/types/clusters/agent_token_type.rb' + - 'ee/app/graphql/types/clusters/agent_type.rb' + - 'ee/app/graphql/types/compliance_management/compliance_framework_type.rb' + - 'ee/app/graphql/types/dast_scanner_profile_type.rb' + - 'ee/app/graphql/types/dast_site_profile_type.rb' + - 'ee/app/graphql/types/dast_site_validation_type.rb' + - 'ee/app/graphql/types/epic_descendant_count_type.rb' + - 'ee/app/graphql/types/epic_descendant_weight_sum_type.rb' + - 'ee/app/graphql/types/epic_health_status_type.rb' + - 'ee/app/graphql/types/epic_issue_type.rb' + - 'ee/app/graphql/types/epic_tree/epic_tree_node_input_type.rb' + - 'ee/app/graphql/types/epic_type.rb' + - 'ee/app/graphql/types/external_issue_type.rb' + - 'ee/app/graphql/types/geo/geo_node_type.rb' + - 'ee/app/graphql/types/geo/merge_request_diff_registry_type.rb' + - 'ee/app/graphql/types/geo/package_file_registry_type.rb' + - 'ee/app/graphql/types/geo/snippet_repository_registry_type.rb' + - 'ee/app/graphql/types/geo/terraform_state_version_registry_type.rb' + - 'ee/app/graphql/types/group_stats_type.rb' + - 'ee/app/graphql/types/incident_management/oncall_schedule_type.rb' + - 'ee/app/graphql/types/instance_security_dashboard_type.rb' + - 'ee/app/graphql/types/iteration_type.rb' + - 'ee/app/graphql/types/metric_image_type.rb' + - 'ee/app/graphql/types/requirements_management/requirement_states_count_type.rb' + - 'ee/app/graphql/types/requirements_management/requirement_type.rb' + - 'ee/app/graphql/types/requirements_management/test_report_type.rb' + - 'ee/app/graphql/types/scanned_resource_type.rb' + - 'ee/app/graphql/types/security_report_summary_section_type.rb' + - 'ee/app/graphql/types/time_report_stats_type.rb' + - 'ee/app/graphql/types/timebox_metrics_type.rb' + - 'ee/app/graphql/types/timebox_report_interface.rb' + - 'ee/app/graphql/types/timebox_report_type.rb' + - 'ee/app/graphql/types/timelog_type.rb' + - 'ee/app/graphql/types/vulnerabilities_count_by_day_and_severity_type.rb' + - 'ee/app/graphql/types/vulnerabilities_count_by_day_type.rb' + - 'ee/app/graphql/types/vulnerability/external_issue_link_type.rb' + - 'ee/app/graphql/types/vulnerability/issue_link_type.rb' + - 'ee/app/graphql/types/vulnerability_identifier_type.rb' + - 'ee/app/graphql/types/vulnerability_location/container_scanning_type.rb' + - 'ee/app/graphql/types/vulnerability_location/coverage_fuzzing_type.rb' + - 'ee/app/graphql/types/vulnerability_location/dast_type.rb' + - 'ee/app/graphql/types/vulnerability_location/dependency_scanning_type.rb' + - 'ee/app/graphql/types/vulnerability_location/sast_type.rb' + - 'ee/app/graphql/types/vulnerability_location/secret_detection_type.rb' + - 'ee/app/graphql/types/vulnerability_scanner_type.rb' + - 'ee/app/graphql/types/vulnerability_type.rb' + - 'ee/app/graphql/types/vulnerable_dependency_type.rb' + - 'ee/app/graphql/types/vulnerable_package_type.rb' + - 'ee/app/graphql/types/vulnerable_projects_by_grade_type.rb' + +# WIP: https://gitlab.com/gitlab-org/gitlab/-/issues/34997 +RSpec/AnyInstanceOf: + Exclude: + - 'ee/spec/controllers/admin/geo/nodes_controller_spec.rb' + - 'ee/spec/controllers/ee/groups_controller_spec.rb' + - 'ee/spec/controllers/groups/analytics/productivity_analytics_controller_spec.rb' + - 'ee/spec/controllers/groups/epics/notes_controller_spec.rb' + - 'ee/spec/controllers/groups/omniauth_callbacks_controller_spec.rb' + - 'ee/spec/controllers/oauth/geo_auth_controller_spec.rb' + - 'ee/spec/controllers/projects/environments_controller_spec.rb' + - 'ee/spec/controllers/projects/integrations/jira/issues_controller_spec.rb' + - 'ee/spec/controllers/projects/merge_requests_controller_spec.rb' + - 'ee/spec/controllers/projects/path_locks_controller_spec.rb' + - 'ee/spec/controllers/projects_controller_spec.rb' + - 'ee/spec/controllers/subscriptions_controller_spec.rb' + - 'ee/spec/controllers/trials_controller_spec.rb' + - 'ee/spec/features/admin/admin_audit_logs_spec.rb' + - 'ee/spec/features/admin/admin_reset_pipeline_minutes_spec.rb' + - 'ee/spec/features/admin/admin_users_spec.rb' + - 'ee/spec/features/admin/licenses/admin_views_license_spec.rb' + - 'ee/spec/features/boards/scoped_issue_board_spec.rb' + - 'ee/spec/features/ci_shared_runner_warnings_spec.rb' + - 'ee/spec/features/groups/group_settings_spec.rb' + - 'ee/spec/features/groups/navbar_spec.rb' + - 'ee/spec/features/groups/saml_providers_spec.rb' + - 'ee/spec/features/issues/form_spec.rb' + - 'ee/spec/features/merge_request/user_creates_merge_request_spec.rb' + - 'ee/spec/features/projects/new_project_spec.rb' + - 'ee/spec/features/projects/services/user_activates_jira_spec.rb' + - 'ee/spec/features/registrations/welcome_spec.rb' + - 'ee/spec/features/security/project/internal_access_spec.rb' + - 'ee/spec/features/security/project/private_access_spec.rb' + - 'ee/spec/features/security/project/public_access_spec.rb' + - 'ee/spec/features/trials/capture_lead_spec.rb' + - 'ee/spec/features/trials/select_namespace_spec.rb' + - 'ee/spec/features/users/login_spec.rb' + - 'ee/spec/graphql/mutations/dast_on_demand_scans/create_spec.rb' + - 'ee/spec/graphql/mutations/incident_management/oncall_schedule/create_spec.rb' + - 'ee/spec/graphql/mutations/incident_management/oncall_schedule/destroy_spec.rb' + - 'ee/spec/graphql/mutations/incident_management/oncall_schedule/update_spec.rb' + - 'ee/spec/helpers/application_helper_spec.rb' + - 'ee/spec/lib/ee/api/helpers_spec.rb' + - 'ee/spec/lib/ee/gitlab/auth/ldap/sync/group_spec.rb' + - 'ee/spec/lib/ee/gitlab/checks/push_rule_check_spec.rb' + - 'ee/spec/lib/ee/gitlab/checks/push_rules/commit_check_spec.rb' + - 'ee/spec/lib/gitlab/auth/group_saml/membership_enforcer_spec.rb' + - 'ee/spec/lib/gitlab/auth/ldap/access_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/Jobs/browser_performance_testing_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/Jobs/dast_default_branch_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/Jobs/load_performance_testing_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/Verify/browser_performance_testing_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/api_fuzzing_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/container_scanning_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/coverage_fuzzing_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/dast_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/dependency_scanning_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/license_scanning_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/ci/templates/sast_gitlab_ci_yaml_spec.rb' + - 'ee/spec/lib/gitlab/elastic/project_search_results_spec.rb' + - 'ee/spec/lib/gitlab/expiring_subscription_message_spec.rb' + - 'ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb' + - 'ee/spec/lib/gitlab/legacy_github_import/project_creator_spec.rb' + - 'ee/spec/lib/omni_auth/strategies/group_saml_spec.rb' + - 'ee/spec/lib/security/ci_configuration/sast_build_actions_spec.rb' + - 'ee/spec/lib/system_check/geo/geo_database_configured_check_spec.rb' + - 'ee/spec/migrations/schedule_populate_resolved_on_default_branch_column_spec.rb' + - 'ee/spec/migrations/update_location_fingerprint_column_for_cs_spec.rb' + - 'ee/spec/migrations/update_occurrence_severity_column_spec.rb' + - 'ee/spec/migrations/update_undefined_confidence_from_occurrences_spec.rb' + - 'ee/spec/migrations/update_undefined_confidence_from_vulnerabilities_spec.rb' + - 'ee/spec/migrations/update_vulnerability_severity_column_spec.rb' + - 'ee/spec/models/ee/namespace_spec.rb' + - 'ee/spec/models/geo_node_status_spec.rb' + - 'ee/spec/models/group_spec.rb' + - 'ee/spec/models/issue_spec.rb' + - 'ee/spec/models/merge_request_spec.rb' + - 'ee/spec/models/project_import_state_spec.rb' + - 'ee/spec/models/push_rule_spec.rb' + - 'ee/spec/presenters/ci/pipeline_presenter_spec.rb' + - 'ee/spec/presenters/projects/security/configuration_presenter_spec.rb' + - 'ee/spec/requests/api/geo_nodes_spec.rb' + - 'ee/spec/requests/api/graphql/mutations/dast_on_demand_scans/create_spec.rb' + - 'ee/spec/requests/api/graphql/mutations/dast_site_profiles/delete_spec.rb' + - 'ee/spec/requests/api/graphql/mutations/pipelines/run_dast_scan_spec.rb' + - 'ee/spec/requests/api/issues_spec.rb' + - 'ee/spec/requests/api/projects_spec.rb' + - 'ee/spec/requests/git_http_spec.rb' + - 'ee/spec/requests/groups_controller_spec.rb' + - 'ee/spec/requests/omniauth_kerberos_spnego_spec.rb' + - 'ee/spec/requests/repositories/git_http_controller_spec.rb' + - 'ee/spec/services/alert_management/network_alert_service_spec.rb' + - 'ee/spec/services/ci/expire_pipeline_cache_service_spec.rb' + - 'ee/spec/services/ci/run_dast_scan_service_spec.rb' + - 'ee/spec/services/ee/git/branch_push_service_spec.rb' + - 'ee/spec/services/ee/merge_requests/create_from_vulnerability_data_service_spec.rb' + - 'ee/spec/services/ee/merge_requests/refresh_service_spec.rb' + - 'ee/spec/services/ee/security/ingress_modsecurity_usage_service_spec.rb' + - 'ee/spec/services/ee/users/create_service_spec.rb' + - 'ee/spec/services/ee/users/destroy_service_spec.rb' + - 'ee/spec/services/geo/container_repository_sync_service_spec.rb' + - 'ee/spec/services/geo/design_repository_sync_service_spec.rb' + - 'ee/spec/services/geo/framework_repository_sync_service_spec.rb' + - 'ee/spec/services/geo/hashed_storage_migration_service_spec.rb' + - 'ee/spec/services/geo/metrics_update_service_spec.rb' + - 'ee/spec/services/geo/move_repository_service_spec.rb' + - 'ee/spec/services/geo/project_housekeeping_service_spec.rb' + - 'ee/spec/services/geo/rename_repository_service_spec.rb' + - 'ee/spec/services/geo/repository_destroy_service_spec.rb' + - 'ee/spec/services/geo/repository_sync_service_spec.rb' + - 'ee/spec/services/geo/wiki_sync_service_spec.rb' + - 'ee/spec/services/groups/destroy_service_spec.rb' + - 'ee/spec/services/groups/update_service_spec.rb' + - 'ee/spec/services/merge_trains/check_status_service_spec.rb' + - 'ee/spec/services/network_policies/resources_service_spec.rb' + - 'ee/spec/services/projects/destroy_service_spec.rb' + - 'ee/spec/services/projects/group_links/destroy_service_spec.rb' + - 'ee/spec/services/projects/update_service_spec.rb' + - 'ee/spec/services/slash_commands/global_slack_handler_spec.rb' + - 'ee/spec/support/helpers/ee/stub_configuration.rb' + - 'ee/spec/support/shared_examples/controllers/analytics/cycle_analytics/shared_stage_shared_examples.rb' + - 'ee/spec/support/shared_examples/features/gold_trial_callout_shared_examples.rb' + - 'ee/spec/support/shared_examples/lib/gitlab/geo/geo_logs_event_source_info_shared_examples.rb' + - 'ee/spec/support/shared_examples/models/member_shared_examples.rb' + - 'ee/spec/support/shared_examples/services/base_sync_service_shared_examples.rb' + - 'ee/spec/support/shared_examples/services/geo/geo_request_service_shared_examples.rb' + - 'ee/spec/workers/build_finished_worker_spec.rb' + - 'ee/spec/workers/concerns/elastic/indexing_control_spec.rb' + - 'ee/spec/workers/elastic_commit_indexer_worker_spec.rb' + - 'ee/spec/workers/geo/design_repository_shard_sync_worker_spec.rb' + - 'ee/spec/workers/geo/file_download_dispatch_worker_spec.rb' + - 'ee/spec/workers/geo/registry_sync_worker_spec.rb' + - 'ee/spec/workers/geo/repository_cleanup_worker_spec.rb' + - 'ee/spec/workers/geo/repository_shard_sync_worker_spec.rb' + - 'ee/spec/workers/project_cache_worker_spec.rb' + - 'ee/spec/workers/repository_import_worker_spec.rb' + - 'ee/spec/workers/vulnerability_exports/export_deletion_worker_spec.rb' + - 'qa/spec/runtime/release_spec.rb' + - 'spec/controllers/admin/sessions_controller_spec.rb' + - 'spec/controllers/application_controller_spec.rb' + - 'spec/controllers/concerns/issuable_actions_spec.rb' + - 'spec/controllers/concerns/static_object_external_storage_spec.rb' + - 'spec/controllers/explore/projects_controller_spec.rb' + - 'spec/controllers/groups/clusters_controller_spec.rb' + - 'spec/controllers/groups/settings/ci_cd_controller_spec.rb' + - 'spec/controllers/groups_controller_spec.rb' + - 'spec/controllers/import/bitbucket_controller_spec.rb' + - 'spec/controllers/oauth/jira/authorizations_controller_spec.rb' + - 'spec/controllers/omniauth_callbacks_controller_spec.rb' + - 'spec/controllers/projects/artifacts_controller_spec.rb' + - 'spec/controllers/projects/branches_controller_spec.rb' + - 'spec/controllers/projects/clusters_controller_spec.rb' + - 'spec/controllers/projects/commit_controller_spec.rb' + - 'spec/controllers/projects/commits_controller_spec.rb' + - 'spec/controllers/projects/environments_controller_spec.rb' + - 'spec/controllers/projects/imports_controller_spec.rb' + - 'spec/controllers/projects/issues_controller_spec.rb' + - 'spec/controllers/projects/jobs_controller_spec.rb' + - 'spec/controllers/projects/labels_controller_spec.rb' + - 'spec/controllers/projects/merge_requests_controller_spec.rb' + - 'spec/controllers/projects/pipelines_controller_spec.rb' + - 'spec/controllers/projects/service_hook_logs_controller_spec.rb' + - 'spec/controllers/projects/services_controller_spec.rb' + - 'spec/controllers/projects/tags_controller_spec.rb' + - 'spec/controllers/registrations/experience_levels_controller_spec.rb' + - 'spec/controllers/registrations_controller_spec.rb' + - 'spec/controllers/sessions_controller_spec.rb' + - 'spec/controllers/snippets/notes_controller_spec.rb' + - 'spec/controllers/snippets_controller_spec.rb' + - 'spec/features/admin/admin_mode/login_spec.rb' + - 'spec/features/groups/clusters/eks_spec.rb' + - 'spec/features/groups/members/tabs_spec.rb' + - 'spec/features/ide/static_object_external_storage_csp_spec.rb' + - 'spec/features/issuables/issuable_list_spec.rb' + - 'spec/features/issues/form_spec.rb' + - 'spec/features/merge_request/user_creates_image_diff_notes_spec.rb' + - 'spec/features/merge_request/user_reviews_image_spec.rb' + - 'spec/features/merge_request/user_sees_diff_spec.rb' + - 'spec/features/merge_request/user_sees_merge_widget_spec.rb' + - 'spec/features/profiles/personal_access_tokens_spec.rb' + - 'spec/features/projects/clusters/gcp_spec.rb' + - 'spec/features/projects/clusters_spec.rb' + - 'spec/features/projects/container_registry_spec.rb' + - 'spec/features/projects/files/user_browses_lfs_files_spec.rb' + - 'spec/features/projects/jobs_spec.rb' + - 'spec/features/projects/navbar_spec.rb' + - 'spec/features/projects/pages_spec.rb' + - 'spec/features/projects/services/user_activates_mattermost_slash_command_spec.rb' + - 'spec/features/projects/settings/service_desk_setting_spec.rb' + - 'spec/features/projects/show/user_sees_setup_shortcut_buttons_spec.rb' + - 'spec/features/snippets/embedded_snippet_spec.rb' + - 'spec/features/usage_stats_consent_spec.rb' + - 'spec/finders/prometheus_metrics_finder_spec.rb' + - 'spec/graphql/mutations/alert_management/create_alert_issue_spec.rb' + - 'spec/graphql/mutations/alert_management/http_integration/create_spec.rb' + - 'spec/graphql/mutations/alert_management/http_integration/destroy_spec.rb' + - 'spec/graphql/mutations/alert_management/http_integration/reset_token_spec.rb' + - 'spec/graphql/mutations/alert_management/http_integration/update_spec.rb' + - 'spec/graphql/mutations/alert_management/prometheus_integration/create_spec.rb' + - 'spec/graphql/mutations/alert_management/prometheus_integration/reset_token_spec.rb' + - 'spec/graphql/mutations/alert_management/prometheus_integration/update_spec.rb' + - 'spec/helpers/analytics/unique_visits_helper_spec.rb' + - 'spec/helpers/projects_helper_spec.rb' + - 'spec/initializers/lograge_spec.rb' + - 'spec/lib/api/entities/merge_request_basic_spec.rb' + - 'spec/lib/api/entities/merge_request_changes_spec.rb' + - 'spec/lib/api/helpers_spec.rb' + - 'spec/lib/backup/files_spec.rb' + - 'spec/lib/backup/manager_spec.rb' + - 'spec/lib/banzai/commit_renderer_spec.rb' + - 'spec/lib/banzai/filter/external_issue_reference_filter_spec.rb' + - 'spec/lib/banzai/filter/issue_reference_filter_spec.rb' + - 'spec/lib/banzai/filter/repository_link_filter_spec.rb' + - 'spec/lib/banzai/pipeline/gfm_pipeline_spec.rb' + - 'spec/lib/extracts_ref_spec.rb' + - 'spec/lib/feature_spec.rb' + - 'spec/lib/gitlab/app_logger_spec.rb' + - 'spec/lib/gitlab/asciidoc_spec.rb' + - 'spec/lib/gitlab/auth/auth_finders_spec.rb' + - 'spec/lib/gitlab/auth/blocked_user_tracker_spec.rb' + - 'spec/lib/gitlab/auth/request_authenticator_spec.rb' + - 'spec/lib/gitlab/auth_spec.rb' + - 'spec/lib/gitlab/background_migration/populate_personal_snippet_statistics_spec.rb' + - 'spec/lib/gitlab/background_migration/populate_project_snippet_statistics_spec.rb' + - 'spec/lib/gitlab/checks/diff_check_spec.rb' + - 'spec/lib/gitlab/checks/lfs_check_spec.rb' + - 'spec/lib/gitlab/checks/lfs_integrity_spec.rb' + - 'spec/lib/gitlab/ci/config/external/file/base_spec.rb' + - 'spec/lib/gitlab/ci/config/external/file/local_spec.rb' + - 'spec/lib/gitlab/ci/config/external/processor_spec.rb' + - 'spec/lib/gitlab/ci/pipeline/chain/build_spec.rb' + - 'spec/lib/gitlab/ci/pipeline/chain/command_spec.rb' + - 'spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb' + - 'spec/lib/gitlab/ci/templates/Jobs/build_gitlab_ci_yaml_spec.rb' + - 'spec/lib/gitlab/ci/templates/Jobs/code_quality_gitlab_ci_yaml_spec.rb' + - 'spec/lib/gitlab/ci/templates/Jobs/deploy_gitlab_ci_yaml_spec.rb' + - 'spec/lib/gitlab/ci/templates/Jobs/test_gitlab_ci_yaml_spec.rb' + - 'spec/lib/gitlab/ci/templates/Terraform/base_gitlab_ci_yaml_spec.rb' + - 'spec/lib/gitlab/ci/templates/Verify/load_performance_testing_gitlab_ci_yaml_spec.rb' + - 'spec/lib/gitlab/ci/templates/auto_devops_gitlab_ci_yaml_spec.rb' + - 'spec/lib/gitlab/ci/templates/npm_spec.rb' + - 'spec/lib/gitlab/ci/templates/terraform_latest_gitlab_ci_yaml_spec.rb' + - 'spec/lib/gitlab/ci/trace_spec.rb' + - 'spec/lib/gitlab/current_settings_spec.rb' + - 'spec/lib/gitlab/cycle_analytics/base_event_fetcher_spec.rb' + - 'spec/lib/gitlab/database/multi_threaded_migration_spec.rb' + - 'spec/lib/gitlab/diff/highlight_cache_spec.rb' + - 'spec/lib/gitlab/diff/highlight_spec.rb' + - 'spec/lib/gitlab/diff/position_spec.rb' + - 'spec/lib/gitlab/email/handler/create_issue_handler_spec.rb' + - 'spec/lib/gitlab/email/handler/create_note_handler_spec.rb' + - 'spec/lib/gitlab/etag_caching/middleware_spec.rb' + - 'spec/lib/gitlab/exclusive_lease_helpers_spec.rb' + - 'spec/lib/gitlab/fogbugz_import/importer_spec.rb' + - 'spec/lib/gitlab/gfm/reference_rewriter_spec.rb' + - 'spec/lib/gitlab/git/repository_spec.rb' + - 'spec/lib/gitlab/gitaly_client/blob_service_spec.rb' + - 'spec/lib/gitlab/gitaly_client/commit_service_spec.rb' + - 'spec/lib/gitlab/gitaly_client/conflicts_service_spec.rb' + - 'spec/lib/gitlab/gitaly_client/health_check_service_spec.rb' + - 'spec/lib/gitlab/gitaly_client/operation_service_spec.rb' + - 'spec/lib/gitlab/gitaly_client/praefect_info_service_spec.rb' + - 'spec/lib/gitlab/gitaly_client/ref_service_spec.rb' + - 'spec/lib/gitlab/gitaly_client/remote_service_spec.rb' + - 'spec/lib/gitlab/gitaly_client/repository_service_spec.rb' + - 'spec/lib/gitlab/gitaly_client/wiki_service_spec.rb' + - 'spec/lib/gitlab/github_import/importer/pull_request_importer_spec.rb' + - 'spec/lib/gitlab/gpg/invalid_gpg_signature_updater_spec.rb' + - 'spec/lib/gitlab/hashed_storage/migrator_spec.rb' + - 'spec/lib/gitlab/import/merge_request_helpers_spec.rb' + - 'spec/lib/gitlab/import_export/config_spec.rb' + - 'spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb' + - 'spec/lib/gitlab/import_export/importer_spec.rb' + - 'spec/lib/gitlab/import_export/lfs_restorer_spec.rb' + - 'spec/lib/gitlab/import_export/project/tree_restorer_spec.rb' + - 'spec/lib/gitlab/import_export/snippet_repo_restorer_spec.rb' + - 'spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb' + - 'spec/lib/gitlab/import_export/version_checker_spec.rb' + - 'spec/lib/gitlab/job_waiter_spec.rb' + - 'spec/lib/gitlab/legacy_github_import/importer_spec.rb' + - 'spec/lib/gitlab/legacy_github_import/project_creator_spec.rb' + - 'spec/lib/gitlab/metrics/exporter/base_exporter_spec.rb' + - 'spec/lib/gitlab/metrics/rack_middleware_spec.rb' + - 'spec/lib/gitlab/metrics/subscribers/active_record_spec.rb' + - 'spec/lib/gitlab/metrics_spec.rb' + - 'spec/lib/gitlab/patch/action_dispatch_journey_formatter_spec.rb' + - 'spec/lib/gitlab/sidekiq_daemon/monitor_spec.rb' + - 'spec/lib/gitlab/sidekiq_middleware_spec.rb' + - 'spec/lib/gitlab/tracking/destinations/product_analytics_spec.rb' + - 'spec/lib/gitlab/tracking/destinations/snowplow_spec.rb' + - 'spec/lib/gitlab/tracking_spec.rb' + - 'spec/lib/gitlab/usage_data_spec.rb' + - 'spec/lib/gitlab/workhorse_spec.rb' + - 'spec/lib/gitlab/x509/commit_spec.rb' + - 'spec/lib/gitlab/x509/signature_spec.rb' + - 'spec/lib/google_api/cloud_platform/client_spec.rb' + - 'spec/lib/json_web_token/rsa_token_spec.rb' + - 'spec/lib/mattermost/command_spec.rb' + - 'spec/lib/mattermost/team_spec.rb' + - 'spec/lib/system_check/simple_executor_spec.rb' + - 'spec/models/ci/build_spec.rb' + - 'spec/models/ci/runner_spec.rb' + - 'spec/models/commit_spec.rb' + - 'spec/models/environment_spec.rb' + - 'spec/models/group_spec.rb' + - 'spec/models/hooks/service_hook_spec.rb' + - 'spec/models/hooks/system_hook_spec.rb' + - 'spec/models/hooks/web_hook_spec.rb' + - 'spec/models/issue_spec.rb' + - 'spec/models/key_spec.rb' + - 'spec/models/member_spec.rb' + - 'spec/models/merge_request_diff_spec.rb' + - 'spec/models/merge_request_spec.rb' + - 'spec/models/note_spec.rb' + - 'spec/models/project_import_state_spec.rb' + - 'spec/models/project_services/jira_service_spec.rb' + - 'spec/models/project_services/mattermost_slash_commands_service_spec.rb' + - 'spec/models/project_spec.rb' + - 'spec/models/repository_spec.rb' + - 'spec/models/user_spec.rb' + - 'spec/models/x509_certificate_spec.rb' + - 'spec/policies/ci/build_policy_spec.rb' + - 'spec/policies/ci/pipeline_policy_spec.rb' + - 'spec/presenters/gitlab/blame_presenter_spec.rb' + - 'spec/presenters/merge_request_presenter_spec.rb' + - 'spec/requests/api/api_spec.rb' + - 'spec/requests/api/ci/runner/jobs_artifacts_spec.rb' + - 'spec/requests/api/ci/runner/jobs_put_spec.rb' + - 'spec/requests/api/ci/runner/jobs_request_post_spec.rb' + - 'spec/requests/api/ci/runner/jobs_trace_spec.rb' + - 'spec/requests/api/ci/runner/runners_delete_spec.rb' + - 'spec/requests/api/ci/runner/runners_post_spec.rb' + - 'spec/requests/api/ci/runner/runners_verify_post_spec.rb' + - 'spec/requests/api/graphql/gitlab_schema_spec.rb' + - 'spec/requests/api/graphql/project/error_tracking/sentry_detailed_error_request_spec.rb' + - 'spec/requests/api/graphql/project/error_tracking/sentry_errors_request_spec.rb' + - 'spec/requests/api/graphql_spec.rb' + - 'spec/requests/api/helpers_spec.rb' + - 'spec/requests/api/internal/base_spec.rb' + - 'spec/requests/api/maven_packages_spec.rb' + - 'spec/requests/api/merge_requests_spec.rb' + - 'spec/requests/api/pages/pages_spec.rb' + - 'spec/requests/api/project_export_spec.rb' + - 'spec/requests/api/project_import_spec.rb' + - 'spec/requests/api/projects_spec.rb' + - 'spec/requests/api/snippets_spec.rb' + - 'spec/requests/api/todos_spec.rb' + - 'spec/requests/git_http_spec.rb' + - 'spec/requests/import/gitlab_projects_controller_spec.rb' + - 'spec/routing/routing_spec.rb' + - 'spec/serializers/analytics_stage_serializer_spec.rb' + - 'spec/serializers/merge_request_poll_cached_widget_entity_spec.rb' + - 'spec/serializers/merge_request_poll_widget_entity_spec.rb' + - 'spec/services/application_settings/update_service_spec.rb' + - 'spec/services/auto_merge/merge_when_pipeline_succeeds_service_spec.rb' + - 'spec/services/boards/lists/update_service_spec.rb' + - 'spec/services/ci/create_pipeline_service_spec.rb' + - 'spec/services/ci/destroy_expired_job_artifacts_service_spec.rb' + - 'spec/services/ci/expire_pipeline_cache_service_spec.rb' + - 'spec/services/ci/list_config_variables_service_spec.rb' + - 'spec/services/ci/register_job_service_spec.rb' + - 'spec/services/ci/resource_groups/assign_resource_from_resource_group_service_spec.rb' + - 'spec/services/ci/retry_build_service_spec.rb' + - 'spec/services/ci/retry_pipeline_service_spec.rb' + - 'spec/services/ci/stop_environments_service_spec.rb' + - 'spec/services/clusters/applications/create_service_spec.rb' + - 'spec/services/clusters/cleanup/project_namespace_service_spec.rb' + - 'spec/services/clusters/cleanup/service_account_service_spec.rb' + - 'spec/services/deployments/older_deployments_drop_service_spec.rb' + - 'spec/services/deployments/update_environment_service_spec.rb' + - 'spec/services/draft_notes/destroy_service_spec.rb' + - 'spec/services/events/render_service_spec.rb' + - 'spec/services/git/branch_push_service_spec.rb' + - 'spec/services/git/process_ref_changes_service_spec.rb' + - 'spec/services/groups/create_service_spec.rb' + - 'spec/services/groups/update_service_spec.rb' + - 'spec/services/integrations/test/project_service_spec.rb' + - 'spec/services/issuable/destroy_service_spec.rb' + - 'spec/services/issues/close_service_spec.rb' + - 'spec/services/issues/reopen_service_spec.rb' + - 'spec/services/members/destroy_service_spec.rb' + - 'spec/services/merge_requests/add_todo_when_build_fails_service_spec.rb' + - 'spec/services/merge_requests/build_service_spec.rb' + - 'spec/services/merge_requests/merge_service_spec.rb' + - 'spec/services/merge_requests/mergeability_check_service_spec.rb' + - 'spec/services/merge_requests/refresh_service_spec.rb' + - 'spec/services/merge_requests/reload_diffs_service_spec.rb' + - 'spec/services/merge_requests/resolved_discussion_notification_service_spec.rb' + - 'spec/services/metrics/dashboard/custom_dashboard_service_spec.rb' + - 'spec/services/metrics/dashboard/transient_embed_service_spec.rb' + - 'spec/services/notes/create_service_spec.rb' + - 'spec/services/notes/render_service_spec.rb' + - 'spec/services/packages/conan/create_package_file_service_spec.rb' + - 'spec/services/packages/nuget/metadata_extraction_service_spec.rb' + - 'spec/services/packages/nuget/update_package_from_metadata_service_spec.rb' + - 'spec/services/pages/delete_services_spec.rb' + - 'spec/services/pod_logs/elasticsearch_service_spec.rb' + - 'spec/services/pod_logs/kubernetes_service_spec.rb' + - 'spec/services/post_receive_service_spec.rb' + - 'spec/services/projects/after_rename_service_spec.rb' + - 'spec/services/projects/container_repository/cleanup_tags_service_spec.rb' + - 'spec/services/projects/container_repository/delete_tags_service_spec.rb' + - 'spec/services/projects/container_repository/gitlab/delete_tags_service_spec.rb' + - 'spec/services/projects/container_repository/third_party/delete_tags_service_spec.rb' + - 'spec/services/projects/destroy_service_spec.rb' + - 'spec/services/projects/fork_service_spec.rb' + - 'spec/services/projects/import_service_spec.rb' + - 'spec/services/projects/lfs_pointers/lfs_download_service_spec.rb' + - 'spec/services/projects/lfs_pointers/lfs_object_download_list_service_spec.rb' + - 'spec/services/projects/prometheus/alerts/notify_service_spec.rb' + - 'spec/services/projects/transfer_service_spec.rb' + - 'spec/services/projects/update_remote_mirror_service_spec.rb' + - 'spec/services/projects/update_service_spec.rb' + - 'spec/services/projects/update_statistics_service_spec.rb' + - 'spec/services/resource_events/change_labels_service_spec.rb' + - 'spec/services/search_service_spec.rb' + - 'spec/services/snippets/create_service_spec.rb' + - 'spec/services/test_hooks/project_service_spec.rb' + - 'spec/services/test_hooks/system_service_spec.rb' + - 'spec/services/todo_service_spec.rb' + - 'spec/services/users/destroy_service_spec.rb' + - 'spec/services/users/migrate_to_ghost_user_service_spec.rb' + - 'spec/spec_helper.rb' + - 'spec/support/capybara.rb' + - 'spec/support/helpers/api_helpers.rb' + - 'spec/support/helpers/graphql_helpers.rb' + - 'spec/support/helpers/ldap_helpers.rb' + - 'spec/support/helpers/login_helpers.rb' + - 'spec/support/helpers/metrics_dashboard_url_helpers.rb' + - 'spec/support/helpers/rake_helpers.rb' + - 'spec/support/helpers/stub_configuration.rb' + - 'spec/support/helpers/stub_gitlab_calls.rb' + - 'spec/support/helpers/test_env.rb' + - 'spec/support/import_export/common_util.rb' + - 'spec/support/services/migrate_to_ghost_user_service_shared_examples.rb' + - 'spec/support/shared_contexts/email_shared_context.rb' + - 'spec/support/shared_contexts/services/projects/container_repository/delete_tags_service_shared_context.rb' + - 'spec/support/shared_examples/controllers/githubish_import_controller_shared_examples.rb' + - 'spec/support/shared_examples/controllers/issuable_notes_filter_shared_examples.rb' + - 'spec/support/shared_examples/controllers/issuables_requiring_filter_shared_examples.rb' + - 'spec/support/shared_examples/controllers/repository_lfs_file_load_shared_examples.rb' + - 'spec/support/shared_examples/controllers/set_sort_order_from_user_preference_shared_examples.rb' + - 'spec/support/shared_examples/controllers/unique_visits_shared_examples.rb' + - 'spec/support/shared_examples/controllers/update_invalid_issuable_shared_examples.rb' + - 'spec/support/shared_examples/controllers/uploads_actions_shared_examples.rb' + - 'spec/support/shared_examples/features/archive_download_buttons_shared_examples.rb' + - 'spec/support/shared_examples/features/snippets_shared_examples.rb' + - 'spec/support/shared_examples/lib/gitlab/ci/ci_trace_shared_examples.rb' + - 'spec/support/shared_examples/models/atomic_internal_id_shared_examples.rb' + - 'spec/support/shared_examples/models/chat_slash_commands_shared_examples.rb' + - 'spec/support/shared_examples/models/diff_note_after_commit_shared_examples.rb' + - 'spec/support/shared_examples/models/mentionable_shared_examples.rb' + - 'spec/support/shared_examples/models/with_uploads_shared_examples.rb' + - 'spec/support/shared_examples/path_extraction_shared_examples.rb' + - 'spec/support/shared_examples/requests/api/discussions_shared_examples.rb' + - 'spec/support/shared_examples/requests/api/snippets_shared_examples.rb' + - 'spec/support/shared_examples/requests/rack_attack_shared_examples.rb' + - 'spec/support/shared_examples/requests/snippet_shared_examples.rb' + - 'spec/support/shared_examples/services/alert_management_shared_examples.rb' + - 'spec/support/shared_examples/services/boards/boards_list_service_shared_examples.rb' + - 'spec/support/shared_examples/services/boards/issues_list_service_shared_examples.rb' + - 'spec/support/shared_examples/services/boards/issues_move_service_shared_examples.rb' + - 'spec/support/shared_examples/services/issuable_shared_examples.rb' + - 'spec/support/shared_examples/uploaders/object_storage_shared_examples.rb' + - 'spec/support/shared_examples/workers/authorized_projects_worker_shared_example.rb' + - 'spec/support/shared_examples/workers/reactive_cacheable_shared_examples.rb' + - 'spec/support/snowplow.rb' + - 'spec/support/unicorn.rb' + - 'spec/tasks/gitlab/cleanup_rake_spec.rb' + - 'spec/tasks/gitlab/container_registry_rake_spec.rb' + - 'spec/tasks/gitlab/db_rake_spec.rb' + - 'spec/tasks/gitlab/git_rake_spec.rb' + - 'spec/tasks/gitlab/praefect_rake_spec.rb' + - 'spec/tasks/gitlab/shell_rake_spec.rb' + - 'spec/tasks/gitlab/x509/update_rake_spec.rb' + - 'spec/uploaders/file_mover_spec.rb' + - 'spec/uploaders/records_uploads_spec.rb' + - 'spec/uploaders/workers/object_storage/migrate_uploads_worker_spec.rb' + - 'spec/views/layouts/_head.html.haml_spec.rb' + - 'spec/views/projects/artifacts/_artifact.html.haml_spec.rb' + - 'spec/views/shared/runners/show.html.haml_spec.rb' + - 'spec/workers/archive_trace_worker_spec.rb' + - 'spec/workers/build_coverage_worker_spec.rb' + - 'spec/workers/build_hooks_worker_spec.rb' + - 'spec/workers/build_trace_sections_worker_spec.rb' + - 'spec/workers/ci/build_schedule_worker_spec.rb' + - 'spec/workers/ci/daily_build_group_report_results_worker_spec.rb' + - 'spec/workers/cluster_configure_istio_worker_spec.rb' + - 'spec/workers/cluster_provision_worker_spec.rb' + - 'spec/workers/clusters/cleanup/project_namespace_worker_spec.rb' + - 'spec/workers/clusters/cleanup/service_account_worker_spec.rb' + - 'spec/workers/concerns/project_import_options_spec.rb' + - 'spec/workers/create_commit_signature_worker_spec.rb' + - 'spec/workers/create_note_diff_file_worker_spec.rb' + - 'spec/workers/delete_diff_files_worker_spec.rb' + - 'spec/workers/email_receiver_worker_spec.rb' + - 'spec/workers/emails_on_push_worker_spec.rb' + - 'spec/workers/error_tracking_issue_link_worker_spec.rb' + - 'spec/workers/expire_pipeline_cache_worker_spec.rb' + - 'spec/workers/git_garbage_collect_worker_spec.rb' + - 'spec/workers/group_export_worker_spec.rb' + - 'spec/workers/group_import_worker_spec.rb' + - 'spec/workers/namespaceless_project_destroy_worker_spec.rb' + - 'spec/workers/namespaces/root_statistics_worker_spec.rb' + - 'spec/workers/new_note_worker_spec.rb' + - 'spec/workers/object_pool/create_worker_spec.rb' + - 'spec/workers/packages/nuget/extraction_worker_spec.rb' + - 'spec/workers/pages_remove_worker_spec.rb' + - 'spec/workers/pipeline_hooks_worker_spec.rb' + - 'spec/workers/pipeline_process_worker_spec.rb' + - 'spec/workers/pipeline_schedule_worker_spec.rb' + - 'spec/workers/project_cache_worker_spec.rb' + - 'spec/workers/stage_update_worker_spec.rb' + - 'spec/workers/stuck_ci_jobs_worker_spec.rb' + - 'spec/workers/wait_for_cluster_creation_worker_spec.rb' + - 'ee/spec/workers/security/auto_fix_worker_spec.rb' diff --git a/.vale.ini b/.vale.ini index 13b198b914..3c6e0d38b5 100644 --- a/.vale.ini +++ b/.vale.ini @@ -7,3 +7,6 @@ MinAlertLevel = suggestion [*.md] BasedOnStyles = gitlab + +# Ignore SVG markup +TokenIgnores = (\*\*\{\w*\}\*\*) diff --git a/CHANGELOG.md b/CHANGELOG.md index ddb9a4fb0c..9b5728c53a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,20 +2,22 @@ documentation](doc/development/changelog.md) for instructions on adding your own entry. -## 13.6.7 (2021-02-11) +## 13.7.7 (2021-02-11) -### Security (7 changes) +### Security (9 changes) - Cancel running and pending jobs when a project is deleted. !1220 -- Updates authorization for linting API. -- Prevent exposure of confidential issue titles in file browser. -- Check user access on API merge request read actions. - Prevent Denial of Service Attack on gitlab-shell. +- Prevent exposure of confidential issue titles in file browser. +- Updates authorization for linting API. +- Check user access on API merge request read actions. - Limit daily invitations to groups and projects. +- Enforce the analytics enabled project setting for project-level analytics features. +- Perform SSL verification for FortiTokenCloud Integration. - Prevent Server-side Request Forgery for Prometheus when secured by Google IAP. -## 13.6.6 (2021-02-01) +## 13.7.6 (2021-02-01) ### Security (5 changes) @@ -26,14 +28,35 @@ entry. - Add routes for unmatched url for not-get requests. -## 13.6.5 (2021-01-13) +## 13.7.5 (2021-01-25) + +### Fixed (2 changes, 1 of them is from the community) + +- New project guidelines are no longer displayed. !50736 (Roger Meier) +- Fix LFS not working with S3 specific-storage settings. !52296 + + +## 13.7.4 (2021-01-13) ### Security (1 change) - Deny implicit flow for confidential apps. -## 13.6.4 (2021-01-07) +## 13.7.3 (2021-01-08) + +### Fixed (7 changes) + +- Fix Canary Ingress weight is not reflected on UI immediately. !50246 +- Change pages deployments size to bigint. !50262 +- Fix viewing container repositories with tags with corrupted manifest. !50362 +- Fix the graphQL type for container repository tags. !50419 +- Fix(eetrialbanner): fix EE trial banner to allow dismiss. !50436 +- Update Helm 2 version to 2.17.0. !50547 +- Fix project access token regression. !50800 + + +## 13.7.2 (2021-01-07) ### Security (7 changes) @@ -41,9 +64,478 @@ entry. - Deny implicit flow for confidential apps. - Update NuGet regular expression to protect against ReDoS. - Fix regular expression backtracking issue in package name validation. -- Upgrade GitLab Pages to 1.30.2. +- Fix stealing API token from GitLab Pages and DoS Prometheus through GitLab Pages. - Update trusted OAuth applications to set them as confidential. -- Upgrade Workhorse to 8.54.2. +- Upgrade Workhorse to 8.58.2. + + +## 13.7.1 (2020-12-23) + +### Fixed (1 change) + +- Fix project transfer corrupting shared runners state. !47316 + + +## 13.7.0 (2020-12-22) + +### Security (1 change) + +- Fix regular expression backtracking issue in custom emoji name validation. + +### Removed (2 changes, 1 of them is from the community) + +- Remove Google Code importer. !48139 (Getulio Valentin Sánchez) +- Remove release notes from Tags page. !49979 + +### Fixed (109 changes, 7 of them are from the community) + +- Update user mentions when markdown columns are directly saved to DB. !38034 +- Retain spinner when applying MR suggestions. !46203 +- Skipped jobs no longer trigger a cancelled deployment. !46614 (David Barr @davebarr) +- Catch wiki timeouts when rendering pages. !46627 +- Fix single file snippets display for Geo secondary sites. !46812 +- Fix Jira Connect styles not loaded when startup_css is enabled. !47043 +- Add migration that updated users that don't need to have 2fa established. !47193 +- Fix project integration form validation when integration is inactive. !47201 +- Fix project access token build authentication error. !47247 +- Support S3 server side encryption in CI cloud native job logs. !47536 +- Fix repository clone panel for wikis. !47676 +- Hide Mark as draft button in a merged MR even on mobile. !47678 (Takuya Noguchi) +- Eliminate N+1 performance issues in MergeRequest.pipelines in GraphQL API. !47784 +- Add cascade delete foreign key to web_hooks on service_id without validation. !47821 +- Implement passing dotenv variables to bridge jobs. !47905 +- Allow canceling all pipelines with auto-cancel. !47906 +- Fix error in Issuable::ImportCsv::BaseService when CSV file is empty. !47918 +- Fixed editing labels on the swimlanes sidebar. !47946 +- Scroll exactly to the top of a discussion on the MR Overview tab. !47970 +- Search page: fix empty results status. !48034 +- Move fuzz license check to .pre stage. !48076 +- Add link in Access Request API. !48081 (jimcser) +- Add gitlab:db:active task. !48083 +- Fix overscroll for MR diffs in mobile view. !48091 +- Fix incorrect line height in file header. !48117 +- Repopulate historical vulnerability statistics. !48128 +- Fixed image diff comments positioning. !48132 +- Manually trigger pipelines correctly when branches and tags have the same name. Separate tags and branches in trigger pipeline form. !48142 +- Allow failure for Secret Detection job. !48152 +- Change services.inherit_from_id foreign key to ON DELETE CASCADE. !48163 +- Avoid exception when validating diff_note support. !48187 +- Avoid invalid notes on Project Import. !48189 +- Update alert setting form to handle JSON payload submit when mapping builder is not enabled. !48231 +- Adds id desc to index_ci_builds_on_runner_id_and_id_desc. !48241 +- Adds type="button" to the close button for the issue type selector to prevent accidental form submission. !48249 +- Remove orphan service hooks. !48263 +- Fix console error being thrown when file is renamed. !48275 +- Update alert details sidebar assignee dropdown to use correct styling and formatting. !48285 +- Consider design repositories when determining if there is a git transfer in progress. !48304 +- Set Retry-After header when RackAttack throttling. !48310 +- Fix misaligned buttons for CI Jobs page. !48332 (mgandres) +- Use incident instead of issue for operation settings. !48406 +- Fix missing item with same name in autocomplete suggestions. !48410 (Paul Ungureanu @ungps) +- Fix misalignment of commit search by message input. !48430 +- Prometheus integration name should not have a modifiable input field. !48437 +- Fix stretched flash in project commit show page. !48439 +- Ensure job trace endpoint is not called if the current job has not started or the browser is not visible. !48516 +- Update fog-aws to v3.6.7. !48519 +- Fixed double-border style on WebIDE button. !48605 +- Fix spacing between buttons on pipeline header. !48660 +- Fix vulnerability deduplication logic for the "pipeline security tab". !48704 +- Add type filtering in appearance page of the admin panel. !48709 (Paul Ungureanu @ungps) +- Fix confirmation modal showing on project integration. !48720 +- Fix import of LFS files in GitHub import. !48722 +- Github importer - Avoid touching MR when importing pull request `merged by` field. !48729 +- Fix styling of various dropdowns. !48800 +- Fix MR buttons when fork is deleted. !48813 +- Add menu-item class to non-details-job-component. !48834 +- GraphQL: Add gitlay field to CiStatusAction. !48892 +- Global Search - Fix Dark Mode Font. !48927 +- Fix flex overflow bug. !48931 +- Restrict access to job page to developers only when use CI_DEBUG_TRACE is true. !48932 +- Resolve Cannot remove namespace. !48973 +- Resolve Save button should have a different color on press. !48975 +- Fix last_value record in internal_ids for epics. !48988 +- Fix failed group imports getting stuck by long error messages. !48989 +- Avoid branch name checking when creating a new snippet. !48995 +- Ensure default_branch from settings is not blank. !49018 +- Make sure Sourcegraph asset always loads successfully. !49030 +- Fix avatar size in profile activity. !49047 +- Fix margin and selected state in file header. !49059 +- Fix comment highlighting for unified diff components. !49061 +- Fix Jupyter notebook code and image rendering. !49067 +- Fix bug in ProjectRepositoryStorageMove transition to scheduled. !49105 +- Do not crash the ingestion of all security reports if there is an invalid report artifact. !49181 +- Do not automatically reapply incident label after user removes it. !49188 +- Update fog-google to v1.12. !49196 +- Check for a status in the current user dropdown. !49203 +- Fix pipeline page in dark mode. !49214 +- Handle prometheus-formatted alert notifications through HTTP integrations. !49268 +- Update repository size after import. !49319 +- Fix typo on merge locally step. !49330 +- Fix getting security report information on merge requests from forks. !49354 +- Conan packages show build and commit information when published using CI. !49426 +- Clear emoji status in issue/mr header. !49439 +- Hide extra breadcrumb arrow that overlaps with last breadcrumb item. !49456 +- Fix division by error when upload max size is set to 0. !49482 +- Capture subgroup creation failure during Group Import via archive file. !49484 +- Alert Service integration only available for projects. !49561 +- Update projects_imported.total usage metric. !49568 +- Fix usage data tracking of some issue events. !49571 +- Fix copy to clipboard on Firefox. !49648 +- Fix outline on selected button in Snippets Rendered/Source buttons. !49676 +- Add final newline on submit in blob editor. !49681 +- Fail import state whenever repository import fails. !49682 +- Fix author on /clone quickaction usage to be current user. !49830 +- Upgrade mailroom to v0.0.8. !49834 +- Fix the header name for basic auth authentication in package managers APIs. !49836 +- Allow opsgenie manage form to be displayed when opsgenie is enabled. !49863 +- Add custom cop to prevent invalid HTTParty usage. !49878 (Ethan Reesor (@firelizzard)) +- Remove last-child bottom-margin: 0 from page-title class. !49884 +- Fix wording of some 400 Bad request API responses. !49895 +- Set Web IDE Live Preview default background to white. !49901 +- Fix bug in snippets mark as spam mutation. !49912 +- Make the strategies env wrap. !49951 +- Fix get endpoint not returning members with minimal access. !49996 +- Fix feature flag logging is not working on API. !50025 +- Resolve No boards found message showing when loading boards. !50140 +- Fix Markdown attachments in Releases not rendering with full URL. !50146 + +### Deprecated (1 change) + +- Drop unused feature_filter_type experiment column. !48221 + +### Changed (124 changes, 12 of them are from the community) + +- Move Jenkins to Core. !37797 (Ben Bodenmiller (@bbodenmiller)) +- Migrate Bootstrap button to GitLab UI GlButton in IDE. !39988 +- Replace bootstrap alerts in ee/app/views/admin/licenses/new.html.haml. !41275 (Gilang Gumilar) +- Replace bootstrap alerts in app/views/profiles/notifications/show.html.haml. !41310 (Gilang Gumilar) +- Replace bootstrap alerts in app/views/admin/runners/show.html.haml. !41378 (Gilang Gumilar) +- Replace Runner Page Title with Runner’s Hash. !44854 (Kev @KevSlashNull) +- Rename Piwik config items and layout file after rebranding to Matomo. !45658 (Kate Grechishkina @kategrechishkina) +- Improve clarity of admin Rate Limiting UI. !46142 +- Replace fa-exclamation-triangle icons with GitLab SVG warning-solid icon. !47089 +- Add `converted_at` timestamp column to `experiment_users` to record when the user performs an experiment's conversion action. !47093 +- Preserve cross references in AsciiDoc documents. !47131 (Guillaume Grossetie) +- Darker background for dark mode, plus small fixes to MR page. !47359 +- Add option to uninstall the legacy Tiller server for clusters added before GitLab 13.2. !47457 +- Use GitLab UI styles on Integrations page. !47478 +- Add a job to the DAST template that shows an error in the console if the user is not licensed to use DAST. !47484 +- Add BulkImports::Failure to store import failures of the Group Migration (BulkImports) process. !47526 +- Remove brackets in no scopes selected message in access and deploy tokens lists. !47628 +- Begin auto-stop countdown for environment after initial creation. !47702 +- Change default project listing sort order to name. !47734 (Lee Tickett) +- Finalize new create project UI experiment. !47804 +- Make ImportIssuesCsvWorker idempotent. !47808 +- Remove "Details" from breadcrumb item and LD+JSON from Project top. !47817 (Takuya Noguchi) +- Convert knative error alert to glalert. !47840 +- Remember last used project ordering option across groups. !47850 (Lee Tickett) +- Remove "Details" from breadcrumb and JSON+JD on Group top page. !47854 (Takuya Noguchi) +- Hide open registration user callout on gitlab.com. !47865 +- Make "How to merge" modal in merge requests conform to correct modal styling. !47889 +- Remove `Add Issues` button and a related modal. !47898 +- Remove Feature Flag that controls data limit on Deploy Boards, thus making 10MB limits mandatory. !47950 +- Removed boards promotion. !47972 +- Replace fa-chevron-down in template selector dropdown. !48015 +- Remove http_integrations_list feature flag. !48030 +- Add filtering by current iteration to issue lists and issue boards. !48040 +- Implement smart cobertura class path correction. !48048 +- Replace fa-chevron-down icon in pikaday. !48054 +- Add User.location field to GraphQL API. !48059 +- Add support for filtering direct group members by 2FA enabled/disabled. !48084 +- Iterate on the copy in the “Novice or Experienced” page of the registration onboarding flow. !48086 +- Add metrics for count of unique users of alerts and incidents to usage ping. !48087 +- Allow Pages to define a storage-specific connection. !48098 +- Replace fa-exclamation-triangle in users select. !48116 +- Add a generic packages tab to the Packages UI. !48121 +- Replace fa icons in single file diff. !48136 +- Add `checksum` column into the `vulnerability_remediations` table. !48165 +- Replace fa-chevron-down with GitLab SVG in dropdowns. !48171 +- Add ldap encrypted credentials to the usage data. !48210 +- Replace fa-spinner in metrics dashboard yaml definition. !48227 +- Update Design of the Container Registry Cleanup Policy for tags. !48243 +- Enable LFS chunked encoding. !48269 +- Authorize the project for the cluster agent if it is the agent's project. !48314 +- Add GlFormCheckbox to squash commits. !48338 +- Add metric for dead Sidekiq jobs. !48361 +- Make How to merge modal in merge requests widget conform to correct modal styling. !48370 +- Allow filtering project and group members by relationship in GraphQL. !48372 +- Add Attributes cleaner to Group Migration. !48374 +- Add additional fields to GraphQl terraform state version. !48411 +- Bumps Managed-Cluster-Applications CI template to v0.36.0, which upgrades Runner. !48444 +- Expose public email field for user in GraphQL. !48468 +- Add MAU counter for snippet show action. !48477 +- Refine group creation form. !48490 +- Geo: Remove unused indexes. !48504 +- Update empty state for no commits result. !48538 +- Github Importer - import the pull request `merged by` field. !48561 +- Refactor container registry list page to grapqhl. !48602 +- Transfer a project/group to a new namespace inheriting integrations. !48621 +- Replace fa-chevron-down icons with GitLab SVG in gcp cluster form. !48656 +- Add containerRepositoriesCount to project and group queries. !48685 +- Track test failures on pipeline completion. !48695 +- Include actual limit in pipeline limit errors. !48710 +- Replace how to merge HAML with Vue component. !48766 +- Global Search - Fix Sidebar Whitespace. !48832 +- Move CanaryIngress to core. !48836 +- Finish removing unused replication columns from terraform state. !48839 +- The dependency proxy caches manifests and makes HEAD requests to help with rate limiting. !48845 +- Update package_file table to display commits when present. !48882 +- Avoid creating wiki empty repo when not present in export files. !48890 +- Update nodejs-scan rule to wildcard prefix. !48902 +- Add primary key to elasticsearch_indexed_projects. !48919 +- Upgrade fog-aws to v3.7.0. !48921 +- Add new column `finding_uuid` into `vulnerability_feedback` table. !48923 +- Add primary key to elasticsearch_indexed_namespaces. !48944 +- Add ability to type a number in related issues and prepend #. !48952 +- Improve CI for external repo with configurable maximum mirroring frequency on self-hosted. !48955 +- Enable pages_serve_from_deployments FF by default. !48974 +- Replace fa-cirlce in runners helper. !48981 +- Add GitHub Importer pagination. !48983 +- Add primary key to merge_request_context_commit_diff_files. !49024 +- Update template to use codequality 0.85.18-gitlab.1. !49034 +- Display more pipelines info in package history. !49040 +- Use a separate commit to store formatting changes in the Static Site Editor. !49052 +- Delete manifests when purging the dependency proxy using the API. !49056 +- Auto approve users if Admin approval after sign up setting is disabled. !49068 +- Boards - Remove default labels lists generation. !49071 +- Sort merge request diff files directory first. !49118 +- Add user ID based allowlist for Rack::Attack. !49127 +- Sort commit/compare diff files directory first. !49136 +- Move IssueType notes and discussions count logic to resolvers. !49160 +- Let `rake gitlab:workhorse:install` use vendored workhorse. !49250 +- Allow alert list to be visible when alerts exist, even if alerting integrations are disabled. !49257 +- EKS: Provide user feedback on AWS authorization errors. !49278 +- Remove user_search_secondary_email feature flag. !49312 +- Update gitlab-kas to v13.7.0. !49318 +- Convert fa-caret-down icons to chevron-down SVG. !49332 +- Enable file tree highlighting by default. !49356 +- Merge 'Sample Data' and 'Built-in' tabs on Project Templates page. !49374 +- Add Merge Train Setting to the graphql api. !49402 +- Migrate HAML buttons to Pajamas in app/views/profiles/keys. !49421 (Jonston Chan @JonstonChan) +- Migrate `createBoard` away from boardStore. !49450 +- Support merge requests filtered by reviewer in GraphQL API. !49464 +- Gradually load more diffs async. !49476 +- Require users to copy, download, or print 2FA recovery codes. !49493 +- Convert group member filter dropdowns to filtered search bar. !49505 +- Update GitLab Workhorse to v8.58.0. !49534 +- Refactor container registry to use GraphQL API. !49584 +- Remove unneeded pagination code for project importers. !49589 +- Update deprecated button on pipeline security table. !49620 +- Update ide pipeline alert to use gitlab ui. !49634 +- Updates the copy on empty users list tabs. !49642 +- Enable LFS chunked encoding by default. !49649 +- Add visibility and last updated image repository details. !49703 +- Allow updating `hideBacklogList` and `hideClosedList` board attributes. !49947 +- Add expires_at param to GroupMemberBuilder data. !49981 +- Change the unique index on `security_findings` table. !50046 +- Remove dast_unlicensed job. !50129 + +### Performance (24 changes, 2 of them are from the community) + +- Remove redundant index. !47072 +- Add database index for deployment rollback targets. !47159 +- Add index for API Fuzzing usage data. !47692 +- Paginate unit test report. !47953 +- Remove .issue-box from static (classic) Issuable list. !47998 (Takuya Noguchi) +- Remove Bootstrap 4's Cards components from Issuables and Todos. !48004 (Takuya Noguchi) +- Fix N+1 when looking up user's solo owned groups. !48340 +- Paginate first page of branches using Gitaly. !48595 +- Add approvals created_at index. !48684 +- Update index for notes to include `system`. !48864 +- Remove unnecessary Gitaly calls from raw endpoint. !48917 +- Reduce SQL queries when no pipeline hooks are active. !49186 +- Improve query that finds all pipelines in the same family. !49240 +- Rendering Loading State of Last Commit earlier. !49362 +- Fix N+1 queries loading milestones when exporting CSVs. !49429 +- Update snippet repository finder for namespace replication. !49518 +- Reduce object allocations for large merge request. !49563 +- Remove unnecessary Gitaly calls from projects#show. !49565 +- Expand index on ci_pipelines. !49604 +- Remove unnecessary queries in milestone page. !49662 +- Improve the performance of the diff change access check. !49803 +- Remove initial data check on project level value stream page. !49936 +- Improve UI and performance of branches overview page. !50096 +- Use the improved version of Value Stream Analytics backend on the project level. !50141 + +### Added (125 changes, 13 of them are from the community) + +- Configurable personal access token prefix. !20968 (Max Wittig & Diego Louzán) +- Add CI_OPEN_MERGE_REQUESTS environment variable. !38673 (Ben Bodenmiller @bbodenmiller) +- Add Kroki to support more diagrams in AsciiDoc and Markdown. !44851 (Guillaume Grossetie) +- Fix the unreachable CLI image in OpenShift CI template. !44933 (Klaus Mueller @klml) +- Add other role column in user details table. !45635 +- Add encrypted ldap secrets support. !45712 +- Add the gitlab-experiment gem, with configuration. !45840 +- Support Git access for group wikis. !45892 +- Add toggle to remove Analytics left nav item. !46011 +- Add merge requests total time to merge field to the GraphQL API. !46040 +- Cleanup webauthn background migration. !46179 (Jan Beckmann) +- Add GraphQL mutation to update a release. !46611 +- Capture design detail views via usage ping. !46751 +- Add metric image uploading to incidents via REST API. !46845 +- Expose GraphQL resolver for processing CI config. !46912 +- Limit maximum deployments per pipeline to 500. !46931 +- Enable Crowd auth for git-over-https. !46935 (Thomas Mendoza @tgmachina) +- Create a new `ExperimentSubject` model, associated to the `Experiment` model, and related database migrations. !47042 +- Add GraphQL mutations for Devops Adoption Segment. !47066 +- Allow passing `commit_id` when creating MR discussions via the API and expose `commit_id` for MR diff notes. !47130 (Johannes Altmanninger @krobelus) +- Adds bulk project repository storage move API. !47142 +- Add packages_size to ProjectStatistics API entity. !47156 (Roger Meier) +- Create `vulnerability_findings_remediations` and `vulnerability_remediations` tables. !47166 +- Geo: Add verification state machine fields to package files table. !47260 +- Add `increment_counter` to Usage Ping API. !47309 +- Geo: Add verification indexes for package files. !47372 +- Add SEO structured markup for groups. !47374 +- Create `incident_management_oncall_schedules` table. !47407 +- Add confirm modal to unblock user. !47442 +- Add API endoint for Administrators to approve pending users. !47564 +- Allow secondary emails in user search. !47587 +- Frontend client for increment_counter API. !47622 +- Schedule CreateEvidenceWorker jobs in a sliding window. !47638 +- Send Static Site Editor events to Usage Ping API. !47640 +- Add rake task to disable personal project and group creation. !47655 +- Add assign self to group boards sidebar. !47705 +- Toggle File-By-File setting from the MR settings dropdown. !47726 +- Add regulated field to compliance management frameworks. !47761 +- Add lock button to the Terraform State list view. !47842 +- Adds migration for user permission uploads. !47846 +- Add loading state to boards assignees header dropdown. !47848 +- Use CS_ANALYZER_IMAGE in CS template. !47856 +- Add cloud_license_enabled column to application_settings. !47882 +- Add invitation reminders. !47920 +- Create namespace onboarding actions table. !48018 +- Expose creation/update times for issue links. !48051 +- Add upcoming deployment column to Environments page. !48062 +- Add `service_desk_reply_to` to issues list and header. !48089 (Lee Tickett) +- Add iteration_id column to lists. !48103 +- Add Epic Board Position model to store relative positioning of epics on a board. !48120 +- Add code coverage overall activity to group repository analytics. !48155 +- Add confirm modal to reactivate user. !48173 +- Email user when registration request is rejected. !48185 +- Add artifacts field to JobType. !48207 +- Add database index on deployments. !48265 +- Add secondary indexes to partitioned audit_events. !48270 +- Obfuscate user profile for unconfirmed users. !48271 +- Add flash message for setAssignees on group issue boards. !48277 +- Add an URL to get user's GPG key if registerd. !48321 (Shimura Rin @blackenedgold) +- Add Operations project setting logic. !48347 +- Add GraphQL mutation to delete a release. !48364 +- Track MAU for SSE edit. !48377 +- Add loading state to assignees header. !48392 +- Implement a /clone quick-action to quickly clone an Issue. !48394 +- Expose upcoming deployment in environment.json. !48449 +- Add Vulnerabilities External Link model. !48465 +- Add migration to populate remaining dismissal information for vulnerabilities. !48472 +- Mark SCIM-created accounts as provisioned by group. !48483 +- Add delete button to terraform list vue. !48485 +- Show if a Pipeline was Ran in a Fork. !48517 +- Added email notifications when an Issue is cloned. !48534 +- Add dependency_proxy_manifests table and associations. !48535 +- Add usage metrics for issue clone. !48537 +- Implement a /clone_with_notes quick-action to quickly clone an Issue will all its notes. !48539 +- Tracks guest package events. !48547 +- Retry rsync when source files vanish during backup. !48568 +- Add Setting to disable feed_tokens. !48600 +- Enable by default usage data API tracking. !48607 +- Add GraphQL API to delete container repository tags. !48617 +- Github Importer - import pull request reviews from Github. !48632 +- Added epic boards and epic board labels tables. !48658 +- Allow alerts to be filtered by monitoring tool. !48699 +- Adds guest package events to usage data. !48734 +- Render http and https URLs as clickable links in Job logs. !48758 (Łukasz Groszkowski @falxcerebri) +- Add Merge Request diff CI variables. !48764 (Jonas Hahnfeld) +- Add admin users serializer and entity. !48791 +- Set vulnerability as dismissed when there is dismissal feedback. !48795 +- Create package build_info records for Conan, NuGet, PyPI, and Composer packages and package files. !48811 +- Add download action to the Terraform state listing. !48837 +- Add context to the experiment user records. !48896 +- Add index for the `vulnerabilities` table on `project_id`, `state`, and `severity` columns. !48930 +- Add uuid column into security_findings table. !48968 (Harrison Brock @harrisonbrock) +- Detect corrupted build logs and report them by incrementing Prometheus counter. !49004 +- Add details column to vulnerability findings table. !49005 +- Add Project to ContainerRepository GraphQL type. !49019 +- Add pipeline information to Terraform state list. !49042 +- Add oncall rotations and participants tables. !49058 +- Add domain column to alerts table. !49120 +- Add dependency proxy predefined environment variables. !49133 +- Add usage data rake tasks to prettify JSON output. !49137 +- Resolve Transition ID section should include help text. !49204 +- Support instance profiles for IAM role for Amazon EKS integration. !49212 +- Add `project_id` column into the `vulnerability_remediations` table to scope the records with projects. !49219 +- Add member_events column to web_hooks table. !49273 +- Upgrade Pages to 1.31.0. !49352 +- Add CI/CD analytics GraphQL types. !49384 +- Truncate the `security_findings` table. !49385 +- Add validating jsonb fields with json schema draft-07. !49451 +- Adds sha checksum to composer URL. !49511 +- Dependency Proxy for private groups and Dependency Proxy authentication. !49519 +- Save usage ping payload in raw_usage_data table. !49559 +- Allow downloading of security reports directly from merge request page. !49572 +- Show upgrade popover in security widget in merge requests when the user is able to upgrade. !49613 +- Introduce frontend for group migration MVC. !49709 +- Add issue header mobile dropdown loading state. !49734 +- Support extensions as configurable ES6 classes in Editor Lite. !49813 +- Allow job to download artifacts in parent-child pipeline hierarchy. !49837 +- Add ability to aggregated metrics in Usage Ping. !49886 +- Add expiration policy completed at support in container repositories. !49924 +- Allow to configure custom service desk email address suffix. !49932 +- Add payload_example and payload_attribute_mapping columns to alert_management_http_integrations table. !49941 +- Add prefilled variables for run pipeline page. !49985 +- Add operations_access_level to project settings API. !50023 +- Upgrade GitLab Pages to 1.32.0. !50062 +- Add MergeRequest to VulnerabilityType in GraphQL. !50082 + +### Other (49 changes, 15 of them are from the community) + +- Replace-GlDeprecatedDropdown-with-GlDropdown-in-app/assets/javascripts/boards. !41410 (nuwe1) +- Migrate bootstrap dropdown to GlDropdown in app/assets/javascripts/diffs. !41451 (nuwe1) +- Migrate awards list buttons to new buttons. !43061 +- Apply GitLab UI button styles to buttons in app/views/projects/graphs directory. !44295 (Lakshit) +- Use GitLab's standard dropdown for the review mode chooser in the WebIDE. !46820 +- Replaces elements with the bs-callout class with gl-alert vue component. !47331 (Gary Bell @garybell) +- Add analytics_devops_adoption_snapshots table. !47388 +- Add relation name to indexes view. !47422 +- Migrate chevron-down icon to svg. !47591 +- Disable auto admin mode in features. !47670 (Diego Louzán) +- Remove avg_cycle_analytics from usage ping. !47812 +- Remove unused .issue-box CSS. !48002 (Takuya Noguchi) +- Convert shared runner limit alert to gl-alert. !48063 +- Remove temporary blocking issues scheduling indexes. !48064 +- Update icons to svg in several sort dropdowns. !48092 +- Move Terraform state versioning default to database. !48194 +- Replace wrong index definition on labels (project_id, title). !48238 +- Update GitLab Runner Helm Chart to 0.23.0. !48284 +- Add `external_author` alias to `service_desk_reply_to`. !48363 (Lee Tickett) +- Migrate bs-callout to GlAlert in …/unmet_prerequisites_block.vue. !48398 +- Improve logging on feature flag modification. !48417 +- Replace bootstrap caret-down with chevron-down. !48424 +- Convert bootstrap carets to svg chevrons. !48492 +- Rename "Cycle Analytics" with "Value Stream Analytics" under /spec. !48531 (Takuya Noguchi) +- Update GitLab Workhorse to v8.56.0. !48592 +- Update gitaly gem to 13.6.1. !48601 +- Rename "CYCLE_ANALYTICS_*" variables for CI with "VSA_*". !48675 (Takuya Noguchi) +- Adds gl button classes to manifest imports. !48697 +- Add btree bloat estimation view. !48698 +- Disable auto admin mode on requests and views specs. !48700 (Diego Louzán) +- Move users#show.json to users#activity.json. !48712 (Takuya Noguchi) +- Remove `view_diffs_file_by_file` feature flag. !48966 +- Move profiles/keys#get_keys to users#ssh_keys. !48991 (Takuya Noguchi) +- Replace wiki fontawesome icons with emojis. !49097 +- Add a project setting to allow editing commit messages. !49152 +- Updated UI text to match style guidelines. !49275 +- Move profiles/gpg_keys#get_keys to users#gpg_keys. !49448 (Takuya Noguchi) +- Remove references to cross_project_pipeline source in documentation. !49579 +- Updated UI text to match style guidelines. !49632 +- Migrate bs-callout to GlAlert for components using app/assets/javascripts/vue_shared/components/callout.vue. !49732 (Gary Bell @garybell) +- Bump gitlab-shell version to v13.14.0. !49810 +- Track index bloat estimate. !49822 +- Conver create merge request button to gl. !49864 +- Adds gitlab ui classes to project dir buttons. !49939 +- Removed count_uploads_size_in_storage_stats feature flag. !49998 +- Delete MockDeploymentService records, used only in development environments. !50030 +- Add feed_token specs to spec/features/profiles/personal_access_tokens_spec.rb. !50059 +- Replace spec/controllers/ide_controller_spec.rb with request spec. !50075 (Takuya Noguchi) +- Update GitLab Workhorse to v8.57.0. ## 13.6.3 (2020-12-10) @@ -604,6 +1096,22 @@ entry. - Change wording on the project remove fork page. !47878 +## 13.5.5 (2020-12-07) + +### Security (10 changes) + +- Validate zoom links to start with https only. !1055 +- Require at least 3 characters when searching for project in the Explore page. +- Do not show emails of users in confirmation page. +- Forbid setting a gitlabUserList strategy to a list from another project. +- Fix mermaid resource consumption in GFM fields. +- Ensure group and project memberships are not leaked via API for users with private profiles. +- GraphQL User: do not expose email if set to private. +- Filter search parameter to prevent data leaks. +- Do not expose starred projects of users with private profile via API. +- Do not show starred & contributed projects of users with private profile. + + ## 13.5.4 (2020-11-13) ### Fixed (4 changes) @@ -1223,6 +1731,22 @@ entry. - Bump cluster applications CI template. !45472 +## 13.4.7 (2020-12-07) + +### Security (10 changes) + +- Validate zoom links to start with https only. !1055 +- Require at least 3 characters when searching for project in the Explore page. +- Do not show emails of users in confirmation page. +- Forbid setting a gitlabUserList strategy to a list from another project. +- Fix mermaid resource consumption in GFM fields. +- Ensure group and project memberships are not leaked via API for users with private profiles. +- GraphQL User: do not expose email if set to private. +- Filter search parameter to prevent data leaks. +- Do not expose starred projects of users with private profile via API. +- Do not show starred & contributed projects of users with private profile. + + ## 13.4.6 (2020-11-03) ### Fixed (1 change) diff --git a/GITALY_SERVER_VERSION b/GITALY_SERVER_VERSION index 51067b9c1d..097a182f11 100644 --- a/GITALY_SERVER_VERSION +++ b/GITALY_SERVER_VERSION @@ -1 +1 @@ -13.6.7 \ No newline at end of file +13.7.7 \ No newline at end of file diff --git a/GITLAB_ELASTICSEARCH_INDEXER_VERSION b/GITLAB_ELASTICSEARCH_INDEXER_VERSION index 24ba9a38de..834f262953 100644 --- a/GITLAB_ELASTICSEARCH_INDEXER_VERSION +++ b/GITLAB_ELASTICSEARCH_INDEXER_VERSION @@ -1 +1 @@ -2.7.0 +2.8.0 diff --git a/GITLAB_KAS_VERSION b/GITLAB_KAS_VERSION index 4daad9a5c1..d6ef99820f 100644 --- a/GITLAB_KAS_VERSION +++ b/GITLAB_KAS_VERSION @@ -1 +1 @@ -13.6.1 +13.7.0 diff --git a/GITLAB_PAGES_VERSION b/GITLAB_PAGES_VERSION index d1eaa3ba0b..2b17ffd504 100644 --- a/GITLAB_PAGES_VERSION +++ b/GITLAB_PAGES_VERSION @@ -1 +1 @@ -1.30.2 +1.34.0 diff --git a/GITLAB_SHELL_VERSION b/GITLAB_SHELL_VERSION index 4a60601836..5813fef380 100644 --- a/GITLAB_SHELL_VERSION +++ b/GITLAB_SHELL_VERSION @@ -1 +1 @@ -13.13.1 +13.14.1 diff --git a/GITLAB_WORKHORSE_VERSION b/GITLAB_WORKHORSE_VERSION index 275754a681..8aa8b5f68b 100644 --- a/GITLAB_WORKHORSE_VERSION +++ b/GITLAB_WORKHORSE_VERSION @@ -1 +1 @@ -8.54.2 +8.58.2 diff --git a/Gemfile b/Gemfile index d60fefe29d..49d0841be3 100644 --- a/Gemfile +++ b/Gemfile @@ -66,7 +66,7 @@ gem 'attr_encrypted', '~> 3.1.0' gem 'u2f', '~> 0.2.1' # GitLab Pages -gem 'validates_hostname', '~> 1.0.10' +gem 'validates_hostname', '~> 1.0.11' gem 'rubyzip', '~> 2.0.0', require: 'zip' # GitLab Pages letsencrypt support gem 'acme-client', '~> 2.0', '>= 2.0.6' @@ -115,11 +115,11 @@ gem 'carrierwave', '~> 1.3' gem 'mini_magick', '~> 4.10.1' # for backups -gem 'fog-aws', '~> 3.5' +gem 'fog-aws', '~> 3.7' # Locked until fog-google resolves https://github.com/fog/fog-google/issues/421. # Also see config/initializers/fog_core_patch.rb. gem 'fog-core', '= 2.1.0' -gem 'fog-google', '~> 1.11' +gem 'fog-google', '~> 1.12' gem 'fog-local', '~> 0.6' gem 'fog-openstack', '~> 1.0' gem 'fog-rackspace', '~> 0.1.1' @@ -149,7 +149,7 @@ gem 'html-pipeline', '~> 2.12' gem 'deckar01-task_list', '2.3.1' gem 'gitlab-markup', '~> 1.7.1' gem 'github-markup', '~> 1.7.0', require: 'github/markup' -gem 'commonmarker', '~> 0.20' +gem 'commonmarker', '~> 0.21' gem 'kramdown', '~> 2.3.0' gem 'RedCloth', '~> 4.3.2' gem 'rdoc', '~> 6.1.2' @@ -159,7 +159,8 @@ gem 'wikicloth', '0.8.1' gem 'asciidoctor', '~> 2.0.10' gem 'asciidoctor-include-ext', '~> 0.3.1', require: false gem 'asciidoctor-plantuml', '~> 0.0.12' -gem 'rouge', '~> 3.25.0' +gem 'asciidoctor-kroki', '~> 0.2.2', require: false +gem 'rouge', '~> 3.26.0' gem 'truncato', '~> 0.7.11' gem 'bootstrap_form', '~> 4.2.0' gem 'nokogiri', '~> 1.10.9' @@ -209,7 +210,7 @@ gem 'httparty', '~> 0.16.4' gem 'rainbow', '~> 3.0' # Progress bar -gem 'ruby-progressbar' +gem 'ruby-progressbar', '~> 1.10' # GitLab settings gem 'settingslogic', '~> 2.0.9' @@ -291,7 +292,6 @@ gem 'sassc-rails', '~> 2.1.0' gem 'terser', '1.0.2' gem 'addressable', '~> 2.7' -gem 'font-awesome-rails', '~> 4.7' gem 'gemojione', '~> 3.3' gem 'gon', '~> 6.2' gem 'request_store', '~> 1.5' @@ -311,7 +311,7 @@ gem 'gitlab-pg_query', '~> 1.3', require: 'pg_query' gem 'premailer-rails', '~> 1.10.3' # LabKit: Tracing and Correlation -gem 'gitlab-labkit', '0.13.1' +gem 'gitlab-labkit', '0.13.3' # I18n gem 'ruby_parser', '~> 3.15', require: false @@ -351,6 +351,7 @@ group :development do end group :development, :test do + gem 'deprecation_toolkit', '~> 1.5.1', require: false gem 'bullet', '~> 6.1.0' gem 'pry-byebug', '~> 3.9.0', platform: :mri gem 'pry-rails', '~> 0.3.9' @@ -370,7 +371,7 @@ group :development, :test do gem 'spring', '~> 2.1.0' gem 'spring-commands-rspec', '~> 1.0.4' - gem 'gitlab-styles', '~> 5.1.0', require: false + gem 'gitlab-styles', '~> 5.3.0', require: false gem 'scss_lint', '~> 0.59.0', require: false gem 'haml_lint', '~> 0.36.0', require: false @@ -428,7 +429,7 @@ end gem 'octokit', '~> 4.15' # https://gitlab.com/gitlab-org/gitlab/issues/207207 -gem 'gitlab-mail_room', '~> 0.0.7', require: 'mail_room' +gem 'gitlab-mail_room', '~> 0.0.8', require: 'mail_room' gem 'email_reply_trimmer', '~> 0.1' gem 'html2text' @@ -464,7 +465,7 @@ group :ed25519 do end # Gitaly GRPC protocol definitions -gem 'gitaly', '~> 13.5.0-rc2' +gem 'gitaly', '~> 13.7.0.pre.rc1' gem 'grpc', '~> 1.30.2' @@ -477,6 +478,7 @@ gem 'flipper', '~> 0.17.1' gem 'flipper-active_record', '~> 0.17.1' gem 'flipper-active_support_cache_store', '~> 0.17.1' gem 'unleash', '~> 0.1.5' +gem 'gitlab-experiment', '~> 0.4.4' # Structured logging gem 'lograge', '~> 0.5' diff --git a/Gemfile.lock b/Gemfile.lock index 64179847dd..1cd90080fd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -84,6 +84,8 @@ GEM asciidoctor (2.0.10) asciidoctor-include-ext (0.3.1) asciidoctor (>= 1.5.6, < 3.0.0) + asciidoctor-kroki (0.2.2) + asciidoctor (~> 2.0) asciidoctor-plantuml (0.0.12) asciidoctor (>= 1.5.6, < 3.0.0) ast (2.4.1) @@ -177,7 +179,7 @@ GEM open4 (~> 1.3) coderay (1.1.3) colored2 (3.1.2) - commonmarker (0.20.1) + commonmarker (0.21.0) ruby-enum (~> 0.5) concord (0.1.5) adamantium (~> 0.2.0) @@ -220,10 +222,12 @@ GEM debugger-ruby_core_source (1.3.8) deckar01-task_list (2.3.1) html-pipeline - declarative (0.0.10) + declarative (0.0.20) declarative-option (0.1.0) default_value_for (3.3.0) activerecord (>= 3.2.0, < 6.1) + deprecation_toolkit (1.5.1) + activesupport (>= 4.2) derailed_benchmarks (1.7.0) benchmark-ips (~> 2) get_process_mem (~> 0) @@ -359,7 +363,7 @@ GEM fog-json ipaddress (~> 0.8) xml-simple (~> 1.1) - fog-aws (3.5.2) + fog-aws (3.7.0) fog-core (~> 2.1) fog-json (~> 1.1) fog-xml (~> 0.1) @@ -369,11 +373,11 @@ GEM excon (~> 0.58) formatador (~> 0.2) mime-types - fog-google (1.11.0) + fog-google (1.12.0) fog-core (<= 2.1.0) fog-json (~> 1.2) fog-xml (~> 0.1.0) - google-api-client (>= 0.32, < 0.34) + google-api-client (>= 0.44.2, < 0.51) google-cloud-env (~> 1.2) fog-json (1.2.0) fog-core @@ -392,8 +396,6 @@ GEM fog-xml (0.1.3) fog-core nokogiri (>= 1.5.11, < 2.0.0) - font-awesome-rails (4.7.0.5) - railties (>= 3.2, < 6.1) formatador (0.2.5) fugit (1.2.1) et-orbi (~> 1.1, >= 1.1.8) @@ -418,11 +420,14 @@ GEM rails (>= 3.2.0) git (1.7.0) rchardet (~> 1.8) - gitaly (13.5.0.pre.rc2) + gitaly (13.7.0.pre.rc1) grpc (~> 1.0) github-markup (1.7.0) gitlab-chronic (0.10.5) numerizer (~> 0.2) + gitlab-experiment (0.4.4) + activesupport (>= 3.0) + scientist (~> 1.5, >= 1.5.0) gitlab-fog-azure-rm (1.0.0) azure-storage-blob (~> 2.0) azure-storage-common (~> 2.0) @@ -430,15 +435,16 @@ GEM fog-json (~> 1.2.0) mime-types ms_rest_azure (~> 0.12.0) - gitlab-labkit (0.13.1) + gitlab-labkit (0.13.3) actionpack (>= 5.0.0, < 6.1.0) activesupport (>= 5.0.0, < 6.1.0) + gitlab-pg_query (~> 1.3) grpc (~> 1.19) jaeger-client (~> 1.1) opentracing (~> 0.4) redis (> 3.0.0, < 5.0.0) gitlab-license (1.0.0) - gitlab-mail_room (0.0.7) + gitlab-mail_room (0.0.8) gitlab-markup (1.7.1) gitlab-net-dns (0.9.1) gitlab-pg_query (1.3.0) @@ -449,7 +455,7 @@ GEM gitlab-puma (>= 2.7, < 5) gitlab-sidekiq-fetcher (0.5.2) sidekiq (~> 5) - gitlab-styles (5.1.0) + gitlab-styles (5.3.0) rubocop (~> 0.89.1) rubocop-gitlab-security (~> 0.1.0) rubocop-performance (~> 1.8.1) @@ -468,20 +474,21 @@ GEM actionpack (>= 3.0) multi_json request_store (>= 1.0) - google-api-client (0.33.2) + google-api-client (0.50.0) addressable (~> 2.5, >= 2.5.1) googleauth (~> 0.9) httpclient (>= 2.8.1, < 3.0) mini_mime (~> 1.0) representable (~> 3.0) retriable (>= 2.0, < 4.0) + rexml signet (~> 0.12) google-cloud-env (1.4.0) faraday (>= 0.17.3, < 2.0) google-protobuf (3.12.4) googleapis-common-protos-types (1.0.5) google-protobuf (~> 3.11) - googleauth (0.12.0) + googleauth (0.14.0) faraday (>= 0.17.3, < 2.0) jwt (>= 1.4, < 3.0) memoist (~> 0.16) @@ -691,7 +698,7 @@ GEM marginalia (1.9.0) actionpack (>= 2.3) activerecord (>= 2.3) - memoist (0.16.0) + memoist (0.16.2) memoizable (0.4.2) thread_safe (~> 0.3, >= 0.3.1) memory_profiler (0.9.14) @@ -832,7 +839,7 @@ GEM org-ruby (0.9.12) rubypants (~> 0.2) orm_adapter (0.5.0) - os (1.0.0) + os (1.1.1) parallel (1.19.2) parser (2.7.2.0) ast (~> 2.4.1) @@ -977,7 +984,7 @@ GEM rexml (3.2.4) rinku (2.0.0) rotp (2.1.2) - rouge (3.25.0) + rouge (3.26.0) rqrcode (0.7.0) chunky_png rqrcode-rails3 (0.1.7) @@ -1041,7 +1048,7 @@ GEM rubocop-rspec (1.44.1) rubocop (~> 0.87) rubocop-ast (>= 0.7.1) - ruby-enum (0.7.2) + ruby-enum (0.8.0) i18n ruby-fogbugz (0.2.1) crack (~> 0.4) @@ -1081,6 +1088,7 @@ GEM sawyer (0.8.2) addressable (>= 2.3.5) faraday (> 0.8, < 2.0) + scientist (1.5.0) scss_lint (0.59.0) sass (~> 3.5, >= 3.5.5) securecompare (1.0.0) @@ -1215,7 +1223,7 @@ GEM validate_url (1.0.8) activemodel (>= 3.0.0) public_suffix - validates_hostname (1.0.10) + validates_hostname (1.0.11) activerecord (>= 3.0) activesupport (>= 3.0) version_sorter (2.2.4) @@ -1267,6 +1275,7 @@ DEPENDENCIES asana (= 0.10.2) asciidoctor (~> 2.0.10) asciidoctor-include-ext (~> 0.3.1) + asciidoctor-kroki (~> 0.2.2) asciidoctor-plantuml (~> 0.0.12) atlassian-jwt (~> 0.2.0) attr_encrypted (~> 3.1.0) @@ -1292,7 +1301,7 @@ DEPENDENCIES capybara-screenshot (~> 1.0.22) carrierwave (~> 1.3) charlock_holmes (~> 0.7.7) - commonmarker (~> 0.20) + commonmarker (~> 0.21) concurrent-ruby (~> 1.1) connection_pool (~> 2.0) countries (~> 3.0) @@ -1302,6 +1311,7 @@ DEPENDENCIES database_cleaner (~> 1.7.0) deckar01-task_list (= 2.3.1) default_value_for (~> 3.3.0) + deprecation_toolkit (~> 1.5.1) derailed_benchmarks device_detector devise (~> 4.7.2) @@ -1329,33 +1339,33 @@ DEPENDENCIES flipper-active_support_cache_store (~> 0.17.1) flowdock (~> 0.7) fog-aliyun (~> 0.3) - fog-aws (~> 3.5) + fog-aws (~> 3.7) fog-core (= 2.1.0) - fog-google (~> 1.11) + fog-google (~> 1.12) fog-local (~> 0.6) fog-openstack (~> 1.0) fog-rackspace (~> 0.1.1) - font-awesome-rails (~> 4.7) fugit (~> 1.2.1) fuubar (~> 2.2.0) gemojione (~> 3.3) gettext (~> 3.3) gettext_i18n_rails (~> 1.8.0) gettext_i18n_rails_js (~> 1.3) - gitaly (~> 13.5.0.pre.rc2) + gitaly (~> 13.7.0.pre.rc1) github-markup (~> 1.7.0) gitlab-chronic (~> 0.10.5) + gitlab-experiment (~> 0.4.4) gitlab-fog-azure-rm (~> 1.0) - gitlab-labkit (= 0.13.1) + gitlab-labkit (= 0.13.3) gitlab-license (~> 1.0) - gitlab-mail_room (~> 0.0.7) + gitlab-mail_room (~> 0.0.8) gitlab-markup (~> 1.7.1) gitlab-net-dns (~> 0.9.1) gitlab-pg_query (~> 1.3) gitlab-puma (~> 4.3.3.gitlab.2) gitlab-puma_worker_killer (~> 0.1.1.gitlab.1) gitlab-sidekiq-fetcher (= 0.5.2) - gitlab-styles (~> 5.1.0) + gitlab-styles (~> 5.3.0) gitlab_chronic_duration (~> 0.10.6.2) gitlab_omniauth-ldap (~> 2.1.1) gon (~> 6.2) @@ -1468,7 +1478,7 @@ DEPENDENCIES request_store (~> 1.5) responders (~> 3.0) retriable (~> 3.1.2) - rouge (~> 3.25.0) + rouge (~> 3.26.0) rqrcode-rails3 (~> 0.1.7) rspec-parameterized rspec-rails (~> 4.0.0) @@ -1477,7 +1487,7 @@ DEPENDENCIES rspec_profiling (~> 0.0.6) ruby-fogbugz (~> 0.2.1) ruby-prof (~> 1.3.0) - ruby-progressbar + ruby-progressbar (~> 1.10) ruby_parser (~> 3.15) rubyzip (~> 2.0.0) rugged (~> 0.28) @@ -1515,7 +1525,7 @@ DEPENDENCIES unicorn-worker-killer (~> 0.4.4) unleash (~> 0.1.5) valid_email (~> 0.1) - validates_hostname (~> 1.0.10) + validates_hostname (~> 1.0.11) version_sorter (~> 2.2.4) vmstat (~> 2.3.0) webauthn (~> 2.3) diff --git a/VERSION b/VERSION index 51067b9c1d..097a182f11 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -13.6.7 \ No newline at end of file +13.7.7 \ No newline at end of file diff --git a/app/assets/images/checkmark.png b/app/assets/images/checkmark.png new file mode 100644 index 0000000000..6e47fda5cd Binary files /dev/null and b/app/assets/images/checkmark.png differ diff --git a/app/assets/images/chevron-down.png b/app/assets/images/chevron-down.png new file mode 100644 index 0000000000..3f269e05d0 Binary files /dev/null and b/app/assets/images/chevron-down.png differ diff --git a/app/assets/images/jobs-empty-state.svg b/app/assets/images/jobs-empty-state.svg new file mode 100644 index 0000000000..e6e0681a00 --- /dev/null +++ b/app/assets/images/jobs-empty-state.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/assets/javascripts/admin/users/components/app.vue b/app/assets/javascripts/admin/users/components/app.vue new file mode 100644 index 0000000000..a3abd904a6 --- /dev/null +++ b/app/assets/javascripts/admin/users/components/app.vue @@ -0,0 +1,26 @@ + + + diff --git a/app/assets/javascripts/admin/users/components/users_table.vue b/app/assets/javascripts/admin/users/components/users_table.vue new file mode 100644 index 0000000000..a2d6897251 --- /dev/null +++ b/app/assets/javascripts/admin/users/components/users_table.vue @@ -0,0 +1,63 @@ + + + diff --git a/app/assets/javascripts/admin/users/index.js b/app/assets/javascripts/admin/users/index.js new file mode 100644 index 0000000000..21780ee998 --- /dev/null +++ b/app/assets/javascripts/admin/users/index.js @@ -0,0 +1,22 @@ +import Vue from 'vue'; +import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils'; +import AdminUsersApp from './components/app.vue'; + +export default function(el = document.querySelector('#js-admin-users-app')) { + if (!el) { + return false; + } + + const { users, paths } = el.dataset; + + return new Vue({ + el, + render: createElement => + createElement(AdminUsersApp, { + props: { + users: convertObjectPropsToCamelCase(JSON.parse(users), { deep: true }), + paths: convertObjectPropsToCamelCase(JSON.parse(paths)), + }, + }), + }); +} diff --git a/app/assets/javascripts/alert_management/components/sidebar/sidebar_assignee.vue b/app/assets/javascripts/alert_management/components/sidebar/sidebar_assignee.vue index df07038151..c39a72a45b 100644 --- a/app/assets/javascripts/alert_management/components/sidebar/sidebar_assignee.vue +++ b/app/assets/javascripts/alert_management/components/sidebar/sidebar_assignee.vue @@ -27,25 +27,12 @@ export default { - - - - - - {{ user.name }} - - {{ user.username }} - + {{ user.name }} diff --git a/app/assets/javascripts/alert_management/components/sidebar/sidebar_assignees.vue b/app/assets/javascripts/alert_management/components/sidebar/sidebar_assignees.vue index 5e4fd56738..3af68d42dd 100644 --- a/app/assets/javascripts/alert_management/components/sidebar/sidebar_assignees.vue +++ b/app/assets/javascripts/alert_management/components/sidebar/sidebar_assignees.vue @@ -13,7 +13,7 @@ import { } from '@gitlab/ui'; import { debounce } from 'lodash'; import axios from '~/lib/utils/axios_utils'; -import { s__ } from '~/locale'; +import { s__, __ } from '~/locale'; import alertSetAssignees from '../../graphql/mutations/alert_set_assignees.mutation.graphql'; import SidebarAssignee from './sidebar_assignee.vue'; @@ -96,7 +96,10 @@ export default { .sort((a, b) => (a.active === b.active ? 0 : a.active ? -1 : 1)); // eslint-disable-line no-nested-ternary }, dropdownClass() { - return this.isDropdownShowing ? 'show' : 'gl-display-none'; + return this.isDropdownShowing ? 'dropdown-menu-selectable show' : 'gl-display-none'; + }, + dropDownTitle() { + return this.userName ?? __('Select assignee'); }, userListValid() { return !this.isDropdownSearching && this.users.length > 0; @@ -217,81 +220,80 @@ export default {

- + + +
+
+ + + + + + {{ userFullName }} + + @{{ userName }}
+ + {{ __('None') }} - + + {{ __('assign yourself') }} + +
diff --git a/app/assets/javascripts/alerts_settings/components/alerts_integrations_list.vue b/app/assets/javascripts/alerts_settings/components/alerts_integrations_list.vue index 12c0409629..cf16750dbf 100644 --- a/app/assets/javascripts/alerts_settings/components/alerts_integrations_list.vue +++ b/app/assets/javascripts/alerts_settings/components/alerts_integrations_list.vue @@ -11,7 +11,6 @@ import { GlSprintf, } from '@gitlab/ui'; import { s__, __ } from '~/locale'; -import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import Tracking from '~/tracking'; import { trackAlertIntegrationsViewsOptions, @@ -54,7 +53,6 @@ export default { GlTooltip: GlTooltipDirective, GlModal: GlModalDirective, }, - mixins: [glFeatureFlagsMixin()], props: { integrations: { type: Array, @@ -170,7 +168,7 @@ export default { diff --git a/app/assets/javascripts/boards/components/board_column_new.vue b/app/assets/javascripts/boards/components/board_column_new.vue index 8a59355eb8..7839f45c48 100644 --- a/app/assets/javascripts/boards/components/board_column_new.vue +++ b/app/assets/javascripts/boards/components/board_column_new.vue @@ -1,13 +1,11 @@ @@ -66,13 +58,12 @@ export default { diff --git a/app/assets/javascripts/boards/components/board_configuration_options.vue b/app/assets/javascripts/boards/components/board_configuration_options.vue index 754b00b54e..99d1e4a261 100644 --- a/app/assets/javascripts/boards/components/board_configuration_options.vue +++ b/app/assets/javascripts/boards/components/board_configuration_options.vue @@ -42,7 +42,7 @@ export default {