Update upstream source from tag 'upstream/14.2.5+ds1'
Update to upstream version '14.2.5+ds1'
with Debian dir f23823307f
|
@ -3,7 +3,7 @@ extends:
|
|||
- plugin:@gitlab/i18n
|
||||
- plugin:no-jquery/slim
|
||||
- plugin:no-jquery/deprecated-3.4
|
||||
- ./tooling/eslint-config/conditionally_ignore_ee.js
|
||||
- ./tooling/eslint-config/conditionally_ignore.js
|
||||
globals:
|
||||
__webpack_public_path__: true
|
||||
gl: false
|
||||
|
|
|
@ -36,8 +36,16 @@ workflow:
|
|||
# they serve no purpose and will run anyway when the changes are merged.
|
||||
- if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /^release-tools\/\d+\.\d+\.\d+-rc\d+$/ && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /^[\d-]+-stable(-ee)?$/ && $CI_PROJECT_PATH == "gitlab-org/gitlab"'
|
||||
when: never
|
||||
# For merge requests, create a pipeline.
|
||||
# For merged result pipelines, set $QA_IMAGE, since $CI_MERGE_REQUEST_SOURCE_BRANCH_SHA is only available for merged result pipelines.
|
||||
- if: '$CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" || $CI_MERGE_REQUEST_EVENT_TYPE == "merge_train"'
|
||||
variables:
|
||||
QA_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_MERGE_REQUEST_SOURCE_BRANCH_SHA}"
|
||||
# Also run (detached) merge request pipelines.
|
||||
- if: '$CI_MERGE_REQUEST_IID'
|
||||
# For the 2-hourly scheduled pipelines, we set specific variables.
|
||||
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "2-hourly"'
|
||||
variables:
|
||||
CRYSTALBALL: "true"
|
||||
# For `$CI_DEFAULT_BRANCH` branch, create a pipeline (this includes on schedules, pushes, merges, etc.).
|
||||
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||
# For tags, create a pipeline.
|
||||
|
@ -84,6 +92,9 @@ variables:
|
|||
RSPEC_FAIL_FAST_ENABLED: "true" # Set it to "false" to disable RSpec fail-fast
|
||||
SIMPLECOV: "true"
|
||||
|
||||
# For the default QA image, we use $CI_COMMIT_SHA as tag since it's always available and we override it for specific workflow.rules (see above)
|
||||
QA_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_SHA}"
|
||||
|
||||
# Preparing custom clone path to reduce space used by all random forks
|
||||
# on GitLab.com's Shared Runners. Our main forks - especially the security
|
||||
# ones - will have this variable overwritten in the project settings, so that
|
||||
|
|
|
@ -49,7 +49,6 @@
|
|||
/doc/user/clusters/ @marcia
|
||||
/doc/user/compliance/ @rdickenson @eread
|
||||
/doc/user/group/ @msedlakjakubowski
|
||||
/doc/user/group/bulk_editing/ @msedlakjakubowski
|
||||
/doc/user/group/devops_adoption/ @msedlakjakubowski
|
||||
/doc/user/group/epics/ @msedlakjakubowski
|
||||
/doc/user/group/insights/ @msedlakjakubowski
|
||||
|
@ -115,7 +114,7 @@
|
|||
/doc/api/tags.md @aqualls
|
||||
/doc/api/visual_review_discussions.md @aqualls
|
||||
/doc/api/wikis.md @aqualls
|
||||
/doc/intro/README.md @aqualls
|
||||
/doc/intro/index.md @aqualls
|
||||
/doc/topics/gitlab_flow.md @aqualls
|
||||
/doc/user/admin_area/settings/account_and_limit_settings.md @aqualls
|
||||
/doc/user/admin_area/settings/instance_template_repository.md @aqualls
|
||||
|
@ -145,7 +144,7 @@
|
|||
/doc/api/experiments.md @kpaizee
|
||||
/doc/development/experiment_guide/ @kpaizee
|
||||
/doc/development/snowplow/ @kpaizee
|
||||
/doc/development/usage_ping/ @kpaizee
|
||||
/doc/development/service_ping/ @kpaizee
|
||||
/doc/user/admin_area/license.md @kpaizee
|
||||
|
||||
[Frontend]
|
||||
|
|
|
@ -25,10 +25,9 @@ build-qa-image:
|
|||
- .build-images:rules:build-qa-image
|
||||
stage: build-images
|
||||
needs: []
|
||||
variables:
|
||||
QA_IMAGE: "${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_REF_SLUG}"
|
||||
script:
|
||||
- !reference [.base-image-build, script]
|
||||
- echo $QA_IMAGE
|
||||
- /kaniko/executor --context=${CI_PROJECT_DIR} --dockerfile=${CI_PROJECT_DIR}/qa/Dockerfile --destination=${QA_IMAGE} --cache=true
|
||||
|
||||
# This image is used by:
|
||||
|
|
|
@ -7,4 +7,4 @@ cloud-native-image:
|
|||
GIT_DEPTH: "1"
|
||||
script:
|
||||
- install_gitlab_gem
|
||||
- CNG_PROJECT_PATH="gitlab-org/build/CNG" ./scripts/trigger-build cng
|
||||
- ./scripts/trigger-build cng
|
||||
|
|
|
@ -44,7 +44,7 @@ docs-lint markdown:
|
|||
- .default-retry
|
||||
- .docs:rules:docs-lint
|
||||
# When updating the image version here, update it in /scripts/lint-doc.sh too.
|
||||
image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-markdown:alpine-3.13-vale-2.10.2-markdownlint-0.26.0
|
||||
image: registry.gitlab.com/gitlab-org/gitlab-docs/lint-markdown:alpine-3.14-vale-2.10.4-markdownlint-0.28.1
|
||||
stage: test
|
||||
needs: []
|
||||
script:
|
||||
|
|
|
@ -143,7 +143,7 @@ rspec-ee frontend_fixture:
|
|||
extends:
|
||||
- .frontend-fixtures-base
|
||||
- .frontend:rules:default-frontend-jobs-ee
|
||||
parallel: 2
|
||||
parallel: 3
|
||||
|
||||
graphql-schema-dump:
|
||||
variables:
|
||||
|
@ -242,7 +242,7 @@ jest:
|
|||
- tmp/tests/frontend/
|
||||
reports:
|
||||
junit: junit_jest.xml
|
||||
parallel: 4
|
||||
parallel: 5
|
||||
|
||||
jest-integration:
|
||||
extends:
|
||||
|
|
|
@ -7,22 +7,32 @@ pages:
|
|||
- .default-retry
|
||||
- .pages:rules
|
||||
stage: pages
|
||||
environment: pages
|
||||
resource_group: pages
|
||||
needs:
|
||||
- rspec:coverage
|
||||
- coverage-frontend
|
||||
- karma
|
||||
- compile-production-assets
|
||||
- compile-storybook
|
||||
- job: "rspec:coverage"
|
||||
- job: "coverage-frontend"
|
||||
- job: "karma"
|
||||
- job: "compile-production-assets"
|
||||
- job: "compile-storybook"
|
||||
# `update-tests-metadata` only runs on GitLab.com's EE schedules pipelines
|
||||
# while `pages` runs for all the 2-hourly schedules.
|
||||
- job: "update-tests-metadata"
|
||||
optional: true
|
||||
before_script:
|
||||
- apt-get update && apt-get -y install brotli gzip
|
||||
script:
|
||||
- mv public/ .public/
|
||||
- mkdir public/
|
||||
- mkdir -p public/$(dirname "$KNAPSACK_RSPEC_SUITE_REPORT_PATH") public/$(dirname "$FLAKY_RSPEC_SUITE_REPORT_PATH") public/$(dirname "$RSPEC_PACKED_TESTS_MAPPING_PATH")
|
||||
- mv coverage/ public/coverage-ruby/ || true
|
||||
- mv coverage-frontend/ public/coverage-frontend/ || true
|
||||
- mv coverage-javascript/ public/coverage-javascript/ || true
|
||||
- mv storybook/public public/storybook || true
|
||||
- cp .public/assets/application-*.css public/application.css || true
|
||||
- mv $KNAPSACK_RSPEC_SUITE_REPORT_PATH public/$KNAPSACK_RSPEC_SUITE_REPORT_PATH || true
|
||||
- mv $FLAKY_RSPEC_SUITE_REPORT_PATH public/$FLAKY_RSPEC_SUITE_REPORT_PATH || true
|
||||
- mv $RSPEC_PACKED_TESTS_MAPPING_PATH.gz public/$RSPEC_PACKED_TESTS_MAPPING_PATH.gz || true
|
||||
- *compress-public
|
||||
artifacts:
|
||||
paths:
|
||||
|
|
|
@ -51,9 +51,10 @@ update-qa-cache:
|
|||
image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine
|
||||
stage: qa
|
||||
retry: 0
|
||||
script:
|
||||
before_script:
|
||||
- source scripts/utils.sh
|
||||
- install_gitlab_gem
|
||||
script:
|
||||
- ./scripts/trigger-build omnibus
|
||||
|
||||
package-and-qa:
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
variables:
|
||||
RUBY_GC_MALLOC_LIMIT: 67108864
|
||||
RUBY_GC_MALLOC_LIMIT_MAX: 134217728
|
||||
CRYSTALBALL: "true"
|
||||
RECORD_DEPRECATIONS: "true"
|
||||
needs: ["setup-test-env", "retrieve-tests-metadata", "compile-test-assets", "detect-tests"]
|
||||
script:
|
||||
|
@ -394,8 +393,7 @@ db:migrate-from-previous-major-version:
|
|||
- sed -i -e "s/gem 'google-protobuf', '~> 3.8.0'/gem 'google-protobuf', '~> 3.12'/" Gemfile
|
||||
- sed -i -e "s/gem 'nokogiri', '~> 1.10.5'/gem 'nokogiri', '~> 1.11.0'/" Gemfile
|
||||
- sed -i -e "s/gem 'mimemagic', '~> 0.3.2'/gem 'ruby-magic', '~> 0.4.0'/" Gemfile
|
||||
- run_timed_command "gem install bundler:1.17.3"
|
||||
- run_timed_command "bundle update google-protobuf nokogiri grpc mimemagic bootsnap"
|
||||
- run_timed_command "bundle update --bundler google-protobuf nokogiri grpc mimemagic bootsnap"
|
||||
- SETUP_DB=false USE_BUNDLE_INSTALL=true bash scripts/prepare_build.sh
|
||||
- run_timed_command "bundle exec rake db:drop db:create db:structure:load db:migrate db:seed_fu"
|
||||
- git checkout -f $CI_COMMIT_SHA
|
||||
|
@ -449,7 +447,9 @@ db:backup_and_restore:
|
|||
- date
|
||||
- bundle exec rake gitlab:backup:restore
|
||||
rules:
|
||||
- changes: ["lib/backup/**/*"]
|
||||
- changes:
|
||||
- "lib/backup/**/*"
|
||||
- "lib/tasks/gitlab/backup.rake"
|
||||
|
||||
rspec:deprecations:
|
||||
extends:
|
||||
|
@ -645,36 +645,33 @@ rspec-ee unit pg12 geo:
|
|||
- .rails:rules:ee-only-unit
|
||||
- .rspec-ee-unit-geo-parallel
|
||||
|
||||
# FIXME: Temporarily disable geo minimal rspec jobs https://gitlab.com/gitlab-org/gitlab/-/issues/294212
|
||||
#rspec-ee unit pg12 geo minimal:
|
||||
# extends:
|
||||
# - rspec-ee unit pg12 geo
|
||||
# - .minimal-rspec-tests
|
||||
# - .rails:rules:ee-only-unit:minimal
|
||||
rspec-ee unit pg12 geo minimal:
|
||||
extends:
|
||||
- rspec-ee unit pg12 geo
|
||||
- .minimal-rspec-tests
|
||||
- .rails:rules:ee-only-unit:minimal
|
||||
|
||||
rspec-ee integration pg12 geo:
|
||||
extends:
|
||||
- .rspec-ee-base-geo-pg12
|
||||
- .rails:rules:ee-only-integration
|
||||
|
||||
# FIXME: Temporarily disable geo minimal rspec jobs https://gitlab.com/gitlab-org/gitlab/-/issues/294212
|
||||
#rspec-ee integration pg12 geo minimal:
|
||||
# extends:
|
||||
# - rspec-ee integration pg12 geo
|
||||
# - .minimal-rspec-tests
|
||||
# - .rails:rules:ee-only-integration:minimal
|
||||
rspec-ee integration pg12 geo minimal:
|
||||
extends:
|
||||
- rspec-ee integration pg12 geo
|
||||
- .minimal-rspec-tests
|
||||
- .rails:rules:ee-only-integration:minimal
|
||||
|
||||
rspec-ee system pg12 geo:
|
||||
extends:
|
||||
- .rspec-ee-base-geo-pg12
|
||||
- .rails:rules:ee-only-system
|
||||
|
||||
# FIXME: Temporarily disable geo minimal rspec jobs https://gitlab.com/gitlab-org/gitlab/-/issues/294212
|
||||
#rspec-ee system pg12 geo minimal:
|
||||
# extends:
|
||||
# - rspec-ee system pg12 geo
|
||||
# - .minimal-rspec-tests
|
||||
# - .rails:rules:ee-only-system:minimal
|
||||
rspec-ee system pg12 geo minimal:
|
||||
extends:
|
||||
- rspec-ee system pg12 geo
|
||||
- .minimal-rspec-tests
|
||||
- .rails:rules:ee-only-system:minimal
|
||||
|
||||
db:rollback geo:
|
||||
extends:
|
||||
|
|
|
@ -41,6 +41,22 @@ nodejs-scan-sast:
|
|||
semgrep-sast:
|
||||
rules: !reference [".reports:rules:sast", rules]
|
||||
|
||||
gosec-sast:
|
||||
variables:
|
||||
GOPATH: "$CI_PROJECT_DIR/vendor/go"
|
||||
COMPILE: "false"
|
||||
GOSEC_GO_PKG_PATH: "$CI_PROJECT_DIR"
|
||||
SECURE_LOG_LEVEL: "debug"
|
||||
before_script:
|
||||
- mkdir -p $GOPATH
|
||||
- cd workhorse
|
||||
- go get -d ./...
|
||||
- cd ..
|
||||
cache:
|
||||
paths:
|
||||
- vendor/go
|
||||
rules: !reference [".reports:rules:sast", rules]
|
||||
|
||||
.secret-analyzer:
|
||||
extends: .default-retry
|
||||
needs: []
|
||||
|
|
|
@ -2,7 +2,7 @@ review-cleanup:
|
|||
extends:
|
||||
- .default-retry
|
||||
- .review:rules:review-cleanup
|
||||
image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-helm3.5-kubectl1.17
|
||||
image: registry.gitlab.com/gitlab-org/gitlab-build-images:gitlab-helm3-kubectl1.14
|
||||
stage: prepare
|
||||
environment:
|
||||
name: review/auto-cleanup
|
||||
|
@ -27,12 +27,15 @@ review-build-cng:
|
|||
- .review:rules:review-build-cng
|
||||
image: ${GITLAB_DEPENDENCY_PROXY}ruby:2.7-alpine3.13
|
||||
stage: review-prepare
|
||||
before_script:
|
||||
- source ./scripts/utils.sh
|
||||
- install_gitlab_gem
|
||||
needs:
|
||||
- job: compile-production-assets
|
||||
artifacts: false
|
||||
variables:
|
||||
CNG_PROJECT_ACCESS_TOKEN: "${CNG_MIRROR_PROJECT_ACCESS_TOKEN}" # "Multi-pipeline (from 'gitlab-org/gitlab' 'review-build-cng' job)" at https://gitlab.com/gitlab-org/build/CNG-mirror/-/settings/access_tokens
|
||||
CNG_PROJECT_PATH: "gitlab-org/build/CNG-mirror"
|
||||
before_script:
|
||||
- source ./scripts/utils.sh
|
||||
- install_gitlab_gem
|
||||
script:
|
||||
- ./scripts/trigger-build cng
|
||||
|
||||
|
@ -43,7 +46,7 @@ review-build-cng:
|
|||
variables:
|
||||
HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}"
|
||||
DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}"
|
||||
GITLAB_HELM_CHART_REF: "v4.12.0"
|
||||
GITLAB_HELM_CHART_REF: "v5.1.0"
|
||||
environment:
|
||||
name: review/${CI_COMMIT_REF_SLUG}${FREQUENCY}
|
||||
url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}
|
||||
|
@ -114,7 +117,7 @@ review-stop:
|
|||
extends:
|
||||
- .use-docker-in-docker
|
||||
image:
|
||||
name: ${CI_REGISTRY}/${CI_PROJECT_PATH}/gitlab-ee-qa:${CI_COMMIT_REF_SLUG}
|
||||
name: ${QA_IMAGE}
|
||||
entrypoint: [""]
|
||||
stage: qa
|
||||
needs: ["build-qa-image", "review-deploy"]
|
||||
|
|
|
@ -19,12 +19,6 @@
|
|||
.if-default-branch-push: &if-default-branch-push
|
||||
if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "push"'
|
||||
|
||||
.if-default-branch-schedule-2-hourly: &if-default-branch-schedule-2-hourly
|
||||
if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "2-hourly"'
|
||||
|
||||
.if-default-branch-schedule-nightly: &if-default-branch-schedule-nightly
|
||||
if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "nightly"'
|
||||
|
||||
.if-auto-deploy-branches: &if-auto-deploy-branches
|
||||
if: '$CI_COMMIT_BRANCH =~ /^\d+-\d+-auto-deploy-\d+$/'
|
||||
|
||||
|
@ -34,24 +28,51 @@
|
|||
.if-merge-request: &if-merge-request
|
||||
if: '$CI_MERGE_REQUEST_IID'
|
||||
|
||||
.if-merge-request-approved: &if-merge-request-approved
|
||||
if: '$CI_MERGE_REQUEST_IID && $CI_MERGE_REQUEST_APPROVED'
|
||||
|
||||
.if-merge-request-not-approved: &if-merge-request-not-approved
|
||||
if: '$CI_MERGE_REQUEST_IID && $CI_MERGE_REQUEST_APPROVED != "true"'
|
||||
|
||||
.if-automated-merge-request: &if-automated-merge-request
|
||||
if: '$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "release-tools/update-gitaly" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME =~ /stable-ee$/'
|
||||
|
||||
.if-merge-request-title-as-if-foss: &if-merge-request-title-as-if-foss
|
||||
if: '$CI_MERGE_REQUEST_TITLE =~ /RUN AS-IF-FOSS/'
|
||||
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-as-if-foss/'
|
||||
|
||||
.if-merge-request-title-update-caches: &if-merge-request-title-update-caches
|
||||
if: '$CI_MERGE_REQUEST_TITLE =~ /UPDATE CACHE/'
|
||||
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:update-cache/'
|
||||
|
||||
.if-merge-request-title-run-all-rspec: &if-merge-request-title-run-all-rspec
|
||||
if: '$CI_MERGE_REQUEST_TITLE =~ /RUN ALL RSPEC/'
|
||||
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-all-rspec/'
|
||||
|
||||
.if-security-merge-request: &if-security-merge-request
|
||||
if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_MERGE_REQUEST_IID'
|
||||
|
||||
.if-default-branch-schedule-2-hourly: &if-default-branch-schedule-2-hourly
|
||||
if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "2-hourly"'
|
||||
|
||||
.if-default-branch-schedule-nightly: &if-default-branch-schedule-nightly
|
||||
if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "nightly"'
|
||||
|
||||
.if-security-schedule: &if-security-schedule
|
||||
if: '$CI_PROJECT_NAMESPACE == "gitlab-org/security" && $CI_PIPELINE_SOURCE == "schedule"'
|
||||
|
||||
.if-dot-com-gitlab-org-schedule: &if-dot-com-gitlab-org-schedule
|
||||
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_PIPELINE_SOURCE == "schedule"'
|
||||
|
||||
.if-dot-com-ee-schedule: &if-dot-com-ee-schedule
|
||||
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "schedule"'
|
||||
|
||||
.if-dot-com-ee-2-hourly-schedule: &if-dot-com-ee-2-hourly-schedule
|
||||
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "2-hourly"'
|
||||
|
||||
.if-dot-com-ee-nightly-schedule: &if-dot-com-ee-nightly-schedule
|
||||
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "schedule" && $FREQUENCY == "nightly"'
|
||||
|
||||
.if-cache-credentials-schedule: &if-cache-credentials-schedule
|
||||
if: '$CI_REPO_CACHE_CREDENTIALS && $CI_PIPELINE_SOURCE == "schedule"'
|
||||
|
||||
.if-dot-com-gitlab-org-default-branch: &if-dot-com-gitlab-org-default-branch
|
||||
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE == "gitlab-org" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH'
|
||||
|
||||
|
@ -64,20 +85,12 @@
|
|||
.if-dot-com-gitlab-org-and-security-tag: &if-dot-com-gitlab-org-and-security-tag
|
||||
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_NAMESPACE =~ /^gitlab-org($|\/security$)/ && $CI_COMMIT_TAG'
|
||||
|
||||
.if-dot-com-ee-schedule: &if-dot-com-ee-schedule
|
||||
if: '$CI_SERVER_HOST == "gitlab.com" && $CI_PROJECT_PATH == "gitlab-org/gitlab" && $CI_PIPELINE_SOURCE == "schedule"'
|
||||
|
||||
.if-cache-credentials-schedule: &if-cache-credentials-schedule
|
||||
if: '$CI_REPO_CACHE_CREDENTIALS && $CI_PIPELINE_SOURCE == "schedule"'
|
||||
|
||||
.if-merge-request-rspec-minimal-disabled: &if-merge-request-rspec-minimal-disabled
|
||||
if: '$CI_MERGE_REQUEST_IID && $RSPEC_MINIMAL_ENABLED != "true"'
|
||||
|
||||
.if-rspec-fail-fast-disabled: &if-rspec-fail-fast-disabled
|
||||
if: '$RSPEC_FAIL_FAST_ENABLED != "true"'
|
||||
|
||||
.if-rspec-fail-fast-skipped: &if-rspec-fail-fast-skipped
|
||||
if: '$CI_MERGE_REQUEST_TITLE =~ /SKIP RSPEC FAIL-FAST/'
|
||||
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:skip-rspec-fail-fast/'
|
||||
|
||||
# For Security merge requests, the gitlab-release-tools-bot triggers a new
|
||||
# pipeline for the "Pipelines for merged results" feature. If the pipeline
|
||||
|
@ -205,6 +218,7 @@
|
|||
- "{,ee/,jh/}spec/support/helpers/database/**/*"
|
||||
- "config/prometheus/common_metrics.yml" # Used by Gitlab::DatabaseImporters::CommonMetrics::Importer
|
||||
- "{,ee/,jh/}app/models/project_statistics.rb" # Used to calculate sizes in migration specs
|
||||
- "GITALY_SERVER_VERSION" # Has interactions with background migrations:https://gitlab.com/gitlab-org/gitlab/-/issues/336538
|
||||
# CI changes
|
||||
- ".gitlab-ci.yml"
|
||||
- ".gitlab/ci/**/*"
|
||||
|
@ -551,9 +565,7 @@
|
|||
###############
|
||||
.pages:rules:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-default-branch-schedule-2-hourly
|
||||
- <<: *if-dot-com-ee-2-hourly-schedule
|
||||
|
||||
############
|
||||
# QA rules #
|
||||
|
@ -597,12 +609,20 @@
|
|||
###############
|
||||
.rails:rules:ee-and-foss-migration:
|
||||
rules:
|
||||
- changes: *db-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *db-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- changes: *db-patterns
|
||||
|
||||
.rails:rules:ee-and-foss-migration:minimal:
|
||||
rules:
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
when: never
|
||||
|
@ -628,12 +648,20 @@
|
|||
|
||||
.rails:rules:ee-and-foss-unit:
|
||||
rules:
|
||||
- changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- changes: *backend-patterns
|
||||
|
||||
.rails:rules:ee-and-foss-unit:minimal:
|
||||
rules:
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
when: never
|
||||
|
@ -645,12 +673,20 @@
|
|||
|
||||
.rails:rules:ee-and-foss-integration:
|
||||
rules:
|
||||
- changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- changes: *backend-patterns
|
||||
|
||||
.rails:rules:ee-and-foss-integration:minimal:
|
||||
rules:
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
when: never
|
||||
|
@ -662,12 +698,20 @@
|
|||
|
||||
.rails:rules:ee-and-foss-system:
|
||||
rules:
|
||||
- changes: *code-backstage-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *code-backstage-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- changes: *code-backstage-patterns
|
||||
|
||||
.rails:rules:ee-and-foss-system:minimal:
|
||||
rules:
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
when: never
|
||||
|
@ -679,12 +723,20 @@
|
|||
|
||||
.rails:rules:ee-and-foss-fast_spec_helper:
|
||||
rules:
|
||||
- changes: ["config/**/*"]
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: ["config/**/*"]
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- changes: ["config/**/*"]
|
||||
|
||||
.rails:rules:ee-and-foss-fast_spec_helper:minimal:
|
||||
rules:
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
when: never
|
||||
|
@ -703,14 +755,22 @@
|
|||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- changes: *db-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *db-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- changes: *db-patterns
|
||||
|
||||
.rails:rules:ee-only-migration:minimal:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
when: never
|
||||
|
@ -724,14 +784,22 @@
|
|||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- changes: *backend-patterns
|
||||
|
||||
.rails:rules:ee-only-unit:minimal:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
when: never
|
||||
|
@ -745,14 +813,22 @@
|
|||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- changes: *backend-patterns
|
||||
|
||||
.rails:rules:ee-only-integration:minimal:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
when: never
|
||||
|
@ -766,14 +842,22 @@
|
|||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- changes: *code-backstage-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *code-backstage-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- changes: *code-backstage-patterns
|
||||
|
||||
.rails:rules:ee-only-system:minimal:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
when: never
|
||||
|
@ -787,19 +871,25 @@
|
|||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *db-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- <<: *if-security-merge-request
|
||||
changes: *db-patterns
|
||||
- <<: *if-merge-request-title-as-if-foss
|
||||
changes: *db-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
|
||||
.rails:rules:as-if-foss-migration:minimal:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
|
@ -808,25 +898,30 @@
|
|||
changes: *db-patterns
|
||||
- <<: *if-merge-request-title-as-if-foss
|
||||
changes: *db-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
|
||||
.rails:rules:as-if-foss-unit:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- <<: *if-security-merge-request
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-as-if-foss
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
|
||||
.rails:rules:as-if-foss-unit:minimal:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
|
@ -835,25 +930,30 @@
|
|||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-as-if-foss
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
|
||||
.rails:rules:as-if-foss-integration:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- <<: *if-security-merge-request
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-as-if-foss
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
|
||||
.rails:rules:as-if-foss-integration:minimal:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
|
@ -862,25 +962,30 @@
|
|||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-as-if-foss
|
||||
changes: *backend-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
|
||||
.rails:rules:as-if-foss-system:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
- <<: *if-automated-merge-request
|
||||
changes: *code-backstage-patterns
|
||||
- <<: *if-merge-request-not-approved
|
||||
when: never
|
||||
- <<: *if-security-merge-request
|
||||
changes: *code-backstage-patterns
|
||||
- <<: *if-merge-request-title-as-if-foss
|
||||
changes: *code-backstage-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
|
||||
.rails:rules:as-if-foss-system:minimal:
|
||||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-merge-request-rspec-minimal-disabled
|
||||
- <<: *if-merge-request-approved
|
||||
when: never
|
||||
- <<: *if-automated-merge-request
|
||||
when: never
|
||||
- <<: *if-merge-request
|
||||
changes: *ci-patterns
|
||||
|
@ -889,7 +994,6 @@
|
|||
changes: *code-backstage-patterns
|
||||
- <<: *if-merge-request-title-as-if-foss
|
||||
changes: *code-backstage-patterns
|
||||
- <<: *if-merge-request-title-run-all-rspec
|
||||
|
||||
.rails:rules:ee-and-foss-db-library-code:
|
||||
rules:
|
||||
|
@ -1209,6 +1313,8 @@
|
|||
- <<: *if-dot-com-gitlab-org-merge-request
|
||||
changes: *code-qa-patterns
|
||||
allow_failure: true
|
||||
- <<: *if-dot-com-ee-schedule
|
||||
allow_failure: true
|
||||
|
||||
# The rule needs to be duplicated between `on_success` and `on_failure`
|
||||
# because the jobs `needs` the previous job to complete.
|
||||
|
@ -1235,6 +1341,10 @@
|
|||
- <<: *if-dot-com-gitlab-org-merge-request
|
||||
changes: *code-qa-patterns
|
||||
when: on_failure
|
||||
- <<: *if-dot-com-ee-schedule
|
||||
when: on_success
|
||||
- <<: *if-dot-com-ee-schedule
|
||||
when: on_failure
|
||||
|
||||
.review:rules:review-qa-all:
|
||||
rules:
|
||||
|
@ -1247,6 +1357,8 @@
|
|||
- <<: *if-dot-com-gitlab-org-merge-request
|
||||
changes: *qa-patterns
|
||||
allow_failure: true
|
||||
- <<: *if-dot-com-ee-nightly-schedule
|
||||
allow_failure: true
|
||||
|
||||
# The rule needs to be duplicated between `on_success` and `on_failure`
|
||||
# because the jobs `needs` the previous job to complete.
|
||||
|
@ -1261,12 +1373,18 @@
|
|||
allow_failure: true
|
||||
- <<: *if-dot-com-gitlab-org-merge-request
|
||||
changes: *qa-patterns
|
||||
allow_failure: true
|
||||
when: on_success
|
||||
allow_failure: true
|
||||
- <<: *if-dot-com-gitlab-org-merge-request
|
||||
changes: *qa-patterns
|
||||
allow_failure: true
|
||||
when: on_failure
|
||||
allow_failure: true
|
||||
- <<: *if-dot-com-ee-nightly-schedule
|
||||
when: on_success
|
||||
allow_failure: true
|
||||
- <<: *if-dot-com-ee-nightly-schedule
|
||||
when: on_failure
|
||||
allow_failure: true
|
||||
|
||||
.review:rules:review-cleanup:
|
||||
rules:
|
||||
|
@ -1354,10 +1472,10 @@
|
|||
rules:
|
||||
- <<: *if-not-ee
|
||||
when: never
|
||||
- <<: *if-dot-com-ee-2-hourly-schedule
|
||||
- changes:
|
||||
- ".gitlab/ci/test-metadata.gitlab-ci.yml"
|
||||
- "scripts/rspec_helpers.sh"
|
||||
- <<: *if-dot-com-ee-schedule
|
||||
|
||||
###################
|
||||
# workhorse rules #
|
||||
|
|
|
@ -43,5 +43,6 @@ update-tests-metadata:
|
|||
script:
|
||||
- run_timed_command "retry gem install fog-aws mime-types activesupport rspec_profiling postgres-copy --no-document"
|
||||
- source ./scripts/rspec_helpers.sh
|
||||
- test -f rspec_flaky/report-suite.json || echo -e "\e[31m" 'Consider add ~"pipeline:run-all-rspec" to run full rspec jobs' "\e[0m"
|
||||
- update_tests_metadata
|
||||
- update_tests_mapping
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
<!-- Title: Design Sprint -->
|
||||
|
||||
This template outlines a sample set-up process, activities and deliverables for running a Remote Design Sprint. The specific activities and deliverables should be customized based on your objectives and timeline.
|
||||
|
||||
Please refer to the [Remote Design Sprint Handbook page](#anchor-tag-to-handbook-page) for additional recommendations.
|
||||
|
||||
## Design Sprint Focus
|
||||
* [ ] Have you [determined that a Design Sprint is appropriate for this project](#anchor-tag-to-handbook-page)?
|
||||
<!-- What is the focus of the [Design Sprint](https://about.gitlab.com/handbook/product/product-processes/#design-sprint)? What problem area will you be solving for and who is the target user? -->
|
||||
|
|
|
@ -62,38 +62,36 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
|
|||
disable_ddl_transaction!
|
||||
|
||||
def up
|
||||
unless table_exists?(:cool_widget_registry)
|
||||
ActiveRecord::Base.transaction do
|
||||
create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
|
||||
t.bigint :cool_widget_id, null: false
|
||||
t.datetime_with_timezone :created_at, null: false
|
||||
t.datetime_with_timezone :last_synced_at
|
||||
t.datetime_with_timezone :retry_at
|
||||
t.datetime_with_timezone :verified_at
|
||||
t.datetime_with_timezone :verification_started_at
|
||||
t.datetime_with_timezone :verification_retry_at
|
||||
t.integer :state, default: 0, null: false, limit: 2
|
||||
t.integer :verification_state, default: 0, null: false, limit: 2
|
||||
t.integer :retry_count, default: 0, limit: 2, null: false
|
||||
t.integer :verification_retry_count, default: 0, limit: 2, null: false
|
||||
t.boolean :checksum_mismatch, default: false, null: false
|
||||
t.boolean :force_to_redownload, default: false, null: false
|
||||
t.boolean :missing_on_primary, default: false, null: false
|
||||
t.binary :verification_checksum
|
||||
t.binary :verification_checksum_mismatched
|
||||
t.string :verification_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806
|
||||
t.string :last_sync_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806
|
||||
ActiveRecord::Base.transaction do
|
||||
create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
|
||||
t.bigint :cool_widget_id, null: false
|
||||
t.datetime_with_timezone :created_at, null: false
|
||||
t.datetime_with_timezone :last_synced_at
|
||||
t.datetime_with_timezone :retry_at
|
||||
t.datetime_with_timezone :verified_at
|
||||
t.datetime_with_timezone :verification_started_at
|
||||
t.datetime_with_timezone :verification_retry_at
|
||||
t.integer :state, default: 0, null: false, limit: 2
|
||||
t.integer :verification_state, default: 0, null: false, limit: 2
|
||||
t.integer :retry_count, default: 0, limit: 2, null: false
|
||||
t.integer :verification_retry_count, default: 0, limit: 2, null: false
|
||||
t.boolean :checksum_mismatch, default: false, null: false
|
||||
t.boolean :force_to_redownload, default: false, null: false
|
||||
t.boolean :missing_on_primary, default: false, null: false
|
||||
t.binary :verification_checksum
|
||||
t.binary :verification_checksum_mismatched
|
||||
t.string :verification_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806
|
||||
t.string :last_sync_failure, limit: 255 # rubocop:disable Migration/PreventStrings see https://gitlab.com/gitlab-org/gitlab/-/issues/323806
|
||||
|
||||
t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true
|
||||
t.index :retry_at
|
||||
t.index :state
|
||||
# To optimize performance of CoolWidgetRegistry.verification_failed_batch
|
||||
t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))"
|
||||
# To optimize performance of CoolWidgetRegistry.needs_verification_count
|
||||
t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
|
||||
# To optimize performance of CoolWidgetRegistry.verification_pending_batch
|
||||
t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))"
|
||||
end
|
||||
t.index :cool_widget_id, name: :index_cool_widget_registry_on_cool_widget_id, unique: true
|
||||
t.index :retry_at
|
||||
t.index :state
|
||||
# To optimize performance of CoolWidgetRegistry.verification_failed_batch
|
||||
t.index :verification_retry_at, name: :cool_widget_registry_failed_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 3))"
|
||||
# To optimize performance of CoolWidgetRegistry.needs_verification_count
|
||||
t.index :verification_state, name: :cool_widget_registry_needs_verification, where: "((state = 2) AND (verification_state = ANY (ARRAY[0, 3])))"
|
||||
# To optimize performance of CoolWidgetRegistry.verification_pending_batch
|
||||
t.index :verified_at, name: :cool_widget_registry_pending_verification, order: "NULLS FIRST", where: "((state = 2) AND (verification_state = 0))"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -454,7 +452,7 @@ That's all of the required database changes.
|
|||
```
|
||||
|
||||
- [ ] Update `REGISTRY_CLASSES` in `ee/app/workers/geo/secondary/registry_consistency_worker.rb`.
|
||||
- [ ] Update `def model_class_factory_name` in `ee/spec/services/geo/registry_consistency_service_spec.rb`.
|
||||
- [ ] Add a custom factory name if needed in `def model_class_factory_name` in `ee/spec/services/geo/registry_consistency_service_spec.rb`.
|
||||
- [ ] Update `it 'creates missing registries for each registry class'` in `ee/spec/workers/geo/secondary/registry_consistency_worker_spec.rb`.
|
||||
- [ ] Add `cool_widget_registry` to `ActiveSupport::Inflector.inflections` in `config/initializers_before_autoloader/000_inflections.rb`.
|
||||
- [ ] Create `ee/spec/factories/geo/cool_widget_registry.rb`:
|
||||
|
@ -537,9 +535,11 @@ If you did not add verification state fields to a separate table, `cool_widget_s
|
|||
|
||||
Otherwise, you can follow [the example of Merge Request Diffs](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/63309).
|
||||
|
||||
- [ ] Add a `Geo::CoolWidgetState` model in `ee/app/models/ee/geo/cool_widget_state.rb`:
|
||||
- [ ] Add a `Geo::CoolWidgetState` model in `ee/app/models/geo/cool_widget_state.rb`:
|
||||
|
||||
``` ruby
|
||||
# frozen_string_literal: true
|
||||
|
||||
module Geo
|
||||
class CoolWidgetState < ApplicationRecord
|
||||
self.primary_key = :cool_widget_id
|
||||
|
@ -745,7 +745,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
|
|||
graphql_name 'CoolWidgetRegistry'
|
||||
description 'Represents the Geo replication and verification state of a cool_widget'
|
||||
|
||||
field :cool_widget_id, GraphQL::ID_TYPE, null: false, description: 'ID of the Cool Widget'
|
||||
field :cool_widget_id, GraphQL::Types::ID, null: false, description: 'ID of the Cool Widget.'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -421,7 +421,7 @@ That's all of the required database changes.
|
|||
```
|
||||
|
||||
- [ ] Update `REGISTRY_CLASSES` in `ee/app/workers/geo/secondary/registry_consistency_worker.rb`.
|
||||
- [ ] Update `def model_class_factory_name` in `ee/spec/services/geo/registry_consistency_service_spec.rb`.
|
||||
- [ ] Add a custom factory name if needed in `def model_class_factory_name` in `ee/spec/services/geo/registry_consistency_service_spec.rb`.
|
||||
- [ ] Update `it 'creates missing registries for each registry class'` in `ee/spec/workers/geo/secondary/registry_consistency_worker_spec.rb`.
|
||||
- [ ] Add `cool_widget_registry` to `ActiveSupport::Inflector.inflections` in `config/initializers_before_autoloader/000_inflections.rb`.
|
||||
- [ ] Create `ee/spec/factories/geo/cool_widget_registry.rb`:
|
||||
|
|
|
@ -38,4 +38,11 @@
|
|||
|
||||
For example, if the solution will take a product manager, designer, and engineer two weeks of effort - you may quantify this as 1.5 (based on 0.5 months x 3 people). -->
|
||||
|
||||
## Definition of Done
|
||||
|
||||
- [ ] The problem is well understood by the PM to have an understanding summarized in a RICE score
|
||||
- [ ] The problem is well understood by the PM to decide if they want to move forward with this idea or drop it
|
||||
- [ ] The problem is well described and detailed with necessary requirements for product design to understand the problem
|
||||
- [ ] The problem is well described and detailed with necessary requirements for engineering to understand the problem
|
||||
|
||||
/label ~"workflow::validation backlog" ~devops:: ~category: ~group::
|
||||
|
|
|
@ -9,7 +9,9 @@ Set the title to: `Description of the original issue`
|
|||
## Prior to starting the security release work
|
||||
|
||||
- [ ] Read the [security process for developers] if you are not familiar with it.
|
||||
- [ ] Make sure the issue really needs to follow the security release workflow.
|
||||
- Verify if the issue you're working on `gitlab-org/gitlab` is confidential, if it's public fix should be placed on GitLab canonical and no backports are required.
|
||||
- If the issue you're fixing doesn't appear to be something that can be exploited by a malicious person and is instead simply a security enhancement do not hesitate to ping `@gitlab-com/gl-security/appsec` to discuss if the issue can be fixed in the canonical repository.
|
||||
- [ ] **IMPORTANT**: Mark this [issue as linked] to the Security Release Tracking Issue. You can find it on the topic of the `#releases` Slack channel. This issue
|
||||
MUST be linked for the release bot to know that the associated merge requests should be merged for this security release.
|
||||
- Fill out the [Links section](#links):
|
||||
|
|
9
.gitlab/issue_templates/Task for Configure group.md
Normal file
|
@ -0,0 +1,9 @@
|
|||
## Scope
|
||||
|
||||
This issue is part of a bigger development effort described in detail by its epic. The scope of this issue is to ...
|
||||
|
||||
## Actions
|
||||
|
||||
<!-- Likely in the form of checkboxed elements -->
|
||||
|
||||
- [ ] TODO
|
|
@ -1,6 +1,8 @@
|
|||
<!--See the general Documentation guidelines https://docs.gitlab.com/ee/development/documentation/ -->
|
||||
|
||||
<!-- Use this description template for changing documentation location. For new docs or updates to existing docs, use the "Documentation" template -->
|
||||
<!--
|
||||
See the general Documentation guidelines https://docs.gitlab.com/ee/development/documentation/
|
||||
Use this description template for changing documentation location. For new documentation or
|
||||
updates to existing documentation, use the Documentation.md template.
|
||||
-->
|
||||
|
||||
## What does this MR do?
|
||||
|
||||
|
@ -25,4 +27,4 @@ https://docs.gitlab.com/ee/development/documentation/index.html#move-or-rename-a
|
|||
- [ ] Update the link in `features.yml` (if applicable)
|
||||
- [ ] Assign one of the technical writers for review.
|
||||
|
||||
/label ~documentation
|
||||
/label ~documentation ~"Technical Writing"
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
<!-- Follow the documentation workflow https://docs.gitlab.com/ee/development/documentation/workflow.html -->
|
||||
<!-- Additional information is located at https://docs.gitlab.com/ee/development/documentation/ -->
|
||||
<!-- To find the designated Tech Writer for the stage/group, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers -->
|
||||
<!--
|
||||
Follow the documentation workflow https://docs.gitlab.com/ee/development/documentation/workflow.html
|
||||
Additional information is located at https://docs.gitlab.com/ee/development/documentation/
|
||||
To find the designated Tech Writer for the stage/group, see
|
||||
https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
|
||||
|
||||
<!-- Mention "documentation" or "docs" in the MR title -->
|
||||
<!-- For changing documentation location use the "Change documentation location" template -->
|
||||
Mention "documentation" or "docs" in the MR title
|
||||
For changing documentation location use the Change Documentation Location.md template
|
||||
-->
|
||||
|
||||
## What does this MR do?
|
||||
|
||||
|
@ -15,11 +18,23 @@
|
|||
|
||||
## Author's checklist
|
||||
|
||||
- [ ] Follow the [Documentation Guidelines](https://docs.gitlab.com/ee/development/documentation/) and [Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide/).
|
||||
- [ ] Ensure that the [product tier badge](https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges) is added to doc's `h1`.
|
||||
- [ ] [Request a review](https://docs.gitlab.com/ee/development/code_review.html#dogfooding-the-reviewers-feature) based on the documentation page's metadata and [associated Technical Writer](https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments).
|
||||
- [ ] Follow the:
|
||||
- [Documentation Guidelines](https://docs.gitlab.com/ee/development/documentation/).
|
||||
- [Style Guide](https://docs.gitlab.com/ee/development/documentation/styleguide/).
|
||||
- [ ] Ensure that the [product tier badge](https://docs.gitlab.com/ee/development/documentation/styleguide/index.html#product-tier-badges) is added to topic's `h1`.
|
||||
- [ ] [Request a review](https://docs.gitlab.com/ee/development/code_review.html#dogfooding-the-reviewers-feature) based on the:
|
||||
- The documentation page's [metadata](https://docs.gitlab.com/ee/development/documentation/#metadata).
|
||||
- The [associated Technical Writer](https://about.gitlab.com/handbook/engineering/ux/technical-writing/#assignments).
|
||||
|
||||
To avoid having this MR be added to code verification QA issues, don't add these labels: ~"feature", ~"frontend", ~"backend", ~"bug", or ~"database"
|
||||
If you are only adding documentation, do not add any of the following labels:
|
||||
|
||||
- `~"feature"`
|
||||
- `~"frontend"`
|
||||
- `~"backend"`
|
||||
- `~"bug"`
|
||||
- `~"database"`
|
||||
|
||||
These labels cause the MR to be added to code verification QA issues.
|
||||
|
||||
## Review checklist
|
||||
|
||||
|
|
14
.gitpod.yml
|
@ -48,6 +48,8 @@ tasks:
|
|||
make gitlab-db-migrate
|
||||
fi
|
||||
cd /workspace/gitlab-development-kit/gitlab
|
||||
# Display which branch we're on
|
||||
git branch --show-current
|
||||
# Install Lefthook
|
||||
bundle exec lefthook install
|
||||
git checkout db/structure.sql
|
||||
|
@ -55,16 +57,24 @@ tasks:
|
|||
# Waiting for GitLab ...
|
||||
gp await-port 3000
|
||||
printf "Waiting for GitLab at $(gp url 3000) ..."
|
||||
until $(curl -sNL $(gp url 3000) | grep -q "GitLab"); do printf '.'; sleep 5; done && echo ""
|
||||
# Check /-/readiness which returns JSON, but we're only interested in the exit code
|
||||
#
|
||||
# We use http://localhost:3000 instead of the public hostname because
|
||||
# it's no longer possible to access as specific cookies are required
|
||||
until curl --silent --no-buffer --fail http://localhost:3000/-/readiness > /dev/null 2>&1; do printf '.'; sleep 5; done && echo ""
|
||||
# Give Gitpod a few more seconds to set up everything ...
|
||||
sleep 5
|
||||
printf "$(date) – GitLab is up (took ~%.1f minutes)\n" "$((10*$SECONDS/60))e-1" | tee -a /workspace/startup.log
|
||||
gp preview $(gp url 3000) || true
|
||||
# Speed up backend tests
|
||||
export GITLAB_TEST_EAGER_LOAD=false
|
||||
)
|
||||
|
||||
ports:
|
||||
- port: 3000 # rails-web
|
||||
- port: 2222 # sshd
|
||||
onOpen: ignore
|
||||
- port: 3000 # rails-web
|
||||
onOpen: notify
|
||||
- port: 3010 # gitlab-pages
|
||||
onOpen: ignore
|
||||
- port: 3808 # webpack
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
"Geo",
|
||||
"Git LFS",
|
||||
"git-annex",
|
||||
"git-sizer",
|
||||
"Git",
|
||||
"Gitaly",
|
||||
"GitHub",
|
||||
|
|
|
@ -15,6 +15,22 @@
|
|||
"alternate": "lib/{}.rb",
|
||||
"type": "test"
|
||||
},
|
||||
"lib/api/*.rb": {
|
||||
"alternate": "spec/requests/api/{}_spec.rb",
|
||||
"type": "source"
|
||||
},
|
||||
"spec/requests/api/*_spec.rb": {
|
||||
"alternate": "lib/api/{}.rb",
|
||||
"type": "test"
|
||||
},
|
||||
"ee/lib/api/*.rb": {
|
||||
"alternate": "ee/spec/requests/api/{}_spec.rb",
|
||||
"type": "source"
|
||||
},
|
||||
"ee/spec/requests/api/*_spec.rb": {
|
||||
"alternate": "ee/lib/api/{}.rb",
|
||||
"type": "test"
|
||||
},
|
||||
"ee/app/*.rb": {
|
||||
"alternate": "ee/spec/{}_spec.rb",
|
||||
"type": "source"
|
||||
|
@ -31,6 +47,30 @@
|
|||
"alternate": "ee/lib/{}.rb",
|
||||
"type": "test"
|
||||
},
|
||||
"app/assets/javascripts/*.js": {
|
||||
"alternate": "spec/frontend/{}_spec.js",
|
||||
"type": "source"
|
||||
},
|
||||
"app/assets/javascripts/*.vue": {
|
||||
"alternate": "spec/frontend/{}_spec.js",
|
||||
"type": "source"
|
||||
},
|
||||
"spec/frontend/*_spec.js": {
|
||||
"alternate": ["app/assets/javascripts/{}.vue", "app/assets/javascripts/{}.js"],
|
||||
"type": "test"
|
||||
},
|
||||
"ee/app/assets/javascripts/*.js": {
|
||||
"alternate": "ee/spec/frontend/{}_spec.js",
|
||||
"type": "source"
|
||||
},
|
||||
"ee/app/assets/javascripts/*.vue": {
|
||||
"alternate": "ee/spec/frontend/{}_spec.js",
|
||||
"type": "source"
|
||||
},
|
||||
"ee/spec/frontend/*_spec.js": {
|
||||
"alternate": ["ee/app/assets/javascripts/{}.vue", "ee/app/assets/javascripts/{}.js"],
|
||||
"type": "test"
|
||||
},
|
||||
"*.rb": {"dispatch": "bundle exec rubocop {file}"},
|
||||
"*_spec.rb": {"dispatch": "bundle exec rspec {file}"}
|
||||
}
|
||||
|
|
20
.rubocop.yml
|
@ -37,6 +37,7 @@ AllCops:
|
|||
- 'file_hooks/**/*'
|
||||
- 'workhorse/**/*'
|
||||
- 'spec/support/*.git/**/*' # e.g. spec/support/gitlab-git-test.git
|
||||
- 'db/ci_migrate/*.rb' # since the `db/ci_migrate` is a symlinked to `db/migrate`
|
||||
CacheRootDirectory: tmp
|
||||
MaxFilesInCache: 25000
|
||||
|
||||
|
@ -254,7 +255,6 @@ Gitlab/HTTParty:
|
|||
Gitlab/Json:
|
||||
Enabled: true
|
||||
Exclude:
|
||||
- 'db/**/*'
|
||||
- 'qa/**/*'
|
||||
- 'scripts/**/*'
|
||||
- 'tooling/rspec_flaky/**/*'
|
||||
|
@ -442,6 +442,16 @@ Graphql/JSONType:
|
|||
- 'spec/**/*.rb'
|
||||
- 'ee/spec/**/*.rb'
|
||||
|
||||
Graphql/OldTypes:
|
||||
Enabled: true
|
||||
Include:
|
||||
- 'app/graphql/**/*'
|
||||
- 'ee/app/graphql/**/*'
|
||||
- 'spec/graphql/**/*'
|
||||
- 'spec/requests/api/graphql/**/*'
|
||||
- 'ee/spec/graphql/**/*'
|
||||
- 'ee/spec/requests/api/graphql/**/*'
|
||||
|
||||
RSpec/EnvAssignment:
|
||||
Enable: true
|
||||
Include:
|
||||
|
@ -693,3 +703,11 @@ RSpec/TopLevelDescribePath:
|
|||
Exclude:
|
||||
- 'spec/fixtures/**/*.rb'
|
||||
- 'ee/spec/fixtures/**/*.rb'
|
||||
|
||||
QA/SelectorUsage:
|
||||
Enabled: true
|
||||
Include:
|
||||
- 'spec/**/*.rb'
|
||||
- 'ee/spec/**/*.rb'
|
||||
Exclude:
|
||||
- 'spec/rubocop/**/*_spec.rb'
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
# - guidelines for use found in
|
||||
# https://docs.gitlab.com/ee/development/contributing/style_guides.html#resolving-rubocop-exceptions.
|
||||
|
||||
# WIP See https://gitlab.com/gitlab-org/gitlab/-/issues/322903
|
||||
# WIP See https://gitlab.com/gitlab-org/gitlab/-/issues/337596
|
||||
Graphql/Descriptions:
|
||||
Exclude:
|
||||
- 'ee/app/graphql/types/iteration_state_enum.rb'
|
||||
|
@ -22,6 +22,178 @@ Graphql/Descriptions:
|
|||
- 'ee/app/graphql/types/vulnerability_report_type_enum.rb'
|
||||
- 'ee/app/graphql/types/vulnerability_severity_enum.rb'
|
||||
- 'ee/app/graphql/types/vulnerability_state_enum.rb'
|
||||
- 'ee/app/graphql/types/vulnerability_confidence_enum.rb'
|
||||
- 'app/graphql/resolvers/labels_resolver.rb'
|
||||
- 'app/graphql/resolvers/merge_requests_resolver.rb'
|
||||
- 'app/graphql/resolvers/milestones_resolver.rb'
|
||||
- 'app/graphql/resolvers/package_details_resolver.rb'
|
||||
- 'app/graphql/resolvers/paginated_tree_resolver.rb'
|
||||
- 'app/graphql/resolvers/release_resolver.rb'
|
||||
- 'app/graphql/resolvers/repository_branch_names_resolver.rb'
|
||||
- 'app/graphql/resolvers/snippets_resolver.rb'
|
||||
- 'app/graphql/resolvers/todo_resolver.rb'
|
||||
- 'app/graphql/resolvers/tree_resolver.rb'
|
||||
- 'app/graphql/resolvers/users/snippets_resolver.rb'
|
||||
- 'app/graphql/types/admin/analytics/usage_trends/measurement_type.rb'
|
||||
- 'app/graphql/types/admin/sidekiq_queues/delete_jobs_response_type.rb'
|
||||
- 'app/graphql/types/alert_management/alert_type.rb'
|
||||
- 'app/graphql/types/award_emojis/award_emoji_type.rb'
|
||||
- 'app/graphql/types/ci/config/job_restriction_type.rb'
|
||||
- 'app/graphql/types/ci/config/status_enum.rb'
|
||||
- 'app/graphql/types/ci/pipeline_type.rb'
|
||||
- 'app/graphql/types/ci_configuration/sast/ui_component_size_enum.rb'
|
||||
- 'app/graphql/types/commit_action_type.rb'
|
||||
- 'app/graphql/types/container_repository_cleanup_status_enum.rb'
|
||||
- 'app/graphql/types/container_repository_tag_type.rb'
|
||||
- 'app/graphql/types/container_repository_type.rb'
|
||||
- 'app/graphql/types/custom_emoji_type.rb'
|
||||
- 'app/graphql/types/design_management/design_at_version_type.rb'
|
||||
- 'app/graphql/types/design_management/design_fields.rb'
|
||||
- 'app/graphql/types/diff_paths_input_type.rb'
|
||||
- 'app/graphql/types/environment_type.rb'
|
||||
- 'app/graphql/types/eventable_type.rb'
|
||||
- 'app/graphql/types/group_type.rb'
|
||||
- 'app/graphql/types/merge_request_type.rb'
|
||||
- 'app/graphql/types/metadata/kas_type.rb'
|
||||
- 'app/graphql/types/milestone_wildcard_id_enum.rb'
|
||||
- 'app/graphql/types/namespace_type.rb'
|
||||
- 'app/graphql/types/notes/note_type.rb'
|
||||
- 'app/graphql/types/notes/position_type_enum.rb'
|
||||
- 'app/graphql/types/packages/composer/json_type.rb'
|
||||
- 'app/graphql/types/packages/package_details_type.rb'
|
||||
- 'app/graphql/types/packages/package_file_type.rb'
|
||||
- 'app/graphql/types/packages/package_tag_type.rb'
|
||||
- 'app/graphql/types/packages/package_type.rb'
|
||||
- 'app/graphql/types/project_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_shared_input_arguments.rb'
|
||||
- 'app/graphql/types/release_assets_input_type.rb'
|
||||
- 'app/graphql/types/release_type.rb'
|
||||
- 'app/graphql/types/repository/blob_type.rb'
|
||||
- 'app/graphql/types/root_storage_statistics_type.rb'
|
||||
- 'app/graphql/types/snippet_type.rb'
|
||||
- 'app/graphql/types/snippets/blob_type.rb'
|
||||
- 'app/graphql/types/snippets/visibility_scopes_enum.rb'
|
||||
- 'app/graphql/types/terraform/state_type.rb'
|
||||
- 'app/graphql/types/terraform/state_version_type.rb'
|
||||
- 'app/graphql/types/timelog_type.rb'
|
||||
- 'app/graphql/types/todo_state_enum.rb'
|
||||
- 'app/graphql/types/todo_target_enum.rb'
|
||||
- 'app/graphql/types/todo_type.rb'
|
||||
- 'app/graphql/types/user_interface.rb'
|
||||
- 'app/graphql/types/user_merge_request_interaction_type.rb'
|
||||
- 'app/graphql/types/user_state_enum.rb'
|
||||
- 'ee/app/graphql/ee/mutations/alert_management/http_integration/create.rb'
|
||||
- 'ee/app/graphql/ee/mutations/alert_management/http_integration/update.rb'
|
||||
- 'ee/app/graphql/ee/mutations/boards/issues/issue_move_list.rb'
|
||||
- 'ee/app/graphql/ee/mutations/issues/create.rb'
|
||||
- 'ee/app/graphql/ee/mutations/issues/update.rb'
|
||||
- 'ee/app/graphql/ee/types/alert_management/http_integration_type.rb'
|
||||
- 'ee/app/graphql/ee/types/board_list_type.rb'
|
||||
- 'ee/app/graphql/ee/types/board_type.rb'
|
||||
- 'ee/app/graphql/ee/types/group_type.rb'
|
||||
- 'ee/app/graphql/ee/types/project_type.rb'
|
||||
- 'ee/app/graphql/ee/types/query_type.rb'
|
||||
- 'ee/app/graphql/mutations/app_sec/fuzzing/api/ci_configuration/create.rb'
|
||||
- 'ee/app/graphql/mutations/boards/epic_boards/create.rb'
|
||||
- 'ee/app/graphql/mutations/boards/epic_boards/epic_move_list.rb'
|
||||
- 'ee/app/graphql/mutations/boards/epic_boards/update.rb'
|
||||
- 'ee/app/graphql/mutations/boards/epic_lists/destroy.rb'
|
||||
- 'ee/app/graphql/mutations/boards/lists/update_limit_metrics.rb'
|
||||
- 'ee/app/graphql/mutations/boards/update_epic_user_preferences.rb'
|
||||
- 'ee/app/graphql/mutations/compliance_management/frameworks/create.rb'
|
||||
- 'ee/app/graphql/mutations/compliance_management/frameworks/destroy.rb'
|
||||
- 'ee/app/graphql/mutations/compliance_management/frameworks/update.rb'
|
||||
- 'ee/app/graphql/mutations/concerns/mutations/shared_epic_arguments.rb'
|
||||
- 'ee/app/graphql/mutations/dast/profiles/create.rb'
|
||||
- 'ee/app/graphql/mutations/dast/profiles/update.rb'
|
||||
- 'ee/app/graphql/mutations/dast_on_demand_scans/create.rb'
|
||||
- 'ee/app/graphql/mutations/dast_scanner_profiles/create.rb'
|
||||
- 'ee/app/graphql/mutations/dast_scanner_profiles/update.rb'
|
||||
- 'ee/app/graphql/mutations/dast_site_profiles/create.rb'
|
||||
- 'ee/app/graphql/mutations/dast_site_profiles/delete.rb'
|
||||
- 'ee/app/graphql/mutations/dast_site_profiles/update.rb'
|
||||
- 'ee/app/graphql/mutations/dast_site_tokens/create.rb'
|
||||
- 'ee/app/graphql/mutations/dast_site_validations/create.rb'
|
||||
- 'ee/app/graphql/mutations/dast_site_validations/revoke.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/gitlab_subscriptions/activate.rb'
|
||||
- 'ee/app/graphql/mutations/incident_management/escalation_policy/base.rb'
|
||||
- 'ee/app/graphql/mutations/incident_management/escalation_policy/create.rb'
|
||||
- 'ee/app/graphql/mutations/incident_management/escalation_policy/destroy.rb'
|
||||
- 'ee/app/graphql/mutations/incident_management/escalation_policy/update.rb'
|
||||
- 'ee/app/graphql/mutations/incident_management/oncall_rotation/base.rb'
|
||||
- 'ee/app/graphql/mutations/incident_management/oncall_rotation/create.rb'
|
||||
- 'ee/app/graphql/mutations/incident_management/oncall_rotation/destroy.rb'
|
||||
- 'ee/app/graphql/mutations/incident_management/oncall_rotation/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/issues/common_ee_mutation_arguments.rb'
|
||||
- 'ee/app/graphql/mutations/issues/promote_to_epic.rb'
|
||||
- 'ee/app/graphql/mutations/issues/set_iteration.rb'
|
||||
- 'ee/app/graphql/mutations/iterations/cadences/create.rb'
|
||||
- 'ee/app/graphql/mutations/iterations/cadences/update.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/update_requirement.rb'
|
||||
- 'ee/app/graphql/mutations/vulnerabilities/confirm.rb'
|
||||
- 'ee/app/graphql/mutations/vulnerabilities/create_external_issue_link.rb'
|
||||
- 'ee/app/graphql/mutations/vulnerabilities/destroy_external_issue_link.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/dora_metrics_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/geo/geo_node_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/network_policy_resolver.rb'
|
||||
- 'ee/app/graphql/resolvers/requirements_management/requirements_resolver.rb'
|
||||
- 'ee/app/graphql/types/alert_management/payload_alert_field_input_type.rb'
|
||||
- 'ee/app/graphql/types/alert_management/payload_alert_mapping_field_type.rb'
|
||||
- 'ee/app/graphql/types/analytics/devops_adoption/snapshot_type.rb'
|
||||
- 'ee/app/graphql/types/app_sec/fuzzing/api/scan_profile_type.rb'
|
||||
- 'ee/app/graphql/types/ci/code_quality_degradation_type.rb'
|
||||
- 'ee/app/graphql/types/ci/minutes/namespace_monthly_usage_type.rb'
|
||||
- 'ee/app/graphql/types/ci/minutes/project_monthly_usage_type.rb'
|
||||
- 'ee/app/graphql/types/clusters/agent_token_type.rb'
|
||||
- 'ee/app/graphql/types/clusters/agent_type.rb'
|
||||
- 'ee/app/graphql/types/dast/profile_branch_type.rb'
|
||||
- 'ee/app/graphql/types/dast/profile_type.rb'
|
||||
- 'ee/app/graphql/types/dast/site_profile_auth_input_type.rb'
|
||||
- 'ee/app/graphql/types/dast/site_profile_auth_type.rb'
|
||||
- 'ee/app/graphql/types/dast_scanner_profile_type.rb'
|
||||
- 'ee/app/graphql/types/dast_site_profile_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/geo/geo_node_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/escalation_policy_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/escalation_rule_input_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/escalation_rule_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/oncall_participant_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/oncall_rotation_active_period_input_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/oncall_rotation_active_period_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/oncall_rotation_date_input_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/oncall_rotation_length_input_type.rb'
|
||||
- 'ee/app/graphql/types/incident_management/oncall_user_input_type.rb'
|
||||
- 'ee/app/graphql/types/move_type_enum.rb'
|
||||
- 'ee/app/graphql/types/network_policy_kind_enum.rb'
|
||||
- 'ee/app/graphql/types/path_lock_type.rb'
|
||||
- 'ee/app/graphql/types/pipeline_security_report_finding_type.rb'
|
||||
- 'ee/app/graphql/types/scanned_resource_type.rb'
|
||||
- 'ee/app/graphql/types/security_report_summary_section_type.rb'
|
||||
- 'ee/app/graphql/types/timebox_metrics_type.rb'
|
||||
- 'ee/app/graphql/types/vulnerability/issue_link_type.rb'
|
||||
- 'ee/app/graphql/types/vulnerability_details/commit_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'
|
||||
|
||||
# WIP: See https://gitlab.com/gitlab-org/gitlab/-/issues/220040
|
||||
Rails/SaveBang:
|
||||
|
@ -1014,6 +1186,7 @@ Gitlab/NamespacedClass:
|
|||
- 'app/finders/joined_groups_finder.rb'
|
||||
- 'app/finders/keys_finder.rb'
|
||||
- 'app/finders/labels_finder.rb'
|
||||
- 'app/finders/lfs_pointers_finder.rb'
|
||||
- 'app/finders/license_template_finder.rb'
|
||||
- 'app/finders/members_finder.rb'
|
||||
- 'app/finders/merge_request_target_project_finder.rb'
|
||||
|
@ -1640,7 +1813,7 @@ Gitlab/NamespacedClass:
|
|||
- 'app/services/reset_project_cache_service.rb'
|
||||
- 'app/services/search_service.rb'
|
||||
- 'app/services/service_response.rb'
|
||||
- 'app/services/submit_usage_ping_service.rb'
|
||||
- 'app/services/service_ping/submit_service.rb'
|
||||
- 'app/services/system_hooks_service.rb'
|
||||
- 'app/services/task_list_toggle_service.rb'
|
||||
- 'app/services/todo_service.rb'
|
||||
|
@ -1667,6 +1840,7 @@ Gitlab/NamespacedClass:
|
|||
- 'app/uploaders/personal_file_uploader.rb'
|
||||
- 'app/validators/abstract_path_validator.rb'
|
||||
- 'app/validators/addressable_url_validator.rb'
|
||||
- 'app/validators/any_field_validator.rb'
|
||||
- 'app/validators/array_members_validator.rb'
|
||||
- 'app/validators/branch_filter_validator.rb'
|
||||
- 'app/validators/certificate_fingerprint_validator.rb'
|
||||
|
@ -2097,7 +2271,6 @@ Gitlab/NamespacedClass:
|
|||
- 'ee/app/workers/sync_security_reports_to_report_approval_rules_worker.rb'
|
||||
- 'ee/app/workers/update_all_mirrors_worker.rb'
|
||||
- 'ee/app/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker.rb'
|
||||
- 'ee/lib/generators/rails/geo_migration_generator.rb'
|
||||
- 'ee/lib/gitlab/path_locks_finder.rb'
|
||||
- 'ee/spec/support/elastic_query_name_inspector.rb'
|
||||
- 'ee/spec/support/ssh_keygen.rb'
|
||||
|
@ -2439,81 +2612,9 @@ Gitlab/FeatureAvailableUsage:
|
|||
- 'lib/api/helpers/related_resources_helpers.rb'
|
||||
- 'spec/models/concerns/featurable_spec.rb'
|
||||
|
||||
# WIP See https://gitlab.com/gitlab-org/gitlab/-/issues/327490
|
||||
Style/RegexpLiteralMixedPreserve:
|
||||
Exclude:
|
||||
- 'ee/app/models/status_page/project_setting.rb'
|
||||
- 'ee/app/presenters/vulnerability_presenter.rb'
|
||||
- 'ee/lib/api/geo_nodes.rb'
|
||||
- 'ee/lib/gitlab/vulnerabilities/standard_vulnerability.rb'
|
||||
- 'lib/api/invitations.rb'
|
||||
- 'lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb'
|
||||
- 'lib/gitlab/metrics/requests_rack_middleware.rb'
|
||||
- 'lib/gitlab/metrics/subscribers/active_record.rb'
|
||||
- 'lib/gitlab/regex.rb'
|
||||
- 'lib/gitlab/utils.rb'
|
||||
- 'lib/product_analytics/tracker.rb'
|
||||
- 'qa/qa/page/project/settings/advanced.rb'
|
||||
- 'qa/spec/service/docker_run/gitlab_runner_spec.rb'
|
||||
- 'rubocop/cop/gitlab/duplicate_spec_location.rb'
|
||||
- 'spec/features/clusters/cluster_health_dashboard_spec.rb'
|
||||
- 'spec/features/markdown/metrics_spec.rb'
|
||||
- 'spec/features/search/user_searches_for_code_spec.rb'
|
||||
- 'spec/features/snippets/embedded_snippet_spec.rb'
|
||||
- 'spec/helpers/diff_helper_spec.rb'
|
||||
- 'spec/helpers/releases_helper_spec.rb'
|
||||
- 'spec/lib/gitlab/ci/reports/test_case_spec.rb'
|
||||
- 'spec/lib/gitlab/consul/internal_spec.rb'
|
||||
- 'spec/lib/gitlab/import_export/shared_spec.rb'
|
||||
- 'spec/lib/gitlab/utils/usage_data_spec.rb'
|
||||
- 'spec/presenters/ci/build_runner_presenter_spec.rb'
|
||||
- 'spec/requests/api/projects_spec.rb'
|
||||
- 'spec/services/jira/requests/projects/list_service_spec.rb'
|
||||
- 'spec/support/capybara.rb'
|
||||
- 'spec/support/helpers/grafana_api_helpers.rb'
|
||||
- 'spec/support/helpers/query_recorder.rb'
|
||||
- 'spec/support/helpers/require_migration.rb'
|
||||
- 'spec/views/layouts/_head.html.haml_spec.rb'
|
||||
|
||||
# WIP see: https://gitlab.com/gitlab-org/gitlab/-/issues/335808
|
||||
Database/MultipleDatabases:
|
||||
Exclude:
|
||||
- 'app/mailers/previews/notify_preview.rb'
|
||||
- 'app/models/application_setting.rb'
|
||||
- 'app/models/internal_id.rb'
|
||||
- 'app/services/auto_merge/base_service.rb'
|
||||
- 'app/services/ci/delete_unit_tests_service.rb'
|
||||
- 'app/services/ci/unlock_artifacts_service.rb'
|
||||
- 'app/services/deployments/update_environment_service.rb'
|
||||
- 'app/services/design_management/copy_design_collection/copy_service.rb'
|
||||
- 'app/services/feature_flags/create_service.rb'
|
||||
- 'app/services/feature_flags/destroy_service.rb'
|
||||
- 'app/services/feature_flags/update_service.rb'
|
||||
- 'app/services/issuable/clone/base_service.rb'
|
||||
- 'app/services/issuable/common_system_notes_service.rb'
|
||||
- 'app/services/issuable/destroy_label_links_service.rb'
|
||||
- 'app/services/packages/create_dependency_service.rb'
|
||||
- 'app/services/packages/go/create_package_service.rb'
|
||||
- 'app/services/packages/npm/create_package_service.rb'
|
||||
- 'app/services/packages/terraform_module/create_package_service.rb'
|
||||
- 'app/services/projects/cleanup_service.rb'
|
||||
- 'app/services/projects/fetch_statistics_increment_service.rb'
|
||||
- 'app/services/releases/update_service.rb'
|
||||
- 'app/services/todos/destroy/destroyed_issuable_service.rb'
|
||||
- 'ee/app/models/dora/daily_metrics.rb'
|
||||
- 'ee/app/services/analytics/devops_adoption/enabled_namespaces/bulk_delete_service.rb'
|
||||
- 'ee/app/services/approval_rules/finalize_service.rb'
|
||||
- 'ee/app/services/approval_rules/project_rule_destroy_service.rb'
|
||||
- 'ee/app/services/app_sec/dast/site_profiles/create_service.rb'
|
||||
- 'ee/app/services/app_sec/dast/site_profiles/update_service.rb'
|
||||
- 'ee/app/services/ci/minutes/update_build_minutes_service.rb'
|
||||
- 'ee/app/services/ee/issuable/common_system_notes_service.rb'
|
||||
- 'ee/app/services/group_saml/group_managed_accounts/transfer_membership_service.rb'
|
||||
- 'ee/app/services/group_saml/sign_up_service.rb'
|
||||
- 'ee/app/services/iterations/roll_over_issues_service.rb'
|
||||
- 'ee/app/services/security/store_scan_service.rb'
|
||||
- 'ee/app/services/timebox_report_service.rb'
|
||||
- 'ee/app/services/vulnerability_feedback/create_service.rb'
|
||||
- 'ee/lib/ee/gitlab/checks/push_rule_check.rb'
|
||||
- 'ee/lib/ee/gitlab/database.rb'
|
||||
- 'ee/lib/gitlab/geo/database_tasks.rb'
|
||||
- 'ee/lib/gitlab/geo/geo_tasks.rb'
|
||||
|
@ -2527,16 +2628,8 @@ Database/MultipleDatabases:
|
|||
- 'ee/spec/services/ee/merge_requests/update_service_spec.rb'
|
||||
- 'lib/backup/database.rb'
|
||||
- 'lib/after_commit_queue.rb'
|
||||
- 'lib/api/rubygem_packages.rb'
|
||||
- 'lib/backup/manager.rb'
|
||||
- 'lib/gitlab/analytics/cycle_analytics/stage_query_helpers.rb'
|
||||
- 'lib/gitlab/chaos.rb'
|
||||
- 'lib/gitlab/current_settings.rb'
|
||||
- 'lib/gitlab/database/batch_count.rb'
|
||||
- 'lib/gitlab/database/batch_counter.rb'
|
||||
- 'lib/gitlab/database/count/reltuples_count_strategy.rb'
|
||||
- 'lib/gitlab/database/count/tablesample_count_strategy.rb'
|
||||
- 'lib/gitlab/database/grant.rb'
|
||||
- 'lib/gitlab/database/load_balancing/load_balancer.rb'
|
||||
- 'lib/gitlab/database/load_balancing.rb'
|
||||
- 'lib/gitlab/database/load_balancing/sticking.rb'
|
||||
|
@ -2558,7 +2651,6 @@ Database/MultipleDatabases:
|
|||
- 'lib/gitlab/database/schema_cache_with_renamed_table.rb'
|
||||
- 'lib/gitlab/database/schema_migrations/context.rb'
|
||||
- 'lib/gitlab/database/schema_version_files.rb'
|
||||
- 'lib/gitlab/database/similarity_score.rb'
|
||||
- 'lib/gitlab/database/unidirectional_copy_trigger.rb'
|
||||
- 'lib/gitlab/database/with_lock_retries.rb'
|
||||
- 'lib/gitlab/gitlab_import/importer.rb'
|
||||
|
@ -2567,46 +2659,24 @@ Database/MultipleDatabases:
|
|||
- 'lib/gitlab/import_export/relation_tree_restorer.rb'
|
||||
- 'lib/gitlab/legacy_github_import/importer.rb'
|
||||
- 'lib/gitlab/metrics/samplers/database_sampler.rb'
|
||||
- 'lib/gitlab/optimistic_locking.rb'
|
||||
- 'lib/gitlab/otp_key_rotator.rb'
|
||||
- 'lib/gitlab/profiler.rb'
|
||||
- 'lib/gitlab/seeder.rb'
|
||||
- 'lib/gitlab/sherlock/query.rb'
|
||||
- 'lib/gitlab/sql/glob.rb'
|
||||
- 'lib/gitlab/sql/set_operator.rb'
|
||||
- 'lib/system_check/orphans/repository_check.rb'
|
||||
- 'spec/db/schema_spec.rb'
|
||||
- 'spec/features/admin/dashboard_spec.rb'
|
||||
- 'spec/initializers/database_config_spec.rb'
|
||||
- 'spec/initializers/lograge_spec.rb'
|
||||
- 'spec/lib/backup/manager_spec.rb'
|
||||
- 'spec/lib/gitlab/current_settings_spec.rb'
|
||||
- 'spec/lib/gitlab/database_spec.rb'
|
||||
- 'spec/lib/gitlab/import_export/fast_hash_serializer_spec.rb'
|
||||
- 'spec/lib/gitlab/import_export/project/tree_saver_spec.rb'
|
||||
- 'spec/lib/gitlab/metrics/subscribers/active_record_spec.rb'
|
||||
- 'spec/lib/gitlab/pagination/keyset/order_spec.rb'
|
||||
- 'spec/lib/gitlab/profiler_spec.rb'
|
||||
- 'spec/lib/gitlab/query_limiting/active_support_subscriber_spec.rb'
|
||||
- 'spec/lib/gitlab/sidekiq_logging/structured_logger_spec.rb'
|
||||
- 'spec/lib/gitlab/sql/cte_spec.rb'
|
||||
- 'spec/lib/gitlab/sql/glob_spec.rb'
|
||||
- 'spec/lib/gitlab/sql/recursive_cte_spec.rb'
|
||||
- 'spec/lib/gitlab/usage_data_metrics_spec.rb'
|
||||
- 'spec/lib/gitlab/usage_data_queries_spec.rb'
|
||||
- 'spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/constraints_spec.rb'
|
||||
- 'spec/lib/gitlab/usage/metrics/names_suggestions/relation_parsers/joins_spec.rb'
|
||||
- 'spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb'
|
||||
- 'spec/lib/gitlab/utils/usage_data_spec.rb'
|
||||
- 'spec/models/application_setting_spec.rb'
|
||||
- 'spec/models/concerns/case_sensitivity_spec.rb'
|
||||
- 'spec/models/concerns/sortable_spec.rb'
|
||||
- 'spec/models/concerns/where_composite_spec.rb'
|
||||
- 'spec/models/experiment_spec.rb'
|
||||
- 'spec/models/internal_id_spec.rb'
|
||||
- 'spec/models/project_feature_usage_spec.rb'
|
||||
- 'spec/models/users_statistics_spec.rb'
|
||||
- 'spec/requests/api/statistics_spec.rb'
|
||||
- 'spec/services/users/activity_service_spec.rb'
|
||||
- 'spec/support/caching.rb'
|
||||
- 'spec/support/gitlab/usage/metrics_instrumentation_shared_examples.rb'
|
||||
|
@ -2618,399 +2688,3 @@ Database/MultipleDatabases:
|
|||
- 'spec/support/helpers/usage_data_helpers.rb'
|
||||
- 'spec/tasks/gitlab/backup_rake_spec.rb'
|
||||
- 'spec/tasks/gitlab/db_rake_spec.rb'
|
||||
- 'spec/workers/analytics/usage_trends/counter_job_worker_spec.rb'
|
||||
- 'spec/workers/users/create_statistics_worker_spec.rb'
|
||||
|
||||
# See https://gitlab.com/gitlab-org/gitlab/-/issues/335170
|
||||
Cop/WorkerDataConsistency:
|
||||
Exclude:
|
||||
- 'app/workers/admin_email_worker.rb'
|
||||
- 'app/workers/analytics/usage_trends/count_job_trigger_worker.rb'
|
||||
- 'app/workers/analytics/usage_trends/counter_job_worker.rb'
|
||||
- 'app/workers/approve_blocked_pending_approval_users_worker.rb'
|
||||
- 'app/workers/archive_trace_worker.rb'
|
||||
- 'app/workers/authorized_keys_worker.rb'
|
||||
- 'app/workers/authorized_project_update/periodic_recalculate_worker.rb'
|
||||
- 'app/workers/authorized_project_update/project_create_worker.rb'
|
||||
- 'app/workers/authorized_project_update/project_group_link_create_worker.rb'
|
||||
- 'app/workers/authorized_project_update/project_recalculate_worker.rb'
|
||||
- 'app/workers/authorized_project_update/user_refresh_from_replica_worker.rb'
|
||||
- 'app/workers/authorized_projects_worker.rb'
|
||||
- 'app/workers/auto_devops/disable_worker.rb'
|
||||
- 'app/workers/auto_merge_process_worker.rb'
|
||||
- 'app/workers/background_migration_worker.rb'
|
||||
- 'app/workers/build_finished_worker.rb'
|
||||
- 'app/workers/build_success_worker.rb'
|
||||
- 'app/workers/bulk_import_worker.rb'
|
||||
- 'app/workers/bulk_imports/entity_worker.rb'
|
||||
- 'app/workers/bulk_imports/export_request_worker.rb'
|
||||
- 'app/workers/bulk_imports/pipeline_worker.rb'
|
||||
- 'app/workers/bulk_imports/relation_export_worker.rb'
|
||||
- 'app/workers/chaos/cpu_spin_worker.rb'
|
||||
- 'app/workers/chaos/db_spin_worker.rb'
|
||||
- 'app/workers/chaos/kill_worker.rb'
|
||||
- 'app/workers/chaos/leak_mem_worker.rb'
|
||||
- 'app/workers/chaos/sleep_worker.rb'
|
||||
- 'app/workers/chat_notification_worker.rb'
|
||||
- 'app/workers/ci/archive_trace_worker.rb'
|
||||
- 'app/workers/ci/archive_traces_cron_worker.rb'
|
||||
- 'app/workers/ci/build_finished_worker.rb'
|
||||
- 'app/workers/ci/build_prepare_worker.rb'
|
||||
- 'app/workers/ci/build_schedule_worker.rb'
|
||||
- 'app/workers/ci/build_trace_chunk_flush_worker.rb'
|
||||
- 'app/workers/ci/daily_build_group_report_results_worker.rb'
|
||||
- 'app/workers/ci/delete_objects_worker.rb'
|
||||
- 'app/workers/ci/delete_unit_tests_worker.rb'
|
||||
- 'app/workers/ci/drop_pipeline_worker.rb'
|
||||
- 'app/workers/ci/initial_pipeline_process_worker.rb'
|
||||
- 'app/workers/ci/merge_requests/add_todo_when_build_fails_worker.rb'
|
||||
- 'app/workers/ci/pipeline_artifacts/coverage_report_worker.rb'
|
||||
- 'app/workers/ci/pipeline_artifacts/create_quality_report_worker.rb'
|
||||
- 'app/workers/ci/pipeline_artifacts/expire_artifacts_worker.rb'
|
||||
- 'app/workers/ci/pipeline_success_unlock_artifacts_worker.rb'
|
||||
- 'app/workers/ci/ref_delete_unlock_artifacts_worker.rb'
|
||||
- 'app/workers/ci/resource_groups/assign_resource_from_resource_group_worker.rb'
|
||||
- 'app/workers/ci/schedule_delete_objects_cron_worker.rb'
|
||||
- 'app/workers/ci/test_failure_history_worker.rb'
|
||||
- 'app/workers/ci_platform_metrics_update_cron_worker.rb'
|
||||
- 'app/workers/cleanup_container_repository_worker.rb'
|
||||
- 'app/workers/cluster_configure_istio_worker.rb'
|
||||
- 'app/workers/cluster_install_app_worker.rb'
|
||||
- 'app/workers/cluster_patch_app_worker.rb'
|
||||
- 'app/workers/cluster_provision_worker.rb'
|
||||
- 'app/workers/cluster_update_app_worker.rb'
|
||||
- 'app/workers/cluster_upgrade_app_worker.rb'
|
||||
- 'app/workers/cluster_wait_for_app_installation_worker.rb'
|
||||
- 'app/workers/cluster_wait_for_app_update_worker.rb'
|
||||
- 'app/workers/cluster_wait_for_ingress_ip_address_worker.rb'
|
||||
- 'app/workers/clusters/applications/activate_service_worker.rb'
|
||||
- 'app/workers/clusters/applications/check_prometheus_health_worker.rb'
|
||||
- 'app/workers/clusters/applications/deactivate_service_worker.rb'
|
||||
- 'app/workers/clusters/applications/uninstall_worker.rb'
|
||||
- 'app/workers/clusters/applications/wait_for_uninstall_app_worker.rb'
|
||||
- 'app/workers/container_expiration_policies/cleanup_container_repository_worker.rb'
|
||||
- 'app/workers/container_expiration_policy_worker.rb'
|
||||
- 'app/workers/create_commit_signature_worker.rb'
|
||||
- 'app/workers/create_note_diff_file_worker.rb'
|
||||
- 'app/workers/create_pipeline_worker.rb'
|
||||
- 'app/workers/database/batched_background_migration_worker.rb'
|
||||
- 'app/workers/database/partition_management_worker.rb'
|
||||
- 'app/workers/delete_container_repository_worker.rb'
|
||||
- 'app/workers/delete_diff_files_worker.rb'
|
||||
- 'app/workers/delete_merged_branches_worker.rb'
|
||||
- 'app/workers/delete_stored_files_worker.rb'
|
||||
- 'app/workers/delete_user_worker.rb'
|
||||
- 'app/workers/deployments/drop_older_deployments_worker.rb'
|
||||
- 'app/workers/deployments/finished_worker.rb'
|
||||
- 'app/workers/deployments/forward_deployment_worker.rb'
|
||||
- 'app/workers/deployments/hooks_worker.rb'
|
||||
- 'app/workers/deployments/link_merge_request_worker.rb'
|
||||
- 'app/workers/deployments/success_worker.rb'
|
||||
- 'app/workers/deployments/update_environment_worker.rb'
|
||||
- 'app/workers/design_management/copy_design_collection_worker.rb'
|
||||
- 'app/workers/design_management/new_version_worker.rb'
|
||||
- 'app/workers/destroy_pages_deployments_worker.rb'
|
||||
- 'app/workers/detect_repository_languages_worker.rb'
|
||||
- 'app/workers/disallow_two_factor_for_group_worker.rb'
|
||||
- 'app/workers/disallow_two_factor_for_subgroups_worker.rb'
|
||||
- 'app/workers/email_receiver_worker.rb'
|
||||
- 'app/workers/emails_on_push_worker.rb'
|
||||
- 'app/workers/environments/auto_stop_cron_worker.rb'
|
||||
- 'app/workers/environments/canary_ingress/update_worker.rb'
|
||||
- 'app/workers/error_tracking_issue_link_worker.rb'
|
||||
- 'app/workers/experiments/record_conversion_event_worker.rb'
|
||||
- 'app/workers/expire_build_artifacts_worker.rb'
|
||||
- 'app/workers/expire_build_instance_artifacts_worker.rb'
|
||||
- 'app/workers/expire_job_cache_worker.rb'
|
||||
- 'app/workers/export_csv_worker.rb'
|
||||
- 'app/workers/file_hook_worker.rb'
|
||||
- 'app/workers/flush_counter_increments_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/advance_stage_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/refresh_import_jid_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/stage/finish_import_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/stage/import_base_data_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/stage/import_issues_and_diff_notes_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/stage/import_lfs_objects_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/stage/import_notes_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/stage/import_pull_requests_merged_by_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/stage/import_pull_requests_reviews_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/stage/import_pull_requests_worker.rb'
|
||||
- 'app/workers/gitlab/github_import/stage/import_repository_worker.rb'
|
||||
- 'app/workers/gitlab/jira_import/advance_stage_worker.rb'
|
||||
- 'app/workers/gitlab/jira_import/import_issue_worker.rb'
|
||||
- 'app/workers/gitlab/jira_import/stage/start_import_worker.rb'
|
||||
- 'app/workers/gitlab/phabricator_import/import_tasks_worker.rb'
|
||||
- 'app/workers/gitlab_performance_bar_stats_worker.rb'
|
||||
- 'app/workers/gitlab_service_ping_worker.rb'
|
||||
- 'app/workers/gitlab_shell_worker.rb'
|
||||
- 'app/workers/group_destroy_worker.rb'
|
||||
- 'app/workers/group_export_worker.rb'
|
||||
- 'app/workers/group_import_worker.rb'
|
||||
- 'app/workers/hashed_storage/migrator_worker.rb'
|
||||
- 'app/workers/hashed_storage/project_migrate_worker.rb'
|
||||
- 'app/workers/hashed_storage/project_rollback_worker.rb'
|
||||
- 'app/workers/hashed_storage/rollbacker_worker.rb'
|
||||
- 'app/workers/import_export_project_cleanup_worker.rb'
|
||||
- 'app/workers/import_issues_csv_worker.rb'
|
||||
- 'app/workers/incident_management/add_severity_system_note_worker.rb'
|
||||
- 'app/workers/incident_management/pager_duty/process_incident_worker.rb'
|
||||
- 'app/workers/incident_management/process_alert_worker_v2.rb'
|
||||
- 'app/workers/invalid_gpg_signature_update_worker.rb'
|
||||
- 'app/workers/irker_worker.rb'
|
||||
- 'app/workers/issuable/label_links_destroy_worker.rb'
|
||||
- 'app/workers/issuable_export_csv_worker.rb'
|
||||
- 'app/workers/issuables/clear_groups_issue_counter_worker.rb'
|
||||
- 'app/workers/issue_due_scheduler_worker.rb'
|
||||
- 'app/workers/issue_placement_worker.rb'
|
||||
- 'app/workers/issue_rebalancing_worker.rb'
|
||||
- 'app/workers/jira_connect/forward_event_worker.rb'
|
||||
- 'app/workers/jira_connect/sync_branch_worker.rb'
|
||||
- 'app/workers/jira_connect/sync_builds_worker.rb'
|
||||
- 'app/workers/jira_connect/sync_deployments_worker.rb'
|
||||
- 'app/workers/jira_connect/sync_feature_flags_worker.rb'
|
||||
- 'app/workers/jira_connect/sync_merge_request_worker.rb'
|
||||
- 'app/workers/jira_connect/sync_project_worker.rb'
|
||||
- 'app/workers/mail_scheduler/issue_due_worker.rb'
|
||||
- 'app/workers/mail_scheduler/notification_service_worker.rb'
|
||||
- 'app/workers/member_invitation_reminder_emails_worker.rb'
|
||||
- 'app/workers/members_destroyer/unassign_issuables_worker.rb'
|
||||
- 'app/workers/merge_request_cleanup_refs_worker.rb'
|
||||
- 'app/workers/merge_request_mergeability_check_worker.rb'
|
||||
- 'app/workers/merge_requests/create_pipeline_worker.rb'
|
||||
- 'app/workers/merge_requests/delete_source_branch_worker.rb'
|
||||
- 'app/workers/merge_requests/handle_assignees_change_worker.rb'
|
||||
- 'app/workers/merge_requests/resolve_todos_worker.rb'
|
||||
- 'app/workers/merge_worker.rb'
|
||||
- 'app/workers/metrics/dashboard/prune_old_annotations_worker.rb'
|
||||
- 'app/workers/metrics/dashboard/schedule_annotations_prune_worker.rb'
|
||||
- 'app/workers/metrics/dashboard/sync_dashboards_worker.rb'
|
||||
- 'app/workers/migrate_external_diffs_worker.rb'
|
||||
- 'app/workers/namespaceless_project_destroy_worker.rb'
|
||||
- 'app/workers/namespaces/in_product_marketing_emails_worker.rb'
|
||||
- 'app/workers/namespaces/onboarding_issue_created_worker.rb'
|
||||
- 'app/workers/namespaces/onboarding_pipeline_created_worker.rb'
|
||||
- 'app/workers/namespaces/onboarding_progress_worker.rb'
|
||||
- 'app/workers/namespaces/onboarding_user_added_worker.rb'
|
||||
- 'app/workers/namespaces/prune_aggregation_schedules_worker.rb'
|
||||
- 'app/workers/namespaces/root_statistics_worker.rb'
|
||||
- 'app/workers/namespaces/schedule_aggregation_worker.rb'
|
||||
- 'app/workers/new_issue_worker.rb'
|
||||
- 'app/workers/new_merge_request_worker.rb'
|
||||
- 'app/workers/new_note_worker.rb'
|
||||
- 'app/workers/object_pool/create_worker.rb'
|
||||
- 'app/workers/object_pool/destroy_worker.rb'
|
||||
- 'app/workers/object_pool/join_worker.rb'
|
||||
- 'app/workers/object_pool/schedule_join_worker.rb'
|
||||
- 'app/workers/object_storage/background_move_worker.rb'
|
||||
- 'app/workers/object_storage/migrate_uploads_worker.rb'
|
||||
- 'app/workers/packages/composer/cache_cleanup_worker.rb'
|
||||
- 'app/workers/packages/composer/cache_update_worker.rb'
|
||||
- 'app/workers/packages/debian/generate_distribution_worker.rb'
|
||||
- 'app/workers/packages/debian/process_changes_worker.rb'
|
||||
- 'app/workers/packages/go/sync_packages_worker.rb'
|
||||
- 'app/workers/packages/helm/extraction_worker.rb'
|
||||
- 'app/workers/packages/maven/metadata/sync_worker.rb'
|
||||
- 'app/workers/packages/nuget/extraction_worker.rb'
|
||||
- 'app/workers/packages/rubygems/extraction_worker.rb'
|
||||
- 'app/workers/pages_domain_removal_cron_worker.rb'
|
||||
- 'app/workers/pages_domain_ssl_renewal_cron_worker.rb'
|
||||
- 'app/workers/pages_domain_ssl_renewal_worker.rb'
|
||||
- 'app/workers/pages_domain_verification_cron_worker.rb'
|
||||
- 'app/workers/pages_domain_verification_worker.rb'
|
||||
- 'app/workers/pages_remove_worker.rb'
|
||||
- 'app/workers/pages_transfer_worker.rb'
|
||||
- 'app/workers/pages_update_configuration_worker.rb'
|
||||
- 'app/workers/pages_worker.rb'
|
||||
- 'app/workers/partition_creation_worker.rb'
|
||||
- 'app/workers/personal_access_tokens/expired_notification_worker.rb'
|
||||
- 'app/workers/personal_access_tokens/expiring_worker.rb'
|
||||
- 'app/workers/pipeline_metrics_worker.rb'
|
||||
- 'app/workers/pipeline_notification_worker.rb'
|
||||
- 'app/workers/pipeline_process_worker.rb'
|
||||
- 'app/workers/pipeline_schedule_worker.rb'
|
||||
- 'app/workers/post_receive.rb'
|
||||
- 'app/workers/process_commit_worker.rb'
|
||||
- 'app/workers/project_cache_worker.rb'
|
||||
- 'app/workers/project_daily_statistics_worker.rb'
|
||||
- 'app/workers/project_destroy_worker.rb'
|
||||
- 'app/workers/project_export_worker.rb'
|
||||
- 'app/workers/project_service_worker.rb'
|
||||
- 'app/workers/projects/post_creation_worker.rb'
|
||||
- 'app/workers/projects/schedule_bulk_repository_shard_moves_worker.rb'
|
||||
- 'app/workers/prometheus/create_default_alerts_worker.rb'
|
||||
- 'app/workers/propagate_integration_group_worker.rb'
|
||||
- 'app/workers/propagate_integration_inherit_descendant_worker.rb'
|
||||
- 'app/workers/propagate_integration_inherit_worker.rb'
|
||||
- 'app/workers/propagate_integration_project_worker.rb'
|
||||
- 'app/workers/propagate_integration_worker.rb'
|
||||
- 'app/workers/propagate_service_template_worker.rb'
|
||||
- 'app/workers/prune_old_events_worker.rb'
|
||||
- 'app/workers/purge_dependency_proxy_cache_worker.rb'
|
||||
- 'app/workers/rebase_worker.rb'
|
||||
- 'app/workers/releases/create_evidence_worker.rb'
|
||||
- 'app/workers/releases/manage_evidence_worker.rb'
|
||||
- 'app/workers/remote_mirror_notification_worker.rb'
|
||||
- 'app/workers/remove_expired_group_links_worker.rb'
|
||||
- 'app/workers/remove_expired_members_worker.rb'
|
||||
- 'app/workers/remove_unaccepted_member_invites_worker.rb'
|
||||
- 'app/workers/remove_unreferenced_lfs_objects_worker.rb'
|
||||
- 'app/workers/repository_archive_cache_worker.rb'
|
||||
- 'app/workers/repository_check/batch_worker.rb'
|
||||
- 'app/workers/repository_check/clear_worker.rb'
|
||||
- 'app/workers/repository_check/dispatch_worker.rb'
|
||||
- 'app/workers/repository_check/single_repository_worker.rb'
|
||||
- 'app/workers/repository_cleanup_worker.rb'
|
||||
- 'app/workers/repository_fork_worker.rb'
|
||||
- 'app/workers/repository_import_worker.rb'
|
||||
- 'app/workers/repository_remove_remote_worker.rb'
|
||||
- 'app/workers/repository_update_remote_mirror_worker.rb'
|
||||
- 'app/workers/requests_profiles_worker.rb'
|
||||
- 'app/workers/run_pipeline_schedule_worker.rb'
|
||||
- 'app/workers/schedule_merge_request_cleanup_refs_worker.rb'
|
||||
- 'app/workers/schedule_migrate_external_diffs_worker.rb'
|
||||
- 'app/workers/self_monitoring_project_create_worker.rb'
|
||||
- 'app/workers/self_monitoring_project_delete_worker.rb'
|
||||
- 'app/workers/service_desk_email_receiver_worker.rb'
|
||||
- 'app/workers/snippets/schedule_bulk_repository_shard_moves_worker.rb'
|
||||
- 'app/workers/ssh_keys/expired_notification_worker.rb'
|
||||
- 'app/workers/ssh_keys/expiring_soon_notification_worker.rb'
|
||||
- 'app/workers/stage_update_worker.rb'
|
||||
- 'app/workers/stuck_ci_jobs_worker.rb'
|
||||
- 'app/workers/stuck_export_jobs_worker.rb'
|
||||
- 'app/workers/stuck_merge_jobs_worker.rb'
|
||||
- 'app/workers/system_hook_push_worker.rb'
|
||||
- 'app/workers/todos_destroyer/confidential_issue_worker.rb'
|
||||
- 'app/workers/todos_destroyer/destroyed_issuable_worker.rb'
|
||||
- 'app/workers/todos_destroyer/entity_leave_worker.rb'
|
||||
- 'app/workers/todos_destroyer/group_private_worker.rb'
|
||||
- 'app/workers/todos_destroyer/private_features_worker.rb'
|
||||
- 'app/workers/todos_destroyer/project_private_worker.rb'
|
||||
- 'app/workers/trending_projects_worker.rb'
|
||||
- 'app/workers/update_container_registry_info_worker.rb'
|
||||
- 'app/workers/update_external_pull_requests_worker.rb'
|
||||
- 'app/workers/update_head_pipeline_for_merge_request_worker.rb'
|
||||
- 'app/workers/update_highest_role_worker.rb'
|
||||
- 'app/workers/update_merge_requests_worker.rb'
|
||||
- 'app/workers/update_project_statistics_worker.rb'
|
||||
- 'app/workers/upload_checksum_worker.rb'
|
||||
- 'app/workers/user_status_cleanup/batch_worker.rb'
|
||||
- 'app/workers/users/create_statistics_worker.rb'
|
||||
- 'app/workers/users/deactivate_dormant_users_worker.rb'
|
||||
- 'app/workers/wait_for_cluster_creation_worker.rb'
|
||||
- 'app/workers/web_hooks/destroy_worker.rb'
|
||||
- 'app/workers/web_hooks/log_execution_worker.rb'
|
||||
- 'app/workers/x509_certificate_revoke_worker.rb'
|
||||
- 'app/workers/x509_issuer_crl_check_worker.rb'
|
||||
- 'ee/app/workers/active_user_count_threshold_worker.rb'
|
||||
- 'ee/app/workers/adjourned_group_deletion_worker.rb'
|
||||
- 'ee/app/workers/adjourned_project_deletion_worker.rb'
|
||||
- 'ee/app/workers/adjourned_projects_deletion_cron_worker.rb'
|
||||
- 'ee/app/workers/admin_emails_worker.rb'
|
||||
- 'ee/app/workers/analytics/code_review_metrics_worker.rb'
|
||||
- 'ee/app/workers/analytics/devops_adoption/create_all_snapshots_worker.rb'
|
||||
- 'ee/app/workers/analytics/devops_adoption/create_snapshot_worker.rb'
|
||||
- 'ee/app/workers/approval_rules/external_approval_rule_payload_worker.rb'
|
||||
- 'ee/app/workers/ci/batch_reset_minutes_worker.rb'
|
||||
- 'ee/app/workers/ci/sync_reports_to_report_approval_rules_worker.rb'
|
||||
- 'ee/app/workers/clear_shared_runners_minutes_worker.rb'
|
||||
- 'ee/app/workers/create_github_webhook_worker.rb'
|
||||
- 'ee/app/workers/dast_site_validation_worker.rb'
|
||||
- 'ee/app/workers/deployments/auto_rollback_worker.rb'
|
||||
- 'ee/app/workers/dora/daily_metrics/refresh_worker.rb'
|
||||
- 'ee/app/workers/dora/daily_metrics/refresh_worker.rb'
|
||||
- 'ee/app/workers/elastic/migration_worker.rb'
|
||||
- 'ee/app/workers/elastic_association_indexer_worker.rb'
|
||||
- 'ee/app/workers/elastic_cluster_reindexing_cron_worker.rb'
|
||||
- 'ee/app/workers/elastic_commit_indexer_worker.rb'
|
||||
- 'ee/app/workers/elastic_delete_project_worker.rb'
|
||||
- 'ee/app/workers/elastic_full_index_worker.rb'
|
||||
- 'ee/app/workers/elastic_indexing_control_worker.rb'
|
||||
- 'ee/app/workers/elastic_namespace_indexer_worker.rb'
|
||||
- 'ee/app/workers/elastic_namespace_rollout_worker.rb'
|
||||
- 'ee/app/workers/elastic_remove_expired_namespace_subscriptions_from_index_cron_worker.rb'
|
||||
- 'ee/app/workers/epics/new_epic_issue_worker.rb'
|
||||
- 'ee/app/workers/epics/update_epics_dates_worker.rb'
|
||||
- 'ee/app/workers/geo/batch/project_registry_scheduler_worker.rb'
|
||||
- 'ee/app/workers/geo/batch/project_registry_worker.rb'
|
||||
- 'ee/app/workers/geo/container_repository_sync_worker.rb'
|
||||
- 'ee/app/workers/geo/design_repository_sync_worker.rb'
|
||||
- 'ee/app/workers/geo/destroy_worker.rb'
|
||||
- 'ee/app/workers/geo/event_worker.rb'
|
||||
- 'ee/app/workers/geo/file_download_worker.rb'
|
||||
- 'ee/app/workers/geo/file_registry_removal_worker.rb'
|
||||
- 'ee/app/workers/geo/file_removal_worker.rb'
|
||||
- 'ee/app/workers/geo/hashed_storage_attachments_migration_worker.rb'
|
||||
- 'ee/app/workers/geo/hashed_storage_migration_worker.rb'
|
||||
- 'ee/app/workers/geo/metrics_update_worker.rb'
|
||||
- 'ee/app/workers/geo/project_sync_worker.rb'
|
||||
- 'ee/app/workers/geo/prune_event_log_worker.rb'
|
||||
- 'ee/app/workers/geo/rename_repository_worker.rb'
|
||||
- 'ee/app/workers/geo/repositories_clean_up_worker.rb'
|
||||
- 'ee/app/workers/geo/repository_cleanup_worker.rb'
|
||||
- 'ee/app/workers/geo/repository_verification/primary/single_worker.rb'
|
||||
- 'ee/app/workers/geo/repository_verification/secondary/single_worker.rb'
|
||||
- 'ee/app/workers/geo/reverification_batch_worker.rb'
|
||||
- 'ee/app/workers/geo/scheduler/per_shard_scheduler_worker.rb'
|
||||
- 'ee/app/workers/geo/scheduler/scheduler_worker.rb'
|
||||
- 'ee/app/workers/geo/secondary/registry_consistency_worker.rb'
|
||||
- 'ee/app/workers/geo/secondary_usage_data_cron_worker.rb'
|
||||
- 'ee/app/workers/geo/sidekiq_cron_config_worker.rb'
|
||||
- 'ee/app/workers/geo/sync_timeout_cron_worker.rb'
|
||||
- 'ee/app/workers/geo/verification_batch_worker.rb'
|
||||
- 'ee/app/workers/geo/verification_cron_worker.rb'
|
||||
- 'ee/app/workers/geo/verification_timeout_worker.rb'
|
||||
- 'ee/app/workers/geo/verification_worker.rb'
|
||||
- 'ee/app/workers/geo_repository_destroy_worker.rb'
|
||||
- 'ee/app/workers/group_saml_group_sync_worker.rb'
|
||||
- 'ee/app/workers/groups/schedule_bulk_repository_shard_moves_worker.rb'
|
||||
- 'ee/app/workers/groups/update_statistics_worker.rb'
|
||||
- 'ee/app/workers/historical_data_worker.rb'
|
||||
- 'ee/app/workers/import_software_licenses_worker.rb'
|
||||
- 'ee/app/workers/incident_management/apply_incident_sla_exceeded_label_worker.rb'
|
||||
- 'ee/app/workers/incident_management/incident_sla_exceeded_check_worker.rb'
|
||||
- 'ee/app/workers/incident_management/oncall_rotations/persist_all_rotations_shifts_job.rb'
|
||||
- 'ee/app/workers/incident_management/oncall_rotations/persist_shifts_job.rb'
|
||||
- 'ee/app/workers/incident_management/pending_escalations/alert_check_worker.rb'
|
||||
- 'ee/app/workers/incident_management/pending_escalations/alert_create_worker.rb'
|
||||
- 'ee/app/workers/incident_management/pending_escalations/schedule_check_cron_worker.rb'
|
||||
- 'ee/app/workers/iterations/cadences/create_iterations_worker.rb'
|
||||
- 'ee/app/workers/iterations/cadences/schedule_create_iterations_worker.rb'
|
||||
- 'ee/app/workers/iterations/roll_over_issues_worker.rb'
|
||||
- 'ee/app/workers/iterations_update_status_worker.rb'
|
||||
- 'ee/app/workers/ldap_all_groups_sync_worker.rb'
|
||||
- 'ee/app/workers/ldap_group_sync_worker.rb'
|
||||
- 'ee/app/workers/ldap_sync_worker.rb'
|
||||
- 'ee/app/workers/merge_request_reset_approvals_worker.rb'
|
||||
- 'ee/app/workers/merge_requests/sync_code_owner_approval_rules_worker.rb'
|
||||
- 'ee/app/workers/merge_trains/refresh_worker.rb'
|
||||
- 'ee/app/workers/network_policy_metrics_worker.rb'
|
||||
- 'ee/app/workers/new_epic_worker.rb'
|
||||
- 'ee/app/workers/personal_access_tokens/groups/policy_worker.rb'
|
||||
- 'ee/app/workers/personal_access_tokens/instance/policy_worker.rb'
|
||||
- 'ee/app/workers/project_import_schedule_worker.rb'
|
||||
- 'ee/app/workers/pseudonymizer_worker.rb'
|
||||
- 'ee/app/workers/refresh_license_compliance_checks_worker.rb'
|
||||
- 'ee/app/workers/repository_push_audit_event_worker.rb'
|
||||
- 'ee/app/workers/repository_update_mirror_worker.rb'
|
||||
- 'ee/app/workers/requirements_management/import_requirements_csv_worker.rb'
|
||||
- 'ee/app/workers/requirements_management/process_requirements_reports_worker.rb'
|
||||
- 'ee/app/workers/scan_security_report_secrets_worker.rb'
|
||||
- 'ee/app/workers/security/auto_fix_worker.rb'
|
||||
- 'ee/app/workers/security/create_orchestration_policy_worker.rb'
|
||||
- 'ee/app/workers/security/orchestration_policy_rule_schedule_worker.rb'
|
||||
- 'ee/app/workers/security/store_scans_worker.rb'
|
||||
- 'ee/app/workers/security/track_secure_scans_worker.rb'
|
||||
- 'ee/app/workers/set_user_status_based_on_user_cap_setting_worker.rb'
|
||||
- 'ee/app/workers/status_page/publish_worker.rb'
|
||||
- 'ee/app/workers/store_security_reports_worker.rb'
|
||||
- 'ee/app/workers/store_security_scans_worker.rb'
|
||||
- 'ee/app/workers/sync_seat_link_request_worker.rb'
|
||||
- 'ee/app/workers/sync_seat_link_worker.rb'
|
||||
- 'ee/app/workers/todos_destroyer/confidential_epic_worker.rb'
|
||||
- 'ee/app/workers/update_all_mirrors_worker.rb'
|
||||
- 'ee/app/workers/update_max_seats_used_for_gitlab_com_subscriptions_worker.rb'
|
||||
- 'ee/app/workers/vulnerabilities/historical_statistics/deletion_worker.rb'
|
||||
- 'ee/app/workers/vulnerabilities/statistics/adjustment_worker.rb'
|
||||
- 'ee/app/workers/vulnerabilities/statistics/schedule_worker.rb'
|
||||
- 'ee/app/workers/vulnerability_exports/export_deletion_worker.rb'
|
||||
- 'ee/app/workers/vulnerability_exports/export_worker.rb'
|
||||
|
|
717
CHANGELOG.md
|
@ -2,63 +2,629 @@
|
|||
documentation](doc/development/changelog.md) for instructions on adding your own
|
||||
entry.
|
||||
|
||||
## 14.1.7 (2021-09-30)
|
||||
## 14.2.5 (2021-09-30)
|
||||
|
||||
### Security (28 changes)
|
||||
|
||||
- [Require password param for 2FA changes](gitlab-org/security/gitlab@4e16401a77264ef3127f0bb314fa0abab11216c7) ([merge request](gitlab-org/security/gitlab!1816))
|
||||
- [Fix permissions check on project members import](gitlab-org/security/gitlab@be54b3f4890fa89d58cb02be79c65025f606bd6c) ([merge request](gitlab-org/security/gitlab!1860))
|
||||
- [Respect disabled import sources when initiating import via API](gitlab-org/security/gitlab@b76b6229c93447954efc5719e6dd61eb601afdc4) ([merge request](gitlab-org/security/gitlab!1848))
|
||||
- [Return 404 if model id wasn't passed to UploadsController](gitlab-org/security/gitlab@8ab1cfaafba21a9e90ef41677993af2afdcd920a) ([merge request](gitlab-org/security/gitlab!1845))
|
||||
- [Scrub artifacts signed URL in SendEntry logs](gitlab-org/security/gitlab@5bae93b2f085d5dac58e411bffb5ca518fe7df98) ([merge request](gitlab-org/security/gitlab!1842))
|
||||
- [Prevent double-impersonation and impersonation breakout](gitlab-org/security/gitlab@7c82d0f2a1dbfb0a23d6a5cdaee448307ffc6972) ([merge request](gitlab-org/security/gitlab!1836))
|
||||
- [Clear session access tokens when starting/stopping impersonation](gitlab-org/security/gitlab@a4d529eb7c8eeb3e9c42ae3d81514d79a905cdb7) ([merge request](gitlab-org/security/gitlab!1833))
|
||||
- [Use validated URL when sending request to Gitea Importer](gitlab-org/security/gitlab@b30536e6c9aa969c76bcd167f00db5a0e07ace7a) ([merge request](gitlab-org/security/gitlab!1820))
|
||||
- [Fix XSS in Jira link](gitlab-org/security/gitlab@9ace10c46744ee220c649d2da0eeb3e99216ee7d) ([merge request](gitlab-org/security/gitlab!1625)) **GitLab Enterprise Edition**
|
||||
- [Fix fogbugz importer DNS Rebind SSRF](gitlab-org/security/gitlab@9d7107665d6ed931ef4b2feeb0287bc71b89232c) ([merge request](gitlab-org/security/gitlab!1682))
|
||||
- [Remove related project access tokens when a project is deleted](gitlab-org/security/gitlab@b86096865949f07f6a2020603959117d9c84877b) ([merge request](gitlab-org/security/gitlab!1812))
|
||||
- [Require group admin access to list pending invites](gitlab-org/security/gitlab@404b344edd61b2f13c3498cd545c2b40165ee536) ([merge request](gitlab-org/security/gitlab!1721))
|
||||
- [Do not export and import repository_size_limit](gitlab-org/security/gitlab@56f563980f944f1a5e3935ad82070e6719cd5a0c) ([merge request](gitlab-org/security/gitlab!1768))
|
||||
- [Escapes MR approval rule names correctly](gitlab-org/security/gitlab@ea64f981ce70a0e1e6ee58e64a6007e82f48e071) ([merge request](gitlab-org/security/gitlab!1809))
|
||||
- [Filter shared groups autocomplete by permitted](gitlab-org/security/gitlab@59999ab27cba402589b27d204cf29678100e948b) ([merge request](gitlab-org/security/gitlab!1806)) **GitLab Enterprise Edition**
|
||||
- [Require access token for git when 2fa is required](gitlab-org/security/gitlab@6a4a75efd7685a69ffa7cc4c027c7058013cca45) ([merge request](gitlab-org/security/gitlab!1796))
|
||||
- [Disable exporting pipeline triggers on project export](gitlab-org/security/gitlab@8a8c78ed054def210013a849195939d7888fcf65) ([merge request](gitlab-org/security/gitlab!1790))
|
||||
- [Add pagination to dependencies API](gitlab-org/security/gitlab@2a963ad670c60d1f3078fdf446ea755c5862fa26) ([merge request](gitlab-org/security/gitlab!1725)) **GitLab Enterprise Edition**
|
||||
- [Permission check issuable template API data](gitlab-org/security/gitlab@9d95d13bc714e46b5e3697288c4b398cb5aee88b) ([merge request](gitlab-org/security/gitlab!1787)) **GitLab Enterprise Edition**
|
||||
- [Apply account locking to password reset page](gitlab-org/security/gitlab@47ee79b1983de886f5ebe04b2975c2e37aa938ce) ([merge request](gitlab-org/security/gitlab!1784))
|
||||
- [Enforce configured scopes for Oauth applications](gitlab-org/security/gitlab@acf2d894c91aa7fb72ea32b10e50e94441885399) ([merge request](gitlab-org/security/gitlab!1781))
|
||||
- [Verify state before using errors from OAuth2 OmniAuth providers](gitlab-org/security/gitlab@20073576508aa239e52d8ff911c1dfd3df8af670) ([merge request](gitlab-org/security/gitlab!1778))
|
||||
- [Prevent moving epic issues to different group hierarchy](gitlab-org/security/gitlab@93c6ec69b7bc6c9124a2a5350cebebb57f63a28f) ([merge request](gitlab-org/security/gitlab!1774)) **GitLab Enterprise Edition**
|
||||
- [Prevent showing not allowed subgroup epics](gitlab-org/security/gitlab@72a11e72425a033f3464d6ff12b4d06e12ec9faf) ([merge request](gitlab-org/security/gitlab!1766)) **GitLab Enterprise Edition**
|
||||
- [Do not allow status checks to exist with external protected branches](gitlab-org/security/gitlab@8f96c013ccbbe9c52b3f03fb0d247debb1b157a8) ([merge request](gitlab-org/security/gitlab!1763)) **GitLab Enterprise Edition**
|
||||
- [Fix GFM autocomplete xss](gitlab-org/security/gitlab@fd92dabddff5ae5d67a98aef5d858438520a2f06) ([merge request](gitlab-org/security/gitlab!1748))
|
||||
- [Prohibit anonymous access for specific user API endpoint](gitlab-org/security/gitlab@2e8a386430309a931dbbd47fba7540a53399ad64) ([merge request](gitlab-org/security/gitlab!1737))
|
||||
- [Fix denial-of-service attack in Markdown parser](gitlab-org/security/gitlab@5b6ed5212f880e2397dbea9ffc74cf0a35bd4411) ([merge request](gitlab-org/security/gitlab!1728))
|
||||
- [Require password param for 2FA changes](gitlab-org/security/gitlab@5693760a3edf82774a4e19b9bb561be87316be54) ([merge request](gitlab-org/security/gitlab!1815))
|
||||
- [Fix permissions check on project members import](gitlab-org/security/gitlab@f9b4200427833e370638aa63851d6801a40c404c) ([merge request](gitlab-org/security/gitlab!1859))
|
||||
- [Respect disabled import sources when initiating import via API](gitlab-org/security/gitlab@3c9af055ece281fcaab0b8dcc277e0ce9133ad31) ([merge request](gitlab-org/security/gitlab!1847))
|
||||
- [Return 404 if model id wasn't passed to UploadsController](gitlab-org/security/gitlab@dd4616362040d2b812d69ff2ecf78e70ff4b9ae3) ([merge request](gitlab-org/security/gitlab!1844))
|
||||
- [Scrub artifacts signed URL in SendEntry logs](gitlab-org/security/gitlab@41d275bb73943ba6f970d6678b49c9336194af35) ([merge request](gitlab-org/security/gitlab!1841))
|
||||
- [Prevent double-impersonation and impersonation breakout](gitlab-org/security/gitlab@c0ab498adda057f4d87969d74c32a3ea95df297c) ([merge request](gitlab-org/security/gitlab!1835))
|
||||
- [Clear session access tokens when starting/stopping impersonation](gitlab-org/security/gitlab@fd39d88b348d525818820d2496afe08612420023) ([merge request](gitlab-org/security/gitlab!1832))
|
||||
- [Use validated URL when sending request to Gitea Importer](gitlab-org/security/gitlab@328e3c726c693b32666e0fb32eda0b7a6f22d8ad) ([merge request](gitlab-org/security/gitlab!1821))
|
||||
- [Fix XSS in Jira link](gitlab-org/security/gitlab@868d8b9c4a1e9e9019a7ff51da11f75051e452c3) ([merge request](gitlab-org/security/gitlab!1817)) **GitLab Enterprise Edition**
|
||||
- [Fix fogbugz importer DNS Rebind SSRF](gitlab-org/security/gitlab@4f4b5a15a3508084f921442b3a7f42ba0448f1bb) ([merge request](gitlab-org/security/gitlab!1681))
|
||||
- [Remove related project access tokens when a project is deleted](gitlab-org/security/gitlab@282e81198f80f1fda912da5bc6f671d778b19ca9) ([merge request](gitlab-org/security/gitlab!1811))
|
||||
- [Require group admin access to list pending invites](gitlab-org/security/gitlab@1ce85345787025222c915fe5fa314bad8994b6ba) ([merge request](gitlab-org/security/gitlab!1720))
|
||||
- [Do not export and import repository_size_limit](gitlab-org/security/gitlab@359f14e41dfc355a13041cdf1dbcd082c254200c) ([merge request](gitlab-org/security/gitlab!1769))
|
||||
- [Escapes MR approval rule names correctly](gitlab-org/security/gitlab@d84739982599197ff337d69d818634544270e142) ([merge request](gitlab-org/security/gitlab!1808))
|
||||
- [Filter shared groups autocomplete by permitted](gitlab-org/security/gitlab@3a2b4c7ff1eb2ba3e84840ba2800c13d6491d726) ([merge request](gitlab-org/security/gitlab!1805)) **GitLab Enterprise Edition**
|
||||
- [Require access token for git when 2fa is required](gitlab-org/security/gitlab@deb4e7e5f941c82450d382c1b85f6325e367394f) ([merge request](gitlab-org/security/gitlab!1795))
|
||||
- [Disable exporting pipeline triggers on project export](gitlab-org/security/gitlab@417761bb2f67f03bfe803163bad97da7b9fa088b) ([merge request](gitlab-org/security/gitlab!1789))
|
||||
- [Add pagination to dependencies API](gitlab-org/security/gitlab@2f84755ba54580df126054a561d8cc4731f936d3) ([merge request](gitlab-org/security/gitlab!1724)) **GitLab Enterprise Edition**
|
||||
- [Permission check issuable template API data](gitlab-org/security/gitlab@a90614e2efc813ca5f13a9aa9b51f13f0e8934aa) ([merge request](gitlab-org/security/gitlab!1786)) **GitLab Enterprise Edition**
|
||||
- [Apply account locking to password reset page](gitlab-org/security/gitlab@6bbd77c0748e59eacff51edb6264d6099ee14a38) ([merge request](gitlab-org/security/gitlab!1783))
|
||||
- [Enforce configured scopes for Oauth applications](gitlab-org/security/gitlab@a9f44bb19cbfc460cd05627a80ef17c39cdde86b) ([merge request](gitlab-org/security/gitlab!1780))
|
||||
- [Verify state before using errors from OAuth2 OmniAuth providers](gitlab-org/security/gitlab@6f70292d0fa3efbe99c44748a463df189830cc35) ([merge request](gitlab-org/security/gitlab!1777))
|
||||
- [Prevent moving epic issues to different group hierarchy](gitlab-org/security/gitlab@979d40003794014d5930709a257e9a5c75df10e6) ([merge request](gitlab-org/security/gitlab!1773)) **GitLab Enterprise Edition**
|
||||
- [Prevent showing not allowed subgroup epics](gitlab-org/security/gitlab@2f72e4062f6cd7256ffff31172b00c012a5910e1) ([merge request](gitlab-org/security/gitlab!1765)) **GitLab Enterprise Edition**
|
||||
- [Do not allow status checks to exist with external protected branches](gitlab-org/security/gitlab@dd08837d054c574f94f80e806cc7b49de342cc57) ([merge request](gitlab-org/security/gitlab!1762)) **GitLab Enterprise Edition**
|
||||
- [Fix GFM autocomplete xss](gitlab-org/security/gitlab@5afba618ef89fdce544f498a30e7366e3f6cb788) ([merge request](gitlab-org/security/gitlab!1747))
|
||||
- [Prohibit anonymous access for specific user API endpoint](gitlab-org/security/gitlab@a813bd8a8f07ffa0477efd3a3936b436e5ec6b17) ([merge request](gitlab-org/security/gitlab!1736))
|
||||
- [Fix denial-of-service attack in Markdown parser](gitlab-org/security/gitlab@f618ad9c104882ac5f707b162e8119805252019e) ([merge request](gitlab-org/security/gitlab!1729))
|
||||
|
||||
## 14.1.6 (2021-09-27)
|
||||
## 14.2.4 (2021-09-17)
|
||||
|
||||
### Fixed (2 changes)
|
||||
|
||||
- [Fix Elastic::MigrationWorker current_migration (2nd attempt)](gitlab-org/gitlab@65bf8636d35edc6f580c7f09e1ffafc46ca5fbdb) ([merge request](gitlab-org/gitlab!70494)) **GitLab Enterprise Edition**
|
||||
- [Removes cleanup job from Terraform.latest](gitlab-org/gitlab@6085d73d1a88aa98310f775fe2ff74584948e1a9) ([merge request](gitlab-org/gitlab!70494))
|
||||
|
||||
## 14.2.3 (2021-09-01)
|
||||
|
||||
### Fixed (4 changes)
|
||||
|
||||
- [Fix Live Markdown Preview in personal and subgroup projects](gitlab-org/gitlab@20553f93703c0bc076c8e1a4fbc4ce07e2e914b7) ([merge request](gitlab-org/gitlab!69316))
|
||||
- [Fix OrphanedInviteTokensCleanup migration](gitlab-org/gitlab@9c59b2fbdfeb250de66a9d2b9424cde9680f86c3) ([merge request](gitlab-org/gitlab!69316))
|
||||
- [Reset severity_levels default](gitlab-org/gitlab@34e65788679cfbdeec28357a01a8b303ba61418f) ([merge request](gitlab-org/gitlab!69316))
|
||||
- [Geo: Replicate multi-arch containers](gitlab-org/gitlab@fdf88767320016a84c83e896b9f9b90291de89e0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67624)) **GitLab Enterprise Edition**
|
||||
|
||||
## 14.2.2 (2021-08-31)
|
||||
|
||||
### Security (9 changes)
|
||||
|
||||
- [Prevent non-admins from configuring Jira connect app](gitlab-org/security/gitlab@1bc56361c9daa90accea65836d5a424168a2c544) ([merge request](gitlab-org/security/gitlab!1697))
|
||||
- [Only create jira connect NS subscriptions for admins](gitlab-org/security/gitlab@c160da2cb32a5774fef149155cfd397981bf9173) ([merge request](gitlab-org/security/gitlab!1698))
|
||||
- [Update apollo_upload_server dependency](gitlab-org/security/gitlab@5ef659b8c9a5a7338830171c62943d3b8bb16410) ([merge request](gitlab-org/security/gitlab!1699))
|
||||
- [Ensure shared group members lose project access after group deletion](gitlab-org/security/gitlab@c94e934234a90f82e7fe291ed0f1d6a763b9a977) ([merge request](gitlab-org/security/gitlab!1683))
|
||||
- [Update Import/Export to use public email when mapping users](gitlab-org/security/gitlab@13fb902c55c2dfe7ec2bf35f58a9cb3d93905d9a) ([merge request](gitlab-org/security/gitlab!1669)) **GitLab Enterprise Edition**
|
||||
- [Require sign in for .keys endpoint on non-public instances](gitlab-org/security/gitlab@0979dd458e8fa0d4f5e184ef0b9ea042d79f6c14) ([merge request](gitlab-org/security/gitlab!1676))
|
||||
- [Inherit user external status while creating project bots](gitlab-org/security/gitlab@93062909ffc093cb8f718a3ea3f2976292a9b9af) ([merge request](gitlab-org/security/gitlab!1675))
|
||||
- [Escape issue reference and title for Jira issues](gitlab-org/security/gitlab@d25ef8599ec03ee80ef1bff7067b2269836400cf) ([merge request](gitlab-org/security/gitlab!1673)) **GitLab Enterprise Edition**
|
||||
- [Fix stored XSS vulnerability in Datadog settings form](gitlab-org/security/gitlab@23b98dac7864992898992a153950247ac6ccb933) ([merge request](gitlab-org/security/gitlab!1670))
|
||||
|
||||
## 14.2.1 (2021-08-23)
|
||||
|
||||
### Fixed (1 change)
|
||||
|
||||
- [Fix Elastic::MigrationWorker current_migration (2nd attempt)](gitlab-org/gitlab@f07c7a5f173a2fc053247664f21c03d29df543a4) ([merge request](gitlab-org/gitlab!71187)) **GitLab Enterprise Edition**
|
||||
- [Drop un-used db/ci_migrate symlink](gitlab-org/gitlab@1154311625345e120407c0c397c7d4a27848a739) ([merge request](gitlab-org/gitlab!68723))
|
||||
|
||||
## 14.1.5 (2021-09-02)
|
||||
### Changed (2 changes)
|
||||
|
||||
### Fixed (1 change)
|
||||
- [Reorder vuln check criteria](gitlab-org/gitlab@9bbb20db46362a859632e7bb88deba985318ca2c) ([merge request](gitlab-org/gitlab!68723)) **GitLab Enterprise Edition**
|
||||
- [Don't override vulnerability feedback UUID anymore](gitlab-org/gitlab@5f8372fb782c9416ae5ab582009a4399cb7d3750) ([merge request](gitlab-org/gitlab!68723)) **GitLab Enterprise Edition**
|
||||
|
||||
- [Geo: Replicate multi-arch containers](gitlab-org/gitlab@4f74fe9fb6f53cd877d8f793e2ef74c4177006d1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67624)) **GitLab Enterprise Edition**
|
||||
## 14.2.0 (2021-08-20)
|
||||
|
||||
## 14.1.4 (2021-08-31)
|
||||
### Added (128 changes)
|
||||
|
||||
### Security (8 changes)
|
||||
- [Add missing Ci::Build graphql mutations](gitlab-org/gitlab@b0389d7d0da358b550392cf20178c2faea6dbd61) ([merge request](gitlab-org/gitlab!68399))
|
||||
- [Introduce a table to store job trace metadata](gitlab-org/gitlab@66ac715bd050922f83e754f1f2b27c27848fa2b2) ([merge request](gitlab-org/gitlab!68171))
|
||||
- [Promote the contact_sales_btn_in_app experiment to product feature](gitlab-org/gitlab@273a053eff53c29ce55f70358b2ebd593a64c7ff) ([merge request](gitlab-org/gitlab!65598))
|
||||
- [Upgrade GitLab Pages to v1.42.0](gitlab-org/gitlab@5de522492fa0a3d013eef5d75103a93f350036c2) ([merge request](gitlab-org/gitlab!68341))
|
||||
- [Enable the instance-level overrides feature](gitlab-org/gitlab@b8ab6f1e1c1120a8b53fa0864627bc7a5ff6603f) ([merge request](gitlab-org/gitlab!67927))
|
||||
- [Add support for inline diff in content editor](gitlab-org/gitlab@c10baec8a0efb6c6a59909cd8c1772c9d7cab042) ([merge request](gitlab-org/gitlab!68231))
|
||||
- [Update security policies pipeline processor to support secret detection](gitlab-org/gitlab@797d5d844d5533ea6561dc2e584d8b15b0c47b71) ([merge request](gitlab-org/gitlab!67223)) **GitLab Enterprise Edition**
|
||||
- [Render references in content editor](gitlab-org/gitlab@efc45686c1d1804d8367a292fc63164aa1d7f6c2) ([merge request](gitlab-org/gitlab!68230))
|
||||
- [Add copy feature to CI job page](gitlab-org/gitlab@5d72b702b7d78566110714a30d9742d32e8e32d0) ([merge request](gitlab-org/gitlab!68148))
|
||||
- [Limit number of files per pages site](gitlab-org/gitlab@48df27a71ab7c3845172671b20e2cf2e3dcf6fe2) ([merge request](gitlab-org/gitlab!67761))
|
||||
- [Added new user callout for the Terraform banner](gitlab-org/gitlab@c52952f613e4dfd1ab5cbde859b8f3d1a1ce51eb) ([merge request](gitlab-org/gitlab!68138))
|
||||
- [Markdown Live preview for Source Editor](gitlab-org/gitlab@2fffee2645d5bb9a4b8b269c578ebca9f9f73fbf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68020))
|
||||
- [Create table zentao_tracker_data](gitlab-org/gitlab@161e6d31110c591b041b76717a98024f5963a3f7) ([merge request](gitlab-org/gitlab!67938))
|
||||
- [Start tracking project ci feature usages](gitlab-org/gitlab@ce79c6e6e88fc6e9fe2721ccaea801322bd83e13) ([merge request](gitlab-org/gitlab!68186))
|
||||
- [Add support for task list in content editor](gitlab-org/gitlab@0f07bf94eeed25828118633cc80e9d6db06c682b) ([merge request](gitlab-org/gitlab!68121))
|
||||
- [Add support for subscript/superscript](gitlab-org/gitlab@79c6a33fa8c64630d2c8318df2bc3a148571e80d) ([merge request](gitlab-org/gitlab!68106))
|
||||
- [Enable agent registration UI](gitlab-org/gitlab@aae65bb2daddffb001062a08e563b733c709422a) ([merge request](gitlab-org/gitlab!63718)) **GitLab Enterprise Edition**
|
||||
- [Add support for meta tag DAST site validation](gitlab-org/gitlab@446eb73c72154b0cc835f77681d174e452e8c186) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67553)) **GitLab Enterprise Edition**
|
||||
- [Include reply in email egenrated notes](gitlab-org/gitlab@1b6793b1735e0bdb15ff8885afc3a4c44b58eec5) ([merge request](gitlab-org/gitlab!67615))
|
||||
- [Allow sorting merge requests by latest closed at](gitlab-org/gitlab@e8eec2be09c22e9d34d4ae872ebaf9ada8d6e9e7) ([merge request](gitlab-org/gitlab!67041))
|
||||
- [Enable seat usage export](gitlab-org/gitlab@96a57bd55a58a139a3b6a71dfa188754da98b5fb) ([merge request](gitlab-org/gitlab!67934)) **GitLab Enterprise Edition**
|
||||
- [Show artifact downloads for security reports](gitlab-org/gitlab@66e2a2c14c1db3ef5e0bb5eafbe8450ab0ab9e1f) ([merge request](gitlab-org/gitlab!67701))
|
||||
- [Expose integrated error tracking to services](gitlab-org/gitlab@08a65298328d1215a4c2abc09c1c5b1a7329c976) ([merge request](gitlab-org/gitlab!66847))
|
||||
- [Render emojis in the Content Editor](gitlab-org/gitlab@27836b5914ab2e677a1bf83a75c7b0ae46c45646) ([merge request](gitlab-org/gitlab!67986))
|
||||
- [Add dependency link to package type](gitlab-org/gitlab@6bb31a828706c216e68a6f775acb533732374623) ([merge request](gitlab-org/gitlab!67828))
|
||||
- [Enabled diff virtual scrolling by default](gitlab-org/gitlab@2889ee338ef5fa9eb1e034cc9c29ba00b97709ee) ([merge request](gitlab-org/gitlab!67983))
|
||||
- [Enables ci_same_stage_job_needs by default](gitlab-org/gitlab@8faa92bc2c5ee9aa0be2ebf6936f7e1cf74c5762) ([merge request](gitlab-org/gitlab!67851))
|
||||
- [Remove agent_kubeconfig_ci_variable feature flag](gitlab-org/gitlab@57b3effb251f08cbdf2f394f27e293efbf7df872) ([merge request](gitlab-org/gitlab!67734))
|
||||
- [Prune database partitions older than a retention period](gitlab-org/gitlab@c8b84ced3234b086cb4e6b99452bf8f3e7e49803) ([merge request](gitlab-org/gitlab!67056))
|
||||
- [Add vulnerabilities_allowed into rules](gitlab-org/gitlab@0f90ed3eeee90352cea72c9aaf2b125d4ca667ab) ([merge request](gitlab-org/gitlab!66685)) **GitLab Enterprise Edition**
|
||||
- [Add organizations table and model](gitlab-org/gitlab@6a69edffe8b16154cd584c4775c6806e26800b98) ([merge request](gitlab-org/gitlab!67551))
|
||||
- [Support setting Rails asset host via gitlab.yml](gitlab-org/gitlab@d11ace2405a4af37e85b329ac00e1deec4ca3dca) ([merge request](gitlab-org/gitlab!67710))
|
||||
- [Disable project/group sharing when User Cap set](gitlab-org/gitlab@108f4f0a04a02aa57ac032aa8518d753719b93c1) ([merge request](gitlab-org/gitlab!67229))
|
||||
- [Expose timelogs in GraphQL query type](gitlab-org/gitlab@6b0f410efd348ae2a12ff3b6a9ca32c1420810c6) ([merge request](gitlab-org/gitlab!67185))
|
||||
- [Enable ci_daily_limit_for_pipeline_schedules by default](gitlab-org/gitlab@c8058482a2a41d886bf816fc253305bb278e2dc1) ([merge request](gitlab-org/gitlab!67835))
|
||||
- [Track changes in merge request approval settings in Audit Events](gitlab-org/gitlab@630bfeaeccf9641015353c300f02b4d225c6dbd5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66234)) **GitLab Enterprise Edition**
|
||||
- [Store hashcode for VSA stage events](gitlab-org/gitlab@760ab23cfb152a0a3ae4a5df0414f18d0ff552f4) ([merge request](gitlab-org/gitlab!67259))
|
||||
- [Remove ci_jobs_trace_size_limit feature flag](gitlab-org/gitlab@99468602a8450030a63c232d0cc4379e02ed7db6) ([merge request](gitlab-org/gitlab!67770))
|
||||
- [Index issues on project_id, state_id, created, id](gitlab-org/gitlab@49aed743bdd9ff27451cd8a2c8368db137aae4f8) ([merge request](gitlab-org/gitlab!67304))
|
||||
- [Feat: enable report abuse button for snippets](gitlab-org/gitlab@449a7e04dd5d65de656dc7e7f6b4867debd07b66) ([merge request](gitlab-org/gitlab!66913))
|
||||
- [Add tooltip to No Target text in corpus management](gitlab-org/gitlab@736e7a6dfab827b861304fc7f6c893f9700ed480) ([merge request](gitlab-org/gitlab!67345))
|
||||
- [Remove code quality usage feature flag](gitlab-org/gitlab@dc2466ef052f4749dbc706627fd1b47d8033ff0e) ([merge request](gitlab-org/gitlab!67792))
|
||||
- [Add severity_levels validation and usage](gitlab-org/gitlab@33e1a9f9f06795f5b8b44c947851d0ccac1189b0) ([merge request](gitlab-org/gitlab!67064)) **GitLab Enterprise Edition**
|
||||
- [Add support for adding attachments in Content Editor](gitlab-org/gitlab@86ee34786dca713d3dfca6ee64190099497925ac) ([merge request](gitlab-org/gitlab!67728))
|
||||
- [Add expired tokens alert to personal access tokens profile page](gitlab-org/gitlab@ce93996be8b89115d3265d86ad2d6ee224e6d4f3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66915)) **GitLab Enterprise Edition**
|
||||
- [Show topics in the project list](gitlab-org/gitlab@f9cb6e706c8104be6b96d44693416f79183b507c) ([merge request](gitlab-org/gitlab!65335))
|
||||
- [Add pipeline iid dropdown](gitlab-org/gitlab@0052c811f0241b39870bf7d308539d7f340f1848) ([merge request](gitlab-org/gitlab!67625))
|
||||
- [Mark completed jobs as successful](gitlab-org/gitlab@82a928011f15da3aa3aae94b5a758cf4541b3048) ([merge request](gitlab-org/gitlab!67687))
|
||||
- [Add namespace field to User type in GraphQL](gitlab-org/gitlab@9169e2639da6d162e120c2dd66eda511b6194978) ([merge request](gitlab-org/gitlab!67641))
|
||||
- [Add view pipeline button in pipeline editor](gitlab-org/gitlab@dd5e9f74604ea891412885b8c0a24547e2c8961f) ([merge request](gitlab-org/gitlab!67474))
|
||||
- [Add a bubblemenu for text format to Content Editor](gitlab-org/gitlab@8a8a9842b54aa54d9cf197403c145fb7cd05533f) ([merge request](gitlab-org/gitlab!67363))
|
||||
- [Adds APIs and their specs to projectionist example file](gitlab-org/gitlab@b7d12b6871066146492a7b7350c1bb17e2d181d1) ([merge request](gitlab-org/gitlab!67626))
|
||||
- [Add rule_index to security_orchestration_policy_rule_schedules](gitlab-org/gitlab@01d1d4398f1c4e99a3f2146a8bdeac0ae5375261) ([merge request](gitlab-org/gitlab!67586))
|
||||
- [Extend graphql repository with paginated tree field](gitlab-org/gitlab@c97bac9f191f785287324d684b75cfefb45fe325) ([merge request](gitlab-org/gitlab!66751))
|
||||
- [Add support for security policy project for Projects::CreateService](gitlab-org/gitlab@75e3e09a6f30a26e64ac901b136bd524bccd6a20) ([merge request](gitlab-org/gitlab!66448)) **GitLab Enterprise Edition**
|
||||
- [Expose vulnerabilities_allowed](gitlab-org/gitlab@d14b3c9ada83fa9047488f312b229f46b9941f4b) ([merge request](gitlab-org/gitlab!66680)) **GitLab Enterprise Edition**
|
||||
- [Deploy token access for the Dependency Proxy](gitlab-org/gitlab@9a6cee64edba05d571f81fe071fda946969736d4) ([merge request](gitlab-org/gitlab!67552))
|
||||
- [Remove compare_repo_dropdown feature flag](gitlab-org/gitlab@33c2a0f4a05e1d096c001c2f3c1dc7c683ac568e) ([merge request](gitlab-org/gitlab!67193))
|
||||
- [Add mutation to change namespace shared runners setting](gitlab-org/gitlab@2bbc69a6d2b519534e4f534618a9683130161139) ([merge request](gitlab-org/gitlab!67256))
|
||||
- [Add severity_levels into approval_project_rules](gitlab-org/gitlab@ae7afa58f4cfa91919c01fcacad24b142502fed6) ([merge request](gitlab-org/gitlab!67062))
|
||||
- [Add admin_verify track to in-product marketing emails](gitlab-org/gitlab@67b920db2d46e83201023fdebbdc120dd99511ba) ([merge request](gitlab-org/gitlab!67147))
|
||||
- [Add instance setting for delayed project deletion](gitlab-org/gitlab@d2c9d6267f2cb55bb0bcea383d2261c75d5536f7) ([merge request](gitlab-org/gitlab!67230)) **GitLab Enterprise Edition**
|
||||
- [Add Snowplow Tracking to Environment Actions](gitlab-org/gitlab@2d5dc001670c1894bc7190377be8d8ee97d92752) ([merge request](gitlab-org/gitlab!66968))
|
||||
- [Finalize converting geo_job_artifact_deleted_events](gitlab-org/gitlab@fafde4d21574912c0fbccf2bf7085d82418118c9) ([merge request](gitlab-org/gitlab!66763))
|
||||
- [Remove feature flag search_sort_issues_by_popularity](gitlab-org/gitlab@4adb461f6a7c8ea2a102a774d0ea053b3a0428f4) ([merge request](gitlab-org/gitlab!67515))
|
||||
- [Cancel pipelines before deleting](gitlab-org/gitlab@d738b59412b780eca267dee40fe1bd63e513e6bb) ([merge request](gitlab-org/gitlab!67063))
|
||||
- [Add structured logging to MergeRequestMergeabilityCheckWorker](gitlab-org/gitlab@d971a728f534df518ab74117526d3099db62df0d) ([merge request](gitlab-org/gitlab!67440))
|
||||
- [Allow immediate deletion of groups](gitlab-org/gitlab@80637ccb22b7e24209c1ef6f7a0832163b89756e) ([merge request](gitlab-org/gitlab!66951)) **GitLab Enterprise Edition**
|
||||
- [Add application and DB layer validations for flag_type uniqueness](gitlab-org/gitlab@1eb5b25a7ff521a4cb55f872c561a21c4a33b04d) ([merge request](gitlab-org/gitlab!67300)) **GitLab Enterprise Edition**
|
||||
- [Add pronunciation to GitLab profile page](gitlab-org/gitlab@5e6b224b48f58f7dda8920566ba5fc8c4309aed8) ([merge request](gitlab-org/gitlab!67111))
|
||||
- [Add trial_short track to in-product marketing emails](gitlab-org/gitlab@f74e5e5369a9b5d307b86b24d1a9bb607eb089b8) ([merge request](gitlab-org/gitlab!66943))
|
||||
- [Deploy token access for the dependency proxy](gitlab-org/gitlab@b723758c42028c10cba8bde2b6ee04f9bfe59f3d) ([merge request](gitlab-org/gitlab!64363))
|
||||
- [Generate Debian component files for udeb and source files](gitlab-org/gitlab@4a55b9ff9616844b083db2f4d8e187d40138c43f) ([merge request](gitlab-org/gitlab!65188))
|
||||
- [Log deprecations to dedicated log file](gitlab-org/gitlab@36be9eca6c23897be2b1f560dbc0e0f4ba25d21a) ([merge request](gitlab-org/gitlab!66815))
|
||||
- [Add button for reactivating/extending trial](gitlab-org/gitlab@dfe79df4f34fe5c7b7beb91902e9715a10524c36) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66049)) **GitLab Enterprise Edition**
|
||||
- [Add secret_detection to security_orchestration_policy JSON schema](gitlab-org/gitlab@a08527c5f4b2ab1501e6aefe5a8209d5bef6c2ea) ([merge request](gitlab-org/gitlab!67124)) **GitLab Enterprise Edition**
|
||||
- [Add assigned issue and pending todo counts to /users_count API](gitlab-org/gitlab@eb340792858e66823d64857576eb47686c3f8e89) ([merge request](gitlab-org/gitlab!66909))
|
||||
- [GraphQL: Add sharedRunnersSetting to Group/Namespace](gitlab-org/gitlab@835e72bdcf40ab6693637af3d05895eb4a885452) ([merge request](gitlab-org/gitlab!67022))
|
||||
- [feat: Add environments survey alert](gitlab-org/gitlab@48f4a30dbd532413b87a7affe6490c17007d39b3) ([merge request](gitlab-org/gitlab!67243))
|
||||
- [Allow Limitable to use override feature flag](gitlab-org/gitlab@d9d4ac4a194e3ffa0aa2a249b70d18c02105e311) ([merge request](gitlab-org/gitlab!67151))
|
||||
- [Retain trigger time of alerts](gitlab-org/gitlab@93fe1effc69dadf139311352640e36ed2ce864f3) ([merge request](gitlab-org/gitlab!65635))
|
||||
- [Add mutation to lock/unlock project paths](gitlab-org/gitlab@bdcf4a8172cfb68fde6e0343c7c367104b969237) ([merge request](gitlab-org/gitlab!66186)) **GitLab Enterprise Edition**
|
||||
- [Use non-predefined variables inside CI include blocks](gitlab-org/gitlab@7de0bbfe90d802869b2ebf6dfe38302e80c9369e) ([merge request](gitlab-org/gitlab!66852))
|
||||
- [Allow resetting issue labels](gitlab-org/gitlab@4ff90dab42d538e4723cacfb7541a0af2b1be574) ([merge request](gitlab-org/gitlab!66859))
|
||||
- [Exposed created_at to billable members API](gitlab-org/gitlab@498e439d65cb8201ddb8d7d73bd55627a7b2f636) ([merge request](gitlab-org/gitlab!67127)) **GitLab Enterprise Edition**
|
||||
- [Add pagination support for get_tree_entries RPC](gitlab-org/gitlab@d4bf66a7b9d4a9630d903a2bb20b74a7defc8816) ([merge request](gitlab-org/gitlab!66657))
|
||||
- [Introduce AutoDeleteCronWorker for Environments](gitlab-org/gitlab@355df1117e587c062fabaf4318fa5d04fcc76b66) ([merge request](gitlab-org/gitlab!66732))
|
||||
- [Enable DAST runner site validation by default](gitlab-org/gitlab@8cbd2c66c1b9905b495e215a5c4da09bd655504a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67096)) **GitLab Enterprise Edition**
|
||||
- [Return signature in InRelease and Release.gpg endpoints](gitlab-org/gitlab@e1d915e397ad4b3eaf43880fe8cf0c012470a0a0) ([merge request](gitlab-org/gitlab!67061))
|
||||
- [Add pages_file_entries to plan_limits](gitlab-org/gitlab@8924a81387d5fd7b2e2f85698ad721acf8f9911c) ([merge request](gitlab-org/gitlab!64925))
|
||||
- [Add the compliance framework label to group projects listing](gitlab-org/gitlab@78c8851d4403f878076c698a6b6cc528db019ff3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66819)) **GitLab Enterprise Edition**
|
||||
- [Adds ProjectSetComplianceFramework GraphQL Mutation](gitlab-org/gitlab@a55e3de11bcf1278b199208269d7127eeff4287d) ([merge request](gitlab-org/gitlab!66244)) **GitLab Enterprise Edition**
|
||||
- [Add timelog summary to time tracking report](gitlab-org/gitlab@b8208723bb27d8f7e35537fb5bd186507fad272a) ([merge request](gitlab-org/gitlab!67006))
|
||||
- [Plug Debian SignDistributionService in GenerateDistributionService](gitlab-org/gitlab@4457d342ad6acf9b7c12859a847d87184ed2e91e) ([merge request](gitlab-org/gitlab!66907))
|
||||
- [Add team_short track to in-product marketing emails](gitlab-org/gitlab@6f38ab407df09680d638200843fbd273cc992f2e) ([merge request](gitlab-org/gitlab!66854))
|
||||
- [Add Mailgun endpoint for receiving permanent failures](gitlab-org/gitlab@0f371ed75c04ffe81ccce6e11105581e3eaeed86) ([merge request](gitlab-org/gitlab!66397))
|
||||
- [Render CSV parsing errors](gitlab-org/gitlab@91fd2b5d235e3ec1dbe23d23a8aa2e35d9a55d05) ([merge request](gitlab-org/gitlab!66683))
|
||||
- [Added state column to members table](gitlab-org/gitlab@834bd3d6136b07a2416239582b587ae42bc516e6) ([merge request](gitlab-org/gitlab!66550))
|
||||
- [Trial onboarding for trial registrations](gitlab-org/gitlab@39a90e95acad44c50f85c85158cb2a442b3d6ecd) ([merge request](gitlab-org/gitlab!66836)) **GitLab Enterprise Edition**
|
||||
- [Display pending user count when modifying user cap](gitlab-org/gitlab@9ceeb7b5778037e8989962f270cd74541ce19732) ([merge request](gitlab-org/gitlab!66654)) **GitLab Enterprise Edition**
|
||||
- [Search for epics by iid if search starts with &](gitlab-org/gitlab@5522a5ffb6a0522e11dd684cce5c5e99ae6c24ce) ([merge request](gitlab-org/gitlab!65249)) **GitLab Enterprise Edition**
|
||||
- [Add PyPI package endpoints for project and group path (escaped)](gitlab-org/gitlab@c9f7a1785ebb5a902edf55e507218275c947266c) ([merge request](gitlab-org/gitlab!66087))
|
||||
- [Add Debian API endpoint for deb, udeb, ... files](gitlab-org/gitlab@6a576a69c550da0fbb2b7af7a5d6487b4ba369ce) ([merge request](gitlab-org/gitlab!64923))
|
||||
- [Support setting timelog summary via API](gitlab-org/gitlab@4cedb18ca1f036cc952cdaa680c9419cc8ee8306) ([merge request](gitlab-org/gitlab!66793))
|
||||
- [Geo: Add verification of snippet repositories](gitlab-org/gitlab@e5d32d05684ec533e6701dd80b3a23d21304498a) ([merge request](gitlab-org/gitlab!66878)) **GitLab Enterprise Edition**
|
||||
- [Add support for propagation correlation IDs from trusted CIDRs](gitlab-org/gitlab@5e865c2e680203509f2b170dd835d11c0677764e) ([merge request](gitlab-org/gitlab!66715))
|
||||
- [Debian CRUD group distribution endpoints](gitlab-org/gitlab@c2c871e575763f1977b3429c48382f82792c192a) ([merge request](gitlab-org/gitlab!66188))
|
||||
- [Added error classes for specific backup rake task](gitlab-org/gitlab@94ab3594ca1a331c9d488462298c10142a376eda) ([merge request](gitlab-org/gitlab!66260))
|
||||
- [Automatically resync verification failures](gitlab-org/gitlab@c615061fe0dcf0dadb977c0df581b925d142c38d) ([merge request](gitlab-org/gitlab!66851)) **GitLab Enterprise Edition**
|
||||
- [Add log count of active jobs](gitlab-org/gitlab@ed6b8745c0e816c5f459ef0bf70fe0766cadf4f0) ([merge request](gitlab-org/gitlab!64623))
|
||||
- [Add saml_provider_id query param to Users API](gitlab-org/gitlab@0e78d90629614d1762079f4aea6b1cf42325064d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66167)) **GitLab Enterprise Edition**
|
||||
- [Add vulnerability_amount column](gitlab-org/gitlab@7c391302180171dd9832842bda2e9b6ad9b3f96b) ([merge request](gitlab-org/gitlab!66673))
|
||||
- [Add error tracking client key](gitlab-org/gitlab@4eaa6cc66db16684d3e2b58292e9bfccc6e56f09) ([merge request](gitlab-org/gitlab!66466))
|
||||
- [Add a badge for project invite members](gitlab-org/gitlab@d993263a5fa90fb07092feddd2c6208788b6cfb2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66611)) **GitLab Enterprise Edition**
|
||||
- [Expose security scanners in MR approval rules API](gitlab-org/gitlab@c324301e2144abef01423becbbfaa7afc649f95c) ([merge request](gitlab-org/gitlab!66116)) **GitLab Enterprise Edition**
|
||||
- [Add overridden_uuid column to security_findings](gitlab-org/gitlab@ce5165d1db875b30cdd92a97e9aa607f14fc380c) ([merge request](gitlab-org/gitlab!66689))
|
||||
- [Add Jira Connect branches controller](gitlab-org/gitlab@b102fd6743d758000a4b6e45c4dbdb2cfaff7e66) ([merge request](gitlab-org/gitlab!66032))
|
||||
- [Add signed_file to Debian distributions](gitlab-org/gitlab@28c0435afcabf22019b7e475731fff12ac7c7227) ([merge request](gitlab-org/gitlab!66470))
|
||||
- [Add new BulkImports endpoint to start new migration](gitlab-org/gitlab@0632ee50bb08dedd78704b46cc88d68a5a2ac64a) ([merge request](gitlab-org/gitlab!66353))
|
||||
- [Add service to sign Debian distribution](gitlab-org/gitlab@95f1e8572a1d6835bde312518914c63e35788c3a) ([merge request](gitlab-org/gitlab!64926))
|
||||
- [Implement Scheduling Logic for DAST On-demand Scheduler](gitlab-org/gitlab@ddd59ed419e30b2d849898522bb93880d4300410) ([merge request](gitlab-org/gitlab!65327))
|
||||
- [Sync vulnerability rules](gitlab-org/gitlab@fbb848e45448bb68d61c2d2454b080fa1e1793fb) ([merge request](gitlab-org/gitlab!66115)) **GitLab Enterprise Edition**
|
||||
- [Add Fuzz Testing to DevOps Adoption](gitlab-org/gitlab@6b26ed63b3fb2b5c5d23ea9489ee8e655363e026) ([merge request](gitlab-org/gitlab!66446)) **GitLab Enterprise Edition**
|
||||
- [Removes `mr_collapsed_approval_rules` feature flag](gitlab-org/gitlab@21fb28f1fd1cd7dae9dd5336cab432785f998f49) ([merge request](gitlab-org/gitlab!66457))
|
||||
- [Add descendantGroups field to Group type](gitlab-org/gitlab@9a5dd5ea4a97344892dfe290c806ea139a9f2d94) ([merge request](gitlab-org/gitlab!65255))
|
||||
- [Added user_cap_reached? to Group](gitlab-org/gitlab@9e3ab675343a8a133d3db6b5379ba57fd7ba6e3b) ([merge request](gitlab-org/gitlab!66264)) **GitLab Enterprise Edition**
|
||||
- [Add security scanners column into](gitlab-org/gitlab@ad8618b9d6684de286315aa06a0c0d38e06c5744) ([merge request](gitlab-org/gitlab!66114))
|
||||
- [Save visited URL to recent searches and update weight token list](gitlab-org/gitlab@94b4363b06a8ec706467905e0e3d77692b8c952e) ([merge request](gitlab-org/gitlab!66361))
|
||||
|
||||
- [Update apollo_upload_server dependency](gitlab-org/security/gitlab@34e7e3b7590fd76d0f618091551651e8065edfd2) ([merge request](gitlab-org/security/gitlab!1700))
|
||||
- [Ensure shared group members lose project access after group deletion](gitlab-org/security/gitlab@4a7b8203776b719c06186c1b189a8cf21572fcd4) ([merge request](gitlab-org/security/gitlab!1684))
|
||||
- [Fix stored XSS vulnerability in Datadog settings form](gitlab-org/security/gitlab@0906814af604e7fcab54a96bccadcba11207387d) ([merge request](gitlab-org/security/gitlab!1671))
|
||||
- [Inherit user external status while creating project bots](gitlab-org/security/gitlab@d5a26c4145d917b5b49e207e03669d2b7e4ee617) ([merge request](gitlab-org/security/gitlab!1665))
|
||||
- [Escape issue reference and title for Jira issues](gitlab-org/security/gitlab@4153444b76421ddf3a7fd21f1fc0500700a4e263) ([merge request](gitlab-org/security/gitlab!1662)) **GitLab Enterprise Edition**
|
||||
- [Require sign in for .keys endpoint on non-public instances](gitlab-org/security/gitlab@b090b3f6dee6d21d93595c5e46e6c5c7fc30f1fb) ([merge request](gitlab-org/security/gitlab!1658))
|
||||
- [Only create jira connect NS subscriptions for admins](gitlab-org/security/gitlab@3f2040c0e2c90f3fcafdbf0f86bd2591bd458dff) ([merge request](gitlab-org/security/gitlab!1648))
|
||||
- [Prevent non-admins from configuring Jira connect app](gitlab-org/security/gitlab@fa864c0a2eaf450033f4c594cea07d9f24144cd6) ([merge request](gitlab-org/security/gitlab!1644))
|
||||
### Fixed (137 changes)
|
||||
|
||||
- [Resolve layout issues in notes form](gitlab-org/gitlab@d33a507320c68e2b0812c6a750a9651fc6218e91) ([merge request](gitlab-org/gitlab!68414))
|
||||
- [Set db name when creating connection with new pool size](gitlab-org/gitlab@b15f7229312f5ef3be0e973c37dc6e85934b0ef9) ([merge request](gitlab-org/gitlab!68335))
|
||||
- [Project reporters can drag cards in group board](gitlab-org/gitlab@3f6610dbfc7a6e0c87947d379bcd4e065d12f83b) ([merge request](gitlab-org/gitlab!68126))
|
||||
- [Added ability to create assignee list of descendants](gitlab-org/gitlab@8aee0745d70bfbc18456ac14d1dc31524942b317) ([merge request](gitlab-org/gitlab!66016))
|
||||
- [Merge branch 'dreedy-fix-application_experiment-publish_to_database' into 'master'](gitlab-org/gitlab@2784a285bf1a19e20673793a461d60c1e6b123cd) ([merge request](gitlab-org/gitlab!68389))
|
||||
- [Run serivce discovery on load balancing configuration](gitlab-org/gitlab@788373a15d4bcc2fffd43e230f5227ad37a7d995) ([merge request](gitlab-org/gitlab!68378))
|
||||
- [Fix intermittent 'branch not found' errors when pushing creates an MR](gitlab-org/gitlab@8ab5d0dbf082657889a62f4b6868dce87d9e27c7) ([merge request](gitlab-org/gitlab!68362))
|
||||
- [Fix reference pattern for iterations](gitlab-org/gitlab@4176fa758b7ad7f97d9108cf6687cd92002b2d4a) ([merge request](gitlab-org/gitlab!68350)) **GitLab Enterprise Edition**
|
||||
- [Include all available groups as import target](gitlab-org/gitlab@6530b9a6ac3a96d8493bf29cc2aa4f8f5146e576) ([merge request](gitlab-org/gitlab!68302))
|
||||
- [Allow to apply issue inherited templates using URL](gitlab-org/gitlab@02f50c65b0514dce7282cdd49466d361c6f19b4f) ([merge request](gitlab-org/gitlab!67686)) **GitLab Enterprise Edition**
|
||||
- [Increase spacing between buttons to 8px](gitlab-org/gitlab@0b060a7e62982f7486e77546ffc9a47073010c41) ([merge request](gitlab-org/gitlab!68179))
|
||||
- [Noop migrations containing faulty SQL regex](gitlab-org/gitlab@4fe9fac7b32dc6c9210aa3f94aaf3385fe180494) ([merge request](gitlab-org/gitlab!68296))
|
||||
- [Add migration to update ultimate trial plan limits](gitlab-org/gitlab@af185ed0d94666139a4ae523486d79d2d26e7f6b) ([merge request](gitlab-org/gitlab!67703))
|
||||
- [Fix Security::FindingsFinder to return only the latest findings](gitlab-org/gitlab@38ab2ecef202027ccf6e82d6f854d347d4379b4d) ([merge request](gitlab-org/gitlab!68266)) **GitLab Enterprise Edition**
|
||||
- [Reset oncall-schedule form on cancel or close](gitlab-org/gitlab@6a27ee3c3ba5916cad4025670eb54224ce9bbbf8) ([merge request](gitlab-org/gitlab!68076)) **GitLab Enterprise Edition**
|
||||
- [Do not run refresh_member_authorized_projects callback when importing](gitlab-org/gitlab@d44fcf64e17cc996f2dc76cc1139013c984122de) ([merge request](gitlab-org/gitlab!67975))
|
||||
- [Resolve todo when resolve button is clicked](gitlab-org/gitlab@aad1c72d16bf30668d4d6b4be2b4a4dcf01acafc) ([merge request](gitlab-org/gitlab!67026))
|
||||
- [Hide notification warning for private comments](gitlab-org/gitlab@28d6e0b713a3f493ecfe7991c39a26bfc7779056) ([merge request](gitlab-org/gitlab!68252))
|
||||
- [Remove broken "default" storage initialiser](gitlab-org/gitlab@56bea218e8fedada1754228ea343f8e52ec9419f) ([merge request](gitlab-org/gitlab!68096))
|
||||
- [When ordering epics by title, do so case-insensitively](gitlab-org/gitlab@26c06b42142868e44e67203a682742ae2cc6df40) ([merge request](gitlab-org/gitlab!67125)) **GitLab Enterprise Edition**
|
||||
- [Fix spacing between dropdowns in policy editor](gitlab-org/gitlab@e92004104642a1531abddb2070300b45b30b53d4) ([merge request](gitlab-org/gitlab!68205)) **GitLab Enterprise Edition**
|
||||
- [Fix: Container repository geo syncs stuck in started state](gitlab-org/gitlab@9361b2bf5a2b20dfb9936c5bf409c6ad145c06fd) ([merge request](gitlab-org/gitlab!68080)) **GitLab Enterprise Edition**
|
||||
- [Use sub-batches in BackfillIntegrationsTypeNew background migration](gitlab-org/gitlab@82c41eece6e385796720d6b655e0f2faac7c856c) ([merge request](gitlab-org/gitlab!67971))
|
||||
- [Always use the newest commit in a branch for push events](gitlab-org/gitlab@694ca4e437c7b83eb6bd16d304342b882c716d1d) ([merge request](gitlab-org/gitlab!68168))
|
||||
- [Fix mirror repo table buttons in _mirror_repos.html.haml](gitlab-org/gitlab@6a5afc3afb77d2466552ea51ef18ec144f1cb6ef) ([merge request](gitlab-org/gitlab!68179))
|
||||
- [Optimize #latest_successful_for_refs method](gitlab-org/gitlab@44fe828ed82d49aa35651a8ff676188955ef7474) ([merge request](gitlab-org/gitlab!67315))
|
||||
- [Github Importer: Ensure to fail and log imports on exceptions](gitlab-org/gitlab@752512e0ddd5b39bfd45d7788d0e8adbc36bf7c6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67454))
|
||||
- [Delete backups/tmp after restore](gitlab-org/gitlab@70c0e8b5dae6d5bb46c1ca3d07a7b4b3b2abb7ec) ([merge request](gitlab-org/gitlab!67741))
|
||||
- [Enable the feature flag by default](gitlab-org/gitlab@ce3fff9df470f14afd773fcee60c650fbac006d4) ([merge request](gitlab-org/gitlab!67972))
|
||||
- [Fix due date tooltip on milestone in sidebar](gitlab-org/gitlab@59a6f8df8a69490c73303ebc51ec185ff7a5bf64) ([merge request](gitlab-org/gitlab!68130))
|
||||
- [Add Conan to filters](gitlab-org/gitlab@09e1b50f3f72767d00d48a7ab36a5d5938c20edf) ([merge request](gitlab-org/gitlab!67884)) **GitLab Enterprise Edition**
|
||||
- [Move audit events promo illustration and update text](gitlab-org/gitlab@8292187a159fb958d2299333f4ea9f67cabdfe50) ([merge request](gitlab-org/gitlab!67873)) **GitLab Enterprise Edition**
|
||||
- [Delete private subgroups todos when removing member](gitlab-org/gitlab@f4602b494712e7599f626c8398fcbafd86d21722) ([merge request](gitlab-org/gitlab!68094)) **GitLab Enterprise Edition**
|
||||
- [fix: Regenerate locale/gitlab.pot](gitlab-org/gitlab@a945b87c443c6ca8bca0087325ad69375b5006cb) ([merge request](gitlab-org/gitlab!67243))
|
||||
- [Remove class to fix dark mode readability](gitlab-org/gitlab@d85dee9ff5da493fa08dcc1b9906169e7180ba08) ([merge request](gitlab-org/gitlab!68057))
|
||||
- [Fix adding or updating vulnerability history comments](gitlab-org/gitlab@e0919ad30e9c3d05c07f6dc126a1446dd4bab9d7) ([merge request](gitlab-org/gitlab!68053))
|
||||
- [checks: Fix combinatorial explosion in `#commits_for()`](gitlab-org/gitlab@755ed5e360a3e844e69f0ee408e6fcf5a992a6b2) ([merge request](gitlab-org/gitlab!67827))
|
||||
- [Fix code block input rules](gitlab-org/gitlab@550f64c1c4e5db9da117e92e452f5a2b3e45350f) ([merge request](gitlab-org/gitlab!67980))
|
||||
- [Fix N+1 database queries in pipeline databuilder](gitlab-org/gitlab@042dd0904c747c7b6e3d1b329fdc57f73fe59567) ([merge request](gitlab-org/gitlab!67238))
|
||||
- [Ensure service discovery runs before results are used](gitlab-org/gitlab@7f407002f099361b71cfd847c29076bee387eba3) ([merge request](gitlab-org/gitlab!67899))
|
||||
- [fix: Update locale/gitlab.pot](gitlab-org/gitlab@8d43b9a6ff30525379efc1fb6f71ac069e4010bf) ([merge request](gitlab-org/gitlab!67243))
|
||||
- [Fix basic search full count load](gitlab-org/gitlab@a5b71685514df851fd4adfa3a5c30997edcd9675) ([merge request](gitlab-org/gitlab!67959))
|
||||
- [Update Pikaday colors for dark mode](gitlab-org/gitlab@7303e099b0d55734c494d35520572925fb81a5a6) ([merge request](gitlab-org/gitlab!65247))
|
||||
- [copy: Clarify gift card currency in copy](gitlab-org/gitlab@d3cac3cb6e9c63eeeaa5b5ec61ff2b6ef573df64) ([merge request](gitlab-org/gitlab!67243))
|
||||
- [Fix connection search path being reset](gitlab-org/gitlab@2b4e0ec8318c1caf684307796fc1b40f4f127a29) ([merge request](gitlab-org/gitlab!67725))
|
||||
- [Fix policy_editor environment picker](gitlab-org/gitlab@63f2617f946596832484ed429b22facab8e4d2ad) ([merge request](gitlab-org/gitlab!67888)) **GitLab Enterprise Edition**
|
||||
- [Hide reference path on project board cards](gitlab-org/gitlab@745463582a2b65c3b528161c92fe814110f1ed85) ([merge request](gitlab-org/gitlab!67713))
|
||||
- [Restrict Runner.locked to project runners](gitlab-org/gitlab@f13ac9372b8a652b4aa890b2eca60e5820c210ca) ([merge request](gitlab-org/gitlab!62105))
|
||||
- [Refactor the nuget package updater service](gitlab-org/gitlab@1df93ae5b05ec5b65af0dc423908204f779257ae) ([merge request](gitlab-org/gitlab!66728))
|
||||
- [Fix UI of project topics popover](gitlab-org/gitlab@a69856f69022fce287dde6eeb76f9ca9f2a838e2) ([merge request](gitlab-org/gitlab!67825))
|
||||
- [Handle some WebHookService errors](gitlab-org/gitlab@8273de31461df70dc4de308b6d7e0db8f9ab3868) ([merge request](gitlab-org/gitlab!67555))
|
||||
- [Fix group runner sort dropdown](gitlab-org/gitlab@6df5fb1067d64ea5236542213dde7d593477ad49) ([merge request](gitlab-org/gitlab!67681))
|
||||
- [Get branches from rules using rule_index for security policy](gitlab-org/gitlab@f8ea455f77d73a40e91bc780f4380ce3a89983c5) ([merge request](gitlab-org/gitlab!67607)) **GitLab Enterprise Edition**
|
||||
- [Fix environments regex for etag restful](gitlab-org/gitlab@b045ab5d101806fd85c4c7b7bd9961cbdf67aa57) ([merge request](gitlab-org/gitlab!67708))
|
||||
- [Fix feature flag check for security policy project](gitlab-org/gitlab@4b5da3c24d790908091f6b6c22b1611adf97803c) ([merge request](gitlab-org/gitlab!67654)) **GitLab Enterprise Edition**
|
||||
- [Fix punctuation on help line](gitlab-org/gitlab@2ab0ee394e66aadd8858ae06967c173f2901d4be) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67742)) **GitLab Enterprise Edition**
|
||||
- [Fix pipeline status layout in pipeline editor](gitlab-org/gitlab@8b93d5e1795d44a97f4e3748e154cbb4e2db47a2) ([merge request](gitlab-org/gitlab!67709))
|
||||
- [Fix the npm package already taken validator](gitlab-org/gitlab@d32556e93a4364301df11cf885c55cab9b23778f) ([merge request](gitlab-org/gitlab!67107))
|
||||
- [Ensure SAML Group Sync runs anytime SAML Group Links exist](gitlab-org/gitlab@6da2725d6c512535da26e8dd3bf033aed41e86df) ([merge request](gitlab-org/gitlab!67633)) **GitLab Enterprise Edition**
|
||||
- [Delete test cases when migrating project to a free group](gitlab-org/gitlab@9dd8f87aa8f8bc74d55ff3e67b5b4d0dcd3ae93a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67374)) **GitLab Enterprise Edition**
|
||||
- [Conditionally render create project button](gitlab-org/gitlab@e2be8c827b71e6e88936810fa59d78563029d42a) ([merge request](gitlab-org/gitlab!64196))
|
||||
- [checks: Fix mismatch in `#new_commits()` signature](gitlab-org/gitlab@3b934ec025da7c194d6c99d1d2499532a74ff52a) ([merge request](gitlab-org/gitlab!67581))
|
||||
- [Use correct fingerprint values in recalculate finding UUIDs migration](gitlab-org/gitlab@84a66d666f3e87abff30752cef566a5837604b6e) ([merge request](gitlab-org/gitlab!67578)) **GitLab Enterprise Edition**
|
||||
- [Fix displaying the actual plan name on the billings page](gitlab-org/gitlab@6acefc493abf85ecec6cca31e7d0fda6ede755c3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67572)) **GitLab Enterprise Edition**
|
||||
- [Refactor stop environments service](gitlab-org/gitlab@868d37615865f11771fd384c6c9d121af2fcb670) ([merge request](gitlab-org/gitlab!67485))
|
||||
- [Fix `StoreReportService` by falling back to find by location approach](gitlab-org/gitlab@5274e118980235d36e323959267fa1f59d6f3c03) ([merge request](gitlab-org/gitlab!67568)) **GitLab Enterprise Edition**
|
||||
- [Fix preloading unrelated associations for CommitStatus](gitlab-org/gitlab@1bcd7c0ea5c61fba8a7bae73f5834971c4207518) ([merge request](gitlab-org/gitlab!67439))
|
||||
- [Accept all 2xx HTTP responses when testing the Datadog integration](gitlab-org/gitlab@6f113615d7db7b154237b6e3c7898d4243d867a2) ([merge request](gitlab-org/gitlab!67524))
|
||||
- [Refactor init logic of merge request options on project settings page](gitlab-org/gitlab@5046693207e3d49052a0c49c7cd9b155aaba03aa) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67334))
|
||||
- [Enable the FF ci_modified_paths_of_external_prs](gitlab-org/gitlab@bbe6048a6e28764fcb731f14a4731ae583fa12f3) ([merge request](gitlab-org/gitlab!67458))
|
||||
- [Code-Quality.gitlab-ci.yml: automatically clean-up docker container](gitlab-org/gitlab@65fec3a4316d294fcfe9f0efd4d7faf81ea926ce) ([merge request](gitlab-org/gitlab!66910))
|
||||
- [Update min selectable number for subscription buy process](gitlab-org/gitlab@ac7b25f3b4310945dd8ee72f8681a1a6b30070a2) ([merge request](gitlab-org/gitlab!67430)) **GitLab Enterprise Edition**
|
||||
- [Make `DbCleaner` and `BeforeAllAdapter` to support many connections](gitlab-org/gitlab@2625e7a41ab0d22c3df2f9937cec13fc000737e0) ([merge request](gitlab-org/gitlab!67330))
|
||||
- [feat: Add one more i18n translation string](gitlab-org/gitlab@58edbc171d217caeee917e3cee22ee6e8aa84abb) ([merge request](gitlab-org/gitlab!67243))
|
||||
- [Fix double escaping when clicking WebIDE button](gitlab-org/gitlab@509e0a6251d745fcc63b8202e0eb5749fb1c5939) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67360))
|
||||
- [Fix some button border colors in dark mode](gitlab-org/gitlab@72645ee3e3331be014b8c8ab7ad211b96e7851ee) ([merge request](gitlab-org/gitlab!67389))
|
||||
- [Reschedule `latest_pipeline_id` population with all artifact types](gitlab-org/gitlab@f22009e14da925a1f031211c9529e8986e2200fb) ([merge request](gitlab-org/gitlab!67163))
|
||||
- [feat: Fix environments survey i18n strings](gitlab-org/gitlab@31bbd796e1e617e1507295af7aa1fae9e4a82c5b) ([merge request](gitlab-org/gitlab!67243))
|
||||
- [Set `latest_pipeline_id` and mark project as vulnerable first](gitlab-org/gitlab@99055f4f157e39f13c47d54cd52eedb23886b817) ([merge request](gitlab-org/gitlab!67165)) **GitLab Enterprise Edition**
|
||||
- [Fix assignee avatar tooltip w special char names](gitlab-org/gitlab@b1118c62131ba162e9037608fe6332f80f86672e) ([merge request](gitlab-org/gitlab!67250))
|
||||
- [Geo Node Form Regression - Realitive URLs broken](gitlab-org/gitlab@99a11efdf7cfc49fed7fddedfbcd835fc83d5d6b) ([merge request](gitlab-org/gitlab!67253)) **GitLab Enterprise Edition**
|
||||
- [Fix Stickiness to Match Unleash API](gitlab-org/gitlab@228279665f2711fa819c56edcb1d805554ae7634) ([merge request](gitlab-org/gitlab!66676))
|
||||
- [Use new and old paths instead of just the new path for diff batching](gitlab-org/gitlab@89a8c4f937cd74fe05c87072b74599a86541a11f) ([merge request](gitlab-org/gitlab!66873))
|
||||
- [Continue code quality widget polling while parsing](gitlab-org/gitlab@0ba54b5fa0762755d7d5914e3b02fe5c0ea19ea2) ([merge request](gitlab-org/gitlab!67176))
|
||||
- [Fix empty recursive query for base_and_ancestors](gitlab-org/gitlab@a65e45494b41dfbc0710c88a6dc7c8f83d7cc3de) ([merge request](gitlab-org/gitlab!67182))
|
||||
- [fix: Atom feed for commit list should point to path](gitlab-org/gitlab@ef0a744cbd61e241d89b88fc2981f22da1d63362) ([merge request](gitlab-org/gitlab!65599))
|
||||
- [Add missing `Delete user and contributions` action in admin user view](gitlab-org/gitlab@8cb36fada3407a9ed901b631a11ed7ec7cef1793) ([merge request](gitlab-org/gitlab!67161))
|
||||
- [Replace the success btn with the confirm button](gitlab-org/gitlab@aa65e97fb8bdfad48fe93f7f4bd91f1fc140452d) ([merge request](gitlab-org/gitlab!67148))
|
||||
- [Run sync BuildFinishedWorker operations always before](gitlab-org/gitlab@99a695e1cb25b2b77c54b267f98fcefdc213e831) ([merge request](gitlab-org/gitlab!67117)) **GitLab Enterprise Edition**
|
||||
- [Prevent weightSum to be updated on child epic fetch](gitlab-org/gitlab@9b6b548be76840616604657f09804bce934aa978) ([merge request](gitlab-org/gitlab!67116)) **GitLab Enterprise Edition**
|
||||
- [Fix Review App Multiple Deletion API payload](gitlab-org/gitlab@0bad1c716da56201307c6eacd5e142a09a6a99f0) ([merge request](gitlab-org/gitlab!67102))
|
||||
- [Fix redirect loop when relative url root is blank](gitlab-org/gitlab@d586b5b796c5ce94c4db7e0a9d6991e4b3b008f7) ([merge request](gitlab-org/gitlab!67094))
|
||||
- [Fix backup.rake from trying to tar non-existent directories](gitlab-org/gitlab@042a203f45ef9ac957bb4863223b88273f4314e0) ([merge request](gitlab-org/gitlab!67090))
|
||||
- [Fix `Ci::Artifactable#selective_sync_scope` cross-join DBs](gitlab-org/gitlab@6ac86e5781a191bc97e2eb94bafd604d745318c6) ([merge request](gitlab-org/gitlab!66703)) **GitLab Enterprise Edition**
|
||||
- [Use parent integration settings when reverting from custom settings](gitlab-org/gitlab@c61dd33e9e1d8c6dcbd7b252820c8e6feae414df) ([merge request](gitlab-org/gitlab!66663))
|
||||
- [Adjust documentation paths](gitlab-org/gitlab@207328a036b6b3639edde60f1e423baafe607568) ([merge request](gitlab-org/gitlab!67037))
|
||||
- [Rescue stuck resource groups](gitlab-org/gitlab@5468378c847f9f33baa7770ba2a45684fe745071) ([merge request](gitlab-org/gitlab!66729))
|
||||
- [Decode square brackets with "queryToObject"](gitlab-org/gitlab@957390387d54eb7a8fc27825972949b919426d3f) ([merge request](gitlab-org/gitlab!66846))
|
||||
- [Advanced Search should index trials regardless of seats](gitlab-org/gitlab@1983c5ffabf2ca9aaad8bd6828ddf218ae904ccb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66665)) **GitLab Enterprise Edition**
|
||||
- [Validate timezone presence on schedule creation form](gitlab-org/gitlab@ae06e067657b6822185f3e525314d1e8f674d2eb) ([merge request](gitlab-org/gitlab!66946)) **GitLab Enterprise Edition**
|
||||
- [Update timeout help page URLs in job sidebar](gitlab-org/gitlab@3fefa96f21f535f8beac9224da88baa232ab2716) ([merge request](gitlab-org/gitlab!63992))
|
||||
- [Fix dates being incorrectly set on epic creation](gitlab-org/gitlab@d2f0b0a7ae36c62540ebf631d2bb2619bc7fcf2c) ([merge request](gitlab-org/gitlab!66809)) **GitLab Enterprise Edition**
|
||||
- [Fix contribution analytics MR closed count param](gitlab-org/gitlab@b8c3613c46d707bdbf1437f9bf7060e8660e6edc) ([merge request](gitlab-org/gitlab!66805)) **GitLab Enterprise Edition**
|
||||
- [Fix alert positioning and content for oncall schedules page](gitlab-org/gitlab@4b228dce42ca41b802aaef26fdc5f1a534da92cf) ([merge request](gitlab-org/gitlab!66858)) **GitLab Enterprise Edition**
|
||||
- [Delete pipeline subscriptions when migrating project to a free group](gitlab-org/gitlab@67223c66bd62a70acfa62e09315e00ecbc78d8f5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66695)) **GitLab Enterprise Edition**
|
||||
- [Remove trial suffix from plan titles that include it](gitlab-org/gitlab@739805449ba860e34b3129b5523bf08b14e1f969) ([merge request](gitlab-org/gitlab!66578)) **GitLab Enterprise Edition**
|
||||
- [Fix "Remove" button in Slack app integration](gitlab-org/gitlab@23e700d56c86c08db55496a0c5de2915c16e213d) ([merge request](gitlab-org/gitlab!66506))
|
||||
- [Fix :admin_compliance_framework to only be true if the user is an owner](gitlab-org/gitlab@bbcc3fccfdaec47c07214b2d258d3df169419a53) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66745)) **GitLab Enterprise Edition**
|
||||
- [Fix SAML SSO login redirects not working](gitlab-org/gitlab@6e9734208d3a0c59ab38d1b8fee43031b8e8fa6e) ([merge request](gitlab-org/gitlab!66791)) **GitLab Enterprise Edition**
|
||||
- [Fix Error 500 viewing pipelines with invalid UTF-8 data](gitlab-org/gitlab@e804c0090501fb4c92e067f16f962018efef1f26) ([merge request](gitlab-org/gitlab!66686))
|
||||
- [Map jira users for server version by 'key' attribute](gitlab-org/gitlab@6f8b19797e3c566ebb2327c8c52fec0215edb689) ([merge request](gitlab-org/gitlab!66670))
|
||||
- [Fix missing CSS variables in Darkmode](gitlab-org/gitlab@5609901ed087928ec7ea734472ace7a2ce3df074) ([merge request](gitlab-org/gitlab!66640))
|
||||
- [Fix whats new top positioning with system-header and performance-bar](gitlab-org/gitlab@ad34170b6b0f805c011982b7771196ab0c104be4) ([merge request](gitlab-org/gitlab!66660))
|
||||
- [GithubImporter: match user by external id only from github.com](gitlab-org/gitlab@26560527f3f0483c4c232fa7c27e66ee788c2340) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66387))
|
||||
- [Hide edit severity btn for users without permissions](gitlab-org/gitlab@bc2a389988695fbf213d8288011e598458d4feb0) ([merge request](gitlab-org/gitlab!66642))
|
||||
- [Fix group level vulnerability permissions](gitlab-org/gitlab@35634bd2d585c5dd1b6f702224679e595b9d059c) ([merge request](gitlab-org/gitlab!66312)) **GitLab Enterprise Edition**
|
||||
- [Ignore searching in full path in GroupsFinder](gitlab-org/gitlab@308b908f087969127e63525bdfaf0fd73e79b3bc) ([merge request](gitlab-org/gitlab!66431))
|
||||
- [Fix 400 errors not being logged in multipart middleware](gitlab-org/gitlab@25a7daed2336f0ce72601f7d58cc5876813fff46) ([merge request](gitlab-org/gitlab!66595))
|
||||
- [Fix subgroup epic path on epic boards](gitlab-org/gitlab@882e5ff17d5b11314a9b7fc5eb7e359462370851) ([merge request](gitlab-org/gitlab!66587)) **GitLab Enterprise Edition**
|
||||
- [Remove extra margin above issue navigation tabs](gitlab-org/gitlab@069959aca43ae654d4aa7c380e5dc0e23459d7e8) ([merge request](gitlab-org/gitlab!60824))
|
||||
- [Activate correct nav item for Admin::LicensesController](gitlab-org/gitlab@8055de728315842c5bb5d79204e24a67f2e7ed12) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66051)) **GitLab Enterprise Edition**
|
||||
- [Prevent terms from being created if blank](gitlab-org/gitlab@93a88ddb8aa26bd7aac9f8ee0fa56ac6ddcff768) ([merge request](gitlab-org/gitlab!66437))
|
||||
- [Delete PATs when transfering project to a free group](gitlab-org/gitlab@6e311075dc7f222e1af24b7f689e7eae3f7c0fe2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65803)) **GitLab Enterprise Edition**
|
||||
- [Fix epic tab dropdown menu overlay on mobile](gitlab-org/gitlab@3a442ae6b69e9b30ea7d26607ca7febf0832701b) ([merge request](gitlab-org/gitlab!66498)) **GitLab Enterprise Edition**
|
||||
- [Use the correct text for tooltip](gitlab-org/gitlab@e770d5dcafa74bb6dbabad2dfc53922a7001afd5) ([merge request](gitlab-org/gitlab!66454))
|
||||
- [Fix audit events empty space](gitlab-org/gitlab@27f000537f2a087441617cb2aac3d98649af6ce6) ([merge request](gitlab-org/gitlab!52590)) **GitLab Enterprise Edition**
|
||||
- [Extend basic authentication detection for rate limiting](gitlab-org/gitlab@dcf8011ae3d29a6d10eb9169d0a79812e309604c) ([merge request](gitlab-org/gitlab!63287))
|
||||
- [Fix labels dropdown causing form submission](gitlab-org/gitlab@cf104525ed49cb9bc4fa0e8a9dd810be7c669868) ([merge request](gitlab-org/gitlab!66435))
|
||||
- [Fix: Sidekiq workers delete each other's metrics](gitlab-org/gitlab@52edbc6e312c826c5b47f5cf65d60adee770b031) ([merge request](gitlab-org/gitlab!66432))
|
||||
- [Drop invalid UTF-8 when displaying in job logs](gitlab-org/gitlab@c481f5a64640cf2f08ca5315a6b9fae1f8736806) ([merge request](gitlab-org/gitlab!66423))
|
||||
- [Fix spam checking to consider updater of issue instead of author](gitlab-org/gitlab@427224db3ee6c98267b39f4cf2ed49f2060d0e6e) ([merge request](gitlab-org/gitlab!66408))
|
||||
- [Return error when moving issues between not authorized lists](gitlab-org/gitlab@f2aa6c9247c43c04fc4c994b58f82cfa083e9837) ([merge request](gitlab-org/gitlab!66101))
|
||||
- [Look up SSH keys by SHA256 fingerprint, not MD5 fingerprint](gitlab-org/gitlab@1428e0e4e087b2e9b8a2250eca5d982d3b984e8e) ([merge request](gitlab-org/gitlab!66371))
|
||||
- [Skip already downloaded LFS objects in mirror updates](gitlab-org/gitlab@36ad365c4779f9e7ceb24bd2a6b8adbef6bc393c) ([merge request](gitlab-org/gitlab!66340))
|
||||
- [Bump gitlab-omniauth-openid-connect to v0.8.0](gitlab-org/gitlab@89a28e5b42c119cc1c929ec8aff0b0e4d51ae08c) ([merge request](gitlab-org/gitlab!65782))
|
||||
- [Better links on the subscription details page](gitlab-org/gitlab@92328777180b62a546b06e921f8a5a3bcdf7025c) ([merge request](gitlab-org/gitlab!66319)) **GitLab Enterprise Edition**
|
||||
- [Allow group bot to http authenticate](gitlab-org/gitlab@a33ec9fe408eae176eabdc571ccfb77ed608bdde) ([merge request](gitlab-org/gitlab!65788))
|
||||
|
||||
### Changed (117 changes)
|
||||
|
||||
- [Update create merge request button on last push event](gitlab-org/gitlab@72ad366f7e8e6c9af33df5a804f72727300505fb) ([merge request](gitlab-org/gitlab!63103))
|
||||
- [Deprecate Secure user scan metrics](gitlab-org/gitlab@c4ae56bccaefc7bd43c38284df671be7268eb987) ([merge request](gitlab-org/gitlab!67738)) **GitLab Enterprise Edition**
|
||||
- [Move sast latest template to stable](gitlab-org/gitlab@b0f2ee726da6fb3008829273ddc8cbe613220df3) ([merge request](gitlab-org/gitlab!68429))
|
||||
- [Migrate epic sidebar todo button to widget](gitlab-org/gitlab@455b0ca188261b3b958aaaf0c5706aa35678b179) ([merge request](gitlab-org/gitlab!68325)) **GitLab Enterprise Edition**
|
||||
- [Remove optional languge from Compliance framework label](gitlab-org/gitlab@0b309a01d512b9e8e80cfc6f80d09bf182d41ec1) ([merge request](gitlab-org/gitlab!68304))
|
||||
- [Add empty artifacts message](gitlab-org/gitlab@dd81c5735070c4c62250bb8d7fcde8afdf6d045b) ([merge request](gitlab-org/gitlab!68166))
|
||||
- [Flatten CI config rules](gitlab-org/gitlab@0b8c81b80ac547ef4e1eca25e101e5c23cc18322) ([merge request](gitlab-org/gitlab!67922))
|
||||
- [Provide more information in design version selector](gitlab-org/gitlab@0328208f54812ca37ed9d1f6f922f1458aa435d0) ([merge request](gitlab-org/gitlab!67844))
|
||||
- [Set immutable results to true](gitlab-org/gitlab@e1c1ff7531c0901243bb4a259e813b7bb8ab9d93) ([merge request](gitlab-org/gitlab!68265))
|
||||
- [Renames the Base terraform template jobs for better scaling](gitlab-org/gitlab@133c2c15a860e78c07f482eb72576d8172ec3436) ([merge request](gitlab-org/gitlab!67719)) **GitLab Enterprise Edition**
|
||||
- [Remove CI builds for test and staging stages in VSA](gitlab-org/gitlab@755fdd441370d8e18482f7b5dd6a23a6c8325ae4) ([merge request](gitlab-org/gitlab!68000))
|
||||
- [Update Auto DevOps' auto-deploy-image to v2.12.0](gitlab-org/gitlab@c1a4dbaf97763326a2f65a0603316383ee25dda5) ([merge request](gitlab-org/gitlab!68103))
|
||||
- [Remove protocol from Dependency Proxy UI](gitlab-org/gitlab@c4120fb1988fe7ae0576bc124f84eb774453864b) ([merge request](gitlab-org/gitlab!68099))
|
||||
- [Replace plain text application secret with copy button](gitlab-org/gitlab@7953fb39fd0a356f5ca557695aa5a944d7bb4ee3) ([merge request](gitlab-org/gitlab!67453))
|
||||
- [Improve button layout](gitlab-org/gitlab@249edf5117ee7b9807a0b39ca86f11359dfefaf7) ([merge request](gitlab-org/gitlab!68074))
|
||||
- [Open addon purchase in the same window](gitlab-org/gitlab@facf1d48951a98b277d4ecc1ac1575485dd5e827) ([merge request](gitlab-org/gitlab!68009)) **GitLab Enterprise Edition**
|
||||
- [Remove efficient_counter_attribute flag](gitlab-org/gitlab@9118e2bc181855accdede835fd7ee7de22a3679b) ([merge request](gitlab-org/gitlab!68056))
|
||||
- [Updated message on DevOps Adoption Report](gitlab-org/gitlab@cf05575659cc1aa29048fa7dc2b25254340a1c27) ([merge request](gitlab-org/gitlab!68034)) **GitLab Enterprise Edition**
|
||||
- [Move issue_type enum to WorkItem::Type base_type](gitlab-org/gitlab@cfd2c0d16cf82b1176aa29e712ae23b90f653652) ([merge request](gitlab-org/gitlab!67434))
|
||||
- [Add group value stream metrics UI to project VSA](gitlab-org/gitlab@5a549aad8eecd25be2d7dff7d984e25af495c02c) ([merge request](gitlab-org/gitlab!66835))
|
||||
- [Count epics against issue creation rate limit](gitlab-org/gitlab@2849252226dc08971915b10b87e7995509a55aa6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67179)) **GitLab Enterprise Edition**
|
||||
- [Migrate Markdown Editor toolbar buttons to GlButton](gitlab-org/gitlab@4bf3cc6e0ab8ae26ab00f1d753d14b3625e7e200) ([merge request](gitlab-org/gitlab!67872))
|
||||
- [Change date time formatting for corpus managment](gitlab-org/gitlab@8b897aca8323a4fdad053b0fcfa15cdb349f6d16) ([merge request](gitlab-org/gitlab!66947))
|
||||
- [Global Search - Add spacing/border to code results](gitlab-org/gitlab@a9e194a03817ff25c19bb54ea85d3ad247a4443c) ([merge request](gitlab-org/gitlab!67548))
|
||||
- [Standarize board column highlight style](gitlab-org/gitlab@fe023377603c70f45c44c2b8beeab2f9ef91c9fd) ([merge request](gitlab-org/gitlab!67817))
|
||||
- [Added linked pipelines to commit](gitlab-org/gitlab@a116a7509ea394b47de27c92dbc6378e2613dd3b) ([merge request](gitlab-org/gitlab!66564)) **GitLab Enterprise Edition**
|
||||
- [Update nothing-here-block to utilize Pajamas spacing scale](gitlab-org/gitlab@df607786c9c0870c5394171b7ca0efdd90f1791a) ([merge request](gitlab-org/gitlab!67893))
|
||||
- [Show due date in gray when issue is closed in issues list](gitlab-org/gitlab@d4c66ab0d1f3bab72956dfdd117cb09b618e2e64) ([merge request](gitlab-org/gitlab!67874))
|
||||
- [Refactor the Ci::Minutes::Additional pack service](gitlab-org/gitlab@3aa0402f9cd0d1cef845da6857b7583fe0d967d7) ([merge request](gitlab-org/gitlab!67513)) **GitLab Enterprise Edition**
|
||||
- [Enable ci_skip_before_parsing_yaml by default](gitlab-org/gitlab@511f4c7133556548eb7efef185b626832a0244a4) ([merge request](gitlab-org/gitlab!67839))
|
||||
- [Added cloneDeep to prevent mutating cache](gitlab-org/gitlab@0dfe7d745f1f6f64189217725cfaf25e38772085) ([merge request](gitlab-org/gitlab!67762))
|
||||
- [Don't show due date in red on epic related issues if issue is closed](gitlab-org/gitlab@debe45db3fab5f04786f5e3f7ae42581ee32b006) ([merge request](gitlab-org/gitlab!67492))
|
||||
- [Deprecate build trace sections tables by renaming](gitlab-org/gitlab@612ebc64a6ad2689226b75e80f405a81714015d2) ([merge request](gitlab-org/gitlab!67618))
|
||||
- [Return API error when inviting restricted email](gitlab-org/gitlab@22d33f610962a60139ed4502ae4a10ffe2b9fe25) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/64807)) **GitLab Enterprise Edition**
|
||||
- [Migrate md header buttons to gl-buttons](gitlab-org/gitlab@ea2677962494a278899b25c01992816c5e05db70) ([merge request](gitlab-org/gitlab!67058))
|
||||
- [Removed dependency on $ from the highlighter](gitlab-org/gitlab@21e1291645007dd8f3cf2d7d683a786bafebee07) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67771))
|
||||
- [Show tax line even when tax has zero amount](gitlab-org/gitlab@1fa181bdc0ebf9bc1ff549302e139a758df8061c) ([merge request](gitlab-org/gitlab!67479)) **GitLab Enterprise Edition**
|
||||
- [Update design management wording in activity feed](gitlab-org/gitlab@b8e97f970b3fc7f4910a13d904298dd902bc4983) ([merge request](gitlab-org/gitlab!67599))
|
||||
- [Revert Dependency Proxy permission](gitlab-org/gitlab@7dc1c46c26424c3f534f20a64b02a75bee5c82ea) ([merge request](gitlab-org/gitlab!67696))
|
||||
- [Placeholder for "Number of employees" in trial](gitlab-org/gitlab@162a68a1edd0c31292bc8e854750760fab8aac85) ([merge request](gitlab-org/gitlab!67688)) **GitLab Enterprise Edition**
|
||||
- [Allow 10% overage for true-ups when uploading a license](gitlab-org/gitlab@62d53a437d4caf5aba8862c482dfdb4c80eaaa25) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67508)) **GitLab Enterprise Edition**
|
||||
- [Prepare On-Demand DAST for CI sharding initiative](gitlab-org/gitlab@63777dad18a270b5816b6eb5ddd8a8d2d54635d2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66709))
|
||||
- [Move DevOps Score callout to Vue](gitlab-org/gitlab@da1decdf345504589caa6b0495808aabd5bf5760) ([merge request](gitlab-org/gitlab!67482))
|
||||
- [Change Evidence Supporting Messages to array](gitlab-org/gitlab@0a29032709474631ce6a95c3e09eb2f769df0ba5) ([merge request](gitlab-org/gitlab!67620)) **GitLab Enterprise Edition**
|
||||
- [Remove feature flag](gitlab-org/gitlab@7b4d27b032a8d4b37634d4fd4f9b5a7613213a64) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65473))
|
||||
- [Make `ci_structure.sql` to be equal](gitlab-org/gitlab@260c1406999c6494abe3f120f31817b5d4cb48c7) ([merge request](gitlab-org/gitlab!67433))
|
||||
- [Add deployment_id to deployment payloads](gitlab-org/gitlab@def00feaeb7f84026c17f18ed6ddb63d4470cbbf) ([merge request](gitlab-org/gitlab!67577))
|
||||
- [Allow downloading archives using PRIVATE-TOKEN](gitlab-org/gitlab@0ed8b60830ceea4c1bf61acabfb39882386c0926) ([merge request](gitlab-org/gitlab!67470))
|
||||
- [Global Search - Track top nav searches](gitlab-org/gitlab@8795067b6f6445c34cc029301816f0ea40830a14) ([merge request](gitlab-org/gitlab!67187))
|
||||
- [Allow licenses with a 10% overage of users for renewals](gitlab-org/gitlab@df904001810d236f3707dcb2008b57e634b23489) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67507)) **GitLab Enterprise Edition**
|
||||
- [Render base path error based on report status](gitlab-org/gitlab@0c9b80900b15aff49b9d56859b49201d35135d86) ([merge request](gitlab-org/gitlab!67370))
|
||||
- [Backfill `type_new` column on integrations](gitlab-org/gitlab@b03e5680586ab456e51cbadad85a2e9f65cffedc) ([merge request](gitlab-org/gitlab!66928))
|
||||
- [Configure Elasticsearch Ruby client without retry by default](gitlab-org/gitlab@1b7c3ff7be6f5607a26d023f63cd51c7efa75e83) ([merge request](gitlab-org/gitlab!67273)) **GitLab Enterprise Edition**
|
||||
- [Update copy in account recovery settings global alert](gitlab-org/gitlab@f30bd5cd42b8bb75698cb1679cc39114366df819) ([merge request](gitlab-org/gitlab!66693))
|
||||
- [Allow setting of container registry visibility in project settings UI](gitlab-org/gitlab@b733c4c0f3b603a3fac1d166eb4e022b12cadc8f) ([merge request](gitlab-org/gitlab!55079))
|
||||
- [Add Gitlab::GithubImport::Logger with default values](gitlab-org/gitlab@394d44a22c96f4443d1c8bd33255ba97d4d7e897) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65968))
|
||||
- [Expose iid in the pipelines entity](gitlab-org/gitlab@6ec7689cee6ae2d0c58abba7eaf808dd1875e4e6) ([merge request](gitlab-org/gitlab!67365))
|
||||
- [Added a hack to set labels](gitlab-org/gitlab@aa14b441f7b443e2389235e66ff2fd70b78e2aa6) ([merge request](gitlab-org/gitlab!67322))
|
||||
- [Update terms of service docs and UI text](gitlab-org/gitlab@45d1020ef7bddd1bb268da83caaaff9848126023) ([merge request](gitlab-org/gitlab!67002))
|
||||
- [Allow usage of severity quickaction on create](gitlab-org/gitlab@a503a45625d1f819ebd57be31e55093a2f901b40) ([merge request](gitlab-org/gitlab!67380))
|
||||
- [Implement JWT for customers-dot proxy](gitlab-org/gitlab@68d9fb11446cbfe156a8ac437d99ea6ef9c2e510) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65204))
|
||||
- [Use 'branch' icon instead of 'fork'](gitlab-org/gitlab@a19a6cb658c0a9938e09ef500834dd7f7657899d) ([merge request](gitlab-org/gitlab!67087))
|
||||
- [Remove dataBackground property from chart](gitlab-org/gitlab@6b8084d3992ff9f6797250aa6f0325201aa9df7f) ([merge request](gitlab-org/gitlab!67323))
|
||||
- [Update UI help links](gitlab-org/gitlab@72b04e98c294853144c4a74b92bfbb8433c94470) ([merge request](gitlab-org/gitlab!67164)) **GitLab Enterprise Edition**
|
||||
- [Update runner description text](gitlab-org/gitlab@7644bdaab8eeee8727a449a9eaaec61e7c6f4e5f) ([merge request](gitlab-org/gitlab!67153))
|
||||
- [Handle int and bigint namespaces.id column](gitlab-org/gitlab@1f78b6c6d27bef78180a99e434851a29972b3e62) ([merge request](gitlab-org/gitlab!67288))
|
||||
- [copy: Update survey callout text](gitlab-org/gitlab@5c16aff831ea73b59ad8783cbef44acdd54723ee) ([merge request](gitlab-org/gitlab!67243))
|
||||
- [Changed the column order in the jobs table](gitlab-org/gitlab@8ca06871584e69757bdf5d14134b234118f005df) ([merge request](gitlab-org/gitlab!67071))
|
||||
- [Add field validations for Finding Evidence models](gitlab-org/gitlab@773d965be22c399b471aa10fa96fd39f749a5ec9) ([merge request](gitlab-org/gitlab!66394)) **GitLab Enterprise Edition**
|
||||
- [Use gitaly-backup for repository backups by default](gitlab-org/gitlab@4a71440b65a007d3e8723cda7c1d82add279fa08) ([merge request](gitlab-org/gitlab!67082))
|
||||
- [Enhance UX on Environment Form with Loading Icon](gitlab-org/gitlab@9b63a6789a4efa9059788e1d33f646ac7569790c) ([merge request](gitlab-org/gitlab!66750))
|
||||
- [Include retried jobs in pipeline payloads for Datadog integration](gitlab-org/gitlab@a5327bf567c1c0d05319f4ecaf9eb54316e1eb39) ([merge request](gitlab-org/gitlab!67031))
|
||||
- [Expose mergeRequestCounts for Issue GraphQL type](gitlab-org/gitlab@67ebd3eea7e70ae6229bbedc966ffe0e4da7a4da) ([merge request](gitlab-org/gitlab!65931))
|
||||
- [Hide pull mirror update time from guest visitors](gitlab-org/gitlab@11c73b3a757f20903fb2ebf41b39e58a2576e199) ([merge request](gitlab-org/gitlab!67133))
|
||||
- [Use feature flag for finding links](gitlab-org/gitlab@1083165950fb2f3171cc2ce63a588ca8cfe01b53) ([merge request](gitlab-org/gitlab!66868)) **GitLab Enterprise Edition**
|
||||
- [Unified preloading stylesheets](gitlab-org/gitlab@a712e481804acd57d7dadca3c1c6cfba38438ec4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67045))
|
||||
- [Promote source activity as the invite email body](gitlab-org/gitlab@08b9c03a0034471a43e0c100540e99a55b4add11) ([merge request](gitlab-org/gitlab!66560))
|
||||
- [Include deployment_tier to pipeline environment hook attributes](gitlab-org/gitlab@925656b989c8095223389bd01a04ae248aa0c5ca) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66744))
|
||||
- [Imrpove model validation when adding spent time](gitlab-org/gitlab@4d8f719c70fc5e297608d115936d2bd682837fee) ([merge request](gitlab-org/gitlab!66973))
|
||||
- [Boards sidebar design tweaks](gitlab-org/gitlab@241af67cf80bdc6fe8bb0d2b5826fcc2f4eefb5a) ([merge request](gitlab-org/gitlab!65297))
|
||||
- [Make experiments API a filter of features API](gitlab-org/gitlab@b7cfcaf8738ed7f808aa17a694576afafb1a8b7e) ([merge request](gitlab-org/gitlab!66488)) **GitLab Enterprise Edition**
|
||||
- [Add filitering by issue type in issue boards](gitlab-org/gitlab@357de2d72600ce90b77954152deeee7c7f3113da) ([merge request](gitlab-org/gitlab!66871))
|
||||
- [Fix alt tag on participant avatars](gitlab-org/gitlab@34cb32772a4290ca80504d7a5a4a37144a966cb6) ([merge request](gitlab-org/gitlab!66952))
|
||||
- [Use popovers for inline code quality](gitlab-org/gitlab@6bbf1dcb5943f4d54ead7d7b6976765cfbe8fab8) ([merge request](gitlab-org/gitlab!64371)) **GitLab Enterprise Edition**
|
||||
- [Update UI text for CI/CD settings](gitlab-org/gitlab@21d8a6422b7d537a57ea7b3fb720b8562f1b35d3) ([merge request](gitlab-org/gitlab!66902)) **GitLab Enterprise Edition**
|
||||
- [Use gitaly-backup for repository backups by default](gitlab-org/gitlab@cb8a1c47a59df1b599cbb2e8338c4a45a5e7f19b) ([merge request](gitlab-org/gitlab!66019))
|
||||
- [Add request and response to SupportingMessage](gitlab-org/gitlab@a446cd93ee9ac8fb188210727f7969f56640b937) ([merge request](gitlab-org/gitlab!66398))
|
||||
- [Remove DOMPurify attribute sanitization](gitlab-org/gitlab@9dcf3f0b663ec9ed516d25e59ef5e946e1de09b1) ([merge request](gitlab-org/gitlab!66502))
|
||||
- [Update documentation to use compliance report not compliance dashboard](gitlab-org/gitlab@5f486d1b8319e1a742b12999d25693dfde21acf4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66730)) **GitLab Enterprise Edition**
|
||||
- [Make vulnerability-dismissal error more descriptive](gitlab-org/gitlab@11df1ff9b59a1b9188118ef1af67888492eda2c7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66722)) **GitLab Enterprise Edition**
|
||||
- [Increase contrast for successful pipelines in charts](gitlab-org/gitlab@975b1a97af86fe912af138711d6831e26a05a911) ([merge request](gitlab-org/gitlab!66426))
|
||||
- [Add labels as search token in Jira issues list](gitlab-org/gitlab@9c2bacff3dddea3d06a0cd3a84e15d5f3676b2c4) ([merge request](gitlab-org/gitlab!65817)) **GitLab Enterprise Edition**
|
||||
- [Add linked pipelines to component](gitlab-org/gitlab@0e4ec627c373246ff9c347fa9054aca016787521) ([merge request](gitlab-org/gitlab!66748)) **GitLab Enterprise Edition**
|
||||
- [ff: Remove `:list_commits` feature flag](gitlab-org/gitlab@e8a98485fe74bf18904865eb12a372cd4a13aa3a) ([merge request](gitlab-org/gitlab!66741))
|
||||
- [flags: Drop `fetch_remote_params` feature flag](gitlab-org/gitlab@f1ef0bd00ce621880033a6420e4ae634037070bc) ([merge request](gitlab-org/gitlab!66513))
|
||||
- [flags: Drop `update_remote_mirror_inmemory` feature flag](gitlab-org/gitlab@62586dbc942d7d9f242556d3a165044f853b8332) ([merge request](gitlab-org/gitlab!66513))
|
||||
- [Migrate Edit Environments Form to Vue](gitlab-org/gitlab@961d0d8a6d612860834c27424ddeddab0975005f) ([merge request](gitlab-org/gitlab!66573))
|
||||
- [Sort according to the field in Dependency List](gitlab-org/gitlab@52c76470c1c1258b53841d4598a4fe013f61c507) ([merge request](gitlab-org/gitlab!66672)) **GitLab Enterprise Edition**
|
||||
- [Show minor ellipsis when loading large blobs](gitlab-org/gitlab@077bd312a56996a5e0f6cffa890ebda062474b8d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66652))
|
||||
- [Polish tab count and create button in test cases](gitlab-org/gitlab@e02a2af69c347c9480091a44009a8f16af0ea027) ([merge request](gitlab-org/gitlab!66608)) **GitLab Enterprise Edition**
|
||||
- [Edit Grafana UI text in admin area](gitlab-org/gitlab@697c2f4b4b9fb52d0f74cea66ce28be5baa3c99f) ([merge request](gitlab-org/gitlab!66405))
|
||||
- [Add link to GitLab Changelog With Version Check](gitlab-org/gitlab@c70f0e828d8eca8a2e58182ff35e3c44c73e59cf) ([merge request](gitlab-org/gitlab!66486))
|
||||
- [The readme checkbox for new projects is checked by default](gitlab-org/gitlab@d71342649242ea28c75f8cbce04c97ccd32cc72e) ([merge request](gitlab-org/gitlab!66558))
|
||||
- [Add linked pipelines to component](gitlab-org/gitlab@d3cb02d059a61341b6aa88df6b6fb2828579c5c5) ([merge request](gitlab-org/gitlab!66274))
|
||||
- [Move the compliance framework selector to a new expandable section](gitlab-org/gitlab@c6582d8ca858aa505b7d94984f10b21839cee593) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66429)) **GitLab Enterprise Edition**
|
||||
- [Skip in-product marketing emails when on trial](gitlab-org/gitlab@e43b7f200dbbb2706d45faeda77285e9a074ab3e) ([merge request](gitlab-org/gitlab!66269)) **GitLab Enterprise Edition**
|
||||
- [Force user to re-enter integration password](gitlab-org/gitlab@fc7722996d41d733d0143f0878b954b8dda2e079) ([merge request](gitlab-org/gitlab!65569)) **GitLab Enterprise Edition**
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@13ac932c97c399fe04698890b244a836e7bb8e9e) ([merge request](gitlab-org/gitlab!65499)) **GitLab Enterprise Edition**
|
||||
- [Remove prevent_retry_of_retried_jobs feature flag](gitlab-org/gitlab@66360678bc17617a0dd0cd24d0a3601f97075a78) ([merge request](gitlab-org/gitlab!66407))
|
||||
- [Add dast-runner-validation to Secure-Binaries YAML](gitlab-org/gitlab@0bd402ff0a0963145b16eba3479209589a19ba16) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66501)) **GitLab Enterprise Edition**
|
||||
- [Fix missing amount in Contribution Analytics](gitlab-org/gitlab@a272c572f2ed01abb4e245ccb43cc35cf2e71173) ([merge request](gitlab-org/gitlab!66385)) **GitLab Enterprise Edition**
|
||||
- [Migrate New Environments Form to Vue](gitlab-org/gitlab@c155d2b127f09fe8d5122d2b63a727587f6a5621) ([merge request](gitlab-org/gitlab!66192))
|
||||
- [Allow updating merged results pipelines and merge trains via API](gitlab-org/gitlab@624d6690f4efb9d5fe6b86bcd7e5b3fa0bb4c74e) ([merge request](gitlab-org/gitlab!56237))
|
||||
- [Handle team-managed (next-gen) Jira projects](gitlab-org/gitlab@c69f02df9508b15def55ab759bfdc88280d2464d) ([merge request](gitlab-org/gitlab!66250)) **GitLab Enterprise Edition**
|
||||
- [Remove badge cache](gitlab-org/gitlab@19e12bea89de5b7041a199910a57c0f73f38c90b) ([merge request](gitlab-org/gitlab!65638))
|
||||
- [Enable writes to CI builds metadata table by default](gitlab-org/gitlab@61293c6159c3816db5c8ad0273e2a292c73b3adc) ([merge request](gitlab-org/gitlab!66163))
|
||||
- [Nginx: modernise TLS config](gitlab-org/gitlab@61df826cd3d557d6f6246713e21963ba92df1cca) ([merge request](gitlab-org/gitlab!65345))
|
||||
|
||||
### Deprecated (2 changes)
|
||||
|
||||
- [Deprecate sorting vulnerabilities by title in GraphQL API](gitlab-org/gitlab@bc8dc2b0f191e9d7b12352c145f97ae0d8d21440) ([merge request](gitlab-org/gitlab!66917)) **GitLab Enterprise Edition**
|
||||
- [Deprecate container_registry_enabled in projects public API](gitlab-org/gitlab@123c561f2fc007709d041f35c73009090a9170ed) ([merge request](gitlab-org/gitlab!62662))
|
||||
|
||||
### Removed (11 changes)
|
||||
|
||||
- [Cleanup group empty state experiment](gitlab-org/gitlab@857d2eac9fd14d7699701c8f8d2d6e54051b9a3e) ([merge request](gitlab-org/gitlab!68370))
|
||||
- [Remove devops_adoption_feature feature flag](gitlab-org/gitlab@e48a811c8e8c3ad2d1da81509f45b5bfe99b9f70) ([merge request](gitlab-org/gitlab!67861))
|
||||
- [Remove sec_dependency_scanning_ui_enable Feature Flag](gitlab-org/gitlab@8b307a108cc9df4600b0ef12577e38fbe41decf6) ([merge request](gitlab-org/gitlab!67585))
|
||||
- [Remove scan_execution_policy_ui feature flag](gitlab-org/gitlab@e456b564ada08ac9bc98ffcafeaef5fd7b070949) ([merge request](gitlab-org/gitlab!67642)) **GitLab Enterprise Edition**
|
||||
- [Drop FF load_balancing_for_pipeline_notification_worker](gitlab-org/gitlab@e246cb2977dadb102d0f7d5c86a1e22745eada83) ([merge request](gitlab-org/gitlab!67456))
|
||||
- [Remove the similarity_search feature flag](gitlab-org/gitlab@992270b9d247df8b73dc780eda4eae69676f100d) ([merge request](gitlab-org/gitlab!67310))
|
||||
- [Remove unused `Gitlab::Database::MultiThreadedMigration`](gitlab-org/gitlab@d593fe3651ad9962f70ef71325fa940130b2553d) ([merge request](gitlab-org/gitlab!67333))
|
||||
- [Remove 'one_megabyte_file_size_limit' feature flag](gitlab-org/gitlab@3bf77e477d8d46cfd66b196d01247f7712a7ae83) ([merge request](gitlab-org/gitlab!66850))
|
||||
- [Remove group invites from new user registration](gitlab-org/gitlab@523559b918f3af2a5f7f26921532eae3f76ace94) ([merge request](gitlab-org/gitlab!66554)) **GitLab Enterprise Edition**
|
||||
- [Remove not_null constraint on project_fingerprint](gitlab-org/gitlab@9515ded6205ae6af1b9a3231b80298029d9728af) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66194)) **GitLab Enterprise Edition**
|
||||
- [Remove marketing email opt-in for self-managed](gitlab-org/gitlab@3e23d77a1af419b1774d2b767ea2f5a192f12fd5) ([merge request](gitlab-org/gitlab!66255))
|
||||
|
||||
### Security (19 changes)
|
||||
|
||||
- [Sanitize default branch name in repo settings](gitlab-org/gitlab@38401468bc6740589698d9bf0c6e1f24b99c0a8c) ([merge request](gitlab-org/gitlab!67567))
|
||||
- [Add project member validation for domain limitation](gitlab-org/gitlab@7c920bbc9b0b11eeed2b4c675160f5cc5d95c69c)
|
||||
- [Hide project-level CI/CD Analytics for Guests](gitlab-org/gitlab@7ac6a6218f2b9c9afbf8182b047b2cbd6a747ec0)
|
||||
- [Only allow invite to be accepted by user with matching email](gitlab-org/gitlab@391bc665d7535f97c852b9d73f6a8fd098bcbfd8)
|
||||
- [Add html escaping for default branch name](gitlab-org/gitlab@dbdc999e35be70fd7c21d881c925dfdae6526d83)
|
||||
- [Filter todos whose target users no longer have access to](gitlab-org/gitlab@16516b2a3a12aee7950110c73cd48d0b8a4b5fcc)
|
||||
- [Configure OmniAuth to use GitLab AppLogger](gitlab-org/gitlab@d13b0d392f25db2512fe40565bb068d8920dbc46)
|
||||
- [Add permissions check to pipelines#show action](gitlab-org/gitlab@d2a4ccdcf6335131fe3a1055c0bdd92d6e746a4f)
|
||||
- [Prevent impersonation in gitlab-shell SSH certs](gitlab-org/gitlab@748e6639b429f88cbcc3c1873bf3b10f34ad078b)
|
||||
- [Do not show email address in error message](gitlab-org/gitlab@03497fbd357fa30ed2280ff2a1d4188c9c16df95) **GitLab Enterprise Edition**
|
||||
- [Disallow non-members to set issue metadata on issue create](gitlab-org/gitlab@ec30a8d87167084cf033031b58531720bd1e3bc3)
|
||||
- [Prevent guests from linking issues with errors](gitlab-org/gitlab@6c520f98137bee8d4dcdeb566cafb0cc174b8b98)
|
||||
- [Block impersonation token use if it is not permitted](gitlab-org/gitlab@de812b202430fca3f271ae5c4e1b98e40abaac24)
|
||||
- [Fix Protected Environment Accesses Cleanup](gitlab-org/gitlab@85e9ab0336ea92cb3941721fb7e6d8017eea3424) **GitLab Enterprise Edition**
|
||||
- [Updates oauth to 0.5.6](gitlab-org/gitlab@1d4f7f01c624e69710a39beeed1e1a2b3286fd09)
|
||||
- [Remove impersonation token from api response for non-admin user](gitlab-org/gitlab@ba04748936bba512f83a7d62aa395f9e0f02c79b)
|
||||
- [Use oauth_app id instead of uid](gitlab-org/gitlab@d5b61695843c41a54e1f97ab7a44769de6bce142) **GitLab Enterprise Edition**
|
||||
- [Restrict access to instance-level security features for reporters](gitlab-org/gitlab@5deba06177dad7fd09f7a1b264d4a6f0179cbba0) **GitLab Enterprise Edition**
|
||||
- [Fix XSS in Mermaid Markdown rendering](gitlab-org/gitlab@7ba708f3b35278b06e912f9933618d0f34f0fbf5)
|
||||
|
||||
### Performance (23 changes)
|
||||
|
||||
- [Use common namespace ancestor queries](gitlab-org/gitlab@52e59891210e87316bf6db9df7270b3674b049e2) ([merge request](gitlab-org/gitlab!68072))
|
||||
- [Do not use subtransactions when updating ci minutes usage](gitlab-org/gitlab@da13592ca045ae2c5a5987cda6459fed8dc37ebe) ([merge request](gitlab-org/gitlab!68471))
|
||||
- [Avoid subtransaction in UserInteractedProject](gitlab-org/gitlab@048edfe05d0d3e58efb5d970768b7315f1ad1fbf) ([merge request](gitlab-org/gitlab!68448))
|
||||
- [Reduce N+1 Gitaly queries when publishing multiple draft notes](gitlab-org/gitlab@b870a652789ec4cbd5f6f65c37ec012b11dcb2f5) ([merge request](gitlab-org/gitlab!68045))
|
||||
- [Memoize namespace monthly usage to reduce SQL queries](gitlab-org/gitlab@f558ca40fea462f2ec493e158feda641b691c19f) ([merge request](gitlab-org/gitlab!68219))
|
||||
- [Include database load balancing for Deployments HooksWorker](gitlab-org/gitlab@ab050d675d24416fc416f99260a0c9007dadd94d) ([merge request](gitlab-org/gitlab!67878))
|
||||
- [Use default project filter for issue/merge request project searches](gitlab-org/gitlab@38f930b936a6e0129aaacaabbc5795bdb15a8f4c) ([merge request](gitlab-org/gitlab!67921))
|
||||
- [Improve raw blobs downloading](gitlab-org/gitlab@91f0a0771e1562f87cb6b198c02818b0b0fb0f24) ([merge request](gitlab-org/gitlab!67155))
|
||||
- [Use common namespace ancestor queries](gitlab-org/gitlab@c6652bdafce5c52710556ce75f94308be09cd41f) ([merge request](gitlab-org/gitlab!67565))
|
||||
- [Query multiple group descendants at once](gitlab-org/gitlab@809a10e7955a4789d578e36ecb91a4e8a62b8fe1) ([merge request](gitlab-org/gitlab!67653))
|
||||
- [Use new service to refresh authorizations of project members](gitlab-org/gitlab@d748c4747e8e2852e452ca3433d6cfa020b02ed4) ([merge request](gitlab-org/gitlab!67477))
|
||||
- [Cache commit stats for a single commit](gitlab-org/gitlab@8aa2681f5d9bf4472094b9ea9f1e7b8836457875) ([merge request](gitlab-org/gitlab!67592))
|
||||
- [Query ActiveRecord::Relation descendants](gitlab-org/gitlab@83e9f6e22a30abe7bcdb6d8d688fa16907b03976) ([merge request](gitlab-org/gitlab!67562))
|
||||
- [checks: Speed up retrieving commits via quarantine directory](gitlab-org/gitlab@0a90028f1133ec9de7455afe738ab8d529cd3775) ([merge request](gitlab-org/gitlab!67210))
|
||||
- [Reduce Markdown cache updates during deploy](gitlab-org/gitlab@463d7aeb40f538abb18334ef3cad0061135f0efd) ([merge request](gitlab-org/gitlab!67239))
|
||||
- [Query ActiveRecord::Relation descendants](gitlab-org/gitlab@07a3097642be99165ee8f6e9b9dc5c74791b2c09) ([merge request](gitlab-org/gitlab!65891))
|
||||
- [Reduce repaints on blame page](gitlab-org/gitlab@8a65b1e56d55bb11c1aa87bb863c0f98d4cace2f) ([merge request](gitlab-org/gitlab!67050))
|
||||
- [geo: Pass authentication header via `#fetch_remote`](gitlab-org/gitlab@0c8a54398646fe1d64da5b2ed88934108b700b01) ([merge request](gitlab-org/gitlab!66822)) **GitLab Enterprise Edition**
|
||||
- [Disable creating user mentions during import](gitlab-org/gitlab@d11191f125e6addcb40d2f56a566661899f5e2a8) ([merge request](gitlab-org/gitlab!66792))
|
||||
- [Remove flag guarding batched computation of changes size](gitlab-org/gitlab@02755cd55cc005eb3ae3c60ba8f2b641c7b77f5c) ([merge request](gitlab-org/gitlab!66527))
|
||||
- [Move merge-request merge_pipeline to cached_widget](gitlab-org/gitlab@6af0742133e849d5e0800ebef75c3356e565ccb2) ([merge request](gitlab-org/gitlab!59968))
|
||||
- [Optimize scanning for references process](gitlab-org/gitlab@7b6fa26743edc24e65b7c5f9eaeae5fe0a4a7b0c) ([merge request](gitlab-org/gitlab!65847))
|
||||
- [Move versions icon to CSS](gitlab-org/gitlab@90331b9428a9f101554a2fb5b3c68b11c5da7bf6) ([merge request](gitlab-org/gitlab!65843))
|
||||
|
||||
### Other (87 changes)
|
||||
|
||||
- [Make commit and design user mention indexes unique](gitlab-org/gitlab@221d5414dafcd99fa45ac0c35a413988459897d7) ([merge request](gitlab-org/gitlab!68433))
|
||||
- [Add index on historical_data (recored_at) to improve queries](gitlab-org/gitlab@6f42db358a33433c612ab9fb04b0c3c9c585111c) ([merge request](gitlab-org/gitlab!68435))
|
||||
- [Fix and reschedule background migration](gitlab-org/gitlab@0e243385923ae6a142b43fac9182398209876a83) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68305))
|
||||
- [Finalize conversion of ci_stages.id to bigint](gitlab-org/gitlab@84247dd0f2d8ac70a24b281a4f6f464bfaf943f7) ([merge request](gitlab-org/gitlab!66088))
|
||||
- [Reschedules migration for uuid recalculation](gitlab-org/gitlab@f54ca835ac888f3ad5fdb35216c88dd1d8d52202) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68200))
|
||||
- [Remove pipelineGraphLayersView feature flag](gitlab-org/gitlab@582ecdb8b1b87cbd8acd59236ce21055fbe56d87) ([merge request](gitlab-org/gitlab!68040))
|
||||
- [Pass **kwargs to the conn. for LB defined methods](gitlab-org/gitlab@db8faf0954071eceda603a870d9bde720283030d) ([merge request](gitlab-org/gitlab!68061))
|
||||
- [Remove subscribable_subscription_banner flag](gitlab-org/gitlab@35f3121feb6aff6dd450693dfe7e30957ae84664) ([merge request](gitlab-org/gitlab!68257)) **GitLab Enterprise Edition**
|
||||
- [Finalize conversion to bigint for ci_sources_pipelines](gitlab-org/gitlab@e5a025f516dbffa937dd849a97b65691e30d4369) ([merge request](gitlab-org/gitlab!66120))
|
||||
- [Remove `ci_skip_before_parsing_yaml` FF](gitlab-org/gitlab@8d34ef0f8a9f8f7e7b54ce14b2c4ca683290d5e4) ([merge request](gitlab-org/gitlab!68287))
|
||||
- [Cleanup invalid membership invites](gitlab-org/gitlab@29d3503946bf4b7287281f3fe7a1befa17779894) ([merge request](gitlab-org/gitlab!67760))
|
||||
- [Rename GraphQL query resource from "instanceDashboard" to "instance"](gitlab-org/gitlab@2dd314939f57af599e9b23ace2290bed4adea792) ([merge request](gitlab-org/gitlab!67278)) **GitLab Enterprise Edition**
|
||||
- [Disable updating the historical vulnerability statistics by default](gitlab-org/gitlab@60c931e6dbedeef3931eb8dc89bd4f5095f97f65) ([merge request](gitlab-org/gitlab!68189)) **GitLab Enterprise Edition**
|
||||
- [Rename strip_attributes method](gitlab-org/gitlab@b4a754a976e3e49176fbfeef85db7191e40499a2) ([merge request](gitlab-org/gitlab!68193))
|
||||
- [Updating the description for ecosystem metric](gitlab-org/gitlab@865ce2b2dcd2f320b0a34790175112a0a546b42c) ([merge request](gitlab-org/gitlab!68169))
|
||||
- [Add ResetJobTokenScopeEnabledAgain migration](gitlab-org/gitlab@fb876346163d894138a363bc3e31031c27055bfb) ([merge request](gitlab-org/gitlab!68079))
|
||||
- [Remove by default enabled feature flag](gitlab-org/gitlab@044d6166762622961bd03baf17619dc6e35bdff1) ([merge request](gitlab-org/gitlab!68165))
|
||||
- [Remove docs redirects raketask](gitlab-org/gitlab@4c0835b38c05c3922ba4dcb35611024c2d51ec24) ([merge request](gitlab-org/gitlab!68149))
|
||||
- [Remove pipelineGraphLayersView feature flag](gitlab-org/gitlab@d08880a41af0ab63a19f3ca0709541e16d8a5741) ([merge request](gitlab-org/gitlab!67969))
|
||||
- [Remove jira_issue_association_on_merge_request feature flag](gitlab-org/gitlab@a43f09ec37e9933c9e513484cb70e81484830bec) ([merge request](gitlab-org/gitlab!68036)) **GitLab Enterprise Edition**
|
||||
- [Finalize ci_job_artifacts conversion to bigint](gitlab-org/gitlab@3b9143606aadb3e733f1c602ba9cfd6fc3ad6c25) ([merge request](gitlab-org/gitlab!65601))
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@ceeb7dc048425cba841b14ac4a307680692a1267) ([merge request](gitlab-org/gitlab!65920)) **GitLab Enterprise Edition**
|
||||
- [Include Puma worker PID in structured log](gitlab-org/gitlab@5df76410285bd2e9c695fc5b780a54ded1d08085) ([merge request](gitlab-org/gitlab!66694))
|
||||
- [Denormalize ci_builds into security_scans](gitlab-org/gitlab@bf4f0409e90535d5cb6f0e55e2c39e2127a8ddc2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/66963)) **GitLab Enterprise Edition**
|
||||
- [Bump factory_bot_rails for Ruby3 support](gitlab-org/gitlab@06d14dfe8951b20b2f11fe1aeee9c08a9db6df8e) ([merge request](gitlab-org/gitlab!67866))
|
||||
- [Additional namespace validation for AdditionalPack](gitlab-org/gitlab@6fdee1a78ffdd306c9b0ba26df9bcd70e82a3e51) ([merge request](gitlab-org/gitlab!67848)) **GitLab Enterprise Edition**
|
||||
- [Finalize job_id conversion to bigint for ci_job_artifacts](gitlab-org/gitlab@794805ed543d53f1daf798db145057000d02415b) ([merge request](gitlab-org/gitlab!67774))
|
||||
- [Use text links in MR approval settings section of UI](gitlab-org/gitlab@7ecc2da2fdb3dd798a48e6451fb67fc8b8a05517) ([merge request](gitlab-org/gitlab!67737)) **GitLab Enterprise Edition**
|
||||
- [Remove jira_connect_create_branch feature flag](gitlab-org/gitlab@4c3c562c5d996ebf00ad2342aae8f87141b68073) ([merge request](gitlab-org/gitlab!67471))
|
||||
- [Refactor documentation links for SP disabled](gitlab-org/gitlab@3f38ea4f6d4938d8aeae8f3dd5773f0e76db2830) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67384)) **GitLab Enterprise Edition**
|
||||
- [Swap multiple_database_metrics FF for env var](gitlab-org/gitlab@ebbdd30dfb0d7d2f3c8fcc5daec41f3c5fed862e) ([merge request](gitlab-org/gitlab!66885))
|
||||
- [Update limitations of members API docs](gitlab-org/gitlab@b1a540756c39b406611e459f20cbf89c407f0dee) ([merge request](gitlab-org/gitlab!67659))
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@146a4fae422271a0a2d0f395c5880ed36aff68fb) **GitLab Enterprise Edition**
|
||||
- [Remove runner_list_view_vue_ui feature flag](gitlab-org/gitlab@1532ee45d4c31ccaf4331da33833996371e68708) ([merge request](gitlab-org/gitlab!67021))
|
||||
- [Update internal API docs](gitlab-org/gitlab@282eaa342da16351fec71f89c3e9ff19461f72ac) ([merge request](gitlab-org/gitlab!67606))
|
||||
- [Finalize conversion to bigint for ci_builds_runner_session](gitlab-org/gitlab@5d13cf3dd04af2f33daaac4b20052821d6bcb7d6) ([merge request](gitlab-org/gitlab!66433))
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@74e0ace7766e39955e70729ab4dd3ca66499d707) ([merge request](gitlab-org/gitlab!65912))
|
||||
- [Finalize conversion to bigint for push_event_payloads](gitlab-org/gitlab@109700f62258b7591c4916495ca9d627ea51cae7) ([merge request](gitlab-org/gitlab!67299))
|
||||
- [Finalize conversion to bigint for ci_build_needs](gitlab-org/gitlab@e8e551327a43aff88239d61d4491ef286f04c85f) ([merge request](gitlab-org/gitlab!65216))
|
||||
- [Refine Documentation pages URL UI and documentation](gitlab-org/gitlab@8020c533eb7732d0cee32de033cf78c00afb6750) ([merge request](gitlab-org/gitlab!67293)) **GitLab Enterprise Edition**
|
||||
- [Prepare indexes for bigint column conversions](gitlab-org/gitlab@e09fc6977889568a584d246f23e07d18c738342e) ([merge request](gitlab-org/gitlab!67532))
|
||||
- [Revise UI text for PlantUML settings](gitlab-org/gitlab@d5178727ff065f829609834ca841814f1a174571) ([merge request](gitlab-org/gitlab!67497))
|
||||
- [Follow-up pass for renaming Usage Ping/Data](gitlab-org/gitlab@26f3da5ad01697c1446a4d5e9430ec3202d4304b) ([merge request](gitlab-org/gitlab!66990))
|
||||
- [Finalize converting deployments to bigint](gitlab-org/gitlab@e8d78b6fee41133a48c4e1a768705bae6ab2736f) ([merge request](gitlab-org/gitlab!67341))
|
||||
- [Remove the FF ci_wildcard_file_paths](gitlab-org/gitlab@4cf9beb453de21c5955a1cec2474cc21f949f7a9) ([merge request](gitlab-org/gitlab!67441))
|
||||
- [Revise admin area Pages settings UI](gitlab-org/gitlab@7c675c278ebee925def48f306c4853b3ebf31a25) ([merge request](gitlab-org/gitlab!66368))
|
||||
- [Remove feature flag related to valid hosts list](gitlab-org/gitlab@1c2a29fe7dc98c6a88ea348cc788bbe29edc867a) ([merge request](gitlab-org/gitlab!65755))
|
||||
- [Refactor timezone UI and documentation](gitlab-org/gitlab@b4fbf3532a1f2c773c2f662e7ca3fdc0f97a2583) ([merge request](gitlab-org/gitlab!67301))
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@5cf900baa1d938562c3a1e89f67df78a7a55a30b) ([merge request](gitlab-org/gitlab!65917)) **GitLab Enterprise Edition**
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@0a7ced21384192c3c8c8aa3b37fcd91c99faa023) ([merge request](gitlab-org/gitlab!65904)) **GitLab Enterprise Edition**
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@4b2236b92593baf24ecabab53f0fa101ea49dc0e) ([merge request](gitlab-org/gitlab!65903)) **GitLab Enterprise Edition**
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@b401f8e26d977feddc9c992281315028f5b998d9) ([merge request](gitlab-org/gitlab!65896))
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@1dea45c7c6d472cf985aad60e58b38567c59155e) ([merge request](gitlab-org/gitlab!65897)) **GitLab Enterprise Edition**
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@497ee293308fd85a725fee9480f4cd038005fd3f) ([merge request](gitlab-org/gitlab!65919)) **GitLab Enterprise Edition**
|
||||
- [For consistency do not use CSS calc for simple calculation of margin-top](gitlab-org/gitlab@2cfdc8e2279772adb865dc202f624ed0f49de95a) ([merge request](gitlab-org/gitlab!67270))
|
||||
- [Remove unused code](gitlab-org/gitlab@3c71929b1a3eb0d3089c2f9d4be5552c807aa2d8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/67162)) **GitLab Enterprise Edition**
|
||||
- [Reschedule Delete Orphaned Deployments BG migration](gitlab-org/gitlab@e61df7c8566b8d02b5144ee448f08e3ec0138a23) ([merge request](gitlab-org/gitlab!66813))
|
||||
- [Finalize conversion to bigint for push_event_payloads](gitlab-org/gitlab@2e0ca4e445707aced673035490a2307dccdea879) ([merge request](gitlab-org/gitlab!65795))
|
||||
- [Finalize conversion to bigint for ci_build_trace_chunks](gitlab-org/gitlab@8228341c4300542d770e1648f31a43f39c4270f6) ([merge request](gitlab-org/gitlab!66123))
|
||||
- [Remove `gitlab_subscription_future_renewal` feature flag](gitlab-org/gitlab@45da0404be71e6c8a3ba006e82c492e3e71670bc) ([merge request](gitlab-org/gitlab!66829)) **GitLab Enterprise Edition**
|
||||
- [Remove dast_configuration_ui feature flag](gitlab-org/gitlab@31da8512f850a3ccf19736ea1b02f932252b1ae6) ([merge request](gitlab-org/gitlab!66817)) **GitLab Enterprise Edition**
|
||||
- [Fix the offenses introduced by Style/RegexpLiteralMixedPreserve](gitlab-org/gitlab@c61e416600a96646c1bd5c8347c8da0c85510958) ([merge request](gitlab-org/gitlab!66753)) **GitLab Enterprise Edition**
|
||||
- [Removes unused gitorious logos](gitlab-org/gitlab@437b63b84146c9034706c3204b4bb3ade5cffbec) ([merge request](gitlab-org/gitlab!66786))
|
||||
- [Revised Package Registry settings text](gitlab-org/gitlab@381032baf203c738ecccc4f53f097afde0409977) ([merge request](gitlab-org/gitlab!66395))
|
||||
- [Revert backfill on ci_build_trace_sections](gitlab-org/gitlab@27262d7b8d81b5b00b691d6365dbf3730108a4fb) ([merge request](gitlab-org/gitlab!66627))
|
||||
- [Clean up evalute_protected_tag_for_release_permissions feature flag](gitlab-org/gitlab@dde58c83f7c41ca0234969e55c31e115c339f7ec) ([merge request](gitlab-org/gitlab!66713))
|
||||
- [Update service ping metric implementation guidelines](gitlab-org/gitlab@09ef8592d13dc69a380266d21d4486211b3f2c48) ([merge request](gitlab-org/gitlab!66616))
|
||||
- [Add tracking events for the dependency proxy](gitlab-org/gitlab@e2885e45de15a42610f50f8c10527c597ca05f33) ([merge request](gitlab-org/gitlab!65812))
|
||||
- [Remove redundant indexes for devops adoption](gitlab-org/gitlab@7878b74a6b7337f52c151691a73f4f673ed51df2) ([merge request](gitlab-org/gitlab!66644))
|
||||
- [Add area of focus to members](gitlab-org/gitlab@864c59d66dfc9eab9bd8f1079059e8dc556027ca) ([merge request](gitlab-org/gitlab!64956))
|
||||
- [Fix up the docs warning detected by the vale latin term rule](gitlab-org/gitlab@e4dc09b314c8aab45f0f42472c98aa2e62d02774) ([merge request](gitlab-org/gitlab!66325))
|
||||
- [Update help text in runner update form](gitlab-org/gitlab@ce01eb60183252708f0a7aa3d110fc06038b8bbf) ([merge request](gitlab-org/gitlab!66148))
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@c9c3690fdf399fd916fc95b39517b434dd3c68bf) ([merge request](gitlab-org/gitlab!65900)) **GitLab Enterprise Edition**
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@1d010a6f352fd7485a3e013ee93c0dbef4823904) ([merge request](gitlab-org/gitlab!65902)) **GitLab Enterprise Edition**
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@65aaf601b08def9f3f687bd505c7677d3d53cdd3) ([merge request](gitlab-org/gitlab!65914)) **GitLab Enterprise Edition**
|
||||
- [Migrate the deprecated "urlParamsToObject" to "queryToObject"](gitlab-org/gitlab@90e8802292658cb4cee37b2729460274fbab548d) ([merge request](gitlab-org/gitlab!65916)) **GitLab Enterprise Edition**
|
||||
- [Log when a container repository is selected](gitlab-org/gitlab@0ee8d9f9877db52ffc353e2cce46e0090763c0e4) ([merge request](gitlab-org/gitlab!66182))
|
||||
- [Expose init aux viewer](gitlab-org/gitlab@625005ebec644c1708262b9b299b140b9fa25041) ([merge request](gitlab-org/gitlab!66528))
|
||||
- [Remove service templates](gitlab-org/gitlab@359813b6c03f1063422f449b04a8a76b7c82de27) ([merge request](gitlab-org/gitlab!64975))
|
||||
- [Remove merge_request_draft_filter feature flag](gitlab-org/gitlab@292afd630b937353844091f0b876c17c19fcf83f) ([merge request](gitlab-org/gitlab!66507))
|
||||
- [Remove unused cluster application logos](gitlab-org/gitlab@d9297157da4eebb3d0cdfd5e8cf8bfbdcd9f8f50) ([merge request](gitlab-org/gitlab!66485))
|
||||
- [Update GitLab Runner Helm Chart to 0.31.0](gitlab-org/gitlab@a27f4ca670d9bcf70fd694a3d9df79657a2ef451) ([merge request](gitlab-org/gitlab!66447))
|
||||
- [Revise UI text for Kroki settings](gitlab-org/gitlab@3489047a1c2429cda2c1e2305424c4b4ba68bb08) ([merge request](gitlab-org/gitlab!66258))
|
||||
- [Add Chrome to Jira connect working browsers](gitlab-org/gitlab@ff0c52d346f7c00b441070a159ba6173852a2536) ([merge request](gitlab-org/gitlab!66236))
|
||||
- [Refactor polling interval multiplier configuration UI and docs](gitlab-org/gitlab@b8ef9101f45759b19d982f3f6ae74cf92e2a31d1) ([merge request](gitlab-org/gitlab!66342))
|
||||
- [Add helpful text to URL group validation and limit text](gitlab-org/gitlab@59a5a6266cb0d5434596170ffa36e4e74b8d2c2c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/65369)) **GitLab Enterprise Edition**
|
||||
- [Refactor external storage admin area configuration UI and docs](gitlab-org/gitlab@497ba4fc8f4ec1d234c9f5f1ec5c69712b8c7cb3) ([merge request](gitlab-org/gitlab!66219))
|
||||
|
||||
## 14.1.3 (2021-08-17)
|
||||
|
||||
|
@ -678,6 +1244,38 @@ entry.
|
|||
- [Remove diffs gradual load feature flag](gitlab-org/gitlab@027d7c4327b5b6205a84281239027273517bf81b) ([merge request](gitlab-org/gitlab!55478))
|
||||
- [Remove partial index for Hashed Storage migration](gitlab-org/gitlab@3ed017a1023d7b0941a7606b69e6caee8d22f15c) ([merge request](gitlab-org/gitlab!62920))
|
||||
|
||||
## 14.0.7 (2021-08-03)
|
||||
|
||||
### Security (18 changes)
|
||||
|
||||
- [Add project member validation for domain limitation](gitlab-org/security/gitlab@f9a0e78111cbbfe93b6f8ca27bd9f064e146d005) ([merge request](gitlab-org/security/gitlab!1563))
|
||||
- [Hide project-level CI/CD Analytics for Guests](gitlab-org/security/gitlab@56a17ae80c1f179bcdf939d6b8e71737f9501949) ([merge request](gitlab-org/security/gitlab!1574))
|
||||
- [Only allow invite to be accepted by user with matching email](gitlab-org/security/gitlab@a79d0e6dbbc32247c10c4928a04f0149071eb5fe) ([merge request](gitlab-org/security/gitlab!1633))
|
||||
- [Add html escaping for default branch name](gitlab-org/security/gitlab@d26f0c4d5ef386100d40e92f815b7e754fccacc3) ([merge request](gitlab-org/security/gitlab!1631))
|
||||
- [Configure OmniAuth to use GitLab AppLogger](gitlab-org/security/gitlab@dfcff90cb86fac0dff05d8bd5f25f46da2cc8ce0) ([merge request](gitlab-org/security/gitlab!1616))
|
||||
- [Add permissions check to pipelines#show action](gitlab-org/security/gitlab@c611a8154dc5776a0767b4153ff8963d46e7f39a) ([merge request](gitlab-org/security/gitlab!1613))
|
||||
- [Prevent impersonation in gitlab-shell SSH certs](gitlab-org/security/gitlab@320457b16cbfd5dec4e05937c4d61b96aba4c290) ([merge request](gitlab-org/security/gitlab!1610))
|
||||
- [Fix Protected Environment Accesses Cleanup](gitlab-org/security/gitlab@99846cdeda6acf6223fb0ee5364e375765d3cbb1) ([merge request](gitlab-org/security/gitlab!1607)) **GitLab Enterprise Edition**
|
||||
- [Do not show email address in error message](gitlab-org/security/gitlab@5c4adf419e38f0fd9d540d2f7cd9d14888bc6b96) ([merge request](gitlab-org/security/gitlab!1597)) **GitLab Enterprise Edition**
|
||||
- [Disallow non-members to set issue metadata on issue create](gitlab-org/security/gitlab@0bb4499e5f4514beb647d0e6ac3f9b15720c42ce) ([merge request](gitlab-org/security/gitlab!1581))
|
||||
- [Prevent guests from linking issues with errors](gitlab-org/security/gitlab@94462a56e9490ddd85ec7d1d869b6fda2042fb99) ([merge request](gitlab-org/security/gitlab!1588))
|
||||
- [Block impersonation token use if it is not permitted](gitlab-org/security/gitlab@31b8bc506dd89a576a2cda094c711c22be764398) ([merge request](gitlab-org/security/gitlab!1584))
|
||||
- [Updates oauth to 0.5.6](gitlab-org/security/gitlab@c839b6107c41bcd02e048d0ae0499c140bfbec1c) ([merge request](gitlab-org/security/gitlab!1568))
|
||||
- [Remove impersonation token from api response for non-admin user](gitlab-org/security/gitlab@845dc284cc8ee8736e4f65740d61ffeb197f7b7c) ([merge request](gitlab-org/security/gitlab!1566))
|
||||
- [Filter todos whose target users no longer have access to](gitlab-org/security/gitlab@a6c81e5cadb277f80d1b9565700f8b1f201cfb05) ([merge request](gitlab-org/security/gitlab!1554))
|
||||
- [Fix tag ref detection for pipelines](gitlab-org/security/gitlab@cd5f61dc50c44d69896b38f3bd44129a8f1f01d8) ([merge request](gitlab-org/security/gitlab!1548))
|
||||
- [Restrict access to instance-level security features for reporters](gitlab-org/security/gitlab@c8a75e8032c68065524a85f7030960b614a915bd) ([merge request](gitlab-org/security/gitlab!1539)) **GitLab Enterprise Edition**
|
||||
- [Fix XSS in Mermaid Markdown rendering](gitlab-org/security/gitlab@86139e79c13cf87183cdec9f84ec114cdfc6d215) ([merge request](gitlab-org/security/gitlab!1489))
|
||||
|
||||
## 14.0.6 (2021-07-20)
|
||||
|
||||
### Fixed (4 changes)
|
||||
|
||||
- [Fix validation method regarding MIME type keys](gitlab-org/gitlab@2cc6d89cc77368b9472c8ec22e97bb3481409fb3) ([merge request](gitlab-org/gitlab!66403))
|
||||
- [Geo: Fix snippet verification by replicating the HEAD ref](gitlab-org/gitlab@4dbf36af8553775603c170784ad8bfcdc436a669) ([merge request](gitlab-org/gitlab!66403)) **GitLab Enterprise Edition**
|
||||
- [Fix LFS objects not downloading with Bitbucket](gitlab-org/gitlab@161776f9a4975dfeb2760b06e83160def902c61f) ([merge request](gitlab-org/gitlab!66403))
|
||||
- [Replace Excon with Faraday for requesting object storage](gitlab-org/gitlab@a223d526d5b97f248c8810ef0b968d2c3b0323e0) ([merge request](gitlab-org/gitlab!66403))
|
||||
|
||||
## 14.0.5 (2021-07-08)
|
||||
|
||||
### Fixed (4 changes)
|
||||
|
@ -1379,6 +1977,37 @@ entry.
|
|||
- [Add missing metrics information](gitlab-org/gitlab@89cd7fe3b95323e635b2d73e08549b2e6153dc4d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/61772/edit))
|
||||
- [Track usage of the resolve UI](gitlab-org/gitlab@35c8e30fce288cecefcf2f7c0077d4608e696519) ([merge request](gitlab-org/gitlab!61654))
|
||||
|
||||
## 13.12.10 (2021-08-10)
|
||||
|
||||
### Fixed (2 changes)
|
||||
|
||||
- [Fix validation method regarding MIME type keys](gitlab-org/gitlab@4782194408063f61da4e1e69d7d8813cfec84a78) ([merge request](gitlab-org/gitlab!67748))
|
||||
- [Do not create audit event for failed logins on read-only DB](gitlab-org/gitlab@53237efd7b677ccaa7db05f51d5594f594db41ce) ([merge request](gitlab-org/gitlab!67748)) **GitLab Enterprise Edition**
|
||||
|
||||
### Changed (1 change)
|
||||
|
||||
- [Resolve "operator does not exist: integer[] || bigint in...](gitlab-org/gitlab@fcaf589950878529019d9d9d6b047b4802c9c374) ([merge request](gitlab-org/gitlab!67748))
|
||||
|
||||
## 13.12.9 (2021-08-03)
|
||||
|
||||
### Security (15 changes)
|
||||
|
||||
- [Add project member validation for domain limitation](gitlab-org/security/gitlab@8aff1815f897c2c454c87b1ccdd98c7a2c9eedb3) ([merge request](gitlab-org/security/gitlab!1562))
|
||||
- [Block impersonation token use if it is not permitted](gitlab-org/security/gitlab@99ab170ae5a2d991600dec9e7dfd8b5ca502c437) ([merge request](gitlab-org/security/gitlab!1585))
|
||||
- [Hide project-level CI/CD Analytics for Guests](gitlab-org/security/gitlab@740395d9663be41d52d831b8f90e271c08137220) ([merge request](gitlab-org/security/gitlab!1575))
|
||||
- [Only allow invite to be accepted by user with matching email](gitlab-org/security/gitlab@ae7ade09920486f6124496d800bf5f63f5a909eb) ([merge request](gitlab-org/security/gitlab!1634))
|
||||
- [Configure OmniAuth to use GitLab AppLogger](gitlab-org/security/gitlab@ed5e7742173878e59d760744e3f4f6686268584b) ([merge request](gitlab-org/security/gitlab!1617))
|
||||
- [Fix Protected Environment Accesses Cleanup](gitlab-org/security/gitlab@79eb0cb13a35864267c30663fd6033e8c6224cac) ([merge request](gitlab-org/security/gitlab!1608)) **GitLab Enterprise Edition**
|
||||
- [Add permissions check to pipelines#show action](gitlab-org/security/gitlab@1a293b409226ce743527f1ac5ac5d216998339e1) ([merge request](gitlab-org/security/gitlab!1618))
|
||||
- [Prevent impersonation in gitlab-shell SSH certs](gitlab-org/security/gitlab@42521d9e7e72047bac09bd42779203ae6e508227) ([merge request](gitlab-org/security/gitlab!1611))
|
||||
- [Prevent guests from linking issues with errors](gitlab-org/security/gitlab@da799b0c7bcade058d4b57e065b1a1bebf903fa3) ([merge request](gitlab-org/security/gitlab!1599))
|
||||
- [Do not show email address in error message](gitlab-org/security/gitlab@2c3318edaa39ed0837b8fb30acae9f2cdc3d158f) ([merge request](gitlab-org/security/gitlab!1598)) **GitLab Enterprise Edition**
|
||||
- [Updates oauth to 0.5.6](gitlab-org/security/gitlab@33df3791b646026016303a9d64661fbee7563630) ([merge request](gitlab-org/security/gitlab!1569))
|
||||
- [Remove impersonation token from api response for non-admin user](gitlab-org/security/gitlab@b56ae1953b2cd6b9d12c584e0f2c298a931f6f08) ([merge request](gitlab-org/security/gitlab!1567))
|
||||
- [Filter todos whose target users no longer have access to](gitlab-org/security/gitlab@ba613574b12e40fb61e5fbae8b1159f9ad037e84) ([merge request](gitlab-org/security/gitlab!1555))
|
||||
- [Fix tag ref detection for pipelines](gitlab-org/security/gitlab@4c36e98bcecd6e42e23ec5e20443f41de7f5bf18) ([merge request](gitlab-org/security/gitlab!1549))
|
||||
- [Fix XSS in Mermaid Markdown rendering](gitlab-org/security/gitlab@b27425816723b53db2f65b39f4702711b858cdfc) ([merge request](gitlab-org/security/gitlab!1487))
|
||||
|
||||
## 13.12.8 (2021-07-07)
|
||||
|
||||
### Security (1 change)
|
||||
|
|
|
@ -1 +1 @@
|
|||
14.1.7
|
||||
14.2.5
|
|
@ -1 +1 @@
|
|||
2.12.0
|
||||
2.13.0
|
||||
|
|
|
@ -1 +1 @@
|
|||
14.1.1
|
||||
14.2.2
|
||||
|
|
|
@ -1 +1 @@
|
|||
1.41.0
|
||||
1.42.0
|
||||
|
|
22
Gemfile
|
@ -49,7 +49,7 @@ gem 'omniauth-shibboleth', '~> 1.3.0'
|
|||
gem 'omniauth-twitter', '~> 1.4'
|
||||
gem 'omniauth_crowd', '~> 2.4.0'
|
||||
gem 'omniauth-authentiq', '~> 0.3.3'
|
||||
gem 'gitlab-omniauth-openid-connect', '~> 0.4.0', require: 'omniauth_openid_connect'
|
||||
gem 'gitlab-omniauth-openid-connect', '~> 0.8.0', require: 'omniauth_openid_connect'
|
||||
gem 'omniauth-salesforce', '~> 1.0.5'
|
||||
gem 'omniauth-atlassian-oauth2', '~> 0.2.0'
|
||||
gem 'rack-oauth2', '~> 1.16.0'
|
||||
|
@ -223,7 +223,7 @@ gem 're2', '~> 1.2.0'
|
|||
gem 'version_sorter', '~> 2.2.4'
|
||||
|
||||
# Export Ruby Regex to Javascript
|
||||
gem 'js_regex', '~> 3.4'
|
||||
gem 'js_regex', '~> 3.7'
|
||||
|
||||
# User agent parsing
|
||||
gem 'device_detector'
|
||||
|
@ -310,7 +310,7 @@ gem 'pg_query', '~> 2.1'
|
|||
gem 'premailer-rails', '~> 1.10.3'
|
||||
|
||||
# LabKit: Tracing and Correlation
|
||||
gem 'gitlab-labkit', '~> 0.20.0'
|
||||
gem 'gitlab-labkit', '~> 0.21.1'
|
||||
# Thrift is a dependency of gitlab-labkit, we want a version higher than 0.14.0
|
||||
# because of https://gitlab.com/gitlab-org/gitlab/-/issues/321900
|
||||
gem 'thrift', '>= 0.14.0'
|
||||
|
@ -335,9 +335,11 @@ gem 'method_source', '~> 1.0', require: false
|
|||
gem 'webrick', '~> 1.6.1', require: false
|
||||
gem 'prometheus-client-mmap', '~> 0.12.0', require: 'prometheus/client'
|
||||
|
||||
gem 'warning', '~> 1.2.0'
|
||||
|
||||
group :development do
|
||||
gem 'lefthook', '~> 0.7.0', require: false
|
||||
gem 'solargraph', '~> 0.42', require: false
|
||||
gem 'solargraph', '~> 0.43', require: false
|
||||
|
||||
gem 'letter_opener_web', '~> 1.4.0'
|
||||
|
||||
|
@ -358,7 +360,7 @@ group :development, :test do
|
|||
gem 'awesome_print', require: false
|
||||
|
||||
gem 'database_cleaner', '~> 1.7.0'
|
||||
gem 'factory_bot_rails', '~> 6.1.0'
|
||||
gem 'factory_bot_rails', '~> 6.2.0'
|
||||
gem 'rspec-rails', '~> 5.0.1'
|
||||
|
||||
# Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
|
||||
|
@ -394,7 +396,7 @@ group :development, :test do
|
|||
end
|
||||
|
||||
group :development, :test, :danger do
|
||||
gem 'gitlab-dangerfiles', '~> 2.2.2', require: false
|
||||
gem 'gitlab-dangerfiles', '~> 2.3.0', require: false
|
||||
end
|
||||
|
||||
group :development, :test, :coverage do
|
||||
|
@ -472,7 +474,7 @@ end
|
|||
gem 'spamcheck', '~> 0.1.0'
|
||||
|
||||
# Gitaly GRPC protocol definitions
|
||||
gem 'gitaly', '~> 14.1.0.pre.rc3'
|
||||
gem 'gitaly', '~> 14.2.0.pre.rc2'
|
||||
|
||||
# KAS GRPC protocol definitions
|
||||
gem 'kas-grpc', '~> 0.0.2'
|
||||
|
@ -487,8 +489,8 @@ gem 'toml-rb', '~> 2.0'
|
|||
gem 'flipper', '~> 0.21.0'
|
||||
gem 'flipper-active_record', '~> 0.21.0'
|
||||
gem 'flipper-active_support_cache_store', '~> 0.21.0'
|
||||
gem 'unleash', '~> 0.1.5'
|
||||
gem 'gitlab-experiment', '~> 0.6.1'
|
||||
gem 'unleash', '~> 3.2.2'
|
||||
gem 'gitlab-experiment', '~> 0.6.4'
|
||||
|
||||
# Structured logging
|
||||
gem 'lograge', '~> 0.5'
|
||||
|
@ -521,7 +523,7 @@ gem 'valid_email', '~> 0.1'
|
|||
|
||||
# JSON
|
||||
gem 'json', '~> 2.3.0'
|
||||
gem 'json_schemer', '~> 0.2.12'
|
||||
gem 'json_schemer', '~> 0.2.18'
|
||||
gem 'oj', '~> 3.10.6'
|
||||
gem 'multi_json', '~> 1.14.1'
|
||||
gem 'yajl-ruby', '~> 1.4.1', require: 'yajl'
|
||||
|
|
116
Gemfile.lock
|
@ -9,7 +9,6 @@ GEM
|
|||
remote: https://rubygems.org/
|
||||
specs:
|
||||
RedCloth (4.3.2)
|
||||
abstract_type (0.0.7)
|
||||
acme-client (2.0.6)
|
||||
faraday (>= 0.17, < 2.0.0)
|
||||
actioncable (6.1.3.2)
|
||||
|
@ -76,9 +75,6 @@ GEM
|
|||
zeitwerk (~> 2.3)
|
||||
acts-as-taggable-on (7.0.0)
|
||||
activerecord (>= 5.0, < 6.2)
|
||||
adamantium (0.2.0)
|
||||
ice_nine (~> 0.11.0)
|
||||
memoizable (~> 0.4.0)
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
aes_key_wrap (1.1.0)
|
||||
|
@ -183,7 +179,8 @@ GEM
|
|||
mime-types (>= 1.16)
|
||||
ssrf_filter (~> 1.0)
|
||||
cbor (0.5.9.6)
|
||||
character_set (1.4.0)
|
||||
character_set (1.4.1)
|
||||
sorted_set (~> 1.0)
|
||||
charlock_holmes (0.7.7)
|
||||
chef-config (16.10.17)
|
||||
addressable
|
||||
|
@ -205,10 +202,7 @@ GEM
|
|||
colored2 (3.1.2)
|
||||
commonmarker (0.21.0)
|
||||
ruby-enum (~> 0.5)
|
||||
concord (0.1.5)
|
||||
adamantium (~> 0.2.0)
|
||||
equalizer (~> 0.0.9)
|
||||
concurrent-ruby (1.1.8)
|
||||
concurrent-ruby (1.1.9)
|
||||
connection_pool (2.2.2)
|
||||
contracts (0.11.0)
|
||||
cork (0.3.0)
|
||||
|
@ -314,8 +308,8 @@ GEM
|
|||
dry-inflector (~> 0.1, >= 0.1.2)
|
||||
dry-logic (~> 1.0, >= 1.0.2)
|
||||
e2mmap (0.1.0)
|
||||
ecma-re-validator (0.2.1)
|
||||
regexp_parser (~> 1.2)
|
||||
ecma-re-validator (0.3.0)
|
||||
regexp_parser (~> 2.0)
|
||||
ed25519 (1.2.4)
|
||||
elasticsearch (6.8.2)
|
||||
elasticsearch-api (= 6.8.2)
|
||||
|
@ -336,7 +330,6 @@ GEM
|
|||
launchy (~> 2.1)
|
||||
mail (~> 2.7)
|
||||
encryptor (3.0.0)
|
||||
equalizer (0.0.11)
|
||||
erubi (1.9.0)
|
||||
escape_utils (1.2.1)
|
||||
et-orbi (1.2.1)
|
||||
|
@ -347,10 +340,10 @@ GEM
|
|||
expression_parser (0.9.0)
|
||||
extended-markdown-filter (0.6.0)
|
||||
html-pipeline (~> 2.0)
|
||||
factory_bot (6.1.0)
|
||||
factory_bot (6.2.0)
|
||||
activesupport (>= 5.0.0)
|
||||
factory_bot_rails (6.1.0)
|
||||
factory_bot (~> 6.1.0)
|
||||
factory_bot_rails (6.2.0)
|
||||
factory_bot (~> 6.2.0)
|
||||
railties (>= 5.0.0)
|
||||
faraday (1.4.2)
|
||||
faraday-em_http (~> 1.0)
|
||||
|
@ -460,7 +453,7 @@ GEM
|
|||
rails (>= 3.2.0)
|
||||
git (1.7.0)
|
||||
rchardet (~> 1.8)
|
||||
gitaly (14.1.0.pre.rc3)
|
||||
gitaly (14.2.0.pre.rc2)
|
||||
grpc (~> 1.0)
|
||||
github-markup (1.7.0)
|
||||
gitlab (4.16.1)
|
||||
|
@ -468,10 +461,10 @@ GEM
|
|||
terminal-table (~> 1.5, >= 1.5.1)
|
||||
gitlab-chronic (0.10.5)
|
||||
numerizer (~> 0.2)
|
||||
gitlab-dangerfiles (2.2.2)
|
||||
gitlab-dangerfiles (2.3.0)
|
||||
danger (>= 8.3.1)
|
||||
danger-gitlab (>= 8.0.0)
|
||||
gitlab-experiment (0.6.1)
|
||||
gitlab-experiment (0.6.4)
|
||||
activesupport (>= 3.0)
|
||||
request_store (>= 1.0)
|
||||
scientist (~> 1.6, >= 1.6.0)
|
||||
|
@ -482,10 +475,10 @@ GEM
|
|||
fog-json (~> 1.2.0)
|
||||
mime-types
|
||||
ms_rest_azure (~> 0.12.0)
|
||||
gitlab-labkit (0.20.0)
|
||||
gitlab-labkit (0.21.1)
|
||||
actionpack (>= 5.0.0, < 7.0.0)
|
||||
activesupport (>= 5.0.0, < 7.0.0)
|
||||
grpc (~> 1.19)
|
||||
grpc (~> 1.30.2)
|
||||
jaeger-client (~> 1.1)
|
||||
opentracing (~> 0.4)
|
||||
pg_query (~> 2.1)
|
||||
|
@ -494,7 +487,7 @@ GEM
|
|||
gitlab-mail_room (0.0.9)
|
||||
gitlab-markup (1.7.1)
|
||||
gitlab-net-dns (0.9.1)
|
||||
gitlab-omniauth-openid-connect (0.4.0)
|
||||
gitlab-omniauth-openid-connect (0.8.0)
|
||||
addressable (~> 2.7)
|
||||
omniauth (~> 1.9)
|
||||
openid_connect (~> 1.2)
|
||||
|
@ -531,8 +524,8 @@ GEM
|
|||
signet (~> 0.12)
|
||||
google-cloud-env (1.5.0)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
google-protobuf (3.17.1)
|
||||
googleapis-common-protos-types (1.0.6)
|
||||
google-protobuf (3.17.3)
|
||||
googleapis-common-protos-types (1.1.0)
|
||||
google-protobuf (~> 3.14)
|
||||
googleauth (0.14.0)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
|
@ -612,7 +605,7 @@ GEM
|
|||
temple (>= 0.8.2)
|
||||
thor
|
||||
tilt
|
||||
hana (1.3.6)
|
||||
hana (1.3.7)
|
||||
hangouts-chat (0.0.5)
|
||||
hashdiff (1.0.1)
|
||||
hashie (4.1.0)
|
||||
|
@ -647,7 +640,6 @@ GEM
|
|||
concurrent-ruby (~> 1.0)
|
||||
i18n_data (0.8.0)
|
||||
icalendar (2.4.1)
|
||||
ice_nine (0.11.2)
|
||||
invisible_captcha (1.1.0)
|
||||
rails (>= 4.2)
|
||||
ipaddress (0.8.3)
|
||||
|
@ -661,19 +653,19 @@ GEM
|
|||
multipart-post
|
||||
oauth (~> 0.5, >= 0.5.0)
|
||||
jmespath (1.4.0)
|
||||
js_regex (3.4.0)
|
||||
js_regex (3.7.0)
|
||||
character_set (~> 1.4)
|
||||
regexp_parser (~> 1.5)
|
||||
regexp_property_values (~> 0.3)
|
||||
regexp_parser (~> 2.1)
|
||||
regexp_property_values (~> 1.0)
|
||||
json (2.3.0)
|
||||
json-jwt (1.13.0)
|
||||
activesupport (>= 4.2)
|
||||
aes_key_wrap
|
||||
bindata
|
||||
json_schemer (0.2.12)
|
||||
ecma-re-validator (~> 0.2)
|
||||
json_schemer (0.2.18)
|
||||
ecma-re-validator (~> 0.3)
|
||||
hana (~> 1.3)
|
||||
regexp_parser (~> 1.5)
|
||||
regexp_parser (~> 2.0)
|
||||
uri_template (~> 0.7)
|
||||
jsonpath (1.1.0)
|
||||
multi_json
|
||||
|
@ -726,7 +718,7 @@ GEM
|
|||
reverse_markdown (~> 1.0)
|
||||
rugged (>= 0.24, < 2.0)
|
||||
thor (>= 0.19, < 2.0)
|
||||
listen (3.2.1)
|
||||
listen (3.6.0)
|
||||
rb-fsevent (~> 0.10, >= 0.10.3)
|
||||
rb-inotify (~> 0.9, >= 0.9.10)
|
||||
locale (2.1.3)
|
||||
|
@ -736,7 +728,7 @@ GEM
|
|||
activesupport (>= 4)
|
||||
railties (>= 4)
|
||||
request_store (~> 1.0)
|
||||
loofah (2.9.1)
|
||||
loofah (2.11.0)
|
||||
crass (~> 1.0.2)
|
||||
nokogiri (>= 1.5.9)
|
||||
lru_redux (1.1.0)
|
||||
|
@ -748,8 +740,6 @@ GEM
|
|||
actionpack (>= 2.3)
|
||||
activerecord (>= 2.3)
|
||||
memoist (0.16.2)
|
||||
memoizable (0.4.2)
|
||||
thread_safe (~> 0.3, >= 0.3.1)
|
||||
memory_profiler (0.9.14)
|
||||
method_source (1.0.0)
|
||||
mime-types (3.3.1)
|
||||
|
@ -758,7 +748,7 @@ GEM
|
|||
mini_histogram (0.3.1)
|
||||
mini_magick (4.10.1)
|
||||
mini_mime (1.0.2)
|
||||
mini_portile2 (2.5.1)
|
||||
mini_portile2 (2.5.3)
|
||||
minitest (5.11.3)
|
||||
mixlib-cli (2.1.8)
|
||||
mixlib-config (3.0.9)
|
||||
|
@ -796,7 +786,7 @@ GEM
|
|||
netrc (0.11.0)
|
||||
nio4r (2.5.4)
|
||||
no_proxy_fix (0.1.2)
|
||||
nokogiri (1.11.5)
|
||||
nokogiri (1.11.7)
|
||||
mini_portile2 (~> 2.5.0)
|
||||
racc (~> 1.4)
|
||||
nokogumbo (2.0.2)
|
||||
|
@ -935,7 +925,6 @@ GEM
|
|||
coderay
|
||||
parser
|
||||
unparser
|
||||
procto (0.0.3)
|
||||
prometheus-client-mmap (0.12.0)
|
||||
pry (0.13.1)
|
||||
coderay (~> 1.1)
|
||||
|
@ -1012,7 +1001,7 @@ GEM
|
|||
rake (>= 0.8.7)
|
||||
thor (~> 1.0)
|
||||
rainbow (3.0.0)
|
||||
rake (13.0.3)
|
||||
rake (13.0.6)
|
||||
rb-fsevent (0.10.4)
|
||||
rb-inotify (0.10.1)
|
||||
ffi (~> 1.0)
|
||||
|
@ -1022,6 +1011,7 @@ GEM
|
|||
ffi (>= 1.0.6)
|
||||
msgpack (>= 0.4.3)
|
||||
optimist (>= 3.0.0)
|
||||
rbtree (0.4.4)
|
||||
rchardet (1.8.0)
|
||||
rdoc (6.3.2)
|
||||
re2 (1.2.0)
|
||||
|
@ -1047,8 +1037,8 @@ GEM
|
|||
redis-store (>= 1.2, < 2)
|
||||
redis-store (1.8.1)
|
||||
redis (>= 4, < 5)
|
||||
regexp_parser (1.8.2)
|
||||
regexp_property_values (0.3.5)
|
||||
regexp_parser (2.1.1)
|
||||
regexp_property_values (1.0.0)
|
||||
representable (3.0.4)
|
||||
declarative (< 0.1.0)
|
||||
declarative-option (< 0.2.0)
|
||||
|
@ -1086,7 +1076,7 @@ GEM
|
|||
rspec-mocks (3.10.2)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.10.0)
|
||||
rspec-parameterized (0.4.2)
|
||||
rspec-parameterized (0.5.0)
|
||||
binding_ninja (>= 0.2.3)
|
||||
parser
|
||||
proc_to_ast
|
||||
|
@ -1186,6 +1176,7 @@ GEM
|
|||
rubyzip (>= 1.2.2)
|
||||
sentry-raven (3.1.2)
|
||||
faraday (>= 1.0)
|
||||
set (1.0.1)
|
||||
settingslogic (2.0.9)
|
||||
sexp_processor (4.15.1)
|
||||
shellany (0.0.1)
|
||||
|
@ -1210,12 +1201,12 @@ GEM
|
|||
simplecov-html (~> 0.11)
|
||||
simplecov-cobertura (1.3.1)
|
||||
simplecov (~> 0.8)
|
||||
simplecov-html (0.12.2)
|
||||
simplecov-html (0.12.3)
|
||||
sixarm_ruby_unaccent (1.2.0)
|
||||
slack-messenger (2.3.4)
|
||||
snowplow-tracker (0.6.1)
|
||||
contracts (~> 0.7, <= 0.11)
|
||||
solargraph (0.42.3)
|
||||
solargraph (0.43.0)
|
||||
backport (~> 1.2)
|
||||
benchmark
|
||||
bundler (>= 1.17.2)
|
||||
|
@ -1230,6 +1221,9 @@ GEM
|
|||
thor (~> 1.0)
|
||||
tilt (~> 2.0)
|
||||
yard (~> 0.9, >= 0.9.24)
|
||||
sorted_set (1.0.3)
|
||||
rbtree
|
||||
set (~> 1.0)
|
||||
spamcheck (0.1.0)
|
||||
grpc (~> 1.0)
|
||||
spring (2.1.1)
|
||||
|
@ -1279,7 +1273,6 @@ GEM
|
|||
eventmachine (~> 1.0, >= 1.0.4)
|
||||
rack (>= 1, < 3)
|
||||
thor (1.1.0)
|
||||
thread_safe (0.3.6)
|
||||
thrift (0.14.0)
|
||||
tilt (2.0.10)
|
||||
timecop (0.9.1)
|
||||
|
@ -1330,16 +1323,11 @@ GEM
|
|||
unicode-display_width (1.7.0)
|
||||
unicode_utils (1.4.0)
|
||||
uniform_notifier (1.13.0)
|
||||
unleash (0.1.5)
|
||||
unleash (3.2.2)
|
||||
murmurhash3 (~> 0.1.6)
|
||||
unparser (0.4.7)
|
||||
abstract_type (~> 0.0.7)
|
||||
adamantium (~> 0.2.0)
|
||||
concord (~> 0.1.5)
|
||||
unparser (0.6.0)
|
||||
diff-lcs (~> 1.3)
|
||||
equalizer (~> 0.0.9)
|
||||
parser (>= 2.6.5)
|
||||
procto (~> 0.0.2)
|
||||
parser (>= 3.0.0)
|
||||
uri_template (0.7.0)
|
||||
valid_email (0.1.3)
|
||||
activemodel
|
||||
|
@ -1357,6 +1345,7 @@ GEM
|
|||
vmstat (2.3.0)
|
||||
warden (1.2.8)
|
||||
rack (>= 2.0.6)
|
||||
warning (1.2.0)
|
||||
webauthn (2.3.0)
|
||||
android_key_attestation (~> 0.3.0)
|
||||
awrence (~> 1.1)
|
||||
|
@ -1460,7 +1449,7 @@ DEPENDENCIES
|
|||
email_spec (~> 2.2.0)
|
||||
erubi (~> 1.9.0)
|
||||
escape_utils (~> 1.1)
|
||||
factory_bot_rails (~> 6.1.0)
|
||||
factory_bot_rails (~> 6.2.0)
|
||||
faraday (~> 1.0)
|
||||
faraday_middleware-aws-sigv4 (~> 0.3.0)
|
||||
fast_blank
|
||||
|
@ -1482,18 +1471,18 @@ DEPENDENCIES
|
|||
gettext (~> 3.3)
|
||||
gettext_i18n_rails (~> 1.8.0)
|
||||
gettext_i18n_rails_js (~> 1.3)
|
||||
gitaly (~> 14.1.0.pre.rc3)
|
||||
gitaly (~> 14.2.0.pre.rc2)
|
||||
github-markup (~> 1.7.0)
|
||||
gitlab-chronic (~> 0.10.5)
|
||||
gitlab-dangerfiles (~> 2.2.2)
|
||||
gitlab-experiment (~> 0.6.1)
|
||||
gitlab-dangerfiles (~> 2.3.0)
|
||||
gitlab-experiment (~> 0.6.4)
|
||||
gitlab-fog-azure-rm (~> 1.1.1)
|
||||
gitlab-labkit (~> 0.20.0)
|
||||
gitlab-labkit (~> 0.21.1)
|
||||
gitlab-license (~> 2.0)
|
||||
gitlab-mail_room (~> 0.0.9)
|
||||
gitlab-markup (~> 1.7.1)
|
||||
gitlab-net-dns (~> 0.9.1)
|
||||
gitlab-omniauth-openid-connect (~> 0.4.0)
|
||||
gitlab-omniauth-openid-connect (~> 0.8.0)
|
||||
gitlab-sidekiq-fetcher (= 0.5.6)
|
||||
gitlab-styles (~> 6.2.0)
|
||||
gitlab_chronic_duration (~> 0.10.6.2)
|
||||
|
@ -1526,9 +1515,9 @@ DEPENDENCIES
|
|||
invisible_captcha (~> 1.1.0)
|
||||
ipaddress (~> 0.8.3)
|
||||
jira-ruby (~> 2.1.4)
|
||||
js_regex (~> 3.4)
|
||||
js_regex (~> 3.7)
|
||||
json (~> 2.3.0)
|
||||
json_schemer (~> 0.2.12)
|
||||
json_schemer (~> 0.2.18)
|
||||
jwt (~> 2.1.0)
|
||||
kaminari (~> 1.0)
|
||||
kas-grpc (~> 0.0.2)
|
||||
|
@ -1642,7 +1631,7 @@ DEPENDENCIES
|
|||
simplecov-cobertura (~> 1.3.1)
|
||||
slack-messenger (~> 2.3.4)
|
||||
snowplow-tracker (~> 0.6.1)
|
||||
solargraph (~> 0.42)
|
||||
solargraph (~> 0.43)
|
||||
spamcheck (~> 0.1.0)
|
||||
spring (~> 2.1.0)
|
||||
spring-commands-rspec (~> 1.0.4)
|
||||
|
@ -1661,11 +1650,12 @@ DEPENDENCIES
|
|||
truncato (~> 0.7.11)
|
||||
u2f (~> 0.2.1)
|
||||
unf (~> 0.1.4)
|
||||
unleash (~> 0.1.5)
|
||||
unleash (~> 3.2.2)
|
||||
valid_email (~> 0.1)
|
||||
validates_hostname (~> 1.0.11)
|
||||
version_sorter (~> 2.2.4)
|
||||
vmstat (~> 2.3.0)
|
||||
warning (~> 1.2.0)
|
||||
webauthn (~> 2.3)
|
||||
webmock (~> 3.9.1)
|
||||
webrick (~> 1.6.1)
|
||||
|
|
2
VERSION
|
@ -1 +1 @@
|
|||
14.1.7
|
||||
14.2.5
|
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 796 B |
Before Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 895 B |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 580 B |
Before Width: | Height: | Size: 6.1 KiB |
Before Width: | Height: | Size: 923 B |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 631 B |
Before Width: | Height: | Size: 201 B |
After Width: | Height: | Size: 30 KiB |
|
@ -6,10 +6,11 @@ import { I18N_USER_ACTIONS } from '../../constants';
|
|||
|
||||
// TODO: To be replaced with <template> content in https://gitlab.com/gitlab-org/gitlab/-/issues/320922
|
||||
const messageHtml = `
|
||||
<p>${s__('AdminUsers|When banned, users:')}</p>
|
||||
<p>${s__('AdminUsers|When banned:')}</p>
|
||||
<ul>
|
||||
<li>${s__("AdminUsers|Can't log in.")}</li>
|
||||
<li>${s__("AdminUsers|Can't access Git repositories.")}</li>
|
||||
<li>${s__("AdminUsers|The user can't log in.")}</li>
|
||||
<li>${s__("AdminUsers|The user can't access git repositories.")}</li>
|
||||
<li>${s__('AdminUsers|Issues authored by this user are hidden from other users.')}</li>
|
||||
</ul>
|
||||
<p>${s__('AdminUsers|You can unban their account in the future. Their data remains intact.')}</p>
|
||||
<p>${sprintf(
|
||||
|
|
|
@ -28,6 +28,7 @@ export default {
|
|||
modal-type="delete"
|
||||
:username="username"
|
||||
:paths="paths"
|
||||
:delete-path="paths.delete"
|
||||
:oncall-schedules="oncallSchedules"
|
||||
>
|
||||
<slot></slot>
|
||||
|
|
|
@ -28,6 +28,7 @@ export default {
|
|||
modal-type="delete-with-contributions"
|
||||
:username="username"
|
||||
:paths="paths"
|
||||
:delete-path="paths.deleteWithContributions"
|
||||
:oncall-schedules="oncallSchedules"
|
||||
>
|
||||
<slot></slot>
|
||||
|
|
|
@ -14,6 +14,10 @@ export default {
|
|||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
deletePath: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
modalType: {
|
||||
type: String,
|
||||
required: true,
|
||||
|
@ -27,7 +31,7 @@ export default {
|
|||
modalAttributes() {
|
||||
return {
|
||||
'data-block-user-url': this.paths.block,
|
||||
'data-delete-user-url': this.paths.delete,
|
||||
'data-delete-user-url': this.deletePath,
|
||||
'data-gl-modal-action': this.modalType,
|
||||
'data-username': this.username,
|
||||
'data-oncall-schedules': JSON.stringify(this.oncallSchedules),
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
<script>
|
||||
import { GlBadge, GlTable, GlLink, GlEmptyState } from '@gitlab/ui';
|
||||
import { GlSingleStat } from '@gitlab/ui/dist/charts';
|
||||
import { helpPagePath } from '~/helpers/help_page_helper';
|
||||
import { sprintf, s__ } from '~/locale';
|
||||
import DevopsScoreCallout from './devops_score_callout.vue';
|
||||
|
||||
const defaultHeaderAttrs = {
|
||||
thClass: 'gl-bg-white!',
|
||||
|
@ -15,14 +17,12 @@ export default {
|
|||
GlSingleStat,
|
||||
GlLink,
|
||||
GlEmptyState,
|
||||
DevopsScoreCallout,
|
||||
},
|
||||
inject: {
|
||||
devopsScoreMetrics: {
|
||||
default: null,
|
||||
},
|
||||
devopsReportDocsPath: {
|
||||
default: '',
|
||||
},
|
||||
noDataImagePath: {
|
||||
default: '',
|
||||
},
|
||||
|
@ -40,6 +40,7 @@ export default {
|
|||
return this.devopsScoreMetrics.averageScore === undefined;
|
||||
},
|
||||
},
|
||||
devopsReportDocsPath: helpPagePath('user/admin_area/analytics/dev_ops_report'),
|
||||
tableHeaderFields: [
|
||||
{
|
||||
key: 'title',
|
||||
|
@ -65,46 +66,49 @@ export default {
|
|||
};
|
||||
</script>
|
||||
<template>
|
||||
<gl-empty-state
|
||||
v-if="isEmpty"
|
||||
:title="__('Data is still calculating...')"
|
||||
:svg-path="noDataImagePath"
|
||||
>
|
||||
<template #description>
|
||||
<p class="gl-mb-0">{{ __('It may be several days before you see feature usage data.') }}</p>
|
||||
<gl-link :href="devopsReportDocsPath">{{
|
||||
__('See example DevOps Score page in our documentation.')
|
||||
}}</gl-link>
|
||||
</template>
|
||||
</gl-empty-state>
|
||||
<div v-else data-testid="devops-score-app">
|
||||
<div class="gl-text-gray-400 gl-my-4" data-testid="devops-score-note-text">
|
||||
{{ titleHelperText }}
|
||||
</div>
|
||||
<gl-single-stat
|
||||
unit="%"
|
||||
size="sm"
|
||||
:title="s__('DevopsReport|Your score')"
|
||||
:should-animate="true"
|
||||
:value="devopsScoreMetrics.averageScore.value"
|
||||
:meta-icon="devopsScoreMetrics.averageScore.scoreLevel.icon"
|
||||
:meta-text="devopsScoreMetrics.averageScore.scoreLevel.label"
|
||||
:variant="devopsScoreMetrics.averageScore.scoreLevel.variant"
|
||||
/>
|
||||
<gl-table
|
||||
:fields="$options.tableHeaderFields"
|
||||
:items="devopsScoreMetrics.cards"
|
||||
thead-class="gl-border-t-0 gl-border-b-solid gl-border-b-1 gl-border-b-gray-100"
|
||||
stacked="sm"
|
||||
<div data-testid="devops-score-container">
|
||||
<devops-score-callout />
|
||||
<gl-empty-state
|
||||
v-if="isEmpty"
|
||||
:title="__('Data is still calculating...')"
|
||||
:svg-path="noDataImagePath"
|
||||
>
|
||||
<template #cell(usage)="{ item }">
|
||||
<div data-testid="usageCol">
|
||||
<span>{{ item.usage }}</span>
|
||||
<gl-badge :variant="item.scoreLevel.variant" size="sm" class="gl-ml-1">{{
|
||||
item.scoreLevel.label
|
||||
}}</gl-badge>
|
||||
</div>
|
||||
<template #description>
|
||||
<p class="gl-mb-0">{{ __('It may be several days before you see feature usage data.') }}</p>
|
||||
<gl-link :href="$options.devopsReportDocsPath">{{
|
||||
__('See example DevOps Score page in our documentation.')
|
||||
}}</gl-link>
|
||||
</template>
|
||||
</gl-table>
|
||||
</gl-empty-state>
|
||||
<div v-else data-testid="devops-score-app">
|
||||
<div class="gl-text-gray-400 gl-my-4" data-testid="devops-score-note-text">
|
||||
{{ titleHelperText }}
|
||||
</div>
|
||||
<gl-single-stat
|
||||
unit="%"
|
||||
size="sm"
|
||||
:title="s__('DevopsReport|Your score')"
|
||||
:should-animate="true"
|
||||
:value="devopsScoreMetrics.averageScore.value"
|
||||
:meta-icon="devopsScoreMetrics.averageScore.scoreLevel.icon"
|
||||
:meta-text="devopsScoreMetrics.averageScore.scoreLevel.label"
|
||||
:variant="devopsScoreMetrics.averageScore.scoreLevel.variant"
|
||||
/>
|
||||
<gl-table
|
||||
:fields="$options.tableHeaderFields"
|
||||
:items="devopsScoreMetrics.cards"
|
||||
thead-class="gl-border-t-0 gl-border-b-solid gl-border-b-1 gl-border-b-gray-100"
|
||||
stacked="sm"
|
||||
>
|
||||
<template #cell(usage)="{ item }">
|
||||
<div data-testid="usageCol">
|
||||
<span>{{ item.usage }}</span>
|
||||
<gl-badge :variant="item.scoreLevel.variant" size="sm" class="gl-ml-1">{{
|
||||
item.scoreLevel.label
|
||||
}}</gl-badge>
|
||||
</div>
|
||||
</template>
|
||||
</gl-table>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -0,0 +1,55 @@
|
|||
<script>
|
||||
import { GlBanner } from '@gitlab/ui';
|
||||
import { parseBoolean, getCookie, setCookie } from '~/lib/utils/common_utils';
|
||||
import {
|
||||
INTRO_COOKIE_KEY,
|
||||
INTRO_BANNER_TITLE,
|
||||
INTRO_BANNER_BODY,
|
||||
INTRO_BANNER_ACTION_TEXT,
|
||||
} from '../constants';
|
||||
|
||||
export default {
|
||||
name: 'DevopsScoreCallout',
|
||||
components: {
|
||||
GlBanner,
|
||||
},
|
||||
inject: {
|
||||
devopsReportDocsPath: {
|
||||
default: '',
|
||||
},
|
||||
devopsScoreIntroImagePath: {
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
bannerDismissed: parseBoolean(getCookie(INTRO_COOKIE_KEY)),
|
||||
};
|
||||
},
|
||||
i18n: {
|
||||
title: INTRO_BANNER_TITLE,
|
||||
body: INTRO_BANNER_BODY,
|
||||
action: INTRO_BANNER_ACTION_TEXT,
|
||||
},
|
||||
methods: {
|
||||
dismissBanner() {
|
||||
setCookie(INTRO_COOKIE_KEY, 'true');
|
||||
this.bannerDismissed = true;
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<template>
|
||||
<gl-banner
|
||||
v-if="!bannerDismissed"
|
||||
class="gl-mt-3"
|
||||
variant="introduction"
|
||||
:title="$options.i18n.title"
|
||||
:button-text="$options.i18n.action"
|
||||
:button-link="devopsReportDocsPath"
|
||||
:svg-path="devopsScoreIntroImagePath"
|
||||
@close="dismissBanner"
|
||||
>
|
||||
<p>{{ $options.i18n.body }}</p>
|
||||
</gl-banner>
|
||||
</template>
|
|
@ -1,5 +1,6 @@
|
|||
<script>
|
||||
import { GlEmptyState, GlSprintf, GlLink, GlButton } from '@gitlab/ui';
|
||||
import { helpPagePath } from '~/helpers/help_page_helper';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
|
@ -15,13 +16,11 @@ export default {
|
|||
svgPath: {
|
||||
default: '',
|
||||
},
|
||||
docsLink: {
|
||||
default: '',
|
||||
},
|
||||
primaryButtonPath: {
|
||||
default: '',
|
||||
},
|
||||
},
|
||||
docsLink: helpPagePath('development/service_ping/index.md'),
|
||||
};
|
||||
</script>
|
||||
<template>
|
||||
|
@ -36,7 +35,7 @@ export default {
|
|||
"
|
||||
>
|
||||
<template #docLink="{ content }">
|
||||
<gl-link :href="docsLink" target="_blank" data-testid="docs-link">{{ content }}</gl-link>
|
||||
<gl-link :href="$options.docsLink" target="_blank">{{ content }}</gl-link>
|
||||
</template>
|
||||
</gl-sprintf>
|
||||
<template v-else>
|
||||
|
@ -44,12 +43,7 @@ export default {
|
|||
{{ s__('ServicePing|Turn on service ping to review instance-level analytics.') }}
|
||||
</p>
|
||||
|
||||
<gl-button
|
||||
category="primary"
|
||||
variant="success"
|
||||
:href="primaryButtonPath"
|
||||
data-testid="power-on-button"
|
||||
>
|
||||
<gl-button category="primary" variant="success" :href="primaryButtonPath">
|
||||
{{ s__('ServicePing|Turn on service ping') }}
|
||||
</gl-button>
|
||||
</template>
|
||||
|
|
11
app/assets/javascripts/analytics/devops_report/constants.js
Normal file
|
@ -0,0 +1,11 @@
|
|||
import { __ } from '~/locale';
|
||||
|
||||
export const INTRO_COOKIE_KEY = 'dev_ops_report_intro_callout_dismissed';
|
||||
|
||||
export const INTRO_BANNER_TITLE = __('Introducing Your DevOps Report');
|
||||
|
||||
export const INTRO_BANNER_BODY = __(
|
||||
'Your DevOps Report gives an overview of how you are using GitLab from a feature perspective. Use it to view how you compare with other organizations.',
|
||||
);
|
||||
|
||||
export const INTRO_BANNER_ACTION_TEXT = __('Read more');
|
|
@ -6,14 +6,14 @@ export default () => {
|
|||
|
||||
if (!el) return false;
|
||||
|
||||
const { devopsScoreMetrics, devopsReportDocsPath, noDataImagePath } = el.dataset;
|
||||
const { devopsScoreMetrics, noDataImagePath, devopsScoreIntroImagePath } = el.dataset;
|
||||
|
||||
return new Vue({
|
||||
el,
|
||||
provide: {
|
||||
devopsScoreMetrics: JSON.parse(devopsScoreMetrics),
|
||||
devopsReportDocsPath,
|
||||
noDataImagePath,
|
||||
devopsScoreIntroImagePath,
|
||||
},
|
||||
render(h) {
|
||||
return h(DevopsScore);
|
||||
|
|
|
@ -11,12 +11,7 @@ export default () => {
|
|||
|
||||
if (!emptyStateContainer) return false;
|
||||
|
||||
const {
|
||||
isAdmin,
|
||||
emptyStateSvgPath,
|
||||
enableServicePingPath,
|
||||
docsLink,
|
||||
} = emptyStateContainer.dataset;
|
||||
const { isAdmin, emptyStateSvgPath, enableServicePingPath } = emptyStateContainer.dataset;
|
||||
|
||||
return new Vue({
|
||||
el: emptyStateContainer,
|
||||
|
@ -24,7 +19,6 @@ export default () => {
|
|||
isAdmin: parseBoolean(isAdmin),
|
||||
svgPath: emptyStateSvgPath,
|
||||
primaryButtonPath: enableServicePingPath,
|
||||
docsLink,
|
||||
},
|
||||
render(h) {
|
||||
return h(ServicePingDisabled);
|
||||
|
|
|
@ -1,51 +1,83 @@
|
|||
import axios from '~/lib/utils/axios_utils';
|
||||
import { joinPaths } from '~/lib/utils/url_utility';
|
||||
import { buildApiUrl } from './api_utils';
|
||||
|
||||
const GROUP_VSA_PATH_BASE =
|
||||
'/groups/:id/-/analytics/value_stream_analytics/value_streams/:value_stream_id/stages/:stage_id';
|
||||
const PROJECT_VSA_PATH_BASE = '/:project_path/-/analytics/value_stream_analytics/value_streams';
|
||||
const PROJECT_VSA_METRICS_BASE = '/:request_path/-/analytics/value_stream_analytics';
|
||||
const PROJECT_VSA_PATH_BASE = '/:request_path/-/analytics/value_stream_analytics/value_streams';
|
||||
const PROJECT_VSA_STAGES_PATH = `${PROJECT_VSA_PATH_BASE}/:value_stream_id/stages`;
|
||||
const PROJECT_VSA_STAGE_DATA_PATH = `${PROJECT_VSA_STAGES_PATH}/:stage_id`;
|
||||
|
||||
const buildProjectValueStreamPath = (projectPath, valueStreamId = null) => {
|
||||
export const METRIC_TYPE_SUMMARY = 'summary';
|
||||
export const METRIC_TYPE_TIME_SUMMARY = 'time_summary';
|
||||
|
||||
const buildProjectMetricsPath = (requestPath) =>
|
||||
buildApiUrl(PROJECT_VSA_METRICS_BASE).replace(':request_path', requestPath);
|
||||
|
||||
const buildProjectValueStreamPath = (requestPath, valueStreamId = null) => {
|
||||
if (valueStreamId) {
|
||||
return buildApiUrl(PROJECT_VSA_STAGES_PATH)
|
||||
.replace(':project_path', projectPath)
|
||||
.replace(':request_path', requestPath)
|
||||
.replace(':value_stream_id', valueStreamId);
|
||||
}
|
||||
return buildApiUrl(PROJECT_VSA_PATH_BASE).replace(':project_path', projectPath);
|
||||
return buildApiUrl(PROJECT_VSA_PATH_BASE).replace(':request_path', requestPath);
|
||||
};
|
||||
|
||||
const buildGroupValueStreamPath = ({ groupId, valueStreamId = null, stageId = null }) =>
|
||||
buildApiUrl(GROUP_VSA_PATH_BASE)
|
||||
.replace(':id', groupId)
|
||||
const buildValueStreamStageDataPath = ({ requestPath, valueStreamId = null, stageId = null }) =>
|
||||
buildApiUrl(PROJECT_VSA_STAGE_DATA_PATH)
|
||||
.replace(':request_path', requestPath)
|
||||
.replace(':value_stream_id', valueStreamId)
|
||||
.replace(':stage_id', stageId);
|
||||
|
||||
export const getProjectValueStreams = (projectPath) => {
|
||||
const url = buildProjectValueStreamPath(projectPath);
|
||||
export const getProjectValueStreams = (requestPath) => {
|
||||
const url = buildProjectValueStreamPath(requestPath);
|
||||
return axios.get(url);
|
||||
};
|
||||
|
||||
export const getProjectValueStreamStages = (projectPath, valueStreamId) => {
|
||||
const url = buildProjectValueStreamPath(projectPath, valueStreamId);
|
||||
export const getProjectValueStreamStages = (requestPath, valueStreamId) => {
|
||||
const url = buildProjectValueStreamPath(requestPath, valueStreamId);
|
||||
return axios.get(url);
|
||||
};
|
||||
|
||||
// NOTE: legacy VSA request use a different path
|
||||
// the `requestPath` provides a full url for the request
|
||||
export const getProjectValueStreamStageData = ({ requestPath, stageId, params }) =>
|
||||
axios.get(`${requestPath}/events/${stageId}`, { params });
|
||||
axios.get(joinPaths(requestPath, 'events', stageId), { params });
|
||||
|
||||
export const getProjectValueStreamMetrics = (requestPath, params) =>
|
||||
axios.get(requestPath, { params });
|
||||
|
||||
/**
|
||||
* Shared group VSA paths
|
||||
* We share some endpoints across and group and project level VSA
|
||||
* When used for project level VSA, requests should include the `project_id` in the params object
|
||||
* Dedicated project VSA paths
|
||||
*/
|
||||
|
||||
export const getValueStreamStageMedian = ({ groupId, valueStreamId, stageId }, params = {}) => {
|
||||
const stageBase = buildGroupValueStreamPath({ groupId, valueStreamId, stageId });
|
||||
return axios.get(`${stageBase}/median`, { params });
|
||||
export const getValueStreamStageMedian = ({ requestPath, valueStreamId, stageId }, params = {}) => {
|
||||
const stageBase = buildValueStreamStageDataPath({ requestPath, valueStreamId, stageId });
|
||||
return axios.get(joinPaths(stageBase, 'median'), { params });
|
||||
};
|
||||
|
||||
export const getValueStreamStageRecords = (
|
||||
{ requestPath, valueStreamId, stageId },
|
||||
params = {},
|
||||
) => {
|
||||
const stageBase = buildValueStreamStageDataPath({ requestPath, valueStreamId, stageId });
|
||||
return axios.get(joinPaths(stageBase, 'records'), { params });
|
||||
};
|
||||
|
||||
export const getValueStreamStageCounts = ({ requestPath, valueStreamId, stageId }, params = {}) => {
|
||||
const stageBase = buildValueStreamStageDataPath({ requestPath, valueStreamId, stageId });
|
||||
return axios.get(joinPaths(stageBase, 'count'), { params });
|
||||
};
|
||||
|
||||
export const getValueStreamMetrics = ({
|
||||
endpoint = METRIC_TYPE_SUMMARY,
|
||||
requestPath,
|
||||
params = {},
|
||||
}) => {
|
||||
const metricBase = buildProjectMetricsPath(requestPath);
|
||||
return axios.get(joinPaths(metricBase, endpoint), { params });
|
||||
};
|
||||
|
||||
export const getValueStreamSummaryMetrics = (requestPath, params = {}) => {
|
||||
const metricBase = buildProjectMetricsPath(requestPath);
|
||||
return axios.get(joinPaths(metricBase, 'summary'), { params });
|
||||
};
|
||||
|
|
|
@ -11,7 +11,7 @@ import renderMetrics from './render_metrics';
|
|||
// Delegates to syntax highlight and render math & mermaid diagrams.
|
||||
//
|
||||
$.fn.renderGFM = function renderGFM() {
|
||||
syntaxHighlight(this.find('.js-syntax-highlight'));
|
||||
syntaxHighlight(this.find('.js-syntax-highlight').get());
|
||||
renderMath(this.find('.js-render-math'));
|
||||
renderMermaid(this.find('.js-render-mermaid'));
|
||||
highlightCurrentUser(this.find('.gfm-project_member').get());
|
||||
|
|
|
@ -25,6 +25,11 @@ export default {
|
|||
required: false,
|
||||
default: false,
|
||||
},
|
||||
isBinary: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
activeViewerType: {
|
||||
type: String,
|
||||
required: false,
|
||||
|
@ -81,6 +86,7 @@ export default {
|
|||
:raw-path="blob.rawPath"
|
||||
:active-viewer="viewer"
|
||||
:has-render-error="hasRenderError"
|
||||
:is-binary="isBinary"
|
||||
@copy="proxyCopyRequest"
|
||||
/>
|
||||
</div>
|
||||
|
|
|
@ -32,6 +32,11 @@ export default {
|
|||
required: false,
|
||||
default: false,
|
||||
},
|
||||
isBinary: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
downloadUrl() {
|
||||
|
@ -43,6 +48,9 @@ export default {
|
|||
getBlobHashTarget() {
|
||||
return `[data-blob-hash="${this.blobHash}"]`;
|
||||
},
|
||||
showCopyButton() {
|
||||
return !this.hasRenderError && !this.isBinary;
|
||||
},
|
||||
},
|
||||
BTN_COPY_CONTENTS_TITLE,
|
||||
BTN_DOWNLOAD_TITLE,
|
||||
|
@ -52,7 +60,7 @@ export default {
|
|||
<template>
|
||||
<gl-button-group data-qa-selector="default_actions_container">
|
||||
<gl-button
|
||||
v-if="!hasRenderError"
|
||||
v-if="showCopyButton"
|
||||
v-gl-tooltip.hover
|
||||
:aria-label="$options.BTN_COPY_CONTENTS_TITLE"
|
||||
:title="$options.BTN_COPY_CONTENTS_TITLE"
|
||||
|
@ -65,6 +73,7 @@ export default {
|
|||
variant="default"
|
||||
/>
|
||||
<gl-button
|
||||
v-if="!isBinary"
|
||||
v-gl-tooltip.hover
|
||||
:aria-label="$options.BTN_RAW_TITLE"
|
||||
:title="$options.BTN_RAW_TITLE"
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
<script>
|
||||
import { GlAlert, GlLoadingIcon, GlTable } from '@gitlab/ui';
|
||||
import { GlLoadingIcon, GlTable } from '@gitlab/ui';
|
||||
import Papa from 'papaparse';
|
||||
import PapaParseAlert from '~/vue_shared/components/papa_parse_alert.vue';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
PapaParseAlert,
|
||||
GlTable,
|
||||
GlAlert,
|
||||
GlLoadingIcon,
|
||||
},
|
||||
props: {
|
||||
|
@ -17,7 +18,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
items: [],
|
||||
errorMessage: null,
|
||||
papaParseErrors: [],
|
||||
loading: true,
|
||||
};
|
||||
},
|
||||
|
@ -26,7 +27,7 @@ export default {
|
|||
this.items = parsed.data;
|
||||
|
||||
if (parsed.errors.length) {
|
||||
this.errorMessage = parsed.errors.map((e) => e.message).join('. ');
|
||||
this.papaParseErrors = parsed.errors;
|
||||
}
|
||||
|
||||
this.loading = false;
|
||||
|
@ -40,9 +41,7 @@ export default {
|
|||
<gl-loading-icon class="gl-mt-5" size="lg" />
|
||||
</div>
|
||||
<div v-else>
|
||||
<gl-alert v-if="errorMessage" variant="danger" :dismissible="false">
|
||||
{{ errorMessage }}
|
||||
</gl-alert>
|
||||
<papa-parse-alert v-if="papaParseErrors.length" :papa-parse-errors="papaParseErrors" />
|
||||
<gl-table
|
||||
:empty-text="__('No CSV data to display.')"
|
||||
:items="items"
|
||||
|
|
|
@ -36,6 +36,34 @@ const loadRichBlobViewer = (type) => {
|
|||
}
|
||||
};
|
||||
|
||||
const loadViewer = (viewerParam) => {
|
||||
const viewer = viewerParam;
|
||||
const url = viewer.getAttribute('data-url');
|
||||
|
||||
if (!url || viewer.getAttribute('data-loaded') || viewer.getAttribute('data-loading')) {
|
||||
return Promise.resolve(viewer);
|
||||
}
|
||||
|
||||
viewer.setAttribute('data-loading', 'true');
|
||||
|
||||
return axios.get(url).then(({ data }) => {
|
||||
viewer.innerHTML = data.html;
|
||||
|
||||
window.requestIdleCallback(() => {
|
||||
viewer.removeAttribute('data-loading');
|
||||
});
|
||||
|
||||
return viewer;
|
||||
});
|
||||
};
|
||||
|
||||
export const initAuxiliaryViewer = () => {
|
||||
const auxiliaryViewer = document.querySelector('.blob-viewer[data-type="auxiliary"]');
|
||||
if (!auxiliaryViewer) return;
|
||||
|
||||
loadViewer(auxiliaryViewer);
|
||||
};
|
||||
|
||||
export const handleBlobRichViewer = (viewer, type) => {
|
||||
if (!viewer || !type) return;
|
||||
|
||||
|
@ -49,27 +77,20 @@ export const handleBlobRichViewer = (viewer, type) => {
|
|||
});
|
||||
};
|
||||
|
||||
export default class BlobViewer {
|
||||
export class BlobViewer {
|
||||
constructor() {
|
||||
performanceMarkAndMeasure({
|
||||
mark: REPO_BLOB_LOAD_VIEWER_START,
|
||||
});
|
||||
const viewer = document.querySelector('.blob-viewer[data-type="rich"]');
|
||||
const type = viewer?.dataset?.richType;
|
||||
BlobViewer.initAuxiliaryViewer();
|
||||
initAuxiliaryViewer();
|
||||
|
||||
handleBlobRichViewer(viewer, type);
|
||||
|
||||
this.initMainViewers();
|
||||
}
|
||||
|
||||
static initAuxiliaryViewer() {
|
||||
const auxiliaryViewer = document.querySelector('.blob-viewer[data-type="auxiliary"]');
|
||||
if (!auxiliaryViewer) return;
|
||||
|
||||
BlobViewer.loadViewer(auxiliaryViewer);
|
||||
}
|
||||
|
||||
initMainViewers() {
|
||||
this.$fileHolder = $('.file-holder');
|
||||
if (!this.$fileHolder.length) return;
|
||||
|
@ -173,7 +194,7 @@ export default class BlobViewer {
|
|||
this.activeViewer = newViewer;
|
||||
|
||||
this.toggleCopyButtonState();
|
||||
BlobViewer.loadViewer(newViewer)
|
||||
loadViewer(newViewer)
|
||||
.then((viewer) => {
|
||||
$(viewer).renderGFM();
|
||||
window.requestIdleCallback(() => {
|
||||
|
@ -205,25 +226,4 @@ export default class BlobViewer {
|
|||
}),
|
||||
);
|
||||
}
|
||||
|
||||
static loadViewer(viewerParam) {
|
||||
const viewer = viewerParam;
|
||||
const url = viewer.getAttribute('data-url');
|
||||
|
||||
if (!url || viewer.getAttribute('data-loaded') || viewer.getAttribute('data-loading')) {
|
||||
return Promise.resolve(viewer);
|
||||
}
|
||||
|
||||
viewer.setAttribute('data-loading', 'true');
|
||||
|
||||
return axios.get(url).then(({ data }) => {
|
||||
viewer.innerHTML = data.html;
|
||||
|
||||
window.requestIdleCallback(() => {
|
||||
viewer.removeAttribute('data-loading');
|
||||
});
|
||||
|
||||
return viewer;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -69,6 +69,7 @@ export default () => {
|
|||
const currentAction = $('.js-file-title').data('currentAction');
|
||||
const projectId = editBlobForm.data('project-id');
|
||||
const isMarkdown = editBlobForm.data('is-markdown');
|
||||
const previewMarkdownPath = editBlobForm.data('previewMarkdownPath');
|
||||
const commitButton = $('.js-commit-button');
|
||||
const cancelLink = $('.btn.btn-cancel');
|
||||
|
||||
|
@ -80,6 +81,7 @@ export default () => {
|
|||
currentAction,
|
||||
projectId,
|
||||
isMarkdown,
|
||||
previewMarkdownPath,
|
||||
});
|
||||
initPopovers();
|
||||
initCodeQualityWalkthroughStep();
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import $ from 'jquery';
|
||||
import { FileTemplateExtension } from '~/editor/extensions/source_editor_file_template_ext';
|
||||
import SourceEditor from '~/editor/source_editor';
|
||||
import { getBlobLanguage } from '~/editor/utils';
|
||||
import createFlash from '~/flash';
|
||||
import axios from '~/lib/utils/axios_utils';
|
||||
import { addEditorMarkdownListeners } from '~/lib/utils/text_markdown';
|
||||
|
@ -10,22 +11,13 @@ import { BLOB_EDITOR_ERROR, BLOB_PREVIEW_ERROR } from './constants';
|
|||
|
||||
export default class EditBlob {
|
||||
// The options object has:
|
||||
// assetsPath, filePath, currentAction, projectId, isMarkdown
|
||||
// assetsPath, filePath, currentAction, projectId, isMarkdown, previewMarkdownPath
|
||||
constructor(options) {
|
||||
this.options = options;
|
||||
this.configureMonacoEditor();
|
||||
|
||||
if (this.options.isMarkdown) {
|
||||
import('~/editor/extensions/source_editor_markdown_ext')
|
||||
.then(({ EditorMarkdownExtension: MarkdownExtension } = {}) => {
|
||||
this.editor.use(new MarkdownExtension());
|
||||
addEditorMarkdownListeners(this.editor);
|
||||
})
|
||||
.catch((e) =>
|
||||
createFlash({
|
||||
message: `${BLOB_EDITOR_ERROR}: ${e}`,
|
||||
}),
|
||||
);
|
||||
this.fetchMarkdownExtension();
|
||||
}
|
||||
|
||||
this.initModePanesAndLinks();
|
||||
|
@ -34,12 +26,33 @@ export default class EditBlob {
|
|||
this.editor.focus();
|
||||
}
|
||||
|
||||
fetchMarkdownExtension() {
|
||||
import('~/editor/extensions/source_editor_markdown_ext')
|
||||
.then(({ EditorMarkdownExtension: MarkdownExtension } = {}) => {
|
||||
this.editor.use(
|
||||
new MarkdownExtension({
|
||||
instance: this.editor,
|
||||
previewMarkdownPath: this.options.previewMarkdownPath,
|
||||
}),
|
||||
);
|
||||
this.hasMarkdownExtension = true;
|
||||
addEditorMarkdownListeners(this.editor);
|
||||
})
|
||||
.catch((e) =>
|
||||
createFlash({
|
||||
message: `${BLOB_EDITOR_ERROR}: ${e}`,
|
||||
}),
|
||||
);
|
||||
}
|
||||
|
||||
configureMonacoEditor() {
|
||||
const editorEl = document.getElementById('editor');
|
||||
const fileNameEl = document.getElementById('file_path') || document.getElementById('file_name');
|
||||
const fileContentEl = document.getElementById('file-content');
|
||||
const form = document.querySelector('.js-edit-blob-form');
|
||||
|
||||
this.hasMarkdownExtension = false;
|
||||
|
||||
const rootEditor = new SourceEditor();
|
||||
|
||||
this.editor = rootEditor.createInstance({
|
||||
|
@ -51,6 +64,12 @@ export default class EditBlob {
|
|||
|
||||
fileNameEl.addEventListener('change', () => {
|
||||
this.editor.updateModelLanguage(fileNameEl.value);
|
||||
const newLang = getBlobLanguage(fileNameEl.value);
|
||||
if (newLang === 'markdown') {
|
||||
if (!this.hasMarkdownExtension) {
|
||||
this.fetchMarkdownExtension();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
form.addEventListener('submit', () => {
|
||||
|
|
|
@ -204,6 +204,9 @@ export const FiltersInfo = {
|
|||
releaseTag: {
|
||||
negatedSupport: true,
|
||||
},
|
||||
types: {
|
||||
negatedSupport: true,
|
||||
},
|
||||
search: {
|
||||
negatedSupport: false,
|
||||
},
|
||||
|
|
|
@ -65,7 +65,7 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
...mapState(['isShowingLabels', 'issuableType', 'allowSubEpics']),
|
||||
...mapGetters(['isEpicBoard']),
|
||||
...mapGetters(['isEpicBoard', 'isProjectBoard']),
|
||||
cappedAssignees() {
|
||||
// e.g. maxRender is 4,
|
||||
// Render up to all 4 assignees if there are only 4 assigness
|
||||
|
@ -144,6 +144,9 @@ export default {
|
|||
totalProgress() {
|
||||
return Math.round((this.item.descendantWeightSum.closedIssues / this.totalWeight) * 100);
|
||||
},
|
||||
showReferencePath() {
|
||||
return !this.isProjectBoard && this.itemReferencePath;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['performSearch', 'setError']),
|
||||
|
@ -247,7 +250,7 @@ export default {
|
|||
:class="{ 'gl-font-base': isEpicBoard }"
|
||||
>
|
||||
<tooltip-on-truncate
|
||||
v-if="itemReferencePath"
|
||||
v-if="showReferencePath"
|
||||
:title="itemReferencePath"
|
||||
placement="bottom"
|
||||
class="board-item-path gl-text-truncate gl-font-weight-bold"
|
||||
|
|
|
@ -79,7 +79,7 @@ export default {
|
|||
'is-collapsed': list.collapsed,
|
||||
'board-type-assignee': list.listType === 'assignee',
|
||||
}"
|
||||
:data-id="list.id"
|
||||
:data-list-id="list.id"
|
||||
class="board gl-display-inline-block gl-h-full gl-px-3 gl-vertical-align-top gl-white-space-normal is-expandable"
|
||||
data-qa-selector="board_list"
|
||||
>
|
||||
|
|
|
@ -6,10 +6,12 @@ import { mapState, mapGetters, mapActions } from 'vuex';
|
|||
import BoardAddNewColumn from 'ee_else_ce/boards/components/board_add_new_column.vue';
|
||||
import defaultSortableConfig from '~/sortable/sortable_config';
|
||||
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
|
||||
import { DraggableItemTypes } from '../constants';
|
||||
import BoardColumn from './board_column.vue';
|
||||
import BoardColumnDeprecated from './board_column_deprecated.vue';
|
||||
|
||||
export default {
|
||||
draggableItemTypes: DraggableItemTypes,
|
||||
components: {
|
||||
BoardAddNewColumn,
|
||||
BoardColumn,
|
||||
|
@ -76,19 +78,6 @@ export default {
|
|||
const el = this.canDragColumns ? this.$refs.list.$el : this.$refs.list;
|
||||
el.scrollTo({ left: el.scrollWidth, behavior: 'smooth' });
|
||||
},
|
||||
handleDragOnEnd(params) {
|
||||
const { item, newIndex, oldIndex, to } = params;
|
||||
|
||||
const listId = item.dataset.id;
|
||||
const replacedListId = to.children[newIndex].dataset.id;
|
||||
|
||||
this.moveList({
|
||||
listId,
|
||||
replacedListId,
|
||||
newIndex,
|
||||
adjustmentValue: newIndex < oldIndex ? 1 : -1,
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
@ -104,7 +93,7 @@ export default {
|
|||
ref="list"
|
||||
v-bind="draggableOptions"
|
||||
class="boards-list gl-w-full gl-py-5 gl-px-3 gl-white-space-nowrap"
|
||||
@end="handleDragOnEnd"
|
||||
@end="moveList"
|
||||
>
|
||||
<component
|
||||
:is="boardColumnComponent"
|
||||
|
@ -112,6 +101,7 @@ export default {
|
|||
:key="index"
|
||||
ref="board"
|
||||
:list="list"
|
||||
:data-draggable-item-type="$options.draggableItemTypes.list"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
|
||||
|
|
|
@ -87,6 +87,7 @@ export default {
|
|||
v-bind="$attrs"
|
||||
:open="isSidebarOpen"
|
||||
class="boards-sidebar gl-absolute"
|
||||
variant="sidebar"
|
||||
@close="handleClose"
|
||||
>
|
||||
<template #title>
|
||||
|
@ -159,7 +160,7 @@ export default {
|
|||
:issuable-type="issuableType"
|
||||
data-testid="sidebar-due-date"
|
||||
/>
|
||||
<board-sidebar-labels-select class="labels" />
|
||||
<board-sidebar-labels-select class="block labels" />
|
||||
<sidebar-weight-widget
|
||||
v-if="weightFeatureAvailable"
|
||||
:iid="activeBoardItem.iid"
|
||||
|
|
|
@ -27,7 +27,15 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
urlParams() {
|
||||
const { authorUsername, labelName, assigneeUsername, search } = this.filterParams;
|
||||
const {
|
||||
authorUsername,
|
||||
labelName,
|
||||
assigneeUsername,
|
||||
search,
|
||||
milestoneTitle,
|
||||
types,
|
||||
weight,
|
||||
} = this.filterParams;
|
||||
let notParams = {};
|
||||
|
||||
if (Object.prototype.hasOwnProperty.call(this.filterParams, 'not')) {
|
||||
|
@ -36,6 +44,9 @@ export default {
|
|||
'not[label_name][]': this.filterParams.not.labelName,
|
||||
'not[author_username]': this.filterParams.not.authorUsername,
|
||||
'not[assignee_username]': this.filterParams.not.assigneeUsername,
|
||||
'not[types]': this.filterParams.not.types,
|
||||
'not[milestone_title]': this.filterParams.not.milestoneTitle,
|
||||
'not[weight]': this.filterParams.not.weight,
|
||||
},
|
||||
undefined,
|
||||
);
|
||||
|
@ -46,7 +57,10 @@ export default {
|
|||
author_username: authorUsername,
|
||||
'label_name[]': labelName,
|
||||
assignee_username: assigneeUsername,
|
||||
milestone_title: milestoneTitle,
|
||||
search,
|
||||
types,
|
||||
weight,
|
||||
};
|
||||
},
|
||||
},
|
||||
|
@ -64,7 +78,15 @@ export default {
|
|||
this.performSearch();
|
||||
},
|
||||
getFilteredSearchValue() {
|
||||
const { authorUsername, labelName, assigneeUsername, search } = this.filterParams;
|
||||
const {
|
||||
authorUsername,
|
||||
labelName,
|
||||
assigneeUsername,
|
||||
search,
|
||||
milestoneTitle,
|
||||
types,
|
||||
weight,
|
||||
} = this.filterParams;
|
||||
const filteredSearchValue = [];
|
||||
|
||||
if (authorUsername) {
|
||||
|
@ -81,6 +103,13 @@ export default {
|
|||
});
|
||||
}
|
||||
|
||||
if (types) {
|
||||
filteredSearchValue.push({
|
||||
type: 'types',
|
||||
value: { data: types, operator: '=' },
|
||||
});
|
||||
}
|
||||
|
||||
if (labelName?.length) {
|
||||
filteredSearchValue.push(
|
||||
...labelName.map((label) => ({
|
||||
|
@ -90,6 +119,20 @@ export default {
|
|||
);
|
||||
}
|
||||
|
||||
if (milestoneTitle) {
|
||||
filteredSearchValue.push({
|
||||
type: 'milestone_title',
|
||||
value: { data: milestoneTitle, operator: '=' },
|
||||
});
|
||||
}
|
||||
|
||||
if (weight) {
|
||||
filteredSearchValue.push({
|
||||
type: 'weight',
|
||||
value: { data: weight, operator: '=' },
|
||||
});
|
||||
}
|
||||
|
||||
if (this.filterParams['not[authorUsername]']) {
|
||||
filteredSearchValue.push({
|
||||
type: 'author_username',
|
||||
|
@ -97,6 +140,20 @@ export default {
|
|||
});
|
||||
}
|
||||
|
||||
if (this.filterParams['not[milestoneTitle]']) {
|
||||
filteredSearchValue.push({
|
||||
type: 'milestone_title',
|
||||
value: { data: this.filterParams['not[milestoneTitle]'], operator: '!=' },
|
||||
});
|
||||
}
|
||||
|
||||
if (this.filterParams['not[weight]']) {
|
||||
filteredSearchValue.push({
|
||||
type: 'weight',
|
||||
value: { data: this.filterParams['not[weight]'], operator: '!=' },
|
||||
});
|
||||
}
|
||||
|
||||
if (this.filterParams['not[assigneeUsername]']) {
|
||||
filteredSearchValue.push({
|
||||
type: 'assignee_username',
|
||||
|
@ -113,6 +170,13 @@ export default {
|
|||
);
|
||||
}
|
||||
|
||||
if (this.filterParams['not[types]']) {
|
||||
filteredSearchValue.push({
|
||||
type: 'types',
|
||||
value: { data: this.filterParams['not[types]'], operator: '!=' },
|
||||
});
|
||||
}
|
||||
|
||||
if (search) {
|
||||
filteredSearchValue.push(search);
|
||||
}
|
||||
|
@ -140,9 +204,18 @@ export default {
|
|||
case 'assignee_username':
|
||||
filterParams.assigneeUsername = filter.value.data;
|
||||
break;
|
||||
case 'types':
|
||||
filterParams.types = filter.value.data;
|
||||
break;
|
||||
case 'label_name':
|
||||
labels.push(filter.value.data);
|
||||
break;
|
||||
case 'milestone_title':
|
||||
filterParams.milestoneTitle = filter.value.data;
|
||||
break;
|
||||
case 'weight':
|
||||
filterParams.weight = filter.value.data;
|
||||
break;
|
||||
case 'filtered-search-term':
|
||||
if (filter.value.data) plainText.push(filter.value.data);
|
||||
break;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
import { GlModal, GlAlert } from '@gitlab/ui';
|
||||
import { mapGetters, mapActions, mapState } from 'vuex';
|
||||
import ListLabel from '~/boards/models/label';
|
||||
import { TYPE_ITERATION, TYPE_MILESTONE, TYPE_USER } from '~/graphql_shared/constants';
|
||||
import { TYPE_ITERATION, TYPE_MILESTONE } from '~/graphql_shared/constants';
|
||||
import { convertToGraphQLId } from '~/graphql_shared/utils';
|
||||
import { getParameterByName, visitUrl } from '~/lib/utils/url_utility';
|
||||
import { __, s__ } from '~/locale';
|
||||
|
@ -18,10 +18,9 @@ const boardDefaults = {
|
|||
id: false,
|
||||
name: '',
|
||||
labels: [],
|
||||
milestone_id: undefined,
|
||||
milestone: {},
|
||||
iteration_id: undefined,
|
||||
assignee: {},
|
||||
assignee_id: undefined,
|
||||
weight: null,
|
||||
hide_backlog_list: false,
|
||||
hide_closed_list: false,
|
||||
|
@ -190,13 +189,10 @@ export default {
|
|||
issueBoardScopeMutationVariables() {
|
||||
return {
|
||||
weight: this.board.weight,
|
||||
assigneeId: this.board.assignee?.id
|
||||
? convertToGraphQLId(TYPE_USER, this.board.assignee.id)
|
||||
assigneeId: this.board.assignee?.id || null,
|
||||
milestoneId: this.board.milestone?.id
|
||||
? convertToGraphQLId(TYPE_MILESTONE, this.board.milestone.id)
|
||||
: null,
|
||||
milestoneId:
|
||||
this.board.milestone?.id || this.board.milestone?.id === 0
|
||||
? convertToGraphQLId(TYPE_MILESTONE, this.board.milestone.id)
|
||||
: null,
|
||||
iterationId: this.board.iteration_id
|
||||
? convertToGraphQLId(TYPE_ITERATION, this.board.iteration_id)
|
||||
: null,
|
||||
|
@ -306,6 +302,19 @@ export default {
|
|||
}
|
||||
});
|
||||
},
|
||||
setAssignee(assigneeId) {
|
||||
this.$set(this.board, 'assignee', {
|
||||
id: assigneeId,
|
||||
});
|
||||
},
|
||||
setMilestone(milestoneId) {
|
||||
this.$set(this.board, 'milestone', {
|
||||
id: milestoneId,
|
||||
});
|
||||
},
|
||||
setWeight(weight) {
|
||||
this.$set(this.board, 'weight', weight);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
@ -373,6 +382,9 @@ export default {
|
|||
:weights="weights"
|
||||
@set-iteration="setIteration"
|
||||
@set-board-labels="setBoardLabels"
|
||||
@set-assignee="setAssignee"
|
||||
@set-milestone="setMilestone"
|
||||
@set-weight="setWeight"
|
||||
/>
|
||||
</form>
|
||||
</gl-modal>
|
||||
|
|
|
@ -6,12 +6,13 @@ import { sortableStart, sortableEnd } from '~/boards/mixins/sortable_default_opt
|
|||
import { sprintf, __ } from '~/locale';
|
||||
import defaultSortableConfig from '~/sortable/sortable_config';
|
||||
import Tracking from '~/tracking';
|
||||
import { toggleFormEventPrefix } from '../constants';
|
||||
import { toggleFormEventPrefix, DraggableItemTypes } from '../constants';
|
||||
import eventHub from '../eventhub';
|
||||
import BoardCard from './board_card.vue';
|
||||
import BoardNewIssue from './board_new_issue.vue';
|
||||
|
||||
export default {
|
||||
draggableItemTypes: DraggableItemTypes,
|
||||
name: 'BoardList',
|
||||
i18n: {
|
||||
loading: __('Loading'),
|
||||
|
@ -27,11 +28,6 @@ export default {
|
|||
GlIntersectionObserver,
|
||||
},
|
||||
mixins: [Tracking.mixin()],
|
||||
inject: {
|
||||
canAdminList: {
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
props: {
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
|
@ -89,8 +85,8 @@ export default {
|
|||
return !this.isEpicBoard && this.list.listType !== 'closed' && this.showIssueForm;
|
||||
},
|
||||
listRef() {
|
||||
// When list is draggable, the reference to the list needs to be accessed differently
|
||||
return this.canAdminList ? this.$refs.list.$el : this.$refs.list;
|
||||
// When list is draggable, the reference to the list needs to be accessed differently
|
||||
return this.canMoveIssue ? this.$refs.list.$el : this.$refs.list;
|
||||
},
|
||||
showingAllItems() {
|
||||
return this.boardItems.length === this.listItemsCount;
|
||||
|
@ -100,8 +96,11 @@ export default {
|
|||
? this.$options.i18n.showingAllEpics
|
||||
: this.$options.i18n.showingAllIssues;
|
||||
},
|
||||
canMoveIssue() {
|
||||
return !this.disabled;
|
||||
},
|
||||
treeRootWrapper() {
|
||||
return this.canAdminList && !this.listsFlags[this.list.id]?.addItemToListInProgress
|
||||
return this.canMoveIssue && !this.listsFlags[this.list.id]?.addItemToListInProgress
|
||||
? Draggable
|
||||
: 'ul';
|
||||
},
|
||||
|
@ -116,7 +115,7 @@ export default {
|
|||
value: this.boardItems,
|
||||
};
|
||||
|
||||
return this.canAdminList ? options : {};
|
||||
return this.canMoveIssue ? options : {};
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
|
@ -172,15 +171,33 @@ export default {
|
|||
this.loadNextPage();
|
||||
}
|
||||
},
|
||||
handleDragOnStart() {
|
||||
handleDragOnStart({
|
||||
item: {
|
||||
dataset: { draggableItemType },
|
||||
},
|
||||
}) {
|
||||
if (draggableItemType !== DraggableItemTypes.card) {
|
||||
return;
|
||||
}
|
||||
|
||||
sortableStart();
|
||||
this.track('drag_card', { label: 'board' });
|
||||
},
|
||||
handleDragOnEnd(params) {
|
||||
handleDragOnEnd({
|
||||
newIndex: originalNewIndex,
|
||||
oldIndex,
|
||||
from,
|
||||
to,
|
||||
item: {
|
||||
dataset: { draggableItemType, itemId, itemIid, itemPath },
|
||||
},
|
||||
}) {
|
||||
if (draggableItemType !== DraggableItemTypes.card) {
|
||||
return;
|
||||
}
|
||||
|
||||
sortableEnd();
|
||||
const { oldIndex, from, to, item } = params;
|
||||
let { newIndex } = params;
|
||||
const { itemId, itemIid, itemPath } = item.dataset;
|
||||
let newIndex = originalNewIndex;
|
||||
let { children } = to;
|
||||
let moveBeforeId;
|
||||
let moveAfterId;
|
||||
|
@ -267,6 +284,7 @@ export default {
|
|||
:index="index"
|
||||
:list="list"
|
||||
:item="item"
|
||||
:data-draggable-item-type="$options.draggableItemTypes.card"
|
||||
:disabled="disabled"
|
||||
/>
|
||||
<gl-intersection-observer @appear="onReachingListBottom">
|
||||
|
|
|
@ -1,21 +1,19 @@
|
|||
<script>
|
||||
import { GlButton } from '@gitlab/ui';
|
||||
import { mapActions, mapGetters, mapState } from 'vuex';
|
||||
import { getMilestone } from 'ee_else_ce/boards/boards_util';
|
||||
import BoardNewIssueMixin from 'ee_else_ce/boards/mixins/board_new_issue';
|
||||
import { __ } from '~/locale';
|
||||
|
||||
import { toggleFormEventPrefix } from '../constants';
|
||||
import eventHub from '../eventhub';
|
||||
|
||||
import BoardNewItem from './board_new_item.vue';
|
||||
import ProjectSelect from './project_select.vue';
|
||||
|
||||
export default {
|
||||
name: 'BoardNewIssue',
|
||||
i18n: {
|
||||
cancel: __('Cancel'),
|
||||
},
|
||||
components: {
|
||||
BoardNewItem,
|
||||
ProjectSelect,
|
||||
GlButton,
|
||||
},
|
||||
mixins: [BoardNewIssueMixin],
|
||||
inject: ['groupId'],
|
||||
|
@ -25,106 +23,55 @@ export default {
|
|||
required: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
...mapState(['selectedProject']),
|
||||
...mapGetters(['isGroupBoard', 'isEpicBoard']),
|
||||
/**
|
||||
* We've extended this component in EE where
|
||||
* submitButtonTitle returns a different string
|
||||
* hence this is kept as a computed prop.
|
||||
*/
|
||||
submitButtonTitle() {
|
||||
return __('Create issue');
|
||||
...mapState(['selectedProject', 'fullPath']),
|
||||
...mapGetters(['isGroupBoard']),
|
||||
formEventPrefix() {
|
||||
return toggleFormEventPrefix.issue;
|
||||
},
|
||||
disabled() {
|
||||
if (this.isGroupBoard) {
|
||||
return this.title === '' || !this.selectedProject.name;
|
||||
}
|
||||
return this.title === '';
|
||||
disableSubmit() {
|
||||
return this.isGroupBoard ? !this.selectedProject.name : false;
|
||||
},
|
||||
inputFieldId() {
|
||||
// eslint-disable-next-line @gitlab/require-i18n-strings
|
||||
return `${this.list.id}-title`;
|
||||
projectPath() {
|
||||
return this.isGroupBoard ? this.selectedProject.fullPath : this.fullPath;
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.$refs.input.focus();
|
||||
eventHub.$on('setSelectedProject', this.setSelectedProject);
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['addListNewIssue']),
|
||||
submit() {
|
||||
const { title } = this;
|
||||
submit({ title }) {
|
||||
const labels = this.list.label ? [this.list.label] : [];
|
||||
const assignees = this.list.assignee ? [this.list.assignee] : [];
|
||||
const milestone = getMilestone(this.list);
|
||||
|
||||
eventHub.$emit(`scroll-board-list-${this.list.id}`);
|
||||
|
||||
return this.addListNewIssue({
|
||||
list: this.list,
|
||||
issueInput: {
|
||||
title,
|
||||
labelIds: labels?.map((l) => l.id),
|
||||
assigneeIds: assignees?.map((a) => a?.id),
|
||||
milestoneId: milestone?.id,
|
||||
projectPath: this.selectedProject.fullPath,
|
||||
...this.extraIssueInput(),
|
||||
projectPath: this.projectPath,
|
||||
},
|
||||
list: this.list,
|
||||
}).then(() => {
|
||||
this.reset();
|
||||
this.cancel();
|
||||
});
|
||||
},
|
||||
reset() {
|
||||
this.title = '';
|
||||
eventHub.$emit(`${toggleFormEventPrefix.issue}${this.list.id}`);
|
||||
cancel() {
|
||||
eventHub.$emit(`${this.formEventPrefix}${this.list.id}`);
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="board-new-issue-form">
|
||||
<div class="board-card position-relative p-3 rounded">
|
||||
<form ref="submitForm" @submit.prevent="submit">
|
||||
<label :for="inputFieldId" class="label-bold">{{ __('Title') }}</label>
|
||||
<input
|
||||
:id="inputFieldId"
|
||||
ref="input"
|
||||
v-model="title"
|
||||
class="form-control"
|
||||
type="text"
|
||||
name="issue_title"
|
||||
autocomplete="off"
|
||||
/>
|
||||
<project-select v-if="isGroupBoard && !isEpicBoard" :group-id="groupId" :list="list" />
|
||||
<div class="clearfix gl-mt-3">
|
||||
<gl-button
|
||||
ref="submitButton"
|
||||
:disabled="disabled"
|
||||
class="float-left js-no-auto-disable"
|
||||
variant="confirm"
|
||||
category="primary"
|
||||
type="submit"
|
||||
>
|
||||
{{ submitButtonTitle }}
|
||||
</gl-button>
|
||||
<gl-button
|
||||
ref="cancelButton"
|
||||
class="float-right"
|
||||
type="button"
|
||||
variant="default"
|
||||
@click="reset"
|
||||
>
|
||||
{{ $options.i18n.cancel }}
|
||||
</gl-button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
<board-new-item
|
||||
:list="list"
|
||||
:form-event-prefix="formEventPrefix"
|
||||
:submit-button-title="__('Create issue')"
|
||||
:disable-submit="disableSubmit"
|
||||
@form-submit="submit"
|
||||
@form-cancel="cancel"
|
||||
>
|
||||
<project-select v-if="isGroupBoard" :group-id="groupId" :list="list" />
|
||||
</board-new-item>
|
||||
</template>
|
||||
|
|
|
@ -11,7 +11,7 @@ import ProjectSelect from './project_select_deprecated.vue';
|
|||
// This component is being replaced in favor of './board_new_issue.vue' for GraphQL boards
|
||||
|
||||
export default {
|
||||
name: 'BoardNewIssue',
|
||||
name: 'BoardNewIssueDeprecated',
|
||||
components: {
|
||||
ProjectSelect,
|
||||
GlButton,
|
||||
|
|
95
app/assets/javascripts/boards/components/board_new_item.vue
Normal file
|
@ -0,0 +1,95 @@
|
|||
<script>
|
||||
import { GlForm, GlFormInput, GlButton } from '@gitlab/ui';
|
||||
import { __ } from '~/locale';
|
||||
|
||||
import eventHub from '../eventhub';
|
||||
|
||||
export default {
|
||||
i18n: {
|
||||
cancel: __('Cancel'),
|
||||
},
|
||||
components: {
|
||||
GlForm,
|
||||
GlFormInput,
|
||||
GlButton,
|
||||
},
|
||||
props: {
|
||||
list: {
|
||||
type: Object,
|
||||
required: true,
|
||||
},
|
||||
formEventPrefix: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
disableSubmit: {
|
||||
type: Boolean,
|
||||
required: false,
|
||||
default: false,
|
||||
},
|
||||
submitButtonTitle: {
|
||||
type: String,
|
||||
required: false,
|
||||
default: __('Create issue'),
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
title: '',
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
inputFieldId() {
|
||||
// eslint-disable-next-line @gitlab/require-i18n-strings
|
||||
return `${this.list.id}-title`;
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
handleFormCancel() {
|
||||
this.title = '';
|
||||
this.$emit('form-cancel');
|
||||
},
|
||||
handleFormSubmit() {
|
||||
const { title, list } = this;
|
||||
|
||||
eventHub.$emit(`scroll-board-list-${this.list.id}`);
|
||||
this.$emit('form-submit', {
|
||||
title,
|
||||
list,
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div class="board-new-issue-form">
|
||||
<div class="board-card position-relative gl-p-5 rounded">
|
||||
<gl-form @submit.prevent="handleFormSubmit" @reset="handleFormCancel">
|
||||
<label :for="inputFieldId" class="gl-font-weight-bold">{{ __('Title') }}</label>
|
||||
<gl-form-input
|
||||
:id="inputFieldId"
|
||||
v-model.trim="title"
|
||||
:autofocus="true"
|
||||
autocomplete="off"
|
||||
type="text"
|
||||
name="issue_title"
|
||||
/>
|
||||
<slot></slot>
|
||||
<div class="gl-clearfix gl-mt-4">
|
||||
<gl-button
|
||||
:disabled="!title || disableSubmit"
|
||||
class="gl-float-left js-no-auto-disable"
|
||||
variant="confirm"
|
||||
type="submit"
|
||||
>
|
||||
{{ submitButtonTitle }}
|
||||
</gl-button>
|
||||
<gl-button class="gl-float-right js-no-auto-disable" type="reset">
|
||||
{{ $options.i18n.cancel }}
|
||||
</gl-button>
|
||||
</div>
|
||||
</gl-form>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
|
@ -1,4 +1,6 @@
|
|||
<script>
|
||||
import { GlFilteredSearchToken } from '@gitlab/ui';
|
||||
import { mapActions } from 'vuex';
|
||||
import BoardFilteredSearch from '~/boards/components/board_filtered_search.vue';
|
||||
import issueBoardFilters from '~/boards/issue_board_filters';
|
||||
import { TYPE_USER } from '~/graphql_shared/constants';
|
||||
|
@ -6,13 +8,24 @@ import { convertToGraphQLId } from '~/graphql_shared/utils';
|
|||
import { __ } from '~/locale';
|
||||
import AuthorToken from '~/vue_shared/components/filtered_search_bar/tokens/author_token.vue';
|
||||
import LabelToken from '~/vue_shared/components/filtered_search_bar/tokens/label_token.vue';
|
||||
import MilestoneToken from '~/vue_shared/components/filtered_search_bar/tokens/milestone_token.vue';
|
||||
import WeightToken from '~/vue_shared/components/filtered_search_bar/tokens/weight_token.vue';
|
||||
|
||||
export default {
|
||||
types: {
|
||||
ISSUE: 'ISSUE',
|
||||
INCIDENT: 'INCIDENT',
|
||||
},
|
||||
i18n: {
|
||||
search: __('Search'),
|
||||
label: __('Label'),
|
||||
author: __('Author'),
|
||||
assignee: __('Assignee'),
|
||||
type: __('Type'),
|
||||
incident: __('Incident'),
|
||||
issue: __('Issue'),
|
||||
milestone: __('Milestone'),
|
||||
weight: __('Weight'),
|
||||
is: __('is'),
|
||||
isNot: __('is not'),
|
||||
},
|
||||
|
@ -29,7 +42,19 @@ export default {
|
|||
},
|
||||
computed: {
|
||||
tokens() {
|
||||
const { label, is, isNot, author, assignee } = this.$options.i18n;
|
||||
const {
|
||||
label,
|
||||
is,
|
||||
isNot,
|
||||
author,
|
||||
assignee,
|
||||
issue,
|
||||
incident,
|
||||
type,
|
||||
milestone,
|
||||
weight,
|
||||
} = this.$options.i18n;
|
||||
const { types } = this.$options;
|
||||
const { fetchAuthors, fetchLabels } = issueBoardFilters(
|
||||
this.$apollo,
|
||||
this.fullPath,
|
||||
|
@ -77,10 +102,40 @@ export default {
|
|||
fetchAuthors,
|
||||
preloadedAuthors: this.preloadedAuthors(),
|
||||
},
|
||||
{
|
||||
icon: 'issues',
|
||||
title: type,
|
||||
type: 'types',
|
||||
operators: [{ value: '=', description: is }],
|
||||
token: GlFilteredSearchToken,
|
||||
unique: true,
|
||||
options: [
|
||||
{ icon: 'issue-type-issue', value: types.ISSUE, title: issue },
|
||||
{ icon: 'issue-type-incident', value: types.INCIDENT, title: incident },
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'milestone_title',
|
||||
title: milestone,
|
||||
icon: 'clock',
|
||||
symbol: '%',
|
||||
token: MilestoneToken,
|
||||
unique: true,
|
||||
defaultMilestones: [], // todo: https://gitlab.com/gitlab-org/gitlab/-/issues/337044#note_640010094
|
||||
fetchMilestones: this.fetchMilestones,
|
||||
},
|
||||
{
|
||||
type: 'weight',
|
||||
title: weight,
|
||||
icon: 'weight',
|
||||
token: WeightToken,
|
||||
unique: true,
|
||||
},
|
||||
];
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['fetchMilestones']),
|
||||
preloadedAuthors() {
|
||||
return gon?.current_user_id
|
||||
? [
|
||||
|
|
|
@ -87,7 +87,7 @@ export default {
|
|||
<div>
|
||||
<header
|
||||
v-show="showHeader"
|
||||
class="gl-display-flex gl-justify-content-space-between gl-align-items-flex-start gl-mb-3"
|
||||
class="gl-display-flex gl-justify-content-space-between gl-align-items-center gl-mb-2"
|
||||
>
|
||||
<span class="gl-vertical-align-middle">
|
||||
<slot name="title">
|
||||
|
@ -97,7 +97,8 @@ export default {
|
|||
</span>
|
||||
<gl-button
|
||||
v-if="canUpdate"
|
||||
variant="link"
|
||||
category="tertiary"
|
||||
size="small"
|
||||
class="gl-text-gray-900! gl-ml-5 js-sidebar-dropdown-toggle edit-link"
|
||||
data-testid="edit-button"
|
||||
@click="toggle"
|
||||
|
|
|
@ -25,6 +25,8 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
oldIid: null,
|
||||
isEditing: false,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
|
@ -72,6 +74,15 @@ export default {
|
|||
return this.labelsFetchPath || projectLabelsFetchPath;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
activeBoardItem(_, oldVal) {
|
||||
if (this.isEditing) {
|
||||
this.oldIid = oldVal.iid;
|
||||
} else {
|
||||
this.oldIid = null;
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
...mapActions(['setActiveBoardItemLabels', 'setError']),
|
||||
async setLabels(payload) {
|
||||
|
@ -84,8 +95,14 @@ export default {
|
|||
.filter((label) => !payload.find((selected) => selected.id === label.id))
|
||||
.map((label) => label.id);
|
||||
|
||||
const input = { addLabelIds, removeLabelIds, projectPath: this.projectPathForActiveIssue };
|
||||
const input = {
|
||||
addLabelIds,
|
||||
removeLabelIds,
|
||||
projectPath: this.projectPathForActiveIssue,
|
||||
iid: this.oldIid,
|
||||
};
|
||||
await this.setActiveBoardItemLabels(input);
|
||||
this.oldIid = null;
|
||||
} catch (e) {
|
||||
this.setError({ error: e, message: __('An error occurred while updating labels.') });
|
||||
} finally {
|
||||
|
@ -115,6 +132,8 @@ export default {
|
|||
:title="__('Labels')"
|
||||
:loading="loading"
|
||||
data-testid="sidebar-labels"
|
||||
@open="isEditing = true"
|
||||
@close="isEditing = false"
|
||||
>
|
||||
<template #collapsed>
|
||||
<gl-label
|
||||
|
|
|
@ -109,9 +109,16 @@ export const FilterFields = {
|
|||
'myReactionEmoji',
|
||||
'releaseTag',
|
||||
'search',
|
||||
'types',
|
||||
'weight',
|
||||
],
|
||||
};
|
||||
|
||||
export const DraggableItemTypes = {
|
||||
card: 'card',
|
||||
list: 'list',
|
||||
};
|
||||
|
||||
export default {
|
||||
BoardType,
|
||||
ListType,
|
||||
|
|
|
@ -9,6 +9,7 @@ query ListIssues(
|
|||
) {
|
||||
group(fullPath: $fullPath) @include(if: $isGroup) {
|
||||
board(id: $boardId) {
|
||||
hideBacklogList
|
||||
lists(issueFilters: $filters) {
|
||||
nodes {
|
||||
...BoardListFragment
|
||||
|
@ -18,6 +19,7 @@ query ListIssues(
|
|||
}
|
||||
project(fullPath: $fullPath) @include(if: $isProject) {
|
||||
board(id: $boardId) {
|
||||
hideBacklogList
|
||||
lists(issueFilters: $filters) {
|
||||
nodes {
|
||||
...BoardListFragment
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
query GroupBoardMembers($fullPath: ID!, $search: String) {
|
||||
workspace: group(fullPath: $fullPath) {
|
||||
__typename
|
||||
assignees: groupMembers(search: $search) {
|
||||
assignees: groupMembers(search: $search, relations: [DIRECT, DESCENDANTS, INHERITED]) {
|
||||
__typename
|
||||
nodes {
|
||||
id
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
query GroupBoardMilestones($fullPath: ID!, $searchTerm: String) {
|
||||
group(fullPath: $fullPath) {
|
||||
milestones(includeAncestors: true, searchTitle: $searchTerm) {
|
||||
nodes {
|
||||
id
|
||||
title
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,10 @@
|
|||
query ProjectBoardMilestones($fullPath: ID!, $searchTerm: String) {
|
||||
project(fullPath: $fullPath) {
|
||||
milestones(searchTitle: $searchTerm, includeAncestors: true) {
|
||||
nodes {
|
||||
id
|
||||
title
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -11,7 +11,12 @@ import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
|
|||
Vue.use(VueApollo);
|
||||
|
||||
const apolloProvider = new VueApollo({
|
||||
defaultClient: createDefaultClient(),
|
||||
defaultClient: createDefaultClient(
|
||||
{},
|
||||
{
|
||||
assumeImmutableResults: true,
|
||||
},
|
||||
),
|
||||
});
|
||||
|
||||
export default (params = {}) => {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import * as Sentry from '@sentry/browser';
|
||||
import { sortBy } from 'lodash';
|
||||
import {
|
||||
BoardType,
|
||||
ListType,
|
||||
|
@ -13,14 +14,14 @@ import {
|
|||
issuableTypes,
|
||||
FilterFields,
|
||||
ListTypeTitles,
|
||||
DraggableItemTypes,
|
||||
} from 'ee_else_ce/boards/constants';
|
||||
import createBoardListMutation from 'ee_else_ce/boards/graphql/board_list_create.mutation.graphql';
|
||||
import issueMoveListMutation from 'ee_else_ce/boards/graphql/issue_move_list.mutation.graphql';
|
||||
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
|
||||
import createGqClient, { fetchPolicies } from '~/lib/graphql';
|
||||
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
|
||||
// eslint-disable-next-line import/no-deprecated
|
||||
import { urlParamsToObject } from '~/lib/utils/url_utility';
|
||||
import { queryToObject } from '~/lib/utils/url_utility';
|
||||
import { s__ } from '~/locale';
|
||||
import {
|
||||
formatBoardLists,
|
||||
|
@ -35,10 +36,13 @@ import {
|
|||
filterVariables,
|
||||
} from '../boards_util';
|
||||
import boardLabelsQuery from '../graphql/board_labels.query.graphql';
|
||||
import groupBoardMilestonesQuery from '../graphql/group_board_milestones.query.graphql';
|
||||
import groupProjectsQuery from '../graphql/group_projects.query.graphql';
|
||||
import issueCreateMutation from '../graphql/issue_create.mutation.graphql';
|
||||
import issueSetLabelsMutation from '../graphql/issue_set_labels.mutation.graphql';
|
||||
import listsIssuesQuery from '../graphql/lists_issues.query.graphql';
|
||||
import projectBoardMilestonesQuery from '../graphql/project_board_milestones.query.graphql';
|
||||
|
||||
import * as types from './mutation_types';
|
||||
|
||||
export const gqlClient = createGqClient(
|
||||
|
@ -76,8 +80,7 @@ export default {
|
|||
performSearch({ dispatch }) {
|
||||
dispatch(
|
||||
'setFilters',
|
||||
// eslint-disable-next-line import/no-deprecated
|
||||
convertObjectPropsToCamelCase(urlParamsToObject(window.location.search)),
|
||||
convertObjectPropsToCamelCase(queryToObject(window.location.search, { gatherArrays: true })),
|
||||
);
|
||||
|
||||
if (gon.features.graphqlBoardLists) {
|
||||
|
@ -215,34 +218,99 @@ export default {
|
|||
});
|
||||
},
|
||||
|
||||
fetchMilestones({ state, commit }, searchTerm) {
|
||||
commit(types.RECEIVE_MILESTONES_REQUEST);
|
||||
|
||||
const { fullPath, boardType } = state;
|
||||
|
||||
const variables = {
|
||||
fullPath,
|
||||
searchTerm,
|
||||
};
|
||||
|
||||
let query;
|
||||
if (boardType === BoardType.project) {
|
||||
query = projectBoardMilestonesQuery;
|
||||
}
|
||||
if (boardType === BoardType.group) {
|
||||
query = groupBoardMilestonesQuery;
|
||||
}
|
||||
|
||||
if (!query) {
|
||||
// eslint-disable-next-line @gitlab/require-i18n-strings
|
||||
throw new Error('Unknown board type');
|
||||
}
|
||||
|
||||
return gqlClient
|
||||
.query({
|
||||
query,
|
||||
variables,
|
||||
})
|
||||
.then(({ data }) => {
|
||||
const errors = data[boardType]?.errors;
|
||||
const milestones = data[boardType]?.milestones.nodes;
|
||||
|
||||
if (errors?.[0]) {
|
||||
throw new Error(errors[0]);
|
||||
}
|
||||
|
||||
commit(types.RECEIVE_MILESTONES_SUCCESS, milestones);
|
||||
|
||||
return milestones;
|
||||
})
|
||||
.catch((e) => {
|
||||
commit(types.RECEIVE_MILESTONES_FAILURE);
|
||||
throw e;
|
||||
});
|
||||
},
|
||||
|
||||
moveList: (
|
||||
{ state, commit, dispatch },
|
||||
{ listId, replacedListId, newIndex, adjustmentValue },
|
||||
{ state: { boardLists }, commit, dispatch },
|
||||
{
|
||||
item: {
|
||||
dataset: { listId: movedListId, draggableItemType },
|
||||
},
|
||||
newIndex,
|
||||
to: { children },
|
||||
},
|
||||
) => {
|
||||
if (listId === replacedListId) {
|
||||
if (draggableItemType !== DraggableItemTypes.list) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { boardLists } = state;
|
||||
const backupList = { ...boardLists };
|
||||
const movedList = boardLists[listId];
|
||||
const displacedListId = children[newIndex].dataset.listId;
|
||||
if (movedListId === displacedListId) {
|
||||
return;
|
||||
}
|
||||
|
||||
const newPosition = newIndex - 1;
|
||||
const listAtNewIndex = boardLists[replacedListId];
|
||||
const listIds = sortBy(
|
||||
Object.keys(boardLists).filter(
|
||||
(listId) =>
|
||||
listId !== movedListId &&
|
||||
boardLists[listId].listType !== ListType.backlog &&
|
||||
boardLists[listId].listType !== ListType.closed,
|
||||
),
|
||||
(i) => boardLists[i].position,
|
||||
);
|
||||
|
||||
movedList.position = newPosition;
|
||||
listAtNewIndex.position += adjustmentValue;
|
||||
commit(types.MOVE_LIST, {
|
||||
movedList,
|
||||
listAtNewIndex,
|
||||
});
|
||||
const targetPosition = boardLists[displacedListId].position;
|
||||
// When the dragged list moves left, displaced list should shift right.
|
||||
const shiftOffset = Number(boardLists[movedListId].position < targetPosition);
|
||||
const displacedListIndex = listIds.findIndex((listId) => listId === displacedListId);
|
||||
|
||||
dispatch('updateList', { listId, position: newPosition, backupList });
|
||||
commit(
|
||||
types.MOVE_LISTS,
|
||||
listIds
|
||||
.slice(0, displacedListIndex + shiftOffset)
|
||||
.concat([movedListId], listIds.slice(displacedListIndex + shiftOffset))
|
||||
.map((listId, index) => ({ listId, position: index })),
|
||||
);
|
||||
dispatch('updateList', { listId: movedListId, position: targetPosition });
|
||||
},
|
||||
|
||||
updateList: (
|
||||
{ commit, state: { issuableType, boardItemsByListId = {} }, dispatch },
|
||||
{ listId, position, collapsed, backupList },
|
||||
{ state: { issuableType, boardItemsByListId = {} }, dispatch },
|
||||
{ listId, position, collapsed },
|
||||
) => {
|
||||
gqlClient
|
||||
.mutate({
|
||||
|
@ -255,8 +323,7 @@ export default {
|
|||
})
|
||||
.then(({ data }) => {
|
||||
if (data?.updateBoardList?.errors.length) {
|
||||
commit(types.UPDATE_LIST_FAILURE, backupList);
|
||||
return;
|
||||
throw new Error();
|
||||
}
|
||||
|
||||
// Only fetch when board items havent been fetched on a collapsed list
|
||||
|
@ -265,10 +332,19 @@ export default {
|
|||
}
|
||||
})
|
||||
.catch(() => {
|
||||
commit(types.UPDATE_LIST_FAILURE, backupList);
|
||||
dispatch('handleUpdateListFailure');
|
||||
});
|
||||
},
|
||||
|
||||
handleUpdateListFailure: ({ dispatch, commit }) => {
|
||||
dispatch('fetchLists');
|
||||
|
||||
commit(
|
||||
types.SET_ERROR,
|
||||
s__('Boards|An error occurred while updating the board list. Please try again.'),
|
||||
);
|
||||
},
|
||||
|
||||
toggleListCollapsed: ({ commit }, { listId, collapsed }) => {
|
||||
commit(types.TOGGLE_LIST_COLLAPSED, { listId, collapsed });
|
||||
},
|
||||
|
@ -551,7 +627,7 @@ export default {
|
|||
mutation: issueSetLabelsMutation,
|
||||
variables: {
|
||||
input: {
|
||||
iid: String(activeBoardItem.iid),
|
||||
iid: input.iid || String(activeBoardItem.iid),
|
||||
addLabelIds: input.addLabelIds ?? [],
|
||||
removeLabelIds: input.removeLabelIds ?? [],
|
||||
projectPath: input.projectPath,
|
||||
|
@ -564,7 +640,7 @@ export default {
|
|||
}
|
||||
|
||||
commit(types.UPDATE_BOARD_ITEM_BY_ID, {
|
||||
itemId: activeBoardItem.id,
|
||||
itemId: getIdFromGraphQLId(data.updateIssue?.issue?.id) || activeBoardItem.id,
|
||||
prop: 'labels',
|
||||
value: data.updateIssue.issue.labels.nodes,
|
||||
});
|
||||
|
|
|
@ -8,8 +8,7 @@ import { getIdFromGraphQLId } from '~/graphql_shared/utils';
|
|||
import createDefaultClient from '~/lib/graphql';
|
||||
import axios from '~/lib/utils/axios_utils';
|
||||
import { parseBoolean, convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
|
||||
// eslint-disable-next-line import/no-deprecated
|
||||
import { mergeUrlParams, urlParamsToObject, getUrlParamsArray } from '~/lib/utils/url_utility';
|
||||
import { mergeUrlParams, queryToObject, getUrlParamsArray } from '~/lib/utils/url_utility';
|
||||
import { ListType, flashAnimationDuration } from '../constants';
|
||||
import eventHub from '../eventhub';
|
||||
import ListAssignee from '../models/assignee';
|
||||
|
@ -597,8 +596,7 @@ const boardsStore = {
|
|||
|
||||
getListIssues(list, emptyIssues = true) {
|
||||
const data = {
|
||||
// eslint-disable-next-line import/no-deprecated
|
||||
...urlParamsToObject(this.filter.path),
|
||||
...queryToObject(this.filter.path, { gatherArrays: true }),
|
||||
page: list.page,
|
||||
};
|
||||
|
||||
|
|
|
@ -10,8 +10,7 @@ export const RECEIVE_BOARD_LISTS_SUCCESS = 'RECEIVE_BOARD_LISTS_SUCCESS';
|
|||
export const RECEIVE_BOARD_LISTS_FAILURE = 'RECEIVE_BOARD_LISTS_FAILURE';
|
||||
export const SHOW_PROMOTION_LIST = 'SHOW_PROMOTION_LIST';
|
||||
export const RECEIVE_ADD_LIST_SUCCESS = 'RECEIVE_ADD_LIST_SUCCESS';
|
||||
export const MOVE_LIST = 'MOVE_LIST';
|
||||
export const UPDATE_LIST_FAILURE = 'UPDATE_LIST_FAILURE';
|
||||
export const MOVE_LISTS = 'MOVE_LISTS';
|
||||
export const TOGGLE_LIST_COLLAPSED = 'TOGGLE_LIST_COLLAPSED';
|
||||
export const REMOVE_LIST = 'REMOVE_LIST';
|
||||
export const REMOVE_LIST_FAILURE = 'REMOVE_LIST_FAILURE';
|
||||
|
@ -19,6 +18,9 @@ export const RESET_ITEMS_FOR_LIST = 'RESET_ITEMS_FOR_LIST';
|
|||
export const REQUEST_ITEMS_FOR_LIST = 'REQUEST_ITEMS_FOR_LIST';
|
||||
export const RECEIVE_ITEMS_FOR_LIST_FAILURE = 'RECEIVE_ITEMS_FOR_LIST_FAILURE';
|
||||
export const RECEIVE_ITEMS_FOR_LIST_SUCCESS = 'RECEIVE_ITEMS_FOR_LIST_SUCCESS';
|
||||
export const RECEIVE_MILESTONES_REQUEST = 'RECEIVE_MILESTONES_REQUEST';
|
||||
export const RECEIVE_MILESTONES_SUCCESS = 'RECEIVE_MILESTONES_SUCCESS';
|
||||
export const RECEIVE_MILESTONES_FAILURE = 'RECEIVE_MILESTONES_FAILURE';
|
||||
export const UPDATE_BOARD_ITEM = 'UPDATE_BOARD_ITEM';
|
||||
export const REMOVE_BOARD_ITEM = 'REMOVE_BOARD_ITEM';
|
||||
export const MUTATE_ISSUE_SUCCESS = 'MUTATE_ISSUE_SUCCESS';
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { pull, union } from 'lodash';
|
||||
import { cloneDeep, pull, union } from 'lodash';
|
||||
import Vue from 'vue';
|
||||
import { getIdFromGraphQLId } from '~/graphql_shared/utils';
|
||||
import { s__ } from '~/locale';
|
||||
import { s__, __ } from '~/locale';
|
||||
import { formatIssue } from '../boards_util';
|
||||
import { issuableTypes } from '../constants';
|
||||
import * as mutationTypes from './mutation_types';
|
||||
|
@ -103,15 +103,12 @@ export default {
|
|||
Vue.set(state.boardLists, list.id, list);
|
||||
},
|
||||
|
||||
[mutationTypes.MOVE_LIST]: (state, { movedList, listAtNewIndex }) => {
|
||||
const { boardLists } = state;
|
||||
Vue.set(boardLists, movedList.id, movedList);
|
||||
Vue.set(boardLists, listAtNewIndex.id, listAtNewIndex);
|
||||
},
|
||||
|
||||
[mutationTypes.UPDATE_LIST_FAILURE]: (state, backupList) => {
|
||||
state.error = s__('Boards|An error occurred while updating the list. Please try again.');
|
||||
Vue.set(state, 'boardLists', backupList);
|
||||
[mutationTypes.MOVE_LISTS]: (state, movedLists) => {
|
||||
const updatedBoardList = movedLists.reduce((acc, { listId, position }) => {
|
||||
acc[listId].position = position;
|
||||
return acc;
|
||||
}, cloneDeep(state.boardLists));
|
||||
Vue.set(state, 'boardLists', updatedBoardList);
|
||||
},
|
||||
|
||||
[mutationTypes.TOGGLE_LIST_COLLAPSED]: (state, { listId, collapsed }) => {
|
||||
|
@ -136,6 +133,20 @@ export default {
|
|||
Vue.set(state.listsFlags, listId, { [fetchNext ? 'isLoadingMore' : 'isLoading']: true });
|
||||
},
|
||||
|
||||
[mutationTypes.RECEIVE_MILESTONES_SUCCESS](state, milestones) {
|
||||
state.milestones = milestones;
|
||||
state.milestonesLoading = false;
|
||||
},
|
||||
|
||||
[mutationTypes.RECEIVE_MILESTONES_REQUEST](state) {
|
||||
state.milestonesLoading = true;
|
||||
},
|
||||
|
||||
[mutationTypes.RECEIVE_MILESTONES_FAILURE](state) {
|
||||
state.milestonesLoading = false;
|
||||
state.error = __('Failed to load milestones.');
|
||||
},
|
||||
|
||||
[mutationTypes.RECEIVE_ITEMS_FOR_LIST_SUCCESS]: (state, { listItems, listPageInfo, listId }) => {
|
||||
const { listData, boardItems } = listItems;
|
||||
Vue.set(state, 'boardItems', { ...state.boardItems, ...boardItems });
|
||||
|
|
|
@ -19,6 +19,8 @@ export default () => ({
|
|||
boardConfig: {},
|
||||
labelsLoading: false,
|
||||
labels: [],
|
||||
milestones: [],
|
||||
milestonesLoading: false,
|
||||
highlightedLists: [],
|
||||
selectedBoardItems: [],
|
||||
groupProjects: [],
|
||||
|
|
|
@ -24,6 +24,7 @@ import {
|
|||
ADD_CI_VARIABLE_MODAL_ID,
|
||||
AWS_TIP_DISMISSED_COOKIE_NAME,
|
||||
AWS_TIP_MESSAGE,
|
||||
CONTAINS_VARIABLE_REFERENCE_MESSAGE,
|
||||
} from '../constants';
|
||||
import CiEnvironmentsDropdown from './ci_environments_dropdown.vue';
|
||||
import { awsTokens, awsTokenList } from './ci_variable_autocomplete_tokens';
|
||||
|
@ -33,6 +34,7 @@ export default {
|
|||
tokens: awsTokens,
|
||||
tokenList: awsTokenList,
|
||||
awsTipMessage: AWS_TIP_MESSAGE,
|
||||
containsVariableReferenceMessage: CONTAINS_VARIABLE_REFERENCE_MESSAGE,
|
||||
components: {
|
||||
CiEnvironmentsDropdown,
|
||||
GlAlert,
|
||||
|
@ -70,6 +72,7 @@ export default {
|
|||
'awsTipDeployLink',
|
||||
'awsTipCommandsLink',
|
||||
'awsTipLearnLink',
|
||||
'containsVariableReferenceLink',
|
||||
'protectedEnvironmentVariablesLink',
|
||||
'maskedEnvironmentVariablesLink',
|
||||
]),
|
||||
|
@ -99,6 +102,10 @@ export default {
|
|||
const regex = RegExp(this.maskableRegex);
|
||||
return regex.test(this.variable.secret_value);
|
||||
},
|
||||
containsVariableReference() {
|
||||
const regex = RegExp(/\$/);
|
||||
return regex.test(this.variable.secret_value);
|
||||
},
|
||||
displayMaskedError() {
|
||||
return !this.canMask && this.variable.masked;
|
||||
},
|
||||
|
@ -328,6 +335,22 @@ export default {
|
|||
</div>
|
||||
</gl-alert>
|
||||
</gl-collapse>
|
||||
<gl-alert
|
||||
v-if="containsVariableReference"
|
||||
:title="__('Value may contain a variable reference')"
|
||||
:dismissible="false"
|
||||
variant="warning"
|
||||
data-testid="contains-variable-reference"
|
||||
>
|
||||
<gl-sprintf :message="$options.containsVariableReferenceMessage">
|
||||
<template #code="{ content }">
|
||||
<code>{{ content }}</code>
|
||||
</template>
|
||||
<template #docsLink="{ content }">
|
||||
<gl-link :href="containsVariableReferenceLink" target="_blank">{{ content }}</gl-link>
|
||||
</template>
|
||||
</gl-sprintf>
|
||||
</gl-alert>
|
||||
<template #modal-footer>
|
||||
<gl-button @click="hideModal">{{ __('Cancel') }}</gl-button>
|
||||
<gl-button
|
||||
|
|
|
@ -24,3 +24,7 @@ export const AWS_ACCESS_KEY_ID = 'AWS_ACCESS_KEY_ID';
|
|||
export const AWS_DEFAULT_REGION = 'AWS_DEFAULT_REGION';
|
||||
export const AWS_SECRET_ACCESS_KEY = 'AWS_SECRET_ACCESS_KEY';
|
||||
export const AWS_TOKEN_CONSTANTS = [AWS_ACCESS_KEY_ID, AWS_DEFAULT_REGION, AWS_SECRET_ACCESS_KEY];
|
||||
|
||||
export const CONTAINS_VARIABLE_REFERENCE_MESSAGE = __(
|
||||
'Variable references indicated by %{codeStart}$%{codeEnd} may be expanded. If this is not what you want, consider %{docsLinkStart}using a workaround to prevent expansion%{docsLinkEnd}.',
|
||||
);
|
||||
|
|
|
@ -14,6 +14,7 @@ const mountCiVariableListApp = (containerEl) => {
|
|||
awsTipDeployLink,
|
||||
awsTipCommandsLink,
|
||||
awsTipLearnLink,
|
||||
containsVariableReferenceLink,
|
||||
protectedEnvironmentVariablesLink,
|
||||
maskedEnvironmentVariablesLink,
|
||||
} = containerEl.dataset;
|
||||
|
@ -30,6 +31,7 @@ const mountCiVariableListApp = (containerEl) => {
|
|||
awsTipDeployLink,
|
||||
awsTipCommandsLink,
|
||||
awsTipLearnLink,
|
||||
containsVariableReferenceLink,
|
||||
protectedEnvironmentVariablesLink,
|
||||
maskedEnvironmentVariablesLink,
|
||||
});
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
import { GlButton, GlEmptyState, GlLoadingIcon, GlModal, GlLink } from '@gitlab/ui';
|
||||
import { getParameterByName } from '~/lib/utils/url_utility';
|
||||
import PipelinesTableComponent from '~/pipelines/components/pipelines_list/pipelines_table.vue';
|
||||
import { PipelineKeyOptions } from '~/pipelines/constants';
|
||||
import eventHub from '~/pipelines/event_hub';
|
||||
import PipelinesMixin from '~/pipelines/mixins/pipelines_mixin';
|
||||
import PipelinesService from '~/pipelines/services/pipelines_service';
|
||||
|
@ -10,6 +11,7 @@ import TablePagination from '~/vue_shared/components/pagination/table_pagination
|
|||
import glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
|
||||
|
||||
export default {
|
||||
PipelineKeyOptions,
|
||||
components: {
|
||||
GlButton,
|
||||
GlEmptyState,
|
||||
|
@ -205,6 +207,7 @@ export default {
|
|||
:pipelines="state.pipelines"
|
||||
:update-graph-dropdown="updateGraphDropdown"
|
||||
:view-type="viewType"
|
||||
:pipeline-key-option="$options.PipelineKeyOptions[0]"
|
||||
>
|
||||
<template #table-header-actions>
|
||||
<div v-if="canRenderPipelineButton" class="gl-text-right">
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
import Vue from 'vue';
|
||||
import GlFeatureFlagsPlugin from '~/vue_shared/gl_feature_flags_plugin';
|
||||
import Translate from '~/vue_shared/translate';
|
||||
|
||||
if (process.env.NODE_ENV !== 'production') {
|
||||
Vue.config.productionTip = false;
|
||||
}
|
||||
|
||||
Vue.use(GlFeatureFlagsPlugin);
|
||||
Vue.use(Translate);
|
||||
|
||||
Vue.config.ignoredElements = ['gl-emoji'];
|
||||
|
|