Update upstream source from tag 'upstream/15.10.7+ds1'

Update to upstream version '15.10.7+ds1'
with Debian dir 2b63becd34
This commit is contained in:
Pirate Praveen 2023-05-27 22:28:11 +05:30
commit 9e65721c14
8259 changed files with 229525 additions and 112146 deletions

View file

@ -117,6 +117,10 @@ rules:
message: 'Migrate to GlSkeletonLoader, or import GlDeprecatedSkeletonLoading.'
- selector: ImportSpecifier[imported.name='GlSafeHtmlDirective']
message: 'Use directive at ~/vue_shared/directives/safe_html.js instead.'
# TODO: Remove this rule once GitLab UI no longer exports the deprecated alias.
# See https://gitlab.com/gitlab-org/gitlab/-/issues/382424.
- selector: ImportSpecifier[imported.name='GlListbox']
message: 'Import GlCollapsibleListbox instead. The GlListbox name is deprecated.'
# See https://gitlab.com/gitlab-org/gitlab/-/issues/360551
vue/multi-word-component-names: off
unicorn/prefer-dom-node-dataset:
@ -174,8 +178,7 @@ overrides:
- '@graphql-eslint'
parserOptions:
parser: '@graphql-eslint/eslint-plugin'
operations:
- '{,ee/,jh/}app/**/*.graphql'
operations: '{,ee/,jh/}app/**/*.graphql'
schema: './tmp/tests/graphql/gitlab_schema_apollo.graphql'
rules:
filenames/match-regex: off

1
.gitignore vendored
View file

@ -70,6 +70,7 @@ eslint-report.html
/tags
/vendor/bundle/*
/vendor/gitaly-ruby
/vendor/package_metadata_db/
/builds*
/.gitlab_workhorse_secret
/.gitlab_pages_secret

View file

@ -36,11 +36,12 @@ default:
OMNIBUS_GITLAB_RUBY2_BUILD: "true"
OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB_RUBY2"
.default-branch-incident-variables: &default-branch-incident-variables
.default-branch-pipeline-failure-variables: &default-branch-pipeline-failure-variables
CREATE_INCIDENT_FOR_PIPELINE_FAILURE: "true"
NOTIFY_PIPELINE_FAILURE_CHANNEL: "master-broken"
BROKEN_BRANCH_INCIDENTS_PROJECT: "gitlab-org/quality/engineering-productivity/master-broken-incidents"
BROKEN_BRANCH_INCIDENTS_PROJECT_TOKEN: "${BROKEN_MASTER_INCIDENTS_PROJECT_TOKEN}"
CREATE_ISSUES_FOR_FAILING_TESTS: "true"
workflow:
name: '$PIPELINE_NAME'
@ -48,8 +49,8 @@ workflow:
# If `$FORCE_GITLAB_CI` is set, create a pipeline.
- if: '$FORCE_GITLAB_CI'
variables:
<<: *ruby2-variables
PIPELINE_NAME: 'Ruby 2 forced pipeline'
<<: *ruby3-variables
PIPELINE_NAME: 'Ruby 3 forced pipeline'
# As part of the process of creating RCs automatically, we update stable
# branches with the changes of the most recent production deployment. The
# merge requests used for this merge a branch release-tools/X into a stable
@ -62,21 +63,24 @@ workflow:
variables:
<<: *ruby2-variables
PIPELINE_NAME: 'Ruby 2 $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline'
NO_SOURCEMAPS: 'true'
- if: '$CI_MERGE_REQUEST_LABELS =~ /Community contribution/'
variables:
<<: *ruby2-variables
<<: *ruby3-variables
GITLAB_DEPENDENCY_PROXY_ADDRESS: ""
PIPELINE_NAME: 'Ruby 2 $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline (community contribution)'
PIPELINE_NAME: 'Ruby 3 $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline (community contribution)'
NO_SOURCEMAPS: 'true'
# For (detached) merge request pipelines.
- if: '$CI_MERGE_REQUEST_IID'
variables:
<<: *ruby2-variables
PIPELINE_NAME: 'Ruby 2 $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline'
<<: *ruby3-variables
PIPELINE_NAME: 'Ruby 3 $CI_MERGE_REQUEST_EVENT_TYPE MR pipeline'
NO_SOURCEMAPS: 'true'
# For the scheduled pipelines, we set specific variables.
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CI_PIPELINE_SOURCE == "schedule"'
variables:
<<: *ruby3-variables
<<: *default-branch-incident-variables
<<: *default-branch-pipeline-failure-variables
CRYSTALBALL: "true"
PIPELINE_NAME: 'Scheduled Ruby 3 $CI_COMMIT_BRANCH branch pipeline'
# Run pipelines for ruby2 branch
@ -90,44 +94,44 @@ workflow:
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $GITLAB_USER_LOGIN =~ /project_\d+_bot\d*/'
variables:
<<: *ruby3-variables
<<: *default-branch-incident-variables
<<: *default-branch-pipeline-failure-variables
GITLAB_DEPENDENCY_PROXY_ADDRESS: ""
PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline (triggered by a project token)'
# For `$CI_DEFAULT_BRANCH` branch, create a pipeline (this includes on schedules, pushes, merges, etc.).
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
variables:
<<: *ruby3-variables
<<: *default-branch-incident-variables
<<: *default-branch-pipeline-failure-variables
PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline'
# For tags, create a pipeline.
- if: '$CI_COMMIT_TAG'
variables:
<<: *ruby2-variables
PIPELINE_NAME: 'Ruby 2 $CI_COMMIT_TAG tag pipeline'
<<: *ruby3-variables
PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_TAG tag pipeline'
# If `$GITLAB_INTERNAL` isn't set, don't create a pipeline.
- if: '$GITLAB_INTERNAL == null'
when: never
# For stable, auto-deploy, and security branches, create a pipeline.
- if: '$CI_COMMIT_BRANCH =~ /^[\d-]+-stable(-ee)?$/'
variables:
<<: *ruby2-variables
<<: *ruby3-variables
NOTIFY_PIPELINE_FAILURE_CHANNEL: "releases"
PIPELINE_NAME: 'Ruby 2 $CI_COMMIT_BRANCH branch pipeline'
PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline'
CREATE_INCIDENT_FOR_PIPELINE_FAILURE: "true"
BROKEN_BRANCH_INCIDENTS_PROJECT: "gitlab-org/release/tasks"
BROKEN_BRANCH_INCIDENTS_PROJECT_TOKEN: "${BROKEN_STABLE_INCIDENTS_PROJECT_TOKEN}"
- if: '$CI_COMMIT_BRANCH =~ /^\d+-\d+-auto-deploy-\d+$/'
variables:
<<: *ruby2-variables
PIPELINE_NAME: 'Ruby 2 $CI_COMMIT_BRANCH branch pipeline'
<<: *ruby3-variables
PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline'
- if: '$CI_COMMIT_BRANCH =~ /^security\//'
variables:
<<: *ruby2-variables
PIPELINE_NAME: 'Ruby 2 $CI_COMMIT_BRANCH branch pipeline'
<<: *ruby3-variables
PIPELINE_NAME: 'Ruby 3 $CI_COMMIT_BRANCH branch pipeline'
variables:
PG_VERSION: "12"
DEFAULT_CI_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}.patched-golang-${GO_VERSION}-rust-${RUST_VERSION}-node-16.14-postgresql-${PG_VERSION}:rubygems-3.2-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-yarn-1.22-graphicsmagick-1.3.36"
DEFAULT_CI_IMAGE: "${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}.patched-golang-${GO_VERSION}-rust-${RUST_VERSION}-node-16.14-postgresql-${PG_VERSION}:rubygems-${RUBYGEMS_VERSION}-git-2.36-lfs-2.9-chrome-${CHROME_VERSION}-yarn-1.22-graphicsmagick-1.3.36"
# We set $GITLAB_DEPENDENCY_PROXY to another variable (since it's set at the group level and has higher precedence than .gitlab-ci.yml)
# so that we can override $GITLAB_DEPENDENCY_PROXY_ADDRESS in workflow rules.
GITLAB_DEPENDENCY_PROXY_ADDRESS: "${GITLAB_DEPENDENCY_PROXY}"
@ -137,7 +141,7 @@ variables:
BUNDLE_INSTALL_FLAGS: "--jobs=$(nproc) --retry=3"
BUNDLE_FROZEN: "true"
# we override the max_old_space_size to prevent OOM errors
NODE_OPTIONS: --max_old_space_size=3584
NODE_OPTIONS: --max_old_space_size=4096
GIT_DEPTH: "20"
# 'GIT_STRATEGY: clone' optimizes the pack-objects cache hit ratio
GIT_STRATEGY: "clone"
@ -145,8 +149,9 @@ variables:
GET_SOURCES_ATTEMPTS: "3"
DEBIAN_VERSION: "bullseye"
CHROME_VERSION: "109"
DOCKER_VERSION: "20.10.14"
DOCKER_VERSION: "23.0.1"
RUBY_VERSION: "2.7"
RUBYGEMS_VERSION: "3.4"
GO_VERSION: "1.18"
RUST_VERSION: "1.65"
@ -157,7 +162,7 @@ variables:
JUNIT_RETRY_FILE: rspec/junit_rspec-retry.xml
KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/report-master.json
RSPEC_CHANGED_FILES_PATH: rspec/changed_files.txt
RSPEC_FOSS_IMPACT_PIPELINE_YML: rspec-foss-impact-pipeline.yml
RSPEC_FOSS_IMPACT_PIPELINE_TEMPLATE_YML: .gitlab/ci/rails/rspec-foss-impact.gitlab-ci.yml.erb
RSPEC_LAST_RUN_RESULTS_FILE: rspec/rspec_last_run_results.txt
RSPEC_MATCHING_JS_FILES_PATH: rspec/js_matching_files.txt
RSPEC_MATCHING_TESTS_PATH: rspec/matching_tests.txt

View file

@ -16,6 +16,7 @@ GITALY_SERVER_VERSION @project_278964_bot6 @gitlab-org/maintainers/rails-backend
/.gitlab/merge_request_templates/*.md
/doc/*.md
/doc/**/*.md
/doc/**/*.jpg
/doc/**/*.png
/data/deprecations/*.yml
/data/removals/**/*.yml
@ -415,6 +416,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/administration/compliance.md @eread
/doc/administration/configure.md @axil
/doc/administration/consul.md @axil
/doc/administration/dedicated/ @drcatherinepope
/doc/administration/docs_self_host.md @axil
/doc/administration/encrypted_configuration.md @axil
/doc/administration/environment_variables.md @axil
@ -422,6 +424,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/administration/feature_flags.md @axil
/doc/administration/file_hooks.md @ashrafkhamis
/doc/administration/geo/ @axil
/doc/administration/get_started.md @kpaizee
/doc/administration/git_protocol.md @aqualls
/doc/administration/gitaly/ @eread
/doc/administration/housekeeping.md @eread
@ -429,7 +432,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/administration/incoming_email.md @msedlakjakubowski
/doc/administration/index.md @axil
/doc/administration/instance_limits.md @axil
/doc/administration/instance_review.md @phillipwells
/doc/administration/integration/kroki.md @msedlakjakubowski
/doc/administration/integration/mailgun.md @msedlakjakubowski
/doc/administration/integration/plantuml.md @aqualls
@ -458,11 +460,11 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/administration/operations/gitlab_sshd.md @aqualls
/doc/administration/operations/moving_repositories.md @eread
/doc/administration/package_information/ @axil
/doc/administration/packages/ @dianalogan
/doc/administration/packages/ @marcel.amirault
/doc/administration/pages/ @ashrafkhamis
/doc/administration/polling.md @axil
/doc/administration/postgresql/ @aqualls
/doc/administration/postgresql/multiple_databases.md @jglassman1
/doc/administration/postgresql/multiple_databases.md @lciutacu
/doc/administration/raketasks/ @axil
/doc/administration/raketasks/ldap.md @jglassman1
/doc/administration/raketasks/praefect.md @eread
@ -500,31 +502,29 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/award_emoji.md @msedlakjakubowski
/doc/api/boards.md @msedlakjakubowski
/doc/api/branches.md @aqualls
/doc/api/broadcast_messages.md @phillipwells
/doc/api/bulk_imports.md @eread
/doc/api/cluster_agents.md @phillipwells
/doc/api/commits.md @aqualls
/doc/api/container_registry.md @dianalogan
/doc/api/container_registry.md @marcel.amirault
/doc/api/custom_attributes.md @msedlakjakubowski
/doc/api/dependencies.md @rdickenson
/doc/api/dependency_proxy.md @dianalogan
/doc/api/deploy_keys.md @rdickenson
/doc/api/deploy_tokens.md @rdickenson
/doc/api/deployments.md @rdickenson
/doc/api/dependency_proxy.md @marcel.amirault
/doc/api/deploy_keys.md @phillipwells
/doc/api/deploy_tokens.md @phillipwells
/doc/api/deployments.md @phillipwells
/doc/api/discussions.md @aqualls
/doc/api/dora/ @lciutacu
/doc/api/draft_notes.md @aqualls
/doc/api/environments.md @rdickenson
/doc/api/environments.md @phillipwells
/doc/api/epic_issues.md @msedlakjakubowski
/doc/api/epic_links.md @msedlakjakubowski
/doc/api/epics.md @msedlakjakubowski
/doc/api/error_tracking.md @drcatherinepope
/doc/api/events.md @eread
/doc/api/experiments.md @phillipwells
/doc/api/feature_flag_user_lists.md @rdickenson
/doc/api/feature_flags.md @rdickenson
/doc/api/features.md @rdickenson
/doc/api/freeze_periods.md @rdickenson
/doc/api/feature_flag_user_lists.md @phillipwells
/doc/api/feature_flags.md @phillipwells
/doc/api/features.md @phillipwells
/doc/api/freeze_periods.md @phillipwells
/doc/api/geo_nodes.md @axil
/doc/api/graphql/audit_report.md @eread
/doc/api/graphql/branch_rules.md @aqualls
@ -546,9 +546,10 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/group_labels.md @msedlakjakubowski
/doc/api/group_level_variables.md @marcel.amirault
/doc/api/group_milestones.md @msedlakjakubowski
/doc/api/group_protected_environments.md @rdickenson
/doc/api/group_protected_branches.md @aqualls
/doc/api/group_protected_environments.md @phillipwells
/doc/api/group_relations_export.md @eread
/doc/api/group_releases.md @rdickenson
/doc/api/group_releases.md @phillipwells
/doc/api/group_repository_storage_moves.md @ashrafkhamis
/doc/api/group_wikis.md @ashrafkhamis
/doc/api/groups.md @lciutacu
@ -557,7 +558,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/instance_clusters.md @phillipwells
/doc/api/instance_level_ci_variables.md @marcel.amirault
/doc/api/integrations.md @ashrafkhamis
/doc/api/invitations.md @phillipwells
/doc/api/issue_links.md @msedlakjakubowski
/doc/api/issues.md @msedlakjakubowski
/doc/api/issues_statistics.md @msedlakjakubowski
@ -586,8 +586,8 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/notification_settings.md @msedlakjakubowski
/doc/api/oauth2.md @jglassman1
/doc/api/openapi/ @ashrafkhamis
/doc/api/packages.md @dianalogan
/doc/api/packages/ @dianalogan
/doc/api/packages.md @marcel.amirault
/doc/api/packages/ @marcel.amirault
/doc/api/pages.md @ashrafkhamis
/doc/api/pages_domains.md @ashrafkhamis
/doc/api/personal_access_tokens.md @eread
@ -607,17 +607,17 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/project_snippets.md @aqualls
/doc/api/project_statistics.md @aqualls
/doc/api/project_templates.md @aqualls
/doc/api/project_vulnerabilities.md @aqualls
/doc/api/project_vulnerabilities.md @rdickenson
/doc/api/projects.md @lciutacu
/doc/api/protected_branches.md @aqualls
/doc/api/protected_environments.md @rdickenson
/doc/api/protected_environments.md @phillipwells
/doc/api/protected_tags.md @aqualls
/doc/api/releases/ @rdickenson
/doc/api/releases/ @phillipwells
/doc/api/remote_mirrors.md @aqualls
/doc/api/repositories.md @aqualls
/doc/api/repository_files.md @aqualls
/doc/api/repository_submodules.md @aqualls
/doc/api/resource_groups.md @rdickenson
/doc/api/resource_groups.md @phillipwells
/doc/api/resource_iteration_events.md @msedlakjakubowski
/doc/api/resource_label_events.md @eread
/doc/api/resource_milestone_events.md @msedlakjakubowski
@ -644,30 +644,30 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/templates/licenses.md @rdickenson
/doc/api/todos.md @msedlakjakubowski
/doc/api/topics.md @lciutacu
/doc/api/usage_data.md @dianalogan
/doc/api/usage_data.md @lciutacu
/doc/api/users.md @jglassman1
/doc/api/version.md @phillipwells
/doc/api/visual_review_discussions.md @marcel.amirault
/doc/api/vulnerabilities.md @dianalogan
/doc/api/vulnerability_exports.md @dianalogan
/doc/api/vulnerability_findings.md @dianalogan
/doc/api/visual_review_discussions.md @drcatherinepope
/doc/api/vulnerabilities.md @rdickenson
/doc/api/vulnerability_exports.md @rdickenson
/doc/api/vulnerability_findings.md @rdickenson
/doc/api/wikis.md @ashrafkhamis
/doc/architecture/blueprints/database/scalability/patterns/ @aqualls
/doc/architecture/blueprints/database_scaling/ @aqualls
/doc/ci/ @drcatherinepope
/doc/ci/caching/ @marcel.amirault
/doc/ci/chatops/ @phillipwells
/doc/ci/cloud_deployment/ @rdickenson
/doc/ci/cloud_deployment/ @phillipwells
/doc/ci/cloud_services/ @marcel.amirault
/doc/ci/directed_acyclic_graph/ @marcel.amirault
/doc/ci/docker/using_docker_images.md @fneill
/doc/ci/environments/ @rdickenson
/doc/ci/environments/ @phillipwells
/doc/ci/examples/authenticating-with-hashicorp-vault/ @marcel.amirault
/doc/ci/examples/deployment/ @rdickenson
/doc/ci/examples/end_to_end_testing_webdriverio/ @marcel.amirault
/doc/ci/examples/semantic-release.md @dianalogan
/doc/ci/examples/deployment/ @phillipwells
/doc/ci/examples/semantic-release.md @marcel.amirault
/doc/ci/interactive_web_terminal/ @fneill
/doc/ci/jobs/job_control.md @marcel.amirault
/doc/ci/introduction/ @marcel.amirault
/doc/ci/jobs/ @marcel.amirault
/doc/ci/large_repositories/ @fneill
/doc/ci/lint.md @marcel.amirault
/doc/ci/migration/ @marcel.amirault
@ -675,19 +675,23 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/ci/pipelines/downstream_pipelines.md @marcel.amirault
/doc/ci/pipelines/index.md @marcel.amirault
/doc/ci/pipelines/job_artifacts.md @marcel.amirault
/doc/ci/pipelines/pipeline_architectures.md @marcel.amirault
/doc/ci/pipelines/pipeline_artifacts.md @marcel.amirault
/doc/ci/quick_start/ @marcel.amirault
/doc/ci/resource_groups/ @rdickenson
/doc/ci/review_apps/ @marcel.amirault
/doc/ci/resource_groups/ @phillipwells
/doc/ci/runners/ @fneill
/doc/ci/secrets/ @marcel.amirault
/doc/ci/secure_files/ @marcel.amirault
/doc/ci/services/ @fneill
/doc/ci/ssh_keys/ @marcel.amirault
/doc/ci/test_cases/ @msedlakjakubowski
/doc/ci/testing/ @marcel.amirault
/doc/ci/testing/code_quality.md @rdickenson
/doc/ci/triggers/ @marcel.amirault
/doc/ci/troubleshooting.md @marcel.amirault
/doc/ci/variables/ @marcel.amirault
/doc/ci/yaml/ @marcel.amirault
/doc/ci/yaml/artifacts_reports.md @drcatherinepope
/doc/development/advanced_search.md @ashrafkhamis
/doc/development/application_limits.md @axil
/doc/development/audit_event_guide/ @eread
/doc/development/auto_devops.md @phillipwells
@ -699,27 +703,27 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/development/cascading_settings.md @jglassman1
/doc/development/chatops_on_gitlabcom.md @phillipwells
/doc/development/cicd/ @marcel.amirault
/doc/development/cicd/cicd_tables.md @drcatherinepope
/doc/development/cicd/index.md @drcatherinepope
/doc/development/code_intelligence/ @aqualls
/doc/development/code_owners/ @aqualls
/doc/development/contributing/ @sselhorn
/doc/development/database/ @aqualls
/doc/development/database/filtering_by_label.md @msedlakjakubowski
/doc/development/database/multiple_databases.md @jglassman1
/doc/development/database/multiple_databases.md @lciutacu
/doc/development/database_review.md @aqualls
/doc/development/developing_with_solargraph.md @aqualls
/doc/development/development_processes.md @sselhorn
/doc/development/distributed_tracing.md @msedlakjakubowski
/doc/development/documentation/ @sselhorn
/doc/development/elasticsearch.md @ashrafkhamis
/doc/development/experiment_guide/ @phillipwells
/doc/development/export_csv.md @eread
/doc/development/fe_guide/content_editor.md @ashrafkhamis
/doc/development/fe_guide/customizable_dashboards.md @lciutacu
/doc/development/fe_guide/dark_mode.md @sselhorn
/doc/development/fe_guide/graphql.md @sselhorn
/doc/development/fe_guide/merge_request_widget_extensions.md @aqualls
/doc/development/fe_guide/source_editor.md @ashrafkhamis
/doc/development/fe_guide/view_component.md @rdickenson
/doc/development/fe_guide/source_editor.md @aqualls
/doc/development/fe_guide/view_component.md @sselhorn
/doc/development/feature_categorization/ @sselhorn
/doc/development/feature_development.md @sselhorn
/doc/development/feature_flags/ @sselhorn
@ -736,10 +740,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/development/image_scaling.md @lciutacu
/doc/development/import_export.md @eread
/doc/development/index.md @sselhorn
/doc/development/integrations/codesandbox.md @sselhorn
/doc/development/integrations/index.md @ashrafkhamis
/doc/development/integrations/jenkins.md @ashrafkhamis
/doc/development/integrations/jira_connect.md @ashrafkhamis
/doc/development/integrations/ @ashrafkhamis
/doc/development/integrations/secure.md @rdickenson
/doc/development/integrations/secure_partner_integration.md @rdickenson
/doc/development/internal_api/ @aqualls
@ -747,25 +748,28 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/development/issuable-like-models.md @msedlakjakubowski
/doc/development/issue_types.md @msedlakjakubowski
/doc/development/kubernetes.md @phillipwells
/doc/development/labels/ @sselhorn
/doc/development/lfs.md @aqualls
/doc/development/logging.md @msedlakjakubowski
/doc/development/maintenance_mode.md @axil
/doc/development/merge_request_concepts/ @aqualls
/doc/development/migration_style_guide.md @aqualls
/doc/development/navigation_sidebar.md @sselhorn
/doc/development/omnibus.md @axil
/doc/development/packages/ @dianalogan
/doc/development/organization/ @lciutacu
/doc/development/packages/ @marcel.amirault
/doc/development/pages/ @ashrafkhamis
/doc/development/permissions.md @jglassman1
/doc/development/policies.md @jglassman1
/doc/development/product_qualified_lead_guide/ @phillipwells
/doc/development/project_templates.md @aqualls
/doc/development/prometheus_metrics.md @msedlakjakubowski
/doc/development/real_time.md @msedlakjakubowski
/doc/development/rubocop_development_guide.md @sselhorn
/doc/development/search/ @ashrafkhamis
/doc/development/sec/ @rdickenson
/doc/development/sec/security_report_ingestion_overview.md @dianalogan
/doc/development/secure_coding_guidelines.md @sselhorn
/doc/development/service_ping/ @dianalogan
/doc/development/snowplow/ @dianalogan
/doc/development/service_ping/ @lciutacu
/doc/development/snowplow/ @lciutacu
/doc/development/spam_protection_and_captcha/ @phillipwells
/doc/development/sql.md @aqualls
/doc/development/testing_guide/ @sselhorn
@ -775,7 +779,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/development/work_items.md @msedlakjakubowski
/doc/development/work_items_widgets.md @msedlakjakubowski
/doc/development/workhorse/ @aqualls
/doc/development/workspace/ @sselhorn
/doc/downgrade_ee_to_ce/ @axil
/doc/drawers/ @ashrafkhamis
/doc/gitlab-basics/ @aqualls
@ -794,6 +797,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/integration/jenkins.md @ashrafkhamis
/doc/integration/jira/ @ashrafkhamis
/doc/integration/mattermost/ @axil
/doc/integration/partner_marketplace.md @fneill
/doc/integration/recaptcha.md @phillipwells
/doc/integration/security_partners/ @rdickenson
/doc/integration/slash_commands.md @ashrafkhamis
@ -801,7 +805,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/integration/trello_power_up.md @ashrafkhamis
/doc/integration/vault.md @phillipwells
/doc/operations/error_tracking.md @drcatherinepope
/doc/operations/feature_flags.md @rdickenson
/doc/operations/feature_flags.md @phillipwells
/doc/operations/incident_management/ @msedlakjakubowski
/doc/operations/index.md @msedlakjakubowski
/doc/operations/metrics/ @msedlakjakubowski
@ -813,20 +817,19 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/raketasks/x509_signatures.md @aqualls
/doc/security/ @jglassman1
/doc/subscriptions/ @fneill
/doc/subscriptions/gitlab_dedicated/ @axil
/doc/subscriptions/gitlab_dedicated/ @drcatherinepope
/doc/topics/authentication/ @jglassman1
/doc/topics/autodevops/ @phillipwells
/doc/topics/awesome_co.md @rdickenson
/doc/topics/awesome_co.md @sselhorn
/doc/topics/git/ @aqualls
/doc/topics/gitlab_flow.md @aqualls
/doc/topics/offline/ @axil
/doc/topics/plan_and_track.md @msedlakjakubowski
/doc/topics/your_work.md @rdickenson
/doc/topics/your_work.md @sselhorn
/doc/tutorials/ @kpaizee
/doc/update/ @axil
/doc/update/background_migrations.md @aqualls
/doc/user/admin_area/analytics/ @lciutacu
/doc/user/admin_area/broadcast_messages.md @phillipwells
/doc/user/admin_area/credentials_inventory.md @jglassman1
/doc/user/admin_area/custom_project_templates.md @eread
/doc/user/admin_area/diff_limits.md @aqualls
@ -853,37 +856,37 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/user/admin_area/settings/incident_management_rate_limits.md @msedlakjakubowski
/doc/user/admin_area/settings/index.md @aqualls
/doc/user/admin_area/settings/instance_template_repository.md @aqualls
/doc/user/admin_area/settings/package_registry_rate_limits.md @dianalogan
/doc/user/admin_area/settings/package_registry_rate_limits.md @marcel.amirault
/doc/user/admin_area/settings/project_integration_management.md @ashrafkhamis
/doc/user/admin_area/settings/push_event_activities_limit.md @aqualls
/doc/user/admin_area/settings/rate_limit_on_issues_creation.md @msedlakjakubowski
/doc/user/admin_area/settings/rate_limit_on_notes_creation.md @msedlakjakubowski
/doc/user/admin_area/settings/rate_limit_on_pipelines_creation.md @drcatherinepope
/doc/user/admin_area/settings/rate_limit_on_projects_api.md @lciutacu
/doc/user/admin_area/settings/rate_limit_on_users_api.md @jglassman1
/doc/user/admin_area/settings/scim_setup.md @jglassman1
/doc/user/admin_area/settings/terraform_limits.md @phillipwells
/doc/user/admin_area/settings/third_party_offers.md @lciutacu
/doc/user/admin_area/settings/usage_statistics.md @dianalogan
/doc/user/admin_area/settings/usage_statistics.md @lciutacu
/doc/user/admin_area/settings/visibility_and_access_controls.md @aqualls
/doc/user/analytics/ @lciutacu
/doc/user/analytics/ci_cd_analytics.md @rdickenson
/doc/user/analytics/ci_cd_analytics.md @phillipwells
/doc/user/application_security/ @rdickenson
/doc/user/application_security/cve_id_request.md @dianalogan
/doc/user/application_security/generate_test_vulnerabilities/ @dianalogan
/doc/user/application_security/policies/ @dianalogan
/doc/user/application_security/security_dashboard/ @dianalogan
/doc/user/application_security/vulnerabilities/ @dianalogan
/doc/user/application_security/vulnerability_report/ @dianalogan
/doc/user/asciidoc.md @aqualls
/doc/user/award_emojis.md @msedlakjakubowski
/doc/user/clusters/ @phillipwells
/doc/user/compliance/ @eread
/doc/user/compliance/compliance_report/ @eread
/doc/user/compliance/index.md @eread
/doc/user/compliance/license_approval_policies.md @dianalogan
/doc/user/compliance/license_check_rules.md @dianalogan
/doc/user/compliance/license_compliance/ @rdickenson
/doc/user/compliance/license_list.md @rdickenson
/doc/user/compliance/license_scanning_of_cyclonedx_files/ @rdickenson
/doc/user/crm/ @msedlakjakubowski
/doc/user/discussions/ @aqualls
/doc/user/enterprise_user/ @jglassman1
/doc/user/feature_flags.md @sselhorn
/doc/user/free_user_limit.md @phillipwells
/doc/user/group/ @lciutacu
/doc/user/group/clusters/ @phillipwells
/doc/user/group/compliance_frameworks.md @eread
@ -894,7 +897,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/user/group/iterations/ @msedlakjakubowski
/doc/user/group/planning_hierarchy/ @msedlakjakubowski
/doc/user/group/reporting/ @phillipwells
/doc/user/group/repositories_analytics/ @marcel.amirault
/doc/user/group/repositories_analytics/ @drcatherinepope
/doc/user/group/roadmap/ @msedlakjakubowski
/doc/user/group/saml_sso/ @jglassman1
/doc/user/group/settings/ @jglassman1
@ -903,22 +906,27 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/user/markdown.md @msedlakjakubowski
/doc/user/namespace/ @lciutacu
/doc/user/okrs.md @msedlakjakubowski
/doc/user/operations_dashboard/ @rdickenson
/doc/user/packages/ @dianalogan
/doc/user/operations_dashboard/ @phillipwells
/doc/user/organization/ @lciutacu
/doc/user/packages/ @marcel.amirault
/doc/user/permissions.md @jglassman1
/doc/user/product_analytics/ @lciutacu
/doc/user/profile/ @jglassman1
/doc/user/profile/account/ @jglassman1
/doc/user/profile/contributions_calendar.md @lciutacu
/doc/user/profile/index.md @jglassman1
/doc/user/profile/notifications.md @msedlakjakubowski
/doc/user/profile/personal_access_tokens.md @jglassman1
/doc/user/profile/saved_replies.md @aqualls
/doc/user/profile/user_passwords.md @jglassman1
/doc/user/project/autocomplete_characters.md @aqualls
/doc/user/project/badges.md @lciutacu
/doc/user/project/changelogs.md @aqualls
/doc/user/project/clusters/ @phillipwells
/doc/user/project/code_intelligence.md @aqualls
/doc/user/project/code_owners.md @aqualls
/doc/user/project/deploy_boards.md @rdickenson
/doc/user/project/deploy_keys/ @rdickenson
/doc/user/project/deploy_tokens/ @rdickenson
/doc/user/project/deploy_boards.md @phillipwells
/doc/user/project/deploy_keys/ @phillipwells
/doc/user/project/deploy_tokens/ @phillipwells
/doc/user/project/description_templates.md @msedlakjakubowski
/doc/user/project/file_lock.md @aqualls
/doc/user/project/git_attributes.md @aqualls
@ -945,7 +953,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/user/project/protected_tags.md @aqualls
/doc/user/project/push_options.md @aqualls
/doc/user/project/quick_actions.md @msedlakjakubowski
/doc/user/project/releases/ @rdickenson
/doc/user/project/releases/ @phillipwells
/doc/user/project/remote_development/ @ashrafkhamis
/doc/user/project/repository/ @aqualls
/doc/user/project/repository/file_finder.md @ashrafkhamis
@ -965,7 +973,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/user/project/wiki/ @ashrafkhamis
/doc/user/project/working_with_projects.md @lciutacu
/doc/user/public_access.md @lciutacu
/doc/user/read_only_namespaces.md @phillipwells
/doc/user/report_abuse.md @phillipwells
/doc/user/reserved_names.md @lciutacu
/doc/user/search/ @ashrafkhamis
@ -975,7 +982,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/user/tasks.md @msedlakjakubowski
/doc/user/todos.md @msedlakjakubowski
/doc/user/usage_quotas.md @fneill
/doc/user/workspace/ @lciutacu
# End rake-managed-docs-block
[Authentication and Authorization]
@ -1396,7 +1402,6 @@ ee/lib/ee/api/entities/project.rb @gitlab-org/manage/manage-workspace/backend-ap
/ee/config/events/202108302307_profiles_controller_search_audit_event.yml @gitlab-org/govern/compliance
/ee/config/events/202108302307_projects__audit_events_controller_search_audit_event.yml @gitlab-org/govern/compliance
/ee/config/events/202111041910_admin__audit_logs_controller_search_audit_event.yml @gitlab-org/govern/compliance
/ee/config/feature_flags/development/audit_log_group_level.yml @gitlab-org/govern/compliance
/ee/config/metrics/counts_28d/20210216183930_g_compliance_audit_events_monthly.yml @gitlab-org/govern/compliance
/ee/config/metrics/counts_28d/20210216183934_i_compliance_audit_events_monthly.yml @gitlab-org/govern/compliance
/ee/config/metrics/counts_28d/20210216183942_a_compliance_audit_events_api_monthly.yml @gitlab-org/govern/compliance
@ -1421,5 +1426,5 @@ ee/lib/ee/api/entities/project.rb @gitlab-org/manage/manage-workspace/backend-ap
/ee/app/assets/javascripts/usage_quotas/storage/ @fulfillment-group/utilization-group/fe
[Manage::Foundations]
/lib/sidebars/ @gitlab/ @gitlab-org/manage/foundations/engineering
/lib/sidebars/ @gitlab-org/manage/foundations/engineering
/ee/lib/sidebars/ @gitlab-org/manage/foundations/engineering

View file

@ -37,11 +37,19 @@ prepare-as-if-jh-branch:
stage: prepare
needs:
- add-jh-files
variables:
# We can't apply --filter=tree:0 for runner to set up the repository,
# so instead we tell runner to not clone anything, and we set up the
# repository by ourselves.
GIT_STRATEGY: "none"
script:
# Fetch for the history of the branch so it does not cause the following error:
# ! [remote rejected] ref -> ref (shallow update not allowed)
- git fetch --unshallow --filter=tree:0 origin "${CI_COMMIT_SHA}"
- git checkout -b "${AS_IF_JH_BRANCH}"
- git clone --filter=tree:0 "$CI_REPOSITORY_URL" gitlab
# We should checkout before moving/changing files
- cd gitlab
- git checkout -b "${AS_IF_JH_BRANCH}" "${CI_COMMIT_SHA}"
- cd ..
- mv $JH_FILES_TO_COMMIT gitlab/
- cd gitlab
- git add ${JH_FILES_TO_COMMIT}
- git commit -m 'Add JH files' # TODO: Mark which SHA we add
- git push -f "${SANDBOX_REPOSITORY}" "${AS_IF_JH_BRANCH}"

View file

@ -1,13 +1,43 @@
include:
- local: .gitlab/ci/rails/shared.gitlab-ci.yml
db:rollback single-db-ci-connection:
extends:
- db:rollback
- .single-db-ci-connection
- .rails:rules:single-db-ci-connection
db:migrate:reset single-db-ci-connection:
extends:
- db:migrate:reset
- .single-db-ci-connection
- .rails:rules:single-db-ci-connection
db:check-schema-single-db-ci-connection:
extends:
- db:check-schema
- .single-db-ci-connection
- .rails:rules:single-db-ci-connection
db:post_deployment_migrations_validator-single-db-ci-connection:
extends:
- db:post_deployment_migrations_validator
- .single-db-ci-connection
- .rails:rules:db:check-migrations-single-db-ci-connection
db:backup_and_restore single-db-ci-connection:
extends:
- db:backup_and_restore
- .single-db-ci-connection
- .rails:rules:db-backup
db:rollback:
extends:
- .db-job-base
- .rails:rules:db-rollback
script:
- scripts/db_tasks db:migrate VERSION=20220502173045 # 14.10 (last 14.x version)
- scripts/db_tasks db:migrate
- bundle exec rake db:migrate VERSION=20220502173045 # 14.10 (last 14.x version)
- bundle exec rake db:migrate
db:rollback single-db:
extends:
@ -31,8 +61,7 @@ db:check-schema:
- .db-job-base
- .rails:rules:ee-mr-and-default-branch-only
script:
- run_timed_command "bundle exec rake db:drop db:create"
- run_timed_command "scripts/db_tasks db:migrate"
- run_timed_command "bundle exec rake db:drop db:create db:migrate"
db:check-schema-single-db:
extends:
@ -97,7 +126,7 @@ db:backup_and_restore:
GITLAB_ASSUME_YES: "1"
script:
- . scripts/prepare_build.sh
- bundle exec rake db:drop db:create db:structure:load db:seed_fu
- bundle exec rake db:drop db:create db:schema:load db:seed_fu
- mkdir -p tmp/tests/public/uploads tmp/tests/{artifacts,pages,lfs-objects,terraform_state,registry,packages}
- bundle exec rake gitlab:backup:create
- date

View file

@ -42,7 +42,7 @@ review-docs-cleanup:
docs-lint links:
extends:
- .docs:rules:docs-lint
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-docs/lint-html:alpine-3.16-ruby-3.0.5-869cfc5d
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-docs/lint-html:alpine-3.17-ruby-3.2.1-f53af000
stage: lint
needs: []
script:
@ -58,7 +58,7 @@ docs-lint links:
.docs-markdown-lint-image:
# When updating the image version here, update it in /scripts/lint-doc.sh too.
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-docs/lint-markdown:alpine-3.16-vale-2.22.0-markdownlint-0.32.2-markdownlint2-0.6.0
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-docs/lint-markdown:alpine-3.17-vale-2.24.0-markdownlint-0.33.0-markdownlint2-0.6.0
docs-lint markdown:
extends:

View file

@ -3,7 +3,7 @@
- .default-retry
- .default-before_script
- .assets-compile-cache
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}-node-16.14:rubygems-3.2-git-2.33-lfs-2.9-yarn-1.22-graphicsmagick-1.3.36
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-${DEBIAN_VERSION}-ruby-${RUBY_VERSION}-node-16.14:rubygems-${RUBYGEMS_VERSION}-git-2.33-lfs-2.9-yarn-1.22-graphicsmagick-1.3.36
variables:
SETUP_DB: "false"
WEBPACK_VENDOR_DLL: "true"
@ -49,6 +49,18 @@ compile-production-assets:
after_script:
- rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here
compile-production-assets-esbuild:
allow_failure: true
extends:
- .compile-assets-base
- .frontend:rules:compile-production-assets
variables:
NODE_ENV: "production"
RAILS_ENV: "production"
WEBPACK_USE_ESBUILD_LOADER: "true"
after_script:
- rm -f /etc/apt/sources.list.d/google*.list # We don't need to update Chrome here
compile-test-assets:
extends:
- .compile-assets-base
@ -61,6 +73,14 @@ compile-test-assets:
- "${WEBPACK_COMPILE_LOG_PATH}"
when: always
compile-test-assets-esbuild:
allow_failure: true
extends:
- .compile-assets-base
- .frontend:rules:compile-test-assets
variables:
WEBPACK_USE_ESBUILD_LOADER: "true"
compile-test-assets as-if-foss:
extends:
- compile-test-assets
@ -141,6 +161,21 @@ rspec-all frontend_fixture as-if-foss:
- !reference [.frontend-fixtures-base, needs]
- "compile-test-assets as-if-foss"
# Uploads EE fixtures in the EE project.
# Uploads FOSS fixtures in the FOSS project.
upload-frontend-fixtures:
extends:
- .frontend-fixtures-base
- .frontend:rules:upload-frontend-fixtures
stage: fixtures
needs: ["rspec-all frontend_fixture"]
script:
- source scripts/gitlab_component_helpers.sh
- 'fixtures_archive_doesnt_exist || { echoinfo "INFO: Exiting early as package exists."; exit 0; }'
- run_timed_command "create_fixtures_package"
- run_timed_command "upload_fixtures_package"
artifacts: {}
graphql-schema-dump:
variables:
SETUP_DB: "false"

View file

@ -229,14 +229,6 @@
- *node-modules-cache # We don't push this cache as it's already rebuilt by `update-assets-compile-*-cache`
- *storybook-node-modules-cache-push
.use-pg11:
services:
- name: postgres:11.6
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:5.0-alpine
variables:
POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "11"
.use-pg12:
services:
@ -256,21 +248,6 @@
POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "13"
.use-pg11-es7-ee:
services:
- name: postgres:11.6
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:5.0-alpine
- name: elasticsearch:7.17.6
command: ["elasticsearch", "-E", "discovery.type=single-node", "-E", "xpack.security.enabled=false"]
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0
alias: zoekt-ci-image
variables:
POSTGRES_HOST_AUTH_METHOD: trust
PG_VERSION: "11"
ZOEKT_INDEX_BASE_URL: http://zoekt-ci-image:6060
ZOEKT_SEARCH_BASE_URL: http://zoekt-ci-image:6070
.use-pg12-es7-ee:
services:
- name: postgres:12
@ -306,7 +283,7 @@
- name: postgres:12
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:6.0-alpine
- name: elasticsearch:8.5.3
- name: elasticsearch:8.6.2
- name: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:zoekt-ci-image-1.0
alias: zoekt-ci-image
variables:
@ -376,7 +353,7 @@
.use-buildx:
extends: .use-docker-in-docker
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-slim:docker-${DOCKER_VERSION}-buildx-0.8
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-slim:docker-${DOCKER_VERSION}
variables:
QEMU_IMAGE: tonistiigi/binfmt:qemu-v7.0.0
before_script:

View file

@ -70,3 +70,40 @@ notify-pipeline-failure:
- ${FAILED_PIPELINE_SLACK_MESSAGE_FILE}
when: always
expire_in: 2 days
create-issues-for-failing-tests:
extends:
- .notify-defaults
- .notify:rules:create-issues-for-failing-tests
image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}
variables:
FAILED_TESTS_DIR: "${CI_PROJECT_DIR}/tmp/failed_tests"
FAILING_ISSUES_PROJECT: "gitlab-org/quality/engineering-productivity/flaky-tests-playground"
FAILING_ISSUE_JSON_DIR: "${CI_PROJECT_DIR}/tmp/issues"
before_script:
- source ./scripts/utils.sh
- source ./scripts/rspec_helpers.sh
- install_gitlab_gem
script:
- mkdir -p "${FAILING_ISSUE_JSON_DIR}"
- retrieve_failed_tests "${FAILED_TESTS_DIR}" "json" "latest"
- scripts/pipeline/create_test_failure_issues.rb --project "${FAILING_ISSUES_PROJECT}" --tests-report-file "${FAILED_TESTS_DIR}/rspec_failed_tests.json" --issues-json-folder "${FAILING_ISSUE_JSON_DIR}" --api-token "${FAILING_ISSUES_PROJECT_TOKEN}"
- scripts/pipeline/create_test_failure_issues.rb --project "${FAILING_ISSUES_PROJECT}" --tests-report-file "${FAILED_TESTS_DIR}/rspec_ee_failed_tests.json" --issues-json-folder "${FAILING_ISSUE_JSON_DIR}" --api-token "${FAILING_ISSUES_PROJECT_TOKEN}"
artifacts:
paths:
- ${FAILED_TESTS_DIR}/
- ${FAILING_ISSUE_JSON_DIR}/
when: always
expire_in: 2 days
notify-package-and-test-failure:
extends:
- .notify-defaults
- .notify:rules:notify-package-and-test-failure
image: ${GITLAB_DEPENDENCY_PROXY_ADDRESS}ruby:${RUBY_VERSION}
before_script:
- source scripts/utils.sh
- apt-get update
- install_gitlab_gem
script:
- scripts/generate-failed-package-and-test-mr-message.rb

View file

@ -8,7 +8,7 @@ include:
- local: .gitlab/ci/package-and-test/rules.gitlab-ci.yml
- local: .gitlab/ci/package-and-test/variables.gitlab-ci.yml
- project: gitlab-org/quality/pipeline-common
ref: 2.0.0
ref: 2.2.0
file:
- /ci/base.gitlab-ci.yml
- /ci/allure-report.yml
@ -41,7 +41,8 @@ stages:
.update-script:
script:
- export QA_COMMAND="bundle exec gitlab-qa Test::Omnibus::UpdateFromPrevious $RELEASE $GITLAB_VERSION $UPDATE_TYPE -- $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"
- !reference [.bundle-prefix]
- export QA_COMMAND="$BUNDLE_PREFIX gitlab-qa Test::Omnibus::UpdateFromPrevious $RELEASE $GITLAB_SEMVER_VERSION $UPDATE_TYPE -- $QA_RSPEC_TAGS $RSPEC_REPORT_OPTS"
- echo "Running - '$QA_COMMAND'"
- eval "$QA_COMMAND"
@ -59,15 +60,16 @@ stages:
- job: download-knapsack-report
artifacts: true
optional: true
- job: check-release-set
variables:
QA_GENERATE_ALLURE_REPORT: "true"
QA_CAN_TEST_PRAEFECT: "false"
QA_INTERCEPT_REQUESTS: "true"
QA_RUN_TYPE: e2e-package-and-test
GITLAB_LICENSE_MODE: test
GITLAB_QA_ADMIN_ACCESS_TOKEN: $QA_ADMIN_ACCESS_TOKEN
# todo: remove in 16.1 milestone when not needed for backwards compatibility anymore
EE_LICENSE: $QA_EE_LICENSE
GITHUB_ACCESS_TOKEN: $QA_GITHUB_ACCESS_TOKEN
GITLAB_QA_ADMIN_ACCESS_TOKEN: $QA_ADMIN_ACCESS_TOKEN
GITLAB_LICENSE_MODE: test
# ==========================================
# Prepare stage
@ -122,6 +124,7 @@ trigger-omnibus-env:
echo "OMNIBUS_GITLAB_CACHE_UPDATE=${OMNIBUS_GITLAB_CACHE_UPDATE:-false}" >> $BUILD_ENV
for version_file in *_VERSION; do echo "$version_file=$(cat $version_file)" >> $BUILD_ENV; done
echo "OMNIBUS_GITLAB_RUBY3_BUILD=${OMNIBUS_GITLAB_RUBY3_BUILD:-false}" >> $BUILD_ENV
echo "OMNIBUS_GITLAB_RUBY2_BUILD=${OMNIBUS_GITLAB_RUBY2_BUILD:-false}" >> $BUILD_ENV
echo "OMNIBUS_GITLAB_CACHE_EDITION=${OMNIBUS_GITLAB_CACHE_EDITION:-GITLAB}" >> $BUILD_ENV
echo "GITLAB_ASSETS_TAG=$(assets_image_tag)" >> $BUILD_ENV
echo "EE=$([[ $FOSS_ONLY == '1' ]] && echo 'false' || echo 'true')" >> $BUILD_ENV
@ -155,8 +158,8 @@ trigger-omnibus:
SECURITY_SOURCES: $SECURITY_SOURCES
CACHE_UPDATE: $OMNIBUS_GITLAB_CACHE_UPDATE
RUBY3_BUILD: $OMNIBUS_GITLAB_RUBY3_BUILD
RUBY2_BUILD: $OMNIBUS_GITLAB_RUBY2_BUILD
CACHE_EDITION: $OMNIBUS_GITLAB_CACHE_EDITION
SKIP_QA_DOCKER: "true"
SKIP_QA_TEST: "true"
ee: $EE
trigger:
@ -206,7 +209,7 @@ cache-gems:
# Run manual quarantine job
# this job requires passing QA_SCENARIO variable
# and optionally QA_TESTS to run specific quarantined tests
_ee:quarantine:
_quarantine:
extends:
- .qa
- .rules:test:manual
@ -217,12 +220,33 @@ _ee:quarantine:
variables:
QA_RSPEC_TAGS: --tag quarantine
# Temporary test job to support the effort of migrating to Super Sidebar
# https://gitlab.com/groups/gitlab-org/-/epics/9044
_super-sidebar-nav:
extends:
- .qa
- .parallel
variables:
QA_SCENARIO: Test::Instance::Image
QA_KNAPSACK_REPORT_NAME: ee-instance
QA_TESTS: ""
QA_SUPER_SIDEBAR_ENABLED: "true"
QA_ALLURE_RESULTS_DIRECTORY: tmp/allure-results-super-sidebar
QA_EXPORT_TEST_METRICS: "false"
GITLAB_QA_OPTS: --set-feature-flags super_sidebar_nav=enabled
RSPEC_REPORT_OPTS: "--format documentation"
SKIP_REPORT_IN_ISSUES: "true"
allow_failure: true
rules:
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
- !reference [.rules:test:manual, rules]
# ------------------------------------------
# FF changes
# ------------------------------------------
# Run specs with feature flags set to the opposite of the default state
ee:instance-ff-inverse:
instance-ff-inverse:
extends:
- .qa
- .parallel
@ -236,23 +260,23 @@ ee:instance-ff-inverse:
# ------------------------------------------
# Jobs with parallel variant
# ------------------------------------------
ee:instance-selective:
instance-selective:
extends: .qa
variables:
QA_SCENARIO: Test::Instance::Image
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
ee:instance:
instance:
extends:
- .parallel
- ee:instance-selective
- instance-selective
rules:
- !reference [.rules:test:feature-flags-set, rules] # always run ee:instance to validate ff change
- !reference [.rules:test:feature-flags-set, rules] # always run instance to validate ff change
- !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
ee:praefect-selective:
praefect-selective:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::Praefect
@ -260,30 +284,30 @@ ee:praefect-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
ee:praefect:
praefect:
extends:
- .parallel
- ee:praefect-selective
- praefect-selective
rules:
- !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
ee:relative-url-selective:
relative-url-selective:
extends: .qa
variables:
QA_SCENARIO: Test::Instance::RelativeUrl
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
ee:relative-url:
relative-url:
extends:
- .parallel
- ee:relative-url-selective
- relative-url-selective
rules:
- !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
ee:decomposition-single-db-selective:
decomposition-single-db-selective:
extends: .qa
variables:
QA_SCENARIO: Test::Instance::Image
@ -291,15 +315,15 @@ ee:decomposition-single-db-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
ee:decomposition-single-db:
decomposition-single-db:
extends:
- .parallel
- ee:decomposition-single-db-selective
- decomposition-single-db-selective
rules:
- !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
ee:decomposition-multiple-db-selective:
decomposition-multiple-db-selective:
extends: .qa
variables:
QA_SCENARIO: Test::Instance::Image
@ -308,15 +332,15 @@ ee:decomposition-multiple-db-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
ee:decomposition-multiple-db:
decomposition-multiple-db:
extends:
- .parallel
- ee:decomposition-multiple-db-selective
- decomposition-multiple-db-selective
rules:
- !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::All/
ee:object-storage-selective:
object-storage-selective:
extends: .qa
variables:
QA_SCENARIO: Test::Instance::Image
@ -325,42 +349,42 @@ ee:object-storage-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::ObjectStorage/
ee:object-storage:
extends: ee:object-storage-selective
object-storage:
extends: object-storage-selective
parallel: 2
rules:
- !reference [.rules:test:qa-parallel, rules]
- if: $QA_SUITES =~ /Test::Instance::ObjectStorage/
ee:object-storage-aws-selective:
extends: ee:object-storage-selective
object-storage-aws-selective:
extends: object-storage-selective
variables:
AWS_S3_ACCESS_KEY: $QA_AWS_S3_ACCESS_KEY
AWS_S3_BUCKET_NAME: $QA_AWS_S3_BUCKET_NAME
AWS_S3_KEY_ID: $QA_AWS_S3_KEY_ID
AWS_S3_REGION: $QA_AWS_S3_REGION
GITLAB_QA_OPTS: --omnibus-config object_storage_aws
ee:object-storage-aws:
extends: ee:object-storage-aws-selective
object-storage-aws:
extends: object-storage-aws-selective
parallel: 2
rules:
- !reference [ee:object-storage, rules]
- !reference [object-storage, rules]
ee:object-storage-gcs-selective:
extends: ee:object-storage-selective
object-storage-gcs-selective:
extends: object-storage-selective
variables:
GCS_BUCKET_NAME: $QA_GCS_BUCKET_NAME
GOOGLE_PROJECT: $QA_GOOGLE_PROJECT
GOOGLE_JSON_KEY: $QA_GOOGLE_JSON_KEY
GOOGLE_CLIENT_EMAIL: $QA_GOOGLE_CLIENT_EMAIL
GITLAB_QA_OPTS: --omnibus-config object_storage_gcs
ee:object-storage-gcs:
extends: ee:object-storage-gcs-selective
object-storage-gcs:
extends: object-storage-gcs-selective
parallel: 2
rules:
- !reference [ee:object-storage, rules]
- !reference [object-storage, rules]
ee:packages-selective:
packages-selective:
extends: .qa
variables:
QA_SCENARIO: Test::Instance::Image
@ -369,8 +393,8 @@ ee:packages-selective:
rules:
- !reference [.rules:test:qa-selective, rules]
- if: $QA_SUITES =~ /Test::Instance::Packages/
ee:packages:
extends: ee:packages-selective
packages:
extends: packages-selective
parallel: 2
rules:
- !reference [.rules:test:qa-parallel, rules]
@ -379,7 +403,7 @@ ee:packages:
# ------------------------------------------
# Non parallel jobs
# ------------------------------------------
ee:update-minor:
update-minor:
extends:
- .qa
- .update-script
@ -391,7 +415,7 @@ ee:update-minor:
- if: $QA_SUITES =~ /Test::Instance::Smoke/
- !reference [.rules:test:manual, rules]
ee:update-major:
update-major:
extends:
- .qa
- .update-script
@ -403,7 +427,7 @@ ee:update-major:
- if: $QA_SUITES =~ /Test::Instance::Smoke/
- !reference [.rules:test:manual, rules]
ee:gitlab-pages:
gitlab-pages:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::GitlabPages
@ -412,7 +436,7 @@ ee:gitlab-pages:
- if: $QA_SUITES =~ /Test::Instance::GitlabPages/
- !reference [.rules:test:manual, rules]
ee:gitaly-cluster:
gitaly-cluster:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::GitalyCluster
@ -421,16 +445,17 @@ ee:gitaly-cluster:
- if: $QA_SUITES =~ /Test::Integration::GitalyCluster/
- !reference [.rules:test:manual, rules]
ee:group-saml:
group-saml:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::GroupSAML
rules:
- !reference [.rules:test:ee-only, rules]
- !reference [.rules:test:qa, rules]
- if: $QA_SUITES =~ /Test::Integration::GroupSAML/
- !reference [.rules:test:manual, rules]
ee:instance-saml:
instance-saml:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::InstanceSAML
@ -439,7 +464,7 @@ ee:instance-saml:
- if: $QA_SUITES =~ /Test::Integration::InstanceSAML/
- !reference [.rules:test:manual, rules]
ee:jira:
jira:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::Jira
@ -450,7 +475,7 @@ ee:jira:
- if: $QA_SUITES =~ /Test::Integration::Jira/
- !reference [.rules:test:manual, rules]
ee:integrations:
integrations:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::Integrations
@ -459,7 +484,7 @@ ee:integrations:
- if: $QA_SUITES =~ /Test::Integration::Integrations/
- !reference [.rules:test:manual, rules]
ee:ldap-no-server:
ldap-no-server:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::LDAPNoServer
@ -468,7 +493,7 @@ ee:ldap-no-server:
- if: $QA_SUITES =~ /Test::Integration::LDAPNoServer/
- !reference [.rules:test:manual, rules]
ee:ldap-tls:
ldap-tls:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::LDAPTLS
@ -477,7 +502,7 @@ ee:ldap-tls:
- if: $QA_SUITES =~ /Test::Integration::LDAPTLS/
- !reference [.rules:test:manual, rules]
ee:ldap-no-tls:
ldap-no-tls:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::LDAPNoTLS
@ -486,7 +511,7 @@ ee:ldap-no-tls:
- if: $QA_SUITES =~ /Test::Integration::LDAPNoTLS/
- !reference [.rules:test:manual, rules]
ee:mtls:
mtls:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::MTLS
@ -495,7 +520,7 @@ ee:mtls:
- if: $QA_SUITES =~ /Test::Integration::Mtls/
- !reference [.rules:test:manual, rules]
ee:mattermost:
mattermost:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::Mattermost
@ -504,7 +529,7 @@ ee:mattermost:
- if: $QA_SUITES =~ /Test::Integration::Mattermost/
- !reference [.rules:test:manual, rules]
ee:registry:
registry:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::Registry
@ -513,7 +538,7 @@ ee:registry:
- if: $QA_SUITES =~ /Test::Integration::Registry/
- !reference [.rules:test:manual, rules]
ee:registry-with-cdn:
registry-with-cdn:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::RegistryWithCDN
@ -530,7 +555,7 @@ ee:registry-with-cdn:
- if: $QA_SUITES =~ /Test::Integration::RegistryWithCDN/
- !reference [.rules:test:manual, rules]
ee:repository-storage:
repository-storage:
extends: .qa
variables:
QA_SCENARIO: Test::Instance::RepositoryStorage
@ -539,7 +564,7 @@ ee:repository-storage:
- if: $QA_SUITES =~ /Test::Instance::RepositoryStorage/
- !reference [.rules:test:manual, rules]
ee:service-ping-disabled:
service-ping-disabled:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::ServicePingDisabled
@ -548,7 +573,7 @@ ee:service-ping-disabled:
- if: $QA_SUITES =~ /Test::Integration::ServicePingDisabled/
- !reference [.rules:test:manual, rules]
ee:smtp:
smtp:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::SMTP
@ -557,7 +582,7 @@ ee:smtp:
- if: $QA_SUITES =~ /Test::Integration::SMTP/
- !reference [.rules:test:manual, rules]
ee:cloud-activation:
cloud-activation:
extends: .qa
variables:
QA_SCENARIO: Test::Instance::Image
@ -567,7 +592,7 @@ ee:cloud-activation:
- if: $QA_SUITES =~ /Test::Instance::CloudActivation/
- !reference [.rules:test:manual, rules]
ee:large-setup:
large-setup:
extends: .qa
variables:
QA_SCENARIO: Test::Instance::Image
@ -577,7 +602,7 @@ ee:large-setup:
- if: $QA_SUITES =~ /Test::Instance::LargeSetup/
- !reference [.rules:test:manual, rules]
ee:metrics:
metrics:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::Metrics
@ -586,31 +611,31 @@ ee:metrics:
- if: $QA_SUITES =~ /Test::Instance::Metrics/
- !reference [.rules:test:manual, rules]
ee:elasticsearch:
elasticsearch:
extends: .qa
variables:
QA_SCENARIO: "Test::Integration::Elasticsearch"
before_script:
- !reference [.qa, before_script]
rules:
- !reference [.rules:test:ee-only, rules]
- !reference [.rules:test:qa, rules]
- if: $QA_SUITES =~ /Test::Integration::Elasticsearch/
- !reference [.rules:test:manual, rules]
ee:registry-object-storage-tls:
extends: ee:object-storage-aws-selective
registry-object-storage-tls:
extends: object-storage-aws-selective
variables:
QA_SCENARIO: Test::Integration::RegistryTLS
QA_RSPEC_TAGS: ""
GITLAB_TLS_CERTIFICATE: $QA_GITLAB_TLS_CERTIFICATE
GITLAB_QA_OPTS: --omnibus-config registry_object_storage
ee:importers:
importers:
extends: .qa
variables:
QA_SCENARIO: Test::Integration::Import
QA_MOCK_GITHUB: "true"
GITLAB_QA_OPTS: --set-feature-flags bulk_import_projects=enabled
rules:
- !reference [.rules:test:qa, rules]
- if: $QA_SUITES =~ /Test::Integration::Import/
@ -625,11 +650,26 @@ e2e-test-report:
- .rules:report:allure-report
stage: report
variables:
ALLURE_JOB_NAME: e2e-package-and-test
GITLAB_AUTH_TOKEN: $PROJECT_TOKEN_FOR_CI_SCRIPTS_API_USAGE
ALLURE_PROJECT_PATH: $CI_PROJECT_PATH
ALLURE_MERGE_REQUEST_IID: $CI_MERGE_REQUEST_IID
ALLURE_JOB_NAME: e2e-package-and-test
GIT_STRATEGY: none
# Temporary separate test report for super-sidebar test job
# TODO: remove once super-sidebar is on by default and enabled in tests
# https://gitlab.com/groups/gitlab-org/-/epics/9044
e2e-test-report-super-sidebar:
extends:
- .generate-allure-report-base
stage: report
needs:
- _super-sidebar-nav
variables:
ALLURE_JOB_NAME: e2e-super-sidebar
ALLURE_RESULTS_GLOB: gitlab-qa-run-*/**/allure-results-super-sidebar
rules:
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
- !reference [.rules:test:manual, rules]
upload-knapsack-report:
extends:

View file

@ -115,12 +115,18 @@
- *qa-run-all-tests
- *feature-flags-set-manual
.rules:test:ee-only:
rules:
- if: $FOSS_ONLY == "true"
when: never
.rules:test:update:
rules:
# skip upgrade jobs if gitlab version is not provided
# skip upgrade jobs if gitlab version is not in semver compatible format
# these jobs need gitlab version because we can't reliably detect it from just the image
- if: $GITLAB_VERSION == null
- if: $GITLAB_SEMVER_VERSION !~ /^\d+\.\d+\.\d+/
when: never
- !reference [.rules:test:ee-only, rules]
- !reference [.rules:test:qa, rules]
# ------------------------------------------

View file

@ -6,7 +6,9 @@ variables:
SKIP_REPORT_IN_ISSUES: "true"
OMNIBUS_GITLAB_CACHE_UPDATE: "false"
OMNIBUS_GITLAB_RUBY3_BUILD: "false"
OMNIBUS_GITLAB_RUBY2_BUILD: "false"
OMNIBUS_GITLAB_CACHE_EDITION: "GITLAB"
ALLURE_JOB_NAME: $CI_PROJECT_NAME
QA_LOG_LEVEL: "info"
QA_TESTS: ""
QA_FEATURE_FLAGS: ""

View file

@ -1,14 +1,63 @@
rails-production-environment:
.preflight-job-base:
stage: preflight
extends:
- .default-retry
needs: []
.qa-preflight-job:
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images/debian-bullseye-ruby-${RUBY_VERSION}:bundler-2.3-chrome-${CHROME_VERSION}-docker-${DOCKER_VERSION}
extends:
- .preflight-job-base
- .qa-cache
variables:
USE_BUNDLE_INSTALL: "false"
SETUP_DB: "false"
before_script:
- !reference [.default-before_script, before_script]
- cd qa && bundle install
rails-production-server-boot:
extends:
- .preflight-job-base
- .default-before_script
- .production
- .ruby-cache
- .setup:rules:rails-production-environment
- .setup:rules:rails-production-server-boot
- .use-pg12
stage: preflight
variables:
BUNDLE_WITHOUT: "development:test"
BUNDLE_WITH: "production"
needs: []
script:
- bundle exec rails runner --environment=production 'puts Rails.env'
- source scripts/utils.sh
- bundle exec rails server -e production &
- sleep 40 # See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114124#note_1309506358
- retry_times_sleep 10 5 "curl http://0.0.0.0:3000"
- kill $(jobs -p)
no-ee-check:
extends:
- .preflight-job-base
- .setup:rules:no-ee-check
script:
- scripts/no-dir-check ee
no-jh-check:
extends:
- .preflight-job-base
- .setup:rules:no-jh-check
script:
- scripts/no-dir-check jh
qa:selectors:
extends:
- .qa-preflight-job
- .qa:rules:ee-and-foss
script:
- bundle exec bin/qa Test::Sanity::Selectors
qa:selectors-as-if-foss:
extends:
- qa:selectors
- .qa:rules:as-if-foss
- .as-if-foss

View file

@ -25,13 +25,6 @@ qa:internal-as-if-foss:
- .qa:rules:internal-as-if-foss
- .as-if-foss
qa:selectors:
extends:
- .qa-job-base
- .qa:rules:ee-and-foss
script:
- bundle exec bin/qa Test::Sanity::Selectors
qa:master-auto-quarantine-dequarantine:
extends:
- .qa-job-base
@ -50,12 +43,6 @@ qa:nightly-auto-quarantine-dequarantine:
- bundle exec confiner -r .confiner/nightly.yml
allow_failure: true
qa:selectors-as-if-foss:
extends:
- qa:selectors
- .qa:rules:as-if-foss
- .as-if-foss
qa:update-qa-cache:
extends:
- .qa-job-base
@ -65,7 +52,7 @@ qa:update-qa-cache:
script:
- echo "Cache has been updated and ready to be uploaded."
e2e:package-and-test:
e2e:package-and-test-ee:
extends:
- .production # this makes sure GITLAB_ALLOW_SEPARATE_CI_DATABASE is passed to the child pipeline
- .qa:rules:package-and-test
@ -82,6 +69,7 @@ e2e:package-and-test:
GITLAB_QA_IMAGE: "${CI_REGISTRY_IMAGE}/gitlab-ee-qa:${CI_COMMIT_SHA}"
RUN_WITH_BUNDLE: "true" # instructs pipeline to install and run gitlab-qa gem via bundler
QA_PATH: qa # sets the optional path for bundler to run from
QA_RUN_TYPE: e2e-package-and-test
inherit:
variables:
- CHROME_VERSION
@ -89,6 +77,9 @@ e2e:package-and-test:
- DOCKER_VERSION
- REGISTRY_GROUP
- REGISTRY_HOST
- OMNIBUS_GITLAB_CACHE_EDITION
- OMNIBUS_GITLAB_RUBY3_BUILD
- OMNIBUS_GITLAB_RUBY2_BUILD
trigger:
strategy: depend
forward:

View file

@ -105,6 +105,18 @@ rspec background_migration pg12 single-db:
- .single-db-rspec
- .rails:rules:single-db
rspec migration pg12 single-db-ci-connection:
extends:
- rspec migration pg12
- .single-db-ci-connection-rspec
- .rails:rules:single-db-ci-connection
rspec background_migration pg12 single-db-ci-connection:
extends:
- rspec background_migration pg12
- .single-db-ci-connection-rspec
- .rails:rules:single-db-ci-connection
rspec migration pg12 praefect:
extends:
- rspec migration pg12
@ -191,16 +203,6 @@ rspec system pg12 praefect:
- .praefect-with-db
- .rails:rules:praefect-with-db
# Dedicated job to test DB library code against PG11.
# Note that these are already tested against PG12 in the `rspec unit pg12` / `rspec-ee unit pg12` jobs.
rspec db-library-code pg11:
extends:
- .rspec-base-pg11
- .rails:rules:ee-and-foss-db-library-code
script:
- !reference [.base-script, script]
- rspec_db_library_code
rspec fast_spec_helper:
extends:
- .rspec-base-pg12
@ -438,6 +440,18 @@ rspec background_migration pg12-as-if-foss single-db:
- .single-db-rspec
- .rails:rules:single-db
rspec migration pg12-as-if-foss single-db-ci-connection:
extends:
- rspec migration pg12-as-if-foss
- .single-db-ci-connection-rspec
- .rails:rules:single-db-ci-connection
rspec background_migration pg12-as-if-foss single-db-ci-connection:
extends:
- rspec background_migration pg12-as-if-foss
- .single-db-ci-connection-rspec
- .rails:rules:single-db-ci-connection
rspec unit pg12-as-if-foss:
extends:
- .rspec-base-pg12-as-if-foss
@ -530,6 +544,18 @@ rspec-ee background_migration pg12 single-db:
- .single-db-rspec
- .rails:rules:single-db
rspec-ee migration pg12 single-db-ci-connection:
extends:
- rspec-ee migration pg12
- .single-db-ci-connection-rspec
- .rails:rules:single-db-ci-connection
rspec-ee background_migration pg12 single-db-ci-connection:
extends:
- rspec-ee background_migration pg12
- .single-db-ci-connection-rspec
- .rails:rules:single-db-ci-connection
rspec-ee migration pg12 praefect:
extends:
- rspec migration pg12
@ -616,39 +642,6 @@ rspec-ee system pg12 single-db:
##########################################
# EE/FOSS: default branch nightly scheduled jobs #
# PG11
rspec migration pg11:
extends:
- .rspec-base-pg11
- .rspec-base-migration
- .rails:rules:rspec-on-pg11
- .rspec-migration-parallel
rspec background_migration pg11:
extends:
- .rspec-base-pg11
- .rspec-base-migration
- .rails:rules:rspec-on-pg11
- .rspec-background-migration-parallel
rspec unit pg11:
extends:
- .rspec-base-pg11
- .rails:rules:rspec-on-pg11
- .rspec-unit-parallel
rspec integration pg11:
extends:
- .rspec-base-pg11
- .rails:rules:rspec-on-pg11
- .rspec-integration-parallel
rspec system pg11:
extends:
- .rspec-base-pg11
- .rails:rules:rspec-on-pg11
- .rspec-system-parallel
# PG13
rspec migration pg13:
extends:
@ -687,75 +680,36 @@ rspec system pg13:
#####################################
# EE: default branch nightly scheduled jobs #
# PG11
rspec-ee migration pg11:
extends:
- .rspec-ee-base-pg11
- .rspec-base-migration
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
- .rspec-ee-migration-parallel
rspec-ee background_migration pg11:
extends:
- .rspec-ee-base-pg11
- .rspec-base-migration
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
- .rspec-ee-background-migration-parallel
rspec-ee unit pg11:
extends:
- .rspec-ee-base-pg11
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
- .rspec-ee-unit-parallel
rspec-ee integration pg11:
extends:
- .rspec-ee-base-pg11
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
- .rspec-ee-integration-parallel
rspec-ee system pg11:
extends:
- .rspec-ee-base-pg11
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
- .rspec-ee-system-parallel
# PG12
rspec-ee unit pg12 opensearch1:
extends:
- .rspec-ee-base-pg12-opensearch1
- .rspec-ee-unit-parallel
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
rspec-ee unit pg12 opensearch2:
extends:
- .rspec-ee-base-pg12-opensearch2
- .rspec-ee-unit-parallel
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
rspec-ee integration pg12 opensearch1:
extends:
- .rspec-ee-base-pg12-opensearch1
- .rspec-ee-integration-parallel
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
rspec-ee integration pg12 opensearch2:
extends:
- .rspec-ee-base-pg12-opensearch2
- .rspec-ee-integration-parallel
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
rspec-ee system pg12 opensearch1:
extends:
- .rspec-ee-base-pg12-opensearch1
- .rspec-ee-system-parallel
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
rspec-ee system pg12 opensearch2:
extends:
- .rspec-ee-base-pg12-opensearch2
- .rspec-ee-system-parallel
- .rails:rules:default-branch-schedule-nightly--code-backstage-ee-only
# PG13
rspec-ee migration pg13:
@ -821,13 +775,14 @@ rspec-foss-impact:pipeline-generate:
extends:
- .rails:rules:rspec-foss-impact
stage: prepare
needs: ["detect-tests"]
needs: ["detect-tests", "retrieve-tests-metadata"]
script:
- scripts/generate-rspec-foss-impact-pipeline "${RSPEC_MATCHING_TESTS_FOSS_PATH}" "${RSPEC_FOSS_IMPACT_PIPELINE_YML}"
- scripts/generate_rspec_pipeline.rb -f "${RSPEC_MATCHING_TESTS_FOSS_PATH}" -t "${RSPEC_FOSS_IMPACT_PIPELINE_TEMPLATE_YML}" -k "${KNAPSACK_RSPEC_SUITE_REPORT_PATH}"
- cat "${RSPEC_FOSS_IMPACT_PIPELINE_TEMPLATE_YML}.yml"
artifacts:
expire_in: 1 day
paths:
- $RSPEC_FOSS_IMPACT_PIPELINE_YML
- "${RSPEC_FOSS_IMPACT_PIPELINE_TEMPLATE_YML}.yml"
rspec-foss-impact:trigger:
extends:
@ -850,7 +805,7 @@ rspec-foss-impact:trigger:
yaml_variables: true
pipeline_variables: true
include:
- artifact: $RSPEC_FOSS_IMPACT_PIPELINE_YML
- artifact: "${RSPEC_FOSS_IMPACT_PIPELINE_TEMPLATE_YML}.yml"
job: rspec-foss-impact:pipeline-generate
fail-pipeline-early:

View file

@ -21,7 +21,7 @@ dont-interrupt-me:
script:
- echo "This jobs makes sure this pipeline won't be interrupted! See https://docs.gitlab.com/ee/ci/yaml/#interruptible."
rspec foss-impact:
.base-rspec-foss-impact:
extends: .rspec-base-pg12-as-if-foss
needs:
- pipeline: $PARENT_PIPELINE_ID
@ -37,9 +37,6 @@ rspec foss-impact:
variables:
RSPEC_TESTS_FILTER_FILE: "${RSPEC_MATCHING_TESTS_FOSS_PATH}"
RSPEC_TESTS_MAPPING_ENABLED: "true"
<% if Integer(parallel_value) > 1 %>
parallel: <%= parallel_value %>
<% end %>
script:
- !reference [.base-script, script]
- rspec_paralellized_job "--tag ~quarantine --tag ~level:migration --tag ~zoekt"
@ -48,3 +45,46 @@ rspec foss-impact:
paths:
- "${RSPEC_MATCHING_TESTS_FOSS_PATH}"
- tmp/capybara/
<% if rspec_files_per_test_level[:migration][:files].size > 0 %>
rspec migration foss-impact:
extends: .base-rspec-foss-impact
<% if rspec_files_per_test_level[:migration][:parallelization] > 1 %>
parallel: <%= rspec_files_per_test_level[:migration][:parallelization] %>
<% end %>
script:
- !reference [.base-script, script]
- rspec_paralellized_job "--tag ~quarantine --tag ~zoekt"
<% end %>
<% if rspec_files_per_test_level[:background_migration][:files].size > 0 %>
rspec background_migration foss-impact:
extends: .base-rspec-foss-impact
<% if rspec_files_per_test_level[:background_migration][:parallelization] > 1 %>
parallel: <%= rspec_files_per_test_level[:background_migration][:parallelization] %>
<% end %>
<% end %>
<% if rspec_files_per_test_level[:unit][:files].size > 0 %>
rspec unit foss-impact:
extends: .base-rspec-foss-impact
<% if rspec_files_per_test_level[:unit][:parallelization] > 1 %>
parallel: <%= rspec_files_per_test_level[:unit][:parallelization] %>
<% end %>
<% end %>
<% if rspec_files_per_test_level[:integration][:files].size > 0 %>
rspec integration foss-impact:
extends: .base-rspec-foss-impact
<% if rspec_files_per_test_level[:integration][:parallelization] > 1 %>
parallel: <%= rspec_files_per_test_level[:integration][:parallelization] %>
<% end %>
<% end %>
<% if rspec_files_per_test_level[:system][:files].size > 0 %>
rspec system foss-impact:
extends: .base-rspec-foss-impact
<% if rspec_files_per_test_level[:system][:parallelization] > 1 %>
parallel: <%= rspec_files_per_test_level[:system][:parallelization] %>
<% end %>
<% end %>

View file

@ -36,9 +36,17 @@ include:
variables:
DECOMPOSED_DB: "false"
.single-db-ci-connection:
extends: .single-db
variables:
CI_CONNECTION_DB: "true"
.single-db-rspec:
extends: .single-db
.single-db-ci-connection-rspec:
extends: .single-db-ci-connection
.praefect-with-db:
variables:
GITALY_PRAEFECT_WITH_DB: '1'
@ -92,11 +100,6 @@ include:
- !reference [.base-script, script]
- rspec_paralellized_job "--tag ~quarantine --tag ~zoekt"
.rspec-base-pg11:
extends:
- .rspec-base
- .use-pg11
.rspec-base-pg12:
extends:
- .rspec-base
@ -119,11 +122,6 @@ include:
- .rspec-base
- .use-pg13
.rspec-ee-base-pg11:
extends:
- .rspec-base
- .use-pg11-es7-ee
.rspec-ee-base-pg12:
extends:
- .rspec-base

View file

@ -4,6 +4,7 @@ default:
stages:
- prepare
- deploy
include:
- local: .gitlab/ci/global.gitlab-ci.yml
@ -56,7 +57,38 @@ release-environments-build-cng:
GITLAB_SHELL_VERSION: "${GITLAB_SHELL_VERSION}"
GITALY_SERVER_VERSION: "${GITALY_SERVER_VERSION}"
RUBY_VERSION: "${FULL_RUBY_VERSION}"
IMAGE_TAG_EXT: "-${CI_COMMIT_SHORT_SHA}"
trigger:
project: gitlab-org/build/CNG-mirror
branch: $TRIGGER_BRANCH
strategy: depend
release-environments-deploy-env:
allow_failure: true
stage: deploy
needs: ["release-environments-build-cng"]
variables:
DEPLOY_ENV: deploy.env
script:
- ./scripts/construct-release-environments-versions.rb > $DEPLOY_ENV
artifacts:
reports:
dotenv: $DEPLOY_ENV
paths:
- $DEPLOY_ENV
expire_in: 7 days
when: always
release-environments-deploy:
allow_failure: true
stage: deploy
needs: ["release-environments-deploy-env"]
inherit:
variables: false
variables:
VERSIONS: "${VERSIONS}"
ENVIRONMENT: "${ENVIRONMENT}"
trigger:
project: gitlab-com/gl-infra/release-environments
branch: main
strategy: depend

View file

@ -3,7 +3,6 @@ include:
- template: Jobs/SAST.gitlab-ci.yml
- template: Jobs/Secret-Detection.gitlab-ci.yml
- template: Jobs/Dependency-Scanning.gitlab-ci.yml
- template: Jobs/License-Scanning.gitlab-ci.yml
code_quality:
extends:
@ -126,11 +125,3 @@ package_hunter-bundler:
- .reports:rules:package_hunter-bundler
variables:
PACKAGE_MANAGER: bundler
license_scanning:
extends: .default-retry
stage: lint
needs: []
artifacts:
expire_in: 1 week # GitLab-specific
rules: !reference [".reports:rules:license_scanning", rules]

View file

@ -89,13 +89,13 @@ review-build-cng:
strategy: depend
.review-workflow-base:
extends:
- .default-retry
image: ${REVIEW_APPS_IMAGE}
retry:
max: 2 # This is confusing but this means "3 runs at max"
variables:
HOST_SUFFIX: "${CI_ENVIRONMENT_SLUG}"
DOMAIN: "-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}"
GITLAB_HELM_CHART_REF: "afcef7854ac72c5ff958035ef210ba6c68ec800b" # 6.8.0: https://gitlab.com/gitlab-org/charts/gitlab/-/commit/afcef7854ac72c5ff958035ef210ba6c68ec800b
GITLAB_HELM_CHART_REF: "febc4ad69acb7bba0eeb4a62daa577d0b7c3ee71" # 6.9.1: https://gitlab.com/gitlab-org/charts/gitlab/-/commit/febc4ad69acb7bba0eeb4a62daa577d0b7c3ee71
environment:
name: review/${CI_COMMIT_REF_SLUG}${SCHEDULE_TYPE} # No separator for SCHEDULE_TYPE so it's compatible as before and looks nice without it
url: https://gitlab-${CI_ENVIRONMENT_SLUG}.${REVIEW_APPS_DOMAIN}

View file

@ -1,6 +1,6 @@
include:
- project: gitlab-org/quality/pipeline-common
ref: 2.0.0
ref: 2.2.0
file:
- /ci/base.gitlab-ci.yml
- /ci/allure-report.yml

View file

@ -85,9 +85,6 @@
.if-merge-request-labels-run-review-app: &if-merge-request-labels-run-review-app
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-review-app/'
.if-merge-request-labels-run-on-pg11: &if-merge-request-labels-run-on-pg11
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-on-pg11/'
.if-merge-request-labels-skip-undercoverage: &if-merge-request-labels-skip-undercoverage
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:skip-undercoverage/'
@ -127,6 +124,9 @@
.if-foss-schedule: &if-foss-schedule
if: '$CI_PROJECT_PATH == "gitlab-org/gitlab-foss" && $CI_PIPELINE_SOURCE == "schedule"'
.if-foss-default-branch: &if-foss-default-branch
if: '$CI_PROJECT_PATH == "gitlab-org/gitlab-foss" && $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH'
.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"'
@ -310,6 +310,9 @@
.models-patterns: &models-patterns
- "{,ee/,jh/}{app/models}/**/*"
.decomposed-db-models-patterns: &decomposed-db-models-patterns
- "{,ee/,jh/}app/models/{ci,geo}/**/*"
.lib-gitlab-patterns: &lib-gitlab-patterns
- "{,ee/,jh/}lib/{,ee/,jh/}gitlab/**/*"
@ -349,11 +352,13 @@
- "{,ee/,jh/}{,spec/}lib/{,ee/,jh/}gitlab/background_migration/**/*"
- "{,ee/,jh/}{,spec/}lib/{,ee/,jh/}gitlab/database{,_spec}.rb"
- "{,ee/,jh/}{,spec/}lib/{,ee/,jh/}gitlab/database/**/*"
- "{,ee/,jh/}spec/support/db_cleaner.rb"
- "{,ee/,jh/}spec/support/helpers/database/**/*"
- "{,ee/,jh/}spec/support/helpers/migrations_helpers/**/*"
- "lib/api/admin/batched_background_migrations.rb"
- "lib/gitlab/markdown_cache/active_record/**/*"
- "spec/requests/api/admin/batched_background_migrations_spec.rb"
- "spec/support/database_cleaner.rb"
- "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 has interactions with background migrations: https://gitlab.com/gitlab-org/gitlab/-/issues/336538
@ -618,6 +623,7 @@
.rails:rules:run-search-tests:
rules:
- !reference [".rails:rules:default-branch-schedule-nightly--code-backstage-ee-only", rules]
- <<: *if-merge-request-labels-group-global-search
changes: *search-backend-patterns
- <<: *if-merge-request-labels-group-global-search
@ -968,6 +974,7 @@
.frontend:rules:default-frontend-jobs:
rules:
- <<: *if-merge-request-labels-run-all-rspec
- <<: *if-merge-request-labels-frontend-and-feature-flag
- <<: *if-default-refs
changes: *code-backstage-patterns
@ -992,6 +999,22 @@
- <<: *if-merge-request
changes: *frontend-patterns-for-as-if-foss
.frontend:rules:upload-frontend-fixtures:
rules:
# The new strategy to upload fixtures as generic packages is experimental and can be disabled by removing the `REUSE_FRONTEND_FIXTURES_ENABLED` variable
- if: '$REUSE_FRONTEND_FIXTURES_ENABLED != "true"'
when: never
- <<: *if-dot-com-gitlab-org-default-branch
changes: *code-backstage-patterns
- <<: *if-foss-default-branch
changes: *code-backstage-patterns
- <<: *if-dot-com-gitlab-org-merge-request
changes:
- ".gitlab/ci/frontend.gitlab-ci.yml"
- "scripts/gitlab_component_helpers.sh"
when: manual
allow_failure: true
.frontend:rules:jest:
rules:
- <<: *if-fork-merge-request
@ -1108,6 +1131,22 @@
when: on_failure
allow_failure: true
.notify:rules:create-issues-for-failing-tests:
rules:
# Don't report child pipeline failures
- if: '$CI_PIPELINE_SOURCE == "parent_pipeline"'
when: never
- if: '$CREATE_ISSUES_FOR_FAILING_TESTS == "true"'
when: on_failure
allow_failure: true
.notify:rules:notify-package-and-test-failure:
rules:
- <<: *if-not-canonical-namespace
when: never
- <<: *if-merge-request-targeting-stable-branch
when: always
###############
# Pages rules #
###############
@ -1233,6 +1272,8 @@
- <<: *if-merge-request-labels-run-single-db
- <<: *if-merge-request
changes: *db-patterns
- <<: *if-merge-request
changes: *decomposed-db-models-patterns
- <<: *if-default-branch-schedule-nightly
.rails:rules:db:check-migrations-single-db:
@ -1240,6 +1281,25 @@
- <<: *if-merge-request-labels-run-single-db
- <<: *if-merge-request
changes: *db-patterns
- <<: *if-merge-request
changes: *decomposed-db-models-patterns
.rails:rules:single-db-ci-connection:
rules:
- <<: *if-merge-request-labels-run-single-db
- <<: *if-merge-request
changes: *db-patterns
- <<: *if-merge-request
changes: *decomposed-db-models-patterns
- <<: *if-default-branch-schedule-nightly
.rails:rules:db:check-migrations-single-db-ci-connection:
rules:
- <<: *if-merge-request-labels-run-single-db
- <<: *if-merge-request
changes: *db-patterns
- <<: *if-merge-request
changes: *decomposed-db-models-patterns
.rails:rules:db-backup:
rules:
@ -1326,6 +1386,8 @@
- !reference [".rails:rules:ee-and-foss-default-rules", rules]
- <<: *if-default-refs
changes: *backend-patterns
- <<: *if-default-refs
changes: *backstage-patterns
.rails:rules:ee-and-foss-unit:predictive:
rules:
@ -1335,6 +1397,8 @@
- !reference [".rails:rules:unit-integration:predictive-default-rules", rules]
- <<: *if-merge-request
changes: *backend-patterns
- <<: *if-merge-request
changes: *backstage-patterns
.rails:rules:ee-and-foss-integration:
rules:
@ -1605,7 +1669,6 @@
- <<: *if-default-refs
changes: *db-library-patterns
- <<: *if-merge-request-labels-run-all-rspec
- <<: *if-merge-request-labels-run-on-pg11
.rails:rules:ee-mr-and-default-branch-only:
rules:
@ -1695,11 +1758,6 @@
- <<: *if-merge-request
changes: *backend-patterns
.rails:rules:rspec-on-pg11:
rules:
- <<: *if-merge-request-labels-run-on-pg11
- !reference [".rails:rules:default-branch-schedule-nightly--code-backstage-default-rules", rules]
.rails:rules:default-branch-schedule-nightly--code-backstage-default-rules:
rules:
- <<: *if-default-branch-schedule-nightly
@ -1892,6 +1950,12 @@
changes: ["vendor/gems/bundler-checksum/**/*"]
- <<: *if-merge-request-labels-run-all-rspec
.vendor:rules:cloud_profiler_agent:
rules:
- <<: *if-merge-request
changes: ["vendor/gems/cloud_profiler_agent/**/*"]
- <<: *if-merge-request-labels-run-all-rspec
##################
# Releases rules #
##################
@ -2014,13 +2078,6 @@
- <<: *if-merge-request
changes: ["Gemfile.lock"]
.reports:rules:license_scanning:
rules:
- if: '$LICENSE_MANAGEMENT_DISABLED || $GITLAB_FEATURES !~ /\blicense_scanning\b/'
when: never
- <<: *if-default-refs
changes: *dependency-patterns
################
# Review rules #
################
@ -2185,7 +2242,7 @@
- <<: *if-default-refs
changes: *code-backstage-patterns
.setup:rules:rails-production-environment:
.setup:rules:rails-production-server-boot:
rules:
- <<: *if-default-refs
changes: *code-patterns
@ -2242,6 +2299,7 @@
- <<: *if-default-refs
changes: *workhorse-patterns
- <<: *if-merge-request-labels-run-all-rspec
- <<: *if-merge-request-labels-frontend-and-feature-flag
.test-metadata:rules:update-tests-metadata:
rules:

View file

@ -51,22 +51,6 @@ gitlab_git_test:
script:
- spec/support/prepare-gitlab-git-test-for-commit --check-for-changes
no-ee-check:
extends:
- .predictive-job
- .setup:rules:no-ee-check
stage: test
script:
- scripts/no-dir-check ee
no-jh-check:
extends:
- .predictive-job
- .setup:rules:no-jh-check
stage: test
script:
- scripts/no-dir-check jh
verify-ruby-3.0:
extends:
- .absolutely-predictive-job

View file

@ -93,3 +93,11 @@ vendor gitlab_active_record:
trigger:
include: vendor/gems/gitlab_active_record/.gitlab-ci.yml
strategy: depend
vendor cloud_profiler_agent:
extends:
- .vendor:rules:cloud_profiler_agent
needs: []
trigger:
include: vendor/gems/cloud_profiler_agent/.gitlab-ci.yml
strategy: depend

View file

@ -54,7 +54,7 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
```ruby
# frozen_string_literal: true
class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.0]
class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.1]
def change
create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
t.bigint :cool_widget_id, null: false
@ -80,11 +80,19 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
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))"
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])))"
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))"
t.index :verified_at,
name: :cool_widget_registry_pending_verification,
order: "NULLS FIRST",
where: "((state = 2) AND (verification_state = 0))"
end
end
end
@ -92,7 +100,7 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
- [ ] Add the new table to the [database dictionary](database_dictionary.md) defined in [`ee/db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/db/docs):
- [ ] Add the new table to the [database dictionary](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/database/database_dictionary.md) defined in [`ee/db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/db/docs):
```yaml
table_name: cool_widget_registry
@ -129,7 +137,7 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
```ruby
# frozen_string_literal: true
class CreateCoolWidgetStates < Gitlab::Database::Migration[2.0]
class CreateCoolWidgetStates < Gitlab::Database::Migration[2.1]
VERIFICATION_STATE_INDEX_NAME = "index_cool_widget_states_on_verification_state"
PENDING_VERIFICATION_INDEX_NAME = "index_cool_widget_states_pending_verification"
FAILED_VERIFICATION_INDEX_NAME = "index_cool_widget_states_failed_verification"
@ -149,9 +157,17 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
t.text :verification_failure, limit: 255
t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME
t.index :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME
t.index :verification_retry_at, where: "(verification_state = 3)", order: { verification_retry_at: 'ASC NULLS FIRST' }, name: FAILED_VERIFICATION_INDEX_NAME
t.index :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME
t.index :verified_at,
where: "(verification_state = 0)",
order: { verified_at: 'ASC NULLS FIRST' },
name: PENDING_VERIFICATION_INDEX_NAME
t.index :verification_retry_at,
where: "(verification_state = 3)",
order: { verification_retry_at: 'ASC NULLS FIRST' },
name: FAILED_VERIFICATION_INDEX_NAME
t.index :verification_state,
where: "(verification_state = 0 OR verification_state = 3)",
name: NEEDS_VERIFICATION_INDEX_NAME
end
end
@ -163,17 +179,20 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
- [ ] Add the new table to the [database dictionary](database_dictionary.md) defined in [`db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/db/docs):
- [ ] If `cool_widgets` is a high-traffic table, follow [the database documentation to use `with_lock_retries`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/migration_style_guide.md#when-to-use-the-helper-method)
- [ ] Add the new table to the [database dictionary](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/database/database_dictionary.md) defined in [`db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/db/docs):
```yaml
---
table_name: cool_widget_states
description: Description example
introduced_by_url: Merge request link
milestone: Milestone example
description: Separate table for cool widget verification states
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/XXXXX
milestone: 'XX.Y'
feature_categories:
- Feature category example
- geo_replication
classes:
- Class example
- Geo::CoolWidgetState
gitlab_schema: gitlab_main
```
@ -185,20 +204,6 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
- [ ] Be sure to commit the relevant changes in `db/structure.sql` and the file under `db/schema_migrations`
- [ ] Add an entry for the state table in `db/docs/cool_widget_states.yml`
```yaml
---
table_name: cool_widget_states
classes:
- Geo::CoolWidgetState
feature_categories:
- geo_replication
description: Separate table for cool widget verification states
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/XXXXX
milestone: 'XX.Y'
```
That's all of the required database changes.
### Implement Geo support of Cool Widgets behind a feature flag
@ -230,23 +235,30 @@ That's all of the required database changes.
with_replicator Geo::CoolWidgetReplicator
mount_uploader :file, CoolWidgetUploader
has_one :cool_widget_state, autosave: false, inverse_of: :cool_widget, class_name: 'Geo::CoolWidgetState'
after_save :save_verification_details
scope :with_verification_state, ->(state) { joins(:cool_widget_state).where(cool_widget_states: { verification_state: verification_state_value(state) }) }
scope :checksummed, -> { joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil } ) }
scope :not_checksummed, -> { joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil } ) }
scope :available_verifiables, -> { joins(:cool_widget_state) }
# Override the `all` default if not all records can be replicated. For an
# example of an existing Model that needs to do this, see
# `EE::MergeRequestDiff`.
# scope :available_replicables, -> { all }
scope :available_verifiables, -> { joins(:cool_widget_state) }
scope :checksummed, -> {
joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil })
}
scope :not_checksummed, -> {
joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil })
}
scope :with_verification_state, ->(state) {
joins(:cool_widget_state)
.where(cool_widget_states: { verification_state: verification_state_value(state) })
}
def verification_state_object
cool_widget_state
end
@ -257,7 +269,8 @@ That's all of the required database changes.
...
# @param primary_key_in [Range, CoolWidget] arg to pass to primary_key_in scope
# @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced to this node, restricted by primary key
# @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced
# to this node, restricted by primary key
def replicables_for_current_secondary(primary_key_in)
# This issue template does not help you write this method.
#
@ -265,7 +278,8 @@ That's all of the required database changes.
# we want to know which records to replicate. This is not easy to automate
# because for example:
#
# * The "selective sync" feature allows admins to choose which namespaces # to replicate, per secondary site. Most Models are scoped to a
# * The "selective sync" feature allows admins to choose which namespaces
# to replicate, per secondary site. Most Models are scoped to a
# namespace, but the nature of the relationship to a namespace varies
# between Models.
# * The "selective sync" feature allows admins to choose which shards to
@ -304,8 +318,8 @@ That's all of the required database changes.
```ruby
include_examples 'a replicable model with a separate table for verification state' do
let(:verifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is included in `available_verifiables`
let(:unverifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is NOT included in `available_verifiables`
let(:verifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is in `Geo::ReplicableModel.verifiables` scope
let(:unverifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is NOT included in `Geo::ReplicableModel.verifiables` scope
end
```
@ -323,10 +337,6 @@ That's all of the required database changes.
::CoolWidget
end
def repository
model_record.repository
end
def self.git_access_class
::Gitlab::GitAccessCoolWidget
end
@ -353,6 +363,10 @@ That's all of the required database changes.
# (see `RepositoryReplicatorStrategy#before_housekeeping`)
false
end
def repository
model_record.repository
end
end
end
```
@ -402,7 +416,7 @@ That's all of the required database changes.
require 'spec_helper'
RSpec.describe Geo::CoolWidgetReplicator do
RSpec.describe Geo::CoolWidgetReplicator, feature_category: :geo_replication do
let(:model_record) { build(:cool_widget) }
include_examples 'a repository replicator'
@ -476,7 +490,7 @@ That's all of the required database changes.
require 'spec_helper'
RSpec.describe Geo::CoolWidgetRegistry, :geo, type: :model do
RSpec.describe Geo::CoolWidgetRegistry, :geo, type: :model, feature_category: :geo_replication do
let_it_be(:registry) { create(:geo_cool_widget_registry) }
specify 'factory is valid' do
@ -491,17 +505,21 @@ That's all of the required database changes.
- [ ] Add the following to `ee/spec/factories/cool_widgets.rb`:
```ruby
FactoryBot.modify do
trait :verification_succeeded do
with_file
verification_checksum { 'abc' }
verification_state { CoolWidget.verification_state_value(:verification_succeeded) }
end
# frozen_string_literal: true
trait :verification_failed do
with_file
verification_failure { 'Could not calculate the checksum' }
verification_state { CoolWidget.verification_state_value(:verification_failed) }
FactoryBot.modify do
factory :cool_widget do
trait :verification_succeeded do
with_file
verification_checksum { 'abc' }
verification_state { CoolWidget.verification_state_value(:verification_succeeded) }
end
trait :verification_failed do
with_file
verification_failure { 'Could not calculate the checksum' }
verification_state { CoolWidget.verification_state_value(:verification_failed) }
end
end
end
```
@ -549,7 +567,7 @@ That's all of the required database changes.
end
```
- [ ] Add `[:cool_widget, :remote_store]` and `[:geo_cool_widget_state, any]` to `skipped` in `spec/models/factories_spec.rb`
- [ ] Add `[:geo_cool_widget_state, any]` to `skipped` in `spec/models/factories_spec.rb`
#### Step 2. Implement metrics gathering
@ -573,18 +591,18 @@ Metrics are gathered by `Geo::MetricsUpdateWorker`, persisted in `GeoNodeStatus`
- [ ] Add the following fields to the `Sidekiq metrics` table in `doc/administration/monitoring/prometheus/gitlab_metrics.md`:
```markdown
| `geo_cool_widgets` | Gauge | XX.Y | Number of Cool Widgets on primary | `url` |
| `geo_cool_widgets_checksum_total` | Gauge | XX.Y | Number of Cool Widgets checksummed successfully on primary | `url` |
| `geo_cool_widgets_checksummed` | Gauge | XX.Y | Number of Cool Widgets failed to calculate the checksum on primary | `url` |
| `geo_cool_widgets_checksum_failed` | Gauge | XX.Y | Number of Cool Widgets tried to checksum on primary | `url` |
| `geo_cool_widgets_checksum_total` | Gauge | XX.Y | Number of Cool Widgets to checksum on primary | `url` |
| `geo_cool_widgets_checksummed` | Gauge | XX.Y | Number of Cool Widgets that successfully calculated the checksum on primary | `url` |
| `geo_cool_widgets_checksum_failed` | Gauge | XX.Y | Number of Cool Widgets that failed to calculate the checksum on primary | `url` |
| `geo_cool_widgets_synced` | Gauge | XX.Y | Number of syncable Cool Widgets synced on secondary | `url` |
| `geo_cool_widgets_failed` | Gauge | XX.Y | Number of syncable Cool Widgets failed to sync on secondary | `url` |
| `geo_cool_widgets_registry` | Gauge | XX.Y | Number of Cool Widgets in the registry | `url` |
| `geo_cool_widgets_verification_total` | Gauge | XX.Y | Number of Cool Widgets verified on secondary | `url` |
| `geo_cool_widgets_verified` | Gauge | XX.Y | Number of Cool Widgets' verifications failed on secondary | `url` |
| `geo_cool_widgets_verification_failed` | Gauge | XX.Y | Number of Cool Widgets' verifications tried on secondary | `url` |
| `geo_cool_widgets_verification_total` | Gauge | XX.Y | Number of Cool Widgets to attempt to verify on secondary | `url` |
| `geo_cool_widgets_verified` | Gauge | XX.Y | Number of Cool Widgets successfully verified on secondary | `url` |
| `geo_cool_widgets_verification_failed` | Gauge | XX.Y | Number of Cool Widgets that failed verification on secondary | `url` |
```
Cool Widget replication and verification metrics should now be available in the API, the `Admin > Geo > Nodes` view, and Prometheus.
Cool Widget replication and verification metrics should now be available in the API, the `Admin > Geo > Sites` view, and Prometheus.
#### Step 3. Implement the GraphQL API
@ -625,7 +643,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper'
RSpec.describe Resolvers::Geo::CoolWidgetRegistriesResolver do
RSpec.describe Resolvers::Geo::CoolWidgetRegistriesResolver, feature_category: :geo_replication do
it_behaves_like 'a Geo registries resolver', :geo_cool_widget_registry
end
```
@ -649,7 +667,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper'
RSpec.describe Geo::CoolWidgetRegistryFinder do
RSpec.describe Geo::CoolWidgetRegistryFinder, feature_category: :geo_replication do
it_behaves_like 'a framework registry finder', :geo_cool_widget_registry
end
```
@ -683,7 +701,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper'
RSpec.describe GitlabSchema.types['CoolWidgetRegistry'] do
RSpec.describe GitlabSchema.types['CoolWidgetRegistry'], feature_category: :geo_replication do
it_behaves_like 'a Geo registry type'
it 'has the expected fields (other than those included in RegistryType)' do

View file

@ -56,7 +56,7 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
```ruby
# frozen_string_literal: true
class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.0]
class CreateCoolWidgetRegistry < Gitlab::Database::Migration[2.1]
def change
create_table :cool_widget_registry, id: :bigserial, force: :cascade do |t|
t.bigint :cool_widget_id, null: false
@ -80,11 +80,19 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
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))"
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])))"
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))"
t.index :verified_at,
name: :cool_widget_registry_pending_verification,
order: "NULLS FIRST",
where: "((state = 2) AND (verification_state = 0))"
end
end
end
@ -92,7 +100,7 @@ Geo secondary sites have a [Geo tracking database](https://gitlab.com/gitlab-org
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
- [ ] Add the new table to the [database dictionary](database_dictionary.md) defined in [`ee/db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/db/docs):
- [ ] Add the new table to the [database dictionary](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/database/database_dictionary.md) defined in [`ee/db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/ee/db/docs):
```yaml
table_name: cool_widget_registry
@ -131,7 +139,7 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
```ruby
# frozen_string_literal: true
class CreateCoolWidgetStates < Gitlab::Database::Migration[2.0]
class CreateCoolWidgetStates < Gitlab::Database::Migration[2.1]
VERIFICATION_STATE_INDEX_NAME = "index_cool_widget_states_on_verification_state"
PENDING_VERIFICATION_INDEX_NAME = "index_cool_widget_states_pending_verification"
FAILED_VERIFICATION_INDEX_NAME = "index_cool_widget_states_failed_verification"
@ -144,16 +152,28 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
t.datetime_with_timezone :verification_started_at
t.datetime_with_timezone :verification_retry_at
t.datetime_with_timezone :verified_at
t.references :cool_widget, primary_key: true, default: nil, index: false, foreign_key: { on_delete: :cascade }
t.references :cool_widget,
primary_key: true,
default: nil,
index: false,
foreign_key: { on_delete: :cascade }
t.integer :verification_state, default: 0, limit: 2, null: false
t.integer :verification_retry_count, default: 0, limit: 2, null: false
t.binary :verification_checksum, using: 'verification_checksum::bytea'
t.text :verification_failure, limit: 255
t.index :verification_state, name: VERIFICATION_STATE_INDEX_NAME
t.index :verified_at, where: "(verification_state = 0)", order: { verified_at: 'ASC NULLS FIRST' }, name: PENDING_VERIFICATION_INDEX_NAME
t.index :verification_retry_at, where: "(verification_state = 3)", order: { verification_retry_at: 'ASC NULLS FIRST' }, name: FAILED_VERIFICATION_INDEX_NAME
t.index :verification_state, where: "(verification_state = 0 OR verification_state = 3)", name: NEEDS_VERIFICATION_INDEX_NAME
t.index :verified_at,
where: "(verification_state = 0)",
order: { verified_at: 'ASC NULLS FIRST' },
name: PENDING_VERIFICATION_INDEX_NAME
t.index :verification_retry_at,
where: "(verification_state = 3)",
order: { verification_retry_at: 'ASC NULLS FIRST' },
name: FAILED_VERIFICATION_INDEX_NAME
t.index :verification_state,
where: "(verification_state = 0 OR verification_state = 3)",
name: NEEDS_VERIFICATION_INDEX_NAME
end
end
@ -165,17 +185,20 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
- [ ] If deviating from the above example, then be sure to order columns according to [our guidelines](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/ordering_table_columns.md).
- [ ] Add the new table to the database dictionary defined in [`db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/db/docs):
- [ ] If `cool_widgets` is a high-traffic table, follow [the database documentation to use `with_lock_retries`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/migration_style_guide.md#when-to-use-the-helper-method)
- [ ] Add the new table to the [database dictionary](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/database/database_dictionary.md) defined in [`db/docs/`](https://gitlab.com/gitlab-org/gitlab/-/tree/master/db/docs):
```yaml
---
table_name: cool_widget_states
description: Description example
introduced_by_url: Merge request link
milestone: Milestone example
description: Separate table for cool widget verification states
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/XXXXX
milestone: 'XX.Y'
feature_categories:
- Feature category example
- geo_replication
classes:
- Class example
- Geo::CoolWidgetState
gitlab_schema: gitlab_main
```
@ -185,24 +208,8 @@ The Geo primary site needs to checksum every replicable so secondaries can verif
bin/rake db:migrate
```
- [ ] If `cool_widgets` is a high-traffic table, follow [the database documentation to use `with_lock_retries`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/doc/development/migration_style_guide.md#when-to-use-the-helper-method)
- [ ] Be sure to commit the relevant changes in `db/structure.sql` and the file under `db/schema_migrations`
- [ ] Add an entry for the state table in `db/docs/cool_widget_states.yml`
```yaml
---
table_name: cool_widget_states
classes:
- Geo::CoolWidgetState
feature_categories:
- geo_replication
description: Separate table for cool widget verification states
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/XXXXX
milestone: 'XX.Y'
```
That's all of the required database changes.
### Implement Geo support of Cool Widgets behind a feature flag
@ -238,17 +245,26 @@ That's all of the required database changes.
after_save :save_verification_details
scope :with_verification_state, ->(state) { joins(:cool_widget_state).where(cool_widget_states: { verification_state: verification_state_value(state) }) }
scope :checksummed, -> { joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil } ) }
scope :not_checksummed, -> { joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil } ) }
scope :available_verifiables, -> { joins(:cool_widget_state) }
# Override the `all` default if not all records can be replicated. For an
# example of an existing Model that needs to do this, see
# `EE::MergeRequestDiff`.
# scope :available_replicables, -> { all }
scope :available_verifiables, -> { joins(:cool_widget_state) }
scope :checksummed, -> {
joins(:cool_widget_state).where.not(cool_widget_states: { verification_checksum: nil })
}
scope :not_checksummed, -> {
joins(:cool_widget_state).where(cool_widget_states: { verification_checksum: nil })
}
scope :with_verification_state, ->(state) {
joins(:cool_widget_state)
.where(cool_widget_states: { verification_state: verification_state_value(state) })
}
def verification_state_object
cool_widget_state
end
@ -259,7 +275,8 @@ That's all of the required database changes.
...
# @param primary_key_in [Range, CoolWidget] arg to pass to primary_key_in scope
# @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced to this node, restricted by primary key
# @return [ActiveRecord::Relation<CoolWidget>] everything that should be synced
# to this node, restricted by primary key
def replicables_for_current_secondary(primary_key_in)
# This issue template does not help you write this method.
#
@ -301,8 +318,8 @@ That's all of the required database changes.
```ruby
include_examples 'a replicable model with a separate table for verification state' do
let(:verifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is included in `available_verifiables`
let(:unverifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is NOT included in `available_verifiables`
let(:verifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is in `Geo::ReplicableModel.verifiables` scope
let(:unverifiable_model_record) { build(:cool_widget) } # add extra params if needed to make sure the record is NOT included in `Geo::ReplicableModel.verifiables` scope
end
```
@ -332,7 +349,6 @@ That's all of the required database changes.
# (see `VerifiableReplicator.verification_enabled?`)
true
end
end
end
```
@ -360,7 +376,7 @@ That's all of the required database changes.
require 'spec_helper'
RSpec.describe Geo::CoolWidgetReplicator do
RSpec.describe Geo::CoolWidgetReplicator, feature_category: :geo_replication do
let(:model_record) { build(:cool_widget) }
include_examples 'a blob replicator'
@ -434,7 +450,7 @@ That's all of the required database changes.
require 'spec_helper'
RSpec.describe Geo::CoolWidgetRegistry, :geo, type: :model do
RSpec.describe Geo::CoolWidgetRegistry, :geo, type: :model, feature_category: :geo_replication do
let_it_be(:registry) { create(:geo_cool_widget_registry) }
specify 'factory is valid' do
@ -449,17 +465,21 @@ That's all of the required database changes.
- [ ] Add the following to `spec/factories/cool_widgets.rb`:
```ruby
FactoryBot.modify do
trait :verification_succeeded do
with_file
verification_checksum { 'abc' }
verification_state { CoolWidget.verification_state_value(:verification_succeeded) }
end
# frozen_string_literal: true
trait :verification_failed do
with_file
verification_failure { 'Could not calculate the checksum' }
verification_state { CoolWidget.verification_state_value(:verification_failed) }
FactoryBot.modify do
factory :cool_widget do
trait :verification_succeeded do
with_file
verification_checksum { 'abc' }
verification_state { CoolWidget.verification_state_value(:verification_succeeded) }
end
trait :verification_failed do
with_file
verification_failure { 'Could not calculate the checksum' }
verification_state { CoolWidget.verification_state_value(:verification_failed) }
end
end
end
```
@ -539,18 +559,18 @@ Metrics are gathered by `Geo::MetricsUpdateWorker`, persisted in `GeoNodeStatus`
```markdown
| `geo_cool_widgets` | Gauge | XX.Y | Number of Cool Widgets on primary | `url` |
| `geo_cool_widgets_checksum_total` | Gauge | XX.Y | Number of Cool Widgets checksummed successfully on primary | `url` |
| `geo_cool_widgets_checksummed` | Gauge | XX.Y | Number of Cool Widgets failed to calculate the checksum on primary | `url` |
| `geo_cool_widgets_checksum_failed` | Gauge | XX.Y | Number of Cool Widgets tried to checksum on primary | `url` |
| `geo_cool_widgets_checksum_total` | Gauge | XX.Y | Number of Cool Widgets to checksum on primary | `url` |
| `geo_cool_widgets_checksummed` | Gauge | XX.Y | Number of Cool Widgets that successfully calculated the checksum on primary | `url` |
| `geo_cool_widgets_checksum_failed` | Gauge | XX.Y | Number of Cool Widgets that failed to calculate the checksum on primary | `url` |
| `geo_cool_widgets_synced` | Gauge | XX.Y | Number of syncable Cool Widgets synced on secondary | `url` |
| `geo_cool_widgets_failed` | Gauge | XX.Y | Number of syncable Cool Widgets failed to sync on secondary | `url` |
| `geo_cool_widgets_registry` | Gauge | XX.Y | Number of Cool Widgets in the registry | `url` |
| `geo_cool_widgets_verification_total` | Gauge | XX.Y | Number of Cool Widgets verified on secondary | `url` |
| `geo_cool_widgets_verified` | Gauge | XX.Y | Number of Cool Widgets' verifications failed on secondary | `url` |
| `geo_cool_widgets_verification_failed` | Gauge | XX.Y | Number of Cool Widgets' verifications tried on secondary | `url` |
| `geo_cool_widgets_verification_total` | Gauge | XX.Y | Number of Cool Widgets to attempt to verify on secondary | `url` |
| `geo_cool_widgets_verified` | Gauge | XX.Y | Number of Cool Widgets successfully verified on secondary | `url` |
| `geo_cool_widgets_verification_failed` | Gauge | XX.Y | Number of Cool Widgets that failed verification on secondary | `url` |
```
Cool Widget replication and verification metrics should now be available in the API, the `Admin > Geo > Nodes` view, and Prometheus.
Cool Widget replication and verification metrics should now be available in the API, the `Admin > Geo > Sites` view, and Prometheus.
#### Step 3. Implement the GraphQL API
@ -591,7 +611,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper'
RSpec.describe Resolvers::Geo::CoolWidgetRegistriesResolver do
RSpec.describe Resolvers::Geo::CoolWidgetRegistriesResolver, feature_category: :geo_replication do
it_behaves_like 'a Geo registries resolver', :geo_cool_widget_registry
end
```
@ -615,7 +635,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper'
RSpec.describe Geo::CoolWidgetRegistryFinder do
RSpec.describe Geo::CoolWidgetRegistryFinder, feature_category: :geo_replication do
it_behaves_like 'a framework registry finder', :geo_cool_widget_registry
end
```
@ -649,7 +669,7 @@ The GraphQL API is used by `Admin > Geo > Replication Details` views, and is dir
require 'spec_helper'
RSpec.describe GitlabSchema.types['CoolWidgetRegistry'] do
RSpec.describe GitlabSchema.types['CoolWidgetRegistry'], feature_category: :geo_replication do
it_behaves_like 'a Geo registry type'
it 'has the expected fields (other than those included in RegistryType)' do

View file

@ -1,39 +1,25 @@
<!-- A majority of the work designers do will be on themes in the (Now) Next 1-3 milestone column of their UX Roadmap. These themes are comprised of high-confidence outcomes and validated needs. The UX theme issue is where collaboration should occur, including plans and discussion on subthemes, research, and design feedback. Related issues for design exploration and solution validation should stem from the theme issue.
<!-- Most of the work designers do will be on themes in the (Now) Next 1-3 milestone column of their UX Roadmap. These themes are comprised of high-confidence outcomes and validated needs. The UX theme issue is where collaboration should occur, including plans and discussion on subthemes, research, and design feedback. Related design exploration and solution validation issues should stem from the theme issue.
One of the advantages of working with UX themes is that it allows us to think and design holistically by designing the theme as a whole as opposed to a single issue at a time trying to piece them together as you go. For more details please refer to this section of the handbook when creating UX Themes: https://about.gitlab.com/handbook/product/ux/product-design/ux-roadmaps/#theme-structure -->
One of the advantages of working with UX themes is that it allows us to think and design holistically by designing the theme as a whole instead of a single issue at a time, trying to piece them together as we go. For more details, please refer to this section of the handbook when creating UX Themes: https://about.gitlab.com/handbook/product/ux/product-design/ux-roadmaps/#ux-theme-structure -->
<!-- Theme Issue Title {UX Theme: <theme statement here>} -->
<!-- Theme Statement: A theme is written as a statement that combines the beneficiary, their need, and the expected outcome when the work is delivered. Well-defined statements are concise without sacrificing the substance of the theme so that anyone can understand it at a glance. (For instance; Reduce the effort for security teams to identify and escalate business-critical risks)
!!Note: The theme statement is the defacto title that will be used to reference the theme and serve as the theme issue title.!! It should be something that is easily understood, that quickly communicates the intent of the theme allowing team members to easily understand and recognize the expected work that will be done.
<!--
!!Note: The theme statement is the defacto title that will reference the theme and serve as the theme issue title.!! It should be something that is easily understood that quickly communicates the intent of the theme allowing team members to easily understand and recognize the expected work that will be done.
-->
----
### Problem to solve
<!-- In a brief statement, summerize the problem we are intending to address with this theme. For instance, users are unable to complete [task], or, users struggle with the amount of steps required to complete [task] -->
### Theme statement
<!-- A theme statement combines the beneficiary, their job, and their expected outcome when the work is delivered and serves as the design goal for the team who owns the theme. Well-defined statements are concise without sacrificing the substance of the theme so that anyone can understand it at a glance. Well-defined statements are concise without sacrificing the substance of the theme so that anyone can understand it at a glance. (For instance, Reduce the effort for security teams when prioritizing business-critical risks in their assets.) -->
<!-- Also Theme issue tile -->
{`Need/outcome` } + {`Beneficiary`} + {`Job/Small Job`}
### Beneficiary
<!-- Who is the recipient(s) of the value this theme provides; a customer, end-user, or buyer. Who benefits from this theme being executed? This can be a role, a team, or a persona. For instance: "Development teams, [or] Developers, [or], Sasha the Software Engineer". -->
- **[Direct beneficiary]**
#### Need & Primary JTBD
<!-- What is the JTBD and what are the needs related to the beneficiary and theme?
- JTBD: The JTBD statement, for instance, (When I am triaging vulns, I want to address business-critical risks, So I can ensure there is no unattended risk in my orgs assets.)
- Need: Abstracted from the JTBD, for instance, (Identify and escalate business-critical risks detected in my orgs assets.)
-->
- **JTBD:**
- **Need:**
#### Expected outcome
<!-- What will the user be able to achieve when this theme is executed? For instance, (Users will be able to effectively triage vulnerabilities at scale across all their orgs assets.) -->
#### Main Job story
<!-- What is the [Main Job story](https://about.gitlab.com/handbook/product/ux/jobs-to-be-done/#how-to-write-a-jtbd) that this theme was derived from? (For instance, When I am on triage rotation, I want to address all the business-critical risks in my assets, So I can minimize the likelihood of my organization being compromised by a security breach.) -->
#### Business objective
<!-- What business objective will result from delivering this theme? This answers why we are working on this theme from a business perspective. Examples of objectives are but are not limited to: Sales rate / conversion rate, Success rate / completion rate, Traffic / visitor count, Engagement, or other business-oriented goals. -->
<!-- Objectives (from a business point of view) that will be achieved upon completion. (For instance, Increase engagement by making the experience efficient while reducing the chances of users overlooking high-priority items. -->
#### Confidence
@ -44,41 +30,22 @@ One of the advantages of working with UX themes is that it allows us to think an
| --- | --- |
| [High/Medium/Low] | [research/insight issue](Link) |
### User-stories
<!-- Product designers should work with their PMs to gather up all of the relevant user stories. Look for alignment with the JTBD added above. Overall, the solution you and your team come up with should help to support the user stories. -->
- [user-story here]
- [user-story here]
- [user-story here]
- [etc.]
### Requirements
<!-- Requirements can be taken from existing features or design issues that were used to build this theme. Any related issues should be linked with this issue in the Feature/solution issues section below. They are more granular validated needs, goals, and additional details that the theme encompasses. These are typically reserved for themes in the next (1-3 milestones) column. Requirements should answer “what” the beneficiary of this theme needs from the solution.
<!-- Requirements can be taken from existing features or design issues used to build this theme. Any related issues should be linked with this issue in the Feature/solution issues section below. They are more granular validated needs, goals, and additional details that the theme encompasses. These are typically reserved for themes in the next (1-3 milestones) column. Requirements should answer “what” the beneficiary of this theme needs from the solution.
Note: This is not a backlog. If the issue can not be delivered in the theme timeframe then the theme is too big and needs to be broken down into multiple themes. -->
Note: This is not a backlog. If the issue can not be delivered in the theme timeframe, then the theme is too big and needs to be broken down into multiple themes. -->
The beneficieray needs to be able to:
- [need here]
- [need here]
- [need here]
>⚠️ Related feature and research issues should be linked in the related issues section (Delete this line when this is done)
#### The beneficiary needs to be able to:
- [Small job statement]
- [Micro job statement]
- [Micro job statement]
- [etc.]
#### Feature/solution issues
<!-- Use this table to track feature issues related to this theme (if applicable). Not all themes require sub-issues as they are typically discovered while working on the theme itself. Think of these issues as if they were the result of breaking down the design into discrete work items.
Note: if feature issues already exist then you can add them to this table. Keep in mind that these issues will require validation if they are being added to a Theme that's in the Next (1-3 milestones) container and are assumptive.
Refer to https://about.gitlab.com/handbook/product/ux/product-designer/#ux-issue-weights for calculating UX weights.
-->
| Issue | UX Weight |
| ---------- | --------- |
| [Issue](link) | `0 - 10` |
| [Issue](link) | `0 - 10` |
| [Issue](link) | `0 - 10` |
#### Research
<!-- Use this table to track UX research related to this theme. This may include, problem validation and/or solution validation activities.
<!-- Researchers and Designers; Use this table to track UX research related to this theme. This may include problem validation and solution validation activities.
-->
| Issue | Research type | Research status |
@ -87,16 +54,35 @@ Refer to https://about.gitlab.com/handbook/product/ux/product-designer/#ux-issue
| [Issue]() | <!--Solution validation, Problem validation, etc., --> | <!-- Planned, In Progress, Complete, etc.,--> |
#### Ready for design checklist
The items are self-check suggestions; they could be contributed by designers, product managers or researchers
* [ ] The stated `Problem to solve` has high confidence (derived from research or other data-gathering techniques)
* [ ] Relevant issues, research, and other background information are linked to the Related issues section
* [ ] The stated `Beneficiary` has been defined
* [ ] There is high confidence in the stated `Need & Primary JTBD` (derived from research or other data gathering techniques)
* [ ] The `Expected outcome` has been defined
The items are self-check suggestions; they could be contributed by designers, product managers, or researchers
* [ ] The `theme` has high confidence (derived from research or other data-gathering techniques)
* [ ] The `Related issues`, features, research, and other background information are linked to the related issues section
* [ ] The `Business objective` has been defined
* [ ] The theme `Confidence` has been defined as High
* [ ] `User-stories` have been defined
* [ ] The `Requirements` have been defined and the scope has been agreed upon
* [ ] This UX Theme contains everyhting necessary to complete a design solution and is ready for design
* [ ] The `Requirements` have been defined, and the scope has been agreed upon
* [ ] This UX Theme contains everything necessary to complete a design solution and is ready for design
#### [Thematic design workflow checklist](https://about.gitlab.com/handbook/product/ux/product-design/ux-roadmaps/#suggested-workflow)
<!-- please refer to the [suggested workflow](https://about.gitlab.com/handbook/product/ux/product-design/ux-roadmaps/#suggested-workflow) when working on UX themes-->
* [ ] **Theme assessed** Ready for design checklist complete
* [ ] **Ideate and Iterate**
* [ ] User flow diagram generated
* [ ] Low-fidelity wireframes of the entire theme created
* [ ] [Feedback requested](https://about.gitlab.com/handbook/product/ux/product-designer/#design-reviews) and incorporated into flow diagram and wireframes
* [ ] **Validate**
* [ ] [Solution validation](https://about.gitlab.com/handbook/product/ux/ux-research/solution-validation-and-methods/) conducted on Low/mid-fidelity flow
* [ ] **Refine**
* [ ] Resaerch findings incorporated into design
* [ ] All micro-interactions are defined
* [ ] All edge-cases are accounted for and defined
* [ ] All copy has been reviewed by tech writing
* [ ] Accessibnility guidelines have been considered
* [ ] High-fidelity designs posted
* [ ] Feedback requested from counterparts
* [ ] (If necessary) Validate high-fidelity flow in a 2nd round of user testing
* [ ] Refine final design from feedback and user research
* [ ] **Hand-off**
* [ ] Designs broken down based on the their ability to stand alone and that they provide value to the user.
* [ ] MVC plan agreement reached
* [ ] Planning breakdown complete
/label ~"UX" ~"UX Theme"

View file

@ -1,6 +1,6 @@
<!--
When creating a new cop that could be applied to multiple applications,
we encourage you to add it to https://gitlab.com/gitlab-org/gitlab-styles gem.
we encourage you to add it to https://gitlab.com/gitlab-org/ruby/gems/gitlab-styles gem.
-->
## Description of the proposal

View file

@ -12,6 +12,7 @@
- [ ] Create an issue to reinstate the merge request and assign it to the author of the reverted merge request.
- [ ] If the revert is to resolve a [broken 'master' incident](https://about.gitlab.com/handbook/engineering/workflow/#broken-master), please read through the [Responsibilities of the Broken `master` resolution DRI](https://about.gitlab.com/handbook/engineering/workflow/#responsibilities-of-the-resolution-dri).
- [ ] If the revert involves a database migration, please read through [Deleting existing migrations](https://docs.gitlab.com/ee/development/database/deleting_migrations.html).
- [ ] Add the appropriate labels **before** the MR is created. We can skip CI/CD jobs only if the labels are added **before** the CI/CD pipeline is created.
### Milestone info

2
.gitleaksignore Normal file
View file

@ -0,0 +1,2 @@
7e07fe42d34916b276a7b068f4faa8bdc0ebc984:doc/architecture/blueprints/runner_tokens/index.md:gitlab-rrt:485
f6504b498548380198ad38295d9caa71412115f0:doc/architecture/blueprints/runner_tokens/index.md:generic-api-key:506

View file

@ -19,6 +19,9 @@ inherit_from:
<% if RUBY_VERSION[/^\d+\.\d+/, 0] == '3.0' %>
- ./rubocop/rubocop-ruby30.yml
<% end %>
<% if RUBY_VERSION[/^\d+\.\d+/, 0] == '3.1' %>
- ./rubocop/rubocop-ruby31.yml
<% end %>
- ./rubocop/rubocop-migrations.yml
- ./rubocop/rubocop-usage-data.yml
- ./rubocop/rubocop-code_reuse.yml
@ -30,6 +33,7 @@ inherit_mode:
merge:
- Include
- Exclude
- AllowedPatterns
AllCops:
# Target the current Ruby version. For example, "2.7" or "3.0".
@ -97,6 +101,9 @@ InternalAffairs/DeprecateCopHelper:
Include:
- spec/rubocop/**/*.rb
Layout/LineLength:
AllowedPatterns: ['^RSpec\.describe\s.*\sdo']
Lint/LastKeywordArgument:
Safe: false
@ -436,6 +443,12 @@ BackgroundMigration/FeatureCategory:
Include:
- 'lib/gitlab/background_migration/*.rb'
BackgroundMigration/MissingDictionaryFile:
Enabled: true
EnforcedSince: 20230307160251
Include:
- 'db/post_migrate/*.rb'
# See https://gitlab.com/gitlab-org/gitlab/-/issues/373194
Gitlab/RSpec/AvoidSetup:
Enabled: true

View file

@ -0,0 +1,4 @@
---
# Grace period will be removed in https://gitlab.com/gitlab-org/gitlab/-/issues/395354
BackgroundMigration/MissingDictionaryFile:
Details: grace period

View file

@ -133,7 +133,6 @@ Gitlab/NamespacedClass:
- 'app/models/commit_status.rb'
- 'app/models/commit_user_mention.rb'
- 'app/models/compare.rb'
- 'app/models/concerns/uniquify.rb'
- 'app/models/container_expiration_policy.rb'
- 'app/models/container_repository.rb'
- 'app/models/context_commits_diff.rb'

View file

@ -127,7 +127,6 @@ Gitlab/StrongMemoizeAttr:
- 'app/models/namespaces/traversal/linear.rb'
- 'app/models/namespaces/traversal/recursive.rb'
- 'app/models/note.rb'
- 'app/models/onboarding/completion.rb'
- 'app/models/packages/go/module.rb'
- 'app/models/packages/go/module_version.rb'
- 'app/models/packages/package.rb'
@ -230,7 +229,6 @@ Gitlab/StrongMemoizeAttr:
- 'app/services/packages/cleanup/update_policy_service.rb'
- 'app/services/packages/composer/create_package_service.rb'
- 'app/services/packages/debian/extract_changes_metadata_service.rb'
- 'app/services/packages/debian/extract_metadata_service.rb'
- 'app/services/packages/debian/find_or_create_package_service.rb'
- 'app/services/packages/debian/generate_distribution_key_service.rb'
- 'app/services/packages/debian/generate_distribution_service.rb'
@ -596,7 +594,6 @@ Gitlab/StrongMemoizeAttr:
- 'lib/gitlab/ci/reports/accessibility_reports_comparer.rb'
- 'lib/gitlab/ci/reports/codequality_reports_comparer.rb'
- 'lib/gitlab/ci/reports/security/locations/base.rb'
- 'lib/gitlab/ci/reports/security/vulnerability_reports_comparer.rb'
- 'lib/gitlab/ci/reports/test_reports_comparer.rb'
- 'lib/gitlab/ci/reports/test_suite_comparer.rb'
- 'lib/gitlab/ci/reports/test_suite_summary.rb'
@ -647,7 +644,6 @@ Gitlab/StrongMemoizeAttr:
- 'lib/gitlab/git_access_project.rb'
- 'lib/gitlab/gitaly_client/with_feature_flag_actors.rb'
- 'lib/gitlab/github_import/client.rb'
- 'lib/gitlab/github_import/importer/repository_importer.rb'
- 'lib/gitlab/github_import/representation/diff_notes/suggestion_formatter.rb'
- 'lib/gitlab/gl_repository/identifier.rb'
- 'lib/gitlab/gpg/commit.rb'

View file

@ -3,54 +3,6 @@
Layout/ArgumentAlignment:
Details: grace period
Exclude:
- 'app/controllers/admin/application_settings_controller.rb'
- 'app/controllers/admin/ci/variables_controller.rb'
- 'app/controllers/admin/groups_controller.rb'
- 'app/controllers/admin/spam_logs_controller.rb'
- 'app/controllers/admin/topics_controller.rb'
- 'app/controllers/application_controller.rb'
- 'app/controllers/chaos_controller.rb'
- 'app/controllers/concerns/authenticates_with_two_factor.rb'
- 'app/controllers/concerns/enforces_two_factor_authentication.rb'
- 'app/controllers/concerns/invisible_captcha_on_signup.rb'
- 'app/controllers/concerns/issuable_actions.rb'
- 'app/controllers/concerns/known_sign_in.rb'
- 'app/controllers/concerns/membership_actions.rb'
- 'app/controllers/concerns/observability/content_security_policy.rb'
- 'app/controllers/concerns/wiki_actions.rb'
- 'app/controllers/dashboard/todos_controller.rb'
- 'app/controllers/groups/children_controller.rb'
- 'app/controllers/groups/group_members_controller.rb'
- 'app/controllers/groups_controller.rb'
- 'app/controllers/metrics_controller.rb'
- 'app/controllers/oauth/authorizations_controller.rb'
- 'app/controllers/oauth/authorized_applications_controller.rb'
- 'app/controllers/oauth/jira_dvcs/authorizations_controller.rb'
- 'app/controllers/profiles/emails_controller.rb'
- 'app/controllers/projects/blob_controller.rb'
- 'app/controllers/projects/commit_controller.rb'
- 'app/controllers/projects/environments_controller.rb'
- 'app/controllers/projects/error_tracking_controller.rb'
- 'app/controllers/projects/feature_flags_controller.rb'
- 'app/controllers/projects/google_cloud/base_controller.rb'
- 'app/controllers/projects/jobs_controller.rb'
- 'app/controllers/projects/labels_controller.rb'
- 'app/controllers/projects/merge_requests/creations_controller.rb'
- 'app/controllers/projects/merge_requests_controller.rb'
- 'app/controllers/projects/pages_controller.rb'
- 'app/controllers/projects/pages_domains_controller.rb'
- 'app/controllers/projects/pipeline_schedules_controller.rb'
- 'app/controllers/projects/pipelines_controller.rb'
- 'app/controllers/projects/prometheus/metrics_controller.rb'
- 'app/controllers/projects/repositories_controller.rb'
- 'app/controllers/projects/security/configuration_controller.rb'
- 'app/controllers/projects/tree_controller.rb'
- 'app/controllers/projects/web_ide_terminals_controller.rb'
- 'app/controllers/repositories/lfs_api_controller.rb'
- 'app/controllers/repositories/lfs_locks_api_controller.rb'
- 'app/controllers/search_controller.rb'
- 'app/controllers/sessions_controller.rb'
- 'app/controllers/users_controller.rb'
- 'app/finders/autocomplete/users_finder.rb'
- 'app/finders/group_descendants_finder.rb'
- 'app/graphql/mutations/achievements/create.rb'
@ -150,7 +102,6 @@ Layout/ArgumentAlignment:
- 'app/graphql/mutations/jira_import/import_users.rb'
- 'app/graphql/mutations/jira_import/start.rb'
- 'app/graphql/mutations/labels/create.rb'
- 'app/graphql/mutations/members/groups/bulk_update.rb'
- 'app/graphql/mutations/merge_requests/accept.rb'
- 'app/graphql/mutations/merge_requests/base.rb'
- 'app/graphql/mutations/merge_requests/create.rb'
@ -557,23 +508,6 @@ Layout/ArgumentAlignment:
- 'app/graphql/types/work_items/widgets/start_and_due_date_update_input_type.rb'
- 'app/graphql/types/x509_certificate_type.rb'
- 'app/graphql/types/x509_issuer_type.rb'
- 'app/helpers/application_helper.rb'
- 'app/helpers/application_settings_helper.rb'
- 'app/helpers/blob_helper.rb'
- 'app/helpers/ci/status_helper.rb'
- 'app/helpers/commits_helper.rb'
- 'app/helpers/dashboard_helper.rb'
- 'app/helpers/events_helper.rb'
- 'app/helpers/feature_flags_helper.rb'
- 'app/helpers/issuables_helper.rb'
- 'app/helpers/mirror_helper.rb'
- 'app/helpers/notes_helper.rb'
- 'app/helpers/projects/error_tracking_helper.rb'
- 'app/helpers/snippets_helper.rb'
- 'app/helpers/todos_helper.rb'
- 'app/helpers/users/group_callouts_helper.rb'
- 'app/helpers/users_helper.rb'
- 'app/helpers/visibility_level_helper.rb'
- 'app/mailers/emails/projects.rb'
- 'app/mailers/notify.rb'
- 'app/models/abuse_report.rb'
@ -673,11 +607,6 @@ Layout/ArgumentAlignment:
- 'app/models/wiki_page.rb'
- 'app/models/work_item.rb'
- 'app/policies/project_snippet_policy.rb'
- 'app/presenters/ci/build_runner_presenter.rb'
- 'app/presenters/label_presenter.rb'
- 'app/presenters/merge_request_presenter.rb'
- 'app/presenters/project_presenter.rb'
- 'app/presenters/snippet_blob_presenter.rb'
- 'app/serializers/build_details_entity.rb'
- 'app/serializers/environment_serializer.rb'
- 'app/serializers/error_tracking/detailed_error_entity.rb'
@ -924,22 +853,6 @@ Layout/ArgumentAlignment:
- 'ee/app/components/namespaces/free_user_cap/base_alert_component.rb'
- 'ee/app/components/namespaces/free_user_cap/enforcement_at_limit_alert_component.rb'
- 'ee/app/components/namespaces/free_user_cap/shared.rb'
- 'ee/app/controllers/admin/credentials_controller.rb'
- 'ee/app/controllers/concerns/ee/analytics/cycle_analytics/stage_actions.rb'
- 'ee/app/controllers/ee/groups_controller.rb'
- 'ee/app/controllers/ee/passwords_controller.rb'
- 'ee/app/controllers/ee/registrations_controller.rb'
- 'ee/app/controllers/ee/search_controller.rb'
- 'ee/app/controllers/groups/analytics/ci_cd_analytics_controller.rb'
- 'ee/app/controllers/groups/analytics/cycle_analytics_controller.rb'
- 'ee/app/controllers/groups/saml_group_links_controller.rb'
- 'ee/app/controllers/groups/security/credentials_controller.rb'
- 'ee/app/controllers/groups/two_factor_auths_controller.rb'
- 'ee/app/controllers/omniauth_kerberos_controller.rb'
- 'ee/app/controllers/projects/integrations/zentao/issues_controller.rb'
- 'ee/app/controllers/registrations/groups_projects_controller.rb'
- 'ee/app/controllers/subscriptions_controller.rb'
- 'ee/app/controllers/trials_controller.rb'
- 'ee/app/finders/security/findings_finder.rb'
- 'ee/app/finders/security/training_providers/base_url_finder.rb'
- 'ee/app/graphql/ee/mutations/alert_management/http_integration/create.rb'
@ -1225,9 +1138,6 @@ Layout/ArgumentAlignment:
- 'ee/app/graphql/types/work_items/widgets/status_filter_input_type.rb'
- 'ee/app/graphql/types/work_items/widgets/status_input_type.rb'
- 'ee/app/graphql/types/work_items/widgets/weight_input_type.rb'
- 'ee/app/helpers/billing_plans_helper.rb'
- 'ee/app/helpers/ee/feature_flags_helper.rb'
- 'ee/app/helpers/ee/search_helper.rb'
- 'ee/app/mailers/ee/emails/projects.rb'
- 'ee/app/mailers/emails/namespace_storage_usage_mailer.rb'
- 'ee/app/models/approval_wrapped_rule.rb'
@ -1445,7 +1355,6 @@ Layout/ArgumentAlignment:
- 'ee/spec/features/admin/admin_emails_spec.rb'
- 'ee/spec/features/admin/admin_settings_spec.rb'
- 'ee/spec/features/billings/billing_plans_spec.rb'
- 'ee/spec/features/billings/extend_reactivate_trial_spec.rb'
- 'ee/spec/features/boards/boards_spec.rb'
- 'ee/spec/features/boards/swimlanes/epics_swimlanes_drag_drop_spec.rb'
- 'ee/spec/features/burndown_charts_spec.rb'
@ -1663,7 +1572,6 @@ Layout/ArgumentAlignment:
- 'ee/spec/policies/merge_request_policy_spec.rb'
- 'ee/spec/policies/vulnerabilities/feedback_policy_spec.rb'
- 'ee/spec/policies/vulnerabilities/merge_request_link_policy_spec.rb'
- 'ee/spec/presenters/ci/pipeline_presenter_spec.rb'
- 'ee/spec/requests/admin/impersonation_tokens_controller_spec.rb'
- 'ee/spec/requests/api/analytics/product_analytics_spec.rb'
- 'ee/spec/requests/api/analytics/project_deployment_frequency_spec.rb'
@ -2090,7 +1998,6 @@ Layout/ArgumentAlignment:
- 'lib/gitlab/import_export/snippets_repo_restorer.rb'
- 'lib/gitlab/import_export/snippets_repo_saver.rb'
- 'lib/gitlab/issuable/clone/copy_resource_events_service.rb'
- 'lib/gitlab/legacy_github_import/importer.rb'
- 'lib/gitlab/mail_room.rb'
- 'lib/gitlab/markdown_cache/redis/store.rb'
- 'lib/gitlab/memory/reports_uploader.rb'
@ -2248,69 +2155,6 @@ Layout/ArgumentAlignment:
- 'spec/components/previews/pajamas/alert_component_preview.rb'
- 'spec/components/previews/pajamas/banner_component_preview.rb'
- 'spec/components/previews/pajamas/button_component_preview.rb'
- 'spec/controllers/admin/spam_logs_controller_spec.rb'
- 'spec/controllers/admin/users_controller_spec.rb'
- 'spec/controllers/concerns/analytics/cycle_analytics/value_stream_actions_spec.rb'
- 'spec/controllers/concerns/continue_params_spec.rb'
- 'spec/controllers/concerns/controller_with_cross_project_access_check_spec.rb'
- 'spec/controllers/concerns/product_analytics_tracking_spec.rb'
- 'spec/controllers/concerns/renders_commits_spec.rb'
- 'spec/controllers/confirmations_controller_spec.rb'
- 'spec/controllers/every_controller_spec.rb'
- 'spec/controllers/graphql_controller_spec.rb'
- 'spec/controllers/groups/group_members_controller_spec.rb'
- 'spec/controllers/groups/milestones_controller_spec.rb'
- 'spec/controllers/groups/variables_controller_spec.rb'
- 'spec/controllers/help_controller_spec.rb'
- 'spec/controllers/import/bitbucket_controller_spec.rb'
- 'spec/controllers/import/bulk_imports_controller_spec.rb'
- 'spec/controllers/import/fogbugz_controller_spec.rb'
- 'spec/controllers/oauth/authorizations_controller_spec.rb'
- 'spec/controllers/oauth/jira_dvcs/authorizations_controller_spec.rb'
- 'spec/controllers/omniauth_callbacks_controller_spec.rb'
- 'spec/controllers/passwords_controller_spec.rb'
- 'spec/controllers/profiles_controller_spec.rb'
- 'spec/controllers/projects/artifacts_controller_spec.rb'
- 'spec/controllers/projects/blame_controller_spec.rb'
- 'spec/controllers/projects/blob_controller_spec.rb'
- 'spec/controllers/projects/branches_controller_spec.rb'
- 'spec/controllers/projects/clusters_controller_spec.rb'
- 'spec/controllers/projects/commit_controller_spec.rb'
- 'spec/controllers/projects/commits_controller_spec.rb'
- 'spec/controllers/projects/cycle_analytics_controller_spec.rb'
- 'spec/controllers/projects/deploy_keys_controller_spec.rb'
- 'spec/controllers/projects/deployments_controller_spec.rb'
- 'spec/controllers/projects/design_management/designs/resized_image_controller_spec.rb'
- 'spec/controllers/projects/environments_controller_spec.rb'
- 'spec/controllers/projects/feature_flags_controller_spec.rb'
- 'spec/controllers/projects/find_file_controller_spec.rb'
- 'spec/controllers/projects/forks_controller_spec.rb'
- 'spec/controllers/projects/grafana_api_controller_spec.rb'
- 'spec/controllers/projects/issues_controller_spec.rb'
- 'spec/controllers/projects/jobs_controller_spec.rb'
- 'spec/controllers/projects/mattermosts_controller_spec.rb'
- 'spec/controllers/projects/merge_requests/conflicts_controller_spec.rb'
- 'spec/controllers/projects/merge_requests/creations_controller_spec.rb'
- 'spec/controllers/projects/merge_requests/diffs_controller_spec.rb'
- 'spec/controllers/projects/merge_requests/drafts_controller_spec.rb'
- 'spec/controllers/projects/merge_requests_controller_spec.rb'
- 'spec/controllers/projects/notes_controller_spec.rb'
- 'spec/controllers/projects/pipelines_controller_spec.rb'
- 'spec/controllers/projects/prometheus/alerts_controller_spec.rb'
- 'spec/controllers/projects/raw_controller_spec.rb'
- 'spec/controllers/projects/refs_controller_spec.rb'
- 'spec/controllers/projects/registry/repositories_controller_spec.rb'
- 'spec/controllers/projects/registry/tags_controller_spec.rb'
- 'spec/controllers/projects/settings/ci_cd_controller_spec.rb'
- 'spec/controllers/projects/settings/merge_requests_controller_spec.rb'
- 'spec/controllers/projects/snippets/blobs_controller_spec.rb'
- 'spec/controllers/projects/snippets_controller_spec.rb'
- 'spec/controllers/projects/tree_controller_spec.rb'
- 'spec/controllers/projects_controller_spec.rb'
- 'spec/controllers/registrations_controller_spec.rb'
- 'spec/controllers/search_controller_spec.rb'
- 'spec/controllers/sessions_controller_spec.rb'
- 'spec/controllers/snippets/blobs_controller_spec.rb'
- 'spec/factories/ci/processable.rb'
- 'spec/factories/draft_note.rb'
- 'spec/factories/environments.rb'
@ -2476,7 +2320,6 @@ Layout/ArgumentAlignment:
- 'spec/helpers/avatars_helper_spec.rb'
- 'spec/helpers/emoji_helper_spec.rb'
- 'spec/helpers/feature_flags_helper_spec.rb'
- 'spec/helpers/ide_helper_spec.rb'
- 'spec/helpers/namespaces_helper_spec.rb'
- 'spec/helpers/notify_helper_spec.rb'
- 'spec/helpers/page_layout_helper_spec.rb'
@ -2842,10 +2685,6 @@ Layout/ArgumentAlignment:
- 'spec/policies/ci/pipeline_schedule_policy_spec.rb'
- 'spec/policies/environment_policy_spec.rb'
- 'spec/policies/group_policy_spec.rb'
- 'spec/presenters/blob_presenter_spec.rb'
- 'spec/presenters/ci/build_runner_presenter_spec.rb'
- 'spec/presenters/merge_request_presenter_spec.rb'
- 'spec/presenters/packages/detail/package_presenter_spec.rb'
- 'spec/requests/admin/applications_controller_spec.rb'
- 'spec/requests/admin/impersonation_tokens_controller_spec.rb'
- 'spec/requests/api/access_requests_spec.rb'

View file

@ -555,7 +555,6 @@ Layout/EmptyLineAfterMagicComment:
- 'spec/components/previews/pajamas/card_component_preview.rb'
- 'spec/components/previews/pajamas/spinner_component_preview.rb'
- 'spec/controllers/application_controller_spec.rb'
- 'spec/controllers/concerns/analytics/cycle_analytics/value_stream_actions_spec.rb'
- 'spec/controllers/projects/jobs_controller_spec.rb'
- 'spec/controllers/projects/merge_requests/drafts_controller_spec.rb'
- 'spec/factories/airflow/dags.rb'
@ -813,7 +812,6 @@ Layout/EmptyLineAfterMagicComment:
- 'spec/services/packages/create_package_file_service_spec.rb'
- 'spec/services/packages/debian/extract_changes_metadata_service_spec.rb'
- 'spec/services/packages/debian/extract_deb_metadata_service_spec.rb'
- 'spec/services/packages/debian/extract_metadata_service_spec.rb'
- 'spec/services/packages/debian/parse_debian822_service_spec.rb'
- 'spec/services/packages/debian/process_changes_service_spec.rb'
- 'spec/services/packages/debian/process_package_file_service_spec.rb'

View file

@ -1582,7 +1582,6 @@ Layout/LineLength:
- 'ee/spec/features/admin/groups/admin_subscription_alerts_spec.rb'
- 'ee/spec/features/admin/subscriptions/admin_views_subscription_spec.rb'
- 'ee/spec/features/billings/billing_plans_spec.rb'
- 'ee/spec/features/billings/extend_reactivate_trial_spec.rb'
- 'ee/spec/features/boards/scoped_issue_board_spec.rb'
- 'ee/spec/features/boards/sidebar_spec.rb'
- 'ee/spec/features/boards/swimlanes/epics_swimlanes_drag_drop_spec.rb'
@ -3062,7 +3061,6 @@ Layout/LineLength:
- 'lib/gitlab/kubernetes/helm/pod.rb'
- 'lib/gitlab/kubernetes/kubectl_cmd.rb'
- 'lib/gitlab/kubernetes/pod_cmd.rb'
- 'lib/gitlab/legacy_github_import/importer.rb'
- 'lib/gitlab/legacy_github_import/project_creator.rb'
- 'lib/gitlab/local_and_remote_storage_migration/base_migrater.rb'
- 'lib/gitlab/lograge/custom_options.rb'
@ -4036,7 +4034,6 @@ Layout/LineLength:
- 'spec/lib/error_tracking/sentry_client/projects_spec.rb'
- 'spec/lib/event_filter_spec.rb'
- 'spec/lib/feature_spec.rb'
- 'spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb'
- 'spec/lib/generators/gitlab/usage_metric_definition/redis_hll_generator_spec.rb'
- 'spec/lib/generators/gitlab/usage_metric_definition_generator_spec.rb'
- 'spec/lib/generators/gitlab/usage_metric_generator_spec.rb'
@ -4150,7 +4147,6 @@ Layout/LineLength:
- 'spec/lib/gitlab/ci/reports/codequality_mr_diff_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/flag_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/scanner_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/vulnerability_reports_comparer_spec.rb'
- 'spec/lib/gitlab/ci/runner_upgrade_check_spec.rb'
- 'spec/lib/gitlab/ci/status/bridge/factory_spec.rb'
- 'spec/lib/gitlab/ci/status/build/manual_spec.rb'
@ -4930,7 +4926,6 @@ Layout/LineLength:
- 'spec/requests/groups/milestones_controller_spec.rb'
- 'spec/requests/groups/settings/access_tokens_controller_spec.rb'
- 'spec/requests/groups_controller_spec.rb'
- 'spec/requests/ide_controller_spec.rb'
- 'spec/requests/jwt_controller_spec.rb'
- 'spec/requests/lfs_http_spec.rb'
- 'spec/requests/oauth/tokens_controller_spec.rb'

View file

@ -400,7 +400,6 @@ Layout/SpaceInLambdaLiteral:
- 'spec/models/ability_spec.rb'
- 'spec/models/broadcast_message_spec.rb'
- 'spec/models/concerns/participable_spec.rb'
- 'spec/models/concerns/uniquify_spec.rb'
- 'spec/models/merge_request_spec.rb'
- 'spec/support/shared_examples/lib/cache_helpers_shared_examples.rb'
- 'spec/support/shared_examples/workers/batched_background_migration_worker_shared_examples.rb'

View file

@ -128,7 +128,6 @@ Layout/SpaceInsideParens:
- 'spec/lib/gitlab/ci/parsers/security/common_spec.rb'
- 'spec/lib/gitlab/ci/parsers_spec.rb'
- 'spec/lib/gitlab/ci/pipeline/seed/build_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/vulnerability_reports_comparer_spec.rb'
- 'spec/lib/gitlab/ci/reports/test_suite_spec.rb'
- 'spec/lib/gitlab/ci/templates/AWS/deploy_ecs_gitlab_ci_yaml_spec.rb'
- 'spec/lib/gitlab/ci/templates/MATLAB_spec.rb'

View file

@ -138,7 +138,6 @@ Lint/UnusedBlockArgument:
- 'ee/spec/factories/protected_environments.rb'
- 'ee/spec/factories/slack_integrations.rb'
- 'ee/spec/factories/users.rb'
- 'ee/spec/features/billings/extend_reactivate_trial_spec.rb'
- 'ee/spec/features/groups/group_settings_spec.rb'
- 'ee/spec/graphql/mutations/dast/profiles/update_spec.rb'
- 'ee/spec/graphql/resolvers/analytics/contribution_analytics/contributions_resolver_spec.rb'
@ -376,7 +375,6 @@ Lint/UnusedBlockArgument:
- 'spec/models/concerns/ci/partitionable/switch_spec.rb'
- 'spec/models/concerns/ci/partitionable_spec.rb'
- 'spec/models/concerns/each_batch_spec.rb'
- 'spec/models/concerns/uniquify_spec.rb'
- 'spec/models/container_repository_spec.rb'
- 'spec/models/network/graph_spec.rb'
- 'spec/models/packages/debian/file_metadatum_spec.rb'

View file

@ -19,7 +19,6 @@ Lint/UnusedMethodArgument:
- 'app/graphql/mutations/base_mutation.rb'
- 'app/graphql/mutations/ci/runner/delete.rb'
- 'app/graphql/mutations/concerns/mutations/assignable.rb'
- 'app/graphql/mutations/members/groups/bulk_update.rb'
- 'app/graphql/mutations/notes/create/base.rb'
- 'app/graphql/mutations/notes/create/diff_note.rb'
- 'app/graphql/mutations/notes/create/image_diff_note.rb'

View file

@ -50,7 +50,6 @@ Naming/HeredocDelimiterNaming:
- 'rubocop/cop/default_scope.rb'
- 'rubocop/cop/file_decompression.rb'
- 'rubocop/cop/gitlab/httparty.rb'
- 'rubocop/cop/gitlab/json.rb'
- 'rubocop/cop/gitlab/module_with_instance_variables.rb'
- 'rubocop/cop/gitlab/predicate_memoization.rb'
- 'spec/controllers/projects/pipelines_controller_spec.rb'

View file

@ -97,30 +97,17 @@ Performance/MapCompact:
- 'lib/gitlab/analytics/usage_trends/workers_argument_builder.rb'
- 'lib/gitlab/auth/ip_rate_limiter.rb'
- 'lib/gitlab/background_migration/backfill_project_repositories.rb'
- 'lib/gitlab/changes_list.rb'
- 'lib/gitlab/checks/changes_access.rb'
- 'lib/gitlab/ci/parsers/security/common.rb'
- 'lib/gitlab/ci/reports/security/aggregated_report.rb'
- 'lib/gitlab/ci/reports/security/finding.rb'
- 'lib/gitlab/ci/reports/test_suite_summary.rb'
- 'lib/gitlab/config/entry/validators.rb'
- 'lib/gitlab/database/load_balancing/service_discovery.rb'
- 'lib/gitlab/database/obsolete_ignored_columns.rb'
- 'lib/gitlab/email/receiver.rb'
- 'lib/gitlab/git/commit.rb'
- 'lib/gitlab/git/conflict/file.rb'
- 'lib/gitlab/git/rugged_impl/commit.rb'
- 'lib/gitlab/github_import/importer/pull_requests/review_request_importer.rb'
- 'lib/gitlab/issuable/clone/copy_resource_events_service.rb'
- 'lib/gitlab/issues/rebalancing/state.rb'
- 'lib/gitlab/jira_import/metadata_collector.rb'
- 'lib/gitlab/json_cache.rb'
- 'lib/gitlab/language_detection.rb'
- 'lib/gitlab/legacy_github_import/importer.rb'
- 'lib/gitlab/private_commit_email.rb'
- 'lib/gitlab/sql/pattern.rb'
- 'lib/gitlab/url_blocker.rb'
- 'lib/gitlab/verify/batch_verifier.rb'
- 'qa/qa/page/component/issuable/sidebar.rb'
- 'qa/qa/support/formatters/test_metrics_formatter.rb'
- 'qa/qa/tools/ci/ff_changes.rb'

View file

@ -1,9 +0,0 @@
---
# Cop supports --autocorrect.
Performance/StringInclude:
Details: grace period
Exclude:
- 'lib/gitlab/github_import/importer/repository_importer.rb'
- 'lib/gitlab/legacy_github_import/importer.rb'
- 'lib/gitlab/usage_data.rb'
- 'rubocop/cop/gitlab/json.rb'

View file

@ -1,21 +1,6 @@
---
Rails/InverseOf:
Exclude:
- 'app/models/alert_management/alert.rb'
- 'app/models/alert_management/alert_assignee.rb'
- 'app/models/application_setting.rb'
- 'app/models/audit_event.rb'
- 'app/models/board.rb'
- 'app/models/bulk_imports/entity.rb'
- 'app/models/bulk_imports/tracker.rb'
- 'app/models/ci/build.rb'
- 'app/models/ci/build_pending_state.rb'
- 'app/models/ci/build_trace_chunk.rb'
- 'app/models/ci/daily_build_group_report_result.rb'
- 'app/models/ci/job_artifact.rb'
- 'app/models/ci/job_variable.rb'
- 'app/models/ci/pipeline.rb'
- 'app/models/ci/pipeline_schedule.rb'
- 'app/models/ci/runner.rb'
- 'app/models/ci/runner_namespace.rb'
- 'app/models/ci/sources/pipeline.rb'
@ -44,7 +29,6 @@ Rails/InverseOf:
- 'app/models/group_group_link.rb'
- 'app/models/group_label.rb'
- 'app/models/incident_management/timeline_event.rb'
- 'app/models/integrations/base_slash_commands.rb'
- 'app/models/issue.rb'
- 'app/models/jira_connect_subscription.rb'
- 'app/models/members/group_member.rb'
@ -59,7 +43,6 @@ Rails/InverseOf:
- 'app/models/project.rb'
- 'app/models/project_label.rb'
- 'app/models/resource_state_event.rb'
- 'app/models/serverless/domain_cluster.rb'
- 'app/models/terraform/state_version.rb'
- 'app/models/time_tracking/timelog_category.rb'
- 'app/models/todo.rb'

View file

@ -2,19 +2,5 @@
Rake/Require:
Details: grace period
Exclude:
- 'lib/tasks/gitlab/assets.rake'
- 'lib/tasks/gitlab/docs/redirect.rake'
- 'lib/tasks/gitlab/graphql.rake'
- 'lib/tasks/gitlab/lfs/migrate.rake'
- 'lib/tasks/gitlab/metrics_exporter.rake'
- 'lib/tasks/gitlab/openapi.rake'
- 'lib/tasks/gitlab/packages/events.rake'
- 'lib/tasks/gitlab/packages/migrate.rake'
- 'lib/tasks/gitlab/pages.rake'
- 'lib/tasks/gitlab/refresh_project_statistics_build_artifacts_size.rake'
- 'lib/tasks/gitlab/terraform/migrate.rake'
- 'lib/tasks/gitlab/tw/codeowners.rake'
- 'lib/tasks/gitlab/x509/update.rake'
- 'lib/tasks/import.rake'
- 'lib/tasks/tokens.rake'
- 'qa/tasks/webdrivers.rake'

View file

@ -1494,7 +1494,6 @@ RSpec/ContextWording:
- 'spec/helpers/gitlab_routing_helper_spec.rb'
- 'spec/helpers/groups/group_members_helper_spec.rb'
- 'spec/helpers/groups_helper_spec.rb'
- 'spec/helpers/ide_helper_spec.rb'
- 'spec/helpers/integrations_helper_spec.rb'
- 'spec/helpers/jira_connect_helper_spec.rb'
- 'spec/helpers/labels_helper_spec.rb'
@ -1636,7 +1635,6 @@ RSpec/ContextWording:
- 'spec/lib/extracts_ref_spec.rb'
- 'spec/lib/feature/definition_spec.rb'
- 'spec/lib/feature_spec.rb'
- 'spec/lib/generators/gitlab/snowplow_event_definition_generator_spec.rb'
- 'spec/lib/gitlab/alert_management/fingerprint_spec.rb'
- 'spec/lib/gitlab/analytics/cycle_analytics/average_spec.rb'
- 'spec/lib/gitlab/analytics/cycle_analytics/base_query_builder_spec.rb'
@ -1732,7 +1730,6 @@ RSpec/ContextWording:
- 'spec/lib/gitlab/ci/pipeline_object_hierarchy_spec.rb'
- 'spec/lib/gitlab/ci/reports/reports_comparer_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/aggregated_report_spec.rb'
- 'spec/lib/gitlab/ci/reports/security/vulnerability_reports_comparer_spec.rb'
- 'spec/lib/gitlab/ci/reports/test_suite_comparer_spec.rb'
- 'spec/lib/gitlab/ci/runner_instructions_spec.rb'
- 'spec/lib/gitlab/ci/runner_upgrade_check_spec.rb'
@ -2576,7 +2573,6 @@ RSpec/ContextWording:
- 'spec/requests/groups/settings/access_tokens_controller_spec.rb'
- 'spec/requests/groups_controller_spec.rb'
- 'spec/requests/health_controller_spec.rb'
- 'spec/requests/ide_controller_spec.rb'
- 'spec/requests/jira_connect/installations_controller_spec.rb'
- 'spec/requests/jira_connect/oauth_application_ids_controller_spec.rb'
- 'spec/requests/jira_routing_spec.rb'
@ -2847,7 +2843,6 @@ RSpec/ContextWording:
- 'spec/services/packages/conan/create_package_service_spec.rb'
- 'spec/services/packages/create_package_file_service_spec.rb'
- 'spec/services/packages/debian/create_distribution_service_spec.rb'
- 'spec/services/packages/debian/extract_metadata_service_spec.rb'
- 'spec/services/packages/debian/find_or_create_incoming_service_spec.rb'
- 'spec/services/packages/debian/process_changes_service_spec.rb'
- 'spec/services/packages/helm/process_file_service_spec.rb'

View file

@ -1,66 +0,0 @@
---
RSpec/InvalidFeatureCategory:
Exclude:
- 'ee/spec/controllers/admin/application_settings_controller_spec.rb'
- 'ee/spec/controllers/admin/applications_controller_spec.rb'
- 'ee/spec/controllers/admin/dashboard_controller_spec.rb'
- 'ee/spec/controllers/admin/emails_controller_spec.rb'
- 'ee/spec/controllers/countries_controller_spec.rb'
- 'ee/spec/controllers/country_states_controller_spec.rb'
- 'ee/spec/controllers/sitemap_controller_spec.rb'
- 'ee/spec/features/admin/admin_dashboard_spec.rb'
- 'ee/spec/features/dashboards/operations_spec.rb'
- 'ee/spec/requests/api/award_emoji_spec.rb'
- 'ee/spec/requests/api/settings_spec.rb'
- 'spec/config/inject_enterprise_edition_module_spec.rb'
- 'spec/config/object_store_settings_spec.rb'
- 'spec/config/smime_signature_settings_spec.rb'
- 'spec/contracts/provider_specs/helpers/provider/contract_source_helper_spec.rb'
- 'spec/controllers/concerns/content_security_policy_patch_spec.rb'
- 'spec/features/action_cable_logging_spec.rb'
- 'spec/features/admin/admin_abuse_reports_spec.rb'
- 'spec/features/admin/admin_appearance_spec.rb'
- 'spec/features/admin/admin_browse_spam_logs_spec.rb'
- 'spec/features/admin/admin_mode_spec.rb'
- 'spec/features/admin/admin_settings_spec.rb'
- 'spec/features/admin/admin_system_info_spec.rb'
- 'spec/features/breadcrumbs_schema_markup_spec.rb'
- 'spec/features/dashboard/root_explore_spec.rb'
- 'spec/features/dashboard/shortcuts_spec.rb'
- 'spec/features/display_system_header_and_footer_bar_spec.rb'
- 'spec/features/frequently_visited_projects_and_groups_spec.rb'
- 'spec/features/help_dropdown_spec.rb'
- 'spec/features/help_pages_spec.rb'
- 'spec/features/monitor_sidebar_link_spec.rb'
- 'spec/features/unsubscribe_links_spec.rb'
- 'spec/features/whats_new_spec.rb'
- 'spec/lib/api/helpers_spec.rb'
- 'spec/lib/gitlab/slug/path_spec.rb'
- 'spec/lib/gitlab/utils/strong_memoize_spec.rb'
- 'spec/models/application_setting_spec.rb'
- 'spec/models/namespaces/randomized_suffix_path_spec.rb'
- 'spec/requests/admin/version_check_controller_spec.rb'
- 'spec/requests/api/admin/plan_limits_spec.rb'
- 'spec/requests/api/admin/sidekiq_spec.rb'
- 'spec/requests/api/api_guard/admin_mode_middleware_spec.rb'
- 'spec/requests/api/api_guard/response_coercer_middleware_spec.rb'
- 'spec/requests/api/award_emoji_spec.rb'
- 'spec/requests/api/graphql/custom_emoji_query_spec.rb'
- 'spec/requests/api/graphql/multiplexed_queries_spec.rb'
- 'spec/requests/api/graphql/mutations/admin/sidekiq_queues/delete_jobs_spec.rb'
- 'spec/requests/api/graphql/mutations/award_emojis/add_spec.rb'
- 'spec/requests/api/graphql/mutations/award_emojis/remove_spec.rb'
- 'spec/requests/api/graphql/mutations/award_emojis/toggle_spec.rb'
- 'spec/requests/api/graphql/mutations/custom_emoji/create_spec.rb'
- 'spec/requests/api/graphql/mutations/custom_emoji/destroy_spec.rb'
- 'spec/requests/api/graphql/query_spec.rb'
- 'spec/requests/api/graphql_spec.rb'
- 'spec/requests/api/internal/workhorse_spec.rb'
- 'spec/requests/api/metadata_spec.rb'
- 'spec/requests/api/settings_spec.rb'
- 'spec/requests/api/sidekiq_metrics_spec.rb'
- 'spec/requests/projects/uploads_spec.rb'
- 'spec/requests/sandbox_controller_spec.rb'
- 'spec/rubocop/cop/gitlab/doc_url_spec.rb'
- 'spec/rubocop/cop/lint/last_keyword_argument_spec.rb'
- 'spec/rubocop/cop/rspec/avoid_test_prof_spec.rb'

File diff suppressed because it is too large Load diff

View file

@ -158,7 +158,6 @@ Style/FormatString:
- 'danger/roulette/Dangerfile'
- 'ee/app/components/billing/plan_component.rb'
- 'ee/app/components/namespaces/free_user_cap/enforcement_alert_component.rb'
- 'ee/app/components/namespaces/free_user_cap/notification_alert_component.rb'
- 'ee/app/components/namespaces/free_user_cap/usage_quota_alert_component.rb'
- 'ee/app/components/namespaces/free_user_cap/usage_quota_trial_alert_component.rb'
- 'ee/app/controllers/admin/elasticsearch_controller.rb'

View file

@ -490,7 +490,6 @@ Style/GuardClause:
- 'lib/gitlab/ci/pipeline/expression/lexeme/base.rb'
- 'lib/gitlab/ci/pipeline/expression/lexeme/pattern.rb'
- 'lib/gitlab/ci/reports/codequality_reports_comparer.rb'
- 'lib/gitlab/ci/reports/security/vulnerability_reports_comparer.rb'
- 'lib/gitlab/ci/runner/backoff.rb'
- 'lib/gitlab/ci/runner_upgrade_check.rb'
- 'lib/gitlab/ci/trace.rb'

View file

@ -642,7 +642,6 @@ Style/IfUnlessModifier:
- 'ee/lib/gitlab/usage/metrics/instrumentations/count_users_creating_ci_builds_metric.rb'
- 'ee/lib/gitlab/usage/metrics/instrumentations/license_metric.rb'
- 'ee/lib/omni_auth/strategies/group_saml.rb'
- 'ee/lib/sidebars/groups/menus/administration_menu.rb'
- 'ee/lib/sidebars/groups/menus/analytics_menu.rb'
- 'ee/lib/sidebars/groups/menus/security_compliance_menu.rb'
- 'ee/lib/tasks/geo.rake'
@ -891,7 +890,6 @@ Style/IfUnlessModifier:
- 'lib/gitlab/jira_import.rb'
- 'lib/gitlab/jira_import/base_importer.rb'
- 'lib/gitlab/legacy_github_import/client.rb'
- 'lib/gitlab/legacy_github_import/importer.rb'
- 'lib/gitlab/legacy_github_import/issuable_formatter.rb'
- 'lib/gitlab/legacy_github_import/project_creator.rb'
- 'lib/gitlab/lograge/custom_options.rb'

View file

@ -5,7 +5,6 @@ Style/MutableConstant:
Exclude:
- 'app/finders/group_members_finder.rb'
- 'app/graphql/mutations/container_repositories/destroy_tags.rb'
- 'app/graphql/mutations/members/groups/bulk_update.rb'
- 'app/graphql/mutations/packages/bulk_destroy.rb'
- 'app/helpers/blame_helper.rb'
- 'app/models/ci/build_trace_chunks/redis_base.rb'

View file

@ -993,7 +993,6 @@ Style/PercentLiteralDelimiters:
- 'spec/requests/api/unleash_spec.rb'
- 'spec/requests/api/users_spec.rb'
- 'spec/requests/api/wikis_spec.rb'
- 'spec/requests/ide_controller_spec.rb'
- 'spec/requests/jwt_controller_spec.rb'
- 'spec/requests/lfs_locks_api_spec.rb'
- 'spec/requests/users_controller_spec.rb'

View file

@ -78,7 +78,6 @@ Style/RedundantFreeze:
- 'ee/lib/ee/gitlab/path_regex.rb'
- 'ee/lib/ee/gitlab/web_hooks/rate_limiter.rb'
- 'ee/lib/elastic/latest/git_class_proxy.rb'
- 'ee/lib/gitlab/code_owners/file.rb'
- 'ee/lib/gitlab/code_owners/reference_extractor.rb'
- 'ee/lib/gitlab/status_page/filter/image_filter.rb'
- 'ee/lib/system_check/geo/authorized_keys_check.rb'

View file

@ -105,7 +105,6 @@ Style/SymbolProc:
- 'ee/lib/gitlab/geo/oauth/logout_state.rb'
- 'ee/spec/elastic/migrate/20220118150500_delete_orphaned_commits_spec.rb'
- 'ee/spec/factories/issues.rb'
- 'ee/spec/features/billings/extend_reactivate_trial_spec.rb'
- 'ee/spec/features/billings/qrtly_reconciliation_alert_spec.rb'
- 'ee/spec/helpers/ee/geo_helper_spec.rb'
- 'ee/spec/helpers/ee/registrations_helper_spec.rb'

View file

@ -2,55 +2,810 @@
documentation](doc/development/changelog.md) for instructions on adding your own
entry.
## 15.9.8 (2023-05-10)
No changes.
## 15.9.7 (2023-05-03)
### Security (1 change)
- [Only maintainers of projects should be able to assign runners to them](gitlab-org/security/gitlab@695748314b758ca2d9992df7509025a6ac868000) ([merge request](gitlab-org/security/gitlab!3236))
## 15.9.6 (2023-05-01)
### Security (8 changes)
- [Resolve ambiguous references for archive metadata](gitlab-org/security/gitlab@233b0f78baf8eb9adcfd77e4d1aa606d54472d34) ([merge request](gitlab-org/security/gitlab!3203))
- [Commit trailers now only match public user email addresses](gitlab-org/security/gitlab@e360774721bb9b5f6a2da9908ef08d92ad5a79cd) ([merge request](gitlab-org/security/gitlab!3209))
- [Handle invalid URLs in asset proxy](gitlab-org/security/gitlab@ee6df7196b14014b5416f090a684e3b6ba600b5a) ([merge request](gitlab-org/security/gitlab!3213))
- [Relay state to check for only allowing sub paths](gitlab-org/security/gitlab@c690eec0a2f8aa506b8ff3ffadf306aa91501648) ([merge request](gitlab-org/security/gitlab!3221))
- [Prohibit 40 character hex sets at beginning of path-based branch name](gitlab-org/security/gitlab@889683b6b1884bfc36208dfae899d0fb9437246c) ([merge request](gitlab-org/security/gitlab!3195))
- [Update policy to prevent banned members from accessing public projects](gitlab-org/security/gitlab@1abcbdc23881dab5f675e858afa31be87d5d47ce) ([merge request](gitlab-org/security/gitlab!3187))
- [Use dummy filename as filename when viewing raw xml files](gitlab-org/security/gitlab@33563159bcc7d46c95f013bf089ed94128f10379) ([merge request](gitlab-org/security/gitlab!3193))
- [Authorize access to vulnerabilitiesCountByDay resolver](gitlab-org/security/gitlab@4b0825f79b0a27eeddabaee0b3a7f627b2487706) ([merge request](gitlab-org/security/gitlab!3181))
## 15.9.5 (2023-04-21)
## 15.10.7 (2023-05-10)
### Fixed (1 change)
- [Fix automatically-retried jobs stuck in pending state](gitlab-org/gitlab@752fbfcd613259b71af37f62a83321e8f573219b) ([merge request](gitlab-org/gitlab!117281))
- [Backport MR 119319 changes to 15-10-stable-ee](gitlab-org/security/gitlab@6c9e1f2f706b0151b1caa3d5199aa312b23c683a) **GitLab Enterprise Edition**
## 15.9.4 (2023-03-30)
## 15.10.6 (2023-05-03)
### Security (16 changes)
### Security (1 change)
- [Add checks to remove open redirects from Observability URL](gitlab-org/security/gitlab@98b1bd243f454bd28c262131be616ee2060c3a78) ([merge request](gitlab-org/security/gitlab!3104))
- [Redirect to tree from project root on ref collision](gitlab-org/security/gitlab@0f0c0f21dffe300a56abf1e07a2fefb17160faeb) ([merge request](gitlab-org/security/gitlab!3133))
- [Fixes soft email confirmation alert vulnerability](gitlab-org/security/gitlab@12498f791f9c5fe833f5202b06cc818d4dcf965b) ([merge request](gitlab-org/security/gitlab!3124))
- [Restrict Prometheus API access on public projects](gitlab-org/security/gitlab@440a7989ff46ca333f86a38aefa47f74301e66fc) ([merge request](gitlab-org/security/gitlab!3163))
- [Verify that users have access to the parent of the fork](gitlab-org/security/gitlab@9dd0dff69d3941e827c461c67b9af10da07d69f8) ([merge request](gitlab-org/security/gitlab!3084))
- [Protect webhook secrets by resetting url_variables](gitlab-org/security/gitlab@cd20b44dd5b075827203330802e331b896448265) ([merge request](gitlab-org/security/gitlab!3140))
- [Replace Unicode space chars with spaces](gitlab-org/security/gitlab@76975082c41870265e1285fa8f4e053eb6ff11ae) ([merge request](gitlab-org/security/gitlab!3136))
- [Check access to parent when creating and updating epics](gitlab-org/security/gitlab@7fcc4a0d010d3a428e803f95ef47904c4c7178a8) ([merge request](gitlab-org/security/gitlab!3149))
- [Improve Gitlab::UrlSanitizer regex to match more URIs](gitlab-org/security/gitlab@4e7313536e4cdb3ecef37100b5a73720eabfbc79) ([merge request](gitlab-org/security/gitlab!3108))
- [Check access to target project before looking for branch](gitlab-org/security/gitlab@f55edf39e52af9eecb19caf8ed5d4cb8524ef64d) ([merge request](gitlab-org/security/gitlab!3040))
- [Fix the potential leak of internal notes](gitlab-org/security/gitlab@be73600e8c43c22cda1ace5910eb2052b2741972) ([merge request](gitlab-org/security/gitlab!3120))
- [Use UntrustedRegexp to limit scan of HTML comments](gitlab-org/security/gitlab@d5e65583debcae71787e171643275bc9b9d4393e) ([merge request](gitlab-org/security/gitlab!3142))
- [Filter namespace environments by feature visibility](gitlab-org/security/gitlab@54045b508a9ba9ae18f5992b77970240774b28a7) ([merge request](gitlab-org/security/gitlab!3111))
- [Check access to reorder issues in epic tree](gitlab-org/security/gitlab@bc033cd3a98c9a1468545811a8180604f7f8aee3) ([merge request](gitlab-org/security/gitlab!3101))
- [Fix security report authorization](gitlab-org/security/gitlab@a01cf9d8383ffc4c0e29514f71d49bf345e1f7c2) ([merge request](gitlab-org/security/gitlab!3106))
- [Prevent XSS attack in "Maximum page reached" page](gitlab-org/security/gitlab@3cefb16a5e369ee99f4c3ccbaa02cead6faf1a99) ([merge request](gitlab-org/security/gitlab!3130))
- [Only maintainers of projects should be able to assign runners to them](gitlab-org/security/gitlab@a20f5018b757a78a772d2bf1f9f8cdfe95a019ed) ([merge request](gitlab-org/security/gitlab!3235))
## 15.10.5 (2023-05-01)
### Security (9 changes)
- [Set minimum role for importing projects to Maintainer](gitlab-org/security/gitlab@d4cff7e53961d819b30ae748a38e4c8e4d856b32) ([merge request](gitlab-org/security/gitlab!3215))
- [Commit trailers now only match public user email addresses](gitlab-org/security/gitlab@4948acdb39ba6ae9a71ef133e38ec47327d14f97) ([merge request](gitlab-org/security/gitlab!3208))
- [Handle invalid URLs in asset proxy](gitlab-org/security/gitlab@b22e923ab3d48d9389311192d92dd89e2bfc24aa) ([merge request](gitlab-org/security/gitlab!3212))
- [Relay state to check for only allowing sub paths](gitlab-org/security/gitlab@24f84fafd65dfedf36e859d305dd46bf3e71c8dc) ([merge request](gitlab-org/security/gitlab!3220))
- [Prohibit 40 character hex sets at beginning of path-based branch name](gitlab-org/security/gitlab@71d30b6537f6853fef45acba16ab26b6f32718f7) ([merge request](gitlab-org/security/gitlab!3194))
- [Add specs for external users flag](gitlab-org/security/gitlab@dfdb540285e573bd55a8647db4de8370ba6b3286) ([merge request](gitlab-org/security/gitlab!3190))
- [Update policy to prevent banned members from accessing public projects](gitlab-org/security/gitlab@bc211b8be25e56f35c80d2331447f251c7a7dd56) ([merge request](gitlab-org/security/gitlab!3186))
- [Use dummy filename as filename when viewing raw xml files](gitlab-org/security/gitlab@6d871f56d7a343d705f8c849d24a94b3528c3a97) ([merge request](gitlab-org/security/gitlab!3192))
- [Authorize access to vulnerabilitiesCountByDay resolver](gitlab-org/security/gitlab@888c187aab7c7062ea43b61a282c4dea8c6a47be) ([merge request](gitlab-org/security/gitlab!3180))
## 15.10.4 (2023-04-21)
### Fixed (1 change)
- [Patch mail gem to handle TLS settings properly](gitlab-org/gitlab@cd4cfc46e17c91dbf5ef10ab1ca0a473d6b2a4d6) ([merge request](gitlab-org/gitlab!117559))
## 15.10.3 (2023-04-14)
### Fixed (3 changes)
- [Backport fixes for broadcast messages](gitlab-org/gitlab@c97c17e31e99f9e93127245cd1f65f7d15cdb0ef) ([merge request](gitlab-org/gitlab!117276))
- [Fix automatically-retried jobs stuck in pending state](gitlab-org/gitlab@e349581eaf1e050b8bcdee76f9d40f0c182a09f8) ([merge request](gitlab-org/gitlab!117280))
- [Verify deploy keys settings for protected tags (backport)](gitlab-org/gitlab@4bd6914bd616c1d8dc9ee7cb75e92be13d522ca9) ([merge request](gitlab-org/gitlab!116952))
### Changed (1 change)
- [Change the order of vulnerability creation](gitlab-org/gitlab@4193c4cab75f9472b3804b74b17f4a10f3ae9580) ([merge request](gitlab-org/gitlab!116851)) **GitLab Enterprise Edition**
## 15.10.2 (2023-04-05)
### Fixed (3 changes)
- [Fix openapi viewer for relative url instances](gitlab-org/gitlab@28c94e7f0e0c29651383212e16422e0b384cddb9) ([merge request](gitlab-org/gitlab!115480))
- [Update mail gem to v2.8.1](gitlab-org/gitlab@1ec987737d7a3ee96bb1ef8efa3f06fcd32c31e4) ([merge request](gitlab-org/gitlab!116173))
- [Move ldap option sync_name to ldap server and fix bugs](gitlab-org/gitlab@e56f6d11f76ae858f602b23ea1e2875eb8754fe5) by @zhzhang93 ([merge request](gitlab-org/gitlab!115820)) **GitLab Enterprise Edition**
### Changed (1 change)
- [Migrate the existing RedisHLL keys to default slot](gitlab-org/gitlab@5fa90b0ef485aee29f62c500fb48c19278099ef0) ([merge request](gitlab-org/gitlab!116604))
## 15.10.1 (2023-03-30)
### Fixed (2 changes)
- [Sync security policy rule schedules that may have been deleted by bug](gitlab-org/security/gitlab@5ac094761b5cfac26c44d63988359fbae263a415)
- [Fix issue dashboard returning issues from archived projects](gitlab-org/security/gitlab@6127799167081845824e8759f358aac8f702adb8)
### Security (15 changes)
- [Redirect to tree from project root on ref collision](gitlab-org/security/gitlab@c10a48134447128486e2254fc54d0af0d8e6fee0) ([merge request](gitlab-org/security/gitlab!3155))
- [Fixes soft email confirmation alert vulnerability](gitlab-org/security/gitlab@4aa387fec0c995607f03e8c057d2c2a11168aca9) ([merge request](gitlab-org/security/gitlab!3158))
- [Restrict Prometheus API access on public projects](gitlab-org/security/gitlab@e9cf398f8c205ae1b8cafddbb2cfbcb214a84d51) ([merge request](gitlab-org/security/gitlab!3162))
- [Verify that users have access to the parent of the fork](gitlab-org/security/gitlab@fb55096b37ab82f49f2a0205f7ab8bdda14b0010) ([merge request](gitlab-org/security/gitlab!3153))
- [Protect webhook secrets by resetting url_variables](gitlab-org/security/gitlab@433996f41e89db3e2073314c0644a6f95ab67062) ([merge request](gitlab-org/security/gitlab!3146))
- [Replace Unicode space chars with spaces](gitlab-org/security/gitlab@c9942785d9a26cf7bb96a81ccd14e5c6e5582bbe) ([merge request](gitlab-org/security/gitlab!3156))
- [Check access to parent when creating and updating epics](gitlab-org/security/gitlab@a42d166e743edb966b0a581bf1325ffb7c96041b) ([merge request](gitlab-org/security/gitlab!3148))
- [Improve Gitlab::UrlSanitizer regex to match more URIs](gitlab-org/security/gitlab@58a823e09c27948d15432c344248a8436587f9af) ([merge request](gitlab-org/security/gitlab!3165))
- [Check access to target project before looking for branch](gitlab-org/security/gitlab@804d9da677451889e0a7a0880f2c2f4c3c04faed) ([merge request](gitlab-org/security/gitlab!3151))
- [Fix the potential leak of internal notes](gitlab-org/security/gitlab@e21dbf4373a4c4e5179b073f5cba4318ee174918) ([merge request](gitlab-org/security/gitlab!3154))
- [Use UntrustedRegexp to limit scan of HTML comments](gitlab-org/security/gitlab@874edf184764fa801866fbd4e89b9f7e87c570fd) ([merge request](gitlab-org/security/gitlab!3143))
- [Filter namespace environments by feature visibility](gitlab-org/security/gitlab@e88f78f19dc5ed01a74e6c0d4bb5c22f3a69b65b) ([merge request](gitlab-org/security/gitlab!3114))
- [Check access to reorder issues in epic tree](gitlab-org/security/gitlab@94e4e543762998a9bbff75c5ffb5cd5da6bd2d88) ([merge request](gitlab-org/security/gitlab!3147))
- [Fix security report authorization](gitlab-org/security/gitlab@10f33b260212ebf811acecf4b05af1311b44fb64) ([merge request](gitlab-org/security/gitlab!3145))
- [Prevent XSS attack in "Maximum page reached" page](gitlab-org/security/gitlab@4ce175e4096c973a2d16b93fff6b60bc0144eee0) ([merge request](gitlab-org/security/gitlab!3132))
## 15.10.0 (2023-03-21)
### Added (155 changes)
- [Add wiki_access_level to group API](gitlab-org/gitlab@05b4aca71af6e5e2e73175ee13e4bf6741d17721) ([merge request](gitlab-org/gitlab!114719)) **GitLab Enterprise Edition**
- [Add filter for approved status](gitlab-org/gitlab@739d2677fe60c53443e828241b3b53518ef2cb12) by @Taucher2003 ([merge request](gitlab-org/gitlab!114374))
- [Show achievements on user profile](gitlab-org/gitlab@b6d43f703b109add8f8e951335d86551531f137d) ([merge request](gitlab-org/gitlab!113156))
- [Run package metadata conditionally in dev](gitlab-org/gitlab@64f1ba858e13f775faaa17af1407f3d398837308) ([merge request](gitlab-org/gitlab!115062)) **GitLab Enterprise Edition**
- [Add revoke achievement mutation and service](gitlab-org/gitlab@15c471bf7984a9e1f364cf0479fedfdc2f86c620) ([merge request](gitlab-org/gitlab!114810))
- [Add documentation for protected tags creation with deploy keys](gitlab-org/gitlab@c9bf5fc531199249b99dd6e95126f6f61fa649a8) ([merge request](gitlab-org/gitlab!110240))
- [Define ci_builds primary key as partitioned](gitlab-org/gitlab@730cb2f3c0335e4e436f34c20b800caed2aa4f44) ([merge request](gitlab-org/gitlab!113725))
- [Compliance frameworks report](gitlab-org/gitlab@f53da2b047b5ffb811cc4950b5050e73510e902c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/issues/391898)) **GitLab Enterprise Edition**
- [feat: Enable auto-resolution of removed SAST rules by default](gitlab-org/gitlab@929b74d1ee087b678ff6041cd63d04ada298692e) ([merge request](gitlab-org/gitlab!114633))
- [Filter projects by compliance framework presence](gitlab-org/gitlab@15417d7fa2032b3d4cd9f5ca78778f82fefa617b) ([merge request](gitlab-org/gitlab!114440)) **GitLab Enterprise Edition**
- [Add Squash TM integration](gitlab-org/gitlab@0f3b8a519f0f57380cfc46565ad55844fe4a1c6e) by @pckerneis ([merge request](gitlab-org/gitlab!110909))
- [Enable duo 2FA authentication support](gitlab-org/gitlab@07c175ed7bb2275cc0861717217b6ad9a3c3cbc6) ([merge request](gitlab-org/gitlab!114068))
- [Move work item notes out of FF and docs](gitlab-org/gitlab@a0f536c63f8cd27982592f98a1fb2cce2478006c) ([merge request](gitlab-org/gitlab!108412))
- [Add documentations for Praefect DNS service discovery](gitlab-org/gitlab@78af37e867ad7356ad5d094ed6627d54e9fd0094) ([merge request](gitlab-org/gitlab!114556))
- [Add github repo counts endpoint](gitlab-org/gitlab@e333b7c885e0d03f28403cf075344313c274f44a) ([merge request](gitlab-org/gitlab!114322))
- [Enable License Scanning Policies as new type for Scan Result Policies](gitlab-org/gitlab@9edc2616a736e2c9ee1dbcb0762c4f2ff93fb63e) ([merge request](gitlab-org/gitlab!111226)) **GitLab Enterprise Edition**
- [repository: Remove license_from_gitaly feature flag](gitlab-org/gitlab@57fedabf7fea29924f72b3037704f64ab64cbe16) ([merge request](gitlab-org/gitlab!114456))
- [Introduce Kubernetes integration feature](gitlab-org/gitlab@bddb664cd506a285bbf711407fe04778c6df61bc) ([merge request](gitlab-org/gitlab!113973))
- [Prepare MR user mentions for bigint migration](gitlab-org/gitlab@06107a2edad7dd2b2ecba75ca1b583f157d6a11a) ([merge request](gitlab-org/gitlab!114043))
- [Apply auto-disabling failed hooks to group hooks](gitlab-org/gitlab@0d3979da37fd3ac759649916ee4766a51f74d8a8) ([merge request](gitlab-org/gitlab!114515)) **GitLab Enterprise Edition**
- [Consume seat when Guest's permissions are elevated using custom roles](gitlab-org/gitlab@fed5c42b6275082604c11109cdc8a7e283690bbd) ([merge request](gitlab-org/gitlab!113856)) **GitLab Enterprise Edition**
- [Enable license scanning of CycloneDX files](gitlab-org/gitlab@3ce93967413cf6235d24d855cb7bc1be555bfb8f) ([merge request](gitlab-org/gitlab!114135)) **GitLab Enterprise Edition**
- [Native attachments for Service Desk emails](gitlab-org/gitlab@baf8cdfb249a584c99d0d2452ede25c823bc01ab) ([merge request](gitlab-org/gitlab!114550))
- [Allows filtering of projects by negated compliance framework id](gitlab-org/gitlab@fdda18467b41cebbc4e86554fdd1dab5bfbfe283) ([merge request](gitlab-org/gitlab!114069)) **GitLab Enterprise Edition**
- [Support admin/external/required groups for OIDC](gitlab-org/gitlab@8345ee22ce9271204df8a811548d89438a443c02) ([merge request](gitlab-org/gitlab!111904)) **GitLab Enterprise Edition**
- [Added refresh_billable_member api](gitlab-org/gitlab@d31824a9ca8bf2fe70e6dc25d4731eaa1c538c2f) ([merge request](gitlab-org/gitlab!113499)) **GitLab Enterprise Edition**
- [Update AbuseReportsFinder to allow filtering by reporter](gitlab-org/gitlab@191b86d51b1ed1260a8537f35f8e9a4946edc673) ([merge request](gitlab-org/gitlab!113649))
- [Release Block all requests feature](gitlab-org/gitlab@83c8a31318b0ef2bc82180ebdf7f1d579149900b) ([merge request](gitlab-org/gitlab!114532))
- [Allow self-managed to prevent auto disabling hooks](gitlab-org/gitlab@5e7a1b385de07f489da30e6fd1f81fcf0291a9d0) ([merge request](gitlab-org/gitlab!113479))
- [Add search by author name to Commits API](gitlab-org/gitlab@9aab633ace3229ff30400c8506699b4139530ccd) ([merge request](gitlab-org/gitlab!114417))
- [Add merge requests compliance violations consistency worker](gitlab-org/gitlab@f01eb01e48c020fb75a5bd80ce342ecc77d1c155) ([merge request](gitlab-org/gitlab!113147)) **GitLab Enterprise Edition**
- [Document new redis settings start_down and set_replicaof](gitlab-org/gitlab@af7293413663b0d11ecc1350a1b9a352c4d4c1be) ([merge request](gitlab-org/gitlab!113763))
- [[385117] GitHub import: status of import for each relation-type tab](gitlab-org/gitlab@e01d504c4d7d4a7a1aa14a77408de5369fc1c18e) ([merge request](gitlab-org/gitlab!113778))
- [Add gitlab_dedicated_instance application setting](gitlab-org/gitlab@8f941928e89469ce4b16cb6f47a11e7b56407e7e) ([merge request](gitlab-org/gitlab!114434))
- [Adds AddResourceService & ValidateResourceService](gitlab-org/gitlab@de2d8d3aeb9f7595c5de4358787770e4651f7caf) ([merge request](gitlab-org/gitlab!113873))
- [Add table and model for container registry data repair details](gitlab-org/gitlab@9ef6abfaf7851f5132ace9c42f3a3413f29efbcc) ([merge request](gitlab-org/gitlab!113029))
- [Expose cycle and lead time metrics via GraphQL](gitlab-org/gitlab@3127ccb4bf0e2359c903f8d4bc4c2dab3f70fbe9) ([merge request](gitlab-org/gitlab!113848)) **GitLab Enterprise Edition**
- [Save github_identifiers to the DB on the last object import worker retry](gitlab-org/gitlab@328aef16e4c2285ea12eeebdca02fa9ffe4a9e7d) ([merge request](gitlab-org/gitlab!112791))
- [feat: Added the breadcrumbs for slack page](gitlab-org/gitlab@720fda63cfd3cefa7aa805f75a1bb8b6c947c53c) by @imrishabh18 ([merge request](gitlab-org/gitlab!114176)) **GitLab Enterprise Edition**
- [Allow filtering group members by user type](gitlab-org/gitlab@cedc457d2889f3aba42e297290980fad209fef6b) ([merge request](gitlab-org/gitlab!113596))
- [Merge trains POST API](gitlab-org/gitlab@88e8370240a80313a0654736c02a0f50c2dfa57a) by @markus.ferrell ([merge request](gitlab-org/gitlab!100853)) **GitLab Enterprise Edition**
- [Adds custom email verification model changes](gitlab-org/gitlab@29c17ca77cb724588a7929b4e67da4593a4613c0) ([merge request](gitlab-org/gitlab!112938))
- [Allow updating user subscriptions on a work item](gitlab-org/gitlab@76ac95707da722357752554165b6946df9c1454f) ([merge request](gitlab-org/gitlab!112587))
- [Added truncation of the search term](gitlab-org/gitlab@4d5a56848d81a325715a72e0f0448bed336076cf) ([merge request](gitlab-org/gitlab!114250))
- [Recreate user_type migration index](gitlab-org/gitlab@bab1faf6d166513cb0b9aa6a1479c458307e6421) ([merge request](gitlab-org/gitlab!114244))
- [Allow comment on GQL vulnerabilityResolve mutation](gitlab-org/gitlab@c2518e3c2088f9b025b1cc1f772fb37b53f69b56) ([merge request](gitlab-org/gitlab!113644)) **GitLab Enterprise Edition**
- [Add update endpoint to draft note API](gitlab-org/gitlab@d6b22368badb8363812bcf481c59bd667304f898) ([merge request](gitlab-org/gitlab!113271))
- [Display total weight of epic lists on boards](gitlab-org/gitlab@3f9df1e93ace4c01c9026b371031a3ea8c8455d3) ([merge request](gitlab-org/gitlab!113793)) **GitLab Enterprise Edition**
- [Backfill project_wiki_repositories table](gitlab-org/gitlab@164179862b1024e27994e81692c7ec2b89f4d28c) ([merge request](gitlab-org/gitlab!113783))
- [Clean up child_epics_from_different_hierarchies FF](gitlab-org/gitlab@892f8053340bec9ffdeb574af6a569dbe4e5901c) ([merge request](gitlab-org/gitlab!113827))
- [Add reference from p_ci_runner_machine_builds to ci_runner_machines](gitlab-org/gitlab@6c7998d4ebddbcef9079138e376fa479017403c3) ([merge request](gitlab-org/gitlab!113355))
- [GraphQL: Add machines field to CiRunner type](gitlab-org/gitlab@d99c7c1cd2712b3cabc14b2b01bc7d0935b114db) ([merge request](gitlab-org/gitlab!113951))
- [Adjust VulnerabilityConfirm GraphQL mutation to accept comment](gitlab-org/gitlab@99b75122c6838f56d92f2452a3b07cb4523ed214) ([merge request](gitlab-org/gitlab!113722)) **GitLab Enterprise Edition**
- [Add reordering to search language filter component](gitlab-org/gitlab@6398e66cd2e4f4d30a40da9c1f2fcd5e9059f228) ([merge request](gitlab-org/gitlab!111563))
- [This MR introduces alert component](gitlab-org/gitlab@edbbe56763458ddecf814bfdeaf8fcd972881e9b) ([merge request](gitlab-org/gitlab!111260)) **GitLab Enterprise Edition**
- [Enable creation of ci_runner_machines records for active ci_runners](gitlab-org/gitlab@c98c05ad99940de576d0e587432c5d0003714b24) ([merge request](gitlab-org/gitlab!113252))
- [Add product_analytics_data_collector_host column](gitlab-org/gitlab@beba6098f9d6a3ae22abf0b7b6560c55630cd00d) ([merge request](gitlab-org/gitlab!112905))
- [GraphQL: Add CiRunner.createdBy field](gitlab-org/gitlab@c77abdc6ea9348557e64abac077542d349371088) ([merge request](gitlab-org/gitlab!113701))
- [Add coupon code terms to success alert and simplify associated logic](gitlab-org/gitlab@aaa866d81f6983fa9fa6bd21a2582d613e4f495e) ([merge request](gitlab-org/gitlab!113323)) **GitLab Enterprise Edition**
- [Integrate diagrams.net with the Content Editor](gitlab-org/gitlab@f69f79d41c541b36ca12bd6da5fbd59490aa980e) ([merge request](gitlab-org/gitlab!112569))
- [Add Notifications Widget to WorkItems](gitlab-org/gitlab@d3e9045c0f1d546e599837d9e0b47e1ac048f283) ([merge request](gitlab-org/gitlab!113416))
- [Audit event for event type filter deletion](gitlab-org/gitlab@adfb8dacb981c7229d80cea7f74f076fda7811e0) ([merge request](gitlab-org/gitlab!113489)) **GitLab Enterprise Edition**
- [[388716] Github importer: collaborators (members)](gitlab-org/gitlab@472bd6c6f679d06c5617890b3f86914c6108eb9e) ([merge request](gitlab-org/gitlab!112226))
- [Support quick actions through new note](gitlab-org/gitlab@1167c6c1b4e439c726e327ceebbb3bc7a2039e98) ([merge request](gitlab-org/gitlab!112543))
- [Admin only project edit page](gitlab-org/gitlab@c7b5c6d0aa479a41bd8067a376bd4fcc34c52814) by @markus.ferrell ([merge request](gitlab-org/gitlab!110103))
- [Allow to export work items with GraphQL mutation](gitlab-org/gitlab@4ac22d77a84797bacdcf05c3d301b41c5366955d) ([merge request](gitlab-org/gitlab!111373))
- [Add dismissal reason to vulnerability details status](gitlab-org/gitlab@07b45fe98c91b506e598ca941ef2096b327c36e3) ([merge request](gitlab-org/gitlab!112468)) **GitLab Enterprise Edition**
- [Blame page streaming](gitlab-org/gitlab@9ecbc123963e09ebc0be834b69d8780cd27ef9c2) ([merge request](gitlab-org/gitlab!110208))
- [Add CLI regex for upcoming CLI UserAgent change](gitlab-org/gitlab@97f9ffd9ac32bcc98d74cbb473d55d6bb1be33f1) ([merge request](gitlab-org/gitlab!113139))
- [Introduce JobArtifact::BulkDestroy mutation](gitlab-org/gitlab@51dcba39992ad7a48c4340112f7f00d8eeb45f4d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/110026))
- [Add the deployment count to the GraphQL API](gitlab-org/gitlab@e7315d4d8c74da0e254ce20aa3bb2aae2dc7d6dc) ([merge request](gitlab-org/gitlab!113220)) **GitLab Enterprise Edition**
- [Allow to set design description in GraphQL API](gitlab-org/gitlab@b7210d2cfcfa2f105bbc1edec02f85141dfd694e) ([merge request](gitlab-org/gitlab!113651))
- [Add visualization designer button](gitlab-org/gitlab@3f841e451869c7eeab839788a33791e5f192864e) ([merge request](gitlab-org/gitlab!112841))
- [Add new event serializer to return JSON only response based on FF](gitlab-org/gitlab@a3328eb8dc5e807a259f2fa86a2d677f1a9380e0) ([merge request](gitlab-org/gitlab!111190))
- [Allow filtering of projects by compliance filters](gitlab-org/gitlab@646ec5150ffc8f482c425145da783766285aa7b8) ([merge request](gitlab-org/gitlab!111928)) **GitLab Enterprise Edition**
- [Add value streams dashboard link component](gitlab-org/gitlab@9ccc033fbe1a28b2586b21dab7cea99c1d6dee84) ([merge request](gitlab-org/gitlab!112787)) **GitLab Enterprise Edition**
- [Add language aggregation to code search](gitlab-org/gitlab@9a4e4e6d07651e6943913b680854615a38740a86) ([merge request](gitlab-org/gitlab!112073)) **GitLab Enterprise Edition**
- [Add block all requests to admin/network settings](gitlab-org/gitlab@b063cb867f0796cc184f2013d839f05a7cd13870) ([merge request](gitlab-org/gitlab!111552))
- [Add temporary indexes for user_type](gitlab-org/gitlab@c13892a502f0277c0570e5fd16aeef1fb9fe2ffb) ([merge request](gitlab-org/gitlab!113544))
- [Add design description column](gitlab-org/gitlab@1a1dadc628fe2f08568aebf53cdb5c7aca07579c) ([merge request](gitlab-org/gitlab!113108))
- [Enable by default incident event tags](gitlab-org/gitlab@8137503b11c17f373c2e7a99b42559a12a35a143) ([merge request](gitlab-org/gitlab!112823))
- [Adds audit event for audit event filter creation](gitlab-org/gitlab@016024fc6fedf13c59f1da486587951dac575209) ([merge request](gitlab-org/gitlab!113081)) **GitLab Enterprise Edition**
- [Add index to oauth_access_grants.application_id](gitlab-org/gitlab@9c62d08139e1410514a1326d3a92e7c01e19d8fa) ([merge request](gitlab-org/gitlab!113414))
- [Accept comment in VulnerabilityRevertToDetected GraphQL mutation](gitlab-org/gitlab@740e6153bb1083f1ea0109b049f5772bc9ab351a) ([merge request](gitlab-org/gitlab!113140)) **GitLab Enterprise Edition**
- [Improve Purchase Errors mapping](gitlab-org/gitlab@5de9cc9c890be096cdbac89dccb1cdf6e345ed9c) ([merge request](gitlab-org/gitlab!112895)) **GitLab Enterprise Edition**
- [Warning when branch name from issue contains a white space](gitlab-org/gitlab@92fee4470e70096b0c695dd822d2a64add147124) ([merge request](gitlab-org/gitlab!101930))
- [Instrument Enterprise Users adoption](gitlab-org/gitlab@e8bf196ba83751cfeb976b9b48ec14f7b842f352) ([merge request](gitlab-org/gitlab!112185)) **GitLab Enterprise Edition**
- [Add updated_before and updated_after filters to iterations API](gitlab-org/gitlab@811f1a23afa821173972b286f4ad46e7922f3724) ([merge request](gitlab-org/gitlab!113155)) **GitLab Enterprise Edition**
- [Adds copy to clarify work-in-progress is excluded from VSA stages](gitlab-org/gitlab@72c3c639355dc46804e4b7fc8e5d4926c347c928) ([merge request](gitlab-org/gitlab!113189))
- [Add user_has_committed and committers_can_approve to approvals API](gitlab-org/gitlab@3698cbe223f7f0d530fd504df2ad503629aeab80) ([merge request](gitlab-org/gitlab!112647))
- [Add requiredApprovalCount to ProtectedEnvironmentType](gitlab-org/gitlab@8a775da4852130d442622be53f48b3f3bc1d9ca0) ([merge request](gitlab-org/gitlab!112899))
- [Add group web-hooks failed notifications](gitlab-org/gitlab@64911c7492611059b3619df91790dab8011bfc6f) by @alexkalderimis ([merge request](gitlab-org/gitlab!110824))
- [Enable rule mode SEP UI for SAST IaC](gitlab-org/gitlab@039e33ce1dccb03106e70a60662f467363794c38) ([merge request](gitlab-org/gitlab!112752)) **GitLab Enterprise Edition**
- [Add types to async constraint validations](gitlab-org/gitlab@92a28adac0dc8117428bbc5151257aae3401dd1c) ([merge request](gitlab-org/gitlab!113101))
- [Validate and replace FK for ci_sources_pipelines and ci_builds](gitlab-org/gitlab@dd28c491d972b2392b166421066ca17c48a06fc4) ([merge request](gitlab-org/gitlab!110368))
- [Validate and replace FK for ci_job_variables and ci_builds](gitlab-org/gitlab@9a32f8f4471fff4316d0f08415a7d70d98840244) ([merge request](gitlab-org/gitlab!111158))
- [Validate and replace FK for ci_build_trace_metadata and ci_builds](gitlab-org/gitlab@241af2e0901d9dabdf50cb6ff03af042d43d77ce) ([merge request](gitlab-org/gitlab!111163))
- [Add SAST IaC to scan execution policies](gitlab-org/gitlab@8f06eb18535100012c59b47931ef37e37209c9db) ([merge request](gitlab-org/gitlab!112754)) **GitLab Enterprise Edition**
- [Create a wrapper for Rails.cache with metrics support](gitlab-org/gitlab@a39010b084839925ba516c7892b720be62d2203f) ([merge request](gitlab-org/gitlab!111210))
- [Enable CI hooks:pre_get_sources_script syntax](gitlab-org/gitlab@27ffa7abf12e7f39c356bd4fbc2ca836622d2e0c) ([merge request](gitlab-org/gitlab!112920))
- [Add sync index for merge_request_diffs external_diff column](gitlab-org/gitlab@51c9d3fdaac60a26234bfa8f5ad112c9f1e81f9f) ([merge request](gitlab-org/gitlab!112144))
- [Finalize migration and add NOT VALID Foreign Key](gitlab-org/gitlab@87876efb0bead6c0c2a406600a69ea72af9c8fbd) ([merge request](gitlab-org/gitlab!112126))
- [Create award achievement GraphQL mutation](gitlab-org/gitlab@0613db9fd605c483500286ecc79b8cf3664c7457) ([merge request](gitlab-org/gitlab!107802))
- [Add pipeline reference in state transition](gitlab-org/gitlab@d16a505c6410eaa6e21906a8bd488a29ced289ab) ([merge request](gitlab-org/gitlab!112403))
- [Added updated_after and updated_before params to milestones API](gitlab-org/gitlab@706d8511ea437f18b3e598fb919afcf0505ab58c) ([merge request](gitlab-org/gitlab!106924))
- [Add markdown soft break on Shift+Enter](gitlab-org/gitlab@3551b83576d6c993244679de89c5e5c66a6e8e1d) ([merge request](gitlab-org/gitlab!112601))
- [Add cost settings which belongs to a runner](gitlab-org/gitlab@9884277ef94f160004fa19bb39d21f978f707ac7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111977))
- [Pre-create initial partition for ci_runner_machine_builds](gitlab-org/gitlab@5107c43ff10c91762128fd9af6d9aed6fedc2682) ([merge request](gitlab-org/gitlab!112572))
- [Introduce ErrorAlert Component to Purchase flows](gitlab-org/gitlab@05ae1741ddc13f4e6898b0b63721769e4060a0b2) ([merge request](gitlab-org/gitlab!110600)) **GitLab Enterprise Edition**
- [Schedule FK async validations for p_ci_builds_metadata partitions](gitlab-org/gitlab@4b2d8246c90af8c1c0296eb1b4bd01bed0e1b176) ([merge request](gitlab-org/gitlab!112788))
- [Add rate limits for access of Projects API](gitlab-org/gitlab@61bc00cd8cd1999cf0cd090fa39ba2b057a50e3e) ([merge request](gitlab-org/gitlab!112283))
- [Add inbound access control to projects](gitlab-org/gitlab@c27fff06e003396b3b2984aae07a30a55468ab64) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111694))
- [Add Create Runner mutation](gitlab-org/gitlab@4ef6bdfdd06c405147cdff0e7be9f42a14ce03aa) ([merge request](gitlab-org/gitlab!111789))
- [Add code step](gitlab-org/gitlab@3313a1ea7e88591b49f3368f53ae463e9fd103eb) ([merge request](gitlab-org/gitlab!111670))
- [Add Create Runner mutation](gitlab-org/gitlab@f1a050f5ae9a5bb9c5c8cf843b662a7ebf2f8594) by @tschmitke ([merge request](gitlab-org/gitlab!110593))
- [Cleanup add_refresh_pull_mirror_worker feature flag](gitlab-org/gitlab@776027ca61a8c170ce91c5d8f8c438ecd33c42f9) ([merge request](gitlab-org/gitlab!112722))
- [Release GitLab for Slack notifications](gitlab-org/gitlab@520a799035ac1c4c0d96ad989e62d870eb850a9f) ([merge request](gitlab-org/gitlab!112505)) **GitLab Enterprise Edition**
- [Display parent and work item ID on detail page](gitlab-org/gitlab@0af5f901e6d9c684117c0186e7264f5e9ad37e93) ([merge request](gitlab-org/gitlab!112272))
- [Add audit even for agent token creation](gitlab-org/gitlab@458be4ee79079c2c027c219bd523a0e73bd28aa4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112036)) **GitLab Enterprise Edition**
- [Added deprecation warning for Slack on self-hosted](gitlab-org/gitlab@7e9e67c112b5c08bbf47e97065b4e6fd57c99837) ([merge request](gitlab-org/gitlab!111821))
- [Frontend implementation of work item notes subscription](gitlab-org/gitlab@d549914471b2790d8d2a3cf6f7e3550396b53a06) ([merge request](gitlab-org/gitlab!109079))
- [Expose issue count flow metric via GraphQL](gitlab-org/gitlab@6ec02eab11c87ac6f5bf65c7168d59e7563d6b0b) ([merge request](gitlab-org/gitlab!111571)) **GitLab Enterprise Edition**
- [Skip License#check_trueup when converting to cloud](gitlab-org/gitlab@f88727355aaff66199c394bf0a17fed7e4141d79) ([merge request](gitlab-org/gitlab!112294)) **GitLab Enterprise Edition**
- [Added the deprecation alert to Slack notifications](gitlab-org/gitlab@c96d7f649f393db583f0b821a6c69e715c743486) ([merge request](gitlab-org/gitlab!111593))
- [Refactor tests for admin mode](gitlab-org/gitlab@3a2450a364fbe5a9aaf5d1bc9d52f56367e922f8) by @TrueKalix ([merge request](gitlab-org/gitlab!111785))
- [Add add_concurrent_index migration for index_namespaces_on_updated_at](gitlab-org/gitlab@bcdd27f86063a9361b9421f621014a53a1970422) ([merge request](gitlab-org/gitlab!112399))
- [Add add_concurrent_index migration for index_users_on_updated_at](gitlab-org/gitlab@46517e7248df14b5327401fb07c748e29d783b1b) ([merge request](gitlab-org/gitlab!112398))
- [Summary quick view of issuables using markdown (+s)](gitlab-org/gitlab@58b28d3c224209676bed8d3d5d021c8a5ef1cb66) ([merge request](gitlab-org/gitlab!110406))
- [API Discovery analyzer for java spring-boot](gitlab-org/gitlab@e2c62c00b855e578d32a683c25f08ce3de2810da) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/108878)) **GitLab Enterprise Edition**
- [Add pre scan verification create-update service](gitlab-org/gitlab@2dc16147f75aa4e7f41bcb400300f3076da133ef) ([merge request](gitlab-org/gitlab!111075))
- [BG migration to add issue links to existing findings](gitlab-org/gitlab@9fa28999bc71984c66d1a54b85c8103b9604c945) ([merge request](gitlab-org/gitlab!107367))
- [Validate and replace FK for ci_build_report_results and ci_builds](gitlab-org/gitlab@fe7540e59f854d3e1d418b794bbec471e02919c4) ([merge request](gitlab-org/gitlab!112461))
- [SSO-provisioned users are redirected to SSO login after confirmation](gitlab-org/gitlab@ae5d32d9ef2a5e84d64bef029ea2f2ac74867de2) ([merge request](gitlab-org/gitlab!112112)) **GitLab Enterprise Edition**
- [Expose total weight for epic board list API](gitlab-org/gitlab@29edc92e90a12f4dce3edabc05f029c224774797) ([merge request](gitlab-org/gitlab!112566)) **GitLab Enterprise Edition**
- [Add bulk_import_export_batches & bulk_import_batch_trackers db tables](gitlab-org/gitlab@375b61b7722b5c3074a705925b8396955a211ccb) ([merge request](gitlab-org/gitlab!111708))
- [Update FKs between p_ci_builds_metadata partitions and ci_builds](gitlab-org/gitlab@8bc9ed118991d74ae02b19b95448b61a8aeba3c9) ([merge request](gitlab-org/gitlab!112316))
- [Adds delete action on package other versions tab](gitlab-org/gitlab@fd137b3baed780df852354e4c3df73387eb25990) ([merge request](gitlab-org/gitlab!112523))
- [Validate and replace FK for ci_job_artifacts and ci_builds](gitlab-org/gitlab@44d8ab4610090df8832327aa0b4c04068af38cb5) ([merge request](gitlab-org/gitlab!111166))
- [Add frontend validation for discord id](gitlab-org/gitlab@4a2c8d788f4fdfc9b0e3fc99b1f698ef5f94108c) ([merge request](gitlab-org/gitlab!111326))
- [Create namespace_ldap_settings table to move columns from namespaces](gitlab-org/gitlab@41b7e5c5650865fcdf71ddbc9f23aa17fcf1cf0a) ([merge request](gitlab-org/gitlab!108908))
- [Add key_fingerprint_sha256 to SshSignatureType](gitlab-org/gitlab@7e53a7ae84c58fef473cca8b56d16329595d7f29) ([merge request](gitlab-org/gitlab!112465))
- [Validate and replace FK for ci_build_needs and ci_builds](gitlab-org/gitlab@8a24749a3094323b22a31e87be5c0fbc980c7adc) ([merge request](gitlab-org/gitlab!112462))
- [Add deployment approver settings to API](gitlab-org/gitlab@046fe624fa90c39124eca39475d0f519a0788d0b) by @luzhiyuan.deer ([merge request](gitlab-org/gitlab!111747)) **GitLab Enterprise Edition**
- [Add status and resolved_at columns to abuse_reports](gitlab-org/gitlab@3e822d651f0432c1c96173abfa080fd1b7bee486) ([merge request](gitlab-org/gitlab!110991))
- [Add ci_runner_machine_builds join table](gitlab-org/gitlab@ddaa735bbfea22ffce44d2d430a6311b61725d95) ([merge request](gitlab-org/gitlab!111483))
- [Backend for Service Account MVC](gitlab-org/gitlab@14b8b33c888b85b6b696a5c0b9b6bcbf1b9c3f83) ([merge request](gitlab-org/gitlab!110656))
- [Add logs for ci resource groups](gitlab-org/gitlab@aa96b02a8b360c62974b69378dd730b7bd94a7c2) ([merge request](gitlab-org/gitlab!110029))
- [Allow abuse reports from epic notes](gitlab-org/gitlab@0648d812c15b1a175d2d29c621e9efb3e9b7e340) ([merge request](gitlab-org/gitlab!112307)) **GitLab Enterprise Edition**
- [Add sync index for lfs_objects file column](gitlab-org/gitlab@4cf7f075dc39968d5bbddce5cee1f2883734431d) ([merge request](gitlab-org/gitlab!112142))
- [Add `has_failures` column to `bulk_import_*` db tables](gitlab-org/gitlab@fcaa75cbb42093286e408165a0a2e492d6cc85f2) ([merge request](gitlab-org/gitlab!112056))
- [Add `add_provisioned_by_group_at` to `user_details`](gitlab-org/gitlab@583d303b25320dae941ca228c482a200332ff907) ([merge request](gitlab-org/gitlab!112083))
- [Add sync index for package_files file_name column](gitlab-org/gitlab@17939f97fc94869cc10dd8c2b158a3e884d81dd9) ([merge request](gitlab-org/gitlab!112099))
- [Index sbom_occurrences on project_id and id](gitlab-org/gitlab@a3f909459ae304822ec2c57b80bcbb7250183029) ([merge request](gitlab-org/gitlab!111175))
- [Add Query.project.dependencies to graphql](gitlab-org/gitlab@424a3e54ee6f3ad0bc5ce3a92d42b2a133d62a3b) ([merge request](gitlab-org/gitlab!111175)) **GitLab Enterprise Edition**
- [Add index to web_hook_logs](gitlab-org/gitlab@67d99e12756eb3a6328c74265eceeb799ba9436f) ([merge request](gitlab-org/gitlab!110169))
### Fixed (173 changes)
- [Fix URL base of API endpoint](gitlab-org/gitlab@8abcc55b3750a3e6e4a8f440f8f5b589b9de8628) ([merge request](gitlab-org/gitlab!114983)) **GitLab Enterprise Edition**
- [Run in batches uuids count](gitlab-org/gitlab@a7e01a4a5e28affba5d818f7c2d93208f7b6d3e7) ([merge request](gitlab-org/gitlab!114402)) **GitLab Enterprise Edition**
- [Update prometheus-client-mmap to v0.19.1](gitlab-org/gitlab@27f43cd0aa82120453e37e0011d68fa71e3fac6f) ([merge request](gitlab-org/gitlab!115048))
- [Work item add comment bug fix](gitlab-org/gitlab@432004987eb324c72427abc503badb9fe94c7863) ([merge request](gitlab-org/gitlab!115001))
- [Use only the valid report findings in PipelineVulnerabilitiesFinder](gitlab-org/gitlab@8706d4c78f620faf1335f5322454c534423a36b2) ([merge request](gitlab-org/gitlab!115039)) **GitLab Enterprise Edition**
- [Fix to prevent unlimited CI includes](gitlab-org/gitlab@89deab1c3032cc1eeb411e61b20b32603b736f89) ([merge request](gitlab-org/gitlab!114928))
- [Fix duplication of thread comments on snippet and commit page](gitlab-org/gitlab@12b6208081c7437465e3fca50960f5640c027a16) ([merge request](gitlab-org/gitlab!115007))
- [Different fixes for cleanup policies for container images](gitlab-org/gitlab@994889f753a11a3c74425fbac8079dae66f63b0d) ([merge request](gitlab-org/gitlab!114609))
- [Fix NoMethodError: undefined method `sha'](gitlab-org/gitlab@d2b07c92244b676dd6ad6e2a00c4b25a3839df31) ([merge request](gitlab-org/gitlab!114013))
- [Remove calendar icon from epic list item if no date exists](gitlab-org/gitlab@aef1f26a5f99a6f585ecf4c9e8fb1692d5a8cccf) ([merge request](gitlab-org/gitlab!114789)) **GitLab Enterprise Edition**
- [Address polling edge cases in runner registration](gitlab-org/gitlab@46d4f3f832cb1fa172023d2ee7a89aa70b753dd7) ([merge request](gitlab-org/gitlab!114742))
- [Fix Debian generate for group distributions](gitlab-org/gitlab@62865ba8644d01e122acbb71725b3a0eb1562be2) by @sathieu ([merge request](gitlab-org/gitlab!113441))
- [Put runner machine heartbet under a feature flag](gitlab-org/gitlab@01b839b76b2a7cced19f9d2b2aaf9111c51691bf) ([merge request](gitlab-org/gitlab!114859))
- [Fix Debian tarball extensions](gitlab-org/gitlab@76085ca4c0373187a1361d5ff44fa3fe85915495) by @sathieu ([merge request](gitlab-org/gitlab!113568))
- [Fix work items links for relative url instance](gitlab-org/gitlab@3126c9ff186e5329fc924834c4ef9701dc21c07f) ([merge request](gitlab-org/gitlab!114838))
- [Fix webhook failure callout sticky from some pages](gitlab-org/gitlab@48120a1e34ed283eed7cfb2d6ded549f764114b1) ([merge request](gitlab-org/gitlab!114828))
- [Hide bulk deletion UI of container tags for users without permission](gitlab-org/gitlab@c83b9c3157d2355a663607041cd9aec3a81f8c28) ([merge request](gitlab-org/gitlab!113647))
- [Fix alignment of diff system note icons](gitlab-org/gitlab@b8f526d9f59c33bc7f273e942ea25e81ad011692) ([merge request](gitlab-org/gitlab!114331))
- [Check license for package metadata sync](gitlab-org/gitlab@2871888c5f5ed9c17cbd098e59a5f1cc724b5c9b) ([merge request](gitlab-org/gitlab!114761)) **GitLab Enterprise Edition**
- [Rebuild MR report approval rules on group access changes](gitlab-org/gitlab@980de57a4c59415176ec43b2167d6130cad80a72) ([merge request](gitlab-org/gitlab!114113))
- [Render broadcast messages preview in markdown](gitlab-org/gitlab@c9b98a07545d80d3df29208753ee358531bbde3f) ([merge request](gitlab-org/gitlab!114156))
- [Expire Etag cache for Environemnt when deployment approved](gitlab-org/gitlab@ed1289d6cf2e39d1e7db4a4cc1b7fa4968d8ff06) ([merge request](gitlab-org/gitlab!114692))
- [Fix no author shown when changing state of vulnerability](gitlab-org/gitlab@a17ef3d821dd6154d98ba3307a16e29142af7529) ([merge request](gitlab-org/gitlab!114569)) **GitLab Enterprise Edition**
- [Rebuild MR report approval rules on project access changes](gitlab-org/gitlab@5a0b538a83751e6dee33c365c8a2d3fe5f47fbbd) ([merge request](gitlab-org/gitlab!113681)) **GitLab Enterprise Edition**
- [Require disable_ddl_transaction on bbm finalization](gitlab-org/gitlab@b9614c8b4f21582e25d051e77edaa1b2021e867c) ([merge request](gitlab-org/gitlab!114558))
- [Fix border radius on merge request filter](gitlab-org/gitlab@ef1f0ffc9361bf2b87df5d381d4f0c258e4d977f) ([merge request](gitlab-org/gitlab!114630))
- [Run override UUID logic for the added and fixed findings](gitlab-org/gitlab@ec4259ed27bdaec6ea492be8c121687ffd456271) ([merge request](gitlab-org/gitlab!114268)) **GitLab Enterprise Edition**
- [Fix bug causing only the last schedule type policy to run](gitlab-org/gitlab@241aa890f7a2e2e2c613035ddadd23622dd01415) ([merge request](gitlab-org/gitlab!114021)) **GitLab Enterprise Edition**
- [Exclude archived projects from total and starred counts](gitlab-org/gitlab@66389b73845a709c0a3b02340e88993848a04536) ([merge request](gitlab-org/gitlab!113874))
- [Fix TypeError for empty blob.path](gitlab-org/gitlab@d5a51efd9a765269f4cc552f7687b94ea53d53c2) ([merge request](gitlab-org/gitlab!114260)) **GitLab Enterprise Edition**
- [Support Maven artifact classifiers when checking for duplicates](gitlab-org/gitlab@b25ca1846a76e4291f10b07d35906b89f983eb41) ([merge request](gitlab-org/gitlab!113810))
- [Add support for OCI image indexes in Dependency Proxy](gitlab-org/gitlab@5e68b666039cd71e862db80c7010fe52a4ea7dff) ([merge request](gitlab-org/gitlab!114575))
- [Enforce regex in security orchestration schema](gitlab-org/gitlab@8507dd7a10b951e80bed7b5beb34516a30652aa5) ([merge request](gitlab-org/gitlab!114359))
- [Fix project-level VSA license check](gitlab-org/gitlab@31be7a1a4bb54314abc5d3e1413da8c94ac26521) ([merge request](gitlab-org/gitlab!114579)) **GitLab Enterprise Edition**
- [Change occurrences column type to join feedback table](gitlab-org/gitlab@c7ce049a0725cc76faadd088322ae2ad10de60e9) ([merge request](gitlab-org/gitlab!114448)) **GitLab Enterprise Edition**
- [Fix styling of add issuable form input wrapper](gitlab-org/gitlab@d1c451592a64701876a0837bd5cad9536c5fca96) ([merge request](gitlab-org/gitlab!114564))
- [Fix yaml load compatible issue](gitlab-org/gitlab@c5f13baa354995c30e257321b93b9096589bc1a7) by @chaomao ([merge request](gitlab-org/gitlab!114541))
- [Fix border radius on pending comments](gitlab-org/gitlab@ca1bf27ed8f6d504730aaee14448ffcfe862d96f) ([merge request](gitlab-org/gitlab!114525))
- [Prevent multiple package metadata sync jobs](gitlab-org/gitlab@b0669df48fcd77455cd9058b428b536537f96af8) ([merge request](gitlab-org/gitlab!113567)) **GitLab Enterprise Edition**
- [Use access exclusive lock for FKs on partitioned tables](gitlab-org/gitlab@e93811232c2c3ccfc5e1ec4495aed33e78aafe1e) ([merge request](gitlab-org/gitlab!114455))
- [Fix license approval policies to consider non-default branches](gitlab-org/gitlab@842ebd36c152bbf99371884d822f4cc1fb2e27bf) ([merge request](gitlab-org/gitlab!114459)) **GitLab Enterprise Edition**
- [Fix incorrect `has_issues` on `vulnerability_reads`](gitlab-org/gitlab@b96fc8b993d8bce13926da771b5fc1d5d47b462d) ([merge request](gitlab-org/gitlab!113447))
- [Fix Profile GPG key timeago tooltip](gitlab-org/gitlab@57d862f1ecf70b664a71540394c04a85b5c0b1ac) ([merge request](gitlab-org/gitlab!114232))
- [Improve Scan Details alignment and UI issues](gitlab-org/gitlab@d815d4703b56bad0ab85297cbc43c8dfe4d3c622) ([merge request](gitlab-org/gitlab!113948)) **GitLab Enterprise Edition**
- [Fix finding details header](gitlab-org/gitlab@5b00186806c227e8a4bf1cbf28e1225e08c8b857) by @jschafer-gitlab ([merge request](gitlab-org/gitlab!111599)) **GitLab Enterprise Edition**
- [Fix gitlab cleanup tags service default status](gitlab-org/gitlab@7752ce906a79ee41eaf7b04fd9085491704d9482) ([merge request](gitlab-org/gitlab!114267))
- [Fix artifacts:public accessiblity parameter](gitlab-org/gitlab@2d6dedd05fda6abb1689edcb06c25e97b9442392) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109860))
- [Reduce the chances of deadlocks for builds migrations](gitlab-org/gitlab@e6823cb8b5352d650c9a49bf5547a8428fc82608) ([merge request](gitlab-org/gitlab!114220))
- [Fix 500 error for Instance level SCIM identities](gitlab-org/gitlab@7ed317804a7edff9f3e4e2d14ed073c36171d2ad) ([merge request](gitlab-org/gitlab!112875)) **GitLab Enterprise Edition**
- [Fix spacing on summary comment tabs](gitlab-org/gitlab@596941266425844083c184657e60dfad4ad616b3) ([merge request](gitlab-org/gitlab!114180))
- [Fix double focus outline in content editor](gitlab-org/gitlab@bc8dcb639fcfef14f337c5c964430d3446857d00) ([merge request](gitlab-org/gitlab!114126))
- [Fix markdown anchor icon in dark mode](gitlab-org/gitlab@b182ceaa64ded902157d98a77cdb732d06c80033) ([merge request](gitlab-org/gitlab!112139))
- [Handle InvalidForeignKey errors when indexing deleted projects](gitlab-org/gitlab@ba1e70d6bd39c23e40e4d5fd602c2a0c4012ff93) ([merge request](gitlab-org/gitlab!114163)) **GitLab Enterprise Edition**
- [Seperate out jobs count query](gitlab-org/gitlab@86471860ba2759b50c323b2b8d07b5a56909a070) ([merge request](gitlab-org/gitlab!114161))
- [Fix bug where adding other approver type is added](gitlab-org/gitlab@cd359efce15a446883c64a5c6265e553897b3999) ([merge request](gitlab-org/gitlab!113768)) **GitLab Enterprise Edition**
- [Fix namespace null bug](gitlab-org/gitlab@dfcbc574cd6e1f11df941e7462a3a7f3850b11b4) ([merge request](gitlab-org/gitlab!114125))
- [Fix border radius on collapsed replies in diffs](gitlab-org/gitlab@c22c44d983203a9d8d5c54ef0f005af09245c91c) ([merge request](gitlab-org/gitlab!114037))
- [Don't show checklist item dropdown within tables](gitlab-org/gitlab@ccdd91c94b9ee0734ea653b2574c94e63dde7028) ([merge request](gitlab-org/gitlab!112932))
- [Label dropdown: fix color swatches :focus](gitlab-org/gitlab@5573f8fbf7618891eccb930550ac308847f3cc24) ([merge request](gitlab-org/gitlab!114096))
- [Fix dollar replacements in sprintf](gitlab-org/gitlab@937688a1153ff8d902da09efb33be3f53374c491) ([merge request](gitlab-org/gitlab!113721))
- [Modifies contribution analytics GraphQL query to be recursive](gitlab-org/gitlab@a42ceafc88c0487e7ea21e570fe1bc62ef27f175) ([merge request](gitlab-org/gitlab!112723)) **GitLab Enterprise Edition**
- [Removed debounce from issues query](gitlab-org/gitlab@8d184143591da526af6609caf663cc0ec98a4327) ([merge request](gitlab-org/gitlab!113987))
- [Fixed root_ancestor inside transaction](gitlab-org/gitlab@5b7da93fe7155eb57b7c811a8adefd25e1d66e71) ([merge request](gitlab-org/gitlab!113330))
- [Avoid 404 on empty Debian component file](gitlab-org/gitlab@ae7ab175a71eafd035288afbad694bb8d5bc4ed5) by @sathieu ([merge request](gitlab-org/gitlab!109470))
- [Standardize related items counters](gitlab-org/gitlab@4e5d51db45e2e3f133a655df75ac757f4e57be7d) ([merge request](gitlab-org/gitlab!113897))
- [Add `order_by: 'similarity'` to invite group API request](gitlab-org/gitlab@4525c0069312a02b401c12bb989c7cfa820193e8) ([merge request](gitlab-org/gitlab!113293))
- [Fix N+1 for search notes](gitlab-org/gitlab@77559205a244972570df605148b88eabc10cce3c) ([merge request](gitlab-org/gitlab!113770)) **GitLab Enterprise Edition**
- [Fix task widget border radius](gitlab-org/gitlab@2b28db74bac16da879d4d79e6074cdf39e89d1cf) ([merge request](gitlab-org/gitlab!113895))
- [Process packages with not all details](gitlab-org/gitlab@b55e19e433b324a4a88b2e5265d9782bbf01e14d) ([merge request](gitlab-org/gitlab!113887)) **GitLab Enterprise Edition**
- [Fix whitespace after author name in note header](gitlab-org/gitlab@4da416a618279f01d2e6f9297479e954ca4c0720) ([merge request](gitlab-org/gitlab!113938))
- [Disallow terraform state management if config is disabled](gitlab-org/gitlab@343eba47db6cde95b6c9144b61670c2f3760f828) ([merge request](gitlab-org/gitlab!113049))
- [Fix(Subscription Sync): hide button legacy/offline](gitlab-org/gitlab@966a4c70b96145669e7ca7145c62a6579665054a) ([merge request](gitlab-org/gitlab!113957)) **GitLab Enterprise Edition**
- [Remove non-user links from todos](gitlab-org/gitlab@1cc41e07e5d26f24afcc60a1962b6bc1dc48028d) ([merge request](gitlab-org/gitlab!112939))
- [Adds display for errors in Jupyter Notebooks](gitlab-org/gitlab@532473c7b3b7d03d5b33747554aadb50b94239c4) ([merge request](gitlab-org/gitlab!113370))
- [Require reCAPTCHA for trial registrations](gitlab-org/gitlab@bbe89ae44cbe3d9e15abd86d904812822b876341) ([merge request](gitlab-org/gitlab!113176)) **GitLab Enterprise Edition**
- [This MR adds handling yaml parsing errors](gitlab-org/gitlab@c57338e2f01f55c1fda7b5e1478cec80ec623537) ([merge request](gitlab-org/gitlab!113601)) **GitLab Enterprise Edition**
- [Prevent validating an invalid promo code once invalid](gitlab-org/gitlab@c00ce608167c2d23226c9e171f71b7c5646934b2) ([merge request](gitlab-org/gitlab!113457)) **GitLab Enterprise Edition**
- [Fix UI consistencies in bulk update sidebar](gitlab-org/gitlab@7b218f23a60c15d254107d1337967f1f7c81befa) ([merge request](gitlab-org/gitlab!113889))
- [Fix unintended changes in db dictionary after db:migrate](gitlab-org/gitlab@aa6bcc8a3adabe183cc44d28f9bde5ea22ea3b97) ([merge request](gitlab-org/gitlab!113672))
- [Fix icon and textfield in incident timeline](gitlab-org/gitlab@01aa74b37242dadf7127cc9878daf73233ab37e4) by @Mughees_ ([merge request](gitlab-org/gitlab!112392))
- [Do not include hidden issues in the ES result](gitlab-org/gitlab@530f344babdeb5109ffd02c6bce8948f9e646836) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113494)) **GitLab Enterprise Edition**
- [Restore style after leaving fullscreen / zen mode](gitlab-org/gitlab@140bdc04f985592033b6fea4f7d3a50e048e5464) by @winniehell ([merge request](gitlab-org/gitlab!112267))
- [Splat attributes in update_issue call](gitlab-org/gitlab@bf3725c67f16305bc18f68a0a4dbd108f11d8f4f) ([merge request](gitlab-org/gitlab!113851))
- [Remove special handling of trace in DestroyBatchService](gitlab-org/gitlab@eaa549fe67c3457f807d834a7d5a407504d0a4c6) ([merge request](gitlab-org/gitlab!112778))
- [Fixes the border-radius of the tasks widget](gitlab-org/gitlab@68289301c9baa86cc91b37577810bb1675cb7900) ([merge request](gitlab-org/gitlab!113344))
- [Fix finding details header](gitlab-org/gitlab@24425d75dd2c31355b2b4d3ff522cce8340dd8a9) ([merge request](gitlab-org/gitlab!111233)) **GitLab Enterprise Edition**
- [Add guards for issue instance proxy](gitlab-org/gitlab@f61e22af4b45399d373ca364ffda30e7dcc40c1b) ([merge request](gitlab-org/gitlab!113832)) **GitLab Enterprise Edition**
- [Fix typo in Terraform template docs example](gitlab-org/gitlab@eaddd1f8379ed87b3f1a4a2a57e7e4ed8bc23ff9) by @artpropp ([merge request](gitlab-org/gitlab!113678))
- [Fix ignored task that falls between HTML comments](gitlab-org/gitlab@42d6bb4fd632b85767b09d9e42e2978519d2b709) ([merge request](gitlab-org/gitlab!113796))
- [Use proxy base url for http_url_to_repo](gitlab-org/gitlab@b1f76a6bdc298bbe1048db5d9ce183576c813c9c) ([merge request](gitlab-org/gitlab!108790)) **GitLab Enterprise Edition**
- [Fix foreign_key_exists? migration helper](gitlab-org/gitlab@50a0a1c1080bc8aa69a386b15aef06b3eb53398d) ([merge request](gitlab-org/gitlab!113797))
- [Increases size limit for Jupyter Notebook diffs](gitlab-org/gitlab@d98621da92093f54b6e02ee9efa016cd41b62265) ([merge request](gitlab-org/gitlab!107924))
- [Do not parse git-notes commits during git access checks](gitlab-org/gitlab@65f0c6e59121b62c9b0f89b810ef5186969bb4d2) ([merge request](gitlab-org/gitlab!113782))
- [Fix alignment of participants in issuable sidebar](gitlab-org/gitlab@dbec012fb3015347490999cdbeb6cb7941c27a2f) ([merge request](gitlab-org/gitlab!113781))
- [Fix contribution calendar not respecting "First day of the week"](gitlab-org/gitlab@ffca1b332fa64101b95c2f2e4258f56f5b2925a5) ([merge request](gitlab-org/gitlab!113747))
- [Fix unselectable group webhooks](gitlab-org/gitlab@4eeebd8e770c55a3906732f2f6c905d0c846fdfc) ([merge request](gitlab-org/gitlab!113204)) **GitLab Enterprise Edition**
- [Fix timeout error while deleting approval rules from scan result policy](gitlab-org/gitlab@6921a8ea9ca43e2b2cec06267871435c5860ca5d) ([merge request](gitlab-org/gitlab!113699)) **GitLab Enterprise Edition**
- [Ensure corpus management has active nav](gitlab-org/gitlab@dd995998ae1b511eef8537f9753f53d206ee49b0) ([merge request](gitlab-org/gitlab!113696)) **GitLab Enterprise Edition**
- [Resolve vulnerabilities for each scanner found in the scan report](gitlab-org/gitlab@d502c94afcffd6a526226e732202fb92f98ac167) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112868)) **GitLab Enterprise Edition**
- [Fix notebook viewer switching](gitlab-org/gitlab@4b9dfb025996f1f4a7c59fc61c23f2e4897c0a6d) ([merge request](gitlab-org/gitlab!113514))
- [Reset subscription max_seats_used on trial upgrade](gitlab-org/gitlab@2fd999d411e1c1cb462bc3fa3a0a659908286c66) ([merge request](gitlab-org/gitlab!113082)) **GitLab Enterprise Edition**
- [Issuables author :focus fix](gitlab-org/gitlab@06a350d0ed661f25271c8e7d2446e5416c28f3ba) ([merge request](gitlab-org/gitlab!113539))
- [Use min and max date to prevent setting end dates before start dates](gitlab-org/gitlab@2b45a53b9e82ea1dc7a8809eabb05e29271ef049) ([merge request](gitlab-org/gitlab!113216)) **GitLab Enterprise Edition**
- [Fixing tests for single-db-two-connection](gitlab-org/gitlab@82407fb6b5a2267714301165514a09e9ab05c244) ([merge request](gitlab-org/gitlab!113515))
- [Hide scan details when no report summary scans are available](gitlab-org/gitlab@c86e93d4a42494627eafcea7ad2c121196d2975e) ([merge request](gitlab-org/gitlab!113228)) **GitLab Enterprise Edition**
- [Fix comment links on work items](gitlab-org/gitlab@3255cf6d3779f1065d7eeaf178b04fd1c0c09c7d) ([merge request](gitlab-org/gitlab!113639))
- [Allow blank scope for aggregations endpoint](gitlab-org/gitlab@ec2a4840f7e0c705aed25750283a140e6f4e5767) ([merge request](gitlab-org/gitlab!112244)) **GitLab Enterprise Edition**
- [Provide default path for protected environments](gitlab-org/gitlab@dbee763d4efe2482f592736b5ebb8056e0bebfea) ([merge request](gitlab-org/gitlab!113418))
- [Fix inconsistent behaviour in design comments](gitlab-org/gitlab@e0b9ec446f8d43cfce43670af7f27818f2812a51) ([merge request](gitlab-org/gitlab!111449))
- [Fix :focus on participants](gitlab-org/gitlab@7c129365aee68c72c62313b81971100b2060f56b) ([merge request](gitlab-org/gitlab!113408))
- [Fix protected environment user list title](gitlab-org/gitlab@c9e0a5707ccf968e51a57aeb21069cf388b16a57) ([merge request](gitlab-org/gitlab!113380))
- [Add a boolean field hidden in the Issue ES mapping](gitlab-org/gitlab@69ad7c08ba0788b54863c93a5a412af571c06305) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111678)) **GitLab Enterprise Edition**
- [Breadcrumb: fix :focus](gitlab-org/gitlab@200f07d6668c09469b12f477cb4380384ad0ffda) ([merge request](gitlab-org/gitlab!113098))
- [Fix ArgumentError, use default sort by name](gitlab-org/gitlab@ac49ce700bc3fdce907b8980282d95c744a35e41) ([merge request](gitlab-org/gitlab!113378))
- [Draft: Use epicsCount from metadata instead of from the list](gitlab-org/gitlab@1fb5e0d31e0fa50579dc4fd130a4b832684ef344) ([merge request](gitlab-org/gitlab!113373)) **GitLab Enterprise Edition**
- [Fix regex for destination namespace path](gitlab-org/gitlab@21311716728f4ed8f8b8ea41063b105c0758aa84) ([merge request](gitlab-org/gitlab!113132))
- [Allow searching by full path](gitlab-org/gitlab@456fa1e371f3588f83dd14957f427a24e66d07d9) ([merge request](gitlab-org/gitlab!113329))
- [Enable Geo::RepositoryRegistrySyncWorker on Geo secondary site](gitlab-org/gitlab@389879b0a221d3db14378268fd765a5b02f3451d) ([merge request](gitlab-org/gitlab!113320)) **GitLab Enterprise Edition**
- [Guard against dropped columns when finalizing user details migration](gitlab-org/gitlab@51dfc1e497fc3b04cd8c2c0adaab2e4699ac4ad9) ([merge request](gitlab-org/gitlab!113253))
- [Replace old image with SVG for empty MR state](gitlab-org/gitlab@1bc2362c4805dc70cefb887e143c17a8ab85a3b0) ([merge request](gitlab-org/gitlab!112318))
- [Fix ArgumentError for Integrations::Campfire](gitlab-org/gitlab@ffcc50578836e2880c8592d29f0ad7b3eee2f2f5) ([merge request](gitlab-org/gitlab!113212))
- [Open vulnerability history comment editor on focus](gitlab-org/gitlab@76df2f43add8047545f47a18ceda6b0f765eba52) ([merge request](gitlab-org/gitlab!113072)) **GitLab Enterprise Edition**
- [Work item: fix title :focus](gitlab-org/gitlab@3bf8356b9695c953f2857677ead27decd9636b07) ([merge request](gitlab-org/gitlab!113095))
- [Change order of CSS imports to fix search icon UI](gitlab-org/gitlab@5bdbaa5c468463c0638ef4fe31ff08a90c537d9e) ([merge request](gitlab-org/gitlab!113194))
- [Update yml validation to be more clear](gitlab-org/gitlab@b2763e64c0037edf08dc4dd03ba47ffe74a73ade) ([merge request](gitlab-org/gitlab!111881))
- [Add response caching for aggregations](gitlab-org/gitlab@72caba131067d7df984ca12d92bb1000101efc15) ([merge request](gitlab-org/gitlab!112706)) **GitLab Enterprise Edition**
- [Fix null exception for approvals_before_merge](gitlab-org/gitlab@8f7c68496d2d5da15a6b253855e8702bffe0d9e3) ([merge request](gitlab-org/gitlab!113099)) **GitLab Enterprise Edition**
- [Fix edge case when parent set to nil](gitlab-org/gitlab@4f7914c3e1f3a2194b9cdcd3487dc1e95dd6b6f1) ([merge request](gitlab-org/gitlab!112645))
- [Avoid overwriting runner cached values on job API calls](gitlab-org/gitlab@68da8799276d73c9cc10b20a47cd1434e9b998ae) ([merge request](gitlab-org/gitlab!112536))
- [Include memberships from groups shares in preloader](gitlab-org/gitlab@a9ffd16043499c9554913e5b6f3409e4dfee92a7) ([merge request](gitlab-org/gitlab!113056))
- [Fix merge checks group name fetching issue](gitlab-org/gitlab@7700ac952b0cbd95d82d0a8bf26a6f825a6f89d1) ([merge request](gitlab-org/gitlab!112422)) **GitLab Enterprise Edition**
- [Deduplicate Group & Project destroy workers](gitlab-org/gitlab@d245d48891ab30b278a96c0961a6413c68796591) ([merge request](gitlab-org/gitlab!112893))
- [Fix note edited i18n issue](gitlab-org/gitlab@58ab6de6629f3369e9a3e2f575ab219b173aca11) ([merge request](gitlab-org/gitlab!112531))
- [Remove spy on component methods](gitlab-org/gitlab@6c7f27865be2e7b5407dc600b9a48396fb0b911a) ([merge request](gitlab-org/gitlab!111797))
- [Fix object deletion not working with Azure Blob Storage](gitlab-org/gitlab@ac69bd032358e92efba900895e38b822a40046c7) ([merge request](gitlab-org/gitlab!113032))
- [[383842] GitHub importer: fix note attachments](gitlab-org/gitlab@da04b3927f864ad677052f8700050a6109780071) ([merge request](gitlab-org/gitlab!112713))
- [Fix typo in the error message rendering](gitlab-org/gitlab@62f73a4e4b7f4d3119516a1af99d09991b10b110) ([merge request](gitlab-org/gitlab!113027))
- [Update createBranch path with a new value](gitlab-org/gitlab@fc8dbf157685dab5c36c42ed906090ebe1a9ed8d) ([merge request](gitlab-org/gitlab!113025))
- [Fix helpPagePath for import table](gitlab-org/gitlab@7ed9160feebed3662129ff9b01d9fe2050c4a247) by @Taucher2003 ([merge request](gitlab-org/gitlab!112996))
- [Sync pipeline commit message for Jira keys](gitlab-org/gitlab@26228941d03e9b1d1a43b88b2992579c2a2b4434) ([merge request](gitlab-org/gitlab!112898))
- [Modify creating resource access token to create email with random part](gitlab-org/gitlab@ecf3e4800f98f87c35d56ee8b0bc20b4281c4495) ([merge request](gitlab-org/gitlab!112548))
- [Fix NotNullViolation in issues API](gitlab-org/gitlab@44b9f247b00f785f30c2cef4adbef1e8dafb2d0f) ([merge request](gitlab-org/gitlab!112795))
- [Add word-break to generic-sec-report tables](gitlab-org/gitlab@63be8ea6ae08f7c27a9da510042b84196e9084db) ([merge request](gitlab-org/gitlab!112687)) **GitLab Enterprise Edition**
- [Restore original tooltip after copying](gitlab-org/gitlab@f4ed9d872f9fc4355025f4cc4f94b1eebfb2d5e3) ([merge request](gitlab-org/gitlab!112912))
- [Fix #retry_lock overriding .current_scope](gitlab-org/gitlab@afeb2c65b825414ca9d4464a2742f9c52b098302) ([merge request](gitlab-org/gitlab!112640))
- [Removing FF deduplicate_archive_traces_cron_worker](gitlab-org/gitlab@4b8a6cecb01b9340ec5e188350b6061581c63347) ([merge request](gitlab-org/gitlab!112871))
- [Fix page navigation alignment on dependencies / licenses pages](gitlab-org/gitlab@4b378bb3841d3fbf0c3d78b2e255df31751fbfca) ([merge request](gitlab-org/gitlab!112825)) **GitLab Enterprise Edition**
- [Fix invalid return when malformed data](gitlab-org/gitlab@259c5fba7ee5d206ea12ccee6ddef44d58eddbbc) ([merge request](gitlab-org/gitlab!112747)) **GitLab Enterprise Edition**
- [Fixes logic for when we reset subscription seats](gitlab-org/gitlab@493cecdf2a42298fc04118f7f75d9047b3c2b79d) ([merge request](gitlab-org/gitlab!110768)) **GitLab Enterprise Edition**
- [Fix date parsing issue on firefox for datetime on bcast msg](gitlab-org/gitlab@06529393e43d919f36fcfecd3648ba005b59b642) ([merge request](gitlab-org/gitlab!112595))
- [Fix Code Quality text contrast](gitlab-org/gitlab@8b18ec25fedbd3d1cb9caf51210741cc9e935233) ([merge request](gitlab-org/gitlab!112583))
- [Abstract count from query](gitlab-org/gitlab@66c6cfee340480f15c115048b6fb3381f4c393bc) ([merge request](gitlab-org/gitlab!112078))
- [Don't allow nil value for allow_force_push](gitlab-org/gitlab@aa237b627660081673bd6bb92906f24ab9eaebe6) ([merge request](gitlab-org/gitlab!112704))
- [Fix dependency check in license approval policies](gitlab-org/gitlab@433ee68129c8467fc8ded1b76323a4282939bae7) ([merge request](gitlab-org/gitlab!112110)) **GitLab Enterprise Edition**
- [GitLab Direct Transfer - update invalid source GitLab URL error message](gitlab-org/gitlab@0c7195bec036291f18b15f30cf45df1af8820f74) ([merge request](gitlab-org/gitlab!112692))
- [Remove valid? check when rendering link](gitlab-org/gitlab@de6c18c2fed8fea1d7088f7a4442fd8f5a785c4b) ([merge request](gitlab-org/gitlab!112685))
- [Hide `Infra::Google Cloud` menu if Google OAuth2 disabled](gitlab-org/gitlab@be2798c8bc12c83a0f8068b7a3bae5f6b531b215) ([merge request](gitlab-org/gitlab!112439))
- [Fix epic roadmap focus states](gitlab-org/gitlab@17e9ed88cd119b5afea0a5b0fb089467edda24e1) ([merge request](gitlab-org/gitlab!112582)) **GitLab Enterprise Edition**
- [Fix imported project labels having a group_id](gitlab-org/gitlab@2a406b3cc8484438866cacffc84281259fe5a546) ([merge request](gitlab-org/gitlab!112654))
- [Remove html comment from text/plain variant "new_review_email"](gitlab-org/gitlab@e6a6b782ff22a32d17c293fac898891d19343cf9) by @xdavidwu ([merge request](gitlab-org/gitlab!112514))
- [Use spec_helper where required](gitlab-org/gitlab@ec93781823d951bd38ae2d4535570b13b09b9f6a) ([merge request](gitlab-org/gitlab!112438))
- [Fix 500 error for calls without JWT token to Git http](gitlab-org/gitlab@2d57824c6da2cd302861299568536a4325b908e4) ([merge request](gitlab-org/gitlab!112156))
- [Fix caching headers, drop HTTP/1.0 support](gitlab-org/gitlab@7cd40d69098bad729050a6ee36731ac04843892a) ([merge request](gitlab-org/gitlab!112304))
- [Hide merged date sort option for open/closed MRs page](gitlab-org/gitlab@0a070e3ab76a279faf6b873fc7b40f89559444a0) ([merge request](gitlab-org/gitlab!112421))
- [Fix months dropdown for the usage quotas feature](gitlab-org/gitlab@da16f305fa1dd66a2a7071bceb08731ed2fb5b2d) ([merge request](gitlab-org/gitlab!112103)) **GitLab Enterprise Edition**
- [Updates dashboard design closer to designs and fixes navigation bug](gitlab-org/gitlab@76be40da0f0d46de7a4ef8b4481335091fa4c069) ([merge request](gitlab-org/gitlab!111951))
- [Add `services:variables` to CI schema](gitlab-org/gitlab@ef6c2233009e8c54abd2ae330330f4ab3717c181) ([merge request](gitlab-org/gitlab!112025))
- [Allow pipeline schedule owner to call take_ownership API](gitlab-org/gitlab@eca4945e9f1b5c0d563cb05b345d2ce18c3b3392) ([merge request](gitlab-org/gitlab!100132))
- [Use declarative enum on external issue link type](gitlab-org/gitlab@685d56db94a8d6af81c77c32603a34a5f3a34b6a) by @przbadu ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111998)) **GitLab Enterprise Edition**
- [Fix S3 backups not working on FIPS systems](gitlab-org/gitlab@40f64c7de8bbef65ea8af7736ecaa1e8972431f4) ([merge request](gitlab-org/gitlab!111609))
- [Handle rendering errors from reStructuredText](gitlab-org/gitlab@fc8d246c1a4621fe3c55bf6e97c76725e359d627) ([merge request](gitlab-org/gitlab!112157))
- [Fix cascading attr ability to set value back to same as ancestor](gitlab-org/gitlab@6bd4a6e3a4809210d9b7a181c049972fd5a5241c) ([merge request](gitlab-org/gitlab!111470))
- [Fix OAuth application creation through API](gitlab-org/gitlab@457ebd0ceb411446a1c266bad28b3f50a63a3849) ([merge request](gitlab-org/gitlab!110448))
### Changed (249 changes)
- [Add polling for pending external status checks](gitlab-org/gitlab@3bde482a2c4ba9f4ca3d4e60afa87c8bd48b790a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111763)) **GitLab Enterprise Edition**
- [Add ops feature flag to stop pruning old events](gitlab-org/gitlab@7439b00a55c32128e34137da5719323bd4e40c9e) ([merge request](gitlab-org/gitlab!115100))
- [This MR changes variant of alert](gitlab-org/gitlab@e8f68baf143f1e1c7ae8ab170e924b8d228d424f) ([merge request](gitlab-org/gitlab!114972)) **GitLab Enterprise Edition**
- [Allow public runner releases to be disabled](gitlab-org/gitlab@4ec972657d36da3b79a01d20c70397097adac6f6) ([merge request](gitlab-org/gitlab!114041))
- [Enhance Security & Compliance Error Handlings](gitlab-org/gitlab@08bcbd98df9dc4466c65365a1eb80d2b345e716a) ([merge request](gitlab-org/gitlab!112193)) **GitLab Enterprise Edition**
- [Improve help text for compliance framework configuration UI](gitlab-org/gitlab@4f71806e2d2a537d2bc1afa8e3aca0f2f8ce4c5d) ([merge request](gitlab-org/gitlab!114560)) **GitLab Enterprise Edition**
- [Run Gemnasium on file matches in all directories](gitlab-org/gitlab@80cc27be8ae1e85e61d8aa819539761d8efc0068) ([merge request](gitlab-org/gitlab!112375))
- [Adds repository sorting by total storage size](gitlab-org/gitlab@0b00b2c39c223205545623e270e233ce3d4eec54) ([merge request](gitlab-org/gitlab!111211)) **GitLab Enterprise Edition**
- [Add default owner for CODEOWNERS section](gitlab-org/gitlab@bcb45639aa1c1a95024191f4e1a36494eaacafdf) ([merge request](gitlab-org/gitlab!113594)) **GitLab Enterprise Edition**
- [Remove 'redis_key' from known_events](gitlab-org/gitlab@9d3be41b3fef3a2fe3e1ddc3c70686cff2e08623) ([merge request](gitlab-org/gitlab!110952))
- [Fix spec violations in dashboard_spec.js](gitlab-org/gitlab@413d4ac36d1592d3dfb4ef57af9566b5b631782a) ([merge request](gitlab-org/gitlab!114750)) **GitLab Enterprise Edition**
- [Add column chart visualization](gitlab-org/gitlab@033f6d839b0efb56b3ffb95a43efe366203927fd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113790)) **GitLab Enterprise Edition**
- [Fixed spec violations in table_spec.js](gitlab-org/gitlab@9fabfec334c4986c8787c57a5ba1aaed7704dcb2) ([merge request](gitlab-org/gitlab!114925)) **GitLab Enterprise Edition**
- [Application settings: Remove container limited class](gitlab-org/gitlab@0e367b12e4636596f065f4ecdf65c626b0414749) ([merge request](gitlab-org/gitlab!114920))
- [Related merge requests: Enhance styling](gitlab-org/gitlab@27bb38a547f4105314de817b22d7d2c4539d5b03) ([merge request](gitlab-org/gitlab!114720))
- [Highlight possibility of conflict between branch names settings](gitlab-org/gitlab@27929e2495d4def8d559c1d03d765cfb828943bc) ([merge request](gitlab-org/gitlab!114150))
- [Unbox work items](gitlab-org/gitlab@cdc46d6435d88062373e1bef487d348792d6301d) ([merge request](gitlab-org/gitlab!113838))
- [Add complexity and gitaly flag against suggest_approvers field](gitlab-org/gitlab@24fa748a8ffb7890ae850b2b7035c4a597f818dd) ([merge request](gitlab-org/gitlab!114844)) **GitLab Enterprise Edition**
- [Changed source of current source data](gitlab-org/gitlab@9daf1229d5e0d6bf7e217eb6fcca13245b1e1d14) ([merge request](gitlab-org/gitlab!114258))
- [Use linear ancestors_upto namespace queries](gitlab-org/gitlab@f5c01b50a349e33d59cc98e0fc9efa94dae5ad55) ([merge request](gitlab-org/gitlab!104028))
- [Use linear queries for namespace roots](gitlab-org/gitlab@1042fa96907d923bebeaf90aa2088752659a5c2c) ([merge request](gitlab-org/gitlab!104025))
- [This MR replaces profiles input fields](gitlab-org/gitlab@b80aa8b79edc362731c575f8af0e2cdff5857e09) ([merge request](gitlab-org/gitlab!113915)) **GitLab Enterprise Edition**
- [Added ability to hide issues in default dropdown](gitlab-org/gitlab@577c690e755406e7ed006b2bd0c6a5ee7dabf54f) ([merge request](gitlab-org/gitlab!114285))
- [Added response body, changed status](gitlab-org/gitlab@efe63fecc442000ca626aabdc6a1a3a8a891f06a) ([merge request](gitlab-org/gitlab!114584)) **GitLab Enterprise Edition**
- [Clean up project and group milestone pages](gitlab-org/gitlab@cd1ed8c95662c60407478fc1fee72251aab3a9ed) ([merge request](gitlab-org/gitlab!114500))
- [Add topics help text on the project settings page](gitlab-org/gitlab@767d4bab91e126868a280e2793ae0a6357cfc532) by @Cryptopone ([merge request](gitlab-org/gitlab!114239))
- [Reschedule migration for remediation](gitlab-org/gitlab@26c8c1654b13e387f3cafb1c9f877b9ee3b8d381) ([merge request](gitlab-org/gitlab!114478))
- [Removing apple_app_store_integration feature flag](gitlab-org/gitlab@85cd3857f7c1d62f2aab0f1855638e60ff6c1abe) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/114627))
- [Detail page header: remove borders](gitlab-org/gitlab@12becf4323772d1b52e555d92a6b7ecf78421ca3) ([merge request](gitlab-org/gitlab!113390))
- [Add keyset pagination to project audit events api](gitlab-org/gitlab@f148178f34c5f6db46596c077fc1329f8901d9cd) ([merge request](gitlab-org/gitlab!114526)) **GitLab Enterprise Edition**
- [Adjust tests to api admin mode](gitlab-org/gitlab@1dc400dcfda0d051c6447ff10fe9e23d93242fed) by @TrueKalix ([merge request](gitlab-org/gitlab!113946))
- [Hide upgrade billing for ramped subscriptions](gitlab-org/gitlab@e1b1338594590c4034d6acfa088095845c350185) ([merge request](gitlab-org/gitlab!112378)) **GitLab Enterprise Edition**
- [Update license scanning widget with license approval policies](gitlab-org/gitlab@076a524e805ed0d596d1bd0962f1a8b85c3bfb75) ([merge request](gitlab-org/gitlab!113635)) **GitLab Enterprise Edition**
- [Update ruby-magic to v0.6.0](gitlab-org/gitlab@bf219142e1df6b7366ecc558102081e13b3ef8b9) ([merge request](gitlab-org/gitlab!114641))
- [Unbox widgets](gitlab-org/gitlab@02cd1c9700bac68b9d60950a24bc8a4e265430e3) ([merge request](gitlab-org/gitlab!113820)) **GitLab Enterprise Edition**
- [Remove feature flag `cache_client_with_metrics`](gitlab-org/gitlab@dcc2e9408f1a85c1402dd32ae56ead41da4db4f9) ([merge request](gitlab-org/gitlab!114591))
- [Improve shared examples with status code](gitlab-org/gitlab@ff633b0d3d5cf3350211c28086e14cda62e0c017) by @TrueKalix ([merge request](gitlab-org/gitlab!113755))
- [Set DS_SCHEMA_MODEL to 15 in Container Scanning CI template](gitlab-org/gitlab@9b45eb5ec4c09dd9ccafec85ec74b88ce7005802) ([merge request](gitlab-org/gitlab!114411))
- [Make switching between editors seamless](gitlab-org/gitlab@3b891c37a6c431be72b8b267f30916cb5fd934f5) ([merge request](gitlab-org/gitlab!114146))
- [Issue: related merge request information](gitlab-org/gitlab@00ca4b40c5d2f5840ae10961ef84bdb62517bc76) ([merge request](gitlab-org/gitlab!113975))
- [Add check that the Gitlab API is supported](gitlab-org/gitlab@ad825a4ef482d2103890ab40606d7cb60a61a7d6) ([merge request](gitlab-org/gitlab!113430))
- [Removes feature flags for refresh seats worker](gitlab-org/gitlab@2080ff52355a9ce50315cb0f8a1a22c621e04900) ([merge request](gitlab-org/gitlab!112181)) **GitLab Enterprise Edition**
- [Streamline from input height](gitlab-org/gitlab@bcf94152101261d6238057007e4446444eb4762c) ([merge request](gitlab-org/gitlab!114269))
- [Issues: consolidate buttons](gitlab-org/gitlab@1a22cf4f54ce09e38e760e2a1c37d46b6fda259e) ([merge request](gitlab-org/gitlab!112798)) **GitLab Enterprise Edition**
- [Use linear self_and_hierarchy namespace queries](gitlab-org/gitlab@96cba53abc46105edbba12ece97ea53bf6bba822) ([merge request](gitlab-org/gitlab!104026))
- [Add event_types for FeatureFlag audit events](gitlab-org/gitlab@52458305de44d960714fdd87790c48e103088198) ([merge request](gitlab-org/gitlab!113453))
- [Migrate the commit filtering report to include all commits](gitlab-org/gitlab@c7c1494250b24c9cc75c26e02ebe07490d476620) ([merge request](gitlab-org/gitlab!113468)) **GitLab Enterprise Edition**
- [Replace admin group, project, and topic avatars with pajamas component](gitlab-org/gitlab@4fdb1474d2cf7a46087bb0cd841aa46a97e00399) ([merge request](gitlab-org/gitlab!114289))
- [Remove customizable_roles feature flag](gitlab-org/gitlab@40621707b9b8935142f839cdbc2f3e65583906c2) ([merge request](gitlab-org/gitlab!114524)) **GitLab Enterprise Edition**
- [Add spacing and migrate card for user usage quotas](gitlab-org/gitlab@c6be94d441961d250ccf41980f5dc55625a80c24) ([merge request](gitlab-org/gitlab!114345))
- [Remove extra padding from abuse report actions](gitlab-org/gitlab@1908ab3f063000003f91e6fb43079d92599b1b76) ([merge request](gitlab-org/gitlab!114330))
- [Change pipeline stats](gitlab-org/gitlab@5ee1be723ccb45b12cf9230ed19785a0f0e61530) ([merge request](gitlab-org/gitlab!113553)) **GitLab Enterprise Edition**
- [Remove 'transparent_sso_enforcement` feature flag](gitlab-org/gitlab@deffce400b8368826c7553d3acd0db26c53f1e2a) ([merge request](gitlab-org/gitlab!114178)) **GitLab Enterprise Edition**
- [This MR migrates Dropdown to Listbox](gitlab-org/gitlab@5850603a2f2fd846ad79081ba1878d39cacc9e8b) ([merge request](gitlab-org/gitlab!113636)) **GitLab Enterprise Edition**
- [refactor: Buton migrated to Pajamas compliant](gitlab-org/gitlab@fb22b18b33a83f3d9e1decc5f45a6f4e565e9578) by @imrishabh18 ([merge request](gitlab-org/gitlab!113962))
- [This MR migrates Dropdown to Listbox](gitlab-org/gitlab@b07c64c3344321038bf0b93e8e8d082cb26b77f6) ([merge request](gitlab-org/gitlab!114191)) **GitLab Enterprise Edition**
- [Add redis counter for manifest delete events](gitlab-org/gitlab@b51f336cd09417e88047616953e8bc373719ef32) ([merge request](gitlab-org/gitlab!113440))
- [Use project's usage_quotas instead of direct URL](gitlab-org/gitlab@a1360dbbab3ae522c9f295bb422f5ab5218154d9) ([merge request](gitlab-org/gitlab!113935)) **GitLab Enterprise Edition**
- [Updated copy on free and trial registration pages](gitlab-org/gitlab@0b2b431cef47a0929139a373b77fa20dc432105d) ([merge request](gitlab-org/gitlab!114437))
- [Legacy dropdown improvements](gitlab-org/gitlab@9c70e12a7da9f852384b8acc13987d4802f99362) ([merge request](gitlab-org/gitlab!114266))
- [Update free user limit alert copy for non-owner roles](gitlab-org/gitlab@7beb743fe022479e37feac1f6acf620930885a1d) ([merge request](gitlab-org/gitlab!114149)) **GitLab Enterprise Edition**
- [Improve revert/cherry-pick error messages](gitlab-org/gitlab@6e58e7d5976050b59eec52ca249880e55b91d34b) ([merge request](gitlab-org/gitlab!113650))
- [Fix deprecated interface for YAML.safe_load](gitlab-org/gitlab@457421f8bb26e821f85adb09a0e4ba1878fadc09) ([merge request](gitlab-org/gitlab!114389))
- [Remove tag icon in container registry](gitlab-org/gitlab@e21bb8f107675a68d5590595e88d3683aba6f277) by @parkourkarthik ([merge request](gitlab-org/gitlab!114611))
- [Update ruby-magic to v0.5.5](gitlab-org/gitlab@d9465e4ff6fbb01fb6fdc65df6de9de57ed76897) ([merge request](gitlab-org/gitlab!114368))
- [Wiki directory follow page when they have been combined](gitlab-org/gitlab@b567beeac7ffd7485a81ba0fd319c0bec2dd1f92) by @zhyhchg ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/112275))
- [refactor: Changed the card to pajamas compliant](gitlab-org/gitlab@b8b3493fa9f5d72e40dd847c2031d770a0d5face) by @imrishabh18 ([merge request](gitlab-org/gitlab!114361))
- [Migrate start and end date button on burndown chart](gitlab-org/gitlab@5c76e9033ee20c6c4d913d272d6d432826186c8e) ([merge request](gitlab-org/gitlab!114334))
- [Migrate restore group button to pajamas component](gitlab-org/gitlab@27ef4831c95f7790806b4813b817ff873cd48fe6) ([merge request](gitlab-org/gitlab!114336))
- [Reduce sub-batch size for failed Batched Background Migration Jobs](gitlab-org/gitlab@01c78d39c56f38ca415353b141f059545d6e92b3) ([merge request](gitlab-org/gitlab!109354))
- [Migrate edit merge request button to pajamas component](gitlab-org/gitlab@9860a11bef8aa7bd10babdadf04bf79af268236e) ([merge request](gitlab-org/gitlab!114326))
- [Adds triggers to Database Schema validations](gitlab-org/gitlab@bff7094f748ae396b2ec4089b277e6c8510351af) ([merge request](gitlab-org/gitlab!113317))
- [Scope issue model iid to namespace](gitlab-org/gitlab@cf34c3d019b694abc6f7bd492db2acbfa3893a33) ([merge request](gitlab-org/gitlab!112900))
- [Use small variant for pending comment badge](gitlab-org/gitlab@3023b7809562bb11fe1406f33f4a94886cfb1512) ([merge request](gitlab-org/gitlab!113909))
- [Add audit events for sharing a group membership to another group](gitlab-org/gitlab@ef4a20d2fcf4a95301da6b3d0e39f6d098b67601) ([merge request](gitlab-org/gitlab!112719)) **GitLab Enterprise Edition**
- [Removes prefixed asterisk for path filters](gitlab-org/gitlab@6c472716fa91fbd2ad1727f6939335c7937b1289) ([merge request](gitlab-org/gitlab!113949)) **GitLab Enterprise Edition**
- [Migrate projects auto devops card to pajamas](gitlab-org/gitlab@8b161c1a30a3b91a3f0fe78d00e815ba01b9f366) ([merge request](gitlab-org/gitlab!114264))
- [Delete orphaned packages dependencies](gitlab-org/gitlab@441e9ad7ad2c6e62db1770a49f7345297f9bae6f) ([merge request](gitlab-org/gitlab!113556))
- [Group overview: changes recent activity bold text to content](gitlab-org/gitlab@bf8cffd7d5dfeff420eb0704c16ccf9f6ee5eec7) ([merge request](gitlab-org/gitlab!114272)) **GitLab Enterprise Edition**
- [Migrated Read more button to Pajamas on project env page](gitlab-org/gitlab@19c336acf8566f8d6c7c4668acb35d6368c4196d) ([merge request](gitlab-org/gitlab!114273))
- [This MR replaces tooltip with popover](gitlab-org/gitlab@a99d2419f57c03a1d5d498ce60030867d1a94213) ([merge request](gitlab-org/gitlab!113739)) **GitLab Enterprise Edition**
- [Set 'send_user_confirmation_email' application](gitlab-org/gitlab@5cbe3d40ce35f622a007a70806cf5f23972d4891) ([merge request](gitlab-org/gitlab!107302))
- [Create label: add color picker](gitlab-org/gitlab@105274d21c1b203c77b1c8eac49a9e970649aecc) ([merge request](gitlab-org/gitlab!114083))
- [Update card component in Project mirror settings](gitlab-org/gitlab@7c94315bab71f26952f230719b97d41fe2b28a7e) ([merge request](gitlab-org/gitlab!114228))
- [Migrate 2fa cards to Pajamas components](gitlab-org/gitlab@91efbd094c5b1c4a3b8c04caf6f6de69a72a0514) ([merge request](gitlab-org/gitlab!114218))
- [Update cards component in project starrer page](gitlab-org/gitlab@b7d2cfd1fa8c4d64bbefd2e2dac995a996616432) ([merge request](gitlab-org/gitlab!114217))
- [Remove `dynamic_nonce` feature flag](gitlab-org/gitlab@38b6505cc91de734a97ffc249a89d9613977fb9c) ([merge request](gitlab-org/gitlab!114028))
- [Make Security Sidebar part of "Your Work"](gitlab-org/gitlab@52f8b0b787e653b9567c779d3bcec9187be31023) ([merge request](gitlab-org/gitlab!113240)) **GitLab Enterprise Edition**
- [Remove disabled_mr_discussions_redis_cache feature flag](gitlab-org/gitlab@0d5bfdbe0951a4c10c330b21f463f025030804d8) ([merge request](gitlab-org/gitlab!114200))
- [Update installation command for maven package](gitlab-org/gitlab@ea59033450dc57245dc229071ab9c76a751efec2) ([merge request](gitlab-org/gitlab!113917))
- [This MR migrates Dropdown to Listbox](gitlab-org/gitlab@30a4267314363e2601ae8e3d088c277f45ffd98a) ([merge request](gitlab-org/gitlab!113630)) **GitLab Enterprise Edition**
- [Remove enforce_max_attachment_size_upload_api feature flag](gitlab-org/gitlab@90c1d2ae2b67a45f4b71ce3a3478c24da6e3f3d1) ([merge request](gitlab-org/gitlab!112450))
- [Add hashed root namespace id mapping to Note index](gitlab-org/gitlab@78b9e54395e9851274fc8292243c5f4efe4fca8b) ([merge request](gitlab-org/gitlab!113868)) **GitLab Enterprise Edition**
- [Remove bottom border from page titles](gitlab-org/gitlab@812462eb4d69ac32a4d0a36370259d27752f0123) ([merge request](gitlab-org/gitlab!114017))
- [Added unlimited members alert to members pages](gitlab-org/gitlab@5d959f90e1d648827a79d6c4023bf3c3bb0cfb3e) ([merge request](gitlab-org/gitlab!110748)) **GitLab Enterprise Edition**
- [Timeline: tidy up system notes](gitlab-org/gitlab@4e95fa030982d24168c45829c86188b0ef520075) ([merge request](gitlab-org/gitlab!113855))
- [Migrate evidences from raw_metadata](gitlab-org/gitlab@619946e886354e2c71780dbe8cac6bfb981ae85b) ([merge request](gitlab-org/gitlab!112947))
- [Add hashed root namespace id mapping to Note index](gitlab-org/gitlab@bd7429adb1e6be9e7c55511338fc53b5eab98287) ([merge request](gitlab-org/gitlab!113860)) **GitLab Enterprise Edition**
- [Add cache for Software Licenses table](gitlab-org/gitlab@0b98697fef0fe39ec448e3455280d68393a6f5ee) ([merge request](gitlab-org/gitlab!113904)) **GitLab Enterprise Edition**
- [Fixes the alignment of the bio on the user profile page](gitlab-org/gitlab@08720cc6c77b606daa6f6a3107b575ac1a7d5863) ([merge request](gitlab-org/gitlab!113977))
- [Add cicd config button when missing yaml](gitlab-org/gitlab@27066eee704d2320af168ada0d13f2eaf41fd493) ([merge request](gitlab-org/gitlab!111517))
- [Update Slack authorization page UI](gitlab-org/gitlab@3a8f1a113230fbcd45b80dd5800fc2c3299b3d04) ([merge request](gitlab-org/gitlab!113801))
- [Remove `linear_user_manageable_groups` feature flag](gitlab-org/gitlab@779d3a1f24f93e9c928875730e6d48fbc602cad3) ([merge request](gitlab-org/gitlab!114032))
- [Remove `linear_project_ancestors` feature flag](gitlab-org/gitlab@663f2923a543be9cf9b3e99532fb0c7569e58d98) ([merge request](gitlab-org/gitlab!114030))
- [Remove use_iid_in_work_items_path feature flag from backend](gitlab-org/gitlab@c050f1dc0d169d83e4bea7df2d2008e2ec3ba1eb) ([merge request](gitlab-org/gitlab!113444))
- [Use icon button for subscribe to rss feed/calendar](gitlab-org/gitlab@8e5ccf2faf5f75ed985800d59543c1a181dea169) ([merge request](gitlab-org/gitlab!114001))
- [Add tooltip to pending badge](gitlab-org/gitlab@401c85825ad7e4325f20db6dab4103e705abd13d) ([merge request](gitlab-org/gitlab!114007))
- [Translate error messages when creating security policy projects](gitlab-org/gitlab@952efde49a7eb1919bee5b6ca338bde096a7cf46) ([merge request](gitlab-org/gitlab!113787)) **GitLab Enterprise Edition**
- [Update table header](gitlab-org/gitlab@d641e439c084e82bce8546a950b7b42efa6ead30) ([merge request](gitlab-org/gitlab!113885))
- [Update gitlab pages](gitlab-org/gitlab@07b6cd3a4ccdc8186c2ba6b8470fd3888a6cac8f) ([merge request](gitlab-org/gitlab!114002))
- [Adjust tests to api admin mode](gitlab-org/gitlab@69e45178ef5fee41604cce3581a33c0e7bbff64f) by @TrueKalix ([merge request](gitlab-org/gitlab!113826))
- [Renames fk_rails_f601258b28 FK to fk_rails_0434b48643 on events table](gitlab-org/gitlab@d29fe991ffd515922532502e4f8c5b7f39552db7) ([merge request](gitlab-org/gitlab!113438))
- [Removed CTA from Free Plan on billings page](gitlab-org/gitlab@bdac9a33430067f50fe695486eb35fe55cbb7bb6) ([merge request](gitlab-org/gitlab!113415)) **GitLab Enterprise Edition**
- [This MR adds switch mode for runner tags](gitlab-org/gitlab@cf64004cf18ad74ba435d436aae0c263f2ab2348) ([merge request](gitlab-org/gitlab!113086)) **GitLab Enterprise Edition**
- [Update css_parser gem to v1.14.0](gitlab-org/gitlab@9ffb35ca83a3457df533e192dc3269dd52fcafe3) ([merge request](gitlab-org/gitlab!113931))
- [Rename "CI / CD > Test Cases" to "CI / CD > Test cases"](gitlab-org/gitlab@1a3d3750623a747d5d791f6a86bfde9b6c8bb6e0) ([merge request](gitlab-org/gitlab!113485)) **GitLab Enterprise Edition**
- [This MR migrates Dropdown to Listbox](gitlab-org/gitlab@24d959d7719f51beed6633d47858c4acb5e54eba) ([merge request](gitlab-org/gitlab!113624)) **GitLab Enterprise Edition**
- [Keep author and timiestamp visible when editing comment](gitlab-org/gitlab@c25c8d4d8ca19dc13d47787f09f3479311b26ef6) ([merge request](gitlab-org/gitlab!113911))
- [Remove enforced_sso_expiry feature flag](gitlab-org/gitlab@d37e9435e7179611a96bb04d93771bb4240c6ebb) ([merge request](gitlab-org/gitlab!113905)) **GitLab Enterprise Edition**
- [Add breadcrumb linking to dashboard page to project#new](gitlab-org/gitlab@b65dcd51fee9a51070761d0d6e443a81cce78fe1) ([merge request](gitlab-org/gitlab!112941))
- [Add breadcrumb linking to dashboard page to group#new](gitlab-org/gitlab@72c8e172c7d92485f281bc4bf7452ec340107418) ([merge request](gitlab-org/gitlab!112941))
- [Clean up invite_members_in_side_nav experiment](gitlab-org/gitlab@e4ef7d7571f369a4c524b5cc4085f9f690c348ee) ([merge request](gitlab-org/gitlab!113766))
- [Hide access token related instructions for public pypi package](gitlab-org/gitlab@ec44df6c439950f9bacc3911e7f661846d2920d3) ([merge request](gitlab-org/gitlab!113188))
- [Add colors to user tokens on escalation view](gitlab-org/gitlab@cbbbbf72f1f76f4fce6aeae3f2dcf64b8456dc94) ([merge request](gitlab-org/gitlab!111791)) **GitLab Enterprise Edition**
- [Removes feature flag user_search_simple_query_string](gitlab-org/gitlab@5a1d758d52dea8ec993fc7e835ea4f38a136ac44) ([merge request](gitlab-org/gitlab!113809)) **GitLab Enterprise Edition**
- [Hanlde issue model to reference through the namespace](gitlab-org/gitlab@d339e1524dc723045931bcdc5018538427bedeef) ([merge request](gitlab-org/gitlab!113080))
- [Add status check id to MR status check widget](gitlab-org/gitlab@0d5a336ce989e3a2d0b21dd03f5cdf4cf63e6fc3) ([merge request](gitlab-org/gitlab!113297)) **GitLab Enterprise Edition**
- [Unconcatenate errors for personal access tokens](gitlab-org/gitlab@2477f643fe7eec796109b3ce5d2ac8d6265eac09) ([merge request](gitlab-org/gitlab!97922))
- [Database migration for new deny all app setting](gitlab-org/gitlab@a944339d941bff4e026c20d3ae088c45f550e10a) ([merge request](gitlab-org/gitlab!110599))
- [Update dependency auto-build-image to v1.30.0](gitlab-org/gitlab@0aab802dc115a6e35d94444ee0d267438122e5ad) ([merge request](gitlab-org/gitlab!113764))
- [Enable full_path_project_search feature flag by default](gitlab-org/gitlab@522c37cfcd65d609dbe8044d84cf26f03cd4405e) ([merge request](gitlab-org/gitlab!111808))
- [Expose max_seats_used_changed_at in namespace API](gitlab-org/gitlab@83601956aaf202b96b3013a2213079db1c26e88e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113183)) **GitLab Enterprise Edition**
- [Sync Security Policies only for project with updated protected branches](gitlab-org/gitlab@88ed205e9d203aa7ac710752902b3a2643b627b6) ([merge request](gitlab-org/gitlab!112954)) **GitLab Enterprise Edition**
- [Fix combine page directory case sensitivity bug](gitlab-org/gitlab@8e1493cf26d0d88dfe1f02d82eb184495dcc8e16) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111743))
- [Distinguish authentication errors in commits API](gitlab-org/gitlab@6399e0d040b528a5f10373072ea476f0427fda91) ([merge request](gitlab-org/gitlab!113707))
- [Use Gitlab.com? to check if a container has been migrated](gitlab-org/gitlab@fd33df3ecc78e19b72bf15825a9482b5cb2a0a40) ([merge request](gitlab-org/gitlab!112987))
- [User profile page header tidy](gitlab-org/gitlab@ff6c7af5175a25141ea4e37e3b48810bcd5eae08) ([merge request](gitlab-org/gitlab!112975))
- [Remove the feature flag bulk_cron_worker_auto_requeue](gitlab-org/gitlab@650678e95a84a9d7554b5c286983e4f28c72a412) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113663)) **GitLab Enterprise Edition**
- [Rename "Configuration" to "Security configuration"](gitlab-org/gitlab@c96360a3b587d6fd27b077a9652bc7cbadea4ccd) ([merge request](gitlab-org/gitlab!113497))
- [Rename "Repository > Locked Files" to "Repository > Locked files"](gitlab-org/gitlab@ea8f8dc29583c84862794225c8634e88cc7100af) ([merge request](gitlab-org/gitlab!113401))
- [Rename "Repository > Contributors" to "Contributor statistics"](gitlab-org/gitlab@9b6287ae5605ed36970c6b7106edf1338695cc8f) ([merge request](gitlab-org/gitlab!113401))
- [Support Ubuntu ddeb](gitlab-org/gitlab@e71cfffa0a0fd6ace17369b20d0a1a4447ec0c60) by @sathieu ([merge request](gitlab-org/gitlab!113620))
- [Remove integration_id column from chat_names](gitlab-org/gitlab@3774d00b01d6a73d4e10049317e5f042f80101b1) ([merge request](gitlab-org/gitlab!109197))
- [User avatar link: fix spacing](gitlab-org/gitlab@f25b5b95cc4b73ed89a9c887fa4a3d415488e779) ([merge request](gitlab-org/gitlab!113537))
- [Make catalog_resources.project_id to be unique](gitlab-org/gitlab@5004d06a3496249b771c96063027a94208441f99) ([merge request](gitlab-org/gitlab!113533))
- [Update parsing of *_DISABLED variables](gitlab-org/gitlab@0b41f4d4ac6d7dd9174f8f33e63356c3df25614e) ([merge request](gitlab-org/gitlab!111858))
- [Your Work: Environments and Operations Dashboard](gitlab-org/gitlab@f7a8b85a136db13930206e817b3d58e412303eac) ([merge request](gitlab-org/gitlab!113093)) **GitLab Enterprise Edition**
- [Change widget empty state of work items & linked issues/epics](gitlab-org/gitlab@79ea4c57209566942fcee630f1c37d9024b15ef9) ([merge request](gitlab-org/gitlab!113509))
- [Removes advanced_user_search feature flag](gitlab-org/gitlab@61fc1918de1a2402ab7b2ca58e5dd9e80c12cfd2) ([merge request](gitlab-org/gitlab!113400)) **GitLab Enterprise Edition**
- [Merged message: change alignment of revert and cherry-pick buttons](gitlab-org/gitlab@19bcfb3f1d956e8c40b45a375b272a28405e8a9f) ([merge request](gitlab-org/gitlab!113224))
- [Validates db/structure.sql changes without migrations](gitlab-org/gitlab@d244b04bb956cbc4e4ccf721202612837856d58e) ([merge request](gitlab-org/gitlab!111982))
- [Rename "Discover" to "Security capabilities"](gitlab-org/gitlab@a28c22c4dcf6e6397282b7d54682ccf3acb22fa4) ([merge request](gitlab-org/gitlab!113497)) **GitLab Enterprise Edition**
- [Prevent Ruby sessions from serializing arbitrary objects](gitlab-org/gitlab@6aff1f23e35f4981131850b82fe3c6a943a2a7dc) ([merge request](gitlab-org/gitlab!113262))
- [Update super-sidebar styles and add overlay](gitlab-org/gitlab@d72274cef7829f3b226fb6464ba03be1c9d5bcb2) ([merge request](gitlab-org/gitlab!112521))
- [This MR introduces tags parsing error handling](gitlab-org/gitlab@7ff24c69a9d7815511a5c7474980b93d1c0111bc) ([merge request](gitlab-org/gitlab!112933)) **GitLab Enterprise Edition**
- [Update merge strategy labels for Mr. Widget](gitlab-org/gitlab@10f96c4884c44a8b2739b2d854b881ac5038c620) ([merge request](gitlab-org/gitlab!112372))
- [Move follower counts on profile page](gitlab-org/gitlab@c4fcb4578d708123b3f2f3ec888aded0ca0e5746) ([merge request](gitlab-org/gitlab!112942))
- [Add check_type enum to PreScanVerificationStep](gitlab-org/gitlab@c53a8179e3e17c950632a86e012bf9c145bb6542) ([merge request](gitlab-org/gitlab!112333)) **GitLab Enterprise Edition**
- [New section to disable all 2FA](gitlab-org/gitlab@5dda801bd87f09517ff366aa749d4e9ad27e0744) ([merge request](gitlab-org/gitlab!112234))
- [Rename "Repository > Compare" to "Repository > Compare revisions"](gitlab-org/gitlab@009167fad1decdf8507c7da9693210e64d6759fc) ([merge request](gitlab-org/gitlab!113401))
- [Add link to redirect back to sign-up page](gitlab-org/gitlab@6828e95f47b1a82e177224dc5b97136550a85665) ([merge request](gitlab-org/gitlab!112744))
- [Improve visibility of SAST Analyzers banner](gitlab-org/gitlab@704029097418caa1f258e5765dce20f4bad5ad12) ([merge request](gitlab-org/gitlab!113184)) **GitLab Enterprise Edition**
- [Remove the parallel_bulk_cron_worker feature flag](gitlab-org/gitlab@27b6724efa90c750d90389eee97d859ebdc8325d) ([merge request](gitlab-org/gitlab!113359)) **GitLab Enterprise Edition**
- [Schedule async temp index on finding report types](gitlab-org/gitlab@f02b4dd2340b43afbafb97c5ac02f33dcfe32d14) ([merge request](gitlab-org/gitlab!113348))
- [Remove use_response_url_for_chat_responder FF](gitlab-org/gitlab@976d81bcce09743f3377b83c6be83bb44c63ba54) ([merge request](gitlab-org/gitlab!113231))
- [Migrate links for vulnerability findings from](gitlab-org/gitlab@cb3221ab9a035ce3f92d686d0993d245d557fb30) ([merge request](gitlab-org/gitlab!111454))
- [Suppress routing error log messages with POST `/jwt/auth` route](gitlab-org/gitlab@1e2393662827ee2528876f5280583a8e630b28ba) ([merge request](gitlab-org/gitlab!113340))
- [Standardize note edited presentation](gitlab-org/gitlab@e44c0f5057e64fdaa4b6501c268f6d8f30e12bb2) ([merge request](gitlab-org/gitlab!113245))
- [Expand invite modal buttons](gitlab-org/gitlab@78f15e8a83a96857fa24ca4a2ec78c2a06abe4a4) ([merge request](gitlab-org/gitlab!112686))
- [Send email when exporting work items as CSV](gitlab-org/gitlab@54926b26afb12e2893869cc4e1c4d1c4a7289dce) ([merge request](gitlab-org/gitlab!111974))
- [Implement partially cached MR security reports paths](gitlab-org/gitlab@aaeb6193fba3f7f2cc0bd381f38f288ec9229fdb) ([merge request](gitlab-org/gitlab!112818)) **GitLab Enterprise Edition**
- [Improve shared examples for api admin mode](gitlab-org/gitlab@d4546395709d4b2c3275b678d88f5fc7f1616c28) by @TrueKalix ([merge request](gitlab-org/gitlab!113226))
- [Use mergeRequestLinks on vulnerability details page](gitlab-org/gitlab@082aa4d8d02f1ff9e1e5c29128167975238d5855) ([merge request](gitlab-org/gitlab!112674)) **GitLab Enterprise Edition**
- [Remove the feature_flag code_basic_search_files_by_regexp](gitlab-org/gitlab@876d1b476be1bd9ed670458f4d72cf36a441fe1a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113209))
- [Drop unnecessary storing of WebAuthn credential options in session](gitlab-org/gitlab@a008298b5987e36353acb392d99b7d99a4c84a86) ([merge request](gitlab-org/gitlab!113190))
- [Updated Security Compliance SideNav text to sentence case](gitlab-org/gitlab@d60d5851dcfe596d1cac99e4feb636291ec399c8) by @parkourkarthik ([merge request](gitlab-org/gitlab!96450))
- [Fix(Subscr.): success notification + loading icon](gitlab-org/gitlab@427648afa3bb90c7c88caa82813e3d948e376ca3) ([merge request](gitlab-org/gitlab!107496)) **GitLab Enterprise Edition**
- [This MR updates tags field to be a dropdown](gitlab-org/gitlab@5686a324ee60e4ab94e1fc584beef09901f736ad) ([merge request](gitlab-org/gitlab!112588)) **GitLab Enterprise Edition**
- [Security warning when rebasing](gitlab-org/gitlab@41618ea46637759029818fc817e85d5423eec03e) ([merge request](gitlab-org/gitlab!112356))
- [Log an activity event when an agent token is revoked](gitlab-org/gitlab@1e2eb06c07f4ab37acabcc3f7b12b20769d988c5) ([merge request](gitlab-org/gitlab!113173))
- [Change default public cost factor](gitlab-org/gitlab@c78876ebdf874d183ae9af529d5bf41a65ece370) ([merge request](gitlab-org/gitlab!112730))
- [Migrate the remediation data into their own](gitlab-org/gitlab@2dbe5217920794da700ee174b1c326ce481f1148) ([merge request](gitlab-org/gitlab!109397))
- [Streamline appearance of widgets](gitlab-org/gitlab@089bb53d72c4efb7a3e6556850437f4de37d8546) ([merge request](gitlab-org/gitlab!112568))
- [Add styles for line sticky headers](gitlab-org/gitlab@52c536f707b12c2ec67f6f28d4f7c46d9ddb16d8) ([merge request](gitlab-org/gitlab!112503)) **GitLab Enterprise Edition**
- [Change private method default values](gitlab-org/gitlab@8f5e373bf1c717edcf5c628149202d48f0e09220) ([merge request](gitlab-org/gitlab!113107)) **GitLab Enterprise Edition**
- [Adds fuzzy to the list of advanced search syntax options](gitlab-org/gitlab@6d626fc4e2ca4111294f1b613e638bc5d221ea2a) ([merge request](gitlab-org/gitlab!112814)) **GitLab Enterprise Edition**
- [Add sync creation of next_over_limit_check_at index](gitlab-org/gitlab@6f5bd6506f2b155b460c63f31a3619b38945b515) ([merge request](gitlab-org/gitlab!113070))
- [Use linear ancestor queries](gitlab-org/gitlab@96135a75b2413101ea8e8ed8561e7cd4a477be2f) ([merge request](gitlab-org/gitlab!104021))
- [Use linear queries for namespace ancestor queries](gitlab-org/gitlab@81989d31f0fea2266e2accad515fa5180a1d6ae9) ([merge request](gitlab-org/gitlab!104024))
- [Add specific DORA metric fields to Graphql type](gitlab-org/gitlab@124caf59cc84cbae62c54cf115202897d49ad44e) ([merge request](gitlab-org/gitlab!112858)) **GitLab Enterprise Edition**
- [Update webauthn gem to v3.0](gitlab-org/gitlab@02090e3ea02b4a626adda8c03c372f9dd754ba5e) ([merge request](gitlab-org/gitlab!112359))
- [Improves the consistency of the dropdowns](gitlab-org/gitlab@40388842abfa9a23128c8a3f0ec09bfcd9eee48e) ([merge request](gitlab-org/gitlab!112031))
- [Update scan policies text](gitlab-org/gitlab@7b8df0fb6e3e3abbbe061d077912670ad6c6c871) ([merge request](gitlab-org/gitlab!112979))
- [Adds project_id to the Note API entity](gitlab-org/gitlab@a85388ba5c65062362fcd221e6bbd706b4c1f3e2) ([merge request](gitlab-org/gitlab!112667))
- [Update vulnerability_reads trigger to set has_issues](gitlab-org/gitlab@ebf81afaa2f3b38cf0a30551b50bcd01588d8f9c) ([merge request](gitlab-org/gitlab!112233))
- [Cleanup 'rely_on_protected_branches_cache' feature flag](gitlab-org/gitlab@7454256447445b7451c3f53b24a501c91db964b6) ([merge request](gitlab-org/gitlab!112865))
- [Add Search::ReindexingService](gitlab-org/gitlab@9600f3ff8117fc2847877548585fd1077da4198b) ([merge request](gitlab-org/gitlab!112759)) **GitLab Enterprise Edition**
- [Updates advanced user search to use simple query string and fuzzy match](gitlab-org/gitlab@49dbbcf8149268c35346013e4d3d983ce0cff9ff) ([merge request](gitlab-org/gitlab!110623)) **GitLab Enterprise Edition**
- [Load partitioned index name if enabled](gitlab-org/gitlab@8bb673ff3daab8f49b57533b34ba9b547b2285ff) ([merge request](gitlab-org/gitlab!112402)) **GitLab Enterprise Edition**
- [Launch invite modal from invite members in top nav](gitlab-org/gitlab@6a7d4474dab3e1f2b2e6f93fb879570530e7e52f) ([merge request](gitlab-org/gitlab!111485))
- [Add expand/collapse button on list in wiki sidebar](gitlab-org/gitlab@bb73aa27c99e08707c8d649e104205a1e46caabb) by @qk44077907 ([merge request](gitlab-org/gitlab!111357))
- [Decrease maximum runtime for VSA aggregations](gitlab-org/gitlab@6456a0eb540241cb53386bd120a7f7f7f94061f3) ([merge request](gitlab-org/gitlab!112925)) **GitLab Enterprise Edition**
- [Add same ssh ports check for geo::check rake task](gitlab-org/gitlab@ef3cb4378f4b365bf5bbcf2d3a4a7d400583e16e) ([merge request](gitlab-org/gitlab!111923)) **GitLab Enterprise Edition**
- [Renaming the rules label to conditions](gitlab-org/gitlab@0bfade43ab6855e815fbea530ae6324fe950c05b) ([merge request](gitlab-org/gitlab!112650)) **GitLab Enterprise Edition**
- [Switch package metadata sync to run hourly](gitlab-org/gitlab@b8b9329f1cc418756c7a6b18479ac4b7fb9bc14a) ([merge request](gitlab-org/gitlab!112850)) **GitLab Enterprise Edition**
- [Geo: Verification of container repositories](gitlab-org/gitlab@86ec6a041e1b9e1f011172bafd8d7603a747446a) ([merge request](gitlab-org/gitlab!111077))
- [Introduce registry_size_estimated to namespace_root_storage_statistics](gitlab-org/gitlab@ede87eb1d6ba537edfdfde51d9f3e2c5f1a92979) ([merge request](gitlab-org/gitlab!112709))
- [Improve issuable locked warning styling](gitlab-org/gitlab@d911e0053aca4f27c66eb2da81ea67e6758cb2d6) ([merge request](gitlab-org/gitlab!112659))
- [Create index on approval_rules for scan_result_policy_id](gitlab-org/gitlab@67db106ebb6decdb0043547ea493a45bbc2dbe68) ([merge request](gitlab-org/gitlab!112484))
- [Raise CI variables limits on gitlab.com](gitlab-org/gitlab@103a2c75feecef08482ace39df23bff77388ae32) ([merge request](gitlab-org/gitlab!112666))
- [Validate oauth_access_tokens#expires_in not null](gitlab-org/gitlab@6a68043cef2f9ce2060f117ed099c5ac80d0756e) ([merge request](gitlab-org/gitlab!112765))
- [Truncate commits that exceeds the new commits note display limit](gitlab-org/gitlab@d0e8ac0d585b263d5dd9400ca10f52216d32cb58) ([merge request](gitlab-org/gitlab!111533))
- [Update delete icon in manual var form](gitlab-org/gitlab@15575003f214b82d96e07aa01b10c1a4deae596b) ([merge request](gitlab-org/gitlab!112614))
- [Cleanup 'delayed_repository_update_mirror_worker' feature flag](gitlab-org/gitlab@cb2bf72b5f9ac5f08d90054bb2af239a7ce5aba4) ([merge request](gitlab-org/gitlab!112707))
- [Use mergeRequestLinks on vulnerability details page](gitlab-org/gitlab@759fef72d92c74409688b028b191032066daafa5) ([merge request](gitlab-org/gitlab!111424)) **GitLab Enterprise Edition**
- [Update activation error handling](gitlab-org/gitlab@57d05272a39a07d3dce88ff31304e9cf347fb792) ([merge request](gitlab-org/gitlab!106922)) **GitLab Enterprise Edition**
- [Set GITALY_SERVERS for gitaly-backup](gitlab-org/gitlab@4ca9a3d5032b925cd29d49ee33e00d940da4baa0) ([merge request](gitlab-org/gitlab!112623))
- [Update component to use GraphQL jobPlay](gitlab-org/gitlab@7f6a0fc7d021ae5b4368e3095d797dbc2ec8f532) ([merge request](gitlab-org/gitlab!111826))
- [Update dependency auto-deploy-image to v2.47.0](gitlab-org/gitlab@02d48522d64d1d4344ce257bc7250e7d152501c5) ([merge request](gitlab-org/gitlab!112602))
- [Fetch and display report data](gitlab-org/gitlab@0166da20fdeea67dcc3e3bd3c99141f0e638717d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/110855)) **GitLab Enterprise Edition**
- [Refactors component ml_experiments_show.vue](gitlab-org/gitlab@efee52af46b42789773b59e8a070d00ce19d1c3c) ([merge request](gitlab-org/gitlab!111929))
- [Clean up invite_for_help_continuous_onboarding](gitlab-org/gitlab@c0eefdc27b89d0affb1ec7b954b54d0aad23dbc2) ([merge request](gitlab-org/gitlab!112089))
- [Group issue-board controls into ellipsis dropdown](gitlab-org/gitlab@8ef7037444f78b5dec27d9f5e14a9c0e1993ac79) ([merge request](gitlab-org/gitlab!111302))
- [Prepare async foreign key validation for ci_build_trace_metadata](gitlab-org/gitlab@486e29c86769f8e08bdb4d2e5d0fb3c4892132dd) ([merge request](gitlab-org/gitlab!112133))
- [Prepare async foreign key validation for ci_job_variables](gitlab-org/gitlab@fec3b4c9d60f76b509c872fcf8c554a5616bb870) ([merge request](gitlab-org/gitlab!112511))
- [Prepare async foreign key validation for ci_sources_pipelines](gitlab-org/gitlab@ef3ee17b1866269858b72fb11a2f9a84f264a228) ([merge request](gitlab-org/gitlab!112508))
- [Add default_color_scheme to Gitlab settings](gitlab-org/gitlab@cc112f197cd67c83769e0d6f8a5ade2554d64fb0) by @colin969 ([merge request](gitlab-org/gitlab!109496))
- [Remove N+1 when loading finding link relations in serialization](gitlab-org/gitlab@f4905d09fa0947ada5eb753655daebefea00ab63) ([merge request](gitlab-org/gitlab!111438)) **GitLab Enterprise Edition**
- [Show group sidebar while creating a new subgroup or project](gitlab-org/gitlab@2a5b47837d8cc42834b004e309bfef436e77c085) ([merge request](gitlab-org/gitlab!109649))
- [Scope FK name uniqueness to the table name](gitlab-org/gitlab@704af1013ff05a47c966f6309a3c0b2da2780715) ([merge request](gitlab-org/gitlab!112448))
- [Add runner registration page](gitlab-org/gitlab@1ee7dafcb88c3ea9890a8bec0fe3aa21e281d779) ([merge request](gitlab-org/gitlab!111810))
- [Remove feature flag ci_use_downstream_pipeline_duration_for_calculation](gitlab-org/gitlab@bc8e2cbfa8aa3eab318e609d58bafd35f0e5e3a2) ([merge request](gitlab-org/gitlab!112433))
- [Allow new Slack integrations created on GitLab.com](gitlab-org/gitlab@8483dd8342402db7e243b6a89e5587064591f59a) ([merge request](gitlab-org/gitlab!112411))
- [Lock timelogs when project is archived](gitlab-org/gitlab@096c2e88dd16cf80d436d89f3b36ca93cca6aeb8) by @Taucher2003 ([merge request](gitlab-org/gitlab!112404))
- [Ask for recovery code if WebAuthn is the only 2FA](gitlab-org/gitlab@fb5ca5d4b670250fd15ae38096f0c62efa67220d) ([merge request](gitlab-org/gitlab!112212))
- [Improve devise error_message](gitlab-org/gitlab@99a8b7a09820e1b2622d5c889ba77095ec212f5f) by @ali_o_kan ([merge request](gitlab-org/gitlab!111445))
- [Swap the order of pin and password fields](gitlab-org/gitlab@347296173ad9b1d356921be254d9e49248095a9e) ([merge request](gitlab-org/gitlab!112176))
- [Wording changes related to `webauthn_without_totp`](gitlab-org/gitlab@7c624c75c688c9ff53205fa52fa833e923816aa3) ([merge request](gitlab-org/gitlab!112224))
- [Show numeric keyboard on mobile for 2fa codes](gitlab-org/gitlab@853ab28a5a0d0de5f79c38a2c186671fdf0136f8) ([merge request](gitlab-org/gitlab!112202))
- [Cleaned up successful experiment trial_email_validation](gitlab-org/gitlab@abf3dff16357596664117ac420a0bd6fe6bab9ab) ([merge request](gitlab-org/gitlab!112219))
- [Cache search#autocomplete on the frontend](gitlab-org/gitlab@c0cf3216e9baf6601ac08626949fb88beec797d1) ([merge request](gitlab-org/gitlab!112183))
- [[Feature flag] Clean Up `all_commits_compliance_report` feature flag](gitlab-org/gitlab@410e67fbd043144ec8108480dba16dbd5e9aa22b) ([merge request](gitlab-org/gitlab!112092)) **GitLab Enterprise Edition**
- [Remove NO_ACCESS option from unprotect_access_level](gitlab-org/gitlab@133a0b29077e0eca5dc9491dcd0cdff226624a67) ([merge request](gitlab-org/gitlab!112035)) **GitLab Enterprise Edition**
- [Update dependency auto-build-image to v1.29.0](gitlab-org/gitlab@a7b8fe0f3d4a09cb9dec6c2269ac12e37710b63c) ([merge request](gitlab-org/gitlab!112265))
- [Resolve vulnerabilities from successful scans](gitlab-org/gitlab@5e4e90950f52b93a5c4e6359d65c1ce2d772bc8c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/109923)) **GitLab Enterprise Edition**
- [Hide software license policies created through scan result policy](gitlab-org/gitlab@e1271d27dce1708e8f52a1bf83b7d9a3cab82291) ([merge request](gitlab-org/gitlab!111715)) **GitLab Enterprise Edition**
- [Add index on vulnerability_reads](gitlab-org/gitlab@aa8a95ee92cc1d592f593f25931d636cf7f311b6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/111866))
- [Add index for next_over_limit_check_at](gitlab-org/gitlab@03cc556736fbef6bfb7b9fac02447883d54b4c41) ([merge request](gitlab-org/gitlab!111819))
- [Remove ignore for dropped user profile fields](gitlab-org/gitlab@fb4389726690e864de205bd7c5e17737c27015e4) by @brianjaustin ([merge request](gitlab-org/gitlab!111109))
### Deprecated (2 changes)
- [Remove default_value_for gem](gitlab-org/gitlab@b4abc60a79b949cc8d64f377f9247eea785f60d1) ([merge request](gitlab-org/gitlab!112164))
- [UNSTRUCTURED_RAILS_LOG disabled by default](gitlab-org/gitlab@c5f039bfa01352832d99f5371165617fb4249937) ([merge request](gitlab-org/gitlab!111046))
### Removed (26 changes)
- [Cleaned up `video_tutorials_continuous_onboarding` experiment](gitlab-org/gitlab@2fe21002494e89153b0829bc00af51b898dd2b3d) ([merge request](gitlab-org/gitlab!114777)) **GitLab Enterprise Edition**
- [Add cleanup migration for orphan Software Licenses](gitlab-org/gitlab@6cf6a5eb344c6648ffa9e8ca842f3e74c9f03d2d) ([merge request](gitlab-org/gitlab!114158))
- [Remove bulk_import_projects from frontend](gitlab-org/gitlab@ac2a3e8b727cabf4e499fd40e36ae3026caf5b0e) ([merge request](gitlab-org/gitlab!114693))
- [Remove group_administration_nav_item feature flag](gitlab-org/gitlab@aa23790494fd5f9be4580ca9c661b0a6fcb67415) ([merge request](gitlab-org/gitlab!114119)) **GitLab Enterprise Edition**
- [Remove exponential increase experiment](gitlab-org/gitlab@53d2809f9d0c368d8a1fd277695a2fd89ee6d80c) ([merge request](gitlab-org/gitlab!114090))
- [Remove audit log group level feature](gitlab-org/gitlab@9592799fd652b0928bdcbdc4b660b03cd0d7ed34) ([merge request](gitlab-org/gitlab!114076)) **GitLab Enterprise Edition**
- [Remove learn gitlab project creation](gitlab-org/gitlab@11ac1a3ed6aef8941b61138072dea631052d0b0a) ([merge request](gitlab-org/gitlab!111324)) **GitLab Enterprise Edition**
- [Remove issue templates promotion pop up](gitlab-org/gitlab@ae62e5943cccbbb01e59541899628b41674d57c0) ([merge request](gitlab-org/gitlab!113536)) **GitLab Enterprise Edition**
- [Clean up environments search logging feature flag](gitlab-org/gitlab@8e304d7b017aad1df558412eb5703a6dca565332) ([merge request](gitlab-org/gitlab!112803))
- [Drop `revokable` from `achievements`](gitlab-org/gitlab@80dacb066c870857a4fbf5ae1d3c51ebe4e17740) by @Taucher2003 ([merge request](gitlab-org/gitlab!113618))
- [Remove incorrectly onboarded namespaces from onboarding table](gitlab-org/gitlab@87320dbab2a6a9be7316f6e12580dfe568eff7d6) ([merge request](gitlab-org/gitlab!112622))
- [[385649] Rollout FF github_client_fetch_repos_via_graphql](gitlab-org/gitlab@d1d3deb856011925d5aee5449a309636692b2640) ([merge request](gitlab-org/gitlab!113021))
- [git: Remove unused root tree object ID from Git::Tree](gitlab-org/gitlab@5bb4491616fd0b29a6686ad87bc866470b7ddb4e) ([merge request](gitlab-org/gitlab!113385))
- [Removed cube_api_proxy flag](gitlab-org/gitlab@c3ec6db4177884963794520e241729607a377b4a) ([merge request](gitlab-org/gitlab!113213))
- [Remove backup upload drivers Openstack Swift and Rackspace](gitlab-org/gitlab@9e78d7f2b6330d1316010150dc8926940581a417) ([merge request](gitlab-org/gitlab!112952))
- [Remove reactivate/extend trial button](gitlab-org/gitlab@dad9f4d53fafb816d1eed5c91be433c654293531) ([merge request](gitlab-org/gitlab!112454))
- [Remove dast_site_validation_drawer feature flag](gitlab-org/gitlab@87af4a5edf63bf1d416f9f1b91b84218754593b7) ([merge request](gitlab-org/gitlab!112708)) **GitLab Enterprise Edition**
- [Remove deprecated path](gitlab-org/gitlab@8f70a44373805d0b2ce8a89c562d8288680a4e56) ([merge request](gitlab-org/gitlab!112350))
- [Remove the send_user_confirmation_email column](gitlab-org/gitlab@aae03f87a125894bcd747ab47aee3972698cde57) ([merge request](gitlab-org/gitlab!112262))
- [Remove concurrent index for index_ci_builds_on_token_encrypted](gitlab-org/gitlab@70376f1528a7c0027fb3c07782b9c0ccaa682d72) ([merge request](gitlab-org/gitlab!112644))
- [Prepare async index removal of token for ci_builds](gitlab-org/gitlab@fc1f3dbe4f2583976ff0ffdc8f8ecfe20ca58190) ([merge request](gitlab-org/gitlab!112642))
- [Remove Jira Connect public key storage config](gitlab-org/gitlab@b55f70bb2d365161544d8d084df51bd368d3a089) ([merge request](gitlab-org/gitlab!112714))
- [Remove revoke_ssh_signatures feature flag](gitlab-org/gitlab@9314e52289f4664a7aaf915f135e911397912b88) ([merge request](gitlab-org/gitlab!112500))
- [Remove action_monthly_active_users_web_ide_edit metric](gitlab-org/gitlab@8b455ec775170dc6bafc53d086f00907581db04d) ([merge request](gitlab-org/gitlab!111351))
- [Remove feature flag improved_spread_parallel_import](gitlab-org/gitlab@431445af5a6dce58a5bb759b5bfec88a85ef61f8) ([merge request](gitlab-org/gitlab!112376))
- [Remove errantly onboarded namespaces](gitlab-org/gitlab@3b13f728122362f844765081159346960c379073) ([merge request](gitlab-org/gitlab!112229))
### Security (24 changes)
- [Protect Datadog API key by changing Datadog site](gitlab-org/gitlab@5bb06dd81201a14c5bbe52ed42e42073f87c0df3)
- [Stop Group Transfer Service if SAML Provider or SCIM token is present](gitlab-org/gitlab@6facd80041779d0a1fc1665403396ee2308c5110)
- [Disallow maintainer to create an owner access token](gitlab-org/gitlab@5e10f4b318b8c174ce5bea1e2ce9f40b290aa777)
- [Verify Kroki diagram type](gitlab-org/gitlab@05704b4ca78f105b2892cd4c626dbdbc2152ecc3)
- [Fix pagination limits for Commits API](gitlab-org/gitlab@ea05210a83a50cba91c1cefbe256fdd46c4e5492)
- [Using builds metadata to determine debug_mode](gitlab-org/gitlab@babac699c3ff11609dbce2390d37d7cd9a1e2d97)
- [Check read_release permission before showing releases in Tags API](gitlab-org/gitlab@1207935ff7f8bc0c0d15db8b79fa73f5158b6fa3)
- [Mask Google IAP account details in Prometheus integration](gitlab-org/gitlab@8d5b825e28a1ef008281ad84cd876495b822dbec)
- [Block private personal snippet from unauthorized users](gitlab-org/gitlab@05c5491775953638e68ce83cde50ad5c166bcff3)
- [Protect integrations' sensitive information exposed via API](gitlab-org/gitlab@f0b0e1c583de767658cbd4c25b5bc4cb8ad64650)
- [Paste only text content in work items title](gitlab-org/gitlab@7b4108b99e104c7c6ea060fa8f661581968d4879)
- [Jira DVCS OAuth Open Redirect Vulnerability](gitlab-org/gitlab@bc81997578c23414dfd4026dc38c583ed5bda059)
- [Protect Datadog API key by changing Datadog site](gitlab-org/gitlab@73fba2ec4c45bd3d653c4cd53b7da35abbbb54c1)
- [Stop Group Transfer Service if SAML Provider or SCIM token is present](gitlab-org/gitlab@5057ae0aafadec62bd6cefa5c46c510c7d9af56c)
- [Disallow maintainer to create an owner access token](gitlab-org/gitlab@0645ac547a56d869d54209653655aaacce038304)
- [Verify Kroki diagram type](gitlab-org/gitlab@bd4c3e57cf3fdf5256f15337fac497fe00dd61bd)
- [Fix pagination limits for Commits API](gitlab-org/gitlab@9ed3011d786afb7748e0fc11775ff66d744a583a)
- [Using builds metadata to determine debug_mode](gitlab-org/gitlab@c4533005abf6be3d47d11b9cbf2baca6a111d9f6)
- [Check read_release permission before showing releases in Tags API](gitlab-org/gitlab@3799742f36dd10942c8e990aec1f983ad4d119f9)
- [Mask Google IAP account details in Prometheus integration](gitlab-org/gitlab@6e93523b645a527205dd9e3e441f04009697f2e4)
- [Block private personal snippet from unauthorized users](gitlab-org/gitlab@c9bbeb1c952d15cb8f61a3cf3e9887aa8ff8821c)
- [Protect integrations' sensitive information exposed via API](gitlab-org/gitlab@34b030f43627c9aa5df90c9781f84e139f571c35)
- [Paste only text content in work items title](gitlab-org/gitlab@13677bb3bfe64fcfa387fffa4a237b05047a7769)
- [Jira DVCS OAuth Open Redirect Vulnerability](gitlab-org/gitlab@8d26f05b55cc1de53715bde7471a939f71c1a472)
### Performance (10 changes)
- [Remove index on events.actions async](gitlab-org/gitlab@b2297eda946a856893d5fc79aace45a88cae8610) ([merge request](gitlab-org/gitlab!114842))
- [Remove notes id while initializing notes component](gitlab-org/gitlab@2823b683607e3cf079848b713f431d4e8bac3321) ([merge request](gitlab-org/gitlab!113988))
- [Use replica to fetch package licenses](gitlab-org/gitlab@c2c096f7dbcc9ae3ff7f7cae8e34d45998dd71a2) ([merge request](gitlab-org/gitlab!114431)) **GitLab Enterprise Edition**
- [Swap explore/groups performance fix to .com only](gitlab-org/gitlab@1bd5b60031625abab23aa14f97bb62124d091152) ([merge request](gitlab-org/gitlab!113728))
- [Use custom Redis backend for Rack::Attack](gitlab-org/gitlab@0425f05e32a470cdf7aad1056e04838b6143aa6c) ([merge request](gitlab-org/gitlab!112944))
- [Increase request timeout in bulk imports](gitlab-org/gitlab@f337bb93124910ec8bc88d5226343a96cfe41a15) ([merge request](gitlab-org/gitlab!112325))
- [Remove FF for token removal](gitlab-org/gitlab@69b64ec1d75d47107d31fca6101041a110e7a675) ([merge request](gitlab-org/gitlab!111695))
- [Add etag caching for epic changes](gitlab-org/gitlab@2f4957f78c2b1f9f2f4039ca06bc66b5c6d5688b) ([merge request](gitlab-org/gitlab!112529)) **GitLab Enterprise Edition**
- [Remove redundant project selection](gitlab-org/gitlab@f6a3b4f4554d25b6b0c8ca8c173f04c8a1924f34) ([merge request](gitlab-org/gitlab!112348))
- [Improve performance while exporting CI pipelines](gitlab-org/gitlab@515e9c28f479e4a1bff5b802a94220bae8a9bf00) ([merge request](gitlab-org/gitlab!110588))
### Other (55 changes)
- [Add worker to wait for project export relations to finished](gitlab-org/gitlab@f53c0e9a15bbb85b964e30dafdf97084311dc9fe) ([merge request](gitlab-org/gitlab!102824))
- [Edit or remove links to deleted docs](gitlab-org/gitlab@b1ba37f4f14321bc2fd79ff418404364d1ef2806) ([merge request](gitlab-org/gitlab!114481))
- [Add BulkImports::ExportBatch & BulkImports::BatchTracker models](gitlab-org/gitlab@05f0addd4dfce1fbcbaa2a71f9f7e65fba591894) ([merge request](gitlab-org/gitlab!114468))
- [Remove repack_after_shard_migration feature flag](gitlab-org/gitlab@e113b05474798905ec432550172a7132d1485759) ([merge request](gitlab-org/gitlab!111961))
- [Add test cases for work items title and milestone](gitlab-org/gitlab@395613ede4e9b0944ce51a0d2b4c2fd0c455c229) ([merge request](gitlab-org/gitlab!113845))
- [Handle design notes error logic in single component](gitlab-org/gitlab@fd63e27c3b981c3c7c18b9122ad9017e658c704e) ([merge request](gitlab-org/gitlab!114460))
- [Delete security_policy_bot user records](gitlab-org/gitlab@3511159afaeb416f9e7a023d76b4a820b3ebb0d5) ([merge request](gitlab-org/gitlab!114065))
- [Provide :debug_permission_checks flag for specs](gitlab-org/gitlab@66bd1df1d5efa5180d49b5231d804c21046c79bc) ([merge request](gitlab-org/gitlab!113608))
- [Backfill the prepared_at column for older merge requests](gitlab-org/gitlab@81efefd583a8ba03e89d22412b62620eff6b542e) ([merge request](gitlab-org/gitlab!111865))
- [Extend redis hll metrics for github import](gitlab-org/gitlab@a8e515aa8aa9905634e233cfc6842bb7b02be0d4) ([merge request](gitlab-org/gitlab!113724))
- [Cop to ensure BBM has the associated dictionary file](gitlab-org/gitlab@09b3c07a5a169031355f7bd9b324cdf507537418) ([merge request](gitlab-org/gitlab!110743))
- [Creates migration to swap columns](gitlab-org/gitlab@89b8c6169944affba64f340626ad7874b2ec435a) ([merge request](gitlab-org/gitlab!112444))
- [Change VSD url](gitlab-org/gitlab@8972fc43de321f4fb1194054be45163b617cbb5b) ([merge request](gitlab-org/gitlab!113558)) **GitLab Enterprise Edition**
- [Update Import failures to include subrelation errors](gitlab-org/gitlab@4d8510ea440bbd319f06176155ea121c682108f5) ([merge request](gitlab-org/gitlab!113543))
- [Remove bulk_import_projects feature flag](gitlab-org/gitlab@66999a8d0f4f5200d529fc99aef7287cb6ad29ba) ([merge request](gitlab-org/gitlab!113979))
- [Lock net-protocol version to match the monkey patch](gitlab-org/gitlab@b34996a094b0ebc52d7b75752bd0e250b3c434bc) ([merge request](gitlab-org/gitlab!114080))
- [Fix rake/require offence in following files:](gitlab-org/gitlab@2fa760e9ed8105be1591fa9b6c06a3bd71c9f630) by @przbadu ([merge request](gitlab-org/gitlab!112123))
- [Clean up p_ci_builds_metadata schema](gitlab-org/gitlab@4fbd0908ae40b346606884d9871232d54f41cc38) ([merge request](gitlab-org/gitlab!113955))
- [Remove EnumWithNil helper](gitlab-org/gitlab@8595789b66abf90f714663a173d73ece53707f34) ([merge request](gitlab-org/gitlab!114075))
- [Finalize conversion of timelogs.note_id to bigint](gitlab-org/gitlab@babe023dc956e3daffb7d904882c533b6ea634da) ([merge request](gitlab-org/gitlab!113052))
- [Remove hash_oauth_secrets feature flag](gitlab-org/gitlab@bab3d2168fd317ada28d9c166596024986cd37e5) ([merge request](gitlab-org/gitlab!113892))
- [Update gitlab-qa gem version](gitlab-org/gitlab@f751ac24095993c3c49e142a3782531e5c3222fa) ([merge request](gitlab-org/gitlab!113944))
- [Add migrations_should_finish on elastic_index_dependant_association](gitlab-org/gitlab@b07a24c50919105460ad5564f5a4674fc17eae91) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/113225)) **GitLab Enterprise Edition**
- [Update Codeowners after Certify change](gitlab-org/gitlab@f718f18655fe0bdfa7d159b7c250423ec560ba18) ([merge request](gitlab-org/gitlab!113858))
- [Update Gitlab Shell version to 14.18.0](gitlab-org/gitlab@34a4842fa30bb6a500b6f883ea939bbafc73509d) ([merge request](gitlab-org/gitlab!113733))
- [Validate and replace FK for p_ci_builds_metadata and ci_builds](gitlab-org/gitlab@f416df8f34633a36e7c005fdcead277ffa1d74a6) ([merge request](gitlab-org/gitlab!113655))
- [Creates a dictionary file on generating the BBM](gitlab-org/gitlab@2b0101e775eed568ad6fecd538af6daa90372164) ([merge request](gitlab-org/gitlab!110740))
- [Remove invalid deprecation notice about maintainer_note](gitlab-org/gitlab@eb8a7b3cec06de556617827224544c1a06752cf4) ([merge request](gitlab-org/gitlab!113665))
- [Schedule temporary partitioning indexes removal](gitlab-org/gitlab@45205241ec3ea534f23cf5187eeb3f9829e586bd) ([merge request](gitlab-org/gitlab!113507))
- [Prepare async index on expire_at for unlocked non-trace job artifacts](gitlab-org/gitlab@8d017da66a456aacb17f57812f1a7b1d05fab691) ([merge request](gitlab-org/gitlab!113350))
- [Remove ci_destroy_unlocked_job_artifact feature flag](gitlab-org/gitlab@eb22b66a5cd2e249752971612ce0b687707f1392) ([merge request](gitlab-org/gitlab!113233))
- [Backfill merge request compliance violations table](gitlab-org/gitlab@241d6a4c479570db310b0188fc781ef49104964a) ([merge request](gitlab-org/gitlab!110426))
- [Add metrics for Redis Cluster redirection](gitlab-org/gitlab@19d8c8ab412cb9b8ca461ad9d86db2f983331a4d) ([merge request](gitlab-org/gitlab!112767))
- [Patch ActiveRecord Preloader to imiatate Rails 7 interface](gitlab-org/gitlab@0248388c7f6f7d02ea60a46c32b9d3234137c2d4) ([merge request](gitlab-org/gitlab!112231))
- [Remove notes_create_service_tracking feature flag](gitlab-org/gitlab@afc2fc588a21d1844b94a69e57050b7f75600a2d) ([merge request](gitlab-org/gitlab!113066))
- [Adds CIComponentRepositories table](gitlab-org/gitlab@d08867284796aa0f9683d6440f671aa9316a0fb9) ([merge request](gitlab-org/gitlab!112482))
- [Update CI includes counting structure to include duplicates](gitlab-org/gitlab@32feb697d7f0def07015806f702ead43b8c34ebc) ([merge request](gitlab-org/gitlab!112951))
- [Suggest refreshing LDAP group sync page](gitlab-org/gitlab@635f300d04af79f3c6c2fd522660bd0ebfa7bacc) ([merge request](gitlab-org/gitlab!112119)) **GitLab Enterprise Edition**
- [Remove span to fix button sizing](gitlab-org/gitlab@574d37428093ce561efdb85a7349682e2910287c) ([merge request](gitlab-org/gitlab!112738))
- [Make WIP limits button use sentence case](gitlab-org/gitlab@d4492b6a1c685c06bad8dcf1c458f09d2d28d7e7) ([merge request](gitlab-org/gitlab!112834))
- [Updating BBM docs to include generators info](gitlab-org/gitlab@744379a2186eac44f8fdd2b57d795ebcbfb2b4b8) ([merge request](gitlab-org/gitlab!112576))
- [Drop non-partitioned FK for ci_running_builds and ci_builds](gitlab-org/gitlab@edda542ecb6281c9bb1887739800af586aa37532) ([merge request](gitlab-org/gitlab!112669))
- [Drop non-partitioned FK for ci_pending_builds and ci_builds](gitlab-org/gitlab@51c60c551d5f2f65a8e705aad3631ee624952cb2) ([merge request](gitlab-org/gitlab!112668))
- [Make delete action danger variant](gitlab-org/gitlab@fa631351c19074fe7fff1d9d4655b8e993f09b2d) ([merge request](gitlab-org/gitlab!112603))
- [Update release version info for direct transfer group relations](gitlab-org/gitlab@bec08f5680a6b6d7d904ba90d36a5a60a7bc9ab2) ([merge request](gitlab-org/gitlab!112689))
- [Default enable vue_issues_dashboard feature flag](gitlab-org/gitlab@3ae8be39270277d72f0ac94fde22a48e98884a7a) ([merge request](gitlab-org/gitlab!111347))
- [Set traversal_ids on save](gitlab-org/gitlab@d0c4ae63032cb383cdc89f728d582c8d119e7010) ([merge request](gitlab-org/gitlab!112381))
- [Rake task gitlab:db:lock_writes should include table partitions](gitlab-org/gitlab@41c46cd72e69f0577c79f5790dfd2b9a43bc8bdd) ([merge request](gitlab-org/gitlab!112242))
- [Add alternative Redis backend for Rack::Attack](gitlab-org/gitlab@b00766c9be76747e85d2ab4c3e9e9e0303ea53a8) ([merge request](gitlab-org/gitlab!112593))
- [Update BulkImport#has_failures attribute when a new failure is created](gitlab-org/gitlab@2b79881dcecd11e986f06a1055e11c9da5047254) ([merge request](gitlab-org/gitlab!112061))
- [Creates migration for finalizing ciBuildNeeds BigInt conversion](gitlab-org/gitlab@2beb9eafe6245cc596706902332f2b8ae798aa11) ([merge request](gitlab-org/gitlab!111968))
- [Remove fallback reads for MultiStore](gitlab-org/gitlab@0bb877914ef52dac0d668e5e9eb0178e2b2819cf) ([merge request](gitlab-org/gitlab!111893))
- [Remove route_hll_to_snowplow_phase2 feature flag](gitlab-org/gitlab@ca7b5aac3266f876a41701e93d0d63d7fd26f61c) ([merge request](gitlab-org/gitlab!111644))
- [Add Snowplow instrumentation for secrets usage](gitlab-org/gitlab@0b9affb27923970d8441a242cc2f14d2550d3319) ([merge request](gitlab-org/gitlab!111857)) **GitLab Enterprise Edition**
- [Refactor root sha access code](gitlab-org/gitlab@589f4176f85f8f7488e0de408daf710eae5e38f8) ([merge request](gitlab-org/gitlab!112289))
### change (1 change)
- [Update submit buttons to use Pajamas component](gitlab-org/gitlab@4ffb92755e6be3268c78f02e471f5c2a21f437be) ([merge request](gitlab-org/gitlab!114246))
## 15.9.3 (2023-03-09)
@ -808,6 +1563,23 @@ No changes.
- [Remove Gitlab::Redis::DuplicateJobs](gitlab-org/gitlab@73d863b0a49175cce7649c0936b2e16157f61665) ([merge request](gitlab-org/gitlab!109122))
- [Clean-up feature flag `hash_based_cache_for_protected_branches`](gitlab-org/gitlab@96e8a07564bac07a100556e00ce4af3f21dca293) ([merge request](gitlab-org/gitlab!108724))
## 15.8.4 (2023-03-02)
### Security (12 changes)
- [Using builds metadata to determine debug_mode](gitlab-org/security/gitlab@169fdb3222a9701b5818ef7c00f8f292dc60495d) ([merge request](gitlab-org/security/gitlab!3035))
- [Fix pagination limits for Commits API](gitlab-org/security/gitlab@3d58c0fef6429d1030d1dfce1ca523ef33a0054b) ([merge request](gitlab-org/security/gitlab!3072))
- [Mask Google IAP account details in Prometheus integration](gitlab-org/security/gitlab@96426e4c799e9bf5e90e5e57b2e54235831819a3) ([merge request](gitlab-org/security/gitlab!3082))
- [Stop Group Transfer Service if SAML Provider or SCIM token is present](gitlab-org/security/gitlab@9496a2ed22f73bf83e56b1ff502fefcfe777ad07) ([merge request](gitlab-org/security/gitlab!3097))
- [Protect Datadog API key by changing Datadog site](gitlab-org/security/gitlab@c6804e50cb60fc4747ea573306eec17eb0dd25f9) ([merge request](gitlab-org/security/gitlab!3094))
- [Protect integrations' sensitive information exposed via API](gitlab-org/security/gitlab@a408475163272b926e65b1cf56c9efde09eac8dd) ([merge request](gitlab-org/security/gitlab!3088))
- [Disallow maintainer to create an owner access token](gitlab-org/security/gitlab@d184909f6ab9123a6131c5c37452ace5c4bc8d3d) ([merge request](gitlab-org/security/gitlab!3091))
- [Paste only text content in work items title](gitlab-org/security/gitlab@d8c48ade46fd75ab62731fced05cdfa2451bcdfa) ([merge request](gitlab-org/security/gitlab!3075))
- [Jira DVCS OAuth Open Redirect Vulnerability](gitlab-org/security/gitlab@91ee37eeaaae8cc6d923f6b4b28ce0d7914342dd) ([merge request](gitlab-org/security/gitlab!3063))
- [Block private personal snippet from unauthorized users](gitlab-org/security/gitlab@d687866d69cbdf25a3ca7185974c02402345015d) ([merge request](gitlab-org/security/gitlab!3030))
- [Verify Kroki diagram type](gitlab-org/security/gitlab@4ec26a4479e73233d0f77bc5a5e764d506c29faf) ([merge request](gitlab-org/security/gitlab!3055))
- [Check read_release permission before showing releases in Tags API](gitlab-org/security/gitlab@32bf21efc32fcb6a3803993959b50d8a9cd07d25) ([merge request](gitlab-org/security/gitlab!3057))
## 15.8.3 (2023-02-15)
### Fixed (3 changes)
@ -1302,6 +2074,23 @@ No changes.
- [Do not use _test when not necessary](gitlab-org/gitlab@1bde73aba2bd1d7f9e833c7325cffa0c90d1c106) ([merge request](gitlab-org/gitlab!107373))
- [Add config/redis.yml unified config file](gitlab-org/gitlab@ace8301236eecc07a511975b57f80e21ec7be3c2) ([merge request](gitlab-org/gitlab!106854))
## 15.7.8 (2023-03-02)
### Security (12 changes)
- [Using builds metadata to determine debug_mode](gitlab-org/security/gitlab@12be0c159940a35899851f2867fde1237dae254b) ([merge request](gitlab-org/security/gitlab!3036))
- [Fix pagination limits for Commits API](gitlab-org/security/gitlab@d507c5d906aff98a8bff943181299cbec5cc43db) ([merge request](gitlab-org/security/gitlab!3073))
- [Mask Google IAP account details in Prometheus integration](gitlab-org/security/gitlab@54420f92a366e2a7648c10baaaf67492d6676746) ([merge request](gitlab-org/security/gitlab!3083))
- [Stop Group Transfer Service if SAML Provider or SCIM token is present](gitlab-org/security/gitlab@52400160cd607fb30411dec04b516a1314e44996) ([merge request](gitlab-org/security/gitlab!3098))
- [Protect Datadog API key by changing Datadog site](gitlab-org/security/gitlab@9aa3ba9f719a786238ae59914d5456666363940e) ([merge request](gitlab-org/security/gitlab!3096))
- [Protect integrations' sensitive information exposed via API](gitlab-org/security/gitlab@60c22681f52c2aadcb55e1b9e92d358076e3c92c) ([merge request](gitlab-org/security/gitlab!3089))
- [Disallow maintainer to create an owner access token](gitlab-org/security/gitlab@2adeb7fafb119a43c0bfe162fbc66d2740cb4168) ([merge request](gitlab-org/security/gitlab!3092))
- [Paste only text content in work items title](gitlab-org/security/gitlab@5fa8a9bf683427af6f25e043b3f0a332719bc970) ([merge request](gitlab-org/security/gitlab!3076))
- [Jira DVCS OAuth Open Redirect Vulnerability](gitlab-org/security/gitlab@3598b2558de92b0a775f09beb739c6e2f90ff7ab) ([merge request](gitlab-org/security/gitlab!3064))
- [Block private personal snippet from unauthorized users](gitlab-org/security/gitlab@a106541570423480c9c510f512a2dc61acc5c01f) ([merge request](gitlab-org/security/gitlab!2994))
- [Verify Kroki diagram type](gitlab-org/security/gitlab@eafe89b8be423e4828fe92769353b7f17ffe895e) ([merge request](gitlab-org/security/gitlab!3054))
- [Check read_release permission before showing releases in Tags API](gitlab-org/security/gitlab@d56500c47754c7d5eb11f3c84bedbe60366eff0e) ([merge request](gitlab-org/security/gitlab!3058))
## 15.7.7 (2023-02-10)
No changes.

View file

@ -1 +1 @@
15.9.8
15.10.7

View file

@ -1 +1 @@
v15.9.0
v15.10.0

View file

@ -1 +1 @@
15.9.8
15.10.7

View file

@ -1 +1 @@
14.17.0
14.18.0

57
Gemfile
View file

@ -33,9 +33,6 @@ gem 'sprockets', '~> 3.7.0'
gem 'view_component', '~> 2.74.1'
# Default values for AR models
gem 'default_value_for', '~> 3.4.0'
# Supported DBs
gem 'pg', '~> 1.4.5'
@ -143,14 +140,12 @@ gem 'carrierwave', '~> 1.3'
gem 'mini_magick', '~> 4.10.1'
# for backups
gem 'fog-aws', '~> 3.15'
gem 'fog-aws', '~> 3.18'
# Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
# Also see config/initializers/fog_core_patch.rb.
gem 'fog-core', '= 2.1.0'
gem 'fog-google', '~> 1.19', require: 'fog/google'
gem 'fog-local', '~> 0.8'
gem 'fog-openstack', '~> 1.0'
gem 'fog-rackspace', '~> 0.1.1'
# NOTE:
# the fog-aliyun gem since v0.4 pulls in aliyun-sdk transitively, which monkey-patches
# the rest-client gem to drop the Content-Length header field for chunked transfers,
@ -182,7 +177,7 @@ gem 'seed-fu', '~> 2.3.7'
gem 'elasticsearch-model', '~> 7.2'
gem 'elasticsearch-rails', '~> 7.2', require: 'elasticsearch/rails/instrumentation'
gem 'elasticsearch-api', '7.13.3'
gem 'aws-sdk-core', '~> 3.170.0'
gem 'aws-sdk-core', '~> 3.170.1'
gem 'aws-sdk-cloudformation', '~> 1'
gem 'aws-sdk-s3', '~> 1.119.1'
gem 'faraday_middleware-aws-sigv4', '~>0.3.0'
@ -199,13 +194,13 @@ gem 'rdoc', '~> 6.3.2'
gem 'org-ruby', '~> 0.9.12'
gem 'creole', '~> 0.5.0'
gem 'wikicloth', '0.8.1'
gem 'asciidoctor', '~> 2.0.17'
gem 'asciidoctor', '~> 2.0.18'
gem 'asciidoctor-include-ext', '~> 0.4.0', require: false
gem 'asciidoctor-plantuml', '~> 0.0.16'
gem 'asciidoctor-kroki', '~> 0.7.0', require: false
gem 'rouge', '~> 3.30.0'
gem 'asciidoctor-kroki', '~> 0.8.0', require: false
gem 'rouge', '~> 4.1.0'
gem 'truncato', '~> 0.7.12'
gem 'nokogiri', '~> 1.14.1'
gem 'nokogiri', '~> 1.14.2'
# Calendar rendering
gem 'icalendar'
@ -292,7 +287,7 @@ gem 'asana', '~> 0.10.13'
gem 'ruby-fogbugz', '~> 0.3.0'
# Kubernetes integration
gem 'kubeclient', '~> 4.9.3', path: 'vendor/gems/kubeclient'
gem 'kubeclient', '~> 4.11.0'
# Sanitize user input
gem 'sanitize', '~> 6.0'
@ -310,7 +305,7 @@ gem 'licensee', '~> 9.15'
gem 'charlock_holmes', '~> 0.7.7'
# Detect mime content type from content
gem 'ruby-magic', '~> 0.5'
gem 'ruby-magic', '~> 0.6'
# Faster blank
gem 'fast_blank'
@ -348,7 +343,7 @@ gem 'pg_query', '~> 2.2', '>= 2.2.1'
gem 'premailer-rails', '~> 1.10.3'
gem 'gitlab-labkit', '~> 0.30.1'
gem 'gitlab-labkit', '~> 0.31.1'
gem 'thrift', '>= 0.16.0'
# I18n
@ -363,17 +358,20 @@ gem 'batch-loader', '~> 2.0.1'
# Perf bar
gem 'peek', '~> 1.1'
# Google Cloud Profiler support
gem 'cloud_profiler_agent', '~> 0.0.0', path: 'vendor/gems/cloud_profiler_agent', require: false
# Snowplow events tracking
gem 'snowplow-tracker', '~> 0.8.0'
# Metrics
gem 'webrick', '~> 1.6.1', require: false
gem 'prometheus-client-mmap', '~> 0.17', require: 'prometheus/client'
gem 'prometheus-client-mmap', '~> 0.19', require: 'prometheus/client'
gem 'warning', '~> 1.3.0'
group :development do
gem 'lefthook', '~> 1.2.9', require: false
gem 'lefthook', '~> 1.3.3', require: false
gem 'rubocop'
gem 'solargraph', '~> 0.47.2', require: false
@ -416,7 +414,7 @@ group :development, :test do
gem 'bundler-audit', '~> 0.7.0.1', require: false
# Benchmarking & profiling
gem 'benchmark-ips', '~> 2.3.0', require: false
gem 'benchmark-ips', '~> 2.11.0', require: false
gem 'benchmark-memory', '~> 0.1', require: false
gem 'knapsack', '~> 1.21.1'
@ -436,7 +434,7 @@ group :development, :test do
end
group :development, :test, :danger do
gem 'gitlab-dangerfiles', '~> 3.7.0', require: false
gem 'gitlab-dangerfiles', '~> 3.8.0', require: false
end
group :development, :test, :coverage do
@ -456,7 +454,7 @@ group :test do
gem 'rspec-retry', '~> 0.6.1'
gem 'rspec_profiling', '~> 0.0.6'
gem 'rspec-benchmark', '~> 0.6.0'
gem 'rspec-parameterized', require: false
gem 'rspec-parameterized', '~> 1.0', require: false
gem 'capybara', '~> 3.35.3'
gem 'capybara-screenshot', '~> 1.0.22'
@ -472,6 +470,7 @@ group :test do
gem 'test-prof', '~> 1.0.7'
gem 'rspec_junit_formatter'
gem 'guard-rspec'
gem 'axe-core-rspec'
# Moved in `test` because https://gitlab.com/gitlab-org/gitlab/-/issues/217527
gem 'derailed_benchmarks', require: false
@ -486,7 +485,7 @@ gem 'gitlab-mail_room', '~> 0.0.9', require: 'mail_room'
gem 'email_reply_trimmer', '~> 0.1'
gem 'html2text'
gem 'stackprof', '~> 0.2.21', require: false
gem 'stackprof', '~> 0.2.23', require: false
gem 'rbtrace', '~> 0.4', require: false
gem 'memory_profiler', '~> 1.0', require: false
gem 'activerecord-explain-analyze', '~> 0.1', require: false
@ -518,7 +517,7 @@ gem 'kas-grpc', '~> 0.0.2'
gem 'grpc', '~> 1.42.0'
gem 'google-protobuf', '~> 3.21', '>= 3.21.12'
gem 'google-protobuf', '~> 3.22', '>= 3.22.2'
gem 'toml-rb', '~> 2.2.0'
@ -547,7 +546,11 @@ gem 'lru_redux'
# Locked as long as quoted-printable encoding issues are not resolved
# Monkey-patched in `config/initializers/mail_encoding_patch.rb`
# See https://gitlab.com/gitlab-org/gitlab/issues/197386
gem 'mail', '= 2.7.1'
#
# `config/initializers/mail_starttls_patch.rb` has also been patched to
# fix STARTTLS handling until https://github.com/mikel/mail/pull/1536 is
# released.
gem 'mail', '= 2.8.1'
gem 'mail-smtp_pool', '~> 0.1.0', path: 'vendor/gems/mail-smtp_pool', require: false
gem 'microsoft_graph_mailer', '~> 0.1.0', path: 'vendor/gems/microsoft_graph_mailer'
@ -566,7 +569,7 @@ gem 'oj-introspect', '~> 0.7'
gem 'multi_json', '~> 1.14.1'
gem 'yajl-ruby', '~> 1.4.3', require: 'yajl'
gem 'webauthn', '~> 2.3'
gem 'webauthn', '~> 3.0'
# IPAddress utilities
gem 'ipaddress', '~> 0.8.3'
@ -588,8 +591,14 @@ gem 'cvss-suite', '~> 3.0.1', require: 'cvss_suite'
gem 'arr-pm', '~> 0.0.12'
# Apple plist parsing
gem 'CFPropertyList'
gem 'CFPropertyList', '~> 3.0.0'
gem 'app_store_connect'
# For phone verification
gem 'telesignenterprise', '~> 2.2'
# BufferedIO patch
# Updating this version will require updating scripts/allowed_warnings.txt
gem 'net-protocol', '~> 0.1.3'
gem 'duo_api', '~> 1.3'

View file

@ -24,23 +24,26 @@
{"name":"app_store_connect","version":"0.29.0","platform":"ruby","checksum":"01d7a923825a4221892099acb5a72f86f6ee7d8aa95815d3c459ba6816ea430f"},
{"name":"arr-pm","version":"0.0.12","platform":"ruby","checksum":"fdff482f75239239201f4d667d93424412639aad0b3b0ad4d827e7c637e0ad39"},
{"name":"asana","version":"0.10.13","platform":"ruby","checksum":"36d0d37f8dd6118a54580f1b80224875d7b6a9027598938e1722a508bfc2d7ac"},
{"name":"asciidoctor","version":"2.0.17","platform":"ruby","checksum":"ed5b5e399e8d64994cc16f0983f993d6e33990909a8415b6fc8b786cdeb00f3d"},
{"name":"asciidoctor","version":"2.0.18","platform":"ruby","checksum":"bbd1e1d16deed8db94bf9624b9f4474fac32d9ca7225d377f076c08d9adde387"},
{"name":"asciidoctor-include-ext","version":"0.4.0","platform":"ruby","checksum":"406adb9d2fbfc25536609ca13b787ed704dc06a4e49d6709b83f3bad578f7878"},
{"name":"asciidoctor-kroki","version":"0.7.0","platform":"ruby","checksum":"528ae4e49cae10e98c76e91f9aa40c67bf8540aa5ce4bbd44c5cd57af9f0b121"},
{"name":"asciidoctor-kroki","version":"0.8.0","platform":"ruby","checksum":"e53b3f349167cebde990b0098863e8fe98fd235e35263a78c88cc4e0268b1a36"},
{"name":"asciidoctor-plantuml","version":"0.0.16","platform":"ruby","checksum":"407e47cd1186ded5ccc75f0c812e5524c26c571d542247c5132abb8f47bd1793"},
{"name":"ast","version":"2.4.2","platform":"ruby","checksum":"1e280232e6a33754cde542bc5ef85520b74db2aac73ec14acef453784447cc12"},
{"name":"atlassian-jwt","version":"0.2.0","platform":"ruby","checksum":"52e653e9d6062d7a740c3675b0e79fa08367927c6fc17f5476d1b6b3798c6eb2"},
{"name":"attr_required","version":"1.0.1","platform":"ruby","checksum":"024e10393bd30901e1adf6769bd756b873a5ef7da60f86f8f11066116b5742bc"},
{"name":"autoprefixer-rails","version":"10.2.5.1","platform":"ruby","checksum":"3711d67f1112361c7628847ac192d8aa6f3b8abe47527aee8a69dc8985e798ee"},
{"name":"awesome_print","version":"1.9.2","platform":"ruby","checksum":"e99b32b704acff16d768b3468680793ced40bfdc4537eb07e06a4be11133786e"},
{"name":"awrence","version":"1.1.1","platform":"ruby","checksum":"9be584c97408ed92d5e1ca11740853646fe270de675f2f8dd44e8233226dfc97"},
{"name":"awrence","version":"1.2.1","platform":"ruby","checksum":"dd1d214c12a91f449d1ef81d7ee3babc2816944e450752e7522c65521872483e"},
{"name":"aws-eventstream","version":"1.2.0","platform":"ruby","checksum":"ffa53482c92880b001ff2fb06919b9bb82fd847cbb0fa244985d2ebb6dd0d1df"},
{"name":"aws-partitions","version":"1.703.0","platform":"ruby","checksum":"3d32fcdcb2799fe0472a9b30990035713d7a75ac8b77bd7767ef5ee2914ea748"},
{"name":"aws-partitions","version":"1.730.0","platform":"ruby","checksum":"32aa84e7004c4b0c7cde0bd9641188a3eaf3001ec67019b201cbe47bde8e902b"},
{"name":"aws-sdk-cloudformation","version":"1.41.0","platform":"ruby","checksum":"31e47539719734413671edf9b1a31f8673fbf9688549f50c41affabbcb1c6b26"},
{"name":"aws-sdk-core","version":"3.170.0","platform":"ruby","checksum":"59341e5cf39d70c4069201bd46f914efd2a0aaa257c5c4d02dfa602e36fc847d"},
{"name":"aws-sdk-core","version":"3.170.1","platform":"ruby","checksum":"553ba7ea629f90cd00fb83de3f3636e9db0a38b6b48957cacdb0f63c9d69bea6"},
{"name":"aws-sdk-kms","version":"1.62.0","platform":"ruby","checksum":"b9111c698d783f3f092dcc6a8b9b7e3f53f00e6e501bdc5a4409afdcaf411a1c"},
{"name":"aws-sdk-s3","version":"1.119.1","platform":"ruby","checksum":"f7f5939f204839e20222c70823ec0dc5f10775e3538e102783f68b42f5a7f6e6"},
{"name":"aws-sigv4","version":"1.5.1","platform":"ruby","checksum":"d68c87fff4ee843b4b92b23c7f31f957f254ec6eb064181f7119124aab8b8bb4"},
{"name":"axe-core-api","version":"4.6.0","platform":"ruby","checksum":"1b0ddec3353f108dc10363baf2282f43a5ff7f13d4e25f99071294e78f8a6c62"},
{"name":"axe-core-rspec","version":"4.6.0","platform":"ruby","checksum":"11c25bc9dd388c137ba4e5e63d64d20092bf22c884d8ffc829a22acfbacd747f"},
{"name":"axiom-types","version":"0.1.1","platform":"ruby","checksum":"c1ff113f3de516fa195b2db7e0a9a95fd1b08475a502ff660d04507a09980383"},
{"name":"azure-storage-blob","version":"2.0.3","platform":"ruby","checksum":"61b76118843c91776bd24bee22c74adafeb7c4bb3a858a325047dae3b59d0363"},
{"name":"azure-storage-common","version":"2.0.4","platform":"ruby","checksum":"608f4daab0e06b583b73dcffd3246ea39e78056de31630286b0cf97af7d6956b"},
{"name":"babosa","version":"1.0.4","platform":"ruby","checksum":"18dea450f595462ed7cb80595abd76b2e535db8c91b350f6c4b3d73986c5bc99"},
@ -50,15 +53,14 @@
{"name":"bcrypt","version":"3.1.16","platform":"java","checksum":"2925a1546fa8e85bdb1b10f1fc95c4e1ea15992ada16adea4af82b0978ed662c"},
{"name":"bcrypt","version":"3.1.16","platform":"ruby","checksum":"0b8bf031ba81aa76c0f10c5a8dac779b6035d84b09af1dbb2b1a32a7e360210b"},
{"name":"benchmark","version":"0.2.0","platform":"ruby","checksum":"5f7087b794613abdd3ac9c13f4351f65b164bcb15ced2ad29508e365f9b28c77"},
{"name":"benchmark-ips","version":"2.3.0","platform":"ruby","checksum":"12443aa327d3129aa965244f79d7d5cb0f692f0f92ba7db76fba61526a40062e"},
{"name":"benchmark-ips","version":"2.11.0","platform":"ruby","checksum":"1eaa89841073895af0ee7ff72eb069e5c7dda01c6d6a8b3e79e363bace596dec"},
{"name":"benchmark-malloc","version":"0.2.0","platform":"ruby","checksum":"37c68f0435261634026f584d79956a35325a3027e3e6b4cc8d7575aa10537e6b"},
{"name":"benchmark-memory","version":"0.2.0","platform":"ruby","checksum":"ca1e436433b09535ee8f64f80600a5edb407cff1f6ac70e089ca238118e6ab5c"},
{"name":"benchmark-perf","version":"0.6.0","platform":"ruby","checksum":"fe2b01959f3de0f9dd34820d54ef881eb4f3589fccb7d17b63068ac92d7f9621"},
{"name":"benchmark-trend","version":"0.4.0","platform":"ruby","checksum":"de5a02a9f443babefbbd97784759820decee8554a0c273d859c02a0990845d81"},
{"name":"better_errors","version":"2.9.1","platform":"ruby","checksum":"39efc116ab04d6c4200052c5782936e4bd99906978d098992bce6bf81d054284"},
{"name":"bindata","version":"2.4.11","platform":"ruby","checksum":"c38e0c99ffcd80c10a0a7ae6c8586d2fe26bf245cbefac90bec8764523220f6a"},
{"name":"binding_ninja","version":"0.2.3","platform":"java","checksum":"bbcf70b211d6e397493bf57c249bbec6aaf28fa7dafeb78e447b1b2f0610484f"},
{"name":"binding_ninja","version":"0.2.3","platform":"ruby","checksum":"4a85550a0066ee4721506b4e150857486808e50c9ddfeed04bdc896bb61eca9d"},
{"name":"binding_of_caller","version":"1.0.0","platform":"ruby","checksum":"3aad25d1d538fc6e7972978f9bf512ccd992784009947c81633bea776713161d"},
{"name":"bootsnap","version":"1.16.0","platform":"ruby","checksum":"f87410c00f69cd84a6e72a6c4bdba733f800d80d934f4315849d18ca9f288fed"},
{"name":"browser","version":"5.3.1","platform":"ruby","checksum":"62745301701ff2c6c5d32d077bb12532b20be261929dcb52c6781ed0d5658b3c"},
{"name":"builder","version":"3.2.4","platform":"ruby","checksum":"99caf08af60c8d7f3a6b004029c4c3c0bdaebced6c949165fe98f1db27fbbc10"},
@ -80,29 +82,33 @@
{"name":"claide","version":"1.1.0","platform":"ruby","checksum":"6d3c5c089dde904d96aa30e73306d0d4bd444b1accb9b3125ce14a3c0183f82e"},
{"name":"claide-plugins","version":"0.9.2","platform":"ruby","checksum":"c7ea78bc067ab23bce8515497cdcdcb8f01c86dadfbe13c44644e382922c1c2e"},
{"name":"coderay","version":"1.1.3","platform":"ruby","checksum":"dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b"},
{"name":"coercible","version":"1.0.0","platform":"ruby","checksum":"5081ad24352cc8435ce5472bc2faa30260c7ea7f2102cc6a9f167c4d9bffaadc"},
{"name":"colored2","version":"3.1.2","platform":"ruby","checksum":"b13c2bd7eeae2cf7356a62501d398e72fde78780bd26aec6a979578293c28b4a"},
{"name":"commonmarker","version":"0.23.6","platform":"ruby","checksum":"c8aeaaaff4ba497bf180f762db63a0069794fafb6eff221224c9c8199d337b38"},
{"name":"concurrent-ruby","version":"1.2.0","platform":"ruby","checksum":"a5e799f71e7490f24a534d58c91380267d0ae306af0cdc518d6848b93475dae2"},
{"name":"connection_pool","version":"2.3.0","platform":"ruby","checksum":"677985be912f33c90f98f229aaa0c0ddb2ef8776f21929a36eeeb25251c944da"},
{"name":"cork","version":"0.3.0","platform":"ruby","checksum":"a0a0ac50e262f8514d1abe0a14e95e71c98b24e3378690e5d044daf0013ad4bc"},
{"name":"cose","version":"1.0.0","platform":"ruby","checksum":"520ebaad97b56d2873de02ff4e2c973f5e77ce2f8edbda454af9ee3073643bc0"},
{"name":"cose","version":"1.3.0","platform":"ruby","checksum":"63247c66a5bc76e53926756574fe3724cc0a88707e358c90532ae2a320e98601"},
{"name":"countries","version":"4.0.1","platform":"ruby","checksum":"d32e8a3c0b22949f1a41ea6d9005f5168ffce226f8fe077d1d6be785fffa81c5"},
{"name":"crack","version":"0.4.3","platform":"ruby","checksum":"5318ba8cd9cf7e0b5feb38948048503ba4b1fdc1b6ff30a39f0a00feb6036b29"},
{"name":"crass","version":"1.0.6","platform":"ruby","checksum":"dc516022a56e7b3b156099abc81b6d2b08ea1ed12676ac7a5657617f012bd45d"},
{"name":"creole","version":"0.5.0","platform":"ruby","checksum":"951701e2d80760f156b1cb2a93471ca97c076289becc067a33b745133ed32c03"},
{"name":"crystalball","version":"0.7.0","platform":"ruby","checksum":"6e729f372a5071daec877adb40c5df4cb25fe21f350635e2a9624373fc151ef2"},
{"name":"css_parser","version":"1.12.0","platform":"ruby","checksum":"8b7c04bca32257da0c65bd7b1fa585df5a0fd9f5197ccd78498d5598dd900784"},
{"name":"css_parser","version":"1.14.0","platform":"ruby","checksum":"f2ce6148cd505297b07bdbe7a5db4cce5cf530071f9b732b9a23538d6cdc0113"},
{"name":"cvss-suite","version":"3.0.1","platform":"ruby","checksum":"b5ca9e9e94032a42fd0dc28c1e305378b62c949e35ed7111fc4a1d76f68ad3f9"},
{"name":"danger","version":"8.6.1","platform":"ruby","checksum":"d95eb58b41f68d3aaa9bbef697916b6b4d161a38819517c98562531be75cdfd8"},
{"name":"danger-gitlab","version":"8.0.0","platform":"ruby","checksum":"497dd7d0f6513913de651019223d8058cf494df10acbd17de92b175dfa04a3a8"},
{"name":"database_cleaner","version":"1.7.0","platform":"ruby","checksum":"bdf833c197afac7054015bcde2567c3834c366bbfe6a377c30151ca984b32016"},
{"name":"date","version":"3.3.3","platform":"java","checksum":"584e0a582d1eb2207b4eaac089d8a43f2ca10bea02682f286099642f15c56cce"},
{"name":"date","version":"3.3.3","platform":"ruby","checksum":"819792019d5712b748fb15f6dfaaedef14b0328723ef23583ea35f186774530f"},
{"name":"dead_end","version":"3.1.1","platform":"ruby","checksum":"1011df7f7c0149be004e11cbbc37747760227c55305cd902fd3c06e1394b2f5b"},
{"name":"debug_inspector","version":"1.1.0","platform":"ruby","checksum":"eaa5a2d0195e1d65fb4164e8e7e466cca2e7eb53bc5e608cf12b8bf02c3a8606"},
{"name":"deckar01-task_list","version":"2.3.2","platform":"ruby","checksum":"5a19092548d24309d8b2c2704d64cdc08a4a615823c9a722f4142edec1de8805"},
{"name":"declarative","version":"0.0.20","platform":"ruby","checksum":"8021dd6cb17ab2b61233c56903d3f5a259c5cf43c80ff332d447d395b17d9ff9"},
{"name":"declarative_policy","version":"1.1.0","platform":"ruby","checksum":"9af4cf299ade03f2bbf63908f2ce6a117d132fc714c39a128596667fb13331cb"},
{"name":"default_value_for","version":"3.4.0","platform":"ruby","checksum":"35d2dc51675a6bedfa875778628d44b823e0d7336da9432519477174ebb0f40f"},
{"name":"deprecation_toolkit","version":"1.5.1","platform":"ruby","checksum":"a8a1ab1a19ae40ea12560b65010e099f3459ebde390b76621ef0c21c516a04ba"},
{"name":"derailed_benchmarks","version":"2.1.2","platform":"ruby","checksum":"eaadc6206ceeb5538ff8f5e04a0023d54ebdd95d04f33e8960fb95a5f189a14f"},
{"name":"descendants_tracker","version":"0.0.4","platform":"ruby","checksum":"e9c41dd4cfbb85829a9301ea7e7c48c2a03b26f09319db230e6479ccdc780897"},
{"name":"device_detector","version":"1.0.0","platform":"ruby","checksum":"b800fb3150b00c23e87b6768011808ac1771fffaae74c3238ebaf2b782947a7d"},
{"name":"devise","version":"4.8.1","platform":"ruby","checksum":"fdd48bbe79a89e7c1152236a70479842ede48bea4fa7f4f2d8da1f872559803e"},
{"name":"devise-two-factor","version":"4.0.2","platform":"ruby","checksum":"6548d2696ed090d27046f888f4fa7380f151e0f823902d46fd9b91e7d0cac511"},
@ -123,6 +129,8 @@
{"name":"dry-inflector","version":"0.2.0","platform":"ruby","checksum":"c7cf29c3dc9d961c115aac873ac39a4ff6988fae7f7871c473a9694c1f6fb39e"},
{"name":"dry-logic","version":"1.1.0","platform":"ruby","checksum":"eca4b39084c9d22778144b7e4cf8db20e8bab7de6d89deb220d20a9fde60b69d"},
{"name":"dry-types","version":"1.4.0","platform":"ruby","checksum":"68003bb0db3077fecd0270f4ae486a82ee76bab6d666fdc4e094380a67c9a1df"},
{"name":"dumb_delegator","version":"1.0.0","platform":"ruby","checksum":"ff5e411816d2d8ad8e260b269e712ae3839dddb0f9f8e18d3b1a3fe08f6d2e94"},
{"name":"duo_api","version":"1.3.0","platform":"ruby","checksum":"87c9830e190fad32fdb086b023f555a3cf5cd4d6708a992f7a32efb2ce206176"},
{"name":"e2mmap","version":"0.1.0","platform":"ruby","checksum":"45ee6bba2d97a7d91ee0885774261feee87e28c598355df31e93b56196ec0f59"},
{"name":"ecma-re-validator","version":"0.3.0","platform":"ruby","checksum":"66a95bd8c2b0641baf1fbf9bd355a0dcf13c82c6883f6f496a722420a8b6e0d7"},
{"name":"ed25519","version":"1.3.0","platform":"java","checksum":"8e5d2f8a5325c7a463d61d1a48406ce54074c610f3dccd889e6532c9527a3894"},
@ -179,18 +187,17 @@
{"name":"flipper-active_record","version":"0.25.0","platform":"ruby","checksum":"85a5c99465e2cc6a09e91931a9998b0dbd463cd6c80dd513129377132e3eb67f"},
{"name":"flipper-active_support_cache_store","version":"0.25.0","platform":"ruby","checksum":"7282bf994b08d1a076b65c6f3b51e3dc04fcb00fa6e7b20089e60db25c7b531b"},
{"name":"fog-aliyun","version":"0.4.0","platform":"ruby","checksum":"8f2334604beb781eafbb9cd5f50141fbb2c7eb77c7f2b01f45c2e04db0e5cc38"},
{"name":"fog-aws","version":"3.15.0","platform":"ruby","checksum":"09752931ea0c6165b018e1a89253248d86b246645086ccf19bc44fabe3381e8c"},
{"name":"fog-aws","version":"3.18.0","platform":"ruby","checksum":"f4c5880ecfbc4edbf711dfd41140f9f17dfc68b519546d121448d2d3a5584704"},
{"name":"fog-core","version":"2.1.0","platform":"ruby","checksum":"53e5d793554d7080d015ef13cd44b54027e421d924d9dba4ce3d83f95f37eda9"},
{"name":"fog-google","version":"1.19.0","platform":"ruby","checksum":"3c909a230837fe84117fffdfd927b523821b88f61d3aeab531e1417a9810f488"},
{"name":"fog-json","version":"1.2.0","platform":"ruby","checksum":"dd4f5ab362dbc72b687240bba9d2dd841d5dfe888a285797533f85c03ea548fe"},
{"name":"fog-local","version":"0.8.0","platform":"ruby","checksum":"263b2d09e54c69d1b87ad7f235a1a1e53c8a674edcedf7512c1715765ad7ef79"},
{"name":"fog-openstack","version":"1.0.8","platform":"ruby","checksum":"8f174ab5e5b1bc107c7da90cc7c47a24930e1566cd88ab4df447026ea8b63d9c"},
{"name":"fog-rackspace","version":"0.1.1","platform":"ruby","checksum":"4a8c7a2432dd32321958c869f3b1b8190cf4eac292024e6ea267bc6040a44b78"},
{"name":"fog-xml","version":"0.1.3","platform":"ruby","checksum":"5604c42649ebb0d8a31bd973aa000c2dd0127f1c1c4c174b69266a2e78e37410"},
{"name":"formatador","version":"0.2.5","platform":"ruby","checksum":"80821869ddacb79e72870ff4bb1531efacd278c04f2df26bc6b4529ee13582bd"},
{"name":"fugit","version":"1.8.1","platform":"ruby","checksum":"18ffb26813869610f71bb0b7d568c3624d2b3025aeebb6600a18df0c77a6a2b2"},
{"name":"fuubar","version":"2.2.0","platform":"ruby","checksum":"9b0263c4074f39c68b37f1e4e69a7d3cfc7523c41bea43601235daa723179b4a"},
{"name":"fuzzyurl","version":"0.9.0","platform":"ruby","checksum":"542efa80f2bcaadbdc402c2f0b572f2e335a1d53e375aecad68bbb3d86860c0f"},
{"name":"gapic-common","version":"0.18.0","platform":"ruby","checksum":"6fd55a538ce2d63026fa05f379b1aec00788cc060f76903739516ab1ca1496ab"},
{"name":"gemoji","version":"3.0.1","platform":"ruby","checksum":"80553f2f4932a7a95fb1b3c7c63f7dd937e7c8c610164bbdea28fd06eba5f36d"},
{"name":"get_process_mem","version":"0.2.7","platform":"ruby","checksum":"4afd3c3641dd6a817c09806c7d6d509d8a9984512ac38dea8b917426bbf77eba"},
{"name":"gettext","version":"3.3.6","platform":"ruby","checksum":"ee6bbd1b2f833ee52d7797fa68acbfecc4726aec6b6280fd7eab92aa0190b413"},
@ -200,10 +207,10 @@
{"name":"gitaly","version":"15.9.0.pre.rc3","platform":"ruby","checksum":"6ac64320a70417131a4b97f5dd45d4e203d60703cc3cba156561e7f8c50a4abe"},
{"name":"gitlab","version":"4.19.0","platform":"ruby","checksum":"3f645e3e195dbc24f0834fbf83e8ccfb2056d8e9712b01a640aad418a6949679"},
{"name":"gitlab-chronic","version":"0.10.5","platform":"ruby","checksum":"f80f18dc699b708870a80685243331290bc10cfeedb6b99c92219722f729c875"},
{"name":"gitlab-dangerfiles","version":"3.7.0","platform":"ruby","checksum":"35c5bc42e60c575ab5701192ca2384ab414b14c2963602b39e143b1aaeb7e54d"},
{"name":"gitlab-dangerfiles","version":"3.8.0","platform":"ruby","checksum":"7ef0c3205faa38a2ada19ee5b8e4012ea696611aa02564a4a95eaf3fb26d1a7e"},
{"name":"gitlab-experiment","version":"0.7.1","platform":"ruby","checksum":"166dddb3aa83428bcaa93c35684ed01dc4d61f321fd2ae40b020806dc54a7824"},
{"name":"gitlab-fog-azure-rm","version":"1.7.0","platform":"ruby","checksum":"969c67943c54ad4c259a6acd040493f13922fbdf2211bb4eca00e71505263dc2"},
{"name":"gitlab-labkit","version":"0.30.1","platform":"ruby","checksum":"bdedbd86014c83dfd6a50d20dbc1709697bba2bb9e3666383e5f28cbd312b113"},
{"name":"gitlab-labkit","version":"0.31.1","platform":"ruby","checksum":"3e3a39370966b5d2739c2d9d9005c0ea27541d32cb7292e856e8bd74c720bffb"},
{"name":"gitlab-license","version":"2.2.1","platform":"ruby","checksum":"39fcf6be8b2887df8afe01b5dcbae8d08b7c5d937ff56b0fb40484a8c4f02d30"},
{"name":"gitlab-mail_room","version":"0.0.9","platform":"ruby","checksum":"6700374b5c0aa9d9ad4e711aeb677f0b7d415a6d01d3baa699efab25349d851c"},
{"name":"gitlab-markup","version":"1.9.0","platform":"ruby","checksum":"7eda045a08ec2d110084252fa13a8c9eac8bdac0e302035ca7db4b82bcbd7ed4"},
@ -231,16 +238,20 @@
{"name":"google-cloud-core","version":"1.6.0","platform":"ruby","checksum":"ea1744cd5a3085d3072de3fab9106afc769cd198609ebb5c6eeb5f13da46b72a"},
{"name":"google-cloud-env","version":"1.6.0","platform":"ruby","checksum":"6179acb946975892c7908748df5722a4ebadfc8cf5bb7b0d8d933ca67183fa15"},
{"name":"google-cloud-errors","version":"1.3.0","platform":"ruby","checksum":"450b681e24c089a20721a01acc4408bb4a7b0df28c175aaab488da917480d64b"},
{"name":"google-cloud-profiler-v2","version":"0.4.0","platform":"ruby","checksum":"53fc2ab175d08f54233c644310d47798feac996220916815c4fb44c937b5d3e3"},
{"name":"google-cloud-storage","version":"1.44.0","platform":"ruby","checksum":"299a1e055c9277c8120f7c10d21d37e4d8c17c7b963350c0e0bff7e9d9a570ea"},
{"name":"google-protobuf","version":"3.21.12","platform":"java","checksum":"35362ef8abf98ad597dffee588390b8b3b2f0f3d70261c3eed3f99e564f3289d"},
{"name":"google-protobuf","version":"3.21.12","platform":"ruby","checksum":"4b09bb7e3168cda689efebcd3373304e124b14aabf776fbf1f0a7615259c8fb5"},
{"name":"google-protobuf","version":"3.21.12","platform":"x64-mingw-ucrt","checksum":"e4444119acd56bf4661b3f38dc2795abae2cd5c2ade88154d5fc405008fbdcf7"},
{"name":"google-protobuf","version":"3.21.12","platform":"x64-mingw32","checksum":"e6a879e1100f04506aea352d22f70a0ed77899fc64af3ff8c24a242331be923d"},
{"name":"google-protobuf","version":"3.21.12","platform":"x86-linux","checksum":"54bbacbca58323fab222746df30e60a55df89f699e319ce0774d5bdd637b3a54"},
{"name":"google-protobuf","version":"3.21.12","platform":"x86-mingw32","checksum":"979e6388dd5f3171043c5a00ac2f66b2789d7fc67b18207d1aabfa1dc27d9558"},
{"name":"google-protobuf","version":"3.21.12","platform":"x86_64-darwin","checksum":"d7e59bd1040e510fd67fb96d08be84a4e362641f5229bf3fd870e383b2913574"},
{"name":"google-protobuf","version":"3.21.12","platform":"x86_64-linux","checksum":"cb6820a68c7807e12ca1e6b69689b833d675ed81435a2179d502575ed5db3de0"},
{"name":"googleapis-common-protos-types","version":"1.3.0","platform":"ruby","checksum":"c5411f3197cc3e02547ded1858303b1f830b4dc89c588c142ad6c8a231050671"},
{"name":"google-protobuf","version":"3.22.2","platform":"aarch64-linux","checksum":"21357d807fd4b7e6e423dafa98732bf9a2be2767c06ea81a8a7980e71659783a"},
{"name":"google-protobuf","version":"3.22.2","platform":"arm64-darwin","checksum":"ee4026e3d24d2c584476dd0dd1ff4662589711709ef5a91b82d36c995bb711d1"},
{"name":"google-protobuf","version":"3.22.2","platform":"java","checksum":"d3d5389755bcf788717f000c9de41bed64fc211c46687dd41ebf7f8545b57962"},
{"name":"google-protobuf","version":"3.22.2","platform":"ruby","checksum":"d516c13248500fb4e1af469c2d71e8b6ecffacb6f55e9be203f01b7d0ff01eff"},
{"name":"google-protobuf","version":"3.22.2","platform":"x64-mingw-ucrt","checksum":"c26f38dde5612793db886a19485db7d3037628edf1d35ee8b5ca1ba16c82d005"},
{"name":"google-protobuf","version":"3.22.2","platform":"x64-mingw32","checksum":"5c36e9f519988af2ac52444f3881fc4f6f6181a6177c01bae7b8ea007c76f80b"},
{"name":"google-protobuf","version":"3.22.2","platform":"x86-linux","checksum":"ab49eb312d414e9a7231542240a4fddc52ea8c78007b812132a2c1d9ba943e26"},
{"name":"google-protobuf","version":"3.22.2","platform":"x86-mingw32","checksum":"7fa69f62e182bae2a32f499da9ce8e5d9412d0a5768764967a7c1d0d89492e2e"},
{"name":"google-protobuf","version":"3.22.2","platform":"x86_64-darwin","checksum":"e716c0fc6c970d82febf2447de2c762d265c288dbc26c3043c30544c8a4d60d9"},
{"name":"google-protobuf","version":"3.22.2","platform":"x86_64-linux","checksum":"8fd16e0115d01209494767b6182c2a9f5d257d5f3c495c513762555a46f1ab88"},
{"name":"googleapis-common-protos","version":"1.4.0","platform":"ruby","checksum":"da2380fb5ab1563580816c74e8d684ac17512c3654c829a3ee84f6d6139de382"},
{"name":"googleapis-common-protos-types","version":"1.5.0","platform":"ruby","checksum":"5769cf7376abc86ef7f5897a4aaca1d5c5a3c49ddabeddd2c251fcf8155f858b"},
{"name":"googleauth","version":"1.3.0","platform":"ruby","checksum":"51dd7362353cf1e90a2d01e1fb94321ae3926c776d4dc4a79db65230217ffcc2"},
{"name":"gpgme","version":"2.0.22","platform":"ruby","checksum":"7c6904952afdd0bf2c7c3ed6de98a5143f86c6b7390dbcd9d7012bddfa3ec862"},
{"name":"grape","version":"1.5.2","platform":"ruby","checksum":"1df3b734c3862e235174232bc629587eddda9ef3df648230827575186700ae29"},
@ -279,7 +290,7 @@
{"name":"html2text","version":"0.2.0","platform":"ruby","checksum":"31c2f0be9ab7aa4fc780b07d5f84882ebc22a9024c29a45f4f5adfe42e92ad4f"},
{"name":"htmlbeautifier","version":"1.4.2","platform":"ruby","checksum":"9de0c98480fe80d795ed5734a11f183563cd969686f25a04609c0f5a446fa5f8"},
{"name":"htmlentities","version":"4.3.4","platform":"ruby","checksum":"125a73c6c9f2d1b62100b7c3c401e3624441b663762afa7fe428476435a673da"},
{"name":"http","version":"5.1.0","platform":"ruby","checksum":"b21e4f0dac51f52df001f1fa3dd3b0a8aadf3d8468d3c520c0caddeeb4f1c14a"},
{"name":"http","version":"5.1.1","platform":"ruby","checksum":"fcaec14a4f82de6d2f9cb978c07326814c6c2b42b8974f6ec166ff19c645ebaf"},
{"name":"http-accept","version":"1.7.0","platform":"ruby","checksum":"c626860682bfbb3b46462f8c39cd470fd7b0584f61b3cc9df5b2e9eb9972a126"},
{"name":"http-cookie","version":"1.0.5","platform":"ruby","checksum":"73756d46c7dbdc7023deecdb8a171348ea95a1b99810b31cfe8b4fb4e9a6318f"},
{"name":"http-form_data","version":"2.3.0","platform":"ruby","checksum":"cc4eeb1361d9876821e31d7b1cf0b68f1cf874b201d27903480479d86448a5f3"},
@ -289,6 +300,7 @@
{"name":"i18n_data","version":"0.13.1","platform":"ruby","checksum":"e5aa99b09a69b463bb0443fc1f9540351a49f3d1541c5e91316bafa035c63f66"},
{"name":"icalendar","version":"2.8.0","platform":"ruby","checksum":"e404f970c7572bdebf6f09f9890970b68aab400ba9e609dc7d46098f28d0ee87"},
{"name":"ice_cube","version":"0.16.4","platform":"ruby","checksum":"da117e5de24bdc33931be629f9b55048641924442c7e9b72fedc05e5592531b7"},
{"name":"ice_nine","version":"0.11.2","platform":"ruby","checksum":"5d506a7d2723d5592dc121b9928e4931742730131f22a1a37649df1c1e2e63db"},
{"name":"imagen","version":"0.1.8","platform":"ruby","checksum":"fde7b727d4fe79c6bb5ac46c1f7184bf87a6d54df54d712ad2be039d2f93a162"},
{"name":"invisible_captcha","version":"2.0.0","platform":"ruby","checksum":"a381edcb1d1b8744e9dc398ecad142c3e2ab077604645f85eeb02f9ea535c042"},
{"name":"ipaddr","version":"1.2.2","platform":"ruby","checksum":"27916ee6367d549850d3675bc020f1f1ddafbbe1cfc58635f17dfa56c42f9f79"},
@ -313,8 +325,9 @@
{"name":"knapsack","version":"1.21.1","platform":"ruby","checksum":"82f70422adebcacec1b514f6ebff65265fc85d836e3c320718a160d8ac41cf14"},
{"name":"kramdown","version":"2.3.2","platform":"ruby","checksum":"cb4530c2e9d16481591df2c9336723683c354e5416a5dd3e447fa48215a6a71c"},
{"name":"kramdown-parser-gfm","version":"1.1.0","platform":"ruby","checksum":"fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729"},
{"name":"kubeclient","version":"4.11.0","platform":"ruby","checksum":"4985fcd749fb8c364a668a8350a49821647f03aa52d9ee6cbc582beb8e883fcc"},
{"name":"launchy","version":"2.5.0","platform":"ruby","checksum":"954243c4255920982ce682f89a42e76372dba94770bf09c23a523e204bdebef5"},
{"name":"lefthook","version":"1.2.9","platform":"ruby","checksum":"1fd4a768e08fc624e756597fc628b3c7991267325974a7a5cc169595b425701d"},
{"name":"lefthook","version":"1.3.3","platform":"ruby","checksum":"8269a799d0abad6aaf188edb66a661c729abe6b74f3d8d660529d51f9ed2dc5d"},
{"name":"letter_opener","version":"1.7.0","platform":"ruby","checksum":"095bc0d58e006e5b43ea7d219e64ecf2de8d1f7d9dafc432040a845cf59b4725"},
{"name":"letter_opener_web","version":"2.0.0","platform":"ruby","checksum":"33860ad41e1785d75456500e8ca8bba8ed71ee6eaf08a98d06bbab67c5577b6f"},
{"name":"libyajl2","version":"1.2.0","platform":"ruby","checksum":"1117cd1e48db013b626e36269bbf1cef210538ca6d2e62d3fa3db9ded005b258"},
@ -329,7 +342,7 @@
{"name":"lookbook","version":"1.5.3","platform":"ruby","checksum":"4a0ff475af85de0dcdf45a5541fbc40dd8f66669a559efe8297c1d7fee028b38"},
{"name":"lru_redux","version":"1.1.0","platform":"ruby","checksum":"ee71d0ccab164c51de146c27b480a68b3631d5b4297b8ffe8eda1c72de87affb"},
{"name":"lumberjack","version":"1.2.7","platform":"ruby","checksum":"a5c6aae6b4234f1420dbcd80b23e3bca0817bd239440dde097ebe3fa63c63b1f"},
{"name":"mail","version":"2.7.1","platform":"ruby","checksum":"ec2a3d489f7510b90d8eaa3f6abaad7038cf1d663cdf8ee66d0214a0bdf99c03"},
{"name":"mail","version":"2.8.1","platform":"ruby","checksum":"ec3b9fadcf2b3755c78785cb17bc9a0ca9ee9857108a64b6f5cfc9c0b5bfc9ad"},
{"name":"marcel","version":"1.0.2","platform":"ruby","checksum":"a013b677ef46cbcb49fd5c59b3d35803d2ee04dd75d8bfdc43533fc5a31f7e4e"},
{"name":"marginalia","version":"1.11.1","platform":"ruby","checksum":"cb63212ab63e42746e27595e912cb20408a1a28bcd0edde55d15b7c45fa289cf"},
{"name":"memoist","version":"0.16.2","platform":"ruby","checksum":"a52c53a3f25b5875151670b2f3fd44388633486dc0f09f9a7150ead1e3bf3c45"},
@ -360,25 +373,29 @@
{"name":"nap","version":"1.1.0","platform":"ruby","checksum":"949691660f9d041d75be611bb2a8d2fd559c467537deac241f4097d9b5eea576"},
{"name":"nenv","version":"0.3.0","platform":"ruby","checksum":"d9de6d8fb7072228463bf61843159419c969edb34b3cef51832b516ae7972765"},
{"name":"net-http-persistent","version":"4.0.1","platform":"ruby","checksum":"2752f4cce05fd1c45e0537c6f3a98fa5a4899efd5f88e63c104ed5f05cbddef9"},
{"name":"net-imap","version":"0.3.4","platform":"ruby","checksum":"a82a59e2a429433dc54cae5a8b2979ffe49da8c66085740811bfa337dc3729b5"},
{"name":"net-ldap","version":"0.17.1","platform":"ruby","checksum":"52571b55f9157120833ac1667f2969ce0139251811d0a9b64657c1c135069cf9"},
{"name":"net-ntp","version":"2.1.3","platform":"ruby","checksum":"5bc73f4102bde0d1872bd3b293608ae99d9f5007d744f21919c6a565eda9267d"},
{"name":"net-pop","version":"0.1.2","platform":"ruby","checksum":"848b4e982013c15b2f0382792268763b748cce91c9e91e36b0f27ed26420dff3"},
{"name":"net-protocol","version":"0.1.3","platform":"ruby","checksum":"ad43e2be965ede676683c047b2c3d76762aa49a764779d98312a10da04622c14"},
{"name":"net-scp","version":"3.0.0","platform":"ruby","checksum":"8fc6c80365b95230c6bfc529dbea3893d2d81724855bfb01cbf385866e1c902c"},
{"name":"net-smtp","version":"0.3.3","platform":"ruby","checksum":"3d51dcaa981b74aff2d89cbe89de4503bc2d682365ea5176366e950a0d68d5b0"},
{"name":"net-ssh","version":"6.0.0","platform":"ruby","checksum":"6290ddcb232380cae79b772af924e12f57fe1dcd0f71254411dd21c04f7b13d0"},
{"name":"netrc","version":"0.11.0","platform":"ruby","checksum":"de1ce33da8c99ab1d97871726cba75151113f117146becbe45aa85cb3dabee3f"},
{"name":"nio4r","version":"2.5.8","platform":"java","checksum":"b2b1800f6bf7ce4b797ca8b639ad278a99c9c904fb087a91d944f38e4bd71401"},
{"name":"nio4r","version":"2.5.8","platform":"ruby","checksum":"3becb4ad95ab8ac0a9bd2e1b16466869402be62848082bf6329ae9091f276676"},
{"name":"no_proxy_fix","version":"0.1.2","platform":"ruby","checksum":"4e9b4c31bb146de7fcf347dc1087bb13ac2039b56d50aa019e61036256abcd00"},
{"name":"nokogiri","version":"1.14.1","platform":"aarch64-linux","checksum":"99594e8b94f576644ac640a223d74c79e840218948e963aa635f0254927bff10"},
{"name":"nokogiri","version":"1.14.1","platform":"arm-linux","checksum":"1dc9b7821e1fa1f3fda40659662e51a4b3692acc4ee6342ee34a6a537fc1d5d8"},
{"name":"nokogiri","version":"1.14.1","platform":"arm64-darwin","checksum":"1a693df86da8c4c97b01d614470f9c3e10b9c755de8803fbfcfffe0f9dff522a"},
{"name":"nokogiri","version":"1.14.1","platform":"java","checksum":"c1f87a8f7bc56028deb2aecbb29e9b318405f7c468b29047aede78b41bc735a2"},
{"name":"nokogiri","version":"1.14.1","platform":"ruby","checksum":"b2db3af7769c29cd77d5f39cd3d0b65ab10975bdecf04be71d683f9c9abe2663"},
{"name":"nokogiri","version":"1.14.1","platform":"x64-mingw-ucrt","checksum":"2463a1ae0be5f06a10f3f3b374c2b743bff6280db993d488511a19bb7bc7cb7c"},
{"name":"nokogiri","version":"1.14.1","platform":"x64-mingw32","checksum":"f3a2b0ceedf51d776b39dc759ce191a4df842d7d4f5900c64f33d4753db39877"},
{"name":"nokogiri","version":"1.14.1","platform":"x86-linux","checksum":"f395d6c28c822b0877cfb0c71781f05243c034b4823359ab25b3288a73b9fc82"},
{"name":"nokogiri","version":"1.14.1","platform":"x86-mingw32","checksum":"be34b32fe74e82bffca5b1f3df8727c8fdc828762b6dddab53a11cd8f8515785"},
{"name":"nokogiri","version":"1.14.1","platform":"x86_64-darwin","checksum":"9b14091f77086c4f0f09451ba3acd1b5f7e0076fb34fc536682170fa9f1a5074"},
{"name":"nokogiri","version":"1.14.1","platform":"x86_64-linux","checksum":"21d234c51582b292e2e1e02e6c30eea9188894348985d6910aa8e993749c0aff"},
{"name":"nokogiri","version":"1.14.2","platform":"aarch64-linux","checksum":"966acf4f6c1fba10518f86498141cf44265564ac5a65dcc8496b65f8c354f776"},
{"name":"nokogiri","version":"1.14.2","platform":"arm-linux","checksum":"8a3a35cadae4a800ddc0b967394257343d62196d9d059b54e38cf067981db428"},
{"name":"nokogiri","version":"1.14.2","platform":"arm64-darwin","checksum":"81404cd014ecb597725c3847523c2ee365191a968d0b5f7d857e03f388c57631"},
{"name":"nokogiri","version":"1.14.2","platform":"java","checksum":"0a39222af14e75eb0243e8d969345e03b90c0e02b0f33c61f1ebb6ae53538bb5"},
{"name":"nokogiri","version":"1.14.2","platform":"ruby","checksum":"c765a74aac6cf430a710bb0b6038b8ee11f177393cd6ae8dadc7a44a6e2658b6"},
{"name":"nokogiri","version":"1.14.2","platform":"x64-mingw-ucrt","checksum":"62a18f9213a0ceeaf563d1bc7ccfd93273323c4356ded58a5617c59bc4635bc5"},
{"name":"nokogiri","version":"1.14.2","platform":"x64-mingw32","checksum":"54f6ac2c15a7a88f431bb5e23f4616aa8fc97a92eb63336bcf65b7050f2d3be0"},
{"name":"nokogiri","version":"1.14.2","platform":"x86-linux","checksum":"c42fa0856f01f901954898e28c3c2b4dce0e843056b1b126f441d06e887e1b77"},
{"name":"nokogiri","version":"1.14.2","platform":"x86-mingw32","checksum":"f940d9c8e47b0f19875465376f2d1c8911bc9489ac9a48c124579819dc4a7f19"},
{"name":"nokogiri","version":"1.14.2","platform":"x86_64-darwin","checksum":"2508978f5ca28944919973f6300f0a7355fbe72604ab6a6913f1630be1030265"},
{"name":"nokogiri","version":"1.14.2","platform":"x86_64-linux","checksum":"bc6405e1f3ddac6e401f82d775f1c0c24c6e58c371b3fadaca0596d5d511e476"},
{"name":"notiffany","version":"0.1.3","platform":"ruby","checksum":"d37669605b7f8dcb04e004e6373e2a780b98c776f8eb503ac9578557d7808738"},
{"name":"numerizer","version":"0.2.0","platform":"ruby","checksum":"e58076d5ee5370417b7e52d9cb25836d62acd1b8d9a194c308707986c1705d7b"},
{"name":"oauth","version":"0.5.6","platform":"ruby","checksum":"4085fe28e0c5e2434135e00a6555294fd2a4ff96a98d1bdecdcd619fc6368dff"},
@ -405,7 +422,7 @@
{"name":"open4","version":"1.3.4","platform":"ruby","checksum":"a1df037310624ecc1ea1d81264b11c83e96d0c3c1c6043108d37d396dcd0f4b1"},
{"name":"openid_connect","version":"1.3.0","platform":"ruby","checksum":"a796855096850cc01140e37ea6ae9fd14f2be818b9b5bc698418063dfe228770"},
{"name":"openssl","version":"2.2.2","platform":"ruby","checksum":"53f72382bac046c36c37049c7ec9d5597d42628d140b5cfbcd61e0226c0ca077"},
{"name":"openssl-signature_algorithm","version":"0.4.0","platform":"ruby","checksum":"e53a225b773784935249cf4c61238c6cf0e1e464e78ae2f8ddaf995fb22ca991"},
{"name":"openssl-signature_algorithm","version":"1.3.0","platform":"ruby","checksum":"a3b40b5e8276162d4a6e50c7c97cdaf1446f9b2c3946a6fa2c14628e0c957e80"},
{"name":"opentracing","version":"0.5.0","platform":"ruby","checksum":"deb5d7abe6b0e7631d866d8cb5ee7bb9352650a504a32f61591302bc510b9286"},
{"name":"optimist","version":"3.0.1","platform":"ruby","checksum":"336b753676d6117cad9301fac7e91dab4228f747d4e7179891ad3a163c64e2ed"},
{"name":"org-ruby","version":"0.9.12","platform":"ruby","checksum":"93cbec3a4470cb9dca6a4a98dc276a6434ea9d9e7bc2d42ea33c3aedd5d1c974"},
@ -430,7 +447,7 @@
{"name":"premailer","version":"1.16.0","platform":"ruby","checksum":"03e4402c448e6bae13fb5f6301a8bde4f3508e1bff90ae7c0972c7be94694786"},
{"name":"premailer-rails","version":"1.10.3","platform":"ruby","checksum":"7cdcb97027866f7a81c490c6d15ada7f39666b5f6375f0821b7e97e0483b112f"},
{"name":"proc_to_ast","version":"0.1.0","platform":"ruby","checksum":"92a73fa66e2250a83f8589f818b0751bcf227c68f85916202df7af85082f8691"},
{"name":"prometheus-client-mmap","version":"0.17.0","platform":"ruby","checksum":"766d3706f7b26fed5a177843ab15b5b0dc108f9677d8bdbe0c4b5d9375c2af24"},
{"name":"prometheus-client-mmap","version":"0.19.1","platform":"ruby","checksum":"718b5f1aacab79877b30ae2f897fbf0c6a6d15d7f6e03928abb50a76ba479c7d"},
{"name":"pry","version":"0.14.2","platform":"java","checksum":"fd780670977ba04ff7ee32dabd4d02fe4bf02e977afe8809832d5dca1412862e"},
{"name":"pry","version":"0.14.2","platform":"ruby","checksum":"c4fe54efedaca1d351280b45b8849af363184696fcac1c72e0415f9bdac4334d"},
{"name":"pry-byebug","version":"3.10.1","platform":"ruby","checksum":"c8f975c32255bfdb29e151f5532130be64ff3d0042dc858d0907e849125581f8"},
@ -491,7 +508,7 @@
{"name":"rexml","version":"3.2.5","platform":"ruby","checksum":"a33c3bf95fda7983ec7f05054f3a985af41dbc25a0339843bd2479e93cabb123"},
{"name":"rinku","version":"2.0.0","platform":"ruby","checksum":"3e695aaf9f24baba3af45823b5c427b58a624582132f18482320e2737f9f8a85"},
{"name":"rotp","version":"6.2.0","platform":"ruby","checksum":"239a2eefba6f1bd4157b2c735d0f975598e0ef94823eea2f35d103d2e5cc0787"},
{"name":"rouge","version":"3.30.0","platform":"ruby","checksum":"a3d353222aa72e49e2c86726c0bcfd719f82592f57d494474655f48e669eceb6"},
{"name":"rouge","version":"4.1.0","platform":"ruby","checksum":"0f6fc19a0d66db782f6fa67f56356af4ef001cd43bbd8ad5aa798a081de4dd10"},
{"name":"rqrcode","version":"0.7.0","platform":"ruby","checksum":"8b3a5cba9cc199ba2d781a7c767cb55679f29a3621aa0506a799cec3760d16a1"},
{"name":"rqrcode-rails3","version":"0.1.7","platform":"ruby","checksum":"6f0582f26485123e5ed6f2a8a2871f00d86d353e0f58c8429a5a13212bcf48c4"},
{"name":"rspec","version":"3.12.0","platform":"ruby","checksum":"ccc41799a43509dc0be84070e3f0410ac95cbd480ae7b6c245543eb64162399c"},
@ -499,7 +516,9 @@
{"name":"rspec-core","version":"3.12.0","platform":"ruby","checksum":"c466f4137966526e177d2156ca45c249eeecc7ed519b23ae2fb80c4675406bc5"},
{"name":"rspec-expectations","version":"3.12.2","platform":"ruby","checksum":"8652db70b25ae3378b7274477a906b6ad1833a7b7cfbb001a03f49dd1c1d6a0d"},
{"name":"rspec-mocks","version":"3.12.3","platform":"ruby","checksum":"cc0a1176707e641a2c66c71fe769486fec57d7df8ec7e34320f8957a1363026b"},
{"name":"rspec-parameterized","version":"0.5.0","platform":"ruby","checksum":"f163ac07b5edd1eeb13136480623db7020852c70cf0ad2fa98e31384ae162454"},
{"name":"rspec-parameterized","version":"1.0.0","platform":"ruby","checksum":"9c07b043c72afbd23dd9a1dd48c06f46bc2fb1a6d875c6703e254932ba28b386"},
{"name":"rspec-parameterized-core","version":"1.0.0","platform":"ruby","checksum":"287b494985e79821160af63aba4f91db8dbfa9a21cb200db34ba38f40e16ccc1"},
{"name":"rspec-parameterized-table_syntax","version":"1.0.0","platform":"ruby","checksum":"d7df951eff9c5dd367ca7d5f9ae4853bb7ab7941f9d5b35bba361d112704988c"},
{"name":"rspec-rails","version":"6.0.1","platform":"ruby","checksum":"016c8ebd5b38ce5cbce949de2f5b28f2bde7bb78d4de26940516713597b26e34"},
{"name":"rspec-retry","version":"0.6.1","platform":"ruby","checksum":"86b7e8513c5b0c713c2e28854f4d996deb8efa6304eef50f0ad68ee6c563d8da"},
{"name":"rspec-support","version":"3.12.0","platform":"ruby","checksum":"dd4d44b247ff679b95b5607ac5641d197a5f9b1d33f916123cb98fc5f917c58b"},
@ -513,7 +532,7 @@
{"name":"rubocop-rails","version":"2.17.4","platform":"ruby","checksum":"8004149a14372d3d6cededd000357879fa7eb0421403a7a26bc717e2a98bbedb"},
{"name":"rubocop-rspec","version":"2.18.1","platform":"ruby","checksum":"41c6455630fc98b809ebca047413389e2b7e3f68975028365c07bfea878db5ee"},
{"name":"ruby-fogbugz","version":"0.3.0","platform":"ruby","checksum":"5e04cde474648f498a71cf1e1a7ab42c66b953862fbe224f793ec0a7a1d5f657"},
{"name":"ruby-magic","version":"0.5.4","platform":"ruby","checksum":"2c17b185130d10a83791f63a40baa358c4b138af37da3f4dab53690121c421d5"},
{"name":"ruby-magic","version":"0.6.0","platform":"ruby","checksum":"7b2138877b7d23aff812c95564eba6473b74b815ef85beb0eb792e729a2b6101"},
{"name":"ruby-progressbar","version":"1.11.0","platform":"ruby","checksum":"cc127db3866dc414ffccbf92928a241e585b3aa2b758a5563e74a6ee0f57d50a"},
{"name":"ruby-saml","version":"1.13.0","platform":"ruby","checksum":"d31cbdf5fb8fdd6aa3187e48dba3085cfeb751af30276a5739aa3659a66f069c"},
{"name":"ruby-statistics","version":"3.0.0","platform":"ruby","checksum":"610301370346931cb701e3a8d3d3e28eb65681162cae6066c0c11abf20efdc81"},
@ -533,7 +552,6 @@
{"name":"sassc-rails","version":"2.1.0","platform":"ruby","checksum":"764dcc74e06930e3483caf0d595084d11f2b0fefd6539abf487cdddfba6cafa2"},
{"name":"sawyer","version":"0.9.2","platform":"ruby","checksum":"fa3a72d62a4525517b18857ddb78926aab3424de0129be6772a8e2ba240e7aca"},
{"name":"sd_notify","version":"0.1.1","platform":"ruby","checksum":"cbc7ac6caa7cedd26b30a72b5eeb6f36050dc0752df263452ea24fb5a4ad3131"},
{"name":"securecompare","version":"1.0.0","platform":"ruby","checksum":"cb0c6599deaaedf6d28f8d88538b06e7198c4826b1b8edb1dbeb44a2162fc62b"},
{"name":"seed-fu","version":"2.3.7","platform":"ruby","checksum":"f19673443e9af799b730e3d4eca6a89b39e5a36825015dffd00d02ea3365cf74"},
{"name":"selenium-webdriver","version":"3.142.7","platform":"ruby","checksum":"dea0993e0e4fdb364f0453144814c0e6099a411d17396807c6cac666d0ddac29"},
{"name":"sentry-rails","version":"5.1.1","platform":"ruby","checksum":"906ef0a776ddc35884ab8b548856ba81c607e3fdee7c9c9f7c44efccc16a657f"},
@ -580,7 +598,7 @@
{"name":"sqlite3","version":"1.6.0","platform":"x86_64-linux","checksum":"a2488dcf0e72928bab2b15b934113ce8d7a3b4031277e362d66e40956d5c709e"},
{"name":"ssh_data","version":"1.3.0","platform":"ruby","checksum":"ec7c1e95a3aebeee412147998f4c147b4b05da6ed0aafda6083f9449318eaac0"},
{"name":"ssrf_filter","version":"1.0.8","platform":"ruby","checksum":"03f49f54837e407d43ee93ec733a8a94dc1bcf8185647ac61606e63aaedaa0db"},
{"name":"stackprof","version":"0.2.21","platform":"ruby","checksum":"2b6406c55dc2e134b2789c4cc631d96e67da87821a166f4ae12f15bec5cff5ae"},
{"name":"stackprof","version":"0.2.23","platform":"ruby","checksum":"5c930b229c27bc64a2a0eb5e7203d76756ba0567bad7bf5290921ee1ed50230b"},
{"name":"state_machines","version":"0.5.0","platform":"ruby","checksum":"23e6249d374a920b528dccade403518b4abbd83841a3e2c9ef13e6f1a009b102"},
{"name":"state_machines-activemodel","version":"0.8.0","platform":"ruby","checksum":"e932dab190d4be044fb5f9cab01a3ea0b092c5f113d4676c6c0a0d49bf738d2c"},
{"name":"state_machines-activerecord","version":"0.8.0","platform":"ruby","checksum":"072fb701b8ab03de0608297f6c55dc34ed096e556fa8f77e556f3c461c71aab6"},
@ -601,20 +619,23 @@
{"name":"test_file_finder","version":"0.1.4","platform":"ruby","checksum":"bc36d8339eac4fb9dc36514a7c5f4d389ac2fb6d010716fc715c5c8fbb98eacd"},
{"name":"text","version":"1.3.1","platform":"ruby","checksum":"2fbbbc82c1ce79c4195b13018a87cbb00d762bda39241bb3cdc32792759dd3f4"},
{"name":"thor","version":"1.2.1","platform":"ruby","checksum":"b1752153dc9c6b8d3fcaa665e9e1a00a3e73f28da5e238b81c404502e539d446"},
{"name":"thread_safe","version":"0.3.6","platform":"java","checksum":"bb28394cd0924c068981adee71f36a81c85c92e7d74d3f62372bd51489a0e0c2"},
{"name":"thread_safe","version":"0.3.6","platform":"ruby","checksum":"9ed7072821b51c57e8d6b7011a8e282e25aeea3a4065eab326e43f66f063b05a"},
{"name":"thrift","version":"0.16.0","platform":"ruby","checksum":"d023286ea89e30444c9f1c28dd76107f87d8aaf85fe1742da1d8cd3b5417dcce"},
{"name":"tilt","version":"2.0.11","platform":"ruby","checksum":"7b180fc472cbdeb186c85d31c0f2d1e61a2c0d77e1d9fd0ca28482a9d972d6a0"},
{"name":"timeliness","version":"0.3.10","platform":"ruby","checksum":"c357233ce19dc53148e8b29dfddde134689f18f52b32928e9dfe12ebcf4a773f"},
{"name":"timeout","version":"0.3.2","platform":"ruby","checksum":"269b765ea2fb052fc2bfb8d3be2c90d60fe1161f92bf971c91d6151b8a6bcddd"},
{"name":"timfel-krb5-auth","version":"0.8.3","platform":"ruby","checksum":"ab388c9d747fa3cd95baf2cc1c03253e372d8c680adcc543670f4f099854bb80"},
{"name":"tins","version":"1.31.1","platform":"ruby","checksum":"51c4a347c25c630d310cbc2c040ffb84e266c8227f2ade881f1130ee4f9fbecf"},
{"name":"toml-rb","version":"2.2.0","platform":"ruby","checksum":"a1e2c54ac3cc9d49861004f75f0648b3622ac03a76abe105358c31553227d9a6"},
{"name":"tomlrb","version":"1.3.0","platform":"ruby","checksum":"68666bf53fa70ba686a48a7435ce7e086f5227c58c4c993bd9792f4760f2a503"},
{"name":"tpm-key_attestation","version":"0.9.0","platform":"ruby","checksum":"e469ad9111a68dab4d04596e1c0621d7c877c2e3e247f765af3c04f1adf2b8cd"},
{"name":"tpm-key_attestation","version":"0.12.0","platform":"ruby","checksum":"e133d80cf24fef0e7a7dfad00fd6aeff01fc79875fbfc66cd8537bbd622b1e6d"},
{"name":"trailblazer-option","version":"0.1.2","platform":"ruby","checksum":"20e4f12ea4e1f718c8007e7944ca21a329eee4eed9e0fa5dde6e8ad8ac4344a3"},
{"name":"train-core","version":"3.4.9","platform":"ruby","checksum":"d7ad8fa9a379c43a30baaaf1141af1cb28349d386c054f7fc81d169a625d6edd"},
{"name":"truncato","version":"0.7.12","platform":"ruby","checksum":"fed9e8a04fa35fd1a64506cd2089761bae4adfe47e756c3ce98a5c43856c9c4c"},
{"name":"tty-color","version":"0.6.0","platform":"ruby","checksum":"6f9c37ca3a4e2367fb2e6d09722762647d6f455c111f05b59f35730eeb24332a"},
{"name":"tty-cursor","version":"0.7.1","platform":"ruby","checksum":"79534185e6a777888d88628b14b6a1fdf5154a603f285f80b1753e1908e0bf48"},
{"name":"tty-markdown","version":"0.7.1","platform":"ruby","checksum":"062face5613adc2ec3d500e4c06e6b090699a97cad62d9dfa55d645f60ebdc92"},
{"name":"tty-markdown","version":"0.7.2","platform":"ruby","checksum":"1ed81db97028d006ba81e2cfd9fe0a04b0eb28650ad0d4086ed6e5627f4ac511"},
{"name":"tty-prompt","version":"0.23.1","platform":"ruby","checksum":"fcdbce905238993f27eecfdf67597a636bc839d92192f6a0eef22b8166449ec8"},
{"name":"tty-reader","version":"0.9.0","platform":"ruby","checksum":"c62972c985c0b1566f0e56743b6a7882f979d3dc32ff491ed490a076f899c2b1"},
{"name":"tty-screen","version":"0.8.1","platform":"ruby","checksum":"6508657c38f32bdca64880abe201ce237d80c94146e1f9b911cba3c7823659a2"},
@ -633,7 +654,7 @@
{"name":"unicode_utils","version":"1.4.0","platform":"ruby","checksum":"b922d0cf2313b6b7136ada6645ce7154ffc86418ca07d53b058efe9eb72f2a40"},
{"name":"uniform_notifier","version":"1.16.0","platform":"ruby","checksum":"99b39ee4a0864e3b49f375b5e5803eb26d35ed6eb1719c96407573a87bc4dbb5"},
{"name":"unleash","version":"3.2.2","platform":"ruby","checksum":"0f6e56498de920de66a01bceffb93933693ade646bb853fc70eb16bd1026b93b"},
{"name":"unparser","version":"0.6.0","platform":"ruby","checksum":"4afa0540583032d28a623e65f057809fdbed6dc84bd8a1de93262e1aa4618608"},
{"name":"unparser","version":"0.6.7","platform":"ruby","checksum":"ae42e73edfa273766e66c166368fb75ca5972cd8ec50c536253e0f6299a9dec8"},
{"name":"uri_template","version":"0.7.0","platform":"ruby","checksum":"312c8fe13700db86ac9d05ea997af3db03abdf50c65b1801d775bc7a695f185d"},
{"name":"valid_email","version":"0.1.3","platform":"ruby","checksum":"b81452b51b64c4beb67913f68db52c20ecb4d73d45512f5b282ab4a3f4416570"},
{"name":"validate_email","version":"0.1.6","platform":"ruby","checksum":"9dfe9016d527b17a8d3a6e95e4dc50a125400eef899d13d4cc2a254393f82ee4"},
@ -642,10 +663,11 @@
{"name":"version_gem","version":"1.1.0","platform":"ruby","checksum":"6b009518020db57f51ec7b410213fae2bf692baea9f1b51770db97fbc93d9a80"},
{"name":"version_sorter","version":"2.3.0","platform":"ruby","checksum":"2147f2a1a3804fbb8f60d268b7d7c1ec717e6dd727ffe2c165b4e05e82efe1da"},
{"name":"view_component","version":"2.74.1","platform":"ruby","checksum":"0bbd47a9c11455a45043dc01aa604db708654718a4d8755c911425482e8392c0"},
{"name":"virtus","version":"2.0.0","platform":"ruby","checksum":"8841dae4eb7fcc097320ba5ea516bf1839e5d056c61ee27138aa4bddd6e3d1c2"},
{"name":"vmstat","version":"2.3.0","platform":"ruby","checksum":"ab5446a3e3bd0a9cdb9d9ac69a0bbd119c4f161d945a0846a519dd7018af656d"},
{"name":"warden","version":"1.2.9","platform":"ruby","checksum":"46684f885d35a69dbb883deabf85a222c8e427a957804719e143005df7a1efd0"},
{"name":"warning","version":"1.3.0","platform":"ruby","checksum":"23695a5d8e50bd5c46068931b529bee0b28e4982cbcefbe77d867800dde8069e"},
{"name":"webauthn","version":"2.3.0","platform":"ruby","checksum":"96fbee59f4a45219f1dae96f467b693de144f871be9ec6ea357168624dacd89e"},
{"name":"webauthn","version":"3.0.0","platform":"ruby","checksum":"3f77d422c2a8a4b31e56cf42f83414bd066e0506e9896936e1730262dc4a20e6"},
{"name":"webfinger","version":"1.2.0","platform":"ruby","checksum":"7814ef1c85da47514f65c6e5ca14205fa9ce41ea2a70785e0c872842162852a2"},
{"name":"webmock","version":"3.9.1","platform":"ruby","checksum":"bcf6822456b234fb1bed2b0a89bff31fe0641214b44f6ba4ced2b824cf31337d"},
{"name":"webrick","version":"1.6.1","platform":"ruby","checksum":"0b4d1eab918f5f53333c690ad470825e51844ce9851e403a3fd47d6a84d9d67c"},

View file

@ -10,6 +10,15 @@ PATH
bundler-checksum (0.1.0)
bundler
PATH
remote: vendor/gems/cloud_profiler_agent
specs:
cloud_profiler_agent (0.0.1.pre)
google-cloud-profiler-v2 (~> 0.3)
google-protobuf (~> 3.13)
googleauth (>= 0.14)
stackprof (~> 0.2)
PATH
remote: vendor/gems/devise-pbkdf2-encryptable
specs:
@ -30,15 +39,6 @@ PATH
diffy (~> 3.4)
oj (~> 3.13.16)
PATH
remote: vendor/gems/kubeclient
specs:
kubeclient (4.9.4.pre.gitlab1)
http (>= 3.0, < 6.0)
jsonpath (~> 1.0)
recursive-open-struct (~> 1.1, >= 1.1.1)
rest-client (~> 2.0)
PATH
remote: vendor/gems/mail-smtp_pool
specs:
@ -184,10 +184,10 @@ GEM
faraday_middleware (~> 1.0)
faraday_middleware-multi_json (~> 0.0)
oauth2 (>= 1.4, < 3)
asciidoctor (2.0.17)
asciidoctor (2.0.18)
asciidoctor-include-ext (0.4.0)
asciidoctor (>= 1.5.6, < 3.0.0)
asciidoctor-kroki (0.7.0)
asciidoctor-kroki (0.8.0)
asciidoctor (~> 2.0)
asciidoctor-plantuml (0.0.16)
asciidoctor (>= 2.0.17, < 3.0.0)
@ -198,13 +198,13 @@ GEM
autoprefixer-rails (10.2.5.1)
execjs (> 0)
awesome_print (1.9.2)
awrence (1.1.1)
awrence (1.2.1)
aws-eventstream (1.2.0)
aws-partitions (1.703.0)
aws-partitions (1.730.0)
aws-sdk-cloudformation (1.41.0)
aws-sdk-core (~> 3, >= 3.99.0)
aws-sigv4 (~> 1.1)
aws-sdk-core (3.170.0)
aws-sdk-core (3.170.1)
aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.651.0)
aws-sigv4 (~> 1.5)
@ -218,6 +218,17 @@ GEM
aws-sigv4 (~> 1.4)
aws-sigv4 (1.5.1)
aws-eventstream (~> 1, >= 1.0.2)
axe-core-api (4.6.0)
dumb_delegator
virtus
axe-core-rspec (4.6.0)
axe-core-api
dumb_delegator
virtus
axiom-types (0.1.1)
descendants_tracker (~> 0.0.4)
ice_nine (~> 0.11.0)
thread_safe (~> 0.3, >= 0.3.1)
azure-storage-blob (2.0.3)
azure-storage-common (~> 2.0)
nokogiri (~> 1, >= 1.10.8)
@ -232,7 +243,7 @@ GEM
batch-loader (2.0.1)
bcrypt (3.1.16)
benchmark (0.2.0)
benchmark-ips (2.3.0)
benchmark-ips (2.11.0)
benchmark-malloc (0.2.0)
benchmark-memory (0.2.0)
memory_profiler (~> 1)
@ -243,7 +254,8 @@ GEM
erubi (>= 1.0.0)
rack (>= 0.9.0)
bindata (2.4.11)
binding_ninja (0.2.3)
binding_of_caller (1.0.0)
debug_inspector (>= 0.0.1)
bootsnap (1.16.0)
msgpack (~> 1.2)
browser (5.3.1)
@ -292,15 +304,17 @@ GEM
nap
open4 (~> 1.3)
coderay (1.1.3)
coercible (1.0.0)
descendants_tracker (~> 0.0.1)
colored2 (3.1.2)
commonmarker (0.23.6)
concurrent-ruby (1.2.0)
connection_pool (2.3.0)
cork (0.3.0)
colored2 (~> 3.1)
cose (1.0.0)
cose (1.3.0)
cbor (~> 0.5.9)
openssl-signature_algorithm (~> 0.4.0)
openssl-signature_algorithm (~> 1.0)
countries (4.0.1)
i18n_data (~> 0.13.0)
sixarm_ruby_unaccent (~> 1.1)
@ -310,7 +324,7 @@ GEM
creole (0.5.0)
crystalball (0.7.0)
git
css_parser (1.12.0)
css_parser (1.14.0)
addressable
cvss-suite (3.0.1)
danger (8.6.1)
@ -330,13 +344,13 @@ GEM
danger
gitlab (~> 4.2, >= 4.2.0)
database_cleaner (1.7.0)
date (3.3.3)
dead_end (3.1.1)
debug_inspector (1.1.0)
deckar01-task_list (2.3.2)
html-pipeline
declarative (0.0.20)
declarative_policy (1.1.0)
default_value_for (3.4.0)
activerecord (>= 3.2.0, < 7.0)
deprecation_toolkit (1.5.1)
activesupport (>= 4.2)
derailed_benchmarks (2.1.2)
@ -351,6 +365,8 @@ GEM
rake (> 10, < 14)
ruby-statistics (>= 2.1)
thor (>= 0.19, < 2)
descendants_tracker (0.0.4)
thread_safe (~> 0.3, >= 0.3.1)
device_detector (1.0.0)
devise (4.8.1)
bcrypt (~> 3.0)
@ -400,6 +416,8 @@ GEM
dry-equalizer (~> 0.3)
dry-inflector (~> 0.1, >= 0.1.2)
dry-logic (~> 1.0, >= 1.0.2)
dumb_delegator (1.0.0)
duo_api (1.3.0)
e2mmap (0.1.0)
ecma-re-validator (0.3.0)
regexp_parser (~> 2.0)
@ -502,7 +520,7 @@ GEM
fog-json
ipaddress (~> 0.8)
xml-simple (~> 1.1)
fog-aws (3.15.0)
fog-aws (3.18.0)
fog-core (~> 2.1)
fog-json (~> 1.1)
fog-xml (~> 0.1)
@ -528,15 +546,6 @@ GEM
multi_json (~> 1.10)
fog-local (0.8.0)
fog-core (>= 1.27, < 3.0)
fog-openstack (1.0.8)
fog-core (~> 2.1)
fog-json (>= 1.0)
ipaddress (>= 0.8)
fog-rackspace (0.1.1)
fog-core (>= 1.35)
fog-json (>= 1.0)
fog-xml (>= 0.1)
ipaddress (>= 0.8)
fog-xml (0.1.3)
fog-core
nokogiri (>= 1.5.11, < 2.0.0)
@ -548,6 +557,14 @@ GEM
rspec-core (~> 3.0)
ruby-progressbar (~> 1.4)
fuzzyurl (0.9.0)
gapic-common (0.18.0)
faraday (>= 1.9, < 3.a)
faraday-retry (>= 1.0, < 3.a)
google-protobuf (~> 3.14)
googleapis-common-protos (>= 1.3.12, < 2.a)
googleapis-common-protos-types (>= 1.3.1, < 2.a)
googleauth (~> 1.0)
grpc (~> 1.36)
gemoji (3.0.1)
get_process_mem (0.2.7)
ffi (~> 1.0)
@ -570,7 +587,7 @@ GEM
terminal-table (>= 1.5.1)
gitlab-chronic (0.10.5)
numerizer (~> 0.2)
gitlab-dangerfiles (3.7.0)
gitlab-dangerfiles (3.8.0)
danger (>= 8.4.5)
danger-gitlab (>= 8.0.0)
rake
@ -584,7 +601,7 @@ GEM
fog-json (~> 1.2.0)
mime-types
ms_rest_azure (~> 0.12.0)
gitlab-labkit (0.30.1)
gitlab-labkit (0.31.1)
actionpack (>= 5.0.0, < 8.0.0)
activesupport (>= 5.0.0, < 8.0.0)
grpc (>= 1.37)
@ -660,6 +677,9 @@ GEM
google-cloud-env (1.6.0)
faraday (>= 0.17.3, < 3.0)
google-cloud-errors (1.3.0)
google-cloud-profiler-v2 (0.4.0)
gapic-common (>= 0.18.0, < 2.a)
google-cloud-errors (~> 1.0)
google-cloud-storage (1.44.0)
addressable (~> 2.8)
digest-crc (~> 0.4)
@ -668,8 +688,12 @@ GEM
google-cloud-core (~> 1.6)
googleauth (>= 0.16.2, < 2.a)
mini_mime (~> 1.0)
google-protobuf (3.21.12)
googleapis-common-protos-types (1.3.0)
google-protobuf (3.22.2)
googleapis-common-protos (1.4.0)
google-protobuf (~> 3.14)
googleapis-common-protos-types (~> 1.2)
grpc (~> 1.27)
googleapis-common-protos-types (1.5.0)
google-protobuf (~> 3.14)
googleauth (1.3.0)
faraday (>= 0.17.3, < 3.a)
@ -770,7 +794,7 @@ GEM
nokogiri (~> 1.6)
htmlbeautifier (1.4.2)
htmlentities (4.3.4)
http (5.1.0)
http (5.1.1)
addressable (~> 2.8)
http-cookie (~> 1.0)
http-form_data (~> 2.2)
@ -789,6 +813,7 @@ GEM
icalendar (2.8.0)
ice_cube (~> 0.16)
ice_cube (0.16.4)
ice_nine (0.11.2)
imagen (0.1.8)
parser (>= 2.5, != 2.5.1.1)
invisible_captcha (2.0.0)
@ -843,9 +868,14 @@ GEM
rexml
kramdown-parser-gfm (1.1.0)
kramdown (~> 2.0)
kubeclient (4.11.0)
http (>= 3.0, < 6.0)
jsonpath (~> 1.0)
recursive-open-struct (~> 1.1, >= 1.1.1)
rest-client (~> 2.0)
launchy (2.5.0)
addressable (~> 2.7)
lefthook (1.2.9)
lefthook (1.3.3)
letter_opener (1.7.0)
launchy (~> 2.2)
letter_opener_web (2.0.0)
@ -898,8 +928,11 @@ GEM
zeitwerk (~> 2.5)
lru_redux (1.1.0)
lumberjack (1.2.7)
mail (2.7.1)
mail (2.8.1)
mini_mime (>= 0.1.1)
net-imap
net-pop
net-smtp
marcel (1.0.2)
marginalia (1.11.1)
actionpack (>= 5.2)
@ -943,15 +976,24 @@ GEM
nenv (0.3.0)
net-http-persistent (4.0.1)
connection_pool (~> 2.2)
net-imap (0.3.4)
date
net-protocol
net-ldap (0.17.1)
net-ntp (2.1.3)
net-pop (0.1.2)
net-protocol
net-protocol (0.1.3)
timeout
net-scp (3.0.0)
net-ssh (>= 2.6.5, < 7.0.0)
net-smtp (0.3.3)
net-protocol
net-ssh (6.0.0)
netrc (0.11.0)
nio4r (2.5.8)
no_proxy_fix (0.1.2)
nokogiri (1.14.1)
nokogiri (1.14.2)
mini_portile2 (~> 2.8.0)
racc (~> 1.4)
notiffany (0.1.3)
@ -1041,7 +1083,8 @@ GEM
webfinger (>= 1.0.1)
openssl (2.2.2)
ipaddr
openssl-signature_algorithm (0.4.0)
openssl-signature_algorithm (1.3.0)
openssl (> 2.0)
opentracing (0.5.0)
optimist (3.0.1)
org-ruby (0.9.12)
@ -1097,7 +1140,7 @@ GEM
coderay
parser
unparser
prometheus-client-mmap (0.17.0)
prometheus-client-mmap (0.19.1)
pry (0.14.2)
coderay (~> 1.1)
method_source (~> 1.0)
@ -1223,7 +1266,7 @@ GEM
rexml (3.2.5)
rinku (2.0.0)
rotp (6.2.0)
rouge (3.30.0)
rouge (4.1.0)
rqrcode (0.7.0)
chunky_png
rqrcode-rails3 (0.1.7)
@ -1245,12 +1288,17 @@ GEM
rspec-mocks (3.12.3)
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.12.0)
rspec-parameterized (0.5.0)
binding_ninja (>= 0.2.3)
rspec-parameterized (1.0.0)
rspec-parameterized-core (< 2)
rspec-parameterized-table_syntax (< 2)
rspec-parameterized-core (1.0.0)
parser
proc_to_ast
rspec (>= 2.13, < 4)
unparser
rspec-parameterized-table_syntax (1.0.0)
binding_of_caller
rspec-parameterized-core (< 2)
rspec-rails (6.0.1)
actionpack (>= 6.1)
activesupport (>= 6.1)
@ -1298,8 +1346,8 @@ GEM
ruby-fogbugz (0.3.0)
crack (~> 0.4)
multipart-post (~> 2.0)
ruby-magic (0.5.4)
mini_portile2 (~> 2.6)
ruby-magic (0.6.0)
mini_portile2 (~> 2.8)
ruby-progressbar (1.11.0)
ruby-saml (1.13.0)
nokogiri (>= 1.10.5)
@ -1335,7 +1383,6 @@ GEM
addressable (>= 2.3.5)
faraday (>= 0.17.3, < 3)
sd_notify (0.1.1)
securecompare (1.0.0)
seed-fu (2.3.7)
activerecord (>= 3.1)
activesupport (>= 3.1)
@ -1425,7 +1472,7 @@ GEM
mini_portile2 (~> 2.8.0)
ssh_data (1.3.0)
ssrf_filter (1.0.8)
stackprof (0.2.21)
stackprof (0.2.23)
state_machines (0.5.0)
state_machines-activemodel (0.8.0)
activemodel (>= 5.1)
@ -1463,18 +1510,21 @@ GEM
faraday (~> 1.0)
text (1.3.1)
thor (1.2.1)
thread_safe (0.3.6)
thrift (0.16.0)
tilt (2.0.11)
timeliness (0.3.10)
timeout (0.3.2)
timfel-krb5-auth (0.8.3)
tins (1.31.1)
sync
toml-rb (2.2.0)
citrus (~> 3.0, > 3.0)
tomlrb (1.3.0)
tpm-key_attestation (0.9.0)
tpm-key_attestation (0.12.0)
bindata (~> 2.4)
openssl-signature_algorithm (~> 0.4.0)
openssl (> 2.0)
openssl-signature_algorithm (~> 1.0)
trailblazer-option (0.1.2)
train-core (3.4.9)
addressable (~> 2.5)
@ -1488,10 +1538,10 @@ GEM
nokogiri (>= 1.7.0, <= 2.0)
tty-color (0.6.0)
tty-cursor (0.7.1)
tty-markdown (0.7.1)
tty-markdown (0.7.2)
kramdown (>= 1.16.2, < 3.0)
pastel (~> 0.8)
rouge (~> 3.14)
rouge (>= 3.14, < 5.0)
strings (~> 0.2.0)
tty-color (~> 0.5)
tty-screen (~> 0.8)
@ -1521,9 +1571,9 @@ GEM
uniform_notifier (1.16.0)
unleash (3.2.2)
murmurhash3 (~> 0.1.6)
unparser (0.6.0)
unparser (0.6.7)
diff-lcs (~> 1.3)
parser (>= 3.0.0)
parser (>= 3.2.0)
uri_template (0.7.0)
valid_email (0.1.3)
activemodel
@ -1543,20 +1593,23 @@ GEM
activesupport (>= 5.0.0, < 8.0)
concurrent-ruby (~> 1.0)
method_source (~> 1.0)
virtus (2.0.0)
axiom-types (~> 0.1)
coercible (~> 1.0)
descendants_tracker (~> 0.0, >= 0.0.3)
vmstat (2.3.0)
warden (1.2.9)
rack (>= 2.0.9)
warning (1.3.0)
webauthn (2.3.0)
webauthn (3.0.0)
android_key_attestation (~> 0.3.0)
awrence (~> 1.1)
bindata (~> 2.4)
cbor (~> 0.5.9)
cose (~> 1.0)
openssl (~> 2.0)
cose (~> 1.1)
openssl (>= 2.2)
safety_net_attestation (~> 0.4.0)
securecompare (~> 1.0)
tpm-key_attestation (~> 0.9.0)
tpm-key_attestation (~> 0.12.0)
webfinger (1.2.0)
activesupport
httpclient (>= 2.4)
@ -1587,7 +1640,7 @@ PLATFORMS
ruby
DEPENDENCIES
CFPropertyList
CFPropertyList (~> 3.0.0)
RedCloth (~> 4.3.2)
acme-client (~> 2.0)
activerecord-explain-analyze (~> 0.1)
@ -1598,22 +1651,23 @@ DEPENDENCIES
app_store_connect
arr-pm (~> 0.0.12)
asana (~> 0.10.13)
asciidoctor (~> 2.0.17)
asciidoctor (~> 2.0.18)
asciidoctor-include-ext (~> 0.4.0)
asciidoctor-kroki (~> 0.7.0)
asciidoctor-kroki (~> 0.8.0)
asciidoctor-plantuml (~> 0.0.16)
atlassian-jwt (~> 0.2.0)
attr_encrypted (~> 3.2.4)!
autoprefixer-rails (= 10.2.5.1)
awesome_print
aws-sdk-cloudformation (~> 1)
aws-sdk-core (~> 3.170.0)
aws-sdk-core (~> 3.170.1)
aws-sdk-s3 (~> 1.119.1)
axe-core-rspec
babosa (~> 1.0.4)
base32 (~> 0.3.0)
batch-loader (~> 2.0.1)
bcrypt (~> 3.1, >= 3.1.14)
benchmark-ips (~> 2.3.0)
benchmark-ips (~> 2.11.0)
benchmark-memory (~> 0.1)
better_errors (~> 2.9.1)
bootsnap (~> 1.16.0)
@ -1625,6 +1679,7 @@ DEPENDENCIES
capybara-screenshot (~> 1.0.22)
carrierwave (~> 1.3)
charlock_holmes (~> 0.7.7)
cloud_profiler_agent (~> 0.0.0)!
commonmarker (~> 0.23.6)
concurrent-ruby (~> 1.1)
connection_pool (~> 2.0)
@ -1635,7 +1690,6 @@ DEPENDENCIES
database_cleaner (~> 1.7.0)
deckar01-task_list (= 2.3.2)
declarative_policy (~> 1.1.0)
default_value_for (~> 3.4.0)
deprecation_toolkit (~> 1.5.1)
derailed_benchmarks
device_detector
@ -1647,6 +1701,7 @@ DEPENDENCIES
discordrb-webhooks (~> 3.4)
doorkeeper (~> 5.5)
doorkeeper-openid_connect (~> 1.8)
duo_api (~> 1.3)
ed25519 (~> 1.3.0)
elasticsearch-api (= 7.13.3)
elasticsearch-model (~> 7.2)
@ -1663,12 +1718,10 @@ DEPENDENCIES
flipper-active_record (~> 0.25.0)
flipper-active_support_cache_store (~> 0.25.0)
fog-aliyun (~> 0.4)
fog-aws (~> 3.15)
fog-aws (~> 3.18)
fog-core (= 2.1.0)
fog-google (~> 1.19)
fog-local (~> 0.8)
fog-openstack (~> 1.0)
fog-rackspace (~> 0.1.1)
fugit (~> 1.8.1)
fuubar (~> 2.2.0)
gettext (~> 3.3)
@ -1676,10 +1729,10 @@ DEPENDENCIES
gettext_i18n_rails_js (~> 1.3)
gitaly (~> 15.9.0.pre.rc3)
gitlab-chronic (~> 0.10.5)
gitlab-dangerfiles (~> 3.7.0)
gitlab-dangerfiles (~> 3.8.0)
gitlab-experiment (~> 0.7.1)
gitlab-fog-azure-rm (~> 1.7.0)
gitlab-labkit (~> 0.30.1)
gitlab-labkit (~> 0.31.1)
gitlab-license (~> 2.2.1)
gitlab-mail_room (~> 0.0.9)
gitlab-markup (~> 1.9.0)
@ -1699,7 +1752,7 @@ DEPENDENCIES
google-apis-serviceusage_v1 (~> 0.28.0)
google-apis-sqladmin_v1beta4 (~> 0.41.0)
google-cloud-storage (~> 1.44.0)
google-protobuf (~> 3.21, >= 3.21.12)
google-protobuf (~> 3.22, >= 3.22.2)
gpgme (~> 2.0.22)
grape (~> 1.5.2)
grape-entity (~> 0.10.0)
@ -1737,8 +1790,8 @@ DEPENDENCIES
kas-grpc (~> 0.0.2)
knapsack (~> 1.21.1)
kramdown (~> 2.3.1)
kubeclient (~> 4.9.3)!
lefthook (~> 1.2.9)
kubeclient (~> 4.11.0)
lefthook (~> 1.3.3)
letter_opener_web (~> 2.0.0)
license_finder (~> 7.0)
licensee (~> 9.15)
@ -1748,7 +1801,7 @@ DEPENDENCIES
loofah (~> 2.19.1)
lookbook (~> 1.5, >= 1.5.3)
lru_redux
mail (= 2.7.1)
mail (= 2.8.1)
mail-smtp_pool (~> 0.1.0)!
marginalia (~> 1.11.1)
memory_profiler (~> 1.0)
@ -1758,7 +1811,8 @@ DEPENDENCIES
multi_json (~> 1.14.1)
net-ldap (~> 0.17.1)
net-ntp
nokogiri (~> 1.14.1)
net-protocol (~> 0.1.3)
nokogiri (~> 1.14.2)
oauth2 (~> 2.0)
octokit (~> 4.15)
ohai (~> 16.10)
@ -1793,7 +1847,7 @@ DEPENDENCIES
pg_query (~> 2.2, >= 2.2.1)
png_quantizator (~> 0.2.1)
premailer-rails (~> 1.10.3)
prometheus-client-mmap (~> 0.17)
prometheus-client-mmap (~> 0.19)
pry-byebug
pry-rails (~> 0.3.9)
pry-shell (~> 0.6.1)
@ -1820,17 +1874,17 @@ DEPENDENCIES
responders (~> 3.0)
retriable (~> 3.1.2)
rexml (~> 3.2.5)
rouge (~> 3.30.0)
rouge (~> 4.1.0)
rqrcode-rails3 (~> 0.1.7)
rspec-benchmark (~> 0.6.0)
rspec-parameterized
rspec-parameterized (~> 1.0)
rspec-rails (~> 6.0.1)
rspec-retry (~> 0.6.1)
rspec_junit_formatter
rspec_profiling (~> 0.0.6)
rubocop
ruby-fogbugz (~> 0.3.0)
ruby-magic (~> 0.5)
ruby-magic (~> 0.6)
ruby-progressbar (~> 1.10)
ruby-saml (~> 1.13.0)
ruby_parser (~> 3.19)
@ -1863,7 +1917,7 @@ DEPENDENCIES
sprite-factory (~> 1.7)
sprockets (~> 3.7.0)
ssh_data (~> 1.3)
stackprof (~> 0.2.21)
stackprof (~> 0.2.23)
state_machines-activerecord (~> 0.8.0)
sys-filesystem (~> 1.4.3)
tanuki_emoji (~> 0.6)
@ -1886,11 +1940,11 @@ DEPENDENCIES
view_component (~> 2.74.1)
vmstat (~> 2.3.0)
warning (~> 1.3.0)
webauthn (~> 2.3)
webauthn (~> 3.0)
webmock (~> 3.9.1)
webrick (~> 1.6.1)
wikicloth (= 0.8.1)
yajl-ruby (~> 1.4.3)
BUNDLED WITH
2.4.6
2.4.8

View file

@ -82,7 +82,7 @@ Instructions on how to start GitLab and how to run the tests can be found in the
GitLab is a Ruby on Rails application that runs on the following software:
- Ubuntu/Debian/CentOS/RHEL/OpenSUSE
- Ruby (MRI) 2.7.7
- Ruby (MRI) 3.0.5
- Git 2.33+
- Redis 5.0+
- PostgreSQL 12+

View file

@ -1 +1 @@
15.9.8
15.10.7

View file

@ -0,0 +1,4 @@
<svg width="25" height="30" viewBox="0 0 20 23" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M15 8L15 9.5C15 10.3284 15.6716 11 16.5 11C17.3284 11 18 10.3284 18 9.5V7.74264C18 6.94699 17.6839 6.18393 17.1213 5.62132L12.8787 1.37868C12.3161 0.816071 11.553 0.5 10.7574 0.5H1.5C0.671573 0.5 0 1.17157 0 2V20C0 20.8284 0.671573 21.5 1.5 21.5H6C6.82843 21.5 7.5 20.8284 7.5 20C7.5 19.1716 6.82843 18.5 6 18.5H3V3.5H10.5V6.5C10.5 7.32843 11.1716 8 12 8H15Z" fill="#6E49CB"/>
<path d="M10.5 18.5C10.5 17.6716 11.1716 17 12 17H13.5V15.5C13.5 14.6716 14.1716 14 15 14C15.8284 14 16.5 14.6716 16.5 15.5V17H18C18.8284 17 19.5 17.6716 19.5 18.5C19.5 19.3284 18.8284 20 18 20H16.5V21.5C16.5 22.3284 15.8284 23 15 23C14.1716 23 13.5 22.3284 13.5 21.5V20H12C11.1716 20 10.5 19.3284 10.5 18.5Z" fill="#6E49CB"/>
</svg>

After

Width:  |  Height:  |  Size: 816 B

View file

@ -1,6 +1,6 @@
<script>
import { GlAlert } from '@gitlab/ui';
import { createAlert, VARIANT_INFO } from '~/flash';
import { createAlert, VARIANT_INFO } from '~/alert';
import { __, n__, sprintf } from '~/locale';
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import DomElementListener from '~/vue_shared/components/dom_element_listener.vue';

View file

@ -2,7 +2,7 @@
import $ from 'jquery';
import { setCookie } from '~/lib/utils/common_utils';
import { createAlert } from '~/flash';
import { createAlert } from '~/alert';
import { s__ } from '~/locale';
import { localTimeAgo } from './lib/utils/datetime_utility';
import Pager from './pager';

View file

@ -2,7 +2,7 @@
import { GlModal, GlTabs, GlTab, GlSearchBoxByType, GlSprintf, GlBadge } from '@gitlab/ui';
import { mapState, mapActions } from 'vuex';
import ReviewTabContainer from '~/add_context_commits_modal/components/review_tab_container.vue';
import { createAlert } from '~/flash';
import { createAlert } from '~/alert';
import { BV_SHOW_MODAL } from '~/lib/utils/constants';
import { s__ } from '~/locale';
import eventHub from '../event_hub';

View file

@ -1,6 +1,6 @@
import _ from 'lodash';
import Api from '~/api';
import { createAlert } from '~/flash';
import { createAlert } from '~/alert';
import axios from '~/lib/utils/axios_utils';
import { s__ } from '~/locale';
import * as types from './mutation_types';

View file

@ -0,0 +1,41 @@
<script>
import { getTimeago } from '~/lib/utils/datetime_utility';
import { __, sprintf } from '~/locale';
import ListItem from '~/vue_shared/components/registry/list_item.vue';
export default {
name: 'AbuseReportRow',
components: {
ListItem,
},
props: {
report: {
type: Object,
required: true,
},
},
computed: {
updatedAt() {
const template = __('Updated %{timeAgo}');
return sprintf(template, { timeAgo: getTimeago().format(this.report.updatedAt) });
},
title() {
const { reportedUser, reporter, category } = this.report;
const template = __('%{reported} reported for %{category} by %{reporter}');
return sprintf(template, { reported: reportedUser.name, reporter: reporter.name, category });
},
},
};
</script>
<template>
<list-item data-testid="abuse-report-row">
<template #left-primary>
<div class="gl-font-weight-normal" data-testid="title">{{ title }}</div>
</template>
<template #right-secondary>
<div data-testid="updated-at">{{ updatedAt }}</div>
</template>
</list-item>
</template>

View file

@ -0,0 +1,109 @@
<script>
import { setUrlParams, redirectTo, queryToObject, updateHistory } from '~/lib/utils/url_utility';
import { FILTERED_SEARCH_TERM } from '~/vue_shared/components/filtered_search_bar/constants';
import FilteredSearchBar from '~/vue_shared/components/filtered_search_bar/filtered_search_bar_root.vue';
import {
FILTERED_SEARCH_TOKENS,
DEFAULT_SORT,
SORT_OPTIONS,
isValidSortKey,
} from '~/admin/abuse_reports/constants';
import { buildFilteredSearchCategoryToken } from '~/admin/abuse_reports/utils';
export default {
name: 'AbuseReportsFilteredSearchBar',
components: { FilteredSearchBar },
sortOptions: SORT_OPTIONS,
inject: ['categories'],
data() {
return {
initialFilterValue: [],
initialSortBy: DEFAULT_SORT,
};
},
computed: {
tokens() {
return [...FILTERED_SEARCH_TOKENS, buildFilteredSearchCategoryToken(this.categories)];
},
},
created() {
const query = queryToObject(window.location.search);
// Backend shows open reports by default if status param is not specified.
// To match that behavior, update the current URL to include status=open
// query when no status query is specified on load.
if (!query.status) {
query.status = 'open';
updateHistory({ url: setUrlParams(query), replace: true });
}
const sort = this.currentSortKey();
if (sort) {
this.initialSortBy = query.sort;
}
const tokens = this.tokens
.filter((token) => query[token.type])
.map((token) => ({
type: token.type,
value: {
data: query[token.type],
operator: '=',
},
}));
this.initialFilterValue = tokens;
},
methods: {
currentSortKey() {
const { sort } = queryToObject(window.location.search);
return isValidSortKey(sort) ? sort : undefined;
},
handleFilter(tokens) {
let params = tokens.reduce((accumulator, token) => {
const { type, value } = token;
// We don't support filtering reports by search term for now
if (!value || !type || type === FILTERED_SEARCH_TERM) {
return accumulator;
}
return {
...accumulator,
[type]: value.data,
};
}, {});
const sort = this.currentSortKey();
if (sort) {
params = { ...params, sort };
}
redirectTo(setUrlParams(params, window.location.href, true));
},
handleSort(sort) {
const { page, ...query } = queryToObject(window.location.search);
redirectTo(setUrlParams({ ...query, sort }, window.location.href, true));
},
},
filteredSearchNamespace: 'abuse_reports',
recentSearchesStorageKey: 'abuse_reports',
};
</script>
<template>
<filtered-search-bar
:namespace="$options.filteredSearchNamespace"
:tokens="tokens"
:recent-searches-storage-key="$options.recentSearchesStorageKey"
:search-input-placeholder="__('Filter reports')"
:initial-filter-value="initialFilterValue"
:initial-sort-by="initialSortBy"
:sort-options="$options.sortOptions"
data-testid="abuse-reports-filtered-search-bar"
@onFilter="handleFilter"
@onSort="handleSort"
/>
</template>

View file

@ -0,0 +1,63 @@
<script>
import { GlEmptyState, GlPagination } from '@gitlab/ui';
import { mergeUrlParams } from '~/lib/utils/url_utility';
import FilteredSearchBar from './abuse_reports_filtered_search_bar.vue';
import AbuseReportRow from './abuse_report_row.vue';
export default {
name: 'AbuseReportsApp',
components: {
AbuseReportRow,
FilteredSearchBar,
GlEmptyState,
GlPagination,
},
props: {
abuseReports: {
type: Array,
required: true,
},
pagination: {
type: Object,
required: true,
},
},
computed: {
showPagination() {
return this.pagination.totalItems > this.pagination.perPage;
},
},
methods: {
paginationLinkGenerator(page) {
return mergeUrlParams({ page }, window.location.href);
},
},
};
</script>
<template>
<div>
<filtered-search-bar />
<gl-empty-state v-if="abuseReports.length == 0" :title="s__('AbuseReports|No reports found')" />
<abuse-report-row
v-for="(report, index) in abuseReports"
v-else
:key="index"
:report="report"
/>
<gl-pagination
v-if="showPagination"
:value="pagination.currentPage"
:per-page="pagination.perPage"
:total-items="pagination.totalItems"
:link-gen="paginationLinkGenerator"
:prev-text="__('Prev')"
:next-text="__('Next')"
:label-next-page="__('Go to next page')"
:label-prev-page="__('Go to previous page')"
align="center"
class="gl-mt-3"
/>
</div>
</template>

View file

@ -0,0 +1,81 @@
import { getUsers } from '~/rest_api';
import BaseToken from '~/vue_shared/components/filtered_search_bar/tokens/base_token.vue';
import UserToken from '~/vue_shared/components/filtered_search_bar/tokens/user_token.vue';
import {
OPERATORS_IS,
TOKEN_TITLE_STATUS,
} from '~/vue_shared/components/filtered_search_bar/constants';
import { __ } from '~/locale';
const STATUS_OPTIONS = [
{ value: 'closed', title: __('Closed') },
{ value: 'open', title: __('Open') },
];
export const FILTERED_SEARCH_TOKEN_USER = {
type: 'user',
icon: 'user',
title: __('User'),
token: UserToken,
unique: true,
operators: OPERATORS_IS,
fetchUsers: getUsers,
defaultUsers: [],
};
export const FILTERED_SEARCH_TOKEN_REPORTER = {
...FILTERED_SEARCH_TOKEN_USER,
type: 'reporter',
title: __('Reporter'),
};
export const FILTERED_SEARCH_TOKEN_STATUS = {
type: 'status',
icon: 'status',
title: TOKEN_TITLE_STATUS,
token: BaseToken,
unique: true,
options: STATUS_OPTIONS,
operators: OPERATORS_IS,
};
export const DEFAULT_SORT = 'created_at_desc';
export const SORT_OPTIONS = [
{
id: 10,
title: __('Created date'),
sortDirection: {
descending: DEFAULT_SORT,
ascending: 'created_at_asc',
},
},
{
id: 20,
title: __('Updated date'),
sortDirection: {
descending: 'updated_at_desc',
ascending: 'updated_at_asc',
},
},
];
export const isValidSortKey = (key) =>
SORT_OPTIONS.some(
(sort) => sort.sortDirection.ascending === key || sort.sortDirection.descending === key,
);
export const FILTERED_SEARCH_TOKEN_CATEGORY = {
type: 'category',
icon: 'label',
title: __('Category'),
token: BaseToken,
unique: true,
operators: OPERATORS_IS,
};
export const FILTERED_SEARCH_TOKENS = [
FILTERED_SEARCH_TOKEN_USER,
FILTERED_SEARCH_TOKEN_REPORTER,
FILTERED_SEARCH_TOKEN_STATUS,
];

View file

@ -0,0 +1,31 @@
import Vue from 'vue';
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import AbuseReportsApp from './components/app.vue';
export const initAbuseReportsApp = () => {
const el = document.querySelector('#js-abuse-reports-list-app');
if (!el) {
return null;
}
const { abuseReportsData } = el.dataset;
const { categories, reports, pagination } = convertObjectPropsToCamelCase(
JSON.parse(abuseReportsData),
{
deep: true,
},
);
return new Vue({
el,
provide: { categories },
render: (createElement) =>
createElement(AbuseReportsApp, {
props: {
abuseReports: reports,
pagination,
},
}),
});
};

View file

@ -0,0 +1,6 @@
import { FILTERED_SEARCH_TOKEN_CATEGORY } from './constants';
export const buildFilteredSearchCategoryToken = (categories) => {
const options = categories.map((c) => ({ value: c, title: c }));
return { ...FILTERED_SEARCH_TOKEN_CATEGORY, options };
};

View file

@ -0,0 +1,28 @@
export default () => {
const denyAllRequests = document.querySelector('.js-deny-all-requests');
if (!denyAllRequests) {
return;
}
denyAllRequests.addEventListener('change', () => {
const denyAll = denyAllRequests.checked;
const allowLocalRequests = document.querySelectorAll('.js-allow-local-requests');
const denyAllRequestsWarning = document.querySelector('.js-deny-all-requests-warning');
if (denyAll) {
denyAllRequestsWarning.classList.remove('gl-display-none');
} else {
denyAllRequestsWarning.classList.add('gl-display-none');
}
allowLocalRequests.forEach((allowLocalRequest) => {
/* eslint-disable no-param-reassign */
if (denyAll) {
allowLocalRequest.checked = false;
}
allowLocalRequest.disabled = denyAll;
/* eslint-enable no-param-reassign */
});
});
};

View file

@ -2,7 +2,7 @@
import { GlPagination } from '@gitlab/ui';
import { redirectTo } from '~/lib/utils/url_utility';
import { buildUrlWithCurrentLocation } from '~/lib/utils/common_utils';
import { createAlert, VARIANT_DANGER } from '~/flash';
import { createAlert, VARIANT_DANGER } from '~/alert';
import { s__ } from '~/locale';
import axios from '~/lib/utils/axios_utils';
import { NEW_BROADCAST_MESSAGE } from '../constants';

View file

@ -12,16 +12,19 @@ import {
} from '@gitlab/ui';
import axios from '~/lib/utils/axios_utils';
import { s__ } from '~/locale';
import { createAlert, VARIANT_DANGER } from '~/flash';
import { createAlert, VARIANT_DANGER } from '~/alert';
import { redirectTo } from '~/lib/utils/url_utility';
import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';
import { BROADCAST_MESSAGES_PATH, THEMES, TYPES, TYPE_BANNER } from '../constants';
import { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';
import SafeHtml from '~/vue_shared/directives/safe_html';
import { THEMES, TYPES, TYPE_BANNER } from '../constants';
import MessageFormGroup from './message_form_group.vue';
import DatetimePicker from './datetime_picker.vue';
const FORM_HEADERS = { headers: { 'Content-Type': 'application/json; charset=utf-8' } };
export default {
DEFAULT_DEBOUNCE_AND_THROTTLE_MS,
name: 'MessageForm',
components: {
DatetimePicker,
@ -36,8 +39,21 @@ export default {
GlFormTextarea,
MessageFormGroup,
},
directives: {
SafeHtml,
},
mixins: [glFeatureFlagsMixin()],
inject: ['targetAccessLevelOptions'],
inject: {
targetAccessLevelOptions: {
default: [[]],
},
messagesPath: {
default: '',
},
previewPath: {
default: '',
},
},
i18n: {
message: s__('BroadcastMessages|Message'),
messagePlaceholder: s__('BroadcastMessages|Your message here'),
@ -81,6 +97,7 @@ export default {
})),
startsAt: new Date(this.broadcastMessage.startsAt.getTime()),
endsAt: new Date(this.broadcastMessage.endsAt.getTime()),
renderedMessage: '',
};
},
computed: {
@ -91,15 +108,15 @@ export default {
return this.message.trim() === '';
},
messagePreview() {
return this.messageBlank ? this.$options.i18n.messagePlaceholder : this.message;
return this.messageBlank ? this.$options.i18n.messagePlaceholder : this.renderedMessage;
},
isAddForm() {
return !this.broadcastMessage.id;
},
formPath() {
return this.isAddForm
? BROADCAST_MESSAGES_PATH
: `${BROADCAST_MESSAGES_PATH}/${this.broadcastMessage.id}`;
? this.messagesPath
: `${this.messagesPath}/${this.broadcastMessage.id}`;
},
formPayload() {
return JSON.stringify({
@ -114,13 +131,18 @@ export default {
});
},
},
watch: {
message() {
this.renderPreview();
},
},
methods: {
async onSubmit() {
this.loading = true;
const success = await this.submitForm();
if (success) {
redirectTo(BROADCAST_MESSAGES_PATH);
redirectTo(this.messagesPath);
} else {
this.loading = false;
}
@ -140,13 +162,31 @@ export default {
}
return true;
},
async renderPreview() {
try {
const res = await axios.post(this.previewPath, this.formPayload, FORM_HEADERS);
this.renderedMessage = res.data;
} catch (e) {
this.renderedMessage = '';
}
},
},
safeHtmlConfig: {
ADD_TAGS: ['use'],
},
};
</script>
<template>
<gl-form @submit.prevent="onSubmit">
<gl-broadcast-message class="gl-my-6" :type="type" :theme="theme" :dismissible="dismissable">
{{ messagePreview }}
<gl-broadcast-message
class="gl-my-6"
:type="type"
:theme="theme"
:dismissible="dismissable"
data-testid="preview-broadcast-message"
>
<div v-safe-html:[$options.safeHtmlConfig]="messagePreview"></div>
</gl-broadcast-message>
<message-form-group :label="$options.i18n.message" label-for="message-textarea">
@ -154,7 +194,9 @@ export default {
id="message-textarea"
v-model="message"
size="sm"
:debounce="$options.DEFAULT_DEBOUNCE_AND_THROTTLE_MS"
:placeholder="$options.i18n.messagePlaceholder"
data-testid="message-input"
/>
</message-form-group>
@ -210,7 +252,7 @@ export default {
<datetime-picker v-model="endsAt" />
</message-form-group>
<div class="form-actions gl-mb-3">
<div class="form-actions gl-my-3">
<gl-button
type="submit"
variant="confirm"

View file

@ -1,7 +1,5 @@
import { s__ } from '~/locale';
export const BROADCAST_MESSAGES_PATH = '/admin/broadcast_messages';
export const TYPE_BANNER = 'banner';
export const TYPE_NOTIFICATION = 'notification';

View file

@ -11,6 +11,8 @@ export default () => {
dismissable,
targetAccessLevels,
targetAccessLevelOptions,
messagesPath,
previewPath,
targetPath,
startsAt,
endsAt,
@ -21,6 +23,8 @@ export default () => {
name: 'EditBroadcastMessage',
provide: {
targetAccessLevelOptions: JSON.parse(targetAccessLevelOptions),
messagesPath,
previewPath,
},
render(createElement) {
return createElement(MessageForm, {

View file

@ -3,13 +3,22 @@ import BroadcastMessagesBase from './components/base.vue';
export default () => {
const el = document.querySelector('#js-broadcast-messages');
const { page, targetAccessLevelOptions, messagesCount, messages } = el.dataset;
const {
page,
targetAccessLevelOptions,
messagesPath,
previewPath,
messagesCount,
messages,
} = el.dataset;
return new Vue({
el,
name: 'BroadcastMessages',
provide: {
targetAccessLevelOptions: JSON.parse(targetAccessLevelOptions),
messagesPath,
previewPath,
},
render(createElement) {
return createElement(BroadcastMessagesBase, {

View file

@ -5,7 +5,7 @@ import { __ } from '~/locale';
import Api, { DEFAULT_PER_PAGE } from '~/api';
import TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';
import { cleanLeadingSeparator } from '~/lib/utils/url_utility';
import { createAlert } from '~/flash';
import { createAlert } from '~/alert';
import csrf from '~/lib/utils/csrf';
export default {

View file

@ -1,5 +1,5 @@
import Api from '~/api';
import { createAlert } from '~/flash';
import { createAlert } from '~/alert';
import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';
import { s__ } from '~/locale';
import * as types from './mutation_types';

View file

@ -41,7 +41,7 @@ export default {
},
actionPrimary: {
text: I18N_USER_ACTIONS.activate,
attributes: [{ variant: 'confirm' }],
attributes: { variant: 'confirm' },
},
messageHtml,
},

View file

@ -43,7 +43,7 @@ export default {
},
actionPrimary: {
text: I18N_USER_ACTIONS.approve,
attributes: [{ variant: 'confirm', 'data-qa-selector': 'approve_user_confirm_button' }],
attributes: { variant: 'confirm', 'data-qa-selector': 'approve_user_confirm_button' },
},
messageHtml,
},

View file

@ -56,7 +56,7 @@ export default {
},
actionPrimary: {
text: I18N_USER_ACTIONS.ban,
attributes: [{ variant: 'confirm' }],
attributes: { variant: 'confirm' },
},
messageHtml,
},

View file

@ -42,7 +42,7 @@ export default {
},
actionPrimary: {
text: I18N_USER_ACTIONS.block,
attributes: [{ variant: 'confirm' }],
attributes: { variant: 'confirm' },
},
messageHtml,
},

View file

@ -51,7 +51,7 @@ export default {
},
actionPrimary: {
text: I18N_USER_ACTIONS.deactivate,
attributes: [{ variant: 'confirm' }],
attributes: { variant: 'confirm' },
},
messageHtml,
},

View file

@ -54,7 +54,7 @@ export default {
},
actionPrimary: {
text: I18N_USER_ACTIONS.reject,
attributes: [{ variant: 'danger' }],
attributes: { variant: 'danger' },
},
messageHtml,
},

View file

@ -37,7 +37,7 @@ export default {
},
actionPrimary: {
text: I18N_USER_ACTIONS.unban,
attributes: [{ variant: 'confirm' }],
attributes: { variant: 'confirm' },
},
messageHtml,
},

View file

@ -32,7 +32,7 @@ export default {
},
actionPrimary: {
text: I18N_USER_ACTIONS.unblock,
attributes: [{ variant: 'confirm' }],
attributes: { variant: 'confirm' },
},
},
});

View file

@ -31,7 +31,7 @@ export default {
},
actionPrimary: {
text: I18N_USER_ACTIONS.unlock,
attributes: [{ variant: 'confirm' }],
attributes: { variant: 'confirm' },
},
},
});

View file

@ -1,6 +1,6 @@
<script>
import { GlSkeletonLoader, GlTable } from '@gitlab/ui';
import { createAlert } from '~/flash';
import { createAlert } from '~/alert';
import { convertNodeIdsFromGraphQLIds } from '~/graphql_shared/utils';
import { thWidthPercent } from '~/lib/utils/table_utility';
import { s__, __ } from '~/locale';

View file

@ -1,111 +0,0 @@
<script>
import { GlTableLite, GlEmptyState, GlPagination, GlTooltipDirective } from '@gitlab/ui';
import { s__ } from '~/locale';
import { setUrlParams } from '~/lib/utils/url_utility';
import { formatDate } from '~/lib/utils/datetime/date_format_utility';
import TimeAgo from '~/vue_shared/components/time_ago_tooltip.vue';
import IncubationAlert from '~/vue_shared/components/incubation/incubation_alert.vue';
export default {
name: 'AirflowDags',
components: {
GlTableLite,
GlEmptyState,
IncubationAlert,
GlPagination,
TimeAgo,
},
directives: {
GlTooltip: GlTooltipDirective,
},
props: {
dags: {
type: Array,
required: true,
},
pagination: {
type: Object,
required: true,
},
},
computed: {
fields() {
return [
{ key: 'dag_name', label: this.$options.i18n.dagLabel },
{ key: 'schedule', label: this.$options.scheduleLabel },
{ key: 'next_run', label: this.$options.nextRunLabel },
{ key: 'is_active', label: this.$options.isActiveLabel },
{ key: 'is_paused', label: this.$options.isPausedLabel },
{ key: 'fileloc', label: this.$options.fileLocLabel },
];
},
hasPagination() {
return this.dags.length > 0;
},
prevPage() {
return this.pagination.page > 1 ? this.pagination.page - 1 : null;
},
nextPage() {
return !this.pagination.isLastPage ? this.pagination.page + 1 : null;
},
emptyState() {
return {
svgPath: '/assets/illustrations/empty-state/empty-dag-md.svg',
};
},
},
methods: {
generateLink(page) {
return setUrlParams({ page });
},
formatDate(dateString) {
return formatDate(new Date(dateString));
},
},
i18n: {
emptyStateLabel: s__('Airflow|There are no DAGs to show'),
emptyStateDescription: s__(
'Airflow|Either the Airflow instance does not contain DAGs or has yet to be configured',
),
dagLabel: s__('Airflow|DAG'),
scheduleLabel: s__('Airflow|Schedule'),
nextRunLabel: s__('Airflow|Next run'),
isActiveLabel: s__('Airflow|Is active'),
isPausedLabel: s__('Airflow|Is paused'),
fileLocLabel: s__('Airflow|DAG file location'),
featureName: s__('Airflow|GitLab Airflow integration'),
},
linkToFeedbackIssue:
'https://gitlab.com/gitlab-org/incubation-engineering/airflow/meta/-/issues/2',
};
</script>
<template>
<div>
<incubation-alert
:feature-name="$options.i18n.featureName"
:link-to-feedback-issue="$options.linkToFeedbackIssue"
/>
<gl-empty-state
v-if="!dags.length"
:title="$options.i18n.emptyStateLabel"
:description="$options.i18n.emptyStateDescription"
:svg-path="emptyState.svgPath"
/>
<gl-table-lite v-else :items="dags" :fields="fields" class="gl-mt-0!">
<template #cell(next_run)="data">
<time-ago v-gl-tooltip.hover :time="data.value" :title="formatDate(data.value)" />
</template>
</gl-table-lite>
<gl-pagination
v-if="hasPagination"
:value="pagination.page"
:prev-page="prevPage"
:next-page="nextPage"
:total-items="pagination.totalItems"
:per-page="pagination.perPage"
:link-gen="generateLink"
align="center"
/>
</div>
</template>

View file

@ -15,7 +15,7 @@ export const VARIANT_TIP = 'tip';
*
* @example
* // Render a new alert
* import { createAlert, VARIANT_WARNING } from '~/flash';
* import { createAlert, VARIANT_WARNING } from '~/alert';
*
* createAlert({ message: 'My error message' });
* createAlert({ message: 'My warning message', variant: VARIANT_WARNING });

View file

@ -5,8 +5,7 @@ import {
GlLink,
GlFormGroup,
GlFormCheckbox,
GlDropdown,
GlDropdownItem,
GlCollapsibleListbox,
} from '@gitlab/ui';
import {
I18N_ALERT_SETTINGS_FORM,
@ -22,8 +21,7 @@ export default {
GlLink,
GlFormGroup,
GlFormCheckbox,
GlDropdown,
GlDropdownItem,
GlCollapsibleListbox,
},
inject: ['service', 'alertSettings'],
data() {
@ -40,9 +38,6 @@ export default {
TAKING_INCIDENT_ACTION_DOCS_LINK,
ISSUE_TEMPLATES_DOCS_LINK,
computed: {
issueTemplateHeader() {
return this.issueTemplate || NO_ISSUE_TEMPLATE_SELECTED.name;
},
formData() {
return {
create_issue: this.createIssueEnabled,
@ -53,12 +48,6 @@ export default {
},
},
methods: {
selectIssueTemplate(templateKey) {
this.issueTemplate = templateKey;
},
isTemplateSelected(templateKey) {
return templateKey === this.issueTemplate;
},
updateAlertsIntegrationSettings() {
this.loading = true;
@ -99,23 +88,13 @@ export default {
<span class="gl-font-weight-normal gl-pl-2">{{ $options.i18n.introLinkText }}</span>
</gl-link>
</label>
<gl-dropdown
<gl-collapsible-listbox
id="alert-integration-settings-issue-template"
v-model="issueTemplate"
:items="templates"
block
data-qa-selector="incident_templates_dropdown"
:text="issueTemplateHeader"
:block="true"
>
<gl-dropdown-item
v-for="template in templates"
:key="template.key"
data-qa-selector="incident_templates_item"
is-check-item
:is-checked="isTemplateSelected(template.key)"
@click="selectIssueTemplate(template.key)"
>
{{ template.name }}
</gl-dropdown-item>
</gl-dropdown>
/>
</gl-form-group>
<gl-form-group class="gl-pl-0 gl-mb-5">

View file

@ -2,7 +2,7 @@
import { GlButton, GlAlert, GlTabs, GlTab } from '@gitlab/ui';
import createHttpIntegrationMutation from 'ee_else_ce/alerts_settings/graphql/mutations/create_http_integration.mutation.graphql';
import updateHttpIntegrationMutation from 'ee_else_ce/alerts_settings/graphql/mutations/update_http_integration.mutation.graphql';
import { createAlert, VARIANT_SUCCESS } from '~/flash';
import { createAlert, VARIANT_SUCCESS } from '~/alert';
import { fetchPolicies } from '~/lib/graphql';
import { HTTP_STATUS_FORBIDDEN } from '~/lib/utils/http_status';
import { typeSet, i18n, tabIndices } from '../constants';

Some files were not shown because too many files have changed in this diff Show more