New upstream version 14.9.4+ds1

This commit is contained in:
Pirate Praveen 2022-05-07 20:08:51 +05:30
parent 710edc26c8
commit 514ffadb92
4385 changed files with 175701 additions and 64893 deletions

View file

@ -9,3 +9,4 @@
/sitespeed-result/
/fixtures/**/*.graphql
spec/fixtures/**/*.graphql
**/contracts/consumer/

View file

@ -105,6 +105,8 @@ overrides:
message: 'Avoid using "setData" on VTU wrapper'
- selector: MemberExpression[object.type!='ThisExpression'][property.type='Identifier'][property.name='$nextTick']
message: 'Using $nextTick from a component instance is discouraged. Import nextTick directly from the Vue package.'
- selector: Identifier[name='setImmediate']
message: 'Prefer explicit waitForPromises (or equivalent), or jest.runAllTimers (or equivalent) to vague setImmediate calls.'
- files:
- 'config/**/*'
- 'scripts/**/*'

View file

@ -16,7 +16,7 @@ stages:
# in cases where jobs require Docker-in-Docker, the job
# definition must be extended with `.use-docker-in-docker`
default:
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-11-graphicsmagick-1.3.36
tags:
- gitlab-org
# All jobs are interruptible by default
@ -65,10 +65,15 @@ variables:
# we override the max_old_space_size to prevent OOM errors
NODE_OPTIONS: --max_old_space_size=3584
GIT_DEPTH: "20"
# 'GIT_STRATEGY: clone' optimizes the pack-objects cache hit ratio
GIT_STRATEGY: "clone"
GIT_SUBMODULE_STRATEGY: "none"
GET_SOURCES_ATTEMPTS: "3"
DEBIAN_VERSION: "bullseye"
TMP_TEST_FOLDER: "${CI_PROJECT_DIR}/tmp/tests"
GITLAB_WORKHORSE_FOLDER: "gitlab-workhorse"
TMP_TEST_GITLAB_WORKHORSE_PATH: "${TMP_TEST_FOLDER}/${GITLAB_WORKHORSE_FOLDER}"
KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/report-master.json
FLAKY_RSPEC_SUITE_REPORT_PATH: rspec/flaky/report-suite.json
RSPEC_TESTS_MAPPING_PATH: crystalball/mapping.json
@ -86,6 +91,8 @@ variables:
CHECK_PRECOMPILED_ASSETS: "true"
FF_USE_FASTZIP: "true"
SKIP_FLAKY_TESTS_AUTOMATICALLY: "true"
# Run with decomposed databases by default
DECOMPOSED_DB: "true"
DOCS_REVIEW_APPS_DOMAIN: "178.62.207.141.nip.io"
DOCS_GITLAB_REPO_SUFFIX: "ee"

View file

@ -208,7 +208,9 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/.markdownlint @marcel.amirault @eread @aqualls @cnorris
/doc/ @gl-docsteam
/doc/.vale/ @marcel.amirault @eread @aqualls @cnorris
/doc/administration/application_settings_cache.md @marcia
[Documentation Pages]
/doc/administration/application_settings_cache.md @marcel.amirault
/doc/administration/audit_event_streaming.md @eread
/doc/administration/audit_events.md @eread
/doc/administration/audit_reports.md @eread
@ -226,7 +228,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/administration/auth/oidc.md @eread
/doc/administration/auth/smartcard.md @eread
/doc/administration/cicd.md @marcel.amirault
/doc/administration/clusters/kas.md @marcia
/doc/administration/clusters/kas.md @sselhorn
/doc/administration/compliance.md @eread
/doc/administration/configure.md @axil
/doc/administration/consul.md @axil
@ -259,17 +261,21 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/administration/maintenance_mode/index.md @axil
/doc/administration/merge_request_diffs.md @aqualls
/doc/administration/monitoring/ @ngaskill
/doc/administration/monitoring/prometheus/index.md @axil
/doc/administration/nfs.md @axil
/doc/administration/object_storage.md @axil
/doc/administration/operations/ @axil
/doc/administration/operations/sidekiq_memory_killer.md @marcia
/doc/administration/operations/moving_repositories.md @eread
/doc/administration/operations/sidekiq_memory_killer.md @marcel.amirault
/doc/administration/package_information/ @axil
/doc/administration/packages/ @ngaskill
/doc/administration/pages/ @rdickenson
/doc/administration/pages/index.md @rdickenson
/doc/administration/pages/source.md @rdickenson
/doc/administration/polling.md @axil
/doc/administration/postgresql/ @marcia
/doc/administration/postgresql/ @aqualls
/doc/administration/pseudonymizer.md @axil
/doc/administration/raketasks/ @axil
/doc/administration/raketasks/praefect.md @eread
/doc/administration/read_only_gitlab.md @axil
/doc/administration/redis/ @axil
/doc/administration/reference_architectures/ @axil
@ -280,15 +286,16 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/administration/repository_storage_types.md @eread
/doc/administration/restart_gitlab.md @axil
/doc/administration/server_hooks.md @eread
/doc/administration/sidekiq_health_check.md @axil
/doc/administration/sidekiq.md @axil
/doc/administration/smime_signing_email.md @axil
/doc/administration/snippets/index.md @aqualls
/doc/administration/static_objects_external_storage.md @aqualls
/doc/administration/terraform_state.md @marcia
/doc/administration/terraform_state.md @sselhorn
/doc/administration/timezone.md @axil
/doc/administration/troubleshooting/ @axil
/doc/administration/troubleshooting/group_saml_scim.md @eread
/doc/administration/troubleshooting/postgresql.md @marcia
/doc/administration/troubleshooting/elasticsearch.md @rdickenson
/doc/administration/troubleshooting/postgresql.md @aqualls
/doc/administration/uploads.md @axil
/doc/administration/user_settings.md @eread
/doc/administration/whats-new.md @kpaizee
@ -336,7 +343,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/group_activity_analytics.md @fneill
/doc/api/group_badges.md @eread
/doc/api/group_boards.md @msedlakjakubowski
/doc/api/group_clusters.md @marcia
/doc/api/group_clusters.md @sselhorn
/doc/api/group_import_export.md @ngaskill
/doc/api/group_iterations.md @msedlakjakubowski
/doc/api/group_labels.md @msedlakjakubowski
@ -349,7 +356,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/groups.md @eread
/doc/api/import.md @ngaskill
/doc/api/index.md @kpaizee
/doc/api/instance_clusters.md @marcia
/doc/api/instance_clusters.md @sselhorn
/doc/api/instance_level_ci_variables.md @marcel.amirault
/doc/api/integrations.md @kpaizee
/doc/api/invitations.md @kpaizee
@ -389,7 +396,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/plan_limits.md @eread
/doc/api/project_aliases.md @aqualls
/doc/api/project_badges.md @aqualls
/doc/api/project_clusters.md @marcia
/doc/api/project_clusters.md @sselhorn
/doc/api/project_import_export.md @aqualls
/doc/api/project_level_variables.md @marcel.amirault
/doc/api/project_relations_export.md @ngaskill
@ -408,7 +415,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/repositories.md @aqualls
/doc/api/repository_files.md @aqualls
/doc/api/repository_submodules.md @aqualls
/doc/api/resource_access_tokens.md @eread
/doc/api/resource_groups.md @rdickenson
/doc/api/resource_iteration_events.md @msedlakjakubowski
/doc/api/resource_label_events.md @eread
@ -418,6 +424,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/runners.md @sselhorn
/doc/api/scim.md @eread
/doc/api/search.md @aqualls
/doc/api/secure_files.md @marcel.amirault
/doc/api/settings.md @eread
/doc/api/sidekiq_metrics.md @axil
/doc/api/snippet_repository_storage_moves.md @aqualls
@ -435,7 +442,6 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/topics.md @fneill
/doc/api/usage_data.md @fneill
/doc/api/users.md @eread
/doc/api/v3_to_v4.md @kpaizee
/doc/api/version.md @kpaizee
/doc/api/visual_review_discussions.md @eread
/doc/api/vulnerabilities.md @fneill
@ -443,13 +449,14 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/api/vulnerability_findings.md @fneill
/doc/api/wikis.md @aqualls
/doc/architecture/blueprints/container_registry_metadata_database/index.md @ngaskill
/doc/architecture/blueprints/database/scalability/patterns/ @marcia
/doc/architecture/blueprints/gitlab_to_kubernetes_communication/index.md @marcia
/doc/architecture/blueprints/database/scalability/patterns/ @aqualls
/doc/architecture/blueprints/gitlab_to_kubernetes_communication/index.md @sselhorn
/doc/ci/caching/index.md @marcel.amirault
/doc/ci/chatops/index.md @marcia
/doc/ci/chatops/index.md @sselhorn
/doc/ci/ci_cd_for_external_repos/ @marcel.amirault
/doc/ci/cloud_deployment/ecs/quick_start_guide.md @rdickenson
/doc/ci/cloud_deployment/index.md @rdickenson
/doc/ci/cloud_services/ @marcel.amirault
/doc/ci/directed_acyclic_graph/index.md @marcel.amirault
/doc/ci/docker/index.md @marcel.amirault
/doc/ci/docker/using_docker_build.md @marcel.amirault
@ -457,7 +464,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/ci/docker/using_kaniko.md @marcel.amirault
/doc/ci/enable_or_disable_ci.md @marcel.amirault
/doc/ci/environments/ @rdickenson
/doc/ci/examples/authenticating-with-hashicorp-vault/index.md @rdickenson
/doc/ci/examples/authenticating-with-hashicorp-vault/index.md @marcel.amirault
/doc/ci/examples/deployment/composer-npm-deploy.md @rdickenson
/doc/ci/examples/deployment/index.md @rdickenson
/doc/ci/examples/end_to_end_testing_webdriverio/index.md @eread
@ -485,7 +492,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/ci/resource_groups/index.md @rdickenson
/doc/ci/review_apps/index.md @eread
/doc/ci/runners/ @sselhorn
/doc/ci/secrets/index.md @marcia
/doc/ci/secrets/index.md @marcel.amirault
/doc/ci/services/ @sselhorn
/doc/ci/ssh_keys/index.md @marcel.amirault
/doc/ci/test_cases/index.md @msedlakjakubowski
@ -495,104 +502,84 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/ci/variables/ @marcel.amirault
/doc/ci/yaml/ @marcel.amirault
/doc/ci/yaml/artifacts_reports.md @eread
/doc/development/adding_database_indexes.md @marcia
/doc/development/adding_database_indexes.md @aqualls
/doc/development/application_limits.md @axil
/doc/development/approval_rules.md @aqualls
/doc/development/audit_event_guide/index.md @eread
/doc/development/auto_devops.md @marcia
/doc/development/avoiding_downtime_in_migrations.md @marcia
/doc/development/backend/ruby_style_guide.md @marcia
/doc/development/background_migrations.md @marcia
/doc/development/auto_devops.md @sselhorn
/doc/development/avoiding_downtime_in_migrations.md @aqualls
/doc/development/backend/create_source_code_be/index.md @aqualls
/doc/development/build_test_package.md @axil
/doc/development/bulk_import.md @ngaskill
/doc/development/cascading_settings.md @eread
/doc/development/chatops_on_gitlabcom.md @marcia
/doc/development/chatops_on_gitlabcom.md @sselhorn
/doc/development/cicd/cicd_reference_documentation_guide.md @marcel.amirault
/doc/development/cicd/index.md @marcel.amirault
/doc/development/cicd/schema.md @marcel.amirault
/doc/development/cicd/templates.md @marcel.amirault
/doc/development/code_intelligence/index.md @aqualls
/doc/development/contributing/ @marcia
/doc/development/creating_enums.md @marcia
/doc/development/database_debugging.md @marcia
/doc/development/database_query_comments.md @marcia
/doc/development/database_review.md @marcia
/doc/development/database/ @marcia
/doc/development/db_dump.md @marcia
/doc/development/creating_enums.md @aqualls
/doc/development/database_debugging.md @aqualls
/doc/development/database_query_comments.md @aqualls
/doc/development/database_review.md @aqualls
/doc/development/database/ @aqualls
/doc/development/db_dump.md @aqualls
/doc/development/developing_with_solargraph.md @aqualls
/doc/development/distributed_tracing.md @ngaskill
/doc/development/documentation/feature_flags.md @marcia
/doc/development/documentation/graphql_styleguide.md @marcia
/doc/development/documentation/feature_flags.md @sselhorn
/doc/development/documentation/graphql_styleguide.md @sselhorn
/doc/development/documentation/index.md @cnorris
/doc/development/documentation/redirects.md @cnorris
/doc/development/documentation/restful_api_styleguide.md @marcia
/doc/development/documentation/review_apps.md @cnorris
/doc/development/documentation/structure.md @sselhorn
/doc/development/documentation/styleguide/index.md @sselhorn
/doc/development/documentation/styleguide/word_list.md @sselhorn
/doc/development/documentation/styleguide/ @sselhorn
/doc/development/documentation/testing.md @cnorris
/doc/development/elasticsearch.md @marcia
/doc/development/elasticsearch.md @rdickenson
/doc/development/experiment_guide/ @kpaizee
/doc/development/export_csv.md @ngaskill
/doc/development/fe_guide/content_editor.md @aqualls
/doc/development/fe_guide/dark_mode.md @marcia
/doc/development/fe_guide/graphql.md @marcia
/doc/development/fe_guide/source_editor.md @aqualls
/doc/development/feature_categorization/index.md @marcia
/doc/development/feature_flags/controls.md @marcia
/doc/development/feature_flags/index.md @marcia
/doc/development/filtering_by_label.md @msedlakjakubowski
/doc/development/foreign_keys.md @marcia
/doc/development/foreign_keys.md @aqualls
/doc/development/geo.md @axil
/doc/development/geo/framework.md @axil
/doc/development/git_object_deduplication.md @eread
/doc/development/gitaly.md @eread
/doc/development/graphql_guide/batchloader.md @marcia
/doc/development/graphql_guide/graphql_pro.md @kpaizee
/doc/development/graphql_guide/index.md @kpaizee
/doc/development/graphql_guide/pagination.md @kpaizee
/doc/development/hash_indexes.md @marcia
/doc/development/graphql_guide/ @kpaizee
/doc/development/graphql_guide/batchloader.md @aqualls
/doc/development/hash_indexes.md @aqualls
/doc/development/i18n/ @ngaskill
/doc/development/image_scaling.md @marcia
/doc/development/image_scaling.md @marcel.amirault
/doc/development/import_export.md @ngaskill
/doc/development/index.md @marcia
/doc/development/insert_into_tables_in_batches.md @marcia
/doc/development/integrations/codesandbox.md @marcia
/doc/development/insert_into_tables_in_batches.md @aqualls
/doc/development/integrations/jenkins.md @kpaizee
/doc/development/integrations/jira_connect.md @kpaizee
/doc/development/integrations/secure_partner_integration.md @rdickenson
/doc/development/integrations/secure.md @ngaskill
/doc/development/internal_api/ @aqualls
/doc/development/internal_users.md @marcia
/doc/development/issuable-like-models.md @msedlakjakubowski
/doc/development/issue_types.md @msedlakjakubowski
/doc/development/iterating_tables_in_batches.md @marcia
/doc/development/kubernetes.md @marcia
/doc/development/iterating_tables_in_batches.md @aqualls
/doc/development/kubernetes.md @sselhorn
/doc/development/lfs.md @aqualls
/doc/development/licensed_feature_availability.md @sselhorn
/doc/development/logging.md @ngaskill
/doc/development/maintenance_mode.md @axil
/doc/development/new_fe_guide/modules/widget_extensions.md @aqualls
/doc/development/new_fe_guide/tips.md @marcia
/doc/development/omnibus.md @axil
/doc/development/ordering_table_columns.md @marcia
/doc/development/ordering_table_columns.md @aqualls
/doc/development/packages.md @ngaskill
/doc/development/permissions.md @eread
/doc/development/policies.md @eread
/doc/development/prometheus_metrics.md @ngaskill
/doc/development/query_performance.md @marcia
/doc/development/product_qualified_lead_guide/index.md @kpaizee
/doc/development/query_performance.md @aqualls
/doc/development/real_time.md @msedlakjakubowski
/doc/development/secure_coding_guidelines.md @marcia
/doc/development/serializing_data.md @marcia
/doc/development/serializing_data.md @aqualls
/doc/development/service_ping/ @fneill
/doc/development/snowplow/ @fneill
/doc/development/sql.md @marcia
/doc/development/stage_group_dashboards.md @marcia
/doc/development/swapping_tables.md @marcia
/doc/development/testing_guide/best_practices.md @marcia
/doc/development/testing_guide/end_to_end/best_practices.md @marcia
/doc/development/understanding_explain_plans.md @marcia
/doc/development/sql.md @aqualls
/doc/development/swapping_tables.md @aqualls
/doc/development/understanding_explain_plans.md @aqualls
/doc/development/value_stream_analytics.md @fneill
/doc/development/verifying_database_capabilities.md @marcia
/doc/development/value_stream_analytics/value_stream_analytics_aggregated_backend.md @fneill
/doc/development/verifying_database_capabilities.md @aqualls
/doc/development/wikis.md @aqualls
/doc/development/work_items.md @msedlakjakubowski
/doc/development/work_items_widgets.md @msedlakjakubowski
@ -605,7 +592,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/gitlab-basics/start-using-git.md @aqualls
/doc/install/ @axil
/doc/integration/ @kpaizee
/doc/integration/elasticsearch.md @marcia
/doc/integration/elasticsearch.md @rdickenson
/doc/integration/gitpod.md @aqualls
/doc/integration/kerberos.md @eread
/doc/integration/mattermost/index.md @axil
@ -613,7 +600,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/integration/saml.md @eread
/doc/integration/security_partners/index.md @rdickenson
/doc/integration/sourcegraph.md @aqualls
/doc/integration/vault.md @rdickenson
/doc/integration/vault.md @sselhorn
/doc/operations/ @ngaskill
/doc/operations/feature_flags.md @rdickenson
/doc/operations/product_analytics.md @fneill
@ -626,18 +613,17 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/raketasks/x509_signatures.md @aqualls
/doc/security/ @eread
/doc/ssh/index.md @eread
/doc/subscriptions/ @sselhorn
/doc/subscriptions/ @fneill
/doc/system_hooks/system_hooks.md @kpaizee
/doc/topics/authentication/index.md @eread
/doc/topics/autodevops/customize.md @marcia
/doc/topics/autodevops/ @marcia
/doc/topics/autodevops/ @sselhorn
/doc/topics/git/ @aqualls
/doc/topics/gitlab_flow.md @aqualls
/doc/topics/offline/ @axil
/doc/topics/plan_and_track.md @msedlakjakubowski
/doc/update/ @axil
/doc/update/mysql_to_postgresql.md @marcia
/doc/update/upgrading_postgresql_using_slony.md @marcia
/doc/update/mysql_to_postgresql.md @aqualls
/doc/update/upgrading_postgresql_using_slony.md @aqualls
/doc/user/admin_area/analytics/ @fneill
/doc/user/admin_area/broadcast_messages.md @kpaizee
/doc/user/admin_area/credentials_inventory.md @eread
@ -648,8 +634,9 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/user/admin_area/license.md @kpaizee
/doc/user/admin_area/merge_requests_approvals.md @aqualls
/doc/user/admin_area/moderate_users.md @eread
/doc/user/admin_area/monitoring/background_migrations.md @marcia
/doc/user/admin_area/monitoring/background_migrations.md @aqualls
/doc/user/admin_area/monitoring/health_check.md @ngaskill
/doc/user/admin_area/reporting/spamcheck.md @axil
/doc/user/admin_area/review_abuse_reports.md @eread
/doc/user/admin_area/settings/account_and_limit_settings.md @aqualls
/doc/user/admin_area/settings/continuous_integration.md @marcel.amirault
@ -667,6 +654,8 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/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_users_api.md @eread
/doc/user/admin_area/settings/third_party_offers.md @fneill
/doc/user/admin_area/settings/visibility_and_access_controls.md @aqualls
/doc/user/analytics/ci_cd_analytics.md @rdickenson
/doc/user/analytics/ @fneill
@ -674,20 +663,20 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/user/application_security/cluster_image_scanning/index.md @ngaskill
/doc/user/application_security/container_scanning/index.md @ngaskill
/doc/user/application_security/cve_id_request.md @fneill
/doc/user/application_security/policies/index.md @ngaskill
/doc/user/application_security/policies/ @ngaskill
/doc/user/application_security/security_dashboard/index.md @fneill
/doc/user/application_security/threat_monitoring/index.md @ngaskill
/doc/user/application_security/vulnerabilities/ @fneill
/doc/user/application_security/vulnerability_report/index.md @fneill
/doc/user/asciidoc.md @aqualls
/doc/user/award_emojis.md @msedlakjakubowski
/doc/user/clusters/ @marcia
/doc/user/clusters/ @sselhorn
/doc/user/compliance/compliance_report/index.md @eread
/doc/user/compliance/index.md @eread
/doc/user/compliance/license_compliance/index.md @rdickenson
/doc/user/crm/index.md @msedlakjakubowski
/doc/user/discussions/index.md @aqualls
/doc/user/feature_flags.md @marcia
/doc/user/group/clusters/index.md @marcia
/doc/user/group/clusters/index.md @sselhorn
/doc/user/group/contribution_analytics/index.md @fneill
/doc/user/group/custom_project_templates.md @ngaskill
/doc/user/group/devops_adoption/index.md @fneill
@ -699,6 +688,7 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/user/group/insights/index.md @fneill
/doc/user/group/issues_analytics/index.md @msedlakjakubowski
/doc/user/group/iterations/index.md @msedlakjakubowski
/doc/user/group/planning_hierarchy/index.md @msedlakjakubowski
/doc/user/group/repositories_analytics/index.md @eread
/doc/user/group/roadmap/index.md @msedlakjakubowski
/doc/user/group/saml_sso/group_managed_accounts.md @eread
@ -707,31 +697,24 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/user/group/settings/import_export.md @ngaskill
/doc/user/group/subgroups/index.md @eread
/doc/user/group/value_stream_analytics/index.md @fneill
/doc/user/infrastructure/clusters/ @marcia
/doc/user/infrastructure/clusters/manage/clusters_health.md @marcia
/doc/user/infrastructure/clusters/ @sselhorn
/doc/user/infrastructure/clusters/manage/management_project_applications/apparmor.md @ngaskill
/doc/user/infrastructure/clusters/manage/management_project_applications/certmanager.md @marcia
/doc/user/infrastructure/clusters/manage/management_project_applications/cilium.md @ngaskill
/doc/user/infrastructure/clusters/manage/management_project_applications/elasticstack.md @ngaskill
/doc/user/infrastructure/clusters/manage/management_project_applications/falco.md @ngaskill
/doc/user/infrastructure/clusters/manage/management_project_applications/fluentd.md @ngaskill
/doc/user/infrastructure/clusters/manage/management_project_applications/ingress.md @marcia
/doc/user/infrastructure/clusters/manage/management_project_applications/prometheus.md @ngaskill
/doc/user/infrastructure/clusters/manage/management_project_applications/runner.md @sselhorn
/doc/user/infrastructure/clusters/manage/management_project_applications/sentry.md @ngaskill
/doc/user/infrastructure/clusters/manage/management_project_applications/vault.md @marcia
/doc/user/infrastructure/iac/ @marcia
/doc/user/infrastructure/index.md @marcia
/doc/user/infrastructure/iac/ @sselhorn
/doc/user/infrastructure/index.md @ssehorn
/doc/user/markdown.md @aqualls
/doc/user/packages/ @ngaskill
/doc/user/packages/infrastructure_registry/index.md @marcia
/doc/user/packages/terraform_module_registry/index.md @marcia
/doc/user/packages/infrastructure_registry/index.md @sselhorn
/doc/user/packages/terraform_module_registry/index.md @sselhorn
/doc/user/permissions.md @eread
/doc/user/profile/ @eread
/doc/user/profile/notifications.md @msedlakjakubowski
/doc/user/project/autocomplete_characters.md @aqualls
/doc/user/project/badges.md @aqualls
/doc/user/project/clusters/ @marcia
/doc/user/project/clusters/ @sselhorn
/doc/user/project/clusters/kubernetes_pod_logs.md @ngaskill
/doc/user/project/clusters/protect/ @ngaskill
/doc/user/project/code_intelligence.md @aqualls
@ -786,10 +769,11 @@ lib/gitlab/checks/** @proglottis @toon @zj-gitlab
/doc/user/project/wiki/index.md @aqualls
/doc/user/project/working_with_projects.md @fneill
/doc/user/reserved_names.md @fneill
/doc/user/search/advanced_search.md @marcia
/doc/user/search/advanced_search.md @rdickenson
/doc/user/search/index.md @aqualls
/doc/user/shortcuts.md @aqualls
/doc/user/snippets.md @aqualls
/doc/user/tasks.md @msedlakjakubowski
/doc/user/todos.md @msedlakjakubowski
/doc/user/usage_quotas.md @sselhorn
/doc/user/usage_quotas.md @fneill
/doc/user/workspace/index.md @fneill

View file

@ -0,0 +1,13 @@
templates-shellcheck:
extends:
- .ci-templates:rules:shellcheck
- .default-before_script
- .default-retry
- .ruby-cache
- .use-pg13
stage: test
needs:
- setup-test-env
script:
- apt update && apt install -y shellcheck=0.7.1-1+deb11u1
- bundle exec scripts/lint_templates_bash.rb

View file

@ -11,7 +11,7 @@
- .default-retry
- .default-before_script
- .assets-compile-cache
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7-git-2.33-lfs-2.9-node-14.15-yarn-1.22-graphicsmagick-1.3.36
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7-git-2.33-lfs-2.9-node-16.14-yarn-1.22-graphicsmagick-1.3.36
variables:
SETUP_DB: "false"
WEBPACK_VENDOR_DLL: "true"

View file

@ -213,7 +213,7 @@
- *storybook-node-modules-cache-push
.use-pg11:
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-11-graphicsmagick-1.3.36
services:
- name: postgres:11.6
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
@ -222,16 +222,16 @@
POSTGRES_HOST_AUTH_METHOD: trust
.use-pg12:
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-12-graphicsmagick-1.3.36
services:
- name: postgres:12
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:5.0-alpine
- name: redis:6.0-alpine
variables:
POSTGRES_HOST_AUTH_METHOD: trust
.use-pg13:
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-13-graphicsmagick-1.3.36
services:
- name: postgres:13
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
@ -240,34 +240,34 @@
POSTGRES_HOST_AUTH_METHOD: trust
.use-pg11-ee:
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-14.15-yarn-1.22-postgresql-11-graphicsmagick-1.3.36
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-11-graphicsmagick-1.3.36
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.14.2
- name: elasticsearch:7.17.0
command: ["elasticsearch", "-E", "discovery.type=single-node"]
variables:
POSTGRES_HOST_AUTH_METHOD: trust
.use-pg12-ee:
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-14.15-yarn-1.22-postgresql-12-graphicsmagick-1.3.36
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-12-graphicsmagick-1.3.36
services:
- name: postgres:12
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:5.0-alpine
- name: elasticsearch:7.14.2
- name: redis:6.0-alpine
- name: elasticsearch:7.17.0
command: ["elasticsearch", "-E", "discovery.type=single-node"]
variables:
POSTGRES_HOST_AUTH_METHOD: trust
.use-pg13-ee:
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-14.15-yarn-1.22-postgresql-13-graphicsmagick-1.3.36
image: ${REGISTRY_HOST}/${REGISTRY_GROUP}/gitlab-build-images:debian-${DEBIAN_VERSION}-ruby-2.7.patched-golang-1.16-git-2.33-lfs-2.9-chrome-97-node-16.14-yarn-1.22-postgresql-13-graphicsmagick-1.3.36
services:
- name: postgres:13
command: ["postgres", "-c", "fsync=off", "-c", "synchronous_commit=off", "-c", "full_page_writes=off"]
- name: redis:5.0-alpine
- name: elasticsearch:7.14.2
- name: elasticsearch:7.17.0
command: ["elasticsearch", "-E", "discovery.type=single-node"]
variables:
POSTGRES_HOST_AUTH_METHOD: trust

View file

@ -9,7 +9,7 @@
artifacts:
reports:
metrics: "${METRICS_FILE}"
expire_in: 31d
expire_in: 62d
# Show memory usage caused by invoking require per gem.
@ -26,11 +26,17 @@ memory-on-boot:
NODE_ENV: "production"
RAILS_ENV: "production"
SETUP_DB: "true"
MEMORY_ON_BOOT_FILE: "tmp/memory_on_boot.txt"
MEMORY_ON_BOOT_FILE_PREFIX: "tmp/memory_on_boot_"
TEST_COUNT: 5
script:
- PATH_TO_HIT="/users/sign_in" CUT_OFF=0.3 bundle exec derailed exec perf:mem >> "${MEMORY_ON_BOOT_FILE}"
- scripts/generate-memory-metrics-on-boot "${MEMORY_ON_BOOT_FILE}" >> "${METRICS_FILE}"
- |
for i in $(seq 1 $TEST_COUNT)
do
echo "Starting run $i out of $TEST_COUNT"
PATH_TO_HIT="/users/sign_in" CUT_OFF=0.3 bundle exec derailed exec perf:mem >> "${MEMORY_ON_BOOT_FILE_PREFIX}$i.txt"
done
- scripts/generate-memory-metrics-on-boot "${MEMORY_ON_BOOT_FILE_PREFIX}" "$TEST_COUNT" >> "${METRICS_FILE}"
artifacts:
paths:
- "${METRICS_FILE}"
- "${MEMORY_ON_BOOT_FILE}"
- "${MEMORY_ON_BOOT_FILE_PREFIX}*.txt"

View file

@ -18,15 +18,14 @@
variables:
RSPEC_TESTS_MAPPING_ENABLED: "true"
.decomposed-database:
.single-db:
variables:
DECOMPOSED_DB: "true"
DECOMPOSED_DB: "false"
.decomposed-database-rspec:
extends: .decomposed-database
.single-db-rspec:
extends: .single-db
variables:
GITLAB_LOAD_BALANCING_REUSE_PRIMARY_ci: "main"
GITLAB_USE_MODEL_LOAD_BALANCING: "true"
GITLAB_USE_MODEL_LOAD_BALANCING: "false"
.rspec-base:
extends:
@ -182,7 +181,7 @@
# rspec job parallel configs
############################
#######################################################
###############################################################
# EE/FOSS: default refs (MRs, default branch, schedules) jobs #
setup-test-env:
extends:
@ -193,40 +192,53 @@ setup-test-env:
variables:
SETUP_DB: "false"
script:
- source scripts/gitlab_workhorse_component_helpers.sh
- run_timed_command "download_and_extract_gitlab_workhorse_package" || true
- run_timed_command "scripts/setup-test-env"
- run_timed_command "select_gitlab_workhorse_essentials"
- echo -e "\e[0Ksection_start:`date +%s`:gitaly-test-build[collapsed=true]\r\e[0KCompiling Gitaly binaries"
- run_timed_command "scripts/gitaly-test-build" # Do not use 'bundle exec' here
- echo -e "\e[0Ksection_end:`date +%s`:gitaly-test-build\r\e[0K"
artifacts:
expire_in: 7d
paths:
- config/secrets.yml
- tmp/tests/gitaly/_build/bin/
- tmp/tests/gitaly/_build/deps/git/install
- tmp/tests/gitaly/config.toml
- tmp/tests/gitaly/gitaly2.config.toml
- tmp/tests/gitaly/internal/
- tmp/tests/gitaly/internal_gitaly2/
- tmp/tests/gitaly/internal_sockets/
- tmp/tests/gitaly/Makefile
- tmp/tests/gitaly/praefect.config.toml
- tmp/tests/gitaly/ruby/
- tmp/tests/gitlab-elasticsearch-indexer/bin/gitlab-elasticsearch-indexer
- tmp/tests/gitlab-shell/
- tmp/tests/gitlab-test-fork/
- tmp/tests/gitlab-test-fork_bare/
- tmp/tests/gitlab-test/
- tmp/tests/gitlab-workhorse/gitlab-zip-metadata
- tmp/tests/gitlab-workhorse/gitlab-zip-cat
- tmp/tests/gitlab-workhorse/gitlab-workhorse
- tmp/tests/gitlab-workhorse/gitlab-resize-image
- tmp/tests/gitlab-workhorse/config.toml
- tmp/tests/gitlab-workhorse/WORKHORSE_TREE
- tmp/tests/repositories/
- tmp/tests/second_storage/
- ${TMP_TEST_FOLDER}/gitaly/_build/bin/
- ${TMP_TEST_FOLDER}/gitaly/_build/deps/git/install
- ${TMP_TEST_FOLDER}/gitaly/config.toml
- ${TMP_TEST_FOLDER}/gitaly/gitaly2.config.toml
- ${TMP_TEST_FOLDER}/gitaly/internal/
- ${TMP_TEST_FOLDER}/gitaly/internal_gitaly2/
- ${TMP_TEST_FOLDER}/gitaly/internal_sockets/
- ${TMP_TEST_FOLDER}/gitaly/Makefile
- ${TMP_TEST_FOLDER}/gitaly/praefect.config.toml
- ${TMP_TEST_FOLDER}/gitaly/ruby/
- ${TMP_TEST_FOLDER}/gitlab-elasticsearch-indexer/bin/gitlab-elasticsearch-indexer
- ${TMP_TEST_FOLDER}/gitlab-shell/
- ${TMP_TEST_FOLDER}/gitlab-test-fork/
- ${TMP_TEST_FOLDER}/gitlab-test-fork_bare/
- ${TMP_TEST_FOLDER}/gitlab-test/
- ${TMP_TEST_FOLDER}/repositories/
- ${TMP_TEST_FOLDER}/second_storage/
- ${TMP_TEST_GITLAB_WORKHORSE_PATH}/
when: always
build-components:
extends:
- setup-test-env
- .rails:rules:build-components
script:
- source scripts/gitlab_workhorse_component_helpers.sh
- 'gitlab_workhorse_archive_doesnt_exist || { echoinfo "INFO: Exiting early as package exists."; exit 0; }'
- run_timed_command "scripts/setup-test-env"
- run_timed_command "select_gitlab_workhorse_essentials"
- run_timed_command "create_gitlab_workhorse_package"
- run_timed_command "upload_gitlab_workhorse_package"
artifacts:
expire_in: 7d
paths:
- ${TMP_TEST_GITLAB_WORKHORSE_PATH}/
update-setup-test-env-cache:
extends:
- setup-test-env
@ -264,11 +276,11 @@ rspec migration pg12 minimal:
- .minimal-rspec-tests
- .rails:rules:ee-and-foss-migration:minimal
rspec migration pg12 decomposed:
rspec migration pg12 single-db:
extends:
- rspec migration pg12
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-db
rspec unit pg12:
extends:
@ -282,11 +294,11 @@ rspec unit pg12 minimal:
- .minimal-rspec-tests
- .rails:rules:ee-and-foss-unit:minimal
rspec unit pg12 decomposed:
rspec unit pg12 single-db:
extends:
- rspec unit pg12
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-db
rspec integration pg12:
extends:
@ -300,11 +312,11 @@ rspec integration pg12 minimal:
- .minimal-rspec-tests
- .rails:rules:ee-and-foss-integration:minimal
rspec integration pg12 decomposed:
rspec integration pg12 single-db:
extends:
- rspec integration pg12
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-db
rspec system pg12:
extends:
@ -320,11 +332,11 @@ rspec system pg12 minimal:
- .minimal-rspec-tests
- .rails:rules:ee-and-foss-system:minimal
rspec system pg12 decomposed:
rspec system pg12 single-db:
extends:
- rspec system pg12
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-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.
@ -351,22 +363,22 @@ db:rollback:
- scripts/db_tasks db:migrate VERSION=20210301200959
- scripts/db_tasks db:migrate SKIP_SCHEMA_VERSION_CHECK=true
db:rollback decomposed:
db:rollback single-db:
extends:
- db:rollback
- .decomposed-database
- .rails:rules:decomposed-databases
- .single-db
- .rails:rules:single-db
db:migrate:reset:
extends: .db-job-base
script:
- bundle exec rake db:migrate:reset
db:migrate:reset decomposed:
db:migrate:reset single-db:
extends:
- db:migrate:reset
- .decomposed-database
- .rails:rules:decomposed-databases
- .single-db
- .rails:rules:single-db
db:migrate-from-previous-major-version:
extends: .db-job-base
@ -375,6 +387,8 @@ db:migrate-from-previous-major-version:
SETUP_DB: "false"
PROJECT_TO_CHECKOUT: "gitlab-foss"
TAG_TO_CHECKOUT: "v13.12.9"
# FIXME: make this job work with `GITLAB_USE_MODEL_LOAD_BALANCING: true`, see https://gitlab.com/gitlab-org/gitlab/-/issues/355573
GITLAB_USE_MODEL_LOAD_BALANCING: "false"
before_script:
- !reference [.default-before_script, before_script]
- '[[ -d "ee/" ]] || export PROJECT_TO_CHECKOUT="gitlab"'
@ -388,11 +402,11 @@ db:migrate-from-previous-major-version:
script:
- run_timed_command "scripts/db_tasks db:migrate"
db:migrate-from-previous-major-version-decomposed:
db:migrate-from-previous-major-version-single-db:
extends:
- db:migrate-from-previous-major-version
- .decomposed-database
- .rails:rules:decomposed-databases
- .single-db
- .rails:rules:single-db
.db:check-schema-base:
extends:
@ -409,9 +423,9 @@ db:check-schema:
- db:migrate-from-previous-major-version
- .db:check-schema-base
db:check-schema-decomposed:
db:check-schema-single-db:
extends:
- db:migrate-from-previous-major-version-decomposed
- db:migrate-from-previous-major-version-single-db
- .db:check-schema-base
db:check-migrations:
@ -423,11 +437,11 @@ db:check-migrations:
- scripts/validate_migration_schema
allow_failure: true
db:check-migrations-decomposed:
db:check-migrations-single-db:
extends:
- db:check-migrations
- .decomposed-database
- .rails:rules:decomposed-databases
- .single-db
- .rails:rules:single-db
db:migrate-non-superuser:
extends:
@ -534,11 +548,11 @@ rspec:coverage:
- rspec unit pg12 minimal
- rspec integration pg12 minimal
- rspec system pg12 minimal
# FOSS/EE decomposed jobs
- rspec migration pg12 decomposed
- rspec unit pg12 decomposed
- rspec integration pg12 decomposed
- rspec system pg12 decomposed
# FOSS/EE single-db jobs
- rspec migration pg12 single-db
- rspec unit pg12 single-db
- rspec integration pg12 single-db
- rspec system pg12 single-db
# EE jobs
- rspec-ee migration pg12
- rspec-ee unit pg12
@ -549,11 +563,11 @@ rspec:coverage:
- rspec-ee unit pg12 minimal
- rspec-ee integration pg12 minimal
- rspec-ee system pg12 minimal
# EE decomposed jobs
- rspec-ee migration pg12 decomposed
- rspec-ee unit pg12 decomposed
- rspec-ee integration pg12 decomposed
- rspec-ee system pg12 decomposed
# EE single-db jobs
- rspec-ee migration pg12 single-db
- rspec-ee unit pg12 single-db
- rspec-ee integration pg12 single-db
- rspec-ee system pg12 single-db
# Geo jobs
- rspec-ee unit pg12 geo
- rspec-ee integration pg12 geo
@ -567,16 +581,16 @@ rspec:coverage:
# As-if-FOSS jobs
- rspec migration pg12-as-if-foss
- rspec migration pg12-as-if-foss minimal
- rspec migration pg12-as-if-foss decomposed
- rspec migration pg12-as-if-foss single-db
- rspec unit pg12-as-if-foss
- rspec unit pg12-as-if-foss minimal
- rspec unit pg12-as-if-foss decomposed
- rspec unit pg12-as-if-foss single-db
- rspec integration pg12-as-if-foss
- rspec integration pg12-as-if-foss minimal
- rspec integration pg12-as-if-foss decomposed
- rspec integration pg12-as-if-foss single-db
- rspec system pg12-as-if-foss
- rspec system pg12-as-if-foss minimal
- rspec system pg12-as-if-foss decomposed
- rspec system pg12-as-if-foss single-db
script:
- run_timed_command "bundle exec scripts/merge-simplecov"
coverage: '/LOC \((\d+\.\d+%)\) covered.$/'
@ -666,11 +680,11 @@ rspec migration pg12-as-if-foss minimal:
- .minimal-rspec-tests
- .rails:rules:as-if-foss-migration:minimal
rspec migration pg12-as-if-foss decomposed:
rspec migration pg12-as-if-foss single-db:
extends:
- rspec migration pg12-as-if-foss
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-db
rspec unit pg12-as-if-foss:
extends:
@ -684,11 +698,11 @@ rspec unit pg12-as-if-foss minimal:
- .minimal-rspec-tests
- .rails:rules:as-if-foss-unit:minimal
rspec unit pg12-as-if-foss decomposed:
rspec unit pg12-as-if-foss single-db:
extends:
- rspec unit pg12-as-if-foss
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-db
rspec integration pg12-as-if-foss:
extends:
@ -702,11 +716,11 @@ rspec integration pg12-as-if-foss minimal:
- .minimal-rspec-tests
- .rails:rules:as-if-foss-integration:minimal
rspec integration pg12-as-if-foss decomposed:
rspec integration pg12-as-if-foss single-db:
extends:
- rspec integration pg12-as-if-foss
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-db
rspec system pg12-as-if-foss:
extends:
@ -720,11 +734,11 @@ rspec system pg12-as-if-foss minimal:
- .minimal-rspec-tests
- .rails:rules:as-if-foss-system:minimal
rspec system pg12-as-if-foss decomposed:
rspec system pg12-as-if-foss single-db:
extends:
- rspec system pg12-as-if-foss
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-db
rspec migration pg12-as-if-jh:
extends:
@ -764,11 +778,11 @@ rspec-ee migration pg12 minimal:
- .minimal-rspec-tests
- .rails:rules:ee-only-migration:minimal
rspec-ee migration pg12 decomposed:
rspec-ee migration pg12 single-db:
extends:
- rspec-ee migration pg12
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-db
rspec-ee unit pg12:
extends:
@ -782,11 +796,11 @@ rspec-ee unit pg12 minimal:
- .minimal-rspec-tests
- .rails:rules:ee-only-unit:minimal
rspec-ee unit pg12 decomposed:
rspec-ee unit pg12 single-db:
extends:
- rspec-ee unit pg12
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-db
rspec-ee integration pg12:
extends:
@ -800,11 +814,11 @@ rspec-ee integration pg12 minimal:
- .minimal-rspec-tests
- .rails:rules:ee-only-integration:minimal
rspec-ee integration pg12 decomposed:
rspec-ee integration pg12 single-db:
extends:
- rspec-ee integration pg12
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-db
rspec-ee system pg12:
extends:
@ -818,11 +832,11 @@ rspec-ee system pg12 minimal:
- .minimal-rspec-tests
- .rails:rules:ee-only-system:minimal
rspec-ee system pg12 decomposed:
rspec-ee system pg12 single-db:
extends:
- rspec-ee system pg12
- .decomposed-database-rspec
- .rails:rules:decomposed-databases
- .single-db-rspec
- .rails:rules:single-db
rspec-ee unit pg12 geo:
extends:

View file

@ -121,6 +121,11 @@ yarn-audit-dependency_scanning:
- cd .. && tar -I "gzip --best" -cf gitlab.tgz gitlab/
script:
- DEBUG=* node /usr/src/app/cli.js analyze --format gitlab --manager ${PACKAGE_MANAGER} gitlab.tgz | tee ${CI_PROJECT_DIR}/gl-dependency-scanning-report.json
after_script:
- mkdir ~/.aws
- '[[ -z "${AWS_SIEM_REPORT_INGESTION_CREDENTIALS_FILE}" ]] || mv "${AWS_SIEM_REPORT_INGESTION_CREDENTIALS_FILE}" ~/.aws/credentials'
- npm install --no-save --ignore-scripts @aws-sdk/client-s3@3.49.0
- scripts/ingest-reports-to-siem
artifacts:
paths:
- gl-dependency-scanning-report.json

View file

@ -5,7 +5,7 @@
extends:
- .reports:rules:schedule-dast
image:
name: "registry.gitlab.com/gitlab-org/security-products/dast:$DAST_VERSION"
name: "registry.gitlab.com/security-products/dast:$DAST_VERSION"
resource_group: dast_scan
variables:
DAST_USERNAME_FIELD: "user[login]"

View file

@ -42,9 +42,6 @@
expire_in: 7 days
when: always
.parallel-qa-base:
parallel: 5
.allure-report-base:
image:
name: ${GITLAB_DEPENDENCY_PROXY}andrcuns/allure-report-publisher:0.4.2
@ -82,7 +79,7 @@ review-qa-reliable:
extends:
- .review-qa-base
- .review:rules:review-qa-reliable
- .parallel-qa-base
parallel: 8
retry: 1
variables:
QA_RUN_TYPE: review-qa-reliable
@ -92,10 +89,11 @@ review-qa-all:
extends:
- .review-qa-base
- .review:rules:review-qa-all
- .parallel-qa-base
parallel: 5
variables:
QA_RUN_TYPE: review-qa-all
QA_SCENARIO: Test::Instance::All
QA_SKIP_SMOKE_RELIABLE: "true"
review-performance:
extends:

View file

@ -61,8 +61,8 @@
.if-merge-request-labels-run-all-jest: &if-merge-request-labels-run-all-jest
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-all-jest/'
.if-merge-request-labels-run-decomposed: &if-merge-request-labels-run-decomposed
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-decomposed/'
.if-merge-request-labels-run-single-db: &if-merge-request-labels-run-single-db
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-single-db/'
.if-merge-request-labels-run-review-app: &if-merge-request-labels-run-review-app
if: '$CI_MERGE_REQUEST_LABELS =~ /pipeline:run-review-app/'
@ -147,6 +147,9 @@
- "scripts/trigger-build.rb"
- "{,ee/,jh/}{bin,config}/**/*.rb"
.ci-templates-patterns: &ci-templates-patterns
- "lib/gitlab/ci/templates/**/*.gitlab-ci.yml"
.ci-qa-patterns: &ci-qa-patterns
- ".gitlab-ci.yml"
- ".gitlab/ci/frontend.gitlab-ci.yml"
@ -164,6 +167,7 @@
.yaml-lint-patterns: &yaml-lint-patterns
- ".gitlab-ci.yml"
- ".gitlab/ci/**/*.yml"
- "data/**/*.yml"
- "lib/gitlab/ci/templates/**/*.yml"
.docs-patterns: &docs-patterns
@ -247,7 +251,7 @@
# List explicitly all the app/ dirs that are backend (i.e. all except app/assets).
- "{,ee/,jh/}{app/channels,app/controllers,app/finders,app/graphql,app/helpers,app/mailers,app/models,app/policies,app/presenters,app/serializers,app/services,app/uploaders,app/validators,app/views,app/workers}/**/*"
- "{,ee/,jh/}{bin,cable,config,db,generator_templates,lib}/**/*"
- "{,ee/,jh/}spec/**/*.rb"
- "{,ee/,jh/}spec/**/*"
# CI changes
- ".gitlab-ci.yml"
- ".gitlab/ci/**/*"
@ -441,6 +445,9 @@
- "GITLAB_WORKHORSE_VERSION"
- "workhorse/**/*"
- ".gitlab/ci/workhorse.gitlab-ci.yml"
# CI Templates changes
- "scripts/lint_templates_bash.rb"
- "lib/gitlab/ci/templates/**/*.gitlab-ci.yml"
.danger-patterns: &danger-patterns
- "Dangerfile"
@ -609,6 +616,15 @@
when: manual
allow_failure: true
######################
# CI Templates Rules #
######################
.ci-templates:rules:shellcheck:
rules:
- changes: *ci-templates-patterns
- changes:
- scripts/lint_templates_bash.rb
##################
# Delivery rules #
##################
@ -876,14 +892,26 @@
###############
# Rails rules #
###############
.rails:rules:build-components:
rules:
- <<: *if-dot-com-ee-schedule
- <<: *if-dot-com-gitlab-org-default-branch
changes:
- "workhorse/**/*"
- <<: *if-dot-com-gitlab-org-merge-request
when: manual
allow_failure: true
.rails:rules:setup-test-env:
rules:
- changes: *setup-test-env-patterns
- <<: *if-merge-request-labels-run-all-rspec
.rails:rules:decomposed-databases:
.rails:rules:single-db:
rules:
- <<: *if-merge-request-labels-run-decomposed
- <<: *if-merge-request-labels-run-single-db
- <<: *if-merge-request
changes: *db-patterns
- <<: *if-default-branch-schedule-nightly
.rails:rules:ee-and-foss-migration:

View file

@ -159,7 +159,7 @@ add-jh-folder:
script:
- JH_BRANCH=$(./scripts/setup/find-jh-branch.rb)
- 'echo "JH_BRANCH: ${JH_BRANCH}"'
- curl --location -o "jh-folder.tar.gz" "https://gitlab.com/gitlab-org/gitlab-jh/gitlab/-/archive/${JH_BRANCH}/gitlab-${JH_BRANCH}.tar.gz?path=jh"
- curl --location -o "jh-folder.tar.gz" "https://gitlab.com/gitlab-org/gitlab-jh-mirrors/gitlab/-/archive/${JH_BRANCH}/gitlab-${JH_BRANCH}.tar.gz?path=jh"
- tar -xf "jh-folder.tar.gz"
- mv "gitlab-${JH_BRANCH}-jh/jh/" ./
- cp Gemfile.lock jh/

View file

@ -8,6 +8,6 @@ lint-yaml:
stage: lint
needs: []
variables:
LINT_PATHS: .gitlab-ci.yml .gitlab/ci lib/gitlab/ci/templates
LINT_PATHS: .gitlab-ci.yml .gitlab/ci lib/gitlab/ci/templates data/deprecations data/removals data/whats_new
script:
- yamllint --strict -f colored $LINT_PATHS

View file

@ -34,15 +34,33 @@ Which tier is this feature available in?
* Ultimate
-->
### Checklist
### Checklists
- [ ] @mention your stage's stable counterparts on this issue. For example, Customer Support, Customer Success (Technical Account Manager), Product Marketing Manager.
**Labels**
- [ ] This issue is labeled ~deprecation, and with the relevant `~devops::`, `~group::`, and `~Category:` labels.
- [ ] This issue is labeled ~"breaking change" if the removal of the deprecated item will be a [breaking change](https://about.gitlab.com/handbook/product/gitlab-the-product/#examples-of-breaking-changes).
**Timeline**
Please add links to the relevant merge requests.
- As soon as possible, but no later than the third milestone preceding the major release (for example, given the following release schedule: `14.8, 14.9, 14.10, 15.0` `14.8` is the third milestone preceding the major release):
- [ ] A [deprecation entry](https://about.gitlab.com/handbook/marketing/blog/release-posts/#creating-a-deprecation-entry) has been created so the deprecation will appear in release posts and on the [general deprecation page](https://docs.gitlab.com/ee/update/deprecations).
- [ ] Documentation has been updated to add a note about the [end-of-life](https://docs.gitlab.com/ee/development/documentation/styleguide/#end-of-life-for-features-or-products) and to mark the feature as [deprecated](https://docs.gitlab.com/ee/development/documentation/styleguide/#deprecated-features).
- [ ] On or before the major milestone: A [removal entry](https://about.gitlab.com/handbook/marketing/blog/release-posts/#removals) has been created so the removal will appear on the [removals by milestones](https://docs.gitlab.com/ee/update/removals) page and be announced in the release post.
- On the major milestone:
- [ ] The deprecated item has been removed.
- [ ] If the removal of the deprecated item is a [breaking change](https://about.gitlab.com/handbook/product/gitlab-the-product/#examples-of-breaking-changes), the merge request is labeled ~"breaking change".
**Mentions**
- [ ] Your stage's stable counterparts have been `@mentioned` on this issue. For example, Customer Support, Customer Success (Technical Account Manager), Product Marketing Manager.
- To see who the stable counterparts are for a product team visit [product categories](https://about.gitlab.com/handbook/product/categories/)
- If there is no stable counterpart listed for Sales/CS please mention `@timtams`
- If there is no stable counterpart listed for Support please mention `@gitlab-com/support/managers`
- If there is no stable counterpart listed for Marketing please mention `@cfoster3`
- [ ] `@mention` your GPM so that they are aware of planned deprecations. The goal is to have reviews happen at least two releases before the final removal of the feature or introduction of a breaking change.
- [ ] Your GPM has been `@mentioned` so that they are aware of planned deprecations. The goal is to have reviews happen at least two releases before the final removal of the feature or introduction of a breaking change.
### Deprecation Milestone
@ -75,6 +93,6 @@ Use the following resources to find the appropriate labels:
/label ~"GitLab Free" ~"GitLab Premium" ~"GitLab Ultimate"
<!-- Identifies that this Issue is related to deprecating a feature -->
/label ~"type::deprecation"
/label ~"deprecation"
<!-- Add the ~"breaking change" label to this issue if necessary -->

View file

@ -146,16 +146,18 @@ Deciding which persona we are focusing on will be part of the Day 1 discussions
* [Delaney (Development Team Lead)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#delaney-development-team-lead)
* [Presley (Product Designer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#presley-product-designer)
* [Sasha (Software Developer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sasha-software-developer)
* [Devon (DevOps Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#devon-devops-engineer)
* [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer)
* [Sidney (Systems Administrator)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sidney-systems-administrator)
* [Sam (Security Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sam-security-analyst)
* [Rachel (Release Manager)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#rachel-release-manager)
* [Alex (Security Operations Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#alex-security-operations-engineer)
* [Simone (Software Engineer in Test)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#simone-software-engineer-in-test)
* [Allison (Application Ops)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops)
* [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer)
* [Ingrid (Infrastructure Operator)](https://about.gitlab.com/handbook/product/personas/#ingrid-infrastructure-operator)
* [Dakota (Application Development Director)](https://about.gitlab.com/handbook/product/personas/#dakota-application-development-director)
* [Dana (Data Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#dana-data-analyst)
* [Eddie (Content Editor)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#eddie-content-editor)
-->
## Agenda

View file

@ -0,0 +1,53 @@
<!--
* Use this issue template for identifying issues to work on in existing documentation, normally identified
* with our [Vale](https://docs.gitlab.com/ee/development/documentation/testing.html#vale) or [markdownlint](https://docs.gitlab.com/ee/development/documentation/testing.html#markdownlint) tools. Much of this identified work is suitable for first-time contributors or
* for work during Hackathons.
*
* Normal documentation updates should use the Documentation template, and documentation work as part of
* feature development should use the Feature Request template.
-->
## Identified documentation issue
<!--
* Include information about the issue that needs resolution. If the item is from an automated test,
* be sure to include a copy/paste from the the test results. [This issue](https://gitlab.com/gitlab-org/gitlab/-/issues/339543) is an example of text to include with a Vale issue.
*
* Limit the identified work to be related to one another, and keep it to a reasonable amount. For example,
* several moderate changes on one page, a few intermediate changes across five pages, or several very small
* changes for up to 10 pages. Larger items should be broken out into other issues to better distribute
* the opportunities for contributors.
-->
## Process
If you, as a contributor, decide to take this work on, assign this issue to yourself, and create one or more linked
merge requests that resolve this issue. Be sure to close this issue after all linked merge requests are completed.
The work for this issue should involve only what's listed in the previous section. If you identify other work that
needs to be done, create separate, unlinked MRs as needed to address those items.
When using automated test results for identified work, use this issue to work only on the listed lines. For
example, if the tests list several lines that show the word "admin" as needing to possibly be "administrator,"
do not modify other parts of the page that may also include "admin," as the testing may have excluded those lines
(for example, they may be part of the **Admin Area** of GitLab).
## Additional information
<!--
* Any concepts, procedures, reference info we could add to make it easier to successfully use GitLab?
* Include use cases, benefits, and/or goals for this work.
* If adding content: What audience is it intended for? (What roles and scenarios?)
For ideas, see personas at https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/ or the persona labels at
https://gitlab.com/groups/gitlab-org/-/labels?subscribed=&search=persona%3A
-->
### Who can address the issue
<!-- What if any special expertise is required to resolve this issue? -->
### Other links/references
<!-- For example, related GitLab issues/MRs -->
/label ~documentation

View file

@ -1,6 +1,6 @@
<!--Lightweight issue template to encourage Dogfooding and educate team members about the importance of Dogfooding -->
/label ~"dogfooding" ~"group::" ~"section::" ~"Category::"
/label ~"dogfooding" ~"group::" ~"section::" ~"Category:"
## Feature to Dogfood
<!--Link to Description of feature (Documentation, Epic, Opportunity Canvas, etc.) -->

View file

@ -89,7 +89,8 @@ _Consider adding links to check for Sentry errors, Production logs for 5xx, 302s
- [ ] Ensure that you or a representative in development can be available for at least 2 hours after feature flag updates in production.
If a different developer will be covering, or an exception is needed, please inform the oncall SRE by using the `@sre-oncall` Slack alias.
- [ ] Ensure that documentation has been updated ([More info](https://docs.gitlab.com/ee/development/documentation/feature_flags.html#features-that-became-enabled-by-default)).
- [ ] Announce on [the feature issue](ISSUE LINK) an estimated time this will be enabled on GitLab.com.
- [ ] Announce on [the feature issue](ISSUE LINK) an estimated time this will be enabled on GitLab.com.
- [ ] Ensure that any breaking changes have been announced following the [release post process](https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes) to ensure GitLab customers are aware.
- [ ] Notify `#support_gitlab-com` and your team channel ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/ee/development/feature_flags/controls.html#communicate-the-change)).
### Global rollout on production
@ -100,7 +101,7 @@ For visibility, all `/chatops` commands that target production should be execute
- If the feature flag in code has [an actor](https://docs.gitlab.com/ee/development/feature_flags/#feature-actors), perform **actor-based** rollout.
- [ ] `/chatops run feature set <feature-flag-name> <rollout-percentage> --actors`
- If the feature flag in code does **NOT** have [an actor](https://docs.gitlab.com/ee/development/feature_flags/#feature-actors), perform time-based rollout (**random** rollout).
- [ ] `/chatops run feature set <feature-flag-name> <rollout-percentage>`
- [ ] `/chatops run feature set <feature-flag-name> <rollout-percentage> --random`
- Enable the feature globally on production environment.
- [ ] `/chatops run feature set <feature-flag-name> true`
- [ ] Announce on [the feature issue](ISSUE LINK) that the feature has been globally enabled.

View file

@ -25,17 +25,17 @@ Personas are described at https://about.gitlab.com/handbook/marketing/product-ma
* [Delaney (Development Team Lead)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#delaney-development-team-lead)
* [Presley (Product Designer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#presley-product-designer)
* [Sasha (Software Developer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sasha-software-developer)
* [Devon (DevOps Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#devon-devops-engineer)
* [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer)
* [Sidney (Systems Administrator)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sidney-systems-administrator)
* [Sam (Security Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sam-security-analyst)
* [Rachel (Release Manager)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#rachel-release-manager)
* [Alex (Security Operations Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#alex-security-operations-engineer)
* [Simone (Software Engineer in Test)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#simone-software-engineer-in-test)
* [Allison (Application Ops)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops)
* [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer)
* [Ingrid (Infrastructure Operator)](https://about.gitlab.com/handbook/product/personas/#ingrid-infrastructure-operator)
* [Dakota (Application Development Director)](https://about.gitlab.com/handbook/product/personas/#dakota-application-development-director)
* [Dana (Data Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#dana-data-analyst)
* [Eddie (Content Editor)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#eddie-content-editor)
-->
### Feature Usage Metrics

View file

@ -4,7 +4,7 @@
<!-- What is the problem and solution you're proposing? This content sets the overall vision for the feature and serves as the release notes that will populate in various places, including the [release post blog](https://about.gitlab.com/releases/categories/releases/) and [Gitlab project releases](https://gitlab.com/gitlab-org/gitlab/-/releases). " -->
### Problem to solve
### Problem to solve
<!-- What problem do we solve? Try to define the who/what/why of the opportunity as a user story. For example, "As a (who), I want (what), so I can (why/value)." -->
@ -19,16 +19,18 @@ Personas are described at https://about.gitlab.com/handbook/marketing/product-ma
* [Delaney (Development Team Lead)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#delaney-development-team-lead)
* [Presley (Product Designer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#presley-product-designer)
* [Sasha (Software Developer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sasha-software-developer)
* [Devon (DevOps Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#devon-devops-engineer)
* [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer)
* [Sidney (Systems Administrator)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sidney-systems-administrator)
* [Sam (Security Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sam-security-analyst)
* [Rachel (Release Manager)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#rachel-release-manager)
* [Alex (Security Operations Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#alex-security-operations-engineer)
* [Simone (Software Engineer in Test)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#simone-software-engineer-in-test)
* [Allison (Application Ops)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops)
* [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer)
* [Ingrid (Infrastructure Operator)](https://about.gitlab.com/handbook/product/personas/#ingrid-infrastructure-operator)
* [Dakota (Application Development Director)](https://about.gitlab.com/handbook/product/personas/#dakota-application-development-director)
* [Dana (Data Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#dana-data-analyst)
* [Eddie (Content Editor)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#eddie-content-editor)
-->
### User experience goal
@ -37,7 +39,6 @@ Personas are described at https://about.gitlab.com/handbook/marketing/product-ma
For example, "The user should be able to use the UI/API/.gitlab-ci.yml with GitLab to <perform a specific task>"
https://about.gitlab.com/handbook/engineering/ux/ux-research-training/user-story-mapping/ -->
### Proposal
<!-- How are we going to solve the problem? Try to include the user journey! https://about.gitlab.com/handbook/journeys/#user-journey -->
@ -55,9 +56,9 @@ Consider adding checkboxes and expectations of users with certain levels of memb
* [ ] Add expected impact to Reporter (20) members
* [ ] Add expected impact to Developer (30) members
* [ ] Add expected impact to Maintainer (40) members
* [ ] Add expected impact to Owner (50) members
* [ ] Add expected impact to Owner (50) members
Please consider performing a threat model for the code changes that are introduced as part of this feature. To get started, refer to our Threat Modeling handbook page https://about.gitlab.com/handbook/security/threat_modeling/#threat-modeling.
Please consider performing a threat model for the code changes that are introduced as part of this feature. To get started, refer to our Threat Modeling handbook page https://about.gitlab.com/handbook/security/threat_modeling/#threat-modeling.
Don't hesitate to reach out to the Application Security Team (`@gitlab-com/gl-security/appsec`) to discuss any security concerns.
-->
@ -91,7 +92,7 @@ See the test engineering planning process and reach out to your counterpart Soft
* Ultimate/Gold
-->
### Feature Usage Metrics
### Feature Usage Metrics
<!-- How are you going to track usage of this feature? Think about user behavior and their interaction with the product. What indicates someone is getting value from it?

View file

@ -2,7 +2,7 @@
The goal of this template is to ensure we have captured all the information available to the product designer so they can approach the problem creatively and efficiently. Please add links to SSOT if this informatin exists elsewhere. -->
### Who will use this solution?
### Who will use this solution?
<!-- If known, include any of the following: types of users (e.g. Developer), personas, or specific company roles (e.g. Release Manager). It's okay to write "Unknown" and fill this field in later.
@ -13,14 +13,15 @@ Personas are described at https://about.gitlab.com/handbook/marketing/product-ma
* [Delaney (Development Team Lead)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#delaney-development-team-lead)
* [Presley (Product Designer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#presley-product-designer)
* [Sasha (Software Developer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sasha-software-developer)
* [Devon (DevOps Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#devon-devops-engineer)
* [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer)
* [Sidney (Systems Administrator)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sidney-systems-administrator)
* [Sam (Security Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#sam-security-analyst)
* [Rachel (Release Manager)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#rachel-release-manager)
* [Alex (Security Operations Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#alex-security-operations-engineer)
* [Simone (Software Engineer in Test)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#simone-software-engineer-in-test)
* [Allison (Application Ops)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#allison-application-ops)
* [Priyanka (Platform Engineer)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#priyanka-platform-engineer)
* [Ingrid (Infrastructure Operator)](https://about.gitlab.com/handbook/product/personas/#ingrid-infrastructure-operator)
* [Dakota (Application Development Director)](https://about.gitlab.com/handbook/product/personas/#dakota-application-development-director)
* [Dana (Data Analyst)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#dana-data-analyst)
* [Eddie (Content Editor)](https://about.gitlab.com/handbook/marketing/product-marketing/roles-personas/#eddie-content-editor)
@ -54,5 +55,5 @@ Personas are described at https://about.gitlab.com/handbook/marketing/product-ma
/label ~"group::" ~"section::" ~"Category::" ~UX
/label ~"group::" ~"section::" ~"Category:" ~UX

View file

@ -11,11 +11,16 @@ The issue should have the following:
- A link to the failing job.
- The stack trace from the job's logs in the "Stack trace" section below.
- A screenshot (if available), and HTML capture (if available), in the "Screenshot / HTML page" section below.
- A link to the corresponding test case(s) in the summary.
--->
### Summary
Failing job(s):
Failing spec(s):
Corresponding test case(s):
### Stack trace
@ -52,7 +57,7 @@ If you include multiple screenshots it can be helpful to hide all but the first
/label ~Quality ~QA ~test
<!-- Test failure type label, please use just one.-->
/label ~"failure::broken-test" ~"failure::flaky-test" ~"failure::stale-test" ~"failure::test-environment" ~"failure::investigating"
/label ~"failure::broken-test" ~"failure::flaky-test" ~"failure::stale-test" ~"failure::test-environment" ~"failure::investigating" ~"failure::new"
<!--
Choose the stage that appears in the test path, e.g. ~"devops::create" for

View file

@ -42,8 +42,9 @@ please list them here.
Please select the appropriate label from the following:
~"feature::addition"
~"type::maintenance"
~"tooling::pipelines"
~"tooling::workflow"
~"maintenance::refactor"
~"maintenance::pipelines"
~"maintenance::workflow"
-->
/label ~"type::maintenance"

View file

@ -35,4 +35,4 @@ This will help keep track of expected cost increases to the [GitLab project aver
- [ ] Consider communicating these changes to the broader team following the [communication guideline for pipeline changes](https://about.gitlab.com/handbook/engineering/quality/engineering-productivity/#pipeline-changes)
/label ~"type::tooling" ~"tooling::pipelines" ~"Engineering Productivity"
/label ~"maintenance::pipelines" ~"Engineering Productivity"

View file

@ -31,7 +31,7 @@ See [the general developer security release guidelines](https://gitlab.com/gitla
## Maintainer checklist
- [ ] Correct milestone is applied and the title is matching across all backports.
- [ ] Assigned to `@gitlab-release-tools-bot` with passing CI pipelines.
- [ ] Assigned (_not_ as reviewer) to `@gitlab-release-tools-bot` with passing CI pipelines.
/label ~security

View file

@ -20,6 +20,8 @@ tasks:
gdk config set gitlab.rails.port 443
gdk config set gitlab.rails.https.enabled true
gdk config set webpack.host 127.0.0.1
gdk config set webpack.static false
gdk config set webpack.live_reload false
# make documentation builds available
gdk config set gitlab_docs.enabled true
# reconfigure GDK
@ -49,6 +51,8 @@ tasks:
gdk config set gitlab.rails.port 443
gdk config set gitlab.rails.https.enabled true
gdk config set webpack.host 127.0.0.1
gdk config set webpack.static false
gdk config set webpack.live_reload false
# reconfigure GDK
echo "$(date) Reconfiguring GDK" | tee -a /workspace/startup.log
gdk reconfigure

2
.nvmrc
View file

@ -1 +1 @@
14.17.5
16.14.0

View file

@ -16,6 +16,9 @@ inherit_from:
- ./rubocop/rubocop-migrations.yml
- ./rubocop/rubocop-usage-data.yml
- ./rubocop/rubocop-code_reuse.yml
<% Dir.glob('jh/rubocop/**/*.yml').each do |jh_rubocop_yaml| %>
- '<%= jh_rubocop_yaml %>'
<% end %>
inherit_mode:
merge:
@ -43,6 +46,10 @@ AllCops:
CacheRootDirectory: <%= Dir.getwd %>/tmp
MaxFilesInCache: 30000
Metrics/ParameterLists:
Exclude:
- 'app/components/**/*'
Cop/AvoidKeywordArgumentsInSidekiqWorkers:
Enabled: true
Include:
@ -236,6 +243,10 @@ Rails/FindBy:
- 'spec/**/*.rb'
- 'ee/spec/**/*.rb'
Rails/IndexBy:
Exclude:
- 'tooling/danger/**/*.rb'
# This is currently exiting with a rubocop exception error and should be
# resolved hopefully a future update
# An error occurred while Rails/UniqueValidationWithoutIndex cop was inspecting
@ -604,8 +615,9 @@ Rails/TimeZone:
- 'ee/spec/workers/**/*'
- 'ee/lib/**/*'
- 'ee/spec/lib/**/*'
- 'spec/features/**/*'
- 'ee/spec/features/**/*'
# WIP: See https://gitlab.com/gitlab-org/gitlab/-/issues/220040
Rails/SaveBang:
Enabled: true
AllowImplicitReturn: false

View file

@ -6,11 +6,6 @@
# Note that changes in the inspected code, or installation of new
# versions of RuboCop, may require this file to be generated again.
# Offense count: 314
# Cop supports --auto-correct.
Capybara/CurrentPathExpectation:
Enabled: false
# Offense count: 221
Capybara/VisibilityMatcher:
Enabled: false
@ -20,11 +15,6 @@ Gitlab/PolicyRuleBoolean:
Exclude:
- 'ee/app/policies/ee/identity_provider_policy.rb'
# Offense count: 5
Graphql/IDType:
Exclude:
- 'app/graphql/mutations/boards/issues/issue_move_list.rb'
# Offense count: 2270
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, IndentationWidth.
@ -32,13 +22,6 @@ Graphql/IDType:
Layout/ArgumentAlignment:
Enabled: false
# Offense count: 54
# Cop supports --auto-correct.
# Configuration parameters: AllowAliasSyntax, AllowedMethods.
# AllowedMethods: alias_method, public, protected, private
Layout/EmptyLinesAroundAttributeAccessor:
Enabled: false
# Offense count: 771
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, IndentationWidth.
@ -124,11 +107,6 @@ Lint/BinaryOperatorWithIdenticalOperands:
Lint/ConstantDefinitionInBlock:
Enabled: false
# Offense count: 1
Lint/DuplicateRequire:
Exclude:
- 'ee/spec/lib/gitlab/auth/group_saml/user_spec.rb'
# Offense count: 2
# Configuration parameters: AllowComments.
Lint/EmptyFile:
@ -136,13 +114,6 @@ Lint/EmptyFile:
- 'db/seeds.rb'
- 'ee/db/geo/seeds.rb'
# Offense count: 8
# Cop supports --auto-correct.
Lint/IdentityComparison:
Exclude:
- 'spec/tooling/danger/weightage/maintainers_spec.rb'
- 'spec/tooling/danger/weightage/reviewers_spec.rb'
# Offense count: 208
# Configuration parameters: MaximumRangeSize.
Lint/MissingCopEnableDirective:
@ -182,11 +153,6 @@ Lint/StructNewOverride:
- 'app/serializers/environment_serializer.rb'
- 'lib/gitlab/ci/pipeline/duration.rb'
# Offense count: 1
Lint/UnreachableLoop:
Exclude:
- 'qa/qa/runtime/feature.rb'
# Offense count: 22
# Cop supports --auto-correct.
# Configuration parameters: AllowComments.
@ -225,13 +191,6 @@ Naming/HeredocDelimiterCase:
Naming/HeredocDelimiterNaming:
Enabled: false
# Offense count: 5
# Configuration parameters: MinNameLength, AllowNamesEndingInNumbers, AllowedNames, ForbiddenNames.
# AllowedNames: at, by, db, id, in, io, ip, of, on, os, pp, to
Naming/MethodParameterName:
Exclude:
- 'lib/gitlab/diff/inline_diff.rb'
# Offense count: 218
# Cop supports --auto-correct.
# Configuration parameters: PreferredName.
@ -278,16 +237,6 @@ Performance/DeletePrefix:
- 'spec/lib/gitlab/gfm/uploads_rewriter_spec.rb'
- 'spec/support/helpers/test_env.rb'
# Offense count: 5
# Cop supports --auto-correct.
# Configuration parameters: SafeMultiline.
Performance/DeleteSuffix:
Exclude:
- 'app/helpers/submodule_helper.rb'
- 'app/workers/concerns/application_worker.rb'
- 'ee/app/models/geo/upload_registry.rb'
- 'ee/app/workers/geo/file_download_dispatch_worker/attachment_job_finder.rb'
# Offense count: 121
Performance/MethodObjectAsBlock:
Enabled: false
@ -311,23 +260,6 @@ Performance/StringInclude:
- 'spec/spec_helper.rb'
- 'spec/support_specs/helpers/active_record/query_recorder_spec.rb'
# Offense count: 18
# Cop supports --auto-correct.
Performance/Sum:
Exclude:
- 'app/controllers/projects/pipelines/tests_controller.rb'
- 'app/models/application_setting_implementation.rb'
- 'app/models/ci/pipeline.rb'
- 'app/services/issues/export_csv_service.rb'
- 'ee/spec/lib/gitlab/elastic/bulk_indexer_spec.rb'
- 'lib/api/entities/issuable_time_stats.rb'
- 'lib/container_registry/tag.rb'
- 'lib/gitlab/ci/reports/test_suite_comparer.rb'
- 'lib/gitlab/diff/file.rb'
- 'lib/gitlab/usage_data.rb'
- 'lib/peek/views/detailed_view.rb'
- 'spec/models/namespace/root_storage_statistics_spec.rb'
# Offense count: 15209
# Configuration parameters: Prefixes.
# Prefixes: when, with, without
@ -379,11 +311,6 @@ RSpec/ReturnFromStub:
RSpec/ScatteredLet:
Enabled: false
# Offense count: 4
RSpec/ScatteredSetup:
Exclude:
- 'spec/requests/api/jobs_spec.rb'
# Offense count: 10
# Configuration parameters: EnforcedStyle.
# SupportedStyles: symbols, strings
@ -433,13 +360,6 @@ Rails/BelongsTo:
- 'app/models/deployment.rb'
- 'app/models/environment.rb'
# Offense count: 93
# Configuration parameters: Database, Include.
# SupportedDatabases: mysql, postgresql
# Include: db/migrate/*.rb
Rails/BulkChangeTable:
Enabled: false
# Offense count: 155
# Cop supports --auto-correct.
Rails/ContentTag:
@ -485,24 +405,6 @@ Rails/HasManyOrHasOneDependent:
Rails/HelperInstanceVariable:
Enabled: false
# Offense count: 17
# Cop supports --auto-correct.
Rails/IndexBy:
Exclude:
- 'app/graphql/types/design_management/design_fields.rb'
- 'app/models/ci/pipeline.rb'
- 'app/services/ci/pipeline_processing/atomic_processing_service/status_collection.rb'
- 'ee/app/services/projects/update_mirror_service.rb'
- 'ee/app/services/security/store_report_service.rb'
- 'ee/lib/ee/gitlab/auth/ldap/sync/group.rb'
- 'ee/lib/ee/gitlab/background_migration/backfill_version_data_from_gitaly.rb'
- 'ee/lib/gitlab/analytics/type_of_work/tasks_by_type.rb'
- 'ee/lib/gitlab/elastic/document_reference.rb'
- 'ee/lib/gitlab/group_plans_preloader.rb'
- 'lib/gitlab/database/count/reltuples_count_strategy.rb'
- 'lib/gitlab/language_detection.rb'
- 'tooling/danger/sidekiq_queues.rb'
# Offense count: 47
# Cop supports --auto-correct.
Rails/IndexWith:
@ -525,12 +427,6 @@ Rails/InverseOf:
Rails/LexicallyScopedActionFilter:
Enabled: false
# Offense count: 2
# Cop supports --auto-correct.
Rails/LinkToBlank:
Exclude:
- 'app/helpers/projects_helper.rb'
- 'ee/app/helpers/ee/users/callouts_helper.rb'
# Offense count: 1
# Cop supports --auto-correct.
@ -572,14 +468,6 @@ Rails/RenderInline:
Exclude:
- 'ee/app/controllers/sitemap_controller.rb'
# Offense count: 4
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle.
# SupportedStyles: conservative, aggressive
Rails/ShortI18n:
Exclude:
- 'app/uploaders/content_type_whitelist.rb'
# Offense count: 1144
# Configuration parameters: ForbiddenMethods, AllowedMethods.
# ForbiddenMethods: decrement!, decrement_counter, increment!, increment_counter, insert, insert!, insert_all, insert_all!, toggle!, touch, touch_all, update_all, update_attribute, update_column, update_columns, update_counters, upsert, upsert_all
@ -654,14 +542,6 @@ Style/CombinableLoops:
- 'spec/requests/api/members_spec.rb'
- 'spec/support/shared_examples/features/protected_branches_access_control_ce_shared_examples.rb'
# Offense count: 1
# Cop supports --auto-correct.
# Configuration parameters: EnforcedStyle, SingleLineConditionsOnly, IncludeTernaryExpressions.
# SupportedStyles: assign_to_condition, assign_inside_condition
Style/ConditionalAssignment:
Exclude:
- 'lib/gitlab/database.rb'
# Offense count: 5
# Cop supports --auto-correct.
Style/EachWithObject:
@ -777,18 +657,6 @@ Style/NumericLiteralPrefix:
Style/PercentLiteralDelimiters:
Enabled: false
# Offense count: 26
# Cop supports --auto-correct.
# Configuration parameters: SafeForConstants.
Style/RedundantFetchBlock:
Exclude:
- 'app/finders/admin/projects_finder.rb'
- 'lib/gitlab/diff/file.rb'
- 'spec/lib/gitlab/json_cache_spec.rb'
- 'spec/lib/gitlab/metrics/dashboard/cache_spec.rb'
- 'spec/lib/gitlab/null_request_store_spec.rb'
- 'spec/lib/gitlab/safe_request_store_spec.rb'
# Offense count: 206
# Cop supports --auto-correct.
Style/RedundantInterpolation:

View file

@ -1,13 +1,6 @@
---
Database/MultipleDatabases:
Exclude:
- ee/lib/gitlab/geo/database_tasks.rb
- ee/lib/gitlab/geo/geo_tasks.rb
- ee/lib/gitlab/geo/health_check.rb
- ee/lib/gitlab/geo/log_cursor/daemon.rb
- ee/lib/pseudonymizer/dumper.rb
- ee/lib/pseudonymizer/pager.rb
- ee/spec/lib/pseudonymizer/dumper_spec.rb
- ee/spec/services/ee/merge_requests/update_service_spec.rb
- lib/backup/database.rb
- lib/backup/manager.rb
@ -18,11 +11,7 @@ Database/MultipleDatabases:
- lib/gitlab/database/migrations/observers/query_log.rb
- lib/gitlab/database/partitioning_migration_helpers/backfill_partitioned_table.rb
- lib/gitlab/database.rb
- lib/gitlab/gitlab_import/importer.rb
- lib/gitlab/health_checks/db_check.rb
- lib/gitlab/import_export/base/relation_factory.rb
- lib/gitlab/import_export/group/relation_tree_restorer.rb
- lib/gitlab/legacy_github_import/importer.rb
- lib/gitlab/seeder.rb
- spec/db/schema_spec.rb
- spec/initializers/database_config_spec.rb

View file

@ -496,7 +496,6 @@ Gitlab/NamespacedClass:
- app/serializers/build_trace_serializer.rb
- app/serializers/cluster_application_entity.rb
- app/serializers/cluster_entity.rb
- app/serializers/cluster_error_entity.rb
- app/serializers/cluster_serializer.rb
- app/serializers/codequality_degradation_entity.rb
- app/serializers/codequality_reports_comparer_entity.rb

View file

@ -0,0 +1,4 @@
---
GraphQL/ArgumentUniqueness:
Exclude:
- app/graphql/resolvers/merge_requests_resolver.rb

View file

@ -1,9 +1,4 @@
---
GraphQL/FieldDefinitions:
Exclude:
- ee/app/graphql/types/ci/code_quality_degradation_type.rb
- ee/app/graphql/types/epic_type.rb
- ee/app/graphql/types/group_release_stats_type.rb
- ee/app/graphql/types/iteration_type.rb
- ee/app/graphql/types/requirements_management/requirement_type.rb
- ee/app/graphql/types/vulnerability_type.rb

View file

@ -1,8 +1,4 @@
---
GraphQL/FieldMethod:
Exclude:
- app/graphql/types/ci/job_type.rb
- app/graphql/types/merge_request_type.rb
- app/graphql/types/metrics/dashboards/annotation_type.rb
- app/graphql/types/packages/package_details_type.rb
- app/graphql/types/project_type.rb

View file

@ -4,10 +4,3 @@ GraphQL/OrderedArguments:
- app/graphql/resolvers/base_issues_resolver.rb
- app/graphql/resolvers/design_management/designs_resolver.rb
- app/graphql/resolvers/design_management/version/design_at_version_resolver.rb
- app/graphql/types/commit_action_type.rb
- app/graphql/types/diff_paths_input_type.rb
- app/graphql/types/issues/negated_issue_filter_input_type.rb
- app/graphql/types/jira_users_mapping_input_type.rb
- app/graphql/types/notes/diff_image_position_input_type.rb
- app/graphql/types/notes/diff_position_base_input_type.rb
- app/graphql/types/notes/diff_position_input_type.rb

View file

@ -1,16 +1,6 @@
---
GraphQL/OrderedFields:
Exclude:
- app/graphql/types/board_list_type.rb
- app/graphql/types/ci/analytics_type.rb
- app/graphql/types/ci/ci_cd_setting_type.rb
- app/graphql/types/ci/config/group_type.rb
- app/graphql/types/ci/config/job_type.rb
- app/graphql/types/ci/config/stage_type.rb
- app/graphql/types/ci/detailed_status_type.rb
- app/graphql/types/ci/group_type.rb
- app/graphql/types/ci/job_type.rb
- app/graphql/types/ci/runner_architecture_type.rb
- app/graphql/types/ci/runner_platform_type.rb
- app/graphql/types/ci/runner_type.rb
- app/graphql/types/ci/stage_type.rb
@ -32,14 +22,6 @@ GraphQL/OrderedFields:
- app/graphql/types/error_tracking/sentry_error_frequency_type.rb
- app/graphql/types/error_tracking/sentry_error_stack_trace_context_type.rb
- app/graphql/types/error_tracking/sentry_error_stack_trace_entry_type.rb
- app/graphql/types/error_tracking/sentry_error_stack_trace_type.rb
- app/graphql/types/error_tracking/sentry_error_type.rb
- app/graphql/types/evidence_type.rb
- app/graphql/types/grafana_integration_type.rb
- app/graphql/types/issue_type.rb
- app/graphql/types/jira_import_type.rb
- app/graphql/types/jira_user_type.rb
- app/graphql/types/label_type.rb
- app/graphql/types/merge_request_type.rb
- app/graphql/types/metadata/kas_type.rb
- app/graphql/types/metadata_type.rb
@ -48,14 +30,6 @@ GraphQL/OrderedFields:
- app/graphql/types/notes/diff_position_type.rb
- app/graphql/types/notes/discussion_type.rb
- app/graphql/types/notes/note_type.rb
- app/graphql/types/packages/composer/json_type.rb
- app/graphql/types/packages/composer/metadatum_type.rb
- app/graphql/types/packages/conan/file_metadatum_type.rb
- app/graphql/types/packages/conan/metadatum_type.rb
- app/graphql/types/packages/helm/dependency_type.rb
- app/graphql/types/packages/helm/maintainer_type.rb
- app/graphql/types/packages/helm/metadata_type.rb
- app/graphql/types/packages/maven/metadatum_type.rb
- app/graphql/types/packages/nuget/metadatum_type.rb
- app/graphql/types/packages/package_dependency_link_type.rb
- app/graphql/types/packages/package_file_type.rb
@ -71,14 +45,6 @@ GraphQL/OrderedFields:
- app/graphql/types/root_storage_statistics_type.rb
- app/graphql/types/task_completion_status.rb
- app/graphql/types/tree/blob_type.rb
- app/graphql/types/tree/submodule_type.rb
- app/graphql/types/tree/tree_entry_type.rb
- app/graphql/types/user_callout_type.rb
- app/graphql/types/user_status_type.rb
- ee/app/graphql/types/analytics/devops_adoption/snapshot_type.rb
- ee/app/graphql/types/epic_descendant_count_type.rb
- ee/app/graphql/types/epic_descendant_weight_sum_type.rb
- ee/app/graphql/types/epic_health_status_type.rb
- ee/app/graphql/types/epic_type.rb
- ee/app/graphql/types/geo/geo_node_type.rb
- ee/app/graphql/types/requirements_management/requirement_states_count_type.rb

View file

@ -0,0 +1,5 @@
---
GraphQL/UnusedArgument:
Exclude:
- app/graphql/mutations/jira_import/start.rb
- app/graphql/resolvers/packages_base_resolver.rb

View file

@ -1,37 +0,0 @@
---
Rails/IncludeUrlHelper:
Exclude:
- app/models/integrations/asana.rb
- app/models/integrations/bamboo.rb
- app/models/integrations/bugzilla.rb
- app/models/integrations/campfire.rb
- app/models/integrations/confluence.rb
- app/models/integrations/custom_issue_tracker.rb
- app/models/integrations/discord.rb
- app/models/integrations/ewm.rb
- app/models/integrations/external_wiki.rb
- app/models/integrations/flowdock.rb
- app/models/integrations/hangouts_chat.rb
- app/models/integrations/irker.rb
- app/models/integrations/jenkins.rb
- app/models/integrations/mattermost.rb
- app/models/integrations/pivotaltracker.rb
- app/models/integrations/redmine.rb
- app/models/integrations/webex_teams.rb
- app/models/integrations/youtrack.rb
- app/presenters/alert_management/alert_presenter.rb
- app/presenters/environment_presenter.rb
- app/presenters/gitlab/blame_presenter.rb
- app/presenters/merge_request_presenter.rb
- app/presenters/project_presenter.rb
- app/presenters/release_presenter.rb
- app/presenters/releases/evidence_presenter.rb
- ee/app/helpers/license_helper.rb
- ee/app/models/integrations/github.rb
- ee/spec/helpers/ee/projects/security/configuration_helper_spec.rb
- ee/spec/lib/banzai/filter/cross_project_issuable_information_filter_spec.rb
- spec/helpers/merge_requests_helper_spec.rb
- spec/helpers/nav/top_nav_helper_spec.rb
- spec/helpers/notify_helper_spec.rb
- spec/lib/banzai/filter/reference_redactor_filter_spec.rb
- spec/lib/banzai/reference_redactor_spec.rb

View file

@ -1,4 +0,0 @@
---
Rails/SaveBang:
Exclude:
- ee/spec/lib/analytics/merge_request_metrics_calculator_spec.rb

View file

@ -0,0 +1,203 @@
---
RSpec/InstanceVariable:
Exclude:
- ee/spec/controllers/admin/application_settings_controller_spec.rb
- ee/spec/controllers/admin/geo/settings_controller_spec.rb
- ee/spec/controllers/ee/sessions_controller_spec.rb
- ee/spec/controllers/groups/groups_controller_spec.rb
- ee/spec/controllers/groups/omniauth_callbacks_controller_spec.rb
- ee/spec/controllers/passwords_controller_spec.rb
- ee/spec/features/markdown/markdown_spec.rb
- ee/spec/frontend/fixtures/dast_profiles.rb
- ee/spec/frontend/fixtures/epic.rb
- ee/spec/graphql/types/vulnerability_request_response_header_type_spec.rb
- ee/spec/graphql/types/vulnerability_request_type_spec.rb
- ee/spec/graphql/types/vulnerability_response_type_spec.rb
- ee/spec/helpers/ee/issuables_helper_spec.rb
- ee/spec/helpers/ee/namespace_storage_limit_alert_helper_spec.rb
- ee/spec/helpers/ee/wiki_helper_spec.rb
- ee/spec/helpers/notes_helper_spec.rb
- ee/spec/helpers/search_helper_spec.rb
- ee/spec/lib/ee/gitlab/elastic/helper_spec.rb
- ee/spec/lib/gitlab/elastic/search_results_spec.rb
- ee/spec/lib/gitlab/reference_extractor_spec.rb
- ee/spec/services/ee/merge_requests/update_service_spec.rb
- ee/spec/services/ee/notification_service_spec.rb
- ee/spec/services/ee/users/create_service_spec.rb
- ee/spec/services/ee/users/destroy_service_spec.rb
- ee/spec/services/geo/metrics_update_service_spec.rb
- ee/spec/services/groups/create_service_spec.rb
- ee/spec/services/groups/participants_service_spec.rb
- ee/spec/services/projects/create_from_template_service_spec.rb
- ee/spec/services/projects/create_service_spec.rb
- ee/spec/support/shared_examples/views/subscription_shared_examples.rb
- ee/spec/tasks/geo_rake_spec.rb
- ee/spec/views/projects/security/corpus_management/show.html.haml_spec.rb
- ee/spec/views/projects/security/dast_profiles/show.html.haml_spec.rb
- ee/spec/views/projects/security/dast_scanner_profiles/new.html.haml_spec.rb
- ee/spec/views/projects/security/dast_site_profiles/new.html.haml_spec.rb
- qa/qa/specs/features/api/1_manage/import_large_github_repo_spec.rb
- qa/qa/specs/features/api/1_manage/project_access_token_spec.rb
- qa/qa/specs/features/api/1_manage/user_access_termination_spec.rb
- qa/qa/specs/features/browser_ui/1_manage/login/2fa_recovery_spec.rb
- qa/qa/specs/features/browser_ui/1_manage/login/log_in_with_2fa_spec.rb
- qa/qa/specs/features/browser_ui/1_manage/login/register_spec.rb
- qa/qa/specs/features/browser_ui/1_manage/project/dashboard_images_spec.rb
- qa/qa/specs/features/browser_ui/1_manage/project/invite_group_to_project_spec.rb
- qa/qa/specs/features/browser_ui/1_manage/project/protected_tags_spec.rb
- qa/qa/specs/features/browser_ui/3_create/repository/push_over_http_file_size_spec.rb
- qa/qa/specs/features/browser_ui/3_create/repository/push_over_ssh_spec.rb
- qa/qa/specs/features/browser_ui/3_create/repository/user_views_commit_diff_patch_spec.rb
- qa/qa/specs/features/browser_ui/3_create/web_ide/add_file_template_spec.rb
- qa/qa/specs/features/browser_ui/3_create/web_ide/link_to_line_in_web_ide_spec.rb
- qa/qa/specs/features/browser_ui/3_create/web_ide/web_terminal_spec.rb
- qa/qa/specs/features/ee/api/1_manage/user/minimal_access_user_spec.rb
- qa/qa/specs/features/ee/browser_ui/12_geo/attachment_replication_spec.rb
- qa/qa/specs/features/ee/browser_ui/12_geo/geo_replication_ci_job_log_artifacts_spec.rb
- qa/qa/specs/features/ee/browser_ui/12_geo/rename_replication_spec.rb
- qa/qa/specs/features/ee/browser_ui/13_secure/create_merge_request_with_secure_spec.rb
- qa/qa/specs/features/ee/browser_ui/13_secure/license_compliance_spec.rb
- qa/qa/specs/features/ee/browser_ui/13_secure/merge_request_license_widget_spec.rb
- qa/qa/specs/features/ee/browser_ui/13_secure/project_security_dashboard_spec.rb
- qa/qa/specs/features/ee/browser_ui/13_secure/security_reports_spec.rb
- qa/qa/specs/features/ee/browser_ui/13_secure/vulnerability_management_spec.rb
- qa/qa/specs/features/ee/browser_ui/1_manage/group/group_audit_logs_1_spec.rb
- qa/qa/specs/features/ee/browser_ui/1_manage/group/group_file_template_spec.rb
- qa/qa/specs/features/ee/browser_ui/1_manage/group/group_ldap_sync_spec.rb
- qa/qa/specs/features/ee/browser_ui/1_manage/group/group_saml_non_enforced_sso_spec.rb
- qa/qa/specs/features/ee/browser_ui/1_manage/group/restrict_by_ip_address_spec.rb
- qa/qa/specs/features/ee/browser_ui/1_manage/project/project_templates_spec.rb
- qa/qa/specs/features/ee/browser_ui/2_plan/integrations/jira_issues_list_spec.rb
- qa/qa/specs/features/ee/browser_ui/2_plan/issue_boards/project_issue_boards_spec.rb
- qa/qa/specs/features/ee/browser_ui/2_plan/multiple_assignees_for_issues/more_than_four_assignees_spec.rb
- qa/qa/specs/features/ee/browser_ui/3_create/repository/code_owners_spec.rb
- qa/qa/specs/features/ee/browser_ui/3_create/repository/push_rules_spec.rb
- qa/qa/specs/features/ee/browser_ui/4_verify/cancelling_merge_request_in_merge_train_spec.rb
- qa/spec/support/repeater_spec.rb
- spec/commands/metrics_server/metrics_server_spec.rb
- spec/controllers/admin/clusters_controller_spec.rb
- spec/controllers/admin/topics/avatars_controller_spec.rb
- spec/controllers/concerns/renders_commits_spec.rb
- spec/controllers/confirmations_controller_spec.rb
- spec/controllers/groups/avatars_controller_spec.rb
- spec/controllers/groups/clusters_controller_spec.rb
- spec/controllers/import/bitbucket_controller_spec.rb
- spec/controllers/import/bitbucket_server_controller_spec.rb
- spec/controllers/metrics_controller_spec.rb
- spec/controllers/omniauth_callbacks_controller_spec.rb
- spec/controllers/passwords_controller_spec.rb
- spec/controllers/profiles/avatars_controller_spec.rb
- spec/controllers/projects/clusters_controller_spec.rb
- spec/controllers/sessions_controller_spec.rb
- spec/features/admin/admin_runners_spec.rb
- spec/features/calendar_spec.rb
- spec/features/issues/user_filters_issues_spec.rb
- spec/features/markdown/copy_as_gfm_spec.rb
- spec/features/markdown/gitlab_flavored_markdown_spec.rb
- spec/features/markdown/keyboard_shortcuts_spec.rb
- spec/features/markdown/markdown_spec.rb
- spec/features/merge_request/batch_comments_spec.rb
- spec/features/merge_request/user_sees_pipelines_spec.rb
- spec/features/merge_requests/user_lists_merge_requests_spec.rb
- spec/features/projects/diffs/diff_show_spec.rb
- spec/features/triggers_spec.rb
- spec/features/u2f_spec.rb
- spec/finders/admin/plans_finder_spec.rb
- spec/finders/groups_finder_spec.rb
- spec/finders/issues_finder_spec.rb
- spec/frontend/fixtures/listbox.rb
- spec/frontend/fixtures/raw.rb
- spec/frontend/fixtures/sessions.rb
- spec/frontend/fixtures/tabs.rb
- spec/frontend/fixtures/timezones.rb
- spec/frontend/fixtures/u2f.rb
- spec/frontend/fixtures/webauthn.rb
- spec/helpers/application_helper_spec.rb
- spec/helpers/award_emoji_helper_spec.rb
- spec/helpers/issuables_description_templates_helper_spec.rb
- spec/helpers/issuables_helper_spec.rb
- spec/helpers/notes_helper_spec.rb
- spec/helpers/projects_helper_spec.rb
- spec/helpers/search_helper_spec.rb
- spec/helpers/tree_helper_spec.rb
- spec/helpers/wiki_helper_spec.rb
- spec/lib/api/helpers/authentication_spec.rb
- spec/lib/banzai/filter/asset_proxy_filter_spec.rb
- spec/lib/extracts_path_spec.rb
- spec/lib/extracts_ref_spec.rb
- spec/lib/gitlab/auth/auth_finders_spec.rb
- spec/lib/gitlab/auth/ldap/person_spec.rb
- spec/lib/gitlab/background_migration/recalculate_vulnerabilities_occurrences_uuid_spec.rb
- spec/lib/gitlab/bitbucket_import/importer_spec.rb
- spec/lib/gitlab/chat_name_token_spec.rb
- spec/lib/gitlab/ci/lint_spec.rb
- spec/lib/gitlab/ci/status/composite_spec.rb
- spec/lib/gitlab/contributions_calendar_spec.rb
- spec/lib/gitlab/diff/parser_spec.rb
- spec/lib/gitlab/email/hook/smime_signature_interceptor_spec.rb
- spec/lib/gitlab/git/commit_spec.rb
- spec/lib/gitlab/git/diff_collection_spec.rb
- spec/lib/gitlab/git/diff_spec.rb
- spec/lib/gitlab/git/repository_spec.rb
- spec/lib/gitlab/http_spec.rb
- spec/lib/gitlab/import_export/group/legacy_tree_restorer_spec.rb
- spec/lib/gitlab/import_export/group/tree_restorer_spec.rb
- spec/lib/gitlab/import_export/project/tree_restorer_spec.rb
- spec/lib/gitlab/patch/prependable_spec.rb
- spec/lib/gitlab/popen_spec.rb
- spec/lib/gitlab/project_transfer_spec.rb
- spec/lib/gitlab/reference_extractor_spec.rb
- spec/lib/gitlab/tcp_checker_spec.rb
- spec/lib/gitlab/user_access_spec.rb
- spec/lib/gitlab/version_info_spec.rb
- spec/lib/gitlab/x509/certificate_spec.rb
- spec/mailers/emails/issues_spec.rb
- spec/migrations/20220106163326_add_has_issues_on_vulnerability_reads_trigger_spec.rb
- spec/migrations/rename_services_to_integrations_spec.rb
- spec/migrations/replace_external_wiki_triggers_spec.rb
- spec/models/group_spec.rb
- spec/models/integrations/assembla_spec.rb
- spec/models/integrations/campfire_spec.rb
- spec/models/integrations/irker_spec.rb
- spec/models/member_spec.rb
- spec/models/members/project_member_spec.rb
- spec/models/namespace_spec.rb
- spec/models/note_spec.rb
- spec/models/postgresql/replication_slot_spec.rb
- spec/models/project_spec.rb
- spec/models/user_spec.rb
- spec/models/users/in_product_marketing_email_spec.rb
- spec/rack_servers/puma_spec.rb
- spec/requests/api/admin/plan_limits_spec.rb
- spec/requests/api/merge_requests_spec.rb
- spec/requests/api/users_spec.rb
- spec/requests/git_http_spec.rb
- spec/requests/openid_connect_spec.rb
- spec/requests/projects/issues/discussions_spec.rb
- spec/rubocop/cop/migration/update_column_in_batches_spec.rb
- spec/serializers/pipeline_serializer_spec.rb
- spec/services/ci/create_pipeline_service/logger_spec.rb
- spec/services/ci/process_sync_events_service_spec.rb
- spec/services/labels/update_service_spec.rb
- spec/services/members/destroy_service_spec.rb
- spec/services/merge_requests/close_service_spec.rb
- spec/services/merge_requests/refresh_service_spec.rb
- spec/services/merge_requests/reopen_service_spec.rb
- spec/services/merge_requests/update_service_spec.rb
- spec/services/milestones/create_service_spec.rb
- spec/services/notes/post_process_service_spec.rb
- spec/services/notes/update_service_spec.rb
- spec/services/notification_service_spec.rb
- spec/services/pages/zip_directory_service_spec.rb
- spec/services/projects/create_from_template_service_spec.rb
- spec/services/projects/download_service_spec.rb
- spec/services/projects/fork_service_spec.rb
- spec/services/upload_service_spec.rb
- spec/support/shared_contexts/controllers/ldap_omniauth_callbacks_controller_shared_context.rb
- spec/support/shared_contexts/email_shared_context.rb
- spec/support/shared_examples/features/wiki/user_views_wiki_empty_shared_examples.rb
- spec/support/shared_examples/path_extraction_shared_examples.rb
- spec/support/shared_examples/requests/api/notes_shared_examples.rb
- spec/support_specs/helpers/stub_feature_flags_spec.rb
- spec/views/search/_results.html.haml_spec.rb
- spec/workers/emails_on_push_worker_spec.rb

View file

@ -7,15 +7,5 @@ RSpec/TimecopTravel:
- ee/spec/lib/gitlab/geo/log_cursor/daemon_spec.rb
- ee/spec/models/broadcast_message_spec.rb
- ee/spec/models/burndown_spec.rb
- qa/spec/support/repeater_spec.rb
- spec/features/users/terms_spec.rb
- spec/lib/feature_spec.rb
- spec/models/broadcast_message_spec.rb
- spec/models/concerns/issuable_spec.rb
- spec/requests/api/ci/runner/jobs_trace_spec.rb
- spec/requests/api/issues/put_projects_issues_spec.rb
- spec/support/shared_contexts/cache_allowed_users_in_namespace_shared_context.rb
- spec/support/shared_examples/requests/api/time_tracking_shared_examples.rb
- spec/support/shared_examples/workers/concerns/reenqueuer_shared_examples.rb
- spec/workers/concerns/reenqueuer_spec.rb
- spec/lib/gitlab/analytics/cycle_analytics/median_spec.rb
- qa/spec/support/repeater_spec.rb

File diff suppressed because it is too large Load diff

View file

@ -21,7 +21,6 @@ Style/OpenStructUse:
- spec/graphql/mutations/commits/create_spec.rb
- spec/helpers/application_settings_helper_spec.rb
- spec/helpers/profiles_helper_spec.rb
- spec/lib/gitlab/auth/o_auth/provider_spec.rb
- spec/lib/gitlab/gitaly_client/blobs_stitcher_spec.rb
- spec/lib/gitlab/gitaly_client/diff_stitcher_spec.rb
- spec/lib/gitlab/legacy_github_import/project_creator_spec.rb

View file

@ -2,50 +2,661 @@
documentation](doc/development/changelog.md) for instructions on adding your own
entry.
## 14.8.6 (2022-04-29)
## 14.9.4 (2022-04-29)
### Security (14 changes)
### Security (15 changes)
- [Update Import/Export merge/push access levels & exclude ci config path](gitlab-org/security/gitlab@abfa8d4c128316b1ba095ff8eda7e86018e47caf) ([merge request](gitlab-org/security/gitlab!2372))
- [Prevent maintainers from editing PipelineSchedule](gitlab-org/security/gitlab@761a7777cb480d02b9c3418aa7317eba7c0eaff1) ([merge request](gitlab-org/security/gitlab!2423))
- [Add validation to pypi file sha256 values](gitlab-org/security/gitlab@712cc01aee2be4b6a9847746a080f190041367d5) ([merge request](gitlab-org/security/gitlab!2417))
- [Conan Token uses PAT rather than ID in payload](gitlab-org/security/gitlab@ba3070c90dd1b575982df22c256b0e3f97a9e919) ([merge request](gitlab-org/security/gitlab!2346))
- [[security] Fix markdown API disclosing issue titles of limited projects](gitlab-org/security/gitlab@fd3cb263e8f165a4a1a7894c08ddf254f9cf1e92) ([merge request](gitlab-org/security/gitlab!2405))
- [Verify that mentioned user can read TODO's note](gitlab-org/security/gitlab@e54be58cc79011d7c79dae94b993774ab36ef232) ([merge request](gitlab-org/security/gitlab!2398))
- [Invalidate markdown cache to clear up stored XSS](gitlab-org/security/gitlab@160cdda98c80e052abbb4bec226ad63fe9c9e403) ([merge request](gitlab-org/security/gitlab!2420))
- [Allow rate limiting of deploy tokens](gitlab-org/security/gitlab@78f7ee3d7e1258375ddcea3a20e3798092e89d41) ([merge request](gitlab-org/security/gitlab!2385))
- [Add suffix to cache name to add isolation](gitlab-org/security/gitlab@184d49640f5dcc4ac1522c874a7b5e0c16d2e05f) ([merge request](gitlab-org/security/gitlab!2373))
- [Disable wiki access with CI_JOB_TOKEN when improper access level](gitlab-org/security/gitlab@db93d134394675a4335c92557a55ac4381ed303f) ([merge request](gitlab-org/security/gitlab!2391))
- [Sanitize error input to prevent HTML/CSS injection in messages](gitlab-org/security/gitlab@333dd602091810639912702c80034468ff6f8aa0) ([merge request](gitlab-org/security/gitlab!2378))
- [Secure debug trace artifact download](gitlab-org/security/gitlab@266d812ba2e8e9936269323465c867983e3a2ebf) ([merge request](gitlab-org/security/gitlab!2367))
- [Use password type for all secret integration properties](gitlab-org/security/gitlab@eda2b8f02b34ead354ef07b9e41be006cf90f51b) ([merge request](gitlab-org/security/gitlab!2411))
- [Limit CI job group_name regexp](gitlab-org/security/gitlab@03ab6e9f312fb6fe50a6361f7bc78d527b223b96) ([merge request](gitlab-org/security/gitlab!2381))
- [Fixes infinite loop when rendering Ipynb Diffs](gitlab-org/security/gitlab@9836b8e3873e1390e1f6746a1039749c312739b5) ([merge request](gitlab-org/security/gitlab!2401))
- [Update Import/Export merge/push access levels & exclude ci config path](gitlab-org/security/gitlab@8a27e1e56e965d6b69545a2efb4f55f20cc57b2e) ([merge request](gitlab-org/security/gitlab!2371))
- [Prevent maintainers from editing PipelineSchedule](gitlab-org/security/gitlab@ee86557a26d0c3f8a983a6f20384f6b778d4ab0b) ([merge request](gitlab-org/security/gitlab!2422))
- [Add validation to pypi file sha256 values](gitlab-org/security/gitlab@7f78a6b9060745d9fea7f7dc71d4cf090b8e9ab5) ([merge request](gitlab-org/security/gitlab!2416))
- [Conan Token uses PAT rather than ID in payload](gitlab-org/security/gitlab@574b7397e4b32630276cf1e5896ad4a72e82f02b) ([merge request](gitlab-org/security/gitlab!2345))
- [[security] Fix markdown API disclosing issue titles of limited projects](gitlab-org/security/gitlab@ff61b763d040ece83387eb7c0f70d0d97aafbd66) ([merge request](gitlab-org/security/gitlab!2406))
- [Verify that mentioned user can read TODO's note](gitlab-org/security/gitlab@7771534e395f9f433cafa9984cbeeebf86a2d797) ([merge request](gitlab-org/security/gitlab!2396))
- [Invalidate markdown cache to clear up stored XSS](gitlab-org/security/gitlab@0768d53609d530bee4ef118a929bdd7ac6cbd5de) ([merge request](gitlab-org/security/gitlab!2419))
- [Allow rate limiting of deploy tokens](gitlab-org/security/gitlab@8738e74dbecece0e0fcdaf5df1323437db77b947) ([merge request](gitlab-org/security/gitlab!2384))
- [Add suffix to cache name to add isolation](gitlab-org/security/gitlab@d722e72125ded23ea4fd0eeeb775576f7cdd7181) ([merge request](gitlab-org/security/gitlab!2374))
- [Disable wiki access with CI_JOB_TOKEN when improper access level](gitlab-org/security/gitlab@13524db78a32d13e4081a30cc0db9215c404b435) ([merge request](gitlab-org/security/gitlab!2390))
- [Sanitize error input to prevent HTML/CSS injection in messages](gitlab-org/security/gitlab@a83683c13f7a0a8af94a88562f5904bfcb1b58e0) ([merge request](gitlab-org/security/gitlab!2377))
- [Secure debug trace artifact download](gitlab-org/security/gitlab@811ce49adeddb56de0a1ca26652017197fe1b97a) ([merge request](gitlab-org/security/gitlab!2366))
- [Use password type for all secret integration properties](gitlab-org/security/gitlab@f38cec8b26fa0e33da9247af9e8c53c01e6ec0c6) ([merge request](gitlab-org/security/gitlab!2410))
- [Limit CI job group_name regexp](gitlab-org/security/gitlab@5a08c0b9dff4518dff91990eecae0ab76c5cf4ed) ([merge request](gitlab-org/security/gitlab!2380))
## 14.8.5 (2022-03-31)
## 14.9.3 (2022-04-12)
### Security (21 changes)
### Fixed (4 changes)
- [Update to commonmarker 0.23.4](gitlab-org/security/gitlab@51532ccc5f1b6b053d4ca6c54496607e62f8f25c) ([merge request](gitlab-org/security/gitlab!2282))
- [Revert merge request approval groups behavior](gitlab-org/security/gitlab@dd9724e429033974da6c3852dc6fd33f0f2b0a46) ([merge request](gitlab-org/security/gitlab!2334))
- [Disallow login if password matches a fixed list](gitlab-org/security/gitlab@6779d5f2948425a7ad7f19a6e10f82cc10b80989) ([merge request](gitlab-org/security/gitlab!2358))
- [Update devise-two-factor to 4.0.2](gitlab-org/security/gitlab@0329d2d82a9064c0bae36e7b993ee40df7c999bc) ([merge request](gitlab-org/security/gitlab!2350))
- [Limit the number of tags associated with a CI runner](gitlab-org/security/gitlab@8d5938c08fe66c22f1bc54ff76cc9daf2de86b1a) ([merge request](gitlab-org/security/gitlab!2302))
- [GitLab Pages Security Updates for 14.9](gitlab-org/security/gitlab@5a5a862c8a9e37ca2ea84133f92b216eaa7cd148) ([merge request](gitlab-org/security/gitlab!2328))
- [Upgrade swagger-ui dependency](gitlab-org/security/gitlab@afcb570867db61347bb6a4e243bb2557340191be) ([merge request](gitlab-org/security/gitlab!2337))
- [Modify release link format check to avoid regex if string is too long](gitlab-org/security/gitlab@a3ab0ff9c470c1c6e5b4fd055ddd02dffce32652) ([merge request](gitlab-org/security/gitlab!2243))
- [Masks variables in error messages](gitlab-org/security/gitlab@94236bbdb8eef6600562bdc4e242e07eaed8c50f) ([merge request](gitlab-org/security/gitlab!2291))
- [Escape user provided string to prevent XSS](gitlab-org/security/gitlab@03e695d4c34546582b503b3f7712246206b56b99) ([merge request](gitlab-org/security/gitlab!2314))
- [Monkey patch of RDoc to prevent Ruby segfault](gitlab-org/security/gitlab@14eec4487387bc0c999f1c48b046a3ed3848c5a1) ([merge request](gitlab-org/security/gitlab!2232))
- [Project import maps members' created_by_id users based on source user ID](gitlab-org/security/gitlab@7fd7ab3f57e8d8b4e0aed42aebe9a8b7436a6255) ([merge request](gitlab-org/security/gitlab!2238))
- [Redact InvalidURIError error messages](gitlab-org/security/gitlab@0592c182bfd60aee501c4c66f47a71c9469f2bcd) ([merge request](gitlab-org/security/gitlab!2296))
- [Fix access for approval rules API](gitlab-org/security/gitlab@987e06bacba224519adf94cda73b5a8b2e7b917a) ([merge request](gitlab-org/security/gitlab!2323))
- [Fix kroki exploit](gitlab-org/security/gitlab@bf056c683af25ec4b94c0efa7166eea399ed6502) ([merge request](gitlab-org/security/gitlab!2277))
- [Fix blind SSRF when looking up SSH host keys for mirroring](gitlab-org/security/gitlab@3c853a32a73aba15e309d05111b744455a360cca) ([merge request](gitlab-org/security/gitlab!2310))
- [Escape original content in reference redactor](gitlab-org/security/gitlab@00ee99bc3834d9d59572272064c9ad6abeae5975) ([merge request](gitlab-org/security/gitlab!2318))
- [Security fix for CI/CD analytics visibility](gitlab-org/security/gitlab@691d69be77ae3c8e0a2598b75ccf336b672fd540) ([merge request](gitlab-org/security/gitlab!2273))
- [Latest commit exposed through fork of a private project](gitlab-org/security/gitlab@6ca7a3b040edac06b23a697bfc2bf46f457d6b81) ([merge request](gitlab-org/security/gitlab!2271))
- [Fix Asana integration restricted branch filter](gitlab-org/security/gitlab@4c1db692b4e99fab6cdbb818cf02fb879f6d4886) ([merge request](gitlab-org/security/gitlab!2218))
- [Revert "JH need more complex passwords"](gitlab-org/security/gitlab@919aa2b28645d49fb71508362a0c61da39893c69) ([merge request](gitlab-org/security/gitlab!2353))
- [Revert Protected Environment group access inheritence](gitlab-org/gitlab@488fd8f3f6770eebae10c815398534ff41d57546) ([merge request](gitlab-org/gitlab!84664))
- [Fix URL blocker when object storage enabled but type is disabled](gitlab-org/gitlab@d0da89768774de9cf635af530ed7386e65f92d40) ([merge request](gitlab-org/gitlab!84664))
- [Remove pending builds from the queue on conflict](gitlab-org/gitlab@8c88898dfd1619cc635ce5b98e30eebd91da497f) ([merge request](gitlab-org/gitlab!84664))
- [Fix null argument handling in background migration Rake task](gitlab-org/gitlab@23e1eb3272828b3546e18efdfaea5a8077cb20f4) ([merge request](gitlab-org/gitlab!84664))
## 14.9.2 (2022-03-31)
### Security (20 changes)
- [Quarantine UsageDataNonSqlMetrics failing test](gitlab-org/security/gitlab@123fc00ff9f407284ce05007ddc373e1bd0aeede) ([merge request](gitlab-org/security/gitlab!2364))
- [Disallow login if password matches a fixed list](gitlab-org/security/gitlab@1a128ae3fb17b3d83974bb08034e4ba7a7d54e3b) ([merge request](gitlab-org/security/gitlab!2357))
- [Update devise-two-factor to 4.0.2](gitlab-org/security/gitlab@17c70b13dcd437c05de63b3286245af8e6f42210) ([merge request](gitlab-org/security/gitlab!2349))
- [Limit the number of tags associated with a CI runner](gitlab-org/security/gitlab@ed5daced882a0206e050c4f676a888ac1c2417b1) ([merge request](gitlab-org/security/gitlab!2303))
- [GitLab Pages Security Updates for 14.9](gitlab-org/security/gitlab@79709cabf71a57a336f490636a7e32a208fe0229) ([merge request](gitlab-org/security/gitlab!2327))
- [Upgrade swagger-ui dependency](gitlab-org/security/gitlab@14280c1d844be3ffc2f30f5321a818a7b6c51770) ([merge request](gitlab-org/security/gitlab!2336))
- [Modify release link format check to avoid regex if string is too long](gitlab-org/security/gitlab@f516d883b46e1441410476dc140d69fde51cdf0f) ([merge request](gitlab-org/security/gitlab!2307))
- [Masks variables in error messages](gitlab-org/security/gitlab@9cf62118390c0cfba3d36a4231a30a7836f06e2f) ([merge request](gitlab-org/security/gitlab!2308))
- [Escape user provided string to prevent XSS](gitlab-org/security/gitlab@2da3502aef64ed1b01c13d82418950cf284098c6) ([merge request](gitlab-org/security/gitlab!2313))
- [Monkey patch of RDoc to prevent Ruby segfault](gitlab-org/security/gitlab@0ae4925089a1b5fd7c9abeeb0756b3a50e05799a) ([merge request](gitlab-org/security/gitlab!2321))
- [Project import maps members' created_by_id users based on source user ID](gitlab-org/security/gitlab@3826f2a7c652d3f74e45bfef8888601ca1c86ba1) ([merge request](gitlab-org/security/gitlab!2301))
- [Redact InvalidURIError error messages](gitlab-org/security/gitlab@59b60e9cf8f79d6f41000d34a4434c5a04988030) ([merge request](gitlab-org/security/gitlab!2295))
- [Fix access for approval rules API](gitlab-org/security/gitlab@7890215aa29624cd67c5bc8ac25175f2866479b7) ([merge request](gitlab-org/security/gitlab!2322))
- [Fix kroki exploit](gitlab-org/security/gitlab@b2a44b407ab85ca056a271ba4e708128ef08d25f) ([merge request](gitlab-org/security/gitlab!2306))
- [Fix blind SSRF when looking up SSH host keys for mirroring](gitlab-org/security/gitlab@5a9509b52584302c508bd6dff1454f80aae371ea) ([merge request](gitlab-org/security/gitlab!2309))
- [Escape original content in reference redactor](gitlab-org/security/gitlab@b33b170a2c2df8285999f3631e8a53d35e0eed22) ([merge request](gitlab-org/security/gitlab!2317))
- [Security fix for CI/CD analytics visibility](gitlab-org/security/gitlab@f3febd00b440475b2aca0b9bd6728fa5f8750288) ([merge request](gitlab-org/security/gitlab!2304))
- [Latest commit exposed through fork of a private project](gitlab-org/security/gitlab@3f20d4f294a12ceb33bec19d86790f582fb7fb48) ([merge request](gitlab-org/security/gitlab!2294))
- [Fix Asana integration restricted branch filter](gitlab-org/security/gitlab@08aa0f55b1b715f7311ee6502cd6f8a1b875f878) ([merge request](gitlab-org/security/gitlab!2300))
- [Revert "JH need more complex passwords"](gitlab-org/security/gitlab@e2fb87ec5d4e235d6b83454980cec9c049849a1c) ([merge request](gitlab-org/security/gitlab!2352))
## 14.9.1 (2022-03-23)
### Fixed (1 change)
- [Fix backups not working when feature_flags table does not exist](gitlab-org/gitlab@4cc3cd6cf6eb256a9837ef92a6fdb4991cd1642c) ([merge request](gitlab-org/gitlab!83388))
### Changed (1 change)
- [Alias user_email_lookup_limit to search_rate_limit](gitlab-org/gitlab@424c277fc4c994df60ea68acb8988537526108e4) ([merge request](gitlab-org/gitlab!83388))
## 14.9.0 (2022-03-21)
### Added (119 changes)
- [Toggle the related_epics_widge feature flag](gitlab-org/gitlab@8f64bbbc5c485fcdb7453f3c42949a37e030a71f) ([merge request](gitlab-org/gitlab!82333)) **GitLab Enterprise Edition**
- [Add Time to Restore Service DORA metric](gitlab-org/gitlab@0ccf5b4ae6bca2fa1ea128228e14bb63153283ce) ([merge request](gitlab-org/gitlab!82510)) **GitLab Enterprise Edition**
- [Added possiblity to create new token from the UI](gitlab-org/gitlab@8f36ef50c87ea78e33409c3ddcbbb04782fa5e15) ([merge request](gitlab-org/gitlab!82690))
- [Add param to Wiki REST endpoint to retrieve different page versions](gitlab-org/gitlab@53b8b9fe4952d7c11a80cd52f4dab8e6d8bfa7de) ([merge request](gitlab-org/gitlab!82838))
- [Add Harbor integration](gitlab-org/gitlab@bcb79d53fd54e545cf80416beb77360e06262c22) by @prajnamas ([merge request](gitlab-org/gitlab!80999))
- [MR widget: update merge commit message when default changed](gitlab-org/gitlab@b005b8e80ba8691ec24a5063e4a133d21e56532e) by @trakos ([merge request](gitlab-org/gitlab!77425))
- [Support agent registration without config](gitlab-org/gitlab@388f87faad5adf5c68ba4850a82b1d4433290b0f) ([merge request](gitlab-org/gitlab!82036))
- [Add `RestrictGitlabSchema` that enforces `restrict_gitlab_migration`](gitlab-org/gitlab@6bdac41133bebcf66c308dc31f589046b1dc0725) ([merge request](gitlab-org/gitlab!73756))
- [Enable the vsa_incremental_worker FF by default](gitlab-org/gitlab@d04a006d125f94b34c7eef4f6b85a37292bc7500) ([merge request](gitlab-org/gitlab!82975))
- [Add deployment approval comment field](gitlab-org/gitlab@5dfb9cabb2d2aee7eff447e34021c8b7ca24eed4) ([merge request](gitlab-org/gitlab!82743)) **GitLab Enterprise Edition**
- [Support iteration property for issues api](gitlab-org/gitlab@406a79a51c6dc35cd8207a7426a8582cd20ecfc4) ([merge request](gitlab-org/gitlab!82813)) **GitLab Enterprise Edition**
- [Filter archived issues / MRs from GraphQL](gitlab-org/gitlab@a7fde3da984bc52b887203fa57998c93f9c6fc5f) ([merge request](gitlab-org/gitlab!82673))
- [Purge `security_findings` records periodically](gitlab-org/gitlab@9cee0b65a405f4510fd5a77c2dcdcaf4ad95e003) ([merge request](gitlab-org/gitlab!81423)) **GitLab Enterprise Edition**
- [Upgrade GitLab Pages to 1.56.0](gitlab-org/gitlab@891adfa4d15e31f0d6087a6d22644cb9a06fe3e2) ([merge request](gitlab-org/gitlab!82901))
- [Stream audit event on merge request approval](gitlab-org/gitlab@39d59e2adbb92572ef077918773a9110d7924e1a) ([merge request](gitlab-org/gitlab!82471)) **GitLab Enterprise Edition**
- [Use batches for pull request import jobs](gitlab-org/gitlab@b5507c4df013a527266cb0e7914a1d525e2f30eb) ([merge request](gitlab-org/gitlab!82891))
- [Verify protected tags permissions for pull mirroring](gitlab-org/gitlab@b96fe042b134448a40e6be71dc438d74133920aa) ([merge request](gitlab-org/gitlab!82890))
- [Document how to use CI `dependencies` and `parallel:matrix` together](gitlab-org/gitlab@681db1577821d9ed4612d2d060a3413aa4ea883b) ([merge request](gitlab-org/gitlab!82734))
- [Add security training urls](gitlab-org/gitlab@942e93418c6aae0f85afd991e4cbc7a659521fba) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82442)) **GitLab Enterprise Edition**
- [Add `Enterprise` filter to members search bar](gitlab-org/gitlab@4f1b22da7fdeecd89130954a268ba8cae585f317) ([merge request](gitlab-org/gitlab!82059)) **GitLab Enterprise Edition**
- [Add VulnerabilityReadsFinder to speed up API responses](gitlab-org/gitlab@cf39e3350372fb806e6528a63a7ec7898c83049b) ([merge request](gitlab-org/gitlab!76220)) **GitLab Enterprise Edition**
- [Copy metric images from alert to new incident](gitlab-org/gitlab@5f62b91fa1eb6e4ba593f46bdc8caf34eecc9c76) ([merge request](gitlab-org/gitlab!79703)) **GitLab Enterprise Edition**
- [Expose UserInteractions for participants of a merge request](gitlab-org/gitlab@c0bcfde737e0e3a4c39f36234157e8103ef86cca) ([merge request](gitlab-org/gitlab!82257))
- [Remove wiki_front_matter FF](gitlab-org/gitlab@8045da7944102e54bb172a5ef3c5a8088459c360) ([merge request](gitlab-org/gitlab!81833))
- [Add default branch to Pipelines page filter if no search term provided](gitlab-org/gitlab@039b1145c3e477899681aeba7a27600cad9d45d5) ([merge request](gitlab-org/gitlab!82245))
- [Creates asynchronously index on ci_job_artifacts table](gitlab-org/gitlab@88112e32fff550f742e334bc5c19c4cbc947800e) ([merge request](gitlab-org/gitlab!82585))
- [GraphQL: Add notificationEmail to GroupMembers](gitlab-org/gitlab@0068380ce0105d50afb5fa419d9c90478f3132a9) ([merge request](gitlab-org/gitlab!81954))
- [Add external status checks total to ping](gitlab-org/gitlab@0f9770573a9aba52ab3ba94c09315a5f498728f3) ([merge request](gitlab-org/gitlab!82416)) **GitLab Enterprise Edition**
- [Add CAPTCHA to REST API](gitlab-org/gitlab@dc9fb467df0c59c9632525e8753aab12a8d91457) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80793))
- [Implement GET APIs for Deploy Tokens](gitlab-org/gitlab@fd6c86aa82c162720cca29c12ac8e33d55a5f8c0) by @tuxtimo ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82467))
- [Add namespace to Security Policy Orchestration Configuration](gitlab-org/gitlab@b77aefa62c7aac43d50d29de3adeb227760615ae) ([merge request](gitlab-org/gitlab!82013)) **GitLab Enterprise Edition**
- [Add deployment approval UI MVC](gitlab-org/gitlab@d39dff988a3efa1a082afe0ebec5be6bf6fd4939) ([merge request](gitlab-org/gitlab!80759)) **GitLab Enterprise Edition**
- [Add support for failure status status checks](gitlab-org/gitlab@37bc22744f7ecc3b6b8c3cee74ad7e45aea04b58) ([merge request](gitlab-org/gitlab!81005)) **GitLab Enterprise Edition**
- [Allow to list related epics on REST API](gitlab-org/gitlab@92d9f4329badbcc7f7db24184ae63db0d756e172) ([merge request](gitlab-org/gitlab!82332)) **GitLab Enterprise Edition**
- [Add `coverage_report` keyword to CI config](gitlab-org/gitlab@eae7dfc843783e270607d71c6db0c1ab6a52a8d1) ([merge request](gitlab-org/gitlab!81378))
- [Add audit logs when unassigning CI runner from a project](gitlab-org/gitlab@25f9eb27389dcec34f8b1b2b2003eee6c15b07d9) ([merge request](gitlab-org/gitlab!81540)) **GitLab Enterprise Edition**
- [Permalink to the latest release](gitlab-org/gitlab@4305f93ea5ba859bf4154d70dcdc83632deef2a8) ([merge request](gitlab-org/gitlab!78679))
- [Allow the /merge quick action through graphql create note](gitlab-org/gitlab@a201e850fee679ad2bc28858daf00755f87cef5a) ([merge request](gitlab-org/gitlab!82248))
- [Add projects with status checks to ping](gitlab-org/gitlab@d16eca98fa26b3bb065a2a2154b2249d41860fd8) ([merge request](gitlab-org/gitlab!82427)) **GitLab Enterprise Edition**
- [Add security training providers](gitlab-org/gitlab@562d3ab8e8cbbcc3dd2688727030052011d1954d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81104))
- [Add OpenSSL FIPS mode detection and env var](gitlab-org/gitlab@f3172799557172ca414cb17459e629e59e2e069c) ([merge request](gitlab-org/gitlab!82004))
- [Support Vault EE namespaces](gitlab-org/gitlab@86894deb6653ddd44111401b63107f4df7f0195a) by @aleksanderzak ([merge request](gitlab-org/gitlab!80590))
- [Add free user cap feature flag and controls](gitlab-org/gitlab@7b7114d8870dccfb74163162c3757c51da1a4df5) ([merge request](gitlab-org/gitlab!80518)) **GitLab Enterprise Edition**
- [Add support stackprof in GitLab profiler](gitlab-org/gitlab@4c42d3ac32dc3cde4b485952e4fca03de86d20a5) ([merge request](gitlab-org/gitlab!82249))
- [Include invited groups into protected environments API](gitlab-org/gitlab@6f73dec2a64989a23d24ac85a2a701a90e9067bc) ([merge request](gitlab-org/gitlab!81029)) **GitLab Enterprise Edition**
- [Add wiki page render option to wiki API](gitlab-org/gitlab@be93a263833ff42abd8b09313a6857fb83e8dcad) ([merge request](gitlab-org/gitlab!81134))
- [Remove rate_limit_user_sign_up_endpoint feature flag](gitlab-org/gitlab@2a506163fd32fc5bf4efc5273930b76f2919dd1e) ([merge request](gitlab-org/gitlab!82092))
- [Expose committers on mergeRequest GraphQL type](gitlab-org/gitlab@627a989aef6a44bc7e3c1538d276d5b115db7d33) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79965))
- [Add backend interface to look up for security training](gitlab-org/gitlab@72812ce313a47e5385e58b4b008b7427a0fe716e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81861)) **GitLab Enterprise Edition**
- [Show security report warnings on pipeline security tab](gitlab-org/gitlab@22e8a70f7e573b39834384156efea65187b37a70) ([merge request](gitlab-org/gitlab!80934)) **GitLab Enterprise Edition**
- [Allow to destroy related epics association on internal API](gitlab-org/gitlab@c4dab676900eccc30c466c45dea6d154ff91a93c) ([merge request](gitlab-org/gitlab!82035)) **GitLab Enterprise Edition**
- [Add frontend routing to Geo GraphQL specific sites](gitlab-org/gitlab@cbf0218b10d37af4a3c54b7358649e484a444805) ([merge request](gitlab-org/gitlab!80106)) **GitLab Enterprise Edition**
- [Add audit logs when assigning CI runner to project](gitlab-org/gitlab@13f562bbde2e5335584d7ac235270a3f4d0e63ea) ([merge request](gitlab-org/gitlab!81508)) **GitLab Enterprise Edition**
- [Merge/squash commit templates: add %{all_commits} variable](gitlab-org/gitlab@ceb64735cbac1fc5b5a176efafd789817cdeb34a) by @trakos ([merge request](gitlab-org/gitlab!81097))
- [Add size to image details heade](gitlab-org/gitlab@6d9d013cd88e7a4e1f0d775c1d432293d58e4afd) ([merge request](gitlab-org/gitlab!82114))
- [Feat(Licesing): update upload to activate](gitlab-org/gitlab@36b4b17e98ad066038b89097e23dfd00d9423d3d) ([merge request](gitlab-org/gitlab!80904)) **GitLab Enterprise Edition**
- [Send a notification when a new access token is created](gitlab-org/gitlab@8c1d3e4a7b9242ec7cabd5392ee9be0719d65fd1) by @rpadovani ([merge request](gitlab-org/gitlab!81340))
- [Add audit event for project deploy tokens](gitlab-org/gitlab@7ab7ea0d89ccd8446d864f6a5d3f4826100aed76) ([merge request](gitlab-org/gitlab!81829)) **GitLab Enterprise Edition**
- [Add audit event for group deploy tokens](gitlab-org/gitlab@eea536482d3c7b2a03baafc7ce51265ee77aff1e) ([merge request](gitlab-org/gitlab!82251)) **GitLab Enterprise Edition**
- [Add suggestion to use short-living tokens to end-users](gitlab-org/gitlab@ee2e5fd4f7f95e5426aac04e1f70a9bf652f93f9) ([merge request](gitlab-org/gitlab!81323))
- [Add comment to Deployment Approvals](gitlab-org/gitlab@31f63645ff9603ac6c1e2b282576d1daa41173f7) ([merge request](gitlab-org/gitlab!82142)) **GitLab Enterprise Edition**
- [Parse pasted markdown](gitlab-org/gitlab@42449f07567d06c41d39378036a759ba58415d05) ([merge request](gitlab-org/gitlab!78394))
- [Remove rate_limit_user_by_id_endpoint feature flag](gitlab-org/gitlab@37c0084c0a4d745e00206da6fca9c16fbc1110bf) ([merge request](gitlab-org/gitlab!82108))
- [Remove rate_limit_username_exists_endpoint feature flag](gitlab-org/gitlab@6c018f2133b0372ff6e79d4a6a60cfcea80e2d14) ([merge request](gitlab-org/gitlab!82105))
- [Remove rate_limit_profile_update_username feature flag](gitlab-org/gitlab@cf9f96bc79cf8532cb405c259030b61fde53b0ee) ([merge request](gitlab-org/gitlab!82095))
- [Expose sum of weights for epic board lists on GraphQL endpoint](gitlab-org/gitlab@32b10dfbaeea605c6ab2f726650f1034693ad465) ([merge request](gitlab-org/gitlab!76440)) **GitLab Enterprise Edition**
- [Add security scan status to GraphQL API](gitlab-org/gitlab@c1ecdd58a472608760235927b2e6f34c5ab0657b) ([merge request](gitlab-org/gitlab!81305)) **GitLab Enterprise Edition**
- [Add saved replies](gitlab-org/gitlab@832f32cc313dcdec9dbf95242213af7c1f37ce76) ([merge request](gitlab-org/gitlab!80807))
- [Backfill all project namespaces](gitlab-org/gitlab@6a08c2b64f98d8f9a19f2f215813da38fb7a3401) ([merge request](gitlab-org/gitlab!77371))
- [Implement API endpoint to get single SSH key for specific user](gitlab-org/gitlab@9e64387c0e3fafce54ff43c212443c9a195c99bc) by @tuxtimo ([merge request](gitlab-org/gitlab!81790))
- [Add job_variables_attributes to play build API](gitlab-org/gitlab@b669e48a4b8e23f1913d93e738386011f478057d) ([merge request](gitlab-org/gitlab!81317))
- [Use fair queueing for Loose Foreign Keys](gitlab-org/gitlab@9738b0324e251e058fdccd3bb4ece57dbeac1479) ([merge request](gitlab-org/gitlab!81888))
- [Add application setting for cleanup policy caching](gitlab-org/gitlab@d0c1b163f8d2ef90e97a40f6b38a789696b5171c) ([merge request](gitlab-org/gitlab!80902))
- [Add GraphQL Todoable interface for to-do targets](gitlab-org/gitlab@4539cd906e27969dadcc9661d97dd60f73bc9cc5) by @KevSlashNull ([merge request](gitlab-org/gitlab!73603))
- [Add circuit breaker for gitlab experimentation](gitlab-org/gitlab@54056a316d1c67bcadc82e1a7ea2dfc579cd6c0a) ([merge request](gitlab-org/gitlab!81834))
- [Add delete endpoint for Alert metric images](gitlab-org/gitlab@9226d47f7c50a39bddf1b8850550dfd5a4291254) ([merge request](gitlab-org/gitlab!81107)) **GitLab Enterprise Edition**
- [Enable Loose Foreign Keys partition rotation](gitlab-org/gitlab@a424373c2557314bd1f6aac893e2c11a3fddc2b4) ([merge request](gitlab-org/gitlab!81793))
- [Add scan method to dast site profile GraphQL API](gitlab-org/gitlab@40fa9ce8d12b026d830cf914fa5478e533e7aceb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/78745)) **GitLab Enterprise Edition**
- [Filter a pipeline by author](gitlab-org/gitlab@d704138cb32a10b2cf078d9f2bd66922bbbaf6c2) by @genctys ([merge request](gitlab-org/gitlab!79470))
- [Allow to pass suggestedColors to ColorPicker](gitlab-org/gitlab@55babfe9fb03831c83dc5128efe3f635f65b87ff) by @wwwjon ([merge request](gitlab-org/gitlab!81604))
- [Add security_and_compliance_access_level to Projects API](gitlab-org/gitlab@2bd37b450c9027e3eff7451f309d5a2d45458736) by @ytans ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81086))
- [Add user and system note filters to note_authors association](gitlab-org/gitlab@fcea425c2849e574d9dfac3efd3a5c1ff99c33b9) ([merge request](gitlab-org/gitlab!81436))
- [Add analytics to detect deployment jobs being executed](gitlab-org/gitlab@95dd6e9eff1767ec6ffe8f7a59a04ab7d7889573) ([merge request](gitlab-org/gitlab!79272))
- [Add filters and sorting to compliance violations GraphQL type](gitlab-org/gitlab@bf343e65f31ada9cd2d8249e0574e1f2f15a149f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/78681)) **GitLab Enterprise Edition**
- [Add encoding field to wiki API](gitlab-org/gitlab@05fd6cb19ed2dd7dade727d36eca0349948db16b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81150))
- [Add ingestion for Finding Evidence](gitlab-org/gitlab@855b613c0f62e6cfa67814c293151919663318d0) ([merge request](gitlab-org/gitlab!75287)) **GitLab Enterprise Edition**
- [Feat(Licensing): add Offline cloud type](gitlab-org/gitlab@aa32508aede618cc48540a162d0f00df8cc1ae9e) ([merge request](gitlab-org/gitlab!80833)) **GitLab Enterprise Edition**
- [Add webhook delivery method options to config/mail_room.yml](gitlab-org/gitlab@43165dd6bdd66f89bc4d4db5373f67ccb1254f04) ([merge request](gitlab-org/gitlab!80832))
- [Improve strikethrough in Markdown editor](gitlab-org/gitlab@103a129e63677818ffc9c3c0eac160c9c3f564aa) by @smokris ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81092))
- [Created compliance violation GraphQL type and added to Group type](gitlab-org/gitlab@7e69ac7f6f90209e364b5c46a4c927857b36013e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80995)) **GitLab Enterprise Edition**
- [Implement colour attribute for epics](gitlab-org/gitlab@c428bacd9c61ab4387423586253d8f1a7ca5744c) by @espadav8 ([merge request](gitlab-org/gitlab!79940))
- [Add basic FIPS class](gitlab-org/gitlab@360940b1e162c7b10e18de46bade2a81b80629ae) ([merge request](gitlab-org/gitlab!81418))
- [Add Dark Mode support to the image_tag helper](gitlab-org/gitlab@c6fde03a5158a9f42d8c00082766c767f22a5551) ([merge request](gitlab-org/gitlab!81219))
- [Add upload & update endpoints for alert metrics](gitlab-org/gitlab@829f9695ae7ded05c276f9ae3b6f6d3ea6fc3c53) ([merge request](gitlab-org/gitlab!80982)) **GitLab Enterprise Edition**
- [API: Add endpoint to reset runner token with old token](gitlab-org/gitlab@f027a6f2f1db7c91e2823f3400892b730ecc0a67) by @KyleFromKitware ([merge request](gitlab-org/gitlab!74336))
- [Added updated_state_by_user to reviewers and assignees](gitlab-org/gitlab@d2cacb034a5b21ce02a1441905bc54aa9869ca3c) ([merge request](gitlab-org/gitlab!75927))
- [Swapable cleaner/raw diffs for Notebooks](gitlab-org/gitlab@4677ac06d61e19f0f64a6b0559df72f809996b7f) ([merge request](gitlab-org/gitlab!75500))
- [Upgrade GitLab Pages to 1.55.0](gitlab-org/gitlab@e2cde448a6180d2bb91900c2ce3aa7a0d1dfc14f) ([merge request](gitlab-org/gitlab!81261))
- [Enable pending builds table queuing strategy](gitlab-org/gitlab@65e3bb48e1dd06235ef435f8318ca1787053831a) ([merge request](gitlab-org/gitlab!81238))
- [Add a timeline event pipeline filter to TimelineEvent](gitlab-org/gitlab@a9fb9fdc81d6ddc2c9fe231d80b2fecb32ccebcc) ([merge request](gitlab-org/gitlab!79852)) **GitLab Enterprise Edition**
- [Add read API for Alert Metric Images](gitlab-org/gitlab@8adf04476edf0895406e0b3a3c9e0d75a0b083bd) ([merge request](gitlab-org/gitlab!80442)) **GitLab Enterprise Edition**
- [Support scoped iteration report](gitlab-org/gitlab@5267e55682c71ff60ad818a54123d53d868b7313) ([merge request](gitlab-org/gitlab!81216)) **GitLab Enterprise Edition**
- [Add mutation to promote timeline event from a note](gitlab-org/gitlab@72201bf665c68b0c1bd864068d5cd387eec50f5b) ([merge request](gitlab-org/gitlab!80633)) **GitLab Enterprise Edition**
- [Add active and passive profiles](gitlab-org/gitlab@7907d2f76d4cb7274fbf4e6252a938e9d5cc17a2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/78492)) **GitLab Enterprise Edition**
- [Support scoping for timebox report via GraphQL](gitlab-org/gitlab@00c656261a7bbb23913947366be3aab7641d4083) ([merge request](gitlab-org/gitlab!79327)) **GitLab Enterprise Edition**
- [Add aggregated VSA consistency check service](gitlab-org/gitlab@19fecb63b6492ca434199ada710c619b6d973689) ([merge request](gitlab-org/gitlab!79942))
- [Return runner editUrl via GraphQL API](gitlab-org/gitlab@4f27ed7c775586a2618f9b301343262406c0f8c9) ([merge request](gitlab-org/gitlab!80926))
- [Add the total time chart to each VSA stage](gitlab-org/gitlab@9c048ea7b6b8034f9ade0209eb69553a1aee5a01) ([merge request](gitlab-org/gitlab!80255)) **GitLab Enterprise Edition**
- [Workhorse: Allow HTTPS for backends](gitlab-org/gitlab@24fbcde50729bd9a58634b0aceb5d3756e5d3302) ([merge request](gitlab-org/gitlab!81061))
- [Adds cross_project_pipeline_available to NamespaceType](gitlab-org/gitlab@bf83faf50fea5b43af2b627f5aee86a5dfb5389e) ([merge request](gitlab-org/gitlab!80381))
- [Add readme in repo creation for reg flow](gitlab-org/gitlab@d51b0c899f14c5ea2fdbb0387f9311d2de8753f4) ([merge request](gitlab-org/gitlab!79770)) **GitLab Enterprise Edition**
- [Hide markdown preview tab if editing non-markdown formats](gitlab-org/gitlab@596d3f204316790ea2ac19a11be0a0b14ceeaa34) by @espadav8 ([merge request](gitlab-org/gitlab!80178))
- [Log CI runner unregistration audit events](gitlab-org/gitlab@aa9612f1bb8ea820a7490e80290ce2bc77a05200) ([merge request](gitlab-org/gitlab!79754)) **GitLab Enterprise Edition**
- [Add a consolidated button to edit blobs](gitlab-org/gitlab@02314fd77728f731dc55b22033fa6c8a5b766613) ([merge request](gitlab-org/gitlab!80715))
- [Calculate storage statistics for dependency proxy](gitlab-org/gitlab@b8c1f4d851aa72ed144bed44fc233dde43e1be4a) ([merge request](gitlab-org/gitlab!79358))
- [Latest release badge documentation inclusion](gitlab-org/gitlab@8572186d5a8b192edf218bb2c266a1d0fc0adbf8) ([merge request](gitlab-org/gitlab!80897))
- [Add slash command to page incident](gitlab-org/gitlab@f0a8c6f5c5f1835dd8ec97de9fb72156e947cde2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/79977)) **GitLab Enterprise Edition**
- [Expose container repository sizes](gitlab-org/gitlab@d964a1d7acaf7a851d9ffeac5cf4373ccc52fde9) ([merge request](gitlab-org/gitlab!80412))
- [Create RelatedEpic table and model](gitlab-org/gitlab@f2a49bb242f103503011bad7c8acfb77375298ff) ([merge request](gitlab-org/gitlab!80499))
### Fixed (132 changes)
- [Cleaned up clusters_helper and cluster index haml](gitlab-org/gitlab@02e3bcc76b763124ce50ce869978e1011ffd43bd) ([merge request](gitlab-org/gitlab!82637))
- [Update holder name column to 50 limit constraint](gitlab-org/gitlab@5901bc8701c3bb2ca6f7fc21487013d59302a517) ([merge request](gitlab-org/gitlab!82587))
- [Improve wording for vulnerabilities_allowed](gitlab-org/gitlab@d4242b41a8668fa0da779a5addba281cebd9be7e) ([merge request](gitlab-org/gitlab!82742)) **GitLab Enterprise Edition**
- [Add missing input box for search rate limiting configuration](gitlab-org/gitlab@635d4811cc2613b5299ffc96bf27725c935faa1b) ([merge request](gitlab-org/gitlab!82944))
- [Handle Jira Connect installation updates](gitlab-org/gitlab@19722d41355992ee56a3f045f70b93b957249658) ([merge request](gitlab-org/gitlab!83038))
- [Return a 422 error for Changelog::Error exception](gitlab-org/gitlab@896a7c1de30abb1329d4e6bcb92ceebad6317632) ([merge request](gitlab-org/gitlab!80850))
- [Fix empty state pipelines page](gitlab-org/gitlab@a638ee1aa98d05b2cc5d63c19a4aff8061c1f609) ([merge request](gitlab-org/gitlab!83030))
- [Update attribute indirection](gitlab-org/gitlab@9bf63a5b2bab3d8c93a967a13348bc9853870fa9) ([merge request](gitlab-org/gitlab!82932)) **GitLab Enterprise Edition**
- [Fixed incorrect minimum number of users on subscription purchase flow](gitlab-org/gitlab@db461b03c91a6c6a8f32724dff19cb74933572ad) ([merge request](gitlab-org/gitlab!82480)) **GitLab Enterprise Edition**
- [Refactor remove topic avatar](gitlab-org/gitlab@136b739fcc5b04ed76f4c94d2305c77af0cc8ba5) ([merge request](gitlab-org/gitlab!82894))
- [Fix default Ci config path](gitlab-org/gitlab@03dd150afcb7353fd4d4903a9ca59705b2b109d9) ([merge request](gitlab-org/gitlab!82827))
- [Fix ci.json: Remove Nesting from Secrets Rule](gitlab-org/gitlab@ee33d4da70cc300335192cdaaca3a20260d4cca3) ([merge request](gitlab-org/gitlab!82484))
- [Fix DevopsAdoption usage metric gathering](gitlab-org/gitlab@47676bd58f6463bcb265ead7eaf737fb921d5c66) ([merge request](gitlab-org/gitlab!82904)) **GitLab Enterprise Edition**
- [Fix Epic and Label != filtered search suggestions not showing](gitlab-org/gitlab@c9b18202657080149c72fc317be64dfe10f11ca1) ([merge request](gitlab-org/gitlab!82814))
- [Handle recursion when creating ApplicationSettings](gitlab-org/gitlab@4b59d55ada4b0212e2aece9f3c52ec9281739ebf) ([merge request](gitlab-org/gitlab!82930))
- [Fall back to avaiable scope if scope is invalid](gitlab-org/gitlab@b9da1851edf685a39e58c6b5bfbd6a169cad1378) ([merge request](gitlab-org/gitlab!82847))
- [Fix sourcegraph breaking on projects/:id](gitlab-org/gitlab@248ab5c8b02e3e21a1a206b4032653afbb065c90) ([merge request](gitlab-org/gitlab!82447))
- [Find or initialize Scanners using project_id](gitlab-org/gitlab@8090f3da0944805673ac8189c3fcfe43591573cc) ([merge request](gitlab-org/gitlab!82923)) **GitLab Enterprise Edition**
- [Add responsive property to area charts in CI minutes](gitlab-org/gitlab@a97e275af9ba3405862792ad1ab252e5fe980b98) ([merge request](gitlab-org/gitlab!82741)) **GitLab Enterprise Edition**
- [Additional spec to capture bug in latest release permalink and fix same](gitlab-org/gitlab@f9f9f8300d8565e4315bb4c0cb4d54dccf522d60) ([merge request](gitlab-org/gitlab!82896))
- [Global Search - Fix ref based searches](gitlab-org/gitlab@08e0800ee2cc9ee85709f1689b212b4d028cd822) ([merge request](gitlab-org/gitlab!80857))
- [Remove duplicate new cluster button](gitlab-org/gitlab@e43022603d6c7bb7243d7444816c8cb190559192) ([merge request](gitlab-org/gitlab!82654))
- [Increase token preview length in runner audit logs](gitlab-org/gitlab@68acf3dbd2705bc8a640643a97254e25c6059316) ([merge request](gitlab-org/gitlab!82523)) **GitLab Enterprise Edition**
- [Fix unexpected height stretch of CI job duration badge](gitlab-org/gitlab@0b9adf4ae7c163bf0ab691306e4f068562231b66) by @nanmu42 ([merge request](gitlab-org/gitlab!82670))
- [Allow setting push events branch filter for group hooks](gitlab-org/gitlab@9f3ad7d9753a989ad5b532ffd947687b6c647eef) ([merge request](gitlab-org/gitlab!82531)) **GitLab Enterprise Edition**
- [Support CRM contacts only in root groups](gitlab-org/gitlab@227c3221888c925d21d8a7d17f8d552384e07e1d) by @leetickett ([merge request](gitlab-org/gitlab!78959))
- [UI Bug Fix: Expand the early checks when using /merge quick action](gitlab-org/gitlab@513a636c4327658243c64e1380babb565f8259d9) ([merge request](gitlab-org/gitlab!82170)) **GitLab Enterprise Edition**
- [Fix an inaccurate help page link](gitlab-org/gitlab@4cbaffb4f06699ba295af31a4c0d7a11d5a71d30) ([merge request](gitlab-org/gitlab!82147))
- [Add validation for rule/yaml modes switch](gitlab-org/gitlab@1a87f7fbe9544c9bd17abc82fa3f84acfa2a95cd) ([merge request](gitlab-org/gitlab!82451)) **GitLab Enterprise Edition**
- [Fix namespace usage quotas storage pagination](gitlab-org/gitlab@bd5c66fcfa06c7ebd74937efea3b14cb339d9082) ([merge request](gitlab-org/gitlab!80752))
- [Replace applications destroy alert with GlModal](gitlab-org/gitlab@6b4cd07d9724821d20c8e546926703ad97030394) ([merge request](gitlab-org/gitlab!80799))
- [Don't allow filtering by `in` alone on issue/MR dashboard](gitlab-org/gitlab@138f3d1a76ab05f9e73db667eafd3e94bbe70e19) ([merge request](gitlab-org/gitlab!82664))
- [Allow invite group modal to render when membership is locked](gitlab-org/gitlab@8d2ebd4d78459c48cf95a6b597886aaf0756e9e5) ([merge request](gitlab-org/gitlab!82636)) **GitLab Enterprise Edition**
- [Scan MR description when syncing builds with Jira](gitlab-org/gitlab@9db551e82528eaac1645f2acc7561441473b4c17) ([merge request](gitlab-org/gitlab!82204))
- [Set resoure_iteration_events to ghost user](gitlab-org/gitlab@004f78ac56a0f3a4303f6b93fc44059902c5343a) ([merge request](gitlab-org/gitlab!82060)) **GitLab Enterprise Edition**
- [Update BulkImports Export to handle unexpected failure](gitlab-org/gitlab@3fba81a5bf6cc47722a5d8f2e63b4026b81a4d30) ([merge request](gitlab-org/gitlab!82221))
- [Fix UsageDataQueries API not returning a query](gitlab-org/gitlab@7467adf89b4f5ef47eb9054a40e19b3de1eb7117) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81823)) **GitLab Enterprise Edition**
- [Fixed user cap evaluation for all OAuth login](gitlab-org/gitlab@0938f9f1c9b5a19cf107aa9e198505dc8cfb9fd2) ([merge request](gitlab-org/gitlab!81272)) **GitLab Enterprise Edition**
- [Fix retrying of batched background migrations](gitlab-org/gitlab@80c517ffc5f2a9724e2614d70f1540a95718955f) ([merge request](gitlab-org/gitlab!82387))
- [Allow merge commits for SD](gitlab-org/gitlab@ce04cea13b325aa7f0399b721f96842d93bb0ea0) ([merge request](gitlab-org/gitlab!82546))
- [Fix startup crash in Puma single mode](gitlab-org/gitlab@076ac5bba2eda70f13bccd892549f40a6e09d380) ([merge request](gitlab-org/gitlab!81983))
- [Decouple policy name update from yaml/rule modes](gitlab-org/gitlab@b98c6a483022199e8f3927726bca893c79ac72c6) ([merge request](gitlab-org/gitlab!82337)) **GitLab Enterprise Edition**
- [Poll folder for changes in new environments page](gitlab-org/gitlab@0ac66e447cb52f0228d67fbf58dda419f4b01fda) ([merge request](gitlab-org/gitlab!81043))
- [Remove empty approvers in regards to](gitlab-org/gitlab@7b9b2ddc71543f932750279bb8c052fb5614dc3a) ([merge request](gitlab-org/gitlab!82338)) **GitLab Enterprise Edition**
- [Check authorization to view billableMembersCount](gitlab-org/gitlab@1a23f5e64e33527163dcb5e5b546a9f30108ced5) ([merge request](gitlab-org/gitlab!82479)) **GitLab Enterprise Edition**
- [Refactor repo deletion existence checking](gitlab-org/gitlab@86e7d744aa5cd08a9e8312b4c464ac19bcb20fa6) ([merge request](gitlab-org/gitlab!81799))
- [Make hr in markdown visible in darkmode](gitlab-org/gitlab@78d9d3c983e670f6832916e1749ce3e2fb7cbc99) by @dianapaula19 ([merge request](gitlab-org/gitlab!81559))
- [Fix filters presence check to take value into consideration](gitlab-org/gitlab@1b9dbdc99817b0dc7a516fcf46c1bf9b18e0b539) ([merge request](gitlab-org/gitlab!82462))
- [Param requires_python is optional for pypi](gitlab-org/gitlab@22a7e20d06e2ab32bf3c947763ea8b1fa03a1417) ([merge request](gitlab-org/gitlab!81946))
- [Ensure that the spaces between frontmatter are kept](gitlab-org/gitlab@aa1c697b288e4205301f0d3e7dec04533cba49f0) by @tchandelle ([merge request](gitlab-org/gitlab!81470))
- [Fix sourcemap recovery error in Content Editor](gitlab-org/gitlab@2e46ff7fa3332bec0fc7a7f9053904b34762bf89) ([merge request](gitlab-org/gitlab!82040))
- [Users who can read group should read group token](gitlab-org/gitlab@7fa729107e73f0a80de96afbd356372a36ce06a0) ([merge request](gitlab-org/gitlab!81843))
- [Fix bot token name in issues](gitlab-org/gitlab@86a01c368b981ac8848f211a90b9d479e79985e7) ([merge request](gitlab-org/gitlab!81843))
- [Allow inherited members of groups to deploy protected environments](gitlab-org/gitlab@decab235e844088309bdefbd8d2fbddbe61cb90b) ([merge request](gitlab-org/gitlab!82415))
- [Update group bulk edit issues user docs](gitlab-org/gitlab@eb943abc5618acedd482edc31da655b5a2e72831) ([merge request](gitlab-org/gitlab!82406))
- [Fix variable in _prometheus.html.haml so it shows as a code block](gitlab-org/gitlab@3c8716d9c4e0edd10b808837934a0fe0a0f8b1f0) ([merge request](gitlab-org/gitlab!82395))
- [Project settings: fix semi-linear merge description](gitlab-org/gitlab@7e2b13257ec62cb41324c3c0835f7a201f897a9f) by @trakos ([merge request](gitlab-org/gitlab!82261))
- [Fix rake task to seed Geo tracking database](gitlab-org/gitlab@7b55621331c7c42b9bf460a9e83ada9a908db714) ([merge request](gitlab-org/gitlab!82340)) **GitLab Enterprise Edition**
- [Fix remove button overlap with other components](gitlab-org/gitlab@4974a54bb041930f9b7a8c5fc1124d87abdf1519) ([merge request](gitlab-org/gitlab!82346)) **GitLab Enterprise Edition**
- [Include merge-requests in RESERVED_REFS_NAMES](gitlab-org/gitlab@f610f865f1dd92f0408c12d9a97590f5f9892744) ([merge request](gitlab-org/gitlab!82326))
- [Pass issue ID to merge request creation form](gitlab-org/gitlab@1e72978788cc1a439c54c070f2f64101b642957b) ([merge request](gitlab-org/gitlab!81886))
- [Apply omniauth defaults when no arguments are given](gitlab-org/gitlab@07fba40d80f502ac1aa7adaa99e8dcbac603dccc) ([merge request](gitlab-org/gitlab!81752))
- [Fix `Verify SAML Configuration` button](gitlab-org/gitlab@910f9a47af94165c587d19c83e55ca97df2316ac) ([merge request](gitlab-org/gitlab!80978)) **GitLab Enterprise Edition**
- [Replace success variant with the confirm](gitlab-org/gitlab@0b3828cdbd96a4a2159ef1f95abf257dac16f9c3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82207)) **GitLab Enterprise Edition**
- [Modify Union sql construction](gitlab-org/gitlab@5ca65cb8298ab3627a4f014105dcae660b267832) ([merge request](gitlab-org/gitlab!82077))
- [Restart Action Cable server when Redis disconnects](gitlab-org/gitlab@12b8a5635b97629ccab4ac6529747e418e975c42) ([merge request](gitlab-org/gitlab!80822))
- [Cache namespace first Auto DevOps config](gitlab-org/gitlab@9579939d83b350e06129b4501dc87e944a32bc07) ([merge request](gitlab-org/gitlab!80937))
- [Global Search - Header Search Snippets](gitlab-org/gitlab@2e9739f18020efa33a5bec6b2e818b5c120c67de) ([merge request](gitlab-org/gitlab!80844))
- [Fix NoMethodError when visiting repo analytics](gitlab-org/gitlab@afcedad0eaca6cfb3a3878e24af3c9d488286b3b) ([merge request](gitlab-org/gitlab!81988)) **GitLab Enterprise Edition**
- [Skip navigation modal for cancel button](gitlab-org/gitlab@554492fd1323a1da69f890828a2db167be777efb) ([merge request](gitlab-org/gitlab!81516))
- [Handle not existing training ID for securityTrainingUpdate mutation](gitlab-org/gitlab@af4ec86a05cbef3991af0c787177b7ff204d54c7) ([merge request](gitlab-org/gitlab!81023)) **GitLab Enterprise Edition**
- [Fix VSA error with scoped labels](gitlab-org/gitlab@565294145c7b2864fdc169e383973e85ee42938e) ([merge request](gitlab-org/gitlab!82083)) **GitLab Enterprise Edition**
- [Fix markdown serialization in content editor](gitlab-org/gitlab@b9713c00a9bf76fb1eebc22b5a57a629063fc7ad) ([merge request](gitlab-org/gitlab!81849))
- [Fix the month view on CI usage by minutes bar chart](gitlab-org/gitlab@c45a93a7654eb2473b3557a3a8f075763084c69e) by @parkourkarthik ([merge request](gitlab-org/gitlab!81185))
- [Hard delete bulk snippets](gitlab-org/gitlab@2e739ceeac54f28092b9520aa7022e51f6359c1f) ([merge request](gitlab-org/gitlab!82020))
- [Allow popups and links within mermaid diagrams](gitlab-org/gitlab@2dd16c32ddde176ee6dda228cd88f4df770b01b7) ([merge request](gitlab-org/gitlab!82012))
- [Fixed bug preventing agent creation from agent tab](gitlab-org/gitlab@bfb1a0030de1724b75fcd5b5bf085524ee802029) ([merge request](gitlab-org/gitlab!81071))
- [Prevent database deadlocks when deleting projects](gitlab-org/gitlab@b8c771578a6592f698cef25a8770ea3539f3f18b) ([merge request](gitlab-org/gitlab!81266))
- [Fix mermaid background in dark mode](gitlab-org/gitlab@68cb78b22268fada1f9f2a8c96793dd347130612) ([merge request](gitlab-org/gitlab!81865))
- [Change Edit to Open in Blob view to maintain consistency](gitlab-org/gitlab@a02c14952dc6069a5ff8e6be395318f15cfbcf26) by @rajanamistry ([merge request](gitlab-org/gitlab!81759))
- [Fix loading spinner for legacy Filtered search dropdown](gitlab-org/gitlab@ebf450dac0b54bffb836bf9afcf7a4ab9520bad2) ([merge request](gitlab-org/gitlab!81953))
- [Replace RegistrySearch component with PersistedSearch](gitlab-org/gitlab@ec1ee3e62af68ff5d2bdc992b1a2756d4ede261a) by @orozot ([merge request](gitlab-org/gitlab!80994))
- [Fix sending BlobContent query with empty variables](gitlab-org/gitlab@91a808af620b1d6101312e19a83b7740ec648952) ([merge request](gitlab-org/gitlab!81156))
- [Add container to qrtly reconciliation banner](gitlab-org/gitlab@4b01e28713a34d780a83ef11df574bded2b8d48d) ([merge request](gitlab-org/gitlab!81517)) **GitLab Enterprise Edition**
- [Add container for manual renewal banner](gitlab-org/gitlab@20b95750bfed341e801ff6c8552a36417a2778f5) ([merge request](gitlab-org/gitlab!81517)) **GitLab Enterprise Edition**
- [Make loading spinner Pajamas compliant](gitlab-org/gitlab@6010b760f886993f808b846add835d8354eeaba4) ([merge request](gitlab-org/gitlab!81801))
- [Reset paging when sort is changed on vulnerability report](gitlab-org/gitlab@8e98a4469d7ddad22acb35af8d0644195617ec83) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81870)) **GitLab Enterprise Edition**
- [Fix job page copy source branch button](gitlab-org/gitlab@6aa1d555c347d5d73b4cdb9d56ce7fa6c5d512a3) by @leetickett ([merge request](gitlab-org/gitlab!76022))
- [Raise error when diff note import fails](gitlab-org/gitlab@9490ef6ead244cc457975c1bb9e8afcd5dc6d2d1) ([merge request](gitlab-org/gitlab!81014))
- [Fix group members tooltip label](gitlab-org/gitlab@01969906f1f7cc158167d3734768324a8e51437d) by @ali_o_kan ([merge request](gitlab-org/gitlab!81210))
- [Fix loading icon in activity calendar](gitlab-org/gitlab@4c63009b296e536cc281b79bc0f0195267a2f91a) ([merge request](gitlab-org/gitlab!81552))
- [Fix rendering vulnerability markdown description](gitlab-org/gitlab@5c3ee8d41673c80f25834d475da23b4b6a38f00a) ([merge request](gitlab-org/gitlab!77958)) **GitLab Enterprise Edition**
- [Filter commented_approvers for user note authors](gitlab-org/gitlab@5ce58821fc246927747faa0f76f6ac7e632d9c15) ([merge request](gitlab-org/gitlab!81563))
- [Remove fix_comment_scroll feature flag](gitlab-org/gitlab@af6bf959fd86a248f093c7399b9764e3111bb6ed) ([merge request](gitlab-org/gitlab!79835))
- [Fix error from invalid sha for `include` files](gitlab-org/gitlab@32fe798699dd18681ac9cb6ad5348e2fe50909c1) ([merge request](gitlab-org/gitlab!81036))
- [Fix GRPC 500 from BlobsResolver](gitlab-org/gitlab@8eb9f47a6e67b37747c6204a57928c10cb7baa66) ([merge request](gitlab-org/gitlab!80747))
- [Add error for cross pipeline dependencies](gitlab-org/gitlab@2d2ff9dc0f974a47d729f51623204cb86882d2a0) ([merge request](gitlab-org/gitlab!80513))
- [Handle received header fallback for missing Delivered-To](gitlab-org/gitlab@8eeeb3d78921b7ec073c70a55aaa76364c395b42) ([merge request](gitlab-org/gitlab!81489))
- [Fix erroneous all warning from race condition](gitlab-org/gitlab@3e4134e69afe27c3c820a0fe7c32b2cb9e3956e4) ([merge request](gitlab-org/gitlab!81224))
- [Remove unnecessary margin to the right of the Show comment only dropdown](gitlab-org/gitlab@b5ae5cce465f9cd653a5f240a29c997f47301ce7) by @rajanamistry ([merge request](gitlab-org/gitlab!81449))
- [Expose merge request flag as boolean in the pipeline entity](gitlab-org/gitlab@c27f9a675dc567726c49fb10fe9446f36682b071) ([merge request](gitlab-org/gitlab!81431))
- [Fix pull/push mirror authentication fields](gitlab-org/gitlab@c8ce96c6d6126ab591d0e598efb1993e39eb77dc) ([merge request](gitlab-org/gitlab!81419))
- [Allow admin to register group runners at all times](gitlab-org/gitlab@71ba4d375cfb322e968cc4ceaeaa591f50d2531d) ([merge request](gitlab-org/gitlab!81297))
- [Fix cross-database modification when resetting CI minutes](gitlab-org/gitlab@5f21e7cc3d0bfc52ff82bbce1d1f47ee0dd8a84b) ([merge request](gitlab-org/gitlab!80161))
- [Ensures audit events are visible to auditor](gitlab-org/gitlab@0afc16252ce6b95af2464e59d278db9ffcba9f1b) ([merge request](gitlab-org/gitlab!81497)) **GitLab Enterprise Edition**
- [Enable removing import data on failure by default](gitlab-org/gitlab@440e3962fd4d44097a104602d540bc54d5e02aae) ([merge request](gitlab-org/gitlab!81404))
- [Fix flash color when there is an error](gitlab-org/gitlab@cf6420d41734cee464cb0fd549169cf0a32fa682) by @ali_o_kan ([merge request](gitlab-org/gitlab!81052))
- [Allow assigning users with private profiles](gitlab-org/gitlab@f13ca808192ef98097c0fee739ad38cc555cad7d) ([merge request](gitlab-org/gitlab!81099))
- [Fix multiple modals showing when canceling note](gitlab-org/gitlab@30fb9b9699b84b57550a4758b882d65b1fd8fc0b) ([merge request](gitlab-org/gitlab!81310))
- [Allow admin to register project runners at all times](gitlab-org/gitlab@3d8c4f488b08fdab1908031b4b9546e8b67fc1f9) ([merge request](gitlab-org/gitlab!81298))
- [Block execution of cyclical pipelines](gitlab-org/gitlab@12f9e6dbc07baaa297e80b5562bc5612a0589bb4) ([merge request](gitlab-org/gitlab!81287))
- [Ensures audit events are visible to auditor](gitlab-org/gitlab@662a01dcb9d26d916b8186957e3a4c9dd8640075) ([merge request](gitlab-org/gitlab!81267)) **GitLab Enterprise Edition**
- [Truncate Jira app key to be no longer than 64](gitlab-org/gitlab@084ec2d644f453f2bae0970c9fe2d1642d0e1835) ([merge request](gitlab-org/gitlab!80922))
- [Ensure cleanup job artifacts task does not include pipeline artifacts](gitlab-org/gitlab@1a36a02ce63d4001b105705690ee8da77ee892bb) ([merge request](gitlab-org/gitlab!81022))
- [Avoid idling in transaction when fetching source for merge requests](gitlab-org/gitlab@1349b8cf09bdc0396522ff10aee04124ec86fa40) ([merge request](gitlab-org/gitlab!80876))
- [Fix response of `securityTrainingUpdate` mutation](gitlab-org/gitlab@a9fcbb72f1449357a5692b04818b8b983ce287e4) ([merge request](gitlab-org/gitlab!80731)) **GitLab Enterprise Edition**
- [Remove CachingArrayResolver from epic issues](gitlab-org/gitlab@ba02cfd09d56bdc87e42c7c6cfaa0a9ddf0a37e2) ([merge request](gitlab-org/gitlab!80635)) **GitLab Enterprise Edition**
- [Do not mirror protected tags restricted for a creation](gitlab-org/gitlab@e72300fca11097a0c244795b06e43130348eb3b7) ([merge request](gitlab-org/gitlab!80388)) **GitLab Enterprise Edition**
- [Hide white box at bottom of MR diff page](gitlab-org/gitlab@7dc62567ce0d6ec5e650e0538a39e8bde1bece27) ([merge request](gitlab-org/gitlab!81117))
- [Stop backup files from requiring directories to exist when skipped](gitlab-org/gitlab@e2541c622021b709013d915a283920ec4173691c) ([merge request](gitlab-org/gitlab!81098))
- [Fix the Content Editor strikethrough shortcut docs](gitlab-org/gitlab@bd689aafcd91ea64742b4a25d0528b8ab602397a) by @smokris ([merge request](gitlab-org/gitlab!81091))
- [Fix TypeError from Tags::Reference](gitlab-org/gitlab@9a2ee6777644e2dd5d81ea843ea46f69561b241d) ([merge request](gitlab-org/gitlab!80845))
- [Fix copy button in Enable Review App modal](gitlab-org/gitlab@11d275b36d9c7da44946365bfa51e7ebaf319640) by @aeboyaci ([merge request](gitlab-org/gitlab!80561))
- [Pass all options from member entity](gitlab-org/gitlab@d8b7136c5f930b7db6d261d462df46b48db93fdc) ([merge request](gitlab-org/gitlab!81046))
- [Automatically adapt the CSP when snowplow is enabled](gitlab-org/gitlab@7f73ea342359eb628117f332e59263bb79bc617c) ([merge request](gitlab-org/gitlab!78624))
- [Fix toolbar buttons in Markdown field](gitlab-org/gitlab@bd6522df2cb9019276204da7e6ccc1f052b2678f) ([merge request](gitlab-org/gitlab!80919))
- [Fix Replace button form path](gitlab-org/gitlab@5c6ac77fad63912a2254aba9b2c48f8aeabe5c5a) ([merge request](gitlab-org/gitlab!80953))
- [Allow project admin to read project approvals](gitlab-org/gitlab@b103c49e3c200bc9cce0615a1a55427501bd0dd7) ([merge request](gitlab-org/gitlab!80652)) **GitLab Enterprise Edition**
- [Dynamically add AWS URLs to CSP on EKS auth page](gitlab-org/gitlab@6f448c0396315ddda967ed55dd9feefd11c6011e) ([merge request](gitlab-org/gitlab!80576))
- [Do not count group bot users from shared group towards seat usage](gitlab-org/gitlab@dabae884b2f1afaa37213689568811c4bdd0d79d) ([merge request](gitlab-org/gitlab!80889)) **GitLab Enterprise Edition**
- [Make contribution graph email grouping ignore case](gitlab-org/gitlab@c524cfacbd2a3be25d303c503e34a7be4bf8a9b1) ([merge request](gitlab-org/gitlab!80701))
- [Don't return 500 error in Commits API when repository is missing](gitlab-org/gitlab@95177859a3421535adc36fa5bb190069d7fbd233) ([merge request](gitlab-org/gitlab!80410))
### Changed (194 changes)
- [Add iteration selector to board scope](gitlab-org/gitlab@ed7049fb25e7d4bebc6d74a980d2bd58255c6666) ([merge request](gitlab-org/gitlab!69052)) **GitLab Enterprise Edition**
- [Block limited broadcast address (255.255.255.255) in UrlBlocker](gitlab-org/gitlab@9ba2dfbeb1e21540e9350859eec6823e73700468) ([merge request](gitlab-org/gitlab!82571))
- [Migrate to unique indices in projects runners tokens](gitlab-org/gitlab@66c9c3b9e1f1828431119ab3f282495c058d4b1f) ([merge request](gitlab-org/gitlab!81991))
- [Track git blame clicks from code search results](gitlab-org/gitlab@cbf4c4c64a68e5e8a65e5bc4d46ae7a5bf44adf5) ([merge request](gitlab-org/gitlab!82533))
- [Split cluster creation page into two pages](gitlab-org/gitlab@d6e1b58f7547f40db9b53f1c27c7eb12d7b178e0) ([merge request](gitlab-org/gitlab!80730))
- [Prevent group owners from deleting certain project runners](gitlab-org/gitlab@4b488c3049ac9318bdf58ce424a405acc14c99b7) ([merge request](gitlab-org/gitlab!82023))
- [Remove unnecessary Edit tab in WebIDE](gitlab-org/gitlab@578ef1438606d0e3c2b8e7e288f4fea744361756) by @Bisht13 ([merge request](gitlab-org/gitlab!81366))
- [Switch AWS "easy button" icons with radio buttons](gitlab-org/gitlab@5e1115f55e58e059af361c097aaad71bbba8d953) ([merge request](gitlab-org/gitlab!82203))
- [Update error message with importing container repository](gitlab-org/gitlab@fbe5608fae60004a06e0a2855988dbe769cd3948) ([merge request](gitlab-org/gitlab!82730))
- [Update runner Pause/Resume button labels](gitlab-org/gitlab@6963d4a34f79d659b05a7235c0d655d1ae0f9a51) ([merge request](gitlab-org/gitlab!82702))
- [Update Jira integration form to have sections](gitlab-org/gitlab@fc40199266c55b6c50ba3a6af5995ad8803dca7f) ([merge request](gitlab-org/gitlab!82970))
- [Set geo_job_artifact_replication default to true](gitlab-org/gitlab@4bc1a37e76291b5b84eae9243b3ee35fe5c3e650) ([merge request](gitlab-org/gitlab!82906)) **GitLab Enterprise Edition**
- [Use checkboxes to select target roles for broadcast messages](gitlab-org/gitlab@bb22d0083401a8d3964924194b3e3b812ccc502b) ([merge request](gitlab-org/gitlab!80131))
- [Add frontend validation to avoid duplicate asset link names](gitlab-org/gitlab@965d07d9966853d3f95905af134932ba0d0b60ae) by @emanuelfarias ([merge request](gitlab-org/gitlab!81591))
- [Adding Secure Files upload limit](gitlab-org/gitlab@3710372c3530bea064640204e57fdc7562d19c65) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82858))
- [Promote exp: change_continuous_onboarding_link_urls](gitlab-org/gitlab@4c43e3cef10f11ec69962da60db3f4bfcd466605) ([merge request](gitlab-org/gitlab!80906))
- [Move two-factor authentication callout to the todo-list page](gitlab-org/gitlab@16f27135ede22584735d57fe9f1d32c6a485808d) ([merge request](gitlab-org/gitlab!82612))
- [Use new vulnerability report for pipeline security tab](gitlab-org/gitlab@b4551ff88a5eef51c653554f9c4aee621ff5ebc2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81760)) **GitLab Enterprise Edition**
- [Update job page for blocked deployments](gitlab-org/gitlab@e56c04cb5db42f4b43f716b91ff71192308f5b75) ([merge request](gitlab-org/gitlab!82456)) **GitLab Enterprise Edition**
- [Remove block_project_serialization feature flag](gitlab-org/gitlab@2912ac093f963107630ba4e7b1788d9a473bafa1) ([merge request](gitlab-org/gitlab!82866))
- [Migrate two-factor auth error message to shared HAML partial](gitlab-org/gitlab@65604eaf0ce4be6ee88316d6cd013dded62a994c) ([merge request](gitlab-org/gitlab!82753))
- [Enable the `geo_token_user_authentication` FF by default](gitlab-org/gitlab@33378ee41d6c487eb688aaf438c0e04dfd070a45) ([merge request](gitlab-org/gitlab!82835))
- [Do not ensure HEAD is default_branch on snippets](gitlab-org/gitlab@81f2238ec2d21bfa8d6e34214474d0b5f9fd2feb) ([merge request](gitlab-org/gitlab!82731))
- [Project authorization is unique per user, project](gitlab-org/gitlab@7fc54b1ca86c382662c389ddece169c7cbb0a407) ([merge request](gitlab-org/gitlab!82460))
- [Change CI lint primary button style](gitlab-org/gitlab@186169740baf93a12bf9bff4ba78496fd18adbfe) by @gtsiolis ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81611))
- [Add pipeline editor walkthrough feature permanently](gitlab-org/gitlab@4efb2b11021600a0f895c59d78f9bb0584933717) ([merge request](gitlab-org/gitlab!82682))
- [Add error when acccess denied due to credit card](gitlab-org/gitlab@f2344f3820cf62ab475598c61041d56903a7ab7e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80657)) **GitLab Enterprise Edition**
- [Turn the subscribable banner into an alert](gitlab-org/gitlab@2e1ea8ecd8963778cfe84334bca000f1ad127ac6) ([merge request](gitlab-org/gitlab!81236)) **GitLab Enterprise Edition**
- [Add configurable search rate limits](gitlab-org/gitlab@803ba15846843113f7eda03dd6d062f413074f9d) ([merge request](gitlab-org/gitlab!80631))
- [Improve email notification styling](gitlab-org/gitlab@5e88a2bcedc112c83fe6f7321f7c67fd3008432c) by @smokris ([merge request](gitlab-org/gitlab!78604))
- [Enable API kaminari count with limit](gitlab-org/gitlab@2b8dcb45a380ee40c2a3760ec89afa03c4fa8cc4) by @jaspreet-3911 ([merge request](gitlab-org/gitlab!82003))
- [Bump GITLAB_KAS_VERSION to 14.9.0](gitlab-org/gitlab@4f09d013774b45590f3dab71faba2e0fb3b79aef) ([merge request](gitlab-org/gitlab!82765))
- [Revise merge-conflict modal text](gitlab-org/gitlab@b6fa39a018486ee93bf450e21d257bba6eeba8dd) ([merge request](gitlab-org/gitlab!80666))
- [Rename remove user action](gitlab-org/gitlab@af0a2866bddb68f56ef2812ac00f87e6a296ead5) ([merge request](gitlab-org/gitlab!82109))
- [Search presenter is a noop when given empty results](gitlab-org/gitlab@2b309e390b2474358908d6799ada2fee0b5969ae) ([merge request](gitlab-org/gitlab!82619))
- [Restyle project deletion and restoration containers](gitlab-org/gitlab@05503faf43544769f53497b9e2f0effa0dfb11a6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82313)) **GitLab Enterprise Edition**
- [Remove new environments table feature flag](gitlab-org/gitlab@2a7690c59e83439f1133d7c34f63578deb5e8771) ([merge request](gitlab-org/gitlab!80948))
- [Add link to incident title](gitlab-org/gitlab@32642d5e4cbb3a564df265791e1ba7a2f7553ef3) ([merge request](gitlab-org/gitlab!82373))
- [Remove type from ruby template](gitlab-org/gitlab@5c928b128332cbd18e1e4fef3af2bf05bb374681) ([merge request](gitlab-org/gitlab!82686))
- [Enable feature flags to resume artifact removal](gitlab-org/gitlab@818e748f7e56f56cba0f13ebc8a3b8a64643af61) ([merge request](gitlab-org/gitlab!82681))
- [Validate urls before attempting to download](gitlab-org/gitlab@bf1443c0bc54a0b2fff8f8594eeb35cedb28cc7a) ([merge request](gitlab-org/gitlab!80700))
- [Parse Snowplow value as Number](gitlab-org/gitlab@da274cf499696aa40bcfec54e4f30ba5148fdf40) ([merge request](gitlab-org/gitlab!81928))
- [Remove placeholder and move error message in the form](gitlab-org/gitlab@6eb7350a58ec89904db0442ed5606a908d8471ab) ([merge request](gitlab-org/gitlab!82404))
- [Update auto-build-image to v1.9.1](gitlab-org/gitlab@b0f44e42e5b6593317cd7083619b8b4412d42e00) ([merge request](gitlab-org/gitlab!80289))
- [Remove feature flag to read finding evidence model](gitlab-org/gitlab@73b17f4fdeccefecef074d2026279d0c89e8d1bf) ([merge request](gitlab-org/gitlab!82450)) **GitLab Enterprise Edition**
- [Removed compliance_violations_graphql_type feature flag](gitlab-org/gitlab@085a7f27317fdb41eabfad27e6483388c2ddb909) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82603)) **GitLab Enterprise Edition**
- [Enable show_report_validation_warnings by default](gitlab-org/gitlab@94a9eb8f03d636b79c0629752f1ac335c1e9ba47) ([merge request](gitlab-org/gitlab!82520))
- [Use follow redirects middleware in the Container Registry clients](gitlab-org/gitlab@ffb7697483299fc496affc694e9a0884051a64f5) ([merge request](gitlab-org/gitlab!82614))
- [Use SAX parser for cobertura coverage reports](gitlab-org/gitlab@6dc4483658c6183db12877fe34ab2014b8322343) ([merge request](gitlab-org/gitlab!82610))
- [Migrate spinners in approver suggestion partial](gitlab-org/gitlab@e65ad1e60e1975cf7706d6f5477024820bd1c418) ([merge request](gitlab-org/gitlab!82503)) **GitLab Enterprise Edition**
- [Release chat notification branch filter for deployments](gitlab-org/gitlab@ad9573df04405d5577cf68dd7df52a52f34fb1ee) ([merge request](gitlab-org/gitlab!82583))
- [Add no-sort-reset prop to vulnerability list](gitlab-org/gitlab@43e72012072b081bdde47af1729c077daa6bac05) ([merge request](gitlab-org/gitlab!82588)) **GitLab Enterprise Edition**
- [Update placeholder text in import projects table](gitlab-org/gitlab@80c5f0dce139cb17347379078667849685a54096) ([merge request](gitlab-org/gitlab!82575))
- [Reduce the number of buckets in Sidekiq histograms](gitlab-org/gitlab@7c912e143b6ea039ce58ee023cc9991e8d52136b) ([merge request](gitlab-org/gitlab!82509))
- [Wrap alert in a DIV](gitlab-org/gitlab@eddeceff21fa85221d0b8b4deb3f00a582586cfe) by @gitlab-dependency-update-bot ([merge request](gitlab-org/gitlab!81282)) **GitLab Enterprise Edition**
- [Remove vulnerability_finding_replace_metadata flag](gitlab-org/gitlab@0a84a07e9c995f60cef7e6bc0e0687105dae1727) ([merge request](gitlab-org/gitlab!82440)) **GitLab Enterprise Edition**
- [Update group-level compliance framework to match project settings](gitlab-org/gitlab@7f68de064f68e9e9e0c4b7c420d8cce2ac43c1e9) ([merge request](gitlab-org/gitlab!82492)) **GitLab Enterprise Edition**
- [Merge injected KUBECONFIGs for clusters and agents](gitlab-org/gitlab@bc2b67cf6e88f6afb241dd9861c60795c38fccc5) ([merge request](gitlab-org/gitlab!82246))
- [Fallback to basic search on archived projects](gitlab-org/gitlab@5ba09f808887fc96b91d18aac18341d5353d0885) ([merge request](gitlab-org/gitlab!82517)) **GitLab Enterprise Edition**
- [Added cluster Actions menu to group and admin view](gitlab-org/gitlab@cfe32c2fe7e9c119cfc3b392adbb8778521ce57c) ([merge request](gitlab-org/gitlab!81846))
- [Remove feature flags for runner token prefix](gitlab-org/gitlab@29bbf97e2bc9b22ef35cc92fb076c14cf2f3fb57) ([merge request](gitlab-org/gitlab!81839))
- [Fix RSpec/TimecopTravel offenses (Part 2/2)](gitlab-org/gitlab@6a092c053c6195c187afe6589ea52ee6152ee2d4) by @KevSlashNull ([merge request](gitlab-org/gitlab!76034))
- [Disallow integrated error tracking by default](gitlab-org/gitlab@99ebbe65a746cf04c0eeccc7b93a815f87b4ba64) ([merge request](gitlab-org/gitlab!81767))
- [Improve and internationalize Deployment Approval error messages](gitlab-org/gitlab@3dbac553b737cee798eaec5f3394661fb7a890fa) ([merge request](gitlab-org/gitlab!82454)) **GitLab Enterprise Edition**
- [Update new issue form to match Pajamas specs](gitlab-org/gitlab@8832a74998ba32b3be15e2bef8ba4a5b157540c7) ([merge request](gitlab-org/gitlab!82425))
- [Refactor(Groups SSO): migrate to gl-tabs](gitlab-org/gitlab@bde7a342ac79b1c9d0490677cbad7996a8930f42) ([merge request](gitlab-org/gitlab!82512)) **GitLab Enterprise Edition**
- [Enable cleanup policies throttling by default](gitlab-org/gitlab@3cd38afaf2cb736d424e0dec41d481ceeb6109ee) ([merge request](gitlab-org/gitlab!80815))
- [Global Search - Support non-js searches](gitlab-org/gitlab@65317192013f24f8374e9ba06720cdad00265208) ([merge request](gitlab-org/gitlab!80964))
- [Update icon, remove text, and switch](gitlab-org/gitlab@f46ec577443c20f1267838234af83e565743cc22) ([merge request](gitlab-org/gitlab!80395))
- [Allow to hide deployment target on New Project page](gitlab-org/gitlab@31e632190cb09ca72392a731601ff20ad3714d6f) by @wwwjon ([merge request](gitlab-org/gitlab!82485))
- [Support GraphQL authentication with project tokens](gitlab-org/gitlab@16913601c1852fd09fc6bdc89cd4263fc1e6b1e8) ([merge request](gitlab-org/gitlab!82316))
- [Migrate Epic Tabs to use Button Group](gitlab-org/gitlab@5f12034bb14cdb1968c3636f4f0db4a388859e82) ([merge request](gitlab-org/gitlab!81978)) **GitLab Enterprise Edition**
- [Extend billable members count to accept requested hosted plan parameter](gitlab-org/gitlab@7703838094e42a16a950aaa3674fe31544bbd0a7) ([merge request](gitlab-org/gitlab!82049)) **GitLab Enterprise Edition**
- [Bump Auto Deploy Image verion to v2.22.0](gitlab-org/gitlab@28e8783ce990ddf443c25e8ab39c38f75a08c6d9) ([merge request](gitlab-org/gitlab!82461))
- [Consider non-default config files for Security UI](gitlab-org/gitlab@9a74d9ba9bf2a68dde0149aaa3c8c4992b409e5f) ([merge request](gitlab-org/gitlab!81027))
- [Migrate loading spinners](gitlab-org/gitlab@0e22efabb4ca4ffa3077130c9d0fb4ccc310eefd) ([merge request](gitlab-org/gitlab!82236))
- [Update project compliance frameworks settings](gitlab-org/gitlab@c1aec2f8a65f1d012cfc2e9aae429eab38d4c3a1) ([merge request](gitlab-org/gitlab!81889)) **GitLab Enterprise Edition**
- [Issue 349398 - Update search field in Global Search](gitlab-org/gitlab@c7720cb353ff473821a5cf17500fe7bc72531822) ([merge request](gitlab-org/gitlab!80916))
- [Header Search Refactor - Handle Errors in the component](gitlab-org/gitlab@f0d356994a99ad4bb6ad938bcb085fd17be7b714) ([merge request](gitlab-org/gitlab!80746))
- [Migrate spinners in archived projects partial](gitlab-org/gitlab@223b665a5985429409fa2d229ca925eeb65b3167) ([merge request](gitlab-org/gitlab!82385))
- [Migrate spinners in user's overview](gitlab-org/gitlab@9a365876efc4bd00e195833667c3736249cdf6ab) ([merge request](gitlab-org/gitlab!82379))
- [Migrate spinners in explore groups partial](gitlab-org/gitlab@b3e58fccee2018a3326c3ea4e16ea8bd0eb1fa47) ([merge request](gitlab-org/gitlab!82377))
- [Creates audit event when approval rule is deleted](gitlab-org/gitlab@1f1d3801c8648ba4e5491364bcb9f924a05dc155) ([merge request](gitlab-org/gitlab!82297)) **GitLab Enterprise Edition**
- [Creates audit event on approval rule creation](gitlab-org/gitlab@adcddf4419f946b1f31449300149f919508efd2a) ([merge request](gitlab-org/gitlab!81973)) **GitLab Enterprise Edition**
- [Update Auto DevOps docker versions to 20.x](gitlab-org/gitlab@f71efa773512bda0430400817ff0f22fd906a156) ([merge request](gitlab-org/gitlab!82353))
- [Remove constraints from sprints table](gitlab-org/gitlab@444a02c30a39a844e40bcc0ab9b00fde2c835013) ([merge request](gitlab-org/gitlab!82169))
- [Move Geo repository updated event creation into a worker](gitlab-org/gitlab@d12d94cc3e35d6e0593e5639d2628a6f1d8b4f5d) ([merge request](gitlab-org/gitlab!80971)) **GitLab Enterprise Edition**
- [Migrate loading icon to be Pajamas compliant](gitlab-org/gitlab@9b70879b5dd948fdcacddb91a720658995cab83c) ([merge request](gitlab-org/gitlab!81985))
- [Migrate loading spinners](gitlab-org/gitlab@0382386fc0c5eb3f67bcd4ffc3c21ca85a5cb6b3) ([merge request](gitlab-org/gitlab!82334))
- [Move default branch protection to repository settings](gitlab-org/gitlab@1a8206261fbda415a12792893cf6e6277fd84bae) ([merge request](gitlab-org/gitlab!81012))
- [Migrate loading spinners](gitlab-org/gitlab@dc0024941f8766631a88768c206ccc19c51658d7) ([merge request](gitlab-org/gitlab!82324))
- [Update registration enabled callout](gitlab-org/gitlab@bb5253b2516dc17578d9bb05cf5e04d44028a547) ([merge request](gitlab-org/gitlab!80972))
- [Migrate loading spinners](gitlab-org/gitlab@a14c08ae439075b20874fdaa874812bfda4f2198) ([merge request](gitlab-org/gitlab!82238))
- [Iteration search uses cadence and iteration titles](gitlab-org/gitlab@2ef936654487e08fe3944bb5548302e3867253d5) ([merge request](gitlab-org/gitlab!81615)) **GitLab Enterprise Edition**
- [Display license ID retrieved from CustomersDot](gitlab-org/gitlab@6d9df1c3c44ca74bd8e4d23a7ed48f34dd898da0) ([merge request](gitlab-org/gitlab!82112)) **GitLab Enterprise Edition**
- [Re-introduce role-targeted broadcast messages](gitlab-org/gitlab@c7a8a89c7513b0951f6b0994fe7505b3a9100810) ([merge request](gitlab-org/gitlab!81232))
- [Use GlAvatar in security dashboard](gitlab-org/gitlab@c5ac6e5ea076ab5451c6a62cf9a3cc30fc0c665e) ([merge request](gitlab-org/gitlab!82172)) **GitLab Enterprise Edition**
- [Remove personal_project_owner_with_owner_access feature flag](gitlab-org/gitlab@ad3f27b2a70e29c026d5a92e834ec72462a1182a) ([merge request](gitlab-org/gitlab!82088))
- [Use the environment tier for jira connect deployment environment type](gitlab-org/gitlab@87a9dfa80b339fa71db4838fc76696b420c4dbff) by @alanandrade ([merge request](gitlab-org/gitlab!80539))
- [Add unique index for security training providers](gitlab-org/gitlab@8cfba7dbb1a7203de0b4998b14976e67e7753e75) ([merge request](gitlab-org/gitlab!82235))
- [Allow tags as target of pipeline scheduled](gitlab-org/gitlab@f6e9762d39ab883f33853a107057b5ed370e630b) by @KevSlashNull ([merge request](gitlab-org/gitlab!81476))
- [Migrate group/project member spinners](gitlab-org/gitlab@bfa13484ec47ece14aff14f0e3fba4b7c5f478a0) ([merge request](gitlab-org/gitlab!82225))
- [Migrate legacy spinner](gitlab-org/gitlab@02e6cb553e7338ca40d5e05f3c49593a201e5d4e) ([merge request](gitlab-org/gitlab!81840))
- [Disable multi-project viz for free users](gitlab-org/gitlab@d362c451cfeeca06ec04ba6f5d8c731a9a391f89) ([merge request](gitlab-org/gitlab!79889))
- [Update Import object persistence approach](gitlab-org/gitlab@489555c94e0e24467e12b5a2ef5b9375800d2e78) ([merge request](gitlab-org/gitlab!79963))
- [Correct text of Banner message label](gitlab-org/gitlab@24ed46db54b5196442e3742f91485d0ebc3c8437) ([merge request](gitlab-org/gitlab!81221)) **GitLab Enterprise Edition**
- [Remove non-human created tokens from PAT list](gitlab-org/gitlab@7b893669b389b340759877d11c329dbff305759c) ([merge request](gitlab-org/gitlab!80716)) **GitLab Enterprise Edition**
- [Remove non-human created tokens from PAT list](gitlab-org/gitlab@34ded80954ee5e3c966c6602bb24b6feb00d0555) ([merge request](gitlab-org/gitlab!80716)) **GitLab Enterprise Edition**
- [Update maximum allowable lifetime message for PAT](gitlab-org/gitlab@5c71c8adc2c36c47fbc4303e9a89d95c27a85807) ([merge request](gitlab-org/gitlab!81949)) **GitLab Enterprise Edition**
- [Disable the PA commit button when there are no changes](gitlab-org/gitlab@632aefed5070daeb034e127c2df5edf27d59e633) ([merge request](gitlab-org/gitlab!81531))
- [Add the "Support Ukraine" tanuki](gitlab-org/gitlab@72585cf30f5ef613bb3056e93e12985a69f82e3b) ([merge request](gitlab-org/gitlab!82050))
- [Link new issue to original via checkbox](gitlab-org/gitlab@4c30e09e1b3b8b84bce36770ce59a351bd87fedb) by @smokris ([merge request](gitlab-org/gitlab!80556))
- [Migrate gfm loading spinner](gitlab-org/gitlab@f79d23fc39b1e83211ae426d28c10ac40dc5b743) ([merge request](gitlab-org/gitlab!82111))
- [Use report-declared version of the schema](gitlab-org/gitlab@0ecb51dee1eae742f8c0e294f1ef68468fb37324) ([merge request](gitlab-org/gitlab!81907)) **GitLab Enterprise Edition**
- [Migrate MAINTAINER access memberships to OWNER](gitlab-org/gitlab@0ff770b001fe3c6f3766a8fd32bbdcac17c70439) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80146))
- [Surface validation errors as warnings](gitlab-org/gitlab@855c036adebba757cdbc928259288d6b66521867) ([merge request](gitlab-org/gitlab!80930)) **GitLab Enterprise Edition**
- [Migrate loading icon](gitlab-org/gitlab@a66ddd653a41b6e549a590218d004b7f1399e744) ([merge request](gitlab-org/gitlab!82042))
- [Geo secondary proxying: serve assets locally](gitlab-org/gitlab@c350122401906ee1c74066b96f71b721b72dd222) ([merge request](gitlab-org/gitlab!79761)) **GitLab Enterprise Edition**
- [Replace n/a with a hyphen in the runners table](gitlab-org/gitlab@69ac20935dd4ed56e8b9a5fedd56f2d013bf7fa7) ([merge request](gitlab-org/gitlab!81904))
- [Update Secret Detection template](gitlab-org/gitlab@ef2904cd4e61c386fc6c8a040e6a806e23c7a9f8) ([merge request](gitlab-org/gitlab!80326))
- [Add alert and disable active checkbox](gitlab-org/gitlab@fd5388c670b38f483d9458cf9a9300b60f6c072a) ([merge request](gitlab-org/gitlab!81896))
- [Improve UI text of sign-in restrictions](gitlab-org/gitlab@9a1f8721ed0b8c87258194323d5d4b443b0e92f2) ([merge request](gitlab-org/gitlab!81776))
- [Put deprecated serverless features behind feature flag](gitlab-org/gitlab@ef88f5c53871d6c7ad795887751381f0276de1ea) ([merge request](gitlab-org/gitlab!81493))
- [Add BlocksUnsafeSerialization to Project](gitlab-org/gitlab@9b3f3d30f385f6fe1c972a5b91b8d6bda9dc7426) ([merge request](gitlab-org/gitlab!81900))
- [Add default_branch to KAS responses](gitlab-org/gitlab@73788fa265be7c6bcc2852e64ee07f4e7f3b06af) ([merge request](gitlab-org/gitlab!81950))
- [Use GlButtonGroup instead of GlSegmentedControl](gitlab-org/gitlab@4f5a1079ea2b6c96c5d62dd3a8b7323e927b103a) ([merge request](gitlab-org/gitlab!81278)) **GitLab Enterprise Edition**
- [Change loading state jobs tab](gitlab-org/gitlab@a1dcec6771d3d65c477b94e7fa8d9425e40db8c7) ([merge request](gitlab-org/gitlab!81568))
- [Increase pipeline editor debounce to 500ms](gitlab-org/gitlab@c6de5d893856852b8ea23c38199eb6e63c42a3e1) ([merge request](gitlab-org/gitlab!81534))
- [Set danger variant and label to delete WA Device](gitlab-org/gitlab@5a2e927aed0c8ad2d30d1b02fee19dceec5dd850) ([merge request](gitlab-org/gitlab!81868))
- [Set danger variant and label to destroy oauth app](gitlab-org/gitlab@45ced1f5836302b14801af57624058ed71c241d0) ([merge request](gitlab-org/gitlab!81854))
- [Set variants and labels to abuse report buttons](gitlab-org/gitlab@fce6201af9a961ecafa023b07b21665bfbde3228) ([merge request](gitlab-org/gitlab!81871))
- [Set danger variant to delete artifact button](gitlab-org/gitlab@94a283f6447149ed9bae4c81f7d21966f86959c5) ([merge request](gitlab-org/gitlab!81877))
- [Set danger variant & labels for appearance buttons](gitlab-org/gitlab@8c3b077aee8e6f1270a07f8f721d44b3dde21cf8) ([merge request](gitlab-org/gitlab!81878))
- [Improve Sourcegraph settings text](gitlab-org/gitlab@da795bdf58234910ce2c3a1339cf1dfe863292d6) ([merge request](gitlab-org/gitlab!81223))
- [Remove pipeline editor button from blob view](gitlab-org/gitlab@932a7de395f0ed97d2e9545677e591040aad99a4) ([merge request](gitlab-org/gitlab!81903))
- [Refine copy for Jira integration](gitlab-org/gitlab@c9e336f4811de2e32ca79f3bf2ada1996a1fb259) ([merge request](gitlab-org/gitlab!81819))
- [Project quality summary: add test runs empty state](gitlab-org/gitlab@bbe504d8f0b499f1b21e22ed60e112078141465f) ([merge request](gitlab-org/gitlab!78498))
- [Backfill `member_namespace_id` for `GroupMember`](gitlab-org/gitlab@019e70a88d1abddc2b590eb6ba7e9cb0b95c1370) ([merge request](gitlab-org/gitlab!78715))
- [Merge branch 'user-validation-failed-message' into 'master'](gitlab-org/gitlab@6d582ea07e7b560945f4d89b56802f62920d5657) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80304))
- [Improve user validation failed message](gitlab-org/gitlab@8a37bdae51be4f7c283bf37e2d984f948e020c3c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/80304))
- [Remove releases with NULL tags and add not-NULL constraint](gitlab-org/gitlab@9896cafbbcbb9ca8dc8febe96d1ad14d636d1279) ([merge request](gitlab-org/gitlab!80664))
- [Replace success with confim variant](gitlab-org/gitlab@3f0c7a8e2a5f7c1580cbbcb34e7deb274572fdab) ([merge request](gitlab-org/gitlab!81837))
- [Suggest backend reviewer for erb and haml files](gitlab-org/gitlab@0ef97f29b696626cdd380e56f67a52d35878c9e3) ([merge request](gitlab-org/gitlab!81542))
- [Add Gitlab.revision to Gitlab::JsonCache cache_key by default](gitlab-org/gitlab@5cd29114c5846471e053577198cb9ad5942a3e1a) ([merge request](gitlab-org/gitlab!81413))
- [Replace window.confirm with GlModa in environment actions](gitlab-org/gitlab@94ec1ed345e5db641956a33b2cc97bb618f38203) ([merge request](gitlab-org/gitlab!80425))
- [Use instrumentation classes for Service Ping generation](gitlab-org/gitlab@22174f888e7cc8853bf698d413a9585b81d151ad) ([merge request](gitlab-org/gitlab!81520))
- [Remove null constraint from security_scan_succeeded column](gitlab-org/gitlab@cc442d0ddbb132fe2b7ac52105ac7e54379b9bd0) by @svdj ([merge request](gitlab-org/gitlab!81322))
- [Improve the labels on Kubernetes Agent UI](gitlab-org/gitlab@7a78b512e7f825dd31cef0e429669c93e7fb4584) ([merge request](gitlab-org/gitlab!81606))
- [Expose created_at when serializing Deployment Approvals](gitlab-org/gitlab@428038a04d30bf048b10de1a2acae4e913a1069a) ([merge request](gitlab-org/gitlab!81487)) **GitLab Enterprise Edition**
- [Split rebase action buttons into two separate buttons](gitlab-org/gitlab@696f7462255c2604f97a46ab6472b895aadd4465) by @KevSlashNull ([merge request](gitlab-org/gitlab!81335))
- [Reword 'build' to 'pipeline' in todos](gitlab-org/gitlab@fee372c20e83539ae5e9b41ce03181eb87a9fc9f) by @KevSlashNull ([merge request](gitlab-org/gitlab!75901))
- [Update pipeline labels](gitlab-org/gitlab@ad48c74a8b0542b0db3f74aeff1eb32c9e48df89) ([merge request](gitlab-org/gitlab!81032))
- [Re-position the erase log button](gitlab-org/gitlab@54003d98518906d74c9b0f3484f695a631a78f19) ([merge request](gitlab-org/gitlab!81049))
- [Adjust incident list column widths and truncation ](gitlab-org/gitlab@b1b639c986813bfe9ee8e819156671c1a1ab6fdf) ([merge request](gitlab-org/gitlab!80645))
- [Replace the gitlab import haml modal with a GlModal](gitlab-org/gitlab@42bcf23bdcc38cfbc14ae1296aff949721df6689) ([merge request](gitlab-org/gitlab!80863))
- [Adds a notification for a future dated license](gitlab-org/gitlab@7fa25e26d01c92b7af3c731e4d494dc80ee4d2ab) ([merge request](gitlab-org/gitlab!77304)) **GitLab Enterprise Edition**
- [Use strong params for ProjectsController by default](gitlab-org/gitlab@8dc1b646fe9da7a95f74cfb2d9d51b72bdbed619) ([merge request](gitlab-org/gitlab!81392))
- [Update iteration lists](gitlab-org/gitlab@d72a96bf2bb35dd8a80bc674f1770500bcc84c20) ([merge request](gitlab-org/gitlab!78039)) **GitLab Enterprise Edition**
- [Improve accessibility on empty project page](gitlab-org/gitlab@747130b16d92231a506c86b1b7d46eac7f5dafa1) ([merge request](gitlab-org/gitlab!81265))
- [Use GlAvatar in operations dashboard](gitlab-org/gitlab@22b275427d636ae0b5ff3333ec5a660e62e02454) ([merge request](gitlab-org/gitlab!81233)) **GitLab Enterprise Edition**
- [Update trial status reminder design](gitlab-org/gitlab@2ef8e7b8049bf059241280b3906814a56120acd8) ([merge request](gitlab-org/gitlab!80611)) **GitLab Enterprise Edition**
- [Hide issue header dropdown button if there are no actions](gitlab-org/gitlab@e09446bbd1179cf7b9ad6d316d065e23a4bc2c77) by @KevSlashNull ([merge request](gitlab-org/gitlab!76055))
- [Use groups API for Approvals form by default](gitlab-org/gitlab@1722e7adc88ff3abe51fcf287f91dc293aa2dcd3) ([merge request](gitlab-org/gitlab!80933)) **GitLab Enterprise Edition**
- [Remove the VSA duration chart stage dropdown](gitlab-org/gitlab@a5a58e7e7aeb329ed261897c999817cc77b47816) ([merge request](gitlab-org/gitlab!80365)) **GitLab Enterprise Edition**
- [Introduce new jobs tab](gitlab-org/gitlab@573741bcde8a1e62231c820f8fe992f5ca01363a) ([merge request](gitlab-org/gitlab!79631))
- [Rate limit epic create service](gitlab-org/gitlab@de97dfabebb77f1cbcccc28f2217e92a9e8fbe55) ([merge request](gitlab-org/gitlab!80909)) **GitLab Enterprise Edition**
- [Use sentence case for trigger events](gitlab-org/gitlab@73c8339829e3004dcd7e951ebdf7f8e188a2002f) ([merge request](gitlab-org/gitlab!80899))
- [Remove GlAlert contained prop](gitlab-org/gitlab@4d4ae050480e41cc796908879c08bd02f53e8c7b) ([merge request](gitlab-org/gitlab!81167)) **GitLab Enterprise Edition**
- [Switched title to h1 on issues](gitlab-org/gitlab@62fe29f4c160b8b439503b1acc26fe44a2e17ad4) ([merge request](gitlab-org/gitlab!75248))
- [Improve Amazon EKS settings text](gitlab-org/gitlab@111b8f2c031b6bebd348682641112b02698960b3) ([merge request](gitlab-org/gitlab!81114))
- [Stop using type, and use type_new instead](gitlab-org/gitlab@3e6da3aaa23204f45b35b3698d07b984b9ed76ce) ([merge request](gitlab-org/gitlab!80065))
- [Drop show_diff_preview_in_email column](gitlab-org/gitlab@8395ee778260fa68fd4e6f956b4bcb3e9e064d55) ([merge request](gitlab-org/gitlab!81200))
- [Add aria-label and tooltip to the emoji picker](gitlab-org/gitlab@a59272bceca5f866fbb43dd02da1daa01b8c7d42) ([merge request](gitlab-org/gitlab!68297))
- [Update cleanup policy parameters](gitlab-org/gitlab@40398dffd2b17b93f8dca1807de08e12b9049f51) ([merge request](gitlab-org/gitlab!80809))
- [Increase text limit of maintainer_note field](gitlab-org/gitlab@9e754ee50718ccc95f4e28ec1f8509a20088e27e) ([merge request](gitlab-org/gitlab!81137))
- [Clear future subscriptions info on license destroy](gitlab-org/gitlab@80b5526d8fb38198773f41e9afc7d1f6b5714822) ([merge request](gitlab-org/gitlab!80330)) **GitLab Enterprise Edition**
- [Change button variant to confirm in Web IDE modals](gitlab-org/gitlab@b4603317985e5ec556bbd92f66f1f47f3418e0ee) ([merge request](gitlab-org/gitlab!80780))
- [Allow only topic names that are case insensitive unique](gitlab-org/gitlab@c98cb46f3378ebf7405a3e99f434ed8fb0fba271) by @wwwjon ([merge request](gitlab-org/gitlab!79826))
- [Return project delete errors](gitlab-org/gitlab@72d3dcf6c382c060ec0ac0cf376ff05eda8d355c) ([merge request](gitlab-org/gitlab!78500))
- [Replace GlSegmentedControl with GlDropdown](gitlab-org/gitlab@6d20f713f7a37fddc869b486ca0e543f71470441) ([merge request](gitlab-org/gitlab!81113))
- [Change the order column of topics to non_private_projects_count](gitlab-org/gitlab@99f6dfc88b70a531b695d9d54df2c6bb28ac293e) by @wwwjon ([merge request](gitlab-org/gitlab!80478))
- [Removed rate_limited_service_issues_create flag](gitlab-org/gitlab@e2e94cce73d89d27f11403eaa5bdce6f90ed59a4) ([merge request](gitlab-org/gitlab!80990))
- [Migrate create protected branch form to GlToggle](gitlab-org/gitlab@66ed251bb9dbe7defbec50f600a82855b084b6b1) ([merge request](gitlab-org/gitlab!80548))
- [Deprecate test reports relationship with requirements](gitlab-org/gitlab@bd97abee754fb3acd64a18845d77332df9c31ab7) ([merge request](gitlab-org/gitlab!78120)) **GitLab Enterprise Edition**
- [Update registry regex to allow 4 levels](gitlab-org/gitlab@410c970974170522ba87fc5b0cd52f00ce72863c) ([merge request](gitlab-org/gitlab!80929))
- [Validate NOT NULL on security_findings.uuid column](gitlab-org/gitlab@e0e968681363a80e1e17146aa6f073643d72eafc) ([merge request](gitlab-org/gitlab!80912))
- [Migrate edit protected branch form to GlToggle](gitlab-org/gitlab@1648af2459591cb3f86b4a2862feb4b94bc70b3c) ([merge request](gitlab-org/gitlab!80549))
- [Clean up feature flag publish_project_deleted_event to enable by default](gitlab-org/gitlab@4d49dff5001aa842e250bb42aa55dfd16154e63b) ([merge request](gitlab-org/gitlab!80875))
- [Default to delayed deletion for projects not in personal namespace](gitlab-org/gitlab@b420e180be529965e6e6111aa06be187d46d4cec) ([merge request](gitlab-org/gitlab!80139))
- [Enable scan_result_policy by default](gitlab-org/gitlab@d39e2c8a0756d2fc520e668137267aa021bde65e) ([merge request](gitlab-org/gitlab!80831)) **GitLab Enterprise Edition**
- [Append URL issue description to template](gitlab-org/gitlab@3a6ed05de16d6e5e0d705973785db400750dbd4e) by @smokris ([merge request](gitlab-org/gitlab!80554))
- [Remove fork_project_form feature flag](gitlab-org/gitlab@9e2d32da4ae18da3b441583c0b36e04726e536ae) ([merge request](gitlab-org/gitlab!77181))
- [Add SUPPORTED_VERSIONS and DEPRECATED_VERSIONS to SchemaValidator](gitlab-org/gitlab@d79f6b5bfbdac89e4d375e8fe5f76d22f39513c3) ([merge request](gitlab-org/gitlab!80498))
- [Update documentation for Usage quota](gitlab-org/gitlab@e039019fc82f899cb950dc7d12d398f17adceb93) ([merge request](gitlab-org/gitlab!80182))
### Deprecated (3 changes)
- [Deprecate VALIDATE_SCHEMA configuration variable](gitlab-org/gitlab@959c1422f429f8e7411a89eaff9119ffdd3b7159) ([merge request](gitlab-org/gitlab!82449))
- [Add deprecation notice to NetworkPolicyConnection](gitlab-org/gitlab@8337c8bb4da57a543c9a1312e4e7d953d870dfbb) ([merge request](gitlab-org/gitlab!82441)) **GitLab Enterprise Edition**
- [feat: Update SECURE_ANALYZER_PREFIX in all Sec Section templates](gitlab-org/gitlab@382bd94d9ef13b07603f29ce39b54b4699cf8f77) ([merge request](gitlab-org/gitlab!80342))
### Removed (10 changes)
- [Clean up import and other invite members modal rollout pieces](gitlab-org/gitlab@20f015094137ad2703d5116afbd55e7bf3cbb500) ([merge request](gitlab-org/gitlab!82821))
- [Untrack external_pull_requests row deletions](gitlab-org/gitlab@75ac2ecd0935b2969650bbff52c7fbc8eb343364) ([merge request](gitlab-org/gitlab!82476))
- [Remove support for unsafe regular expressions](gitlab-org/gitlab@4c75b10e3c9c7a0740d99dae0d4fea20bf48868e) ([merge request](gitlab-org/gitlab!79611))
- [Drop unused partitioned_foreign_keys table](gitlab-org/gitlab@42913c5ab28e980c244bbd42bfba4dd34bb4c2b1) ([merge request](gitlab-org/gitlab!82215))
- [Cleanup Code Quality Walkthrough experiment](gitlab-org/gitlab@2333b6ecc57cbdd95e69a7c30b254e7ba3ac44c0) ([merge request](gitlab-org/gitlab!82106))
- [Cleanup Ci Runner Templates experiment](gitlab-org/gitlab@6634d3a35dfd7bd3d5220de859f50b06e5a99f19) ([merge request](gitlab-org/gitlab!81168))
- [Remove :cluster_vulnerabilities feature flag](gitlab-org/gitlab@e7b5b39bbb1ebfe8012de88222c88b1fef4aa00a) ([merge request](gitlab-org/gitlab!81462)) **GitLab Enterprise Edition**
- [Clean up forcibly_show_trial_status_popover experiment](gitlab-org/gitlab@1b93b0c39b65422c07807b4f849778cbd0834efb) ([merge request](gitlab-org/gitlab!80413))
- [Remove `security_report_ingestion_framework` feature flag](gitlab-org/gitlab@db93cc96fe2ef4478531f7f27b212500b0b98df1) ([merge request](gitlab-org/gitlab!81021)) **GitLab Enterprise Edition**
- [Remove cache_shared_runners_enabled FF](gitlab-org/gitlab@ed2cd31564381453db86800027e5ff823fd53602) ([merge request](gitlab-org/gitlab!81143))
### Security (16 changes)
- [Set nosniff header on assets requests](gitlab-org/gitlab@72b2cb327beba926ad3a62af525521820d79f7a7) ([merge request](gitlab-org/gitlab!82563))
- [Default enable header_read_timeout_buffered_io](gitlab-org/gitlab@4dde99e1d90e7cb115d113a6cc132d11b7b65488) ([merge request](gitlab-org/gitlab!81910))
- [Escape branch names in push instructions](gitlab-org/gitlab@e1f3fd2be8b76cdd45e6f44615f5eed185a0844b) ([merge request](gitlab-org/gitlab!82448))
- [Create Error.rb, update ProcessPolicyService](gitlab-org/gitlab@e2250af72ad76e736d3adc5977a97af346570094) by @FacVain ([merge request](gitlab-org/gitlab!79667)) **GitLab Enterprise Edition**
- [Add Integration.encrypted_properties](gitlab-org/gitlab@0ee6c61d8051661ffbc789f1af81a5c63c412fed) ([merge request](gitlab-org/gitlab!80219))
- [Warn when snippet contains unretrievable files](gitlab-org/gitlab@f9dc8a613d6fe05c55f9384141597a2664210c24)
- [Change runners_token prefix for Group and Project](gitlab-org/gitlab@08873630734bdd1efbcf7eb9b0e334c7b3babcb0)
- [Add runners_token prefix to Group and Project](gitlab-org/gitlab@518468d38df9bf0d62ede1f70f383d495ed333a0)
- [Only expose `id` and `name` attributes when serializing deploy token](gitlab-org/gitlab@b893d583b15e68ed8065148773165d79c5fce7ec) ([merge request](gitlab-org/gitlab!81587))
- [Prevent DOS when rendering math markdown](gitlab-org/gitlab@40b1b67a4c437304ab4646207cb5bbb420ce9ec8)
- [Limit commands_changes to certain keys](gitlab-org/gitlab@ae5a7735ffebfeed8d99e266a41a196eca0d60c2)
- [Reset password field on page load](gitlab-org/gitlab@76b35cdba11c280a29f89af3dfbb395a9af44f99)
- [Check permission when creating members through service](gitlab-org/gitlab@2063a3b626e9927380633603719a3c6bbe9dc447)
- [Check for unsafe characters in email addresses before sending](gitlab-org/gitlab@97f804b394ee1e2b36972b12240d27c7ad1bc671)
- [Anonymous user can enumerate all users through GraphQL endpoint](gitlab-org/gitlab@8e550ad519d1c74f82b8e3f900a212ffb495e626)
- [Exif metadata not stripped when uploading image attachments via Emails](gitlab-org/gitlab@5dd9cc8fe85e0435db0891e22b22dc58ebb824d7) ([merge request](gitlab-org/gitlab!80735))
### Performance (10 changes)
- [Improve performance of group releases endpoints](gitlab-org/gitlab@c259d6af344b1016cb332f1683d24fcba4353125) ([merge request](gitlab-org/gitlab!80093))
- [Load highlight.js languages asynchronously](gitlab-org/gitlab@6b881013f3b8152d2a10138118eef91f6d872595) ([merge request](gitlab-org/gitlab!82638))
- [Add index on releases table to resolve cicd settings page timeout](gitlab-org/gitlab@74e0a1394f144ed0e4cf2c2000574ee8a0f3cfc9) ([merge request](gitlab-org/gitlab!82506))
- [Fix slow query for "All" tabs in "Your projects" activity page](gitlab-org/gitlab@c12eb806b05da2abfd282e3c9fd5bf7058b4e7cf) ([merge request](gitlab-org/gitlab!82296))
- [Drop old index for security ci builds on name and id parser](gitlab-org/gitlab@7e03d6ad1bbbcc861f8e5e4a6ec815db7c1c5c3f) ([merge request](gitlab-org/gitlab!82354))
- [Create new index for security ci builds with new features](gitlab-org/gitlab@fdd7c1db3d5b1086a72e29b0f5bd1b202d121637) ([merge request](gitlab-org/gitlab!82047))
- [Recreate index for security builds to include fuzzing jobs](gitlab-org/gitlab@c49556695136d525f05bc4eef0c9af1146d9d958) ([merge request](gitlab-org/gitlab!81586))
- [Schedule async weekend build of index for job traces](gitlab-org/gitlab@1487cf22f9cc62cd872b4f34584fe5feba6daca3) ([merge request](gitlab-org/gitlab!81341))
- [Decrease the default fast statement timeout](gitlab-org/gitlab@f4590fd25760f9a2faa3f83b8d8364b85404a1a3) ([merge request](gitlab-org/gitlab!81270))
- [GlTableLite in favor of GlTable for runners list](gitlab-org/gitlab@eff40efc7d434ae03a57b348a8cd8b4d78591750) ([merge request](gitlab-org/gitlab!80928))
### Other (82 changes)
- [Adjust NullifyOrphanRunnerIdOnCiBuilds batch parameters](gitlab-org/gitlab@4c0efcd32868b6bdb156f3d692a3ed9bf2388a72) ([merge request](gitlab-org/gitlab!83094))
- [Remove duplicate releases from projects](gitlab-org/gitlab@81a5a6f417922316a4a9d45fe8f6d22b34be3ae3) ([merge request](gitlab-org/gitlab!82335))
- [Pass formats explicitly when rendering .html format](gitlab-org/gitlab@0481fdffaa0f0b591f4c4513976ab9b5350e7e92) by @edith007 ([merge request](gitlab-org/gitlab!75784))
- [Complete environments `GET` API docs](gitlab-org/gitlab@dd75643207db136116dce6d969710e4f6adf95cc) by @tuxtimo ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82980))
- [Add statistics seats card](gitlab-org/gitlab@b7e33581018e9ffa955a250a77a9d43394c1b069) ([merge request](gitlab-org/gitlab!80260)) **GitLab Enterprise Edition**
- [Remove `maxlength` limit from the project description textarea](gitlab-org/gitlab@8089d69fd4dcab624b39e5c05b35de37c0834f62) ([merge request](gitlab-org/gitlab!82812))
- [Add support for relating epics](gitlab-org/gitlab@0a36bbc54b9db652e4f9a3d2b6d770936371f6b8) ([merge request](gitlab-org/gitlab!82128)) **GitLab Enterprise Edition**
- [Revert changes about moving methods to base class](gitlab-org/gitlab@88ad6814dfd0c17c1ea78609de30fd6897957e9a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82849)) **GitLab Enterprise Edition**
- [Add list related epic links API documentation](gitlab-org/gitlab@709930602b75acce740056bfefb806ce2ad4e208) ([merge request](gitlab-org/gitlab!82628))
- [Remove restrict_special_characters_in_project_path feature flag](gitlab-org/gitlab@9aa12e3b7d5e485fd94fcec3b06cbb4906b52480) ([merge request](gitlab-org/gitlab!82807))
- [Update import manifest alert](gitlab-org/gitlab@a15c7181b47acdc661a29e34690d9908ba2ae440) ([merge request](gitlab-org/gitlab!82761))
- [Update gcp signup offer to alert partial](gitlab-org/gitlab@f05cb91d5142b1d699e8e0f9bb5876fb8e61100e) ([merge request](gitlab-org/gitlab!82759))
- [Update runner edit alert to use partial](gitlab-org/gitlab@b661d85b502b634f331d9175b2b5d40737abe90d) ([merge request](gitlab-org/gitlab!82758))
- [Fix GraphQL/FieldMethod offense (Part 1/2)](gitlab-org/gitlab@ff8b0e5be942f5b8d1de67e19ac28d2180d10c3e) by @KevSlashNull ([merge request](gitlab-org/gitlab!76020))
- [Remove dependency list usage data from Redis](gitlab-org/gitlab@91b4a64615b667331cc1ee8407e623c2e520103e) ([merge request](gitlab-org/gitlab!82604)) **GitLab Enterprise Edition**
- [Remove corpus management feature flags](gitlab-org/gitlab@b504880a7f839d48025938fe632269a1be926cc8) ([merge request](gitlab-org/gitlab!82463)) **GitLab Enterprise Edition**
- [Fix artifacts with wrong expire_at date](gitlab-org/gitlab@bbc5329a58bd25c629ac9f318b92e3b37c16db08) ([merge request](gitlab-org/gitlab!82084))
- [Update data in batches while deleting a user](gitlab-org/gitlab@049a428c8e008f822d79011cbd978456a40a9751) ([merge request](gitlab-org/gitlab!81429)) **GitLab Enterprise Edition**
- [Document performance implication of the feature flags](gitlab-org/gitlab@bfce1da9a755c3a62844cc62022a27d65be23464) ([merge request](gitlab-org/gitlab!81880))
- [Remove real-time feature flags](gitlab-org/gitlab@ea7853ac062b234a13444b0a92da773ce1b2f0b4) ([merge request](gitlab-org/gitlab!82378))
- [Move reactive cache methods to base class](gitlab-org/gitlab@0e91a796b8ca11be25284a12cfceb8f19ade63e9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/82442)) **GitLab Enterprise Edition**
- [This enables the pipeline_schedules_with_tags feature flag](gitlab-org/gitlab@ed19925c1b86a58044047fe721e7aedd5ec95171) ([merge request](gitlab-org/gitlab!82428))
- [Remove the invite members modal feature flag](gitlab-org/gitlab@f953bfffaa7c46aa0cb0d3d7ed1b63df0f2e7be3) ([merge request](gitlab-org/gitlab!81940)) **GitLab Enterprise Edition**
- [Remove feature flag `project_owners_list_project_pending_deletion`](gitlab-org/gitlab@323e070bb6208855509c87f5c894c5e105b0141b) ([merge request](gitlab-org/gitlab!82372)) **GitLab Enterprise Edition**
- [Update Web IDE copy](gitlab-org/gitlab@0b8d1bae9702cc0be39ccb4715f31c5c0585a050) ([merge request](gitlab-org/gitlab!82256))
- [Add dispensable_render methods](gitlab-org/gitlab@1780145c511648bd7811e0f617a14d98f1e37be9) ([merge request](gitlab-org/gitlab!81546))
- [Remove ci_pipeline_merge_request_presence_check feature flag](gitlab-org/gitlab@3b06ee0014336480b7c180a1821b2b964db9250b) ([merge request](gitlab-org/gitlab!82107))
- [Remove default_merge_ref_for_diffs feature fflag](gitlab-org/gitlab@2608f81c4d52d751c4390b33fd7042292d622765) ([merge request](gitlab-org/gitlab!82069))
- [Remove rearrange_pipeline_table feature flag](gitlab-org/gitlab@6ace75f59f3c42abdfdf8a9078e02308a097a914) ([merge request](gitlab-org/gitlab!81924))
- [Add RelatedEpicsLinks::DestroyService](gitlab-org/gitlab@b6da269cf095fdd82dcd56a1e1a0f469caf5e80d) ([merge request](gitlab-org/gitlab!81610)) **GitLab Enterprise Edition**
- [Ignore requirements_management_test_reports.requirement_id column](gitlab-org/gitlab@778ffb36ec8eaa10ec9791aadc7806b707dcdb5d) ([merge request](gitlab-org/gitlab!82134)) **GitLab Enterprise Edition**
- [Add nullify job for orphan runner_id columns of ci_builds](gitlab-org/gitlab@b44fac47468e79efb2ec92a4dd0326ef9a489d11) ([merge request](gitlab-org/gitlab!81410))
- [Rerun ConvertStringifiedRawMetadataHashToJson inline](gitlab-org/gitlab@1e4c6529f3d862b830e5ce524ba27ffee80e4617) ([merge request](gitlab-org/gitlab!80768))
- [Update GlAlert in security dashboard table](gitlab-org/gitlab@f9211802661ed7de62113dfb7cc3983dee402975) ([merge request](gitlab-org/gitlab!82014)) **GitLab Enterprise Edition**
- [Fix GraphQL/OrderedFields offenses](gitlab-org/gitlab@321b3ca23e7efb069ecd6346da6e0684b1f68de7) by @edith007 ([merge request](gitlab-org/gitlab!81469))
- [Remove context_commits feature flag](gitlab-org/gitlab@960ccee0fc4962bb2c0cfb88fd94313366b5b710) ([merge request](gitlab-org/gitlab!80881))
- [Remove deprecated package application setting](gitlab-org/gitlab@e3e1cdd682037dd65b34e7ef84b42332510a2adc) ([merge request](gitlab-org/gitlab!80842))
- [Remove feature flag for bulk inserting job tags](gitlab-org/gitlab@f78b53e0fb59848b54b89cce8025963a1d5cca87) ([merge request](gitlab-org/gitlab!79243))
- [Cleanup back-filling CI queuing tables migration](gitlab-org/gitlab@af8fa00f4ceb2fb2e02658a2715c059136a5a3f7) ([merge request](gitlab-org/gitlab!81602))
- [Fix GraphQL/OrderedFields offenses](gitlab-org/gitlab@868a9d2575c2883f32e2ae5cf419ace538cc7bec) by @edith007 ([merge request](gitlab-org/gitlab!81474))
- [Fix GraphQL/OrderedFields offenses](gitlab-org/gitlab@0ec8ab44613d558ead33856d283d2d902ccf0eb0) by @edith007 ([merge request](gitlab-org/gitlab!81466))
- [Fix GraphQL/OrderedFields offenses](gitlab-org/gitlab@def8caf919ad9712b43d2047e74934f821624db2) by @edith007 ([merge request](gitlab-org/gitlab!81478))
- [Remove snippets_binary_blob FF](gitlab-org/gitlab@ca06b30a7eaa1629a87535084d3a8759c55e9c91) ([merge request](gitlab-org/gitlab!81827))
- [Remove usage_data_i_snippets_show FF](gitlab-org/gitlab@32ae392e789989f35f30b8288b51ca5d6b5ade61) ([merge request](gitlab-org/gitlab!81822))
- [Implement Gitlab mirror scheduling tracker](gitlab-org/gitlab@b1194aa8a9af09e9eb6e6f0bc84d3654754232e8) ([merge request](gitlab-org/gitlab!81249))
- [Add certificate_based_clusters FF to Service Ping](gitlab-org/gitlab@33601c638476cbb671f46dde724939dda85c20e6) ([merge request](gitlab-org/gitlab!81311))
- [danger: Use changelog rule from gitlab-dangerfiles](gitlab-org/gitlab@59d5f1b34b23fd573ce1d506cc8e98ab34a61c57) ([merge request](gitlab-org/gitlab!81290))
- [Resolve Rails/LinkToBlank rubocop offenses](gitlab-org/gitlab@04fd3292dfdd8764e8503639ddb09572b5a321ec) by @edith007 ([merge request](gitlab-org/gitlab!81397)) **GitLab Enterprise Edition**
- [Resolve Rails/IndexBy rubocop offenses](gitlab-org/gitlab@6ad4f10a77aa5b3c422f6dc38278125b37f08641) by @edith007 ([merge request](gitlab-org/gitlab!81391)) **GitLab Enterprise Edition**
- [Fix Rails/SaveBang offenses](gitlab-org/gitlab@36fc826acad51070955162828969bcd39a058f60) by @edith007 ([merge request](gitlab-org/gitlab!81246)) **GitLab Enterprise Edition**
- [Remove feature flag `group_merge_request_approval_settings_feature_flag`](gitlab-org/gitlab@ef2be58240abeb54263d31696844b614ecb4ba37) ([merge request](gitlab-org/gitlab!81252)) **GitLab Enterprise Edition**
- [Move shared code for related epic links](gitlab-org/gitlab@1881821dbcccac5eecd9ea7f3c57d5dedfb03fca) ([merge request](gitlab-org/gitlab!81320)) **GitLab Enterprise Edition**
- [Remove the `container_expiration_policies_historic_entry` feature flag](gitlab-org/gitlab@2a1259f2137db65b3e068cccafa9c8c182fe1dcc) ([merge request](gitlab-org/gitlab!80826))
- [Fix GraphQL/OrderedFields offenses](gitlab-org/gitlab@1c211096525e7bde3f65e2cace007e2ec47d00ca) by @edith007 ([merge request](gitlab-org/gitlab!81481))
- [Fix GraphQL/OrderedFields offenses](gitlab-org/gitlab@a39986e8dda55b1ee8c7c797245b60eb07a02974) by @edith007 ([merge request](gitlab-org/gitlab!81471))
- [Fix GraphQL/OrderedFields offenses](gitlab-org/gitlab@5f9d3afd383f43e9870b3943371e41c0c65e540c) by @edith007 ([merge request](gitlab-org/gitlab!81467))
- [Fix GraphQL/OrderedFields offenses](gitlab-org/gitlab@aea3aec7de86702e490a7e3a2acbdc7c35bbbfe7) by @edith007 ([merge request](gitlab-org/gitlab!81414)) **GitLab Enterprise Edition**
- [Fix GraphQL/OrderedFields offenses](gitlab-org/gitlab@a7b989d814f7851aec719ace35665dbd9c63c06a) by @edith007 ([merge request](gitlab-org/gitlab!81428))
- [Fix GraphQL/OrderedFields offenses](gitlab-org/gitlab@85c0032cbb3f94370d4498814f177d7224838bef) by @edith007 ([merge request](gitlab-org/gitlab!81425)) **GitLab Enterprise Edition**
- [Support load timings for non-Chromium browsers](gitlab-org/gitlab@fdbde7c998b42d8622c0dfe7ce3c5f1da2c09600) by @davebarr ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81260))
- [Resolve Rails/ShortI18n rubocop offenses](gitlab-org/gitlab@481b3bc0b13ca8e7d50cc142de4186aa572dff2c) by @edith007 ([merge request](gitlab-org/gitlab!81399))
- [Migrate projects create from template page to GlTabs](gitlab-org/gitlab@a607d8131003415c479e74ec2ded124ea2d252b8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/81254))
- [Memoize group secret variables on the variables builder](gitlab-org/gitlab@669cedbbd7e4d0f6e55ca4dc5ed30767db35b065) ([merge request](gitlab-org/gitlab!79936))
- [Resolve Performance/Sum rubocop offenses](gitlab-org/gitlab@c223a6021f565fea96b3fbae4ee7c59b2b1738b5) by @edith007 ([merge request](gitlab-org/gitlab!81350)) **GitLab Enterprise Edition**
- [Resolve Performance/DeleteSuffix rubocop offenses](gitlab-org/gitlab@fd5987e7ff762dacc6a78f8b025635bd9058ae4c) by @edith007 ([merge request](gitlab-org/gitlab!81344))
- [Remove feature flag for Group Projects API Plan Preloading](gitlab-org/gitlab@79469788adb49b64cc6bcb09c1f3ac8aac7b3e67) ([merge request](gitlab-org/gitlab!81324)) **GitLab Enterprise Edition**
- [Show an IPv6 sample in placeholder text](gitlab-org/gitlab@3f626453daca70c0df3a2b28708545c93302f61e) ([merge request](gitlab-org/gitlab!80792)) **GitLab Enterprise Edition**
- [Fix GraphQL/OrderedArguments offense (Part 6/6)](gitlab-org/gitlab@8d7a0608a4be68f3f650c9ea986427d869f4cb40) by @KevSlashNull ([merge request](gitlab-org/gitlab!76028))
- [Add advanced_search metrics to the dictionary](gitlab-org/gitlab@66057046f073a33b9f9c618e6fc5dee7dbb4af53) ([merge request](gitlab-org/gitlab!81003)) **GitLab Enterprise Edition**
- [Rename usage column in storage projects-list](gitlab-org/gitlab@eb69a2db015389981355328a52e572f64c9b484e) ([merge request](gitlab-org/gitlab!81144)) **GitLab Enterprise Edition**
- [Set worker resource boundary for ImportRequirementsCsvWorker](gitlab-org/gitlab@5f23bc1dced38334e2a14de7232dfcb805c48b7c) by @edith007 ([merge request](gitlab-org/gitlab!81229)) **GitLab Enterprise Edition**
- [Clean up roadmap_settings feature flag](gitlab-org/gitlab@fb7bd832a5c9bdbd6318c744a1d6618b209e6481) ([merge request](gitlab-org/gitlab!80975))
- [Fix GraphQL/FieldDefinitions offense (Part 4/4)](gitlab-org/gitlab@f06a2c460efb3cebf087be61c8393b8e49c05137) by @KevSlashNull ([merge request](gitlab-org/gitlab!76017))
- [Fix GraphQL/OrderedArguments offense (Part 5/6)](gitlab-org/gitlab@210baf44a6eb8c254261119b30022d3f30f5734c) by @KevSlashNull ([merge request](gitlab-org/gitlab!76027))
- [Simplify container repository delete tags services](gitlab-org/gitlab@67e8cf3f8308b14615d1f30d8afdca973f4f8b9b) by @edith007 ([merge request](gitlab-org/gitlab!81187))
- [Make labels sort dropdown pajamas compliant](gitlab-org/gitlab@47dee9f25e1e7cb23fb0fb4863465a8fc35ac81c) ([merge request](gitlab-org/gitlab!80702))
- [Fix Style/OpenStructUse offenses in auth provider specs](gitlab-org/gitlab@cad9f4cccf016bbabcbbef18d042ee4a0bb079f8) by @edith007 ([merge request](gitlab-org/gitlab!75277))
- [Remove the generic_packages feature flag](gitlab-org/gitlab@a6b06521df3d9beffdfbdb02146990c4c813da0e) ([merge request](gitlab-org/gitlab!80886))
- [Remove delegate as it's redundant due to SimpleDelegator](gitlab-org/gitlab@46d5c76e0b953bc004cb6a4656a8e0f8dd8842ee) by @edith007 ([merge request](gitlab-org/gitlab!75883))
- [Remove unneeded override in Ci::PipelinePresenter](gitlab-org/gitlab@35ae95950999d2efbbc35fc9076335ed2afffd3f) by @edith007 ([merge request](gitlab-org/gitlab!75854))
- [Clean up issue_boards_filtered_search feature flag](gitlab-org/gitlab@a97ed09ffb0d88007b21a314ab48b2e50d7c4bfa) ([merge request](gitlab-org/gitlab!80771))
- [Add table for storing issue tsvector](gitlab-org/gitlab@ceabf5a8ad0d67768b05a58a84b242495645a57c) ([merge request](gitlab-org/gitlab!71913))
## 14.8.4 (2022-03-16)
@ -762,6 +1373,29 @@ entry.
- [Use `ssh_data` gem instead of `net-ssh` and `sshkey` where possible](gitlab-org/gitlab@59a0ee8605d509753c9aec719f8e0da77bcc679d) ([merge request](gitlab-org/gitlab!77424))
- [Remove feature flag already default enabled](gitlab-org/gitlab@9b7059a4bf9dc2ecdce1910a931cc6967d05b5ad) ([merge request](gitlab-org/gitlab!78238)) **GitLab Enterprise Edition**
## 14.7.5 (2022-03-09)
### Fixed (1 change)
- [Ensure cleanup job artifacts task does not include pipeline artifacts](gitlab-org/gitlab@7b5e91bc78c46109e48537b20239d4ab649a971a) ([merge request](gitlab-org/gitlab!82430))
### Other (1 change)
- [Change to truncate table before adding finding_link_url_idx](gitlab-org/gitlab@6411ec61f40cb8648cea24ed26c1d69c8b910891) ([merge request](gitlab-org/gitlab!82430))
## 14.7.4 (2022-02-25)
### Security (8 changes)
- [Limit commands_changes to certain keys](gitlab-org/security/gitlab@59351be8d1d868e31bc849482b266e4047710eeb) ([merge request](gitlab-org/security/gitlab!2226))
- [Add runners_token prefix to Group and Project](gitlab-org/security/gitlab@74615b7fd5359c4da7f1a3ca9052685e81e1690f) ([merge request](gitlab-org/security/gitlab!2249))
- [Anonymous user can enumerate all users through GraphQL endpoint](gitlab-org/security/gitlab@e213dfc546020d3f88b40cdfc0f877138b0aaef5) ([merge request](gitlab-org/security/gitlab!2119))
- [Check for unsafe characters in email addresses before sending](gitlab-org/security/gitlab@395385ffccfd9d25063531ea955b179d9bc4f0c5) ([merge request](gitlab-org/security/gitlab!2207))
- [Warn when snippet contains unretrievable files](gitlab-org/security/gitlab@dc4b3c00284e17bcbf20ec2ae1ee7e8a7efae9b2) ([merge request](gitlab-org/security/gitlab!2204))
- [Prevent DOS when rendering math markdown](gitlab-org/security/gitlab@f01674f210dee4c803b4850292d16412463b18e3) ([merge request](gitlab-org/security/gitlab!2200))
- [Check permission when creating members through service](gitlab-org/security/gitlab@4f9b302511ddfaf07af8d08d848252e0c64ff307) ([merge request](gitlab-org/security/gitlab!2210))
- [Reset password field on page load](gitlab-org/security/gitlab@1a6541462e1ddd58ea9a172fbd3c0b9026760784) ([merge request](gitlab-org/security/gitlab!2193))
## 14.7.3 (2022-02-15)
### Fixed (2 changes)
@ -1237,6 +1871,27 @@ See https://about.gitlab.com/releases/2022/02/03/security-release-gitlab-14-7-1-
- [Fix Gitlab/DelegatePredicateMethods offenses](gitlab-org/gitlab@518700a11025b0000ff3ce011638417a882612b0) by @edith007 ([merge request](gitlab-org/gitlab!76001))
- [Fix Rails/SaveBang offenses](gitlab-org/gitlab@513b0e1dbdf95ea595e7548ff26929e0be30ce29) by @edith007 ([merge request](gitlab-org/gitlab!75894)) **GitLab Enterprise Edition**
## 14.6.6 (2022-03-01)
### Fixed (3 changes)
- [Ensure cleanup job artifacts task does not include pipeline artifacts](gitlab-org/gitlab@3fc3472de8bfa971985d122573e9896b17606678) ([merge request](gitlab-org/gitlab!81885))
- [Fix Geo checksummable check failing when file is nil](gitlab-org/gitlab@38b55f334c558377de0b1b0d7f853e62723d9791) ([merge request](gitlab-org/gitlab!81885)) **GitLab Enterprise Edition**
- [Resolve "Imports fail in 14.5.2 fail with HTTParty::UnsupportedURIScheme error"](gitlab-org/gitlab@b7cbf0c19d9702a0db3ee9a8f8897df5d7da72f1) ([merge request](gitlab-org/gitlab!81885))
## 14.6.5 (2022-02-25)
### Security (8 changes)
- [Limit commands_changes to certain keys](gitlab-org/security/gitlab@138c437f2819d62ce4750fb84399d8868c844b01) ([merge request](gitlab-org/security/gitlab!2227))
- [Add runners_token prefix to Group and Project](gitlab-org/security/gitlab@682d4e9b63d3d36901638edc75c1b265460d42dc) ([merge request](gitlab-org/security/gitlab!2250))
- [Anonymous user can enumerate all users through GraphQL endpoint](gitlab-org/security/gitlab@2b00a8036b291d3ad5de551a5e13c2a0a39d0234) ([merge request](gitlab-org/security/gitlab!2102))
- [Check for unsafe characters in email addresses before sending](gitlab-org/security/gitlab@6bc653b3dadefb3d2c80823786d43e6b7f8c4620) ([merge request](gitlab-org/security/gitlab!2208))
- [Warn when snippet contains unretrievable files](gitlab-org/security/gitlab@f9ae9515ec98ab934f4aa3a35af0aca806bbe21d) ([merge request](gitlab-org/security/gitlab!2203))
- [Prevent DOS when rendering math markdown](gitlab-org/security/gitlab@fd6d496df6f4b5eb3da0b851f9ff8ebb1d68d3f2) ([merge request](gitlab-org/security/gitlab!2201))
- [Check permission when creating members through service](gitlab-org/security/gitlab@948e5103285de2a6cdb5152ff2c13ae4db2f4cda) ([merge request](gitlab-org/security/gitlab!2211))
- [Reset password field on page load](gitlab-org/security/gitlab@1417b463f2771a4b17e068dea9de3aa6c4540962) ([merge request](gitlab-org/security/gitlab!2194))
## 14.6.4 (2022-02-03)
### Security

View file

@ -24,24 +24,3 @@ return if helper.release_automation?
project_helper.rule_names.each do |rule|
danger.import_dangerfile(path: File.join('danger', rule))
end
anything_to_post = status_report.values.any? { |data| data.any? }
return unless helper.ci?
def post_labels
gitlab.api.update_merge_request(gitlab.mr_json['project_id'],
gitlab.mr_json['iid'],
add_labels: project_helper.labels_to_add.join(','))
rescue Gitlab::Error::Forbidden
labels = project_helper.labels_to_add.map { |label| %Q(~"#{label}") }
warn("This Merge Request needs to be labelled with #{labels.join(' ')}. Please request a reviewer or maintainer to add them.")
end
if project_helper.labels_to_add.any?
post_labels
end
if anything_to_post
markdown("**If needed, you can retry the [`danger-review` job](#{ENV['CI_JOB_URL']}) that generated this comment.**")
end

View file

@ -1 +1 @@
14.8.6
14.9.4

View file

@ -1 +1 @@
14.8.1
14.9.0

View file

@ -1 +1 @@
1.54.1
1.56.1

View file

@ -1 +1 @@
13.23.2
13.24.0

20
Gemfile
View file

@ -11,6 +11,8 @@ gem 'responders', '~> 3.0'
gem 'sprockets', '~> 3.7.0'
gem 'view_component', '~> 2.50.0'
# Default values for AR models
gem 'default_value_for', '~> 3.4.0'
@ -290,7 +292,7 @@ gem 'autoprefixer-rails', '10.2.5.1'
gem 'terser', '1.0.2'
gem 'addressable', '~> 2.8'
gem 'tanuki_emoji', '~> 0.5'
gem 'tanuki_emoji', '~> 0.6'
gem 'gon', '~> 6.4.0'
gem 'request_store', '~> 1.5'
gem 'base32', '~> 0.3.0'
@ -302,6 +304,9 @@ gem 'rack-attack', '~> 6.3.0'
# Sentry integration
gem 'sentry-raven', '~> 3.1'
gem 'sentry-ruby', '~> 5.1.1'
gem 'sentry-rails', '~> 5.1.1'
gem 'sentry-sidekiq', '~> 5.1.1'
# PostgreSQL query parsing
#
@ -374,7 +379,7 @@ group :development, :test do
gem 'spring', '~> 2.1.0'
gem 'spring-commands-rspec', '~> 1.0.4'
gem 'gitlab-styles', '~> 6.6.0', require: false
gem 'gitlab-styles', '~> 7.0.0', require: false
gem 'haml_lint', '~> 0.36.0', require: false
gem 'bundler-audit', '~> 0.7.0.1', require: false
@ -393,14 +398,16 @@ group :development, :test do
gem 'parallel', '~> 1.19', require: false
gem 'test_file_finder', '~> 0.1.3'
gem 'sigdump', '~> 0.2.4', require: 'sigdump/setup'
end
group :development, :test, :danger do
gem 'gitlab-dangerfiles', '~> 2.8.0', require: false
gem 'gitlab-dangerfiles', '~> 2.11.0', require: false
end
group :development, :test, :coverage do
gem 'simplecov', '~> 0.18.5', require: false
gem 'simplecov', '~> 0.21', require: false
gem 'simplecov-lcov', '~> 0.8.0', require: false
gem 'simplecov-cobertura', '~> 1.3.1', require: false
gem 'undercover', '~> 0.4.4', require: false
@ -418,6 +425,7 @@ group :test do
gem 'fuubar', '~> 2.2.0'
gem 'rspec-retry', '~> 0.6.1'
gem 'rspec_profiling', '~> 0.0.6'
gem 'rspec-benchmark', '~> 0.6.0'
gem 'rspec-parameterized', require: false
gem 'capybara', '~> 3.35.3'
@ -473,7 +481,7 @@ gem 'ssh_data', '~> 1.2'
gem 'spamcheck', '~> 0.1.0'
# Gitaly GRPC protocol definitions
gem 'gitaly', '~> 14.8.0.pre.rc1'
gem 'gitaly', '~> 14.9.0.pre.rc4'
# KAS GRPC protocol definitions
gem 'kas-grpc', '~> 0.0.2'
@ -534,4 +542,4 @@ gem 'ipaddress', '~> 0.8.3'
gem 'parslet', '~> 1.8'
gem 'ipynbdiff', '0.3.8'
gem 'ipynbdiff', '0.4.5'

View file

@ -139,8 +139,11 @@ GEM
bcrypt (3.1.16)
benchmark (0.1.1)
benchmark-ips (2.3.0)
benchmark-malloc (0.2.0)
benchmark-memory (0.1.2)
memory_profiler (~> 0.9)
benchmark-perf (0.6.0)
benchmark-trend (0.4.0)
better_errors (2.9.1)
coderay (>= 1.0.0)
erubi (>= 1.0.0)
@ -221,7 +224,7 @@ GEM
css_parser (1.7.0)
addressable
daemons (1.3.1)
danger (8.4.2)
danger (8.4.5)
claide (~> 1.0)
claide-plugins (>= 0.9.2)
colored2 (~> 3.1)
@ -238,6 +241,7 @@ GEM
danger
gitlab (~> 4.2, >= 4.2.0)
database_cleaner (1.7.0)
dead_end (3.1.1)
deckar01-task_list (2.3.1)
html-pipeline
declarative (0.0.20)
@ -247,13 +251,15 @@ GEM
activerecord (>= 3.2.0, < 7.0)
deprecation_toolkit (1.5.1)
activesupport (>= 4.2)
derailed_benchmarks (1.8.1)
derailed_benchmarks (2.1.1)
benchmark-ips (~> 2)
dead_end
get_process_mem (~> 0)
heapy (~> 0)
memory_profiler (~> 0)
mini_histogram (>= 0.2.1)
memory_profiler (>= 0, < 2)
mini_histogram (>= 0.3.0)
rack (>= 1)
rack-test
rake (> 10, < 14)
ruby-statistics (>= 2.1)
thor (>= 0.19, < 2)
@ -275,7 +281,7 @@ GEM
diffy (3.3.0)
discordrb-webhooks (3.4.2)
rest-client (>= 2.0.0)
docile (1.3.2)
docile (1.4.0)
domain_name (0.5.20190701)
unf (>= 0.0.5, < 1.0.0)
doorkeeper (5.5.0.rc2)
@ -372,7 +378,7 @@ GEM
fast_blank (1.0.0)
fast_gettext (2.1.0)
ffaker (2.10.0)
ffi (1.15.3)
ffi (1.15.5)
ffi-compiler (1.0.1)
ffi (>= 1.0.0)
rake
@ -435,7 +441,7 @@ GEM
ruby-progressbar (~> 1.4)
fuzzyurl (0.9.0)
gemoji (3.0.1)
get_process_mem (0.2.5)
get_process_mem (0.2.7)
ffi (~> 1.0)
gettext (3.3.6)
locale (>= 2.0.5)
@ -449,7 +455,7 @@ GEM
rails (>= 3.2.0)
git (1.7.0)
rchardet (~> 1.8)
gitaly (14.8.0.pre.rc1)
gitaly (14.9.0.pre.rc4)
grpc (~> 1.0)
github-markup (1.7.0)
gitlab (4.16.1)
@ -457,8 +463,8 @@ GEM
terminal-table (~> 1.5, >= 1.5.1)
gitlab-chronic (0.10.5)
numerizer (~> 0.2)
gitlab-dangerfiles (2.8.0)
danger (>= 8.3.1)
gitlab-dangerfiles (2.11.0)
danger (>= 8.4.5)
danger-gitlab (>= 8.0.0)
gitlab-experiment (0.7.0)
activesupport (>= 3.0)
@ -495,7 +501,7 @@ GEM
openid_connect (~> 1.2)
gitlab-sidekiq-fetcher (0.8.0)
sidekiq (~> 6.1)
gitlab-styles (6.6.0)
gitlab-styles (7.0.0)
rubocop (~> 0.91, >= 0.91.1)
rubocop-gitlab-security (~> 0.1.1)
rubocop-graphql (~> 0.10)
@ -639,7 +645,7 @@ GEM
mime-types (~> 3.0)
multi_xml (>= 0.5.2)
httpclient (2.8.3)
i18n (1.9.1)
i18n (1.10.0)
concurrent-ruby (~> 1.0)
i18n_data (0.8.0)
icalendar (2.4.1)
@ -648,9 +654,9 @@ GEM
invisible_captcha (1.1.0)
rails (>= 4.2)
ipaddress (0.8.3)
ipynbdiff (0.3.8)
diffy (= 3.3.0)
json (= 2.5.1)
ipynbdiff (0.4.5)
diffy (~> 3.3)
json (~> 2.5, >= 2.5.1)
jaeger-client (1.1.0)
opentracing (~> 0.3)
thrift
@ -1059,6 +1065,11 @@ GEM
rspec-core (~> 3.10.0)
rspec-expectations (~> 3.10.0)
rspec-mocks (~> 3.10.0)
rspec-benchmark (0.6.0)
benchmark-malloc (~> 0.2)
benchmark-perf (~> 0.6)
benchmark-trend (~> 0.4)
rspec (>= 3.0)
rspec-core (3.10.1)
rspec-support (~> 3.10.0)
rspec-expectations (3.10.1)
@ -1104,7 +1115,7 @@ GEM
parser (>= 2.7.1.5)
rubocop-gitlab-security (0.1.1)
rubocop (>= 0.51)
rubocop-graphql (0.10.3)
rubocop-graphql (0.13.0)
rubocop (>= 0.87, < 2)
rubocop-performance (1.9.2)
rubocop (>= 0.90.0, < 2.0)
@ -1125,7 +1136,7 @@ GEM
ruby-saml (1.13.0)
nokogiri (>= 1.10.5)
rexml
ruby-statistics (2.1.2)
ruby-statistics (3.0.0)
ruby2_keywords (0.0.4)
ruby_parser (3.15.0)
sexp_processor (~> 4.9)
@ -1163,8 +1174,19 @@ GEM
selenium-webdriver (3.142.7)
childprocess (>= 0.5, < 4.0)
rubyzip (>= 1.2.2)
sentry-rails (5.1.1)
railties (>= 5.0)
sentry-ruby-core (~> 5.1.1)
sentry-raven (3.1.2)
faraday (>= 1.0)
sentry-ruby (5.1.1)
concurrent-ruby (~> 1.0, >= 1.0.2)
sentry-ruby-core (= 5.1.1)
sentry-ruby-core (5.1.1)
concurrent-ruby
sentry-sidekiq (5.1.1)
sentry-ruby-core (~> 5.1.1)
sidekiq (>= 3.0)
set (1.0.1)
settingslogic (2.0.9)
sexp_processor (4.15.1)
@ -1178,19 +1200,22 @@ GEM
sidekiq-cron (1.2.0)
fugit (~> 1.1)
sidekiq (>= 4.2.1)
sigdump (0.2.4)
signet (0.14.0)
addressable (~> 2.3)
faraday (>= 0.17.3, < 2.0)
jwt (>= 1.5, < 3.0)
multi_json (~> 1.10)
simple_po_parser (1.1.2)
simplecov (0.18.5)
simplecov (0.21.2)
docile (~> 1.1)
simplecov-html (~> 0.11)
simplecov_json_formatter (~> 0.1)
simplecov-cobertura (1.3.1)
simplecov (~> 0.8)
simplecov-html (0.12.3)
simplecov-lcov (0.8.0)
simplecov_json_formatter (0.1.4)
sixarm_ruby_unaccent (1.2.0)
slack-messenger (2.3.4)
snowplow-tracker (0.6.1)
@ -1249,7 +1274,7 @@ GEM
sys-filesystem (1.4.3)
ffi (~> 1.1)
sysexits (1.2.0)
tanuki_emoji (0.5.0)
tanuki_emoji (0.6.0)
temple (0.8.2)
terminal-table (1.8.0)
unicode-display_width (~> 1.1, >= 1.1.1)
@ -1263,7 +1288,7 @@ GEM
daemons (~> 1.0, >= 1.0.9)
eventmachine (~> 1.0, >= 1.0.4)
rack (>= 1, < 3)
thor (1.1.0)
thor (1.2.1)
thrift (0.14.0)
tilt (2.0.10)
timecop (0.9.1)
@ -1337,6 +1362,9 @@ GEM
activerecord (>= 3.0)
activesupport (>= 3.0)
version_sorter (2.2.4)
view_component (2.50.0)
activesupport (>= 5.0.0, < 8.0)
method_source (~> 1.0)
vmstat (2.3.0)
warden (1.2.8)
rack (>= 2.0.6)
@ -1463,10 +1491,10 @@ DEPENDENCIES
gettext (~> 3.3)
gettext_i18n_rails (~> 1.8.0)
gettext_i18n_rails_js (~> 1.3)
gitaly (~> 14.8.0.pre.rc1)
gitaly (~> 14.9.0.pre.rc4)
github-markup (~> 1.7.0)
gitlab-chronic (~> 0.10.5)
gitlab-dangerfiles (~> 2.8.0)
gitlab-dangerfiles (~> 2.11.0)
gitlab-experiment (~> 0.7.0)
gitlab-fog-azure-rm (~> 1.2.0)
gitlab-labkit (~> 0.22.0)
@ -1477,7 +1505,7 @@ DEPENDENCIES
gitlab-net-dns (~> 0.9.1)
gitlab-omniauth-openid-connect (~> 0.9.0)
gitlab-sidekiq-fetcher (= 0.8.0)
gitlab-styles (~> 6.6.0)
gitlab-styles (~> 7.0.0)
gitlab_chronic_duration (~> 0.10.6.2)
gitlab_omniauth-ldap (~> 2.1.1)
gon (~> 6.4.0)
@ -1507,7 +1535,7 @@ DEPENDENCIES
icalendar
invisible_captcha (~> 1.1.0)
ipaddress (~> 0.8.3)
ipynbdiff (= 0.3.8)
ipynbdiff (= 0.4.5)
jira-ruby (~> 2.1.4)
js_regex (~> 3.7)
json (~> 2.5.1)
@ -1596,6 +1624,7 @@ DEPENDENCIES
rexml (~> 3.2.5)
rouge (~> 3.27.0)
rqrcode-rails3 (~> 0.1.7)
rspec-benchmark (~> 0.6.0)
rspec-parameterized
rspec-rails (~> 5.0.1)
rspec-retry (~> 0.6.1)
@ -1614,13 +1643,17 @@ DEPENDENCIES
sd_notify (~> 0.1.0)
seed-fu (~> 2.3.7)
selenium-webdriver (~> 3.142)
sentry-rails (~> 5.1.1)
sentry-raven (~> 3.1)
sentry-ruby (~> 5.1.1)
sentry-sidekiq (~> 5.1.1)
settingslogic (~> 2.0.9)
shoulda-matchers (~> 4.0.1)
sidekiq (~> 6.4)
sidekiq-cron (~> 1.2)
sigdump (~> 0.2.4)
simple_po_parser (~> 1.1.2)
simplecov (~> 0.18.5)
simplecov (~> 0.21)
simplecov-cobertura (~> 1.3.1)
simplecov-lcov (~> 0.8.0)
slack-messenger (~> 2.3.4)
@ -1635,7 +1668,7 @@ DEPENDENCIES
stackprof (~> 0.2.15)
state_machines-activerecord (~> 0.8.0)
sys-filesystem (~> 1.4.3)
tanuki_emoji (~> 0.5)
tanuki_emoji (~> 0.6)
terser (= 1.0.2)
test-prof (~> 1.0.7)
test_file_finder (~> 0.1.3)
@ -1652,6 +1685,7 @@ DEPENDENCIES
valid_email (~> 0.1)
validates_hostname (~> 1.0.11)
version_sorter (~> 2.2.4)
view_component (~> 2.50.0)
vmstat (~> 2.3.0)
warning (~> 1.2.0)
webauthn (~> 2.3)

View file

@ -11,6 +11,8 @@ require File.expand_path('config/application', __dir__)
relative_url_conf = File.expand_path('config/initializers/relative_url', __dir__)
require relative_url_conf if File.exist?("#{relative_url_conf}.rb")
require File.expand_path('config/initializers/01_active_record_database_tasks_configuration_flag.rb', __dir__)
Gitlab::Application.load_tasks
Knapsack.load_tasks if defined?(Knapsack)

View file

@ -1 +1 @@
14.8.6
14.9.4

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -0,0 +1 @@
<svg enable-background="new 0 0 50 50" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="a" gradientUnits="userSpaceOnUse" x1="10.2941" x2="50" y1="17.8247" y2="17.8247"><stop offset="0" stop-color="#f39c63"/><stop offset="1" stop-color="#ef5d4f"/></linearGradient><linearGradient id="b"><stop offset="0" stop-color="#231c4f"/><stop offset="1" stop-color="#0a0430"/></linearGradient><linearGradient id="c" gradientUnits="userSpaceOnUse" x1="16.9118" x2="25" xlink:href="#b" y1="27.2046" y2="27.2046"/><linearGradient id="d" gradientUnits="userSpaceOnUse" x1="27.9412" x2="33.0882" xlink:href="#b" y1="22.0575" y2="22.0575"/><g clip-rule="evenodd" fill-rule="evenodd"><path d="m31.94 41.71-31.94 8.41v-21.23c0-4.73 3.19-8.87 7.77-10.07l19.29-5.08c6.4-1.68 12.65 3.14 12.65 9.75v8.14c0 4.74-3.19 8.88-7.77 10.08z" fill="#2b6af9"/><path d="m50 0v21.23c0 4.73-3.19 8.87-7.77 10.07l-14.79 3.89c-8.67 2.28-17.15-4.26-17.15-13.22v-3.49c0-4.73 3.19-8.87 7.77-10.07z" fill="url(#a)"/><path d="m23.36 36.33 16.35-4.3v-8.16c0-6.83-6.46-11.81-13.06-10.07l-16.35 4.3v8.16c-.01 6.82 6.45 11.8 13.06 10.07z" fill="#fff"/><circle cx="20.96" cy="27.2" fill="url(#c)" r="4.04"/><circle cx="30.51" cy="22.06" fill="url(#d)" r="2.57"/></g></svg>

After

Width:  |  Height:  |  Size: 1.3 KiB

View file

@ -0,0 +1 @@
<svg enable-background="new 0 0 0 0" viewBox="0 0 800 780" xmlns="http://www.w3.org/2000/svg"><path d="m594.4 737.87c-.75-1.93-1.86-3.7-3.34-5.29-1.48-1.6-3.29-2.86-5.44-3.8-2.15-.93-4.62-1.4-7.41-1.4s-5.26.47-7.41 1.4c-2.14.94-3.96 2.21-5.43 3.8-1.48 1.59-2.59 3.36-3.34 5.29s-1.13 3.91-1.13 5.95v.96c0 1.96.36 3.91 1.1 5.86.73 1.96 1.82 3.74 3.28 5.35s3.27 2.91 5.43 3.89c2.17.98 4.67 1.46 7.5 1.46s5.33-.49 7.5-1.46c2.16-.98 3.98-2.28 5.43-3.89 1.46-1.61 2.55-3.4 3.28-5.35s1.1-3.91 1.1-5.86v-.96c.01-2.04-.37-4.02-1.12-5.95zm-4.01 13.45c-1.15 2.1-2.78 3.77-4.86 5.02-2.09 1.25-4.52 1.89-7.32 1.89-2.79 0-5.24-.63-7.32-1.89-2.09-1.25-3.71-2.93-4.86-5.02s-1.73-4.42-1.73-6.97c0-2.63.58-4.99 1.73-7.09 1.15-2.09 2.77-3.74 4.86-4.96 2.08-1.21 4.52-1.82 7.32-1.82 2.79 0 5.23.61 7.32 1.82 2.08 1.22 3.71 2.87 4.86 4.96 1.15 2.1 1.73 4.46 1.73 7.09 0 2.56-.58 4.88-1.73 6.97z" fill="#f79200"/><path d="m584.11 746.03c1.42-1.12 2.12-2.73 2.12-4.84s-.71-3.73-2.12-4.85c-1.42-1.11-3.4-1.67-5.95-1.67h-2.55-2.37-2.12v18.66h4.49v-5.62h2.55c.09 0 .17-.01.25-.01l3.81 5.64h5.1l-4.69-6.45c.54-.25 1.04-.52 1.48-.86zm-8.5-7.6h2.85c1.1 0 1.9.23 2.43.69s.79 1.15.79 2.07-.26 1.6-.79 2.06-1.33.68-2.43.68h-2.85z" fill="#f79200"/><path d="m333.8 753.41-17.62 7.9v-88.45s76.18-50.47 93.76-64.21c46.25-36.15 101.39-92.54 101.39-155.86v-22.33l40.76-32.62h-235.91v-83.73h280.18v138.69c0 180.72-251.84 295.81-262.56 300.61zm-17.53-638.54c21.22 2.88 121.7 20.25 195.07 97.32v62.85h85.03v-94.02l-10-11.68c-104.42-122.2-259.7-137.72-266.27-138.32l-3.92-.36v84.23c.03-.01.06-.01.09-.02z" fill="#ffbe12"/><path d="m316.18 397.85h-280.18v-216.82l9.99-11.68c104.42-122.21 259.7-137.73 266.25-138.33l3.94-.36v84.23c-21.06 2.97-122.24 20.87-195.17 97.32v74.53l-36.5 27.39h231.66v83.72zm-93.77 210.81c-46.27-36.15-101.4-87.26-101.4-143.31l20.24-28.41h-105.25v28.41c0 171.17 251.84 283.27 262.56 288.07l17.63 7.9v-88.45c-.01 0-76.2-50.47-93.78-64.21z" fill="#f79200"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -1,15 +1,31 @@
<script>
import { GlDatepicker, GlFormInput } from '@gitlab/ui';
import { GlDatepicker, GlFormInput, GlFormGroup } from '@gitlab/ui';
import { __ } from '~/locale';
export default {
name: 'ExpiresAtField',
components: { GlDatepicker, GlFormInput },
i18n: {
label: __('Expiration date'),
},
components: {
GlDatepicker,
GlFormInput,
GlFormGroup,
MaxExpirationDateMessage: () =>
import('ee_component/access_tokens/components/max_expiration_date_message.vue'),
},
props: {
inputAttrs: {
type: Object,
required: false,
default: () => ({}),
},
maxDate: {
type: Date,
required: false,
default: () => null,
},
},
data() {
return {
@ -20,13 +36,18 @@ export default {
</script>
<template>
<gl-datepicker :target="null" :min-date="minDate">
<gl-form-input
v-bind="inputAttrs"
class="datepicker gl-datepicker-input"
autocomplete="off"
inputmode="none"
data-qa-selector="expiry_date_field"
/>
</gl-datepicker>
<gl-form-group :label="$options.i18n.label" :label-for="inputAttrs.id">
<gl-datepicker :target="null" :min-date="minDate" :max-date="maxDate">
<gl-form-input
v-bind="inputAttrs"
class="datepicker gl-datepicker-input"
autocomplete="off"
inputmode="none"
data-qa-selector="expiry_date_field"
/>
</gl-datepicker>
<template #description>
<max-expiration-date-message :max-date="maxDate" />
</template>
</gl-form-group>
</template>

View file

@ -100,6 +100,7 @@ export default {
<gl-link
:href="tokenData.resetPath"
:data-confirm="$options.i18n[tokenType].resetConfirmMessage"
data-confirm-btn-variant="danger"
data-method="put"
>{{ content }}</gl-link
>

View file

@ -17,6 +17,7 @@ export const initExpiresAtField = () => {
}
const { expiresAt: inputAttrs } = parseRailsFormFields(el);
const { maxDate } = el.dataset;
return new Vue({
el,
@ -24,6 +25,7 @@ export const initExpiresAtField = () => {
return h(ExpiresAtField, {
props: {
inputAttrs,
maxDate: maxDate ? new Date(maxDate) : undefined,
},
});
},

View file

@ -33,7 +33,7 @@ export default class Activities {
errorCallback: () =>
createFlash({
message: s__(
'Activity|An error occured while retrieving activity. Reload the page to try again.',
'Activity|An error occurred while retrieving activity. Reload the page to try again.',
),
parent: this.containerEl,
}),

View file

@ -0,0 +1,84 @@
<script>
import { GlModal, GlSprintf } from '@gitlab/ui';
import { __ } from '~/locale';
import csrf from '~/lib/utils/csrf';
export default {
components: {
GlModal,
GlSprintf,
},
data() {
return {
name: '',
path: '',
buttons: [],
};
},
mounted() {
this.buttons = document.querySelectorAll('.js-application-delete-button');
this.buttons.forEach((button) => button.addEventListener('click', this.buttonEvent));
},
destroy() {
this.buttons.forEach((button) => button.removeEventListener('click', this.buttonEvent));
},
methods: {
buttonEvent(e) {
e.preventDefault();
this.show(e.target.dataset);
},
show(dataset) {
const { name, path } = dataset;
this.name = name;
this.path = path;
this.$refs.deleteModal.show();
},
deleteApplication() {
this.$refs.deleteForm.submit();
},
},
i18n: {
destroy: __('Destroy'),
title: __('Confirm destroy application'),
body: __('Are you sure that you want to destroy %{application}'),
},
modal: {
actionPrimary: {
text: __('Destroy'),
attributes: {
variant: 'danger',
},
},
actionSecondary: {
text: __('Cancel'),
attributes: {
variant: 'default',
},
},
},
csrf,
};
</script>
<template>
<gl-modal
ref="deleteModal"
:title="$options.i18n.title"
:action-primary="$options.modal.actionPrimary"
:action-secondary="$options.modal.actionSecondary"
modal-id="delete-application-modal"
size="sm"
@primary="deleteApplication"
><gl-sprintf :message="$options.i18n.body">
<template #application>
<strong>{{ name }}</strong>
</template></gl-sprintf
>
<form ref="deleteForm" method="post" :action="path">
<input type="hidden" name="_method" value="delete" />
<input type="hidden" name="authenticity_token" :value="$options.csrf.token" />
</form>
</gl-modal>
</template>

View file

@ -0,0 +1,15 @@
import Vue from 'vue';
import DeleteApplication from './components/delete_application.vue';
export default () => {
const el = document.querySelector('.js-application-delete-modal');
if (!el) return false;
return new Vue({
el,
render(h) {
return h(DeleteApplication);
},
});
};

View file

@ -0,0 +1,67 @@
<script>
import { uniqueId } from 'lodash';
import { GlButton, GlModal, GlModalDirective } from '@gitlab/ui';
import { __ } from '~/locale';
import csrf from '~/lib/utils/csrf';
export default {
components: {
GlButton,
GlModal,
},
directives: {
GlModal: GlModalDirective,
},
inject: ['path'],
data() {
return {
modalId: uniqueId('remove-topic-avatar-'),
};
},
methods: {
deleteApplication() {
this.$refs.deleteForm.submit();
},
},
i18n: {
remove: __('Remove avatar'),
title: __('Confirm remove avatar'),
body: __('Avatar will be removed. Are you sure?'),
},
modal: {
actionPrimary: {
text: __('Remove'),
attributes: {
variant: 'danger',
},
},
actionSecondary: {
text: __('Cancel'),
attributes: {
variant: 'default',
},
},
},
csrf,
};
</script>
<template>
<div>
<gl-button v-gl-modal="modalId" variant="danger" category="secondary" class="gl-mt-2">{{
$options.i18n.remove
}}</gl-button>
<gl-modal
:title="$options.i18n.title"
:action-primary="$options.modal.actionPrimary"
:action-secondary="$options.modal.actionSecondary"
:modal-id="modalId"
size="sm"
@primary="deleteApplication"
>{{ $options.i18n.body }}
<form ref="deleteForm" method="post" :action="path">
<input type="hidden" name="_method" value="delete" />
<input type="hidden" name="authenticity_token" :value="$options.csrf.token" />
</form>
</gl-modal>
</div>
</template>

View file

@ -0,0 +1,22 @@
import Vue from 'vue';
import RemoveAvatar from './components/remove_avatar.vue';
export default () => {
const el = document.querySelector('.js-remove-topic-avatar');
if (!el) {
return false;
}
const { path } = el.dataset;
return new Vue({
el,
provide: {
path,
},
render(h) {
return h(RemoveAvatar);
},
});
};

View file

@ -69,7 +69,6 @@ export default {
editButtonAttrs() {
return {
'data-testid': 'edit',
icon: 'pencil-square',
href: this.userPaths.edit,
};
},
@ -101,6 +100,7 @@ export default {
<gl-button
v-else
v-gl-tooltip="$options.i18n.edit"
icon="pencil-square"
v-bind="editButtonAttrs"
:aria-label="$options.i18n.edit"
/>
@ -108,10 +108,9 @@ export default {
<div v-if="hasDropdownActions" class="gl-p-2">
<gl-dropdown
v-gl-tooltip="$options.i18n.userAdministration"
data-testid="dropdown-toggle"
:text="$options.i18n.userAdministration"
:text-sr-only="!showButtonLabels"
icon="ellipsis_h"
icon="ellipsis_v"
data-qa-selector="user_actions_dropdown_toggle"
:data-qa-username="user.username"
no-caret

View file

@ -27,8 +27,6 @@ export default {
return this.adminUserPath.replace('id', this.user.username);
},
adminUserMailto() {
// NOTE: 'mailto:' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives
// eslint-disable-next-line @gitlab/require-i18n-strings
return `mailto:${this.user.email}`;
},
userNoteShort() {

View file

@ -12,8 +12,8 @@ import {
GlTooltipDirective,
} from '@gitlab/ui';
import getAlertsQuery from '~/graphql_shared/queries/get_alerts.query.graphql';
import { sortObjectToString } from '~/lib/utils/table_utility';
import { fetchPolicies } from '~/lib/graphql';
import { convertToSnakeCase } from '~/lib/utils/text_utility';
import { joinPaths, visitUrl } from '~/lib/utils/url_utility';
import { s__, __, n__ } from '~/locale';
import AlertStatus from '~/vue_shared/alert_details/components/alert_status.vue';
@ -213,11 +213,8 @@ export default {
},
methods: {
fetchSortedData({ sortBy, sortDesc }) {
const sortingDirection = sortDesc ? 'DESC' : 'ASC';
const sortingColumn = convertToSnakeCase(sortBy).toUpperCase();
this.pagination = initialPaginationState;
this.sort = `${sortingColumn}_${sortingDirection}`;
this.sort = sortObjectToString({ sortBy, sortDesc });
},
navigateToAlertDetails({ iid }, index, { metaKey }) {
return visitUrl(joinPaths(window.location.pathname, iid, 'details'), metaKey);

View file

@ -92,6 +92,7 @@ const Api = {
groupNotificationSettingsPath: '/api/:version/groups/:id/notification_settings',
notificationSettingsPath: '/api/:version/notification_settings',
deployKeysPath: '/api/:version/deploy_keys',
secureFilesPath: '/api/:version/projects/:project_id/secure_files',
group(groupId, callback = () => {}) {
const url = Api.buildUrl(Api.groupPath).replace(':id', groupId);
@ -957,6 +958,13 @@ const Api = {
return axios.get(url, { params: { per_page: DEFAULT_PER_PAGE, ...params } });
},
// TODO: replace this when GraphQL support has been added https://gitlab.com/gitlab-org/gitlab/-/issues/352184
projectSecureFiles(projectId, options = {}) {
const url = Api.buildUrl(this.secureFilesPath).replace(':project_id', projectId);
return axios.get(url, { params: { per_page: DEFAULT_PER_PAGE, ...options } });
},
async updateNotificationSettings(projectId, groupId, data = {}) {
let url = Api.buildUrl(this.notificationSettingsPath);

View file

@ -0,0 +1,120 @@
<script>
import { GlPopover, GlSprintf, GlButton, GlLink, GlIcon } from '@gitlab/ui';
import { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils';
import { helpPagePath } from '~/helpers/help_page_helper';
import UserCalloutDismisser from '~/vue_shared/components/user_callout_dismisser.vue';
export default {
components: {
GlPopover,
GlSprintf,
GlButton,
GlLink,
GlIcon,
UserCalloutDismisser,
},
inject: {
message: {
default: '',
},
observerElSelector: {
default: '',
},
observerElToggledClass: {
default: '',
},
featureName: {
default: '',
},
popoverTarget: {
default: '',
},
showAttentionIcon: {
default: false,
},
delay: {
default: 0,
},
popoverCssClass: {
default: '',
},
},
data() {
return {
showPopover: false,
popoverPlacement: this.popoverPosition(),
};
},
mounted() {
this.observeEl = document.querySelector(this.observerElSelector);
this.observer = new MutationObserver(this.callback);
this.observer.observe(this.observeEl, {
attributes: true,
});
this.callback();
window.addEventListener('resize', () => {
this.popoverPlacement = this.popoverPosition();
});
},
beforeDestroy() {
this.observer.disconnect();
},
methods: {
callback() {
if (this.showPopover) {
this.$root.$emit('bv::hide::popover');
}
setTimeout(() => this.toggleShowPopover(), this.delay);
},
toggleShowPopover() {
this.showPopover = this.observeEl.classList.contains(this.observerElToggledClass);
},
getPopoverTarget() {
return document.querySelector(this.popoverTarget);
},
popoverPosition() {
if (bp.isDesktop()) {
return 'left';
}
return 'bottom';
},
},
docsPage: helpPagePath('development/code_review.html'),
};
</script>
<template>
<user-callout-dismisser :feature-name="featureName">
<template #default="{ shouldShowCallout, dismiss }">
<gl-popover
v-if="shouldShowCallout"
:show-close-button="false"
:target="() => getPopoverTarget()"
:show="showPopover"
:delay="0"
triggers="manual"
:placement="popoverPlacement"
boundary="window"
no-fade
:css-classes="[popoverCssClass]"
>
<p v-for="(m, index) in message" :key="index" class="gl-mb-5">
<gl-sprintf :message="m">
<template #strong="{ content }">
<strong><gl-icon v-if="showAttentionIcon" name="attention" /> {{ content }}</strong>
</template>
</gl-sprintf>
</p>
<div class="gl-display-flex gl-align-items-center">
<gl-button size="small" variant="confirm" class="gl-mr-5" @click.prevent.stop="dismiss">
{{ __('Got it!') }}
</gl-button>
<gl-link :href="$options.docsPage" target="_blank">{{ __('Learn more') }}</gl-link>
</div>
</gl-popover>
</template>
</user-callout-dismisser>
</template>

View file

@ -0,0 +1,73 @@
import Vue from 'vue';
import VueApollo from 'vue-apollo';
import { __ } from '~/locale';
import createDefaultClient from '~/lib/graphql';
import NavigationPopover from './components/navigation_popover.vue';
Vue.use(VueApollo);
const apolloProvider = new VueApollo({
defaultClient: createDefaultClient(),
});
export const initTopNavPopover = () => {
const el = document.getElementById('js-need-attention-nav-onboarding');
if (!el) return;
// eslint-disable-next-line no-new
new Vue({
el,
apolloProvider,
provide: {
observerElSelector: '.user-counter.dropdown',
observerElToggledClass: 'show',
message: [
__(
'%{strongStart}Need your attention%{strongEnd} are the merge requests that need your help to move forward, as an assignee or reviewer.',
),
],
featureName: 'attention_requests_top_nav',
popoverTarget: '#js-need-attention-nav',
},
render(h) {
return h(NavigationPopover);
},
});
};
export const initSideNavPopover = () => {
const el = document.getElementById('js-need-attention-sidebar-onboarding');
if (!el) return;
// eslint-disable-next-line no-new
new Vue({
el,
apolloProvider,
provide: {
observerElSelector: '.js-right-sidebar',
observerElToggledClass: 'right-sidebar-expanded',
message: [
__(
'To ask someone to look at a merge request, select %{strongStart}Request attention%{strongEnd}. Select again to remove the request.',
),
__(
'Some actions remove attention requests, like a reviewer approving or anyone merging the merge request.',
),
],
featureName: 'attention_requests_side_nav',
popoverTarget: '.js-attention-request-toggle',
showAttentionIcon: true,
delay: 500,
popoverCssClass: 'attention-request-sidebar-popover',
},
render(h) {
return h(NavigationPopover);
},
});
};
export default () => {
initTopNavPopover();
};

View file

@ -45,6 +45,17 @@ export const bufferToBase64 = (input) => {
return btoa(String.fromCharCode(...arr));
};
/**
* Return a URL-safe base64 string.
*
* RFC: https://datatracker.ietf.org/doc/html/rfc4648#section-5
* @param {String} base64Str
* @returns {String}
*/
export const base64ToBase64Url = (base64Str) => {
return base64Str.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
};
/**
* Returns a copy of the given object with the id property converted to buffer
*

View file

@ -48,54 +48,48 @@ import Video from './nodes/video';
// from GFM should have a node or mark here.
// The GFM-to-HTML-to-GFM cycle is tested in spec/features/markdown/copy_as_gfm_spec.rb.
export default [
new Doc(),
new Paragraph(),
new Text(),
export default {
nodes: [
Doc(),
Paragraph(),
Text(),
new Blockquote(),
new CodeBlock(),
new HardBreak(),
new Heading({ maxLevel: 6 }),
new HorizontalRule(),
new Image(),
Blockquote(),
CodeBlock(),
HardBreak(),
Heading(),
HorizontalRule(),
Image(),
new Table(),
new TableHead(),
new TableBody(),
new TableHeaderRow(),
new TableRow(),
new TableCell(),
Table(),
TableHead(),
TableBody(),
TableHeaderRow(),
TableRow(),
TableCell(),
new Emoji(),
new Reference(),
Emoji(),
Reference(),
new TableOfContents(),
new Video(),
new Audio(),
TableOfContents(),
Video(),
Audio(),
new BulletList(),
new OrderedList(),
new ListItem(),
BulletList(),
OrderedList(),
ListItem(),
new DescriptionList(),
new DescriptionTerm(),
new DescriptionDetails(),
DescriptionList(),
DescriptionTerm(),
DescriptionDetails(),
new TaskList(),
new OrderedTaskList(),
new TaskListItem(),
TaskList(),
OrderedTaskList(),
TaskListItem(),
new Summary(),
new Details(),
Summary(),
Details(),
],
new Bold(),
new Italic(),
new Strike(),
new InlineDiff(),
new Link(),
new Code(),
new MathMark(),
new InlineHTML(),
];
marks: [Bold(), Italic(), Strike(), InlineDiff(), Link(), Code(), MathMark(), InlineHTML()],
};

View file

@ -1,11 +1,17 @@
/* eslint-disable class-methods-use-this */
import { Bold as BaseBold } from 'tiptap-extensions';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class Bold extends BaseBold {
get toMarkdown() {
return defaultMarkdownSerializer.marks.strong;
}
}
export default () => {
return {
name: 'bold',
schema: {
parseDOM: [
{
tag: 'strong',
},
],
toDOM: () => ['strong', 0],
},
toMarkdown: defaultMarkdownSerializer.marks.strong,
};
};

View file

@ -1,11 +1,12 @@
/* eslint-disable class-methods-use-this */
import { Code as BaseCode } from 'tiptap-extensions';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class Code extends BaseCode {
get toMarkdown() {
return defaultMarkdownSerializer.marks.code;
}
}
export default () => ({
name: 'code',
schema: {
excludes: '_',
parseDOM: [{ tag: 'code' }],
toDOM: () => ['code', 0],
},
toMarkdown: defaultMarkdownSerializer.marks.code,
});

View file

@ -1,41 +1,29 @@
/* eslint-disable class-methods-use-this */
import { Mark } from 'tiptap';
// Transforms generated HTML back to GFM for Banzai::Filter::InlineDiffFilter
export default class InlineDiff extends Mark {
get name() {
return 'inline_diff';
}
get schema() {
return {
attrs: {
addition: {
default: true,
},
export default () => ({
name: 'inline_diff',
schema: {
attrs: {
addition: {
default: true,
},
parseDOM: [
{ tag: 'span.idiff.addition', attrs: { addition: true } },
{ tag: 'span.idiff.deletion', attrs: { addition: false } },
],
toDOM: (node) => [
'span',
{ class: `idiff left right ${node.attrs.addition ? 'addition' : 'deletion'}` },
0,
],
};
}
get toMarkdown() {
return {
mixable: true,
open(state, mark) {
return mark.attrs.addition ? '{+' : '{-';
},
close(state, mark) {
return mark.attrs.addition ? '+}' : '-}';
},
};
}
}
},
parseDOM: [
{ tag: 'span.idiff.addition', attrs: { addition: true } },
{ tag: 'span.idiff.deletion', attrs: { addition: false } },
],
toDOM: (node) => [
'span',
{ class: `idiff left right ${node.attrs.addition ? 'addition' : 'deletion'}` },
0,
],
},
toMarkdown: {
mixable: true,
open(_, mark) {
return mark.attrs.addition ? '{+' : '{-';
},
close(_, mark) {
return mark.attrs.addition ? '+}' : '-}';
},
},
});

View file

@ -1,46 +1,35 @@
/* eslint-disable class-methods-use-this */
import { escape } from 'lodash';
import { Mark } from 'tiptap';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class InlineHTML extends Mark {
get name() {
return 'inline_html';
}
get schema() {
return {
excludes: '',
attrs: {
tag: {},
title: { default: null },
export default () => ({
name: 'inline_html',
schema: {
excludes: '',
attrs: {
tag: {},
title: { default: null },
},
parseDOM: [
{
tag: 'sup, sub, kbd, q, samp, var',
getAttrs: (el) => ({ tag: el.nodeName.toLowerCase() }),
},
parseDOM: [
{
tag: 'sup, sub, kbd, q, samp, var',
getAttrs: (el) => ({ tag: el.nodeName.toLowerCase() }),
},
{
tag: 'abbr',
getAttrs: (el) => ({ tag: 'abbr', title: el.getAttribute('title') }),
},
],
toDOM: (node) => [node.attrs.tag, { title: node.attrs.title }, 0],
};
}
get toMarkdown() {
return {
mixable: true,
open(state, mark) {
return `<${mark.attrs.tag}${
mark.attrs.title ? ` title="${state.esc(escape(mark.attrs.title))}"` : ''
}>`;
{
tag: 'abbr',
getAttrs: (el) => ({ tag: 'abbr', title: el.getAttribute('title') }),
},
close(state, mark) {
return `</${mark.attrs.tag}>`;
},
};
}
}
],
toDOM: (node) => [node.attrs.tag, { title: node.attrs.title }, 0],
},
toMarkdown: {
mixable: true,
open(state, mark) {
return `<${mark.attrs.tag}${
mark.attrs.title ? ` title="${state.esc(escape(mark.attrs.title))}"` : ''
}>`;
},
close(_, mark) {
return `</${mark.attrs.tag}>`;
},
},
});

View file

@ -1,11 +1,11 @@
/* eslint-disable class-methods-use-this */
import { Italic as BaseItalic } from 'tiptap-extensions';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class Italic extends BaseItalic {
get toMarkdown() {
return defaultMarkdownSerializer.marks.em;
}
}
export default () => ({
name: 'italic',
schema: {
parseDOM: [{ tag: 'em' }],
toDOM: () => ['em', 0],
},
toMarkdown: defaultMarkdownSerializer.marks.em,
});

View file

@ -1,21 +1,47 @@
/* eslint-disable class-methods-use-this */
import { Link as BaseLink } from 'tiptap-extensions';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class Link extends BaseLink {
get toMarkdown() {
return {
mixable: true,
open(state, mark, parent, index) {
const open = defaultMarkdownSerializer.marks.link.open(state, mark, parent, index);
return open === '<' ? '' : open;
export default () => ({
name: 'link',
schema: {
attrs: {
href: {
default: null,
},
close(state, mark, parent, index) {
const close = defaultMarkdownSerializer.marks.link.close(state, mark, parent, index);
return close === '>' ? '' : close;
target: {
default: null,
},
};
}
}
},
inclusive: false,
parseDOM: [
{
tag: 'a[href]',
getAttrs: (dom) => ({
href: dom.getAttribute('href'),
target: dom.getAttribute('target'),
}),
},
],
toDOM: (node) => [
'a',
{
...node.attrs,
// eslint-disable-next-line @gitlab/require-i18n-strings
rel: 'noopener noreferrer nofollow',
target: node.attrs.target,
},
0,
],
},
toMarkdown: {
mixable: true,
open(state, mark, parent, index) {
const open = defaultMarkdownSerializer.marks.link.open(state, mark, parent, index);
return open === '<' ? '' : open;
},
close(state, mark, parent, index) {
const close = defaultMarkdownSerializer.marks.link.close(state, mark, parent, index);
return close === '>' ? '' : close;
},
},
});

View file

@ -1,42 +1,31 @@
/* eslint-disable class-methods-use-this */
import { Mark } from 'tiptap';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
import { HIGHER_PARSE_RULE_PRIORITY } from '../constants';
// Transforms generated HTML back to GFM for Banzai::Filter::MathFilter
export default class MathMark extends Mark {
get name() {
return 'math';
}
get schema() {
return {
parseDOM: [
// Matches HTML generated by Banzai::Filter::MathFilter
{
tag: 'code.code.math[data-math-style=inline]',
priority: HIGHER_PARSE_RULE_PRIORITY,
},
// Matches HTML after being transformed by app/assets/javascripts/behaviors/markdown/render_math.js
{
tag: 'span.katex',
contentElement: 'annotation[encoding="application/x-tex"]',
},
],
toDOM: () => ['code', { class: 'code math', 'data-math-style': 'inline' }, 0],
};
}
get toMarkdown() {
return {
escape: false,
open(state, mark, parent, index) {
return `$${defaultMarkdownSerializer.marks.code.open(state, mark, parent, index)}`;
export default () => ({
name: 'math',
schema: {
parseDOM: [
// Matches HTML generated by Banzai::Filter::MathFilter
{
tag: 'code.code.math[data-math-style=inline]',
priority: HIGHER_PARSE_RULE_PRIORITY,
},
close(state, mark, parent, index) {
return `${defaultMarkdownSerializer.marks.code.close(state, mark, parent, index)}$`;
// Matches HTML after being transformed by app/assets/javascripts/behaviors/markdown/render_math.js
{
tag: 'span.katex',
contentElement: 'annotation[encoding="application/x-tex"]',
},
};
}
}
],
toDOM: () => ['code', { class: 'code math', 'data-math-style': 'inline' }, 0],
},
toMarkdown: {
escape: false,
open(state, mark, parent, index) {
return `$${defaultMarkdownSerializer.marks.code.open(state, mark, parent, index)}`;
},
close(state, mark, parent, index) {
return `${defaultMarkdownSerializer.marks.code.close(state, mark, parent, index)}$`;
},
},
});

View file

@ -1,15 +1,18 @@
/* eslint-disable class-methods-use-this */
import { Strike as BaseStrike } from 'tiptap-extensions';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class Strike extends BaseStrike {
get toMarkdown() {
return {
open: '~~',
close: '~~',
mixable: true,
expelEnclosingWhitespace: true,
};
}
}
export default () => ({
name: 'strike',
schema: {
parseDOM: [
{
tag: 'del',
},
],
toDOM: () => ['s', 0],
},
toMarkdown: {
open: '~~',
close: '~~',
mixable: true,
expelEnclosingWhitespace: true,
},
});

View file

@ -1,9 +1,4 @@
import Playable from './playable';
import playable from './playable';
// Transforms generated HTML back to GFM for Banzai::Filter::AudioLinkFilter
export default class Audio extends Playable {
constructor() {
super();
this.mediaType = 'audio';
}
}
export default () => playable({ mediaType: 'audio' });

View file

@ -1,13 +1,19 @@
/* eslint-disable class-methods-use-this */
import { Blockquote as BaseBlockquote } from 'tiptap-extensions';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class Blockquote extends BaseBlockquote {
export default () => ({
name: 'blockquote',
schema: {
content: 'block*',
group: 'block',
defining: true,
draggable: false,
parseDOM: [{ tag: 'blockquote' }],
toDOM: () => ['blockquote', 0],
},
toMarkdown(state, node) {
if (!node.childCount) return;
defaultMarkdownSerializer.nodes.blockquote(state, node);
}
}
},
});

View file

@ -1,11 +1,15 @@
/* eslint-disable class-methods-use-this */
import { BulletList as BaseBulletList } from 'tiptap-extensions';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class BulletList extends BaseBulletList {
export default () => ({
name: 'bullet_list',
schema: {
content: 'list_item+',
group: 'block',
parseDOM: [{ tag: 'ul' }],
toDOM: () => ['ul', 0],
},
toMarkdown(state, node) {
defaultMarkdownSerializer.nodes.bullet_list(state, node);
}
}
},
});

View file

@ -1,7 +1,3 @@
/* eslint-disable class-methods-use-this */
import { CodeBlock as BaseCodeBlock } from 'tiptap-extensions';
const PLAINTEXT_LANG = 'plaintext';
// Transforms generated HTML back to GFM for:
@ -9,68 +5,67 @@ const PLAINTEXT_LANG = 'plaintext';
// - Banzai::Filter::MathFilter
// - Banzai::Filter::MermaidFilter
// - Banzai::Filter::SuggestionFilter
export default class CodeBlock extends BaseCodeBlock {
get schema() {
return {
content: 'text*',
marks: '',
group: 'block',
code: true,
defining: true,
attrs: {
lang: { default: PLAINTEXT_LANG },
},
parseDOM: [
// Matches HTML generated by Banzai::Filter::SyntaxHighlightFilter, Banzai::Filter::MathFilter, Banzai::Filter::MermaidFilter, or Banzai::Filter::SuggestionFilter
{
tag: 'pre.code.highlight',
preserveWhitespace: 'full',
getAttrs: (el) => {
const lang = el.getAttribute('lang');
if (!lang || lang === '') return {};
export default () => ({
name: 'code_block',
schema: {
content: 'text*',
marks: '',
group: 'block',
code: true,
defining: true,
attrs: {
lang: { default: PLAINTEXT_LANG },
},
parseDOM: [
// Matches HTML generated by Banzai::Filter::SyntaxHighlightFilter, Banzai::Filter::MathFilter, Banzai::Filter::MermaidFilter, or Banzai::Filter::SuggestionFilter
{
tag: 'pre.code.highlight',
preserveWhitespace: 'full',
getAttrs: (el) => {
const lang = el.getAttribute('lang');
if (!lang || lang === '') return {};
return { lang };
},
return { lang };
},
// Matches HTML generated by Banzai::Filter::MathFilter,
// after being transformed by app/assets/javascripts/behaviors/markdown/render_math.js
{
tag: 'span.katex-display',
preserveWhitespace: 'full',
contentElement: 'annotation[encoding="application/x-tex"]',
attrs: { lang: 'math' },
},
// Matches HTML generated by Banzai::Filter::MermaidFilter,
// after being transformed by app/assets/javascripts/behaviors/markdown/render_mermaid.js
{
tag: 'svg.mermaid',
preserveWhitespace: 'full',
contentElement: 'text.source',
attrs: { lang: 'mermaid' },
},
// Matches HTML generated by Banzai::Filter::SuggestionFilter,
// after being transformed by app/assets/javascripts/vue_shared/components/markdown/suggestions.vue
{
tag: '.md-suggestion',
skip: true,
},
{
tag: '.md-suggestion-header',
ignore: true,
},
{
tag: '.md-suggestion-diff',
preserveWhitespace: 'full',
getContent: (el, schema) =>
[...el.querySelectorAll('.line_content.new span')].map((span) =>
schema.text(span.innerText),
),
attrs: { lang: 'suggestion' },
},
],
toDOM: (node) => ['pre', { class: 'code highlight', lang: node.attrs.lang }, ['code', 0]],
};
}
},
// Matches HTML generated by Banzai::Filter::MathFilter,
// after being transformed by app/assets/javascripts/behaviors/markdown/render_math.js
{
tag: 'span.katex-display',
preserveWhitespace: 'full',
contentElement: 'annotation[encoding="application/x-tex"]',
attrs: { lang: 'math' },
},
// Matches HTML generated by Banzai::Filter::MermaidFilter,
// after being transformed by app/assets/javascripts/behaviors/markdown/render_mermaid.js
{
tag: 'svg.mermaid',
preserveWhitespace: 'full',
contentElement: 'text.source',
attrs: { lang: 'mermaid' },
},
// Matches HTML generated by Banzai::Filter::SuggestionFilter,
// after being transformed by app/assets/javascripts/vue_shared/components/markdown/suggestions.vue
{
tag: '.md-suggestion',
skip: true,
},
{
tag: '.md-suggestion-header',
ignore: true,
},
{
tag: '.md-suggestion-diff',
preserveWhitespace: 'full',
getContent: (el, schema) =>
[...el.querySelectorAll('.line_content.new span')].map((span) =>
schema.text(span.innerText),
),
attrs: { lang: 'suggestion' },
},
],
toDOM: (node) => ['pre', { class: 'code highlight', lang: node.attrs.lang }, ['code', 0]],
},
toMarkdown(state, node) {
if (!node.childCount) return;
@ -95,5 +90,5 @@ export default class CodeBlock extends BaseCodeBlock {
state.write('```');
state.closeBlock(node);
}
}
},
});

View file

@ -1,22 +1,14 @@
/* eslint-disable class-methods-use-this */
import { Node } from 'tiptap';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class DescriptionDetails extends Node {
get name() {
return 'description_details';
}
export default () => ({
name: 'description_details',
get schema() {
return {
content: 'text*',
marks: '',
defining: true,
parseDOM: [{ tag: 'dd' }],
toDOM: () => ['dd', 0],
};
}
schema: {
content: 'text*',
marks: '',
defining: true,
parseDOM: [{ tag: 'dd' }],
toDOM: () => ['dd', 0],
},
toMarkdown(state, node) {
state.flushClose(1);
@ -24,5 +16,5 @@ export default class DescriptionDetails extends Node {
state.text(node.textContent, false);
state.write('</dd>');
state.closeBlock(node);
}
}
},
});

View file

@ -1,21 +1,12 @@
/* eslint-disable class-methods-use-this */
import { Node } from 'tiptap';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class DescriptionList extends Node {
get name() {
return 'description_list';
}
get schema() {
return {
content: '(description_term+ description_details+)+',
group: 'block',
parseDOM: [{ tag: 'dl' }],
toDOM: () => ['dl', 0],
};
}
export default () => ({
name: 'description_list',
schema: {
content: '(description_term+ description_details+)+',
group: 'block',
parseDOM: [{ tag: 'dl' }],
toDOM: () => ['dl', 0],
},
toMarkdown(state, node) {
state.write('<dl>\n');
@ -24,5 +15,5 @@ export default class DescriptionList extends Node {
state.ensureNewLine();
state.write('</dl>');
state.closeBlock(node);
}
}
},
});

View file

@ -1,28 +1,18 @@
/* eslint-disable class-methods-use-this */
import { Node } from 'tiptap';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class DescriptionTerm extends Node {
get name() {
return 'description_term';
}
get schema() {
return {
content: 'text*',
marks: '',
defining: true,
parseDOM: [{ tag: 'dt' }],
toDOM: () => ['dt', 0],
};
}
export default () => ({
name: 'description_term',
schema: {
content: 'text*',
marks: '',
defining: true,
parseDOM: [{ tag: 'dt' }],
toDOM: () => ['dt', 0],
},
toMarkdown(state, node) {
state.flushClose(state.closed && state.closed.type === node.type ? 1 : 2);
state.write('<dt>');
state.text(node.textContent, false);
state.write('</dt>');
state.closeBlock(node);
}
}
},
});

View file

@ -1,22 +1,12 @@
/* eslint-disable class-methods-use-this */
import { Node } from 'tiptap';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class Details extends Node {
get name() {
return 'details';
}
get schema() {
return {
content: 'summary block*',
group: 'block',
parseDOM: [{ tag: 'details' }],
toDOM: () => ['details', { open: true, onclick: 'return false', tabindex: '-1' }, 0],
};
}
export default () => ({
name: 'details',
schema: {
content: 'summary block*',
group: 'block',
parseDOM: [{ tag: 'details' }],
toDOM: () => ['details', { open: true, onclick: 'return false', tabindex: '-1' }, 0],
},
toMarkdown(state, node) {
state.write('<details>\n');
state.renderContent(node);
@ -24,5 +14,5 @@ export default class Details extends Node {
state.ensureNewLine();
state.write('</details>');
state.closeBlock(node);
}
}
},
});

View file

@ -1,15 +1,6 @@
/* eslint-disable class-methods-use-this */
import { Node } from 'tiptap';
export default class Doc extends Node {
get name() {
return 'doc';
}
get schema() {
return {
content: 'block+',
};
}
}
export default () => ({
name: 'doc',
schema: {
content: 'block+',
},
});

View file

@ -1,53 +1,43 @@
/* eslint-disable class-methods-use-this */
import { Node } from 'tiptap';
// Transforms generated HTML back to GFM for Banzai::Filter::EmojiFilter
export default class Emoji extends Node {
get name() {
return 'emoji';
}
get schema() {
return {
inline: true,
group: 'inline',
attrs: {
name: {},
title: {},
moji: {},
export default () => ({
name: 'emoji',
schema: {
inline: true,
group: 'inline',
attrs: {
name: {},
title: {},
moji: {},
},
parseDOM: [
{
tag: 'gl-emoji',
getAttrs: (el) => ({
name: el.dataset.name,
title: el.getAttribute('title'),
moji: el.textContent,
}),
},
parseDOM: [
{
tag: 'gl-emoji',
getAttrs: (el) => ({
name: el.dataset.name,
title: el.getAttribute('title'),
moji: el.textContent,
}),
},
{
tag: 'img.emoji',
getAttrs: (el) => {
const name = el.getAttribute('title').replace(/^:|:$/g, '');
{
tag: 'img.emoji',
getAttrs: (el) => {
const name = el.getAttribute('title').replace(/^:|:$/g, '');
return {
name,
title: name,
moji: name,
};
},
return {
name,
title: name,
moji: name,
};
},
],
toDOM: (node) => [
'gl-emoji',
{ 'data-name': node.attrs.name, title: node.attrs.title },
node.attrs.moji,
],
};
}
},
],
toDOM: (node) => [
'gl-emoji',
{ 'data-name': node.attrs.name, title: node.attrs.title },
node.attrs.moji,
],
},
toMarkdown(state, node) {
state.write(`:${node.attrs.name}:`);
}
}
},
});

View file

@ -1,10 +1,14 @@
/* eslint-disable class-methods-use-this */
import { HardBreak as BaseHardBreak } from 'tiptap-extensions';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class HardBreak extends BaseHardBreak {
export default () => ({
name: 'hard_break',
schema: {
inline: true,
group: 'inline',
selectable: false,
parseDOM: [{ tag: 'br' }],
toDOM: () => ['br'],
},
toMarkdown(state) {
if (!state.atBlank()) state.write(' \n');
}
}
},
});

View file

@ -1,13 +1,27 @@
/* eslint-disable class-methods-use-this */
import { Heading as BaseHeading } from 'tiptap-extensions';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class Heading extends BaseHeading {
export default ({ levels = [1, 2, 3, 4, 5, 6] } = {}) => ({
name: 'heading',
schema: {
attrs: {
level: {
default: 1,
},
},
content: 'inline*',
group: 'block',
defining: true,
draggable: false,
parseDOM: levels.map((level) => ({
tag: `h${level}`,
attrs: { level },
})),
toDOM: (node) => [`h${node.attrs.level}`, 0],
},
toMarkdown(state, node) {
if (!node.childCount) return;
defaultMarkdownSerializer.nodes.heading(state, node);
}
}
},
});

View file

@ -1,11 +1,14 @@
/* eslint-disable class-methods-use-this */
import { HorizontalRule as BaseHorizontalRule } from 'tiptap-extensions';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class HorizontalRule extends BaseHorizontalRule {
export default () => ({
name: 'horizontal_rule',
schema: {
group: 'block',
parseDOM: [{ tag: 'hr' }],
toDOM: () => ['hr'],
},
toMarkdown(state, node) {
defaultMarkdownSerializer.nodes.horizontal_rule(state, node);
}
}
},
});

View file

@ -1,53 +1,48 @@
/* eslint-disable class-methods-use-this */
import { Image as BaseImage } from 'tiptap-extensions';
import { placeholderImage } from '~/lazy_loader';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
import { HIGHER_PARSE_RULE_PRIORITY } from '../constants';
export default class Image extends BaseImage {
get schema() {
return {
attrs: {
src: {},
alt: {
default: null,
},
title: {
default: null,
export default () => ({
name: 'image',
schema: {
attrs: {
src: {},
alt: {
default: null,
},
title: {
default: null,
},
},
group: 'inline',
inline: true,
draggable: true,
parseDOM: [
// Matches HTML generated by Banzai::Filter::ImageLinkFilter
{
tag: 'a.no-attachment-icon',
priority: HIGHER_PARSE_RULE_PRIORITY,
skip: true,
},
// Matches HTML generated by Banzai::Filter::ImageLazyLoadFilter
{
tag: 'img[src]:not(.emoji)',
getAttrs: (el) => {
const imageSrc = el.src;
const imageUrl =
imageSrc && imageSrc !== placeholderImage ? imageSrc : el.dataset.src || '';
return {
src: imageUrl,
title: el.getAttribute('title'),
alt: el.getAttribute('alt'),
};
},
},
group: 'inline',
inline: true,
draggable: true,
parseDOM: [
// Matches HTML generated by Banzai::Filter::ImageLinkFilter
{
tag: 'a.no-attachment-icon',
priority: HIGHER_PARSE_RULE_PRIORITY,
skip: true,
},
// Matches HTML generated by Banzai::Filter::ImageLazyLoadFilter
{
tag: 'img[src]:not(.emoji)',
getAttrs: (el) => {
const imageSrc = el.src;
const imageUrl =
imageSrc && imageSrc !== placeholderImage ? imageSrc : el.dataset.src || '';
return {
src: imageUrl,
title: el.getAttribute('title'),
alt: el.getAttribute('alt'),
};
},
},
],
toDOM: (node) => ['img', node.attrs],
};
}
],
toDOM: (node) => ['img', node.attrs],
},
toMarkdown(state, node) {
defaultMarkdownSerializer.nodes.image(state, node);
}
}
},
});

View file

@ -1,11 +1,16 @@
/* eslint-disable class-methods-use-this */
import { ListItem as BaseListItem } from 'tiptap-extensions';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class ListItem extends BaseListItem {
export default () => ({
name: 'list_item',
schema: {
content: 'paragraph block*',
defining: true,
draggable: false,
parseDOM: [{ tag: 'li' }],
toDOM: () => ['li', 0],
},
toMarkdown(state, node) {
defaultMarkdownSerializer.nodes.list_item(state, node);
}
}
},
});

View file

@ -1,10 +1,25 @@
/* eslint-disable class-methods-use-this */
import { OrderedList as BaseOrderedList } from 'tiptap-extensions';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class OrderedList extends BaseOrderedList {
export default () => ({
name: 'ordered_list',
schema: {
attrs: {
order: {
default: 1,
},
},
content: 'list_item+',
group: 'block',
parseDOM: [
{
tag: 'ol',
getAttrs: (dom) => ({
order: dom.hasAttribute('start') ? dom.getAttribute('start') + 1 : 1,
}),
},
],
toDOM: (node) => (node.attrs.order === 1 ? ['ol', 0] : ['ol', { start: node.attrs.order }, 0]),
},
toMarkdown(state, node) {
state.renderList(node, ' ', () => '1. ');
}
}
},
});

View file

@ -1,29 +1,21 @@
/* eslint-disable class-methods-use-this */
import { Node } from 'tiptap';
import { HIGHER_PARSE_RULE_PRIORITY } from '../constants';
// Transforms generated HTML back to GFM for Banzai::Filter::TaskListFilter
export default class OrderedTaskList extends Node {
get name() {
return 'ordered_task_list';
}
get schema() {
return {
group: 'block',
content: '(task_list_item|list_item)+',
parseDOM: [
{
priority: HIGHER_PARSE_RULE_PRIORITY,
tag: 'ol.task-list',
},
],
toDOM: () => ['ol', { class: 'task-list' }, 0],
};
}
export default () => ({
name: 'ordered_task_list',
schema: {
group: 'block',
content: '(task_list_item|list_item)+',
parseDOM: [
{
priority: HIGHER_PARSE_RULE_PRIORITY,
tag: 'ol.task-list',
},
],
toDOM: () => ['ol', { class: 'task-list' }, 0],
},
toMarkdown(state, node) {
state.renderList(node, ' ', () => '1. ');
}
}
},
});

View file

@ -1,24 +1,15 @@
/* eslint-disable class-methods-use-this */
import { Node } from 'tiptap';
import { defaultMarkdownSerializer } from '~/lib/prosemirror_markdown_serializer';
// Transforms generated HTML back to GFM for Banzai::Filter::MarkdownFilter
export default class Paragraph extends Node {
get name() {
return 'paragraph';
}
get schema() {
return {
content: 'inline*',
group: 'block',
parseDOM: [{ tag: 'p' }],
toDOM: () => ['p', 0],
};
}
export default () => ({
name: 'paragraph',
schema: {
content: 'inline*',
group: 'block',
parseDOM: [{ tag: 'p' }],
toDOM: () => ['p', 0],
},
toMarkdown(state, node) {
defaultMarkdownSerializer.nodes.paragraph(state, node);
}
}
},
});

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