Add latest changes from gitlab-org/gitlab@master

This commit is contained in:
GitLab Bot 2024-10-16 09:18:56 +00:00
parent 4a6597a804
commit 4565087ff3
89 changed files with 1584 additions and 332 deletions

View File

@ -2,6 +2,730 @@
documentation](doc/development/changelog.md) for instructions on adding your own
entry.
## 17.5.0 (2024-10-16)
### Added (145 changes)
- [Add X-Forwarded-To to allowed headers for email ingestion](https://gitlab.com/gitlab-org/gitlab/-/commit/e50f934dc3bcb7e1a9d85680d9c54a8ce8faebb1) by @divyamtayal ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168716))
- [Search API: Merge request support for title search_as_you_type](https://gitlab.com/gitlab-org/gitlab/-/commit/9e0d5caa5d6e07e2868a82a31b24862e06b46ee7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167432)) **GitLab Enterprise Edition**
- [Added the group select to the global timelogs report](https://gitlab.com/gitlab-org/gitlab/-/commit/9b4ed0b57d5cab002520a4fd8c9190ee5ccca459) by @zillemarco ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167238))
- [Add global work item epics feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/41c10350edd29e5046670756c9844fb0969fa6e6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168943)) **GitLab Enterprise Edition**
- [Add support for updating abuse report notes](https://gitlab.com/gitlab-org/gitlab/-/commit/25369ba6fa9a66000d8e12d9afd73e29470814f8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167011))
- [Audit merged MRs](https://gitlab.com/gitlab-org/gitlab/-/commit/de051e539c6f4cf1c26b9035fd2ccf17aec9b370) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164846)) **GitLab Enterprise Edition**
- [Add user level AI metrics API](https://gitlab.com/gitlab-org/gitlab/-/commit/838ccd4fb0c806464bced8feea26766888b98147) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166745)) **GitLab Enterprise Edition**
- [Reschedule BackfillPCiRunnerMachineBuildsProjectId migration](https://gitlab.com/gitlab-org/gitlab/-/commit/f447557e7b893457927711f9d856dc3bdb35c61d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168420))
- [Backfill runner_type, sharding_key_id columns on ci_runner_machines](https://gitlab.com/gitlab-org/gitlab/-/commit/a71538127ac2aafe0c8e9f3ffb92648811a28dd9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168651))
- [Add sharding key ci_pipeline_chat_data.project_id](https://gitlab.com/gitlab-org/gitlab/-/commit/d28b07c40ab58a4e2663847af820c0e21032770d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167729))
- [Add customize jira issue setting](https://gitlab.com/gitlab-org/gitlab/-/commit/ea22e7d7e6f3d01e32b3bb7029e46d3a3892d76c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164802)) **GitLab Enterprise Edition**
- [Create todos for expired SSH keys](https://gitlab.com/gitlab-org/gitlab/-/commit/dd9383c7162eec67bf62bcc5a9b7fbfff6768f93) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166168))
- [Implement project compliance center](https://gitlab.com/gitlab-org/gitlab/-/commit/daa6a9a5119f0d49e6b14458fcf4125dc6bed5f8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168318)) **GitLab Enterprise Edition**
- [Add search button back to the header gated by feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/e284b809076fbe43661ae47f9bf69461e41503a1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165526))
- [History rewrite: send emails after asynchronous processing](https://gitlab.com/gitlab-org/gitlab/-/commit/d0d6a197f7b255df2d2ff6390f5254dde48d47f9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167473))
- [Add Project.projectComplianceStandardsAdherence field](https://gitlab.com/gitlab-org/gitlab/-/commit/89007ca5a4a74eedfe72616c41e86b8c671b333c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168299)) **GitLab Enterprise Edition**
- [Add Project.projectComplianceStandardsAdherence field](https://gitlab.com/gitlab-org/gitlab/-/commit/9085b0ab5c92206855208e05007078697f84e6e4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168260)) **GitLab Enterprise Edition**
- [Allow disabling password auth for SSO users](https://gitlab.com/gitlab-org/gitlab/-/commit/688786b4c616ed7f93c8eb4165439427c8200df3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168111))
- [Add download button to a health-check page](https://gitlab.com/gitlab-org/gitlab/-/commit/ec0b84cfb03cbadfe22084071a5c212394b1d351) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165032)) **GitLab Enterprise Edition**
- [Release project-level security exclusions feature](https://gitlab.com/gitlab-org/gitlab/-/commit/c1a49219c245e528a81f71ae1b3f9af1c4d36379) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168271)) **GitLab Enterprise Edition**
- [Directly ingest emails by custom email in To header](https://gitlab.com/gitlab-org/gitlab/-/commit/29da1cc92ddebfb4bf90694a52d376213a274a8e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167770))
- [Add migrate_memberships to BulkImportEntities](https://gitlab.com/gitlab-org/gitlab/-/commit/21653f70ac61f2abf70a5f3fb2023aa961ceaa3e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168128))
- [Ignore column vulnerablity_count in project_statistics table](https://gitlab.com/gitlab-org/gitlab/-/commit/c4c510e6bc99e3c6f074986a01c929304168b4e3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168284))
- [Add custom license to license widget](https://gitlab.com/gitlab-org/gitlab/-/commit/f6762215a74d672c8ed4e5a3e12c1a4ca5e55457) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162488)) **GitLab Enterprise Edition**
- [Update Saml NameID related authentication errors](https://gitlab.com/gitlab-org/gitlab/-/commit/720dad3842fd826c925c379a2600b989e1bc035f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168353)) **GitLab Enterprise Edition**
- [Add /help slash command](https://gitlab.com/gitlab-org/gitlab/-/commit/647bf92af43d1d0507018fffbc7cfcc486770f17) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167876)) **GitLab Enterprise Edition**
- [Integrate SD Exclusions with Scan Diffs feature](https://gitlab.com/gitlab-org/gitlab/-/commit/1eaff0b8c33107d5f95f455c6557f548b8b8bbdf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168364)) **GitLab Enterprise Edition**
- [Create audit event for container_repository_created](https://gitlab.com/gitlab-org/gitlab/-/commit/f146d9f2eab1f1d2c67f618d4fb21888ad390948) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156037)) **GitLab Enterprise Edition**
- [Document new API endpoint `POST /deploy_keys`](https://gitlab.com/gitlab-org/gitlab/-/commit/a0bacc4da1ce546ba5b68c1908633ee88e90d2c0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167873))
- [Pull mirror API: extend response with mirror related fields](https://gitlab.com/gitlab-org/gitlab/-/commit/a2929c517696b305f94742b0d1e5b60c3ba04944) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168377))
- [Add update event handler for security policies](https://gitlab.com/gitlab-org/gitlab/-/commit/5f343163d5f088335663e3f82de6a64cfd5f857e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165572)) **GitLab Enterprise Edition**
- [Persist additional context in chat history](https://gitlab.com/gitlab-org/gitlab/-/commit/215d12834c623de975e0f277fea9a95c15cf4928) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168127)) **GitLab Enterprise Edition**
- [Model registry: Metrics for pull and push package](https://gitlab.com/gitlab-org/gitlab/-/commit/4064bf4d8fb245ec782adda654d08e3a2ca2531c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167298))
- [Add runner_type, sharding_key_id columns to ci_runner_machines](https://gitlab.com/gitlab-org/gitlab/-/commit/51f67409e49062f7340930b35edb835a7079fae4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168069))
- [Allow setting of weight on work item create](https://gitlab.com/gitlab-org/gitlab/-/commit/9c799b3ed901179eceb0cce2242e4ad66d2b4074) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168475)) **GitLab Enterprise Edition**
- [Restoration of object storage through gitlab-backup-cli](https://gitlab.com/gitlab-org/gitlab/-/commit/b6b9c6b9387e9250bff23f79ad7c71d0a0d41e2e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163389))
- [Add FK on events.personal_namespace_id](https://gitlab.com/gitlab-org/gitlab/-/commit/1829084aa298519b35ee81e067b007eef886c1be) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168320))
- [Create AbuseReportLabelType GraphQL type](https://gitlab.com/gitlab-org/gitlab/-/commit/30968b5187756fc0f171334ef52ab429778e39b3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168473))
- [Changed feature flag type from wip to beta](https://gitlab.com/gitlab-org/gitlab/-/commit/cbb6bcb6b262e4480e2ccf27fd00419da3d6b97a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167757)) **GitLab Enterprise Edition**
- [Introduce notes and notes_internal to WorkItems](https://gitlab.com/gitlab-org/gitlab/-/commit/64db46386933e53321994d4a1a20424f8b153ce4) by @joe-snyder ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168216)) **GitLab Enterprise Edition**
- [Changes for allowed_email_domain update audit event](https://gitlab.com/gitlab-org/gitlab/-/commit/7a76a2c665caddc38cbdc2011fe9d1b3e72f871a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166105))
- [Add migration and model for max retries and backoff](https://gitlab.com/gitlab-org/gitlab/-/commit/4a0d167477daf555cc89079cd64baa5407b92f36) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166119))
- [Added service ping metric for member management enabled](https://gitlab.com/gitlab-org/gitlab/-/commit/e02f9dc1a6bf952ff91377c82415d5e1661c8941) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168096)) **GitLab Enterprise Edition**
- [Add members activity tracker worker](https://gitlab.com/gitlab-org/gitlab/-/commit/5911fc82d8f0cec1190028771f870640132fa171) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167423)) **GitLab Enterprise Edition**
- [Show location and ISP in sign in from new location email](https://gitlab.com/gitlab-org/gitlab/-/commit/d6be7a24f833a2f000e903ddfd4516c2a19bf931) by @shangsuru ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163914))
- [Add project.mergeRequestViolations field on project type](https://gitlab.com/gitlab-org/gitlab/-/commit/163bd7a56baefa7d323c5d8bd331c9f34723081f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/158884)) **GitLab Enterprise Edition**
- [Added new table and API for Workflow Events](https://gitlab.com/gitlab-org/gitlab/-/commit/d2397278ebfae0ec323400fd9926ad473428cc25) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166397)) **GitLab Enterprise Edition**
- [Enable edit_branch_rules feature falg by default](https://gitlab.com/gitlab-org/gitlab/-/commit/724653c4d4cc9883ce18049be5625d2965ddb032) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166654))
- [Add job_token_policies column to CI job token allowlist](https://gitlab.com/gitlab-org/gitlab/-/commit/1156ad38b4faa8ea70735876dec644f1378cda02) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166688))
- [Add work_item_epics_ssot feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/e29682b09ab497bacdfcebfdcda0d256e7d344f1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168174)) **GitLab Enterprise Edition**
- [Update GitLab Pages version](https://gitlab.com/gitlab-org/gitlab/-/commit/59f33e5fdacad2fc90f78c11725314e168787178) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168202))
- [Alert success or file errors with model/version creation](https://gitlab.com/gitlab-org/gitlab/-/commit/c1ff9fc04813bb0a2bf759ef7d82f20c5372550c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166479))
- [Remove pypi_extract_pypi_package_model feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/85d5be158023e45cc1bc6c7a217a3c44afae6f47) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167762))
- [Model Registry ability to delete experiment](https://gitlab.com/gitlab-org/gitlab/-/commit/18eb2732ed482284d4eb2b2425aa162b86e646f1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167414))
- [Display page header and subheader](https://gitlab.com/gitlab-org/gitlab/-/commit/6509f8f185983b3dd9bce06a87a01a1da12f54c1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167612)) **GitLab Enterprise Edition**
- [Add a GraphQL mutation for updating `OrganizationUser`](https://gitlab.com/gitlab-org/gitlab/-/commit/95b9e199ee1cdf17853ad4b2f61131f4be4c940c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168037))
- [Adds a cop and a generator to initialize bigint conversion](https://gitlab.com/gitlab-org/gitlab/-/commit/fff3f8369cc87460f6fee80d62ed3516512a083d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164788))
- [Add search argument to contributed projects GraphQL query](https://gitlab.com/gitlab-org/gitlab/-/commit/addaf622c113c95022e88fb97d6b68c8d138cedb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167966))
- [Add min_access_level and programming_language_name arguments](https://gitlab.com/gitlab-org/gitlab/-/commit/39f4ff2d7b58980f6ef32d08d2a8cb4871e940d8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167962))
- [Add audit events for SD Exclusions on create, update and delete](https://gitlab.com/gitlab-org/gitlab/-/commit/bd4c946f826be442037776da4e084366060626ae) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167943)) **GitLab Enterprise Edition**
- [Add programming language filter to contributed projects GraphQL query](https://gitlab.com/gitlab-org/gitlab/-/commit/3dff73035f5b784ad929811887da716ba0638f55) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167017))
- [Model Registry ability to delete candidate](https://gitlab.com/gitlab-org/gitlab/-/commit/a39b2f0d0b4a415b9af8430abd5f273750d01793) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167718))
- [Create merge request dependency api endpoint](https://gitlab.com/gitlab-org/gitlab/-/commit/3b92612d27b4a8dec8f196cbd0e68dbaeeb081e9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166700)) **GitLab Enterprise Edition**
- [Add async index to partition table](https://gitlab.com/gitlab-org/gitlab/-/commit/b4a3ad684e40ac20b5dd3e459c6266bc88eba120) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167814))
- [Add instance level job token application settings](https://gitlab.com/gitlab-org/gitlab/-/commit/e1852d2b5b93559512feee725f4084ac3ef1395e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166952))
- [Add async index to partition table](https://gitlab.com/gitlab-org/gitlab/-/commit/68122df51808168f16c851fd4c76c4e21535fba4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167811))
- [Expose code suggestion events on GraphQL](https://gitlab.com/gitlab-org/gitlab/-/commit/29c5c9218936e4d013c87d1541226b59637adb99) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165565)) **GitLab Enterprise Edition**
- [Add sharding_key_id to ci_runners table](https://gitlab.com/gitlab-org/gitlab/-/commit/f891e25cda3463904a6c21f6e57850fea150af43) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166916))
- [Introduce group-level protected branches](https://gitlab.com/gitlab-org/gitlab/-/commit/a633fc221ff1f83b0d4f720411ffadda0f5cff69) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167753)) **GitLab Enterprise Edition**
- [Release "allow anyone to pull" feature for terraform modules](https://gitlab.com/gitlab-org/gitlab/-/commit/0df09a776924dc95bc3428c8faac2432b981439a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167739))
- [Update API and docs to account for non-billable promotions](https://gitlab.com/gitlab-org/gitlab/-/commit/b42f20115b6e83c020db173240f8e8da28e764d7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167020)) **GitLab Enterprise Edition**
- [Populate personal namespace for events](https://gitlab.com/gitlab-org/gitlab/-/commit/6f6af234dee87200827153f25b107e069f494c01) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164979))
- [Add ml-candidate-metadata sharding-key](https://gitlab.com/gitlab-org/gitlab/-/commit/c770a2096dbaf9908598289631f05eb1ba98a5ed) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167660))
- [Add aiFeatureSettings GQL query](https://gitlab.com/gitlab-org/gitlab/-/commit/659d8e03f89931638a69b1ec64c161730ad21ee2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166463)) **GitLab Enterprise Edition**
- [Ingest identifier_names of vulnerability_reads](https://gitlab.com/gitlab-org/gitlab/-/commit/f42afba65294540e03067cc950fb1d20e6f70dc8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163086))
- [Auto-ban duplicate users when a user is banned](https://gitlab.com/gitlab-org/gitlab/-/commit/0ac977cc965ad2664a7fe02dc8387d44a8dafe78) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166673))
- [Add new project redirect route to spec](https://gitlab.com/gitlab-org/gitlab/-/commit/b7cebc25cca7bdaae2751b20b7663db8fb960db2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165889))
- [Add Duo permission ability to vulnerability report](https://gitlab.com/gitlab-org/gitlab/-/commit/35a30d05511e5f4a8c87962193ed4589abf8ab7a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167583)) **GitLab Enterprise Edition**
- [Add UserActivity class](https://gitlab.com/gitlab-org/gitlab/-/commit/4dff8c5eea8efdcc227b85e7a4e3af8ffd92d855) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167035)) **GitLab Enterprise Edition**
- [Add a link to navigate to the CI/CD analytics on the pipelines page](https://gitlab.com/gitlab-org/gitlab/-/commit/4cd78d7504f49934c247ce819d384a0349cd46bb) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167311))
- [Enable CI job token authorizations log](https://gitlab.com/gitlab-org/gitlab/-/commit/329342b4b12b9a20e84c9a5f460e2513a8301cef) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167416))
- [Model Registry ability to load model](https://gitlab.com/gitlab-org/gitlab/-/commit/9e2df64ca337ac3883e038a4ffabb54aba06c422) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165815))
- [Add migrate_memberships to bulk_import_config](https://gitlab.com/gitlab-org/gitlab/-/commit/70bccda6c6ee42de11d2353c33a3e542ad07b8c0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167056))
- [Add duo free access ending alert banner](https://gitlab.com/gitlab-org/gitlab/-/commit/f8ddc764202b359e7aa085999684d02062526b25) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167061)) **GitLab Enterprise Edition**
- [Delete stale npm metadata caches with background migration](https://gitlab.com/gitlab-org/gitlab/-/commit/f4d4ca9921889a52190f5f2f894e31800d54ab9c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165813))
- [Add suffix strategy selector](https://gitlab.com/gitlab-org/gitlab/-/commit/ceb2fa2c7fb2e4d8d1f4f9ece3a7bbe04ce7eb95) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166549)) **GitLab Enterprise Edition**
- [Save draft data in storage](https://gitlab.com/gitlab-org/gitlab/-/commit/9de95c47c3e44b6bec50d07f908b76b9d0939580) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166586))
- [Add ability to remove resolved vulnerabilities](https://gitlab.com/gitlab-org/gitlab/-/commit/32e3c13a5985d73e991473594ae118f72417d1f0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166914)) **GitLab Enterprise Edition**
- [Add description field environments API](https://gitlab.com/gitlab-org/gitlab/-/commit/345f30d175d5ba270dbd31ad72871524a0242b4f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167079))
- [Expose `has_vulnerability_resolution` via GraphQL](https://gitlab.com/gitlab-org/gitlab/-/commit/7f704def79735d36a980e72fc8b957d2e6a5860c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166312)) **GitLab Enterprise Edition**
- [Add description text field to environment details](https://gitlab.com/gitlab-org/gitlab/-/commit/093182d3e38039e69d8cf5a2e0d591357208a7a9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167062))
- [Add description field to environment (BE & DB)](https://gitlab.com/gitlab-org/gitlab/-/commit/c963b54cdfa00a5f21c9ac6905e7cb6a4f740a7a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166941))
- [Create the snooze and un-snooze todos mutations](https://gitlab.com/gitlab-org/gitlab/-/commit/9331b24be15f604234eb7b04646dfacba82f8aa9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164262))
- [Filter merge trains by branch param](https://gitlab.com/gitlab-org/gitlab/-/commit/ce725c21a1eaa08b94942661de0bed6b6027fd9d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166949)) **GitLab Enterprise Edition**
- [Introduce a delete MR dependency api endpoint](https://gitlab.com/gitlab-org/gitlab/-/commit/fb1ae36c0f4fb5d29a9d6e5e4cf5be84e108139d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166339)) **GitLab Enterprise Edition**
- [Add `include_personal` argument to contributed projects GraphQL query](https://gitlab.com/gitlab-org/gitlab/-/commit/616f6dfb10be465829ab41e64638fa02c7a772d8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167174))
- [GraphQL: Add `aggregate` field to PipelineAnalytics](https://gitlab.com/gitlab-org/gitlab/-/commit/719e68074bf30bb9f224d16b0c162bab503db360) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165549))
- [Update Llm completion for VR suggestion](https://gitlab.com/gitlab-org/gitlab/-/commit/cb4252ae300cfe7ed7396922ebf692fbee8bf0f0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166230)) **GitLab Enterprise Edition**
- [Add source-branch filter](https://gitlab.com/gitlab-org/gitlab/-/commit/dfa9283d8c1aee78b05f3f1d3f4872d08b52c8fe) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/156491))
- [Enable Ruby support for GitLab Advanced SAST](https://gitlab.com/gitlab-org/gitlab/-/commit/a319102766075cb2597a1365f28b602a246584b0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165943))
- [Add ingestion for EPSS data into GitLab DB](https://gitlab.com/gitlab-org/gitlab/-/commit/6a17d43561196e6165c8ec1560ec3bdc4e520660) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164348)) **GitLab Enterprise Edition**
- [Remove feature flag vulnerability_resolution_ga](https://gitlab.com/gitlab-org/gitlab/-/commit/c5456f1548914668659ac06a67dafe9003a96988) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166354)) **GitLab Enterprise Edition**
- [Added membership_modified_by_admin_event](https://gitlab.com/gitlab-org/gitlab/-/commit/7a71e994d79cd3ba9752ce50df32cb54bc194bd1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163631)) **GitLab Enterprise Edition**
- [Protected branches API: support `deploy_key_id`](https://gitlab.com/gitlab-org/gitlab/-/commit/ffa03ce93bdfb03a2ceb8b86d87cc596bbc6583c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166598)) **GitLab Enterprise Edition**
- [Remove loose_foreign_keys_update_column_to feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/4b159a7f0c266274ed4ff8a4f9bdbacd1d79259c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167006))
- [Add an empty state for MR approvals per branch](https://gitlab.com/gitlab-org/gitlab/-/commit/85ad6180f1d95e55bab21b24875a8298bf60285d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166996)) **GitLab Enterprise Edition**
- [Adds GitlabSubscriptions::SeatAssignment model](https://gitlab.com/gitlab-org/gitlab/-/commit/563a3eb96a81844a5bb495c3812335a4e4ec1b79) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164799)) **GitLab Enterprise Edition**
- [Backfill for `vulnerability_reads.has_vulnerability_resolution`](https://gitlab.com/gitlab-org/gitlab/-/commit/5db7c9bf3c95d2185e71ece8e3856036277ee1c7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166110)) **GitLab Enterprise Edition**
- [Elasticsearch: Merge requests with title completion](https://gitlab.com/gitlab-org/gitlab/-/commit/eac40c5be6b672138a38c6623ab3edb0101a1032) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166751)) **GitLab Enterprise Edition**
- [Add min_access_level argument to contributed projects GraphQL query](https://gitlab.com/gitlab-org/gitlab/-/commit/d79ebab6a1b1ed1ba8a1f7c19b8c3977a7dffbc7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166409))
- [Use CycloneDX SBOMs licenses in license scanner](https://gitlab.com/gitlab-org/gitlab/-/commit/abdfd55584c321e43e4b427f6d2bd03dc8b4c7aa) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162631)) **GitLab Enterprise Edition**
- [Add backticks to GitHub import user mentions](https://gitlab.com/gitlab-org/gitlab/-/commit/46dd8d71f2912a2fce793158657e0afecedf48bc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166635))
- [Support for editing the model version description in the model registry](https://gitlab.com/gitlab-org/gitlab/-/commit/2ae4f7108fcbbc5112bb1795df28ec3205517094) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165539))
- [Add column 'max_number_of_vulnerabilities' to 'project_settings' table](https://gitlab.com/gitlab-org/gitlab/-/commit/a25e82643726a3f06f019c0fe9461808edf8c4f4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166578))
- [Add RewriteHistoryWorker to asynchronously rewrite repository history](https://gitlab.com/gitlab-org/gitlab/-/commit/9b8bb4a8cf2e750ad47c8c7e983f1440d05f58f8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162306))
- [Protected tags API: support `deploy_key_id`](https://gitlab.com/gitlab-org/gitlab/-/commit/5e428dfbbebc0692968757d1109f2fb8c0c84fc2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166866)) **GitLab Enterprise Edition**
- [Remove work_item_epics_rollout feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/3efdcc118619284090d23a08ffb66ed9ce7b6a7e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165338))
- [Add cron info to pipeline schedules table](https://gitlab.com/gitlab-org/gitlab/-/commit/1013d760aaa17eaf5f515d4c5265ffa5daed005f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166547))
- [Add subscribed argument to issues query](https://gitlab.com/gitlab-org/gitlab/-/commit/738d8e2cdac5d3b633a1238426b7a6cde8c4133e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/134807))
- [Initial checkin for Banner](https://gitlab.com/gitlab-org/gitlab/-/commit/9bc518e510d2e45905c6bec6048e4f9e6eabaaa5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165756)) **GitLab Enterprise Edition**
- [Change relationship type of linked items via drag & drop](https://gitlab.com/gitlab-org/gitlab/-/commit/97bdd0a47b648241d90a23f6b58eb17e8c3f0edd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164296))
- [Remove references to gitlab_com_duo_pro_bulk_user_assignment](https://gitlab.com/gitlab-org/gitlab/-/commit/6d3312d46ddefb2eb0799bb8a35242cdf08d446a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166747))
- [Add rails endpoinds for workflow status updates](https://gitlab.com/gitlab-org/gitlab/-/commit/16ee928bc5e7d6e16d0feda57e710dc6d2de30d9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165818)) **GitLab Enterprise Edition**
- [Add event handlers for security policies changes](https://gitlab.com/gitlab-org/gitlab/-/commit/a9182c9344c1785fe80b2a9a2f14241b59ac633d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165569)) **GitLab Enterprise Edition**
- [Add API endpoint to publish CI Catalog Resource Version](https://gitlab.com/gitlab-org/gitlab/-/commit/9db6aa7ed4820488e817096759d8d4d10622032d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164858))
- [Add language filter to projects GraphQL query](https://gitlab.com/gitlab-org/gitlab/-/commit/935b8fd064877aec1f37556a569d3eee8b47dcf9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166098))
- [Database changes for splitting microsoft applications](https://gitlab.com/gitlab-org/gitlab/-/commit/6467dddd1286a663877d2b8b9d5cc41bbddfe5da) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164377))
- [Add vuln counts to container regsitry page](https://gitlab.com/gitlab-org/gitlab/-/commit/70c9d6928209e1d6504c94dbf0d46bc4ac4d26fb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/161994))
- [Add license checks to group level work items ability checks](https://gitlab.com/gitlab-org/gitlab/-/commit/6800de2b04e5ddab1937d36ba2891ea19a889aea) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165909))
- [Add log fingerprint to the created issue](https://gitlab.com/gitlab-org/gitlab/-/commit/3cb1073119f2be42d85dd605ddf27ba5b855061d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166214)) **GitLab Enterprise Edition**
- [Add min_access_level argument to Projects GraphQL query](https://gitlab.com/gitlab-org/gitlab/-/commit/1f94c52f172b45be3fb72d5a613bf76e97d59368) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166376))
- [Add graphql mutations for project security exclusions](https://gitlab.com/gitlab-org/gitlab/-/commit/1d3f7c7c1336f708a8f03bfd25010a7208ca9235) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165396)) **GitLab Enterprise Edition**
- [Admin API Endpoint: Token Info](https://gitlab.com/gitlab-org/gitlab/-/commit/142cca525f054dae36fdaf9b1368f7c7db9246f9) by @nwittstruck ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165157))
- [Release "allow anyone to pull" feature for group-level maven endpoints](https://gitlab.com/gitlab-org/gitlab/-/commit/c4ff30e55761c74c20d4776e724bfb58e8e91f01) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166115))
- [Add artifacts archive setting](https://gitlab.com/gitlab-org/gitlab/-/commit/f8d5adce372ebbac2dd1036f658c32961f5019eb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166496))
- [Release "allow anyone to pull" feature for group-level NuGet endpoints](https://gitlab.com/gitlab-org/gitlab/-/commit/e3020839c59d094d1058b89ccc87a3a9913e785a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164325))
- [Delete `custom_ability_admin_runners` feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/68efeab37432d0579da5c16065b0f93c086398f1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163234)) **GitLab Enterprise Edition**
- [Persist approval_policy_rule_id for scan_result_policy_violations](https://gitlab.com/gitlab-org/gitlab/-/commit/5068afd1791dfec1817b7f3275ddab680d3ae6d0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164808)) **GitLab Enterprise Edition**
- [Move the zoekt_repository to failed if retries_left gets 0](https://gitlab.com/gitlab-org/gitlab/-/commit/11fdad2ff35c1707d03651142bf21428de7d02d2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165187)) **GitLab Enterprise Edition**
- [Rename and add fields additional context rest api](https://gitlab.com/gitlab-org/gitlab/-/commit/96006484858a7c8cd5b369f20185e87515ee6d14) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164944)) **GitLab Enterprise Edition**
- [Show SBOM reports errors on the pipeline security and licenses tabs](https://gitlab.com/gitlab-org/gitlab/-/commit/1f079c0ae6293aff0bf95597001a6c9a56419e96) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/161235)) **GitLab Enterprise Edition**
- [Enable dependency_scanning_using_sbom_reports by](https://gitlab.com/gitlab-org/gitlab/-/commit/b44bc52692676d7894aaa2c363cb845e12b75491) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165775)) **GitLab Enterprise Edition**
- [Add aiSelfHostedModelFeatureSettings query](https://gitlab.com/gitlab-org/gitlab/-/commit/b26d01ea4138e0e2585e8dc2831271f8ab7a3aea) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166315)) **GitLab Enterprise Edition**
- [Add merge_after attribute to MergeRequest](https://gitlab.com/gitlab-org/gitlab/-/commit/c36f582d9f5134693add8cde163744ec2344337f) by @Taucher2003 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165092))
- [Suspend/Resume flux reconciliation from the UI](https://gitlab.com/gitlab-org/gitlab/-/commit/9e94ac3afdd5a91464498e1ae721f25339cab13b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165955))
### Fixed (132 changes)
- [Protected containers: Push protection for admin users](https://gitlab.com/gitlab-org/gitlab/-/commit/443b67e0f0a7aa50f6a34b88c2acccc2f69f6b63) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157464))
- [Prevent submitting form when pressing enter in transfer location search](https://gitlab.com/gitlab-org/gitlab/-/commit/4326a77740e85de613744ef3ba84278f9c4300db) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168440))
- [Revert "Fix Helm chart appVersion not being quoted in index.yaml"](https://gitlab.com/gitlab-org/gitlab/-/commit/f5468087f7ce77a04f14d054817dfc3be8145b01) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/169141))
- [Cloud Connector sync: Read license from DB](https://gitlab.com/gitlab-org/gitlab/-/commit/24faba75877ffc5454e98c6b83fc30570587d1c9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168796)) **GitLab Enterprise Edition**
- [Revert "Merge branch 'sc1-optimise-concurrency-tracking' into 'master'"](https://gitlab.com/gitlab-org/gitlab/-/commit/58924e97585f2fe2f5c6cac3ca1bf513ed67f03a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/169050))
- [Fix handling of loading secrets with empty section](https://gitlab.com/gitlab-org/gitlab/-/commit/c25f903f3cff73bb47b2d1ee9ade9febfd170b07) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168902))
- [Merge requests API: fix cache for "with_labels_details" argument](https://gitlab.com/gitlab-org/gitlab/-/commit/3d7e2858794c7a44225b1c6e8e9ed08095fd4e08) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167440))
- [Labels page: Fix vertical alignment and badge](https://gitlab.com/gitlab-org/gitlab/-/commit/6bdc6cb4fd6069f1c821150ca5f64efaf662a7c7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168932))
- [Prevent non-ASCII names](https://gitlab.com/gitlab-org/gitlab/-/commit/21020627671ee03012b5f1e8637d11725fc732e0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168899))
- [Mini Pipeline graph: Fix height of item and alignment of retry](https://gitlab.com/gitlab-org/gitlab/-/commit/f964a98df5ebf6221ec72539045569051fb08a53) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168798))
- [Add response-content-disposition to url in Workhorse.send_url](https://gitlab.com/gitlab-org/gitlab/-/commit/eeb0598b35e889dc96aa108d59bb36363603643f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167015))
- [PullMirrors::UpdateService: remove previous data after mirror's update](https://gitlab.com/gitlab-org/gitlab/-/commit/c7e9b840d177c74b5dbd208b01d81c3ea2e3c523) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168417)) **GitLab Enterprise Edition**
- [Update export to not hard fail when one batch export fails](https://gitlab.com/gitlab-org/gitlab/-/commit/1e8e9abe799782a8b97c1fdf37cded83d04167b0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168768))
- [Requeue BackfillPCiPipelineVariablesProjectId](https://gitlab.com/gitlab-org/gitlab/-/commit/3afb5bb404dce203a98d2ee5937683d023857803) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168493))
- [Show pending project members on pending members page](https://gitlab.com/gitlab-org/gitlab/-/commit/46f919a9d646abf1003c3d3e2b69b4cce9e43c7d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167481)) **GitLab Enterprise Edition**
- [fix: Use hash reference for resolving security finding CWE identifier](https://gitlab.com/gitlab-org/gitlab/-/commit/bb508ac16ed279a5c5611609d3ddbc8ae532efcd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168658)) **GitLab Enterprise Edition**
- [Fix access to job logs for anonymous users](https://gitlab.com/gitlab-org/gitlab/-/commit/9186689cdeca4d14511ab43d5d1484093b77588c) by @Taucher2003 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168125))
- [Allow self registered user to trigger user_create hook](https://gitlab.com/gitlab-org/gitlab/-/commit/54a93bc65ed684c1954ed13c0db974e91e18c11a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167867))
- [Reset ci_deleted_objects#pick_up_at](https://gitlab.com/gitlab-org/gitlab/-/commit/bd32a37d9de7e462463ce7e8a38f65c4b4ce0b10) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165778))
- [Wrap source user reassignments in a lock](https://gitlab.com/gitlab-org/gitlab/-/commit/e3970a7de431f76f223a486194fd203928150adf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167765))
- [Fix #root_ancestor when parent_id is defined](https://gitlab.com/gitlab-org/gitlab/-/commit/052bab7f670d09d4b16e0b909da7424e39ef0cda) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168149))
- [Fix project_settings#has_vulnerabilities data inconsistency issue](https://gitlab.com/gitlab-org/gitlab/-/commit/620686bcb7852527c4f5a1ec5bc6a8dedb729dbc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167933))
- [Send correct namespace for the Flux resource](https://gitlab.com/gitlab-org/gitlab/-/commit/a318f28e48c75c95eb37de7ef3dd9e7e28d124d8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168571))
- [ansi2json: Handle multiple CRs in line endings](https://gitlab.com/gitlab-org/gitlab/-/commit/713116ba1e34d9b7bfa40c32cb35841bf5f782e8) by @lb90 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167050))
- [Pipeline Graph: Fix badge text color and card header in darkmode](https://gitlab.com/gitlab-org/gitlab/-/commit/7f60f4e8e7144c115096be37b927b8dfb448dea9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168418))
- [Fix deeplink urls for migrated epics](https://gitlab.com/gitlab-org/gitlab/-/commit/6099d8378f0705d666116dbe1c453e6aa6b671a5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167572))
- [Respect model registry and experiment visibility settings](https://gitlab.com/gitlab-org/gitlab/-/commit/416ec82806b6932dafabc7abf29fb0dd5c8d8396) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168148))
- [Add `epic` to confidentiality feature](https://gitlab.com/gitlab-org/gitlab/-/commit/1831dc9521eb13163064b2aacb560d3e48c401c1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168455)) **GitLab Enterprise Edition**
- [Flash alerts: Fix sticky position](https://gitlab.com/gitlab-org/gitlab/-/commit/6b06688a56375cf29d75e2ed5bee6170bb8843f0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167898))
- [Reset group callout for all seats used banner when deleting a member](https://gitlab.com/gitlab-org/gitlab/-/commit/0c86cba0b2f6621cdf638b96451440340d3dd6b1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168429)) **GitLab Enterprise Edition**
- [Fix min-width of user select dropdown](https://gitlab.com/gitlab-org/gitlab/-/commit/253f951e6b388279551e5c8b2707f329f3f70173) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167686))
- [Remove bottom padding on images](https://gitlab.com/gitlab-org/gitlab/-/commit/496f232b662f2580b8f599b0674e5bb1b7140257) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168423))
- [Remove vertical scrollbar on GLQL tables](https://gitlab.com/gitlab-org/gitlab/-/commit/8f03055e409b83c8a174dbb628fadcdd178686cd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168421))
- [Fix for Personal Projects Settings bug](https://gitlab.com/gitlab-org/gitlab/-/commit/5b8625a1609c755307374189d7c20e955f424252) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167066))
- [Separate UI and API checks for user impersonation](https://gitlab.com/gitlab-org/gitlab/-/commit/51c6695194966c8608b98f05285d8baa6f88ac9e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166639)) **GitLab Enterprise Edition**
- [Fix policy violations not being deleted properly](https://gitlab.com/gitlab-org/gitlab/-/commit/a1f604ff05a78dbc7f5c063d378c3241940701f8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168373)) **GitLab Enterprise Edition**
- [Prevent registration group creation changing registration_type](https://gitlab.com/gitlab-org/gitlab/-/commit/451cf1dc8049547c354c444bbd71974da168af77) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167959)) **GitLab Enterprise Edition**
- [Delete deployed Pages on Project archive](https://gitlab.com/gitlab-org/gitlab/-/commit/6a72e7eb5cfa88e10bf1db94a7bfe47448e0ab52) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168352))
- [Link compliance frameworks with pipeline execution policies](https://gitlab.com/gitlab-org/gitlab/-/commit/f6e14854631c53ee2233ba72ebc0d59396f1daf3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167970)) **GitLab Enterprise Edition**
- [Remove `go_get_handle_401_error` feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/6c0de46aefcdeb8613bd3ecced2955cea363ca3c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168338))
- [Clear draft on cancel](https://gitlab.com/gitlab-org/gitlab/-/commit/e9f9a7929b9e7ae1d9c1aacde0e170b6d4f6a8d9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168251))
- [Fix project level value stream analytics default date](https://gitlab.com/gitlab-org/gitlab/-/commit/84773751f3595e03333da412690d374490042a3c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167476))
- [Distinct select style for user mentions in RTE](https://gitlab.com/gitlab-org/gitlab/-/commit/29ec0bae734d49954daae20fdf08cf0cc7e45516) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168120))
- [Only show custom emoji from current group in frequently used emoji](https://gitlab.com/gitlab-org/gitlab/-/commit/993a7811f0da4e857d9f8771a383712d192b02ba) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167665))
- [Update CycloneDX 1.5 json schema with upstream](https://gitlab.com/gitlab-org/gitlab/-/commit/6d18ef2462a0add8a4dc622ebaee64bdc83c9400) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167829))
- [Fixes package tag not being displayed](https://gitlab.com/gitlab-org/gitlab/-/commit/eea81d108fea46106b67a5c5b624dc0ada4d7844) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168229))
- [Groups Filter - Fix pagination tree view](https://gitlab.com/gitlab-org/gitlab/-/commit/8759bd95b8ace74f648c5ebd9d17ee7dbdb2ef44) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167821))
- [Use error message from backend when updating member role](https://gitlab.com/gitlab-org/gitlab/-/commit/d566faf1e4f46ff2f99d0bb210d7bb0428aaecd9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168115)) **GitLab Enterprise Edition**
- [In Pages build use use_open_file instead of use_file](https://gitlab.com/gitlab-org/gitlab/-/commit/789a78a46b98011c6587ff161656f15c78238272) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167150))
- [Allow Instance Admin to always create projects](https://gitlab.com/gitlab-org/gitlab/-/commit/7c7a2c77fca1588f6e75c7b39f7764edc124c9da) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168021))
- [Model Registry model versions empty state typo](https://gitlab.com/gitlab-org/gitlab/-/commit/efc5115666a629ee90634343e8601d43d16a02aa) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168070))
- [Update haml markdown editor toolbar buttons to match Vue version](https://gitlab.com/gitlab-org/gitlab/-/commit/1986af18c2020bc7a77a3b77501176efdf1b5b1c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167486))
- [Recover destroyed ML model version packages](https://gitlab.com/gitlab-org/gitlab/-/commit/3f89d8f0ab46e484c5aa28ebbd7c2fb061d64e5a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165214))
- [Fix broken wiki sidebar when slugs contain special characters](https://gitlab.com/gitlab-org/gitlab/-/commit/2d2f164ec58453d8d28f37b5876c3afedee2499e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167331))
- [Drop project_id not null constraint ci_deleted_objects](https://gitlab.com/gitlab-org/gitlab/-/commit/7cb19470ae995db7d008489e884ab2abd30f377f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168024))
- [Fix link color override with increasing specificity](https://gitlab.com/gitlab-org/gitlab/-/commit/af6ef77df854356bd6c3329bad4c4e36df119b8c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167921))
- [Remove project_id FK constraint on terraform module metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/2743d2382767682865fc11e868f6c88773804a4b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167182))
- [Fix collapsed diff discussions expanding when adding a new discussion](https://gitlab.com/gitlab-org/gitlab/-/commit/e6855e9755cd6138b381346252d93e4c27075959) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167987))
- [Prevent deploy key access when owner is not a member of the project](https://gitlab.com/gitlab-org/gitlab/-/commit/9ad5f83c1ef739e56ad1ec4b002cc93473983aa7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167297))
- [Prevent approval rule from overlapping approvals count in drawer](https://gitlab.com/gitlab-org/gitlab/-/commit/bf051cfe3b11cde28172f857a51d718574de9a2c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167981)) **GitLab Enterprise Edition**
- [Handle expired CI job artifacts with orphaned projects](https://gitlab.com/gitlab-org/gitlab/-/commit/49b0c18fd57fb920d85a1a6024146216be77ce75) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167977))
- [Filter work item children and ancestors out of work item token input](https://gitlab.com/gitlab-org/gitlab/-/commit/ca7b02cbc179b42855d9a506d206047c6bdfbb0a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167247))
- [PWA: Respect the screen rotation settings of the user device](https://gitlab.com/gitlab-org/gitlab/-/commit/e269216e49a96e988abfc428a893286aac43911e) by @kurages ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166957))
- [Fix flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/6c2ee16bee3cd7d9296ecef98d7aff1fe4c7ba20) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167892))
- [Do not fetch license on Duo page when SaaS](https://gitlab.com/gitlab-org/gitlab/-/commit/4be030a6cda722426add1c69e402298c5af93eee) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167431)) **GitLab Enterprise Edition**
- [Fix Web IDE Oauth domain mismatch screen](https://gitlab.com/gitlab-org/gitlab/-/commit/5fff1ec16ed0afad01b96330ff4a7116e9d8b2e6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167598))
- [Fix for Groups Duo Subscription Bug](https://gitlab.com/gitlab-org/gitlab/-/commit/7b5f7b45b459437e9bae691e705dd9dacd5f1105) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167259)) **GitLab Enterprise Edition**
- [Fix Helm chart appVersion not being quoted in index.yaml](https://gitlab.com/gitlab-org/gitlab/-/commit/503f7688f10a703b1e6540435091967a457e60fb) by @djhoese ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166663))
- [Fix styling problems for Escalation policy rule controls](https://gitlab.com/gitlab-org/gitlab/-/commit/b37c422df6e4c2823b02ee93fb010b89724b0c32) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167675)) **GitLab Enterprise Edition**
- [Allow `:admin_runners` to clear runners cache](https://gitlab.com/gitlab-org/gitlab/-/commit/f2857a90614adfaf8b9a5c83cf0ce5fa1645d12f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166545)) **GitLab Enterprise Edition**
- [Projects::GraphsController#charts: fix URL generation](https://gitlab.com/gitlab-org/gitlab/-/commit/c644501f79b9c52a9f7a7512c6a7c0550b6d4028) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167616))
- [Handle existing resolved ocs vulns](https://gitlab.com/gitlab-org/gitlab/-/commit/4a13718607a5094a7651babd5f54dcd1d288dd23) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166593))
- [Add migration for fixing organization_id inconsistencies](https://gitlab.com/gitlab-org/gitlab/-/commit/fde998e9f5ba4de3f552fc0cdb7468f5894ed5c1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166909))
- [Only create system note on color change](https://gitlab.com/gitlab-org/gitlab/-/commit/7d801c2b540e2c99bf3fbfda89ee33c5d9871f69) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167479)) **GitLab Enterprise Edition**
- [Fix flaky logger spec](https://gitlab.com/gitlab-org/gitlab/-/commit/88a71a200c17d8ef3cce3af6f71c456dd96092c7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167159)) **GitLab Enterprise Edition**
- [Skip status checks for empty diff hashes](https://gitlab.com/gitlab-org/gitlab/-/commit/2c8627f26919e44549bf7d3fd94c45ac1be34d7c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167063)) **GitLab Enterprise Edition**
- [Fix NRE when logged out and reading merge trains via GraphQL](https://gitlab.com/gitlab-org/gitlab/-/commit/0d21ab174b1290fbfd5e34355e40fdba5df816d9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167410))
- [Allow reviewer unassign via quick action at MR creation](https://gitlab.com/gitlab-org/gitlab/-/commit/1942d99575ec486f650d6490f30e6d026be9b290) by @kingjan1999 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166379))
- [Fix counting new vulnerabilities in ingestion logic](https://gitlab.com/gitlab-org/gitlab/-/commit/0c9cd9fccdda1d9c6d377ce9af905ec1c3e6dbbd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166724)) **GitLab Enterprise Edition**
- [Fixing pipeline config issue for multiple frameworks](https://gitlab.com/gitlab-org/gitlab/-/commit/394a004f6867cbc8ce85b9675d9c040d8686b475) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166282)) **GitLab Enterprise Edition**
- [Fix authorized find in project security exclusion mutations](https://gitlab.com/gitlab-org/gitlab/-/commit/4884e709131c72f75ae7b4bd4b8dc70a2c92b252) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167340)) **GitLab Enterprise Edition**
- [Skip new branch name validation for some keypresses](https://gitlab.com/gitlab-org/gitlab/-/commit/15c65d468b77ae69379f56dce3e01dbde67cc369) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166754))
- [Remove duplicate ci status](https://gitlab.com/gitlab-org/gitlab/-/commit/474cfb9aa85945431d16fabb5e5fc7cb73bae26d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167198))
- [Make a Vulnerability a proper todo target](https://gitlab.com/gitlab-org/gitlab/-/commit/37ca3ffc0f8bbc9c032e3670f71438c83d967236) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167042)) **GitLab Enterprise Edition**
- [Add auth check to delete tag endpoint](https://gitlab.com/gitlab-org/gitlab/-/commit/1af60712cbdb0c9b42e8b65c50c19f07e589af62) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166606))
- [Handle merge when checks pass correctly in the api](https://gitlab.com/gitlab-org/gitlab/-/commit/acc30ec6270ab67c0d0f255cdce8f925c7c2c066) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166301))
- [Fix timeline style in dark mode](https://gitlab.com/gitlab-org/gitlab/-/commit/04fd023b2f93fe4673b554c1e83affdf5e6a5ce5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167230))
- [Add sass file page_bundles/todos_vue.scss](https://gitlab.com/gitlab-org/gitlab/-/commit/c5002ff2e6fbf865c09fc76605dac1ab4fe73128) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167204))
- [Adjust wording for pipeline's license tab](https://gitlab.com/gitlab-org/gitlab/-/commit/979b0bf570973153bbaf35d39a5fdb31f61f1a36) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167189)) **GitLab Enterprise Edition**
- [Fix logged out header for auto color mode](https://gitlab.com/gitlab-org/gitlab/-/commit/d723c1e02075ec2bb3aa4c32c3fb00a3c18d22cc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167158))
- [Prevent 500 errors when evaluating empty changelog configs](https://gitlab.com/gitlab-org/gitlab/-/commit/c81182ff7acac70803a6f24b08d1530a9bda9e0e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166610))
- [Initial commit for hide duo chat](https://gitlab.com/gitlab-org/gitlab/-/commit/707769340d1e6341f4793d2507c138e13dd1e168) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166225))
- [Improvements to markdown "Exit full screen" button](https://gitlab.com/gitlab-org/gitlab/-/commit/1d77947b9e02d4d46d7f187072d355bf1d9d0d90) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165838))
- [Prevent footnote backref from displaying as emoji](https://gitlab.com/gitlab-org/gitlab/-/commit/26101bc2b955756b5cc4f9c29696cbd799e0b4de) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166768))
- [Fix draft not clearing after submitting description](https://gitlab.com/gitlab-org/gitlab/-/commit/f43381765754c3012a82294264e99f88020b5edb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167069))
- [Fix error when trying to access nil commit author (via GraphQL)](https://gitlab.com/gitlab-org/gitlab/-/commit/689e8aab2b0698c160e19319012aff2f1be127b0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166951))
- [Filter out duplicate milestone results in filter search bar](https://gitlab.com/gitlab-org/gitlab/-/commit/8e696e5f22a01821039ec2958ece5abe97077f69) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166947))
- [Prevent links in project descriptions from making project rows too wide](https://gitlab.com/gitlab-org/gitlab/-/commit/956324dda2f7bb9d3ab2819d8cda7f9de7b6edb8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166930))
- [Update access level for imported protected tags](https://gitlab.com/gitlab-org/gitlab/-/commit/409ae571ce32a6c3dd3666592408fa3d8f6ad414) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166905))
- [Fix partitioning rollback for p_ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/19f7b1e7b68745d0ddea02a93a86c3b04b1160ad) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166455))
- [Allow to search for todos with commit target type](https://gitlab.com/gitlab-org/gitlab/-/commit/276c8643e217e4b6fc13bc8a440386e8d33bea6b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166744))
- [Todos: Add namespace and project target types to GraphQL](https://gitlab.com/gitlab-org/gitlab/-/commit/b6c6b4bd0dd498315a31a6619705e09016a61dd1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166744))
- [Grant Auditor users :read_package ability on the group-level](https://gitlab.com/gitlab-org/gitlab/-/commit/2b3b560064b9b02a761f7425e04e868f2aecc7e7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166753)) **GitLab Enterprise Edition**
- [Fix decreasing the project vulnerability counts](https://gitlab.com/gitlab-org/gitlab/-/commit/1d0ed78adbf80d9e853470285463094c13622c12) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166734)) **GitLab Enterprise Edition**
- [Fix Zoekt global code search](https://gitlab.com/gitlab-org/gitlab/-/commit/136233eac31c236d7061c1fee530408083a49f54) by @skel2007 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165835)) **GitLab Enterprise Edition**
- [Design management: Highlight current user handle](https://gitlab.com/gitlab-org/gitlab/-/commit/d71d0349ccf647d019e9cf9b830cca33ab65b89d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166295))
- [Model Registry version compatability with mlflow endpoint](https://gitlab.com/gitlab-org/gitlab/-/commit/46bf0d0d1127a2a7d13e3f4828ce6f888421853b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166458))
- [Restore border on pipelines table](https://gitlab.com/gitlab-org/gitlab/-/commit/2a713329ca0e6c151895fc20724de9bb02a84c8b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166645))
- [Fix incorrect gitlab-shell-check filename](https://gitlab.com/gitlab-org/gitlab/-/commit/e30f163ac684362c1536a5cd12d3ad796498fdae) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166684))
- [Enable external status checks mutation for Projects::AllBranchesRule](https://gitlab.com/gitlab-org/gitlab/-/commit/f2425195a4370a4ad6b2b76d94b94df4c59c28d7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165961)) **GitLab Enterprise Edition**
- [Sync pipeline iid with subscription](https://gitlab.com/gitlab-org/gitlab/-/commit/d7232b9a152ef599cb54dc8652157d18e2a2daa2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166538))
- [Fix misleading UI message](https://gitlab.com/gitlab-org/gitlab/-/commit/2bf0d162feb69d3986fd317ee4ddedbd42d55879) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166607)) **GitLab Enterprise Edition**
- [Broadcast message styles remove manual dark mode color override](https://gitlab.com/gitlab-org/gitlab/-/commit/d944b8c97b75633be28ac6f937cfbf958c18c59a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166589))
- [Remove add child console error](https://gitlab.com/gitlab-org/gitlab/-/commit/5b1bd1e47f965e33a14732a2135c6b467d988983) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165622))
- [Fix truncated messages for commits](https://gitlab.com/gitlab-org/gitlab/-/commit/82b2d2a26e538c927838ee886810ac0ee346957a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166327))
- [Allow POST to jwt/auth during maintenance mode](https://gitlab.com/gitlab-org/gitlab/-/commit/b4e290ea1040ee7181ec723ecdaef903e09ec487) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166322)) **GitLab Enterprise Edition**
- [Reschedule setting vulnerability counts for projects](https://gitlab.com/gitlab-org/gitlab/-/commit/ceb506aadeb5a5380d3ac7569e316edfc4ffaf8a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166471))
- [Fix page jump when reacting to work item comments](https://gitlab.com/gitlab-org/gitlab/-/commit/29f631929b05da75977be94540fef4c46164b38e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166462))
- [Fix regression not allowing clearing out runner tags](https://gitlab.com/gitlab-org/gitlab/-/commit/a4aa25b608881f9322b739dd413ff247fd041c9b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166437))
- [Fix work item skeleton loaders for extra pages](https://gitlab.com/gitlab-org/gitlab/-/commit/2b5be723081c60d5e8affaf64180f1e254122d66) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166441))
- [Send null memberRoleId instead of undefined](https://gitlab.com/gitlab-org/gitlab/-/commit/23930e78d4076a0972cd5e4777cb5d7793010844) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166432))
- [Avoid database reconnections when host disconnected from load balancer](https://gitlab.com/gitlab-org/gitlab/-/commit/934db1c7952db68b8c65c4eacaeabd684a9a8616) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166231))
- [Fix framework link in policy migration merge request](https://gitlab.com/gitlab-org/gitlab/-/commit/3ea8d2fcb90701f78317db41d473064108df9a89) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166260)) **GitLab Enterprise Edition**
- [Remove extra container classes on Auto DevOps banner](https://gitlab.com/gitlab-org/gitlab/-/commit/0b68c687821d3aac4b75f994486ac954127a2d75) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166216))
- [Check commit message for issue close pattern setting](https://gitlab.com/gitlab-org/gitlab/-/commit/ba347d799733a7b641bdc324caf6f580569f8bb0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165877))
- [Initially hide final alert on model registry artifact upload](https://gitlab.com/gitlab-org/gitlab/-/commit/900510a1eb985bf94ad6a20a79c6de93173a4dfa) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166121))
- [Consider Duo Enterprise when counting Pro users](https://gitlab.com/gitlab-org/gitlab/-/commit/f6245703cbfbfa7db6b0af35655fd9c087e25e95) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166120)) **GitLab Enterprise Edition**
- [Fix ci_owned_runners returning other groups](https://gitlab.com/gitlab-org/gitlab/-/commit/da2cabe48a2859d0f0287aef1b682282a9e82245) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165886))
- [Ensure pipeline job items in a stage have appropriate border radius](https://gitlab.com/gitlab-org/gitlab/-/commit/01e428f372da08609b1cfa65d87532147d3c42c2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165866))
- [Do not parse SSE events if not streaming](https://gitlab.com/gitlab-org/gitlab/-/commit/4830d389e0def82c2c961b8d7537580502487adf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165771)) **GitLab Enterprise Edition**
- [Fix N+1 in cluster agents resolver](https://gitlab.com/gitlab-org/gitlab/-/commit/e13cb11bc308eebd572c5876f45ef56c233c49a4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165734))
- [Fix bug where car left after branch deletion](https://gitlab.com/gitlab-org/gitlab/-/commit/76fd7acb19210c6a239fa14a2989c981e6cbac76) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165216)) **GitLab Enterprise Edition**
### Changed (205 changes)
- [Add page refresh when policy type is selected](https://gitlab.com/gitlab-org/gitlab/-/commit/1a799dc1608dbf303bb14aab383ec4462c747be3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168881)) **GitLab Enterprise Edition**
- [Remove allow_cross_joins_across_databases in finding_signature.rb](https://gitlab.com/gitlab-org/gitlab/-/commit/b37fbf55cfdde1755436dcd3f65d80504f8f2978) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168627)) **GitLab Enterprise Edition**
- [GraphQL: Rename CiJobsDurationStatistics to CiDurationStatistics](https://gitlab.com/gitlab-org/gitlab/-/commit/cc9f07ae166b46e7b0644f688b0267b46d6dc0f4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167941))
- [Added feature flag gate](https://gitlab.com/gitlab-org/gitlab/-/commit/b586b7e488fcf9d837af6085d883ac83205acc98) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168770)) **GitLab Enterprise Edition**
- [UI: Do not expire direct memberships in subgroups and projects](https://gitlab.com/gitlab-org/gitlab/-/commit/c12b4adb7e3d4a18cefa68b9cadbe8d5dda563d3) by @nwittstruck ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168183))
- [Separate notes from vulnerabilities update when dismissing](https://gitlab.com/gitlab-org/gitlab/-/commit/b1f2249ca7a9e15e4501d3cf5d1b633b394b1050) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167299)) **GitLab Enterprise Edition**
- [Update Load Performance Testing templates](https://gitlab.com/gitlab-org/gitlab/-/commit/3d609d4edfa874759a4d15d2b624ca0eee644727) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168538))
- [Use file icon for uploads](https://gitlab.com/gitlab-org/gitlab/-/commit/061346deacbe314709956951044a92b79906632e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168869))
- [Support pages deploy jobs with names other than "pages"](https://gitlab.com/gitlab-org/gitlab/-/commit/277c9f6b643c92d00101aca0f2b4b874a144f7c5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166731))
- [Remove `finding_resolver_use_pure_finder` feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/72cff03c35c3d2f24b3d9b0e9a8347411abcec99) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168882)) **GitLab Enterprise Edition**
- [Mark oauth_applications table as clusterwide](https://gitlab.com/gitlab-org/gitlab/-/commit/c54be1640371abbed26bade038ab54b1b5c692bd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162438))
- [Remove references for editor field on workspaces](https://gitlab.com/gitlab-org/gitlab/-/commit/56cbef665d316101c4fd3cf94166c563989b6f37) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167673)) **GitLab Enterprise Edition**
- [Add CI/CD Catalog wrapper to releases](https://gitlab.com/gitlab-org/gitlab/-/commit/42b7f5a1438e61adb7879d05a40badb5a92461a2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167664))
- [Load first note on work items](https://gitlab.com/gitlab-org/gitlab/-/commit/c84bb1c35438612a6e0fca57daf1497354ad0d34) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164840))
- [Update copy for free registration paths](https://gitlab.com/gitlab-org/gitlab/-/commit/383e63df9a2f81e2a5df456152060499755d8abf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168118)) **GitLab Enterprise Edition**
- [Handle mailmapped emails for ssh verified commits](https://gitlab.com/gitlab-org/gitlab/-/commit/67cada1c739a8c9a5b05220f61e9b8c7b6c425b0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167667))
- [Handle Work Item URLs in Duo Chat](https://gitlab.com/gitlab-org/gitlab/-/commit/3a11e0164a024fb2548cfe92da925a6beeb01cab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168359)) **GitLab Enterprise Edition**
- [Update license scanning documentation](https://gitlab.com/gitlab-org/gitlab/-/commit/f123ab83eb356e767d93932ebe83661ba4c955f1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168771)) **GitLab Enterprise Edition**
- [Remove delete_otp_no_webauthn feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/6559857ebc6e52bd8418d4aad62eec7504395d21) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168434))
- [Wikilinks now handle characters escpaed in title](https://gitlab.com/gitlab-org/gitlab/-/commit/3c8ab86df5175868e57733621c880f6508cc5396) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168837))
- [Set vulnerability_exports table to gitlab_sec schema](https://gitlab.com/gitlab-org/gitlab/-/commit/8f6e831cc98177cc624d90b1189ca049910f99a8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168856)) **GitLab Enterprise Edition**
- [Adjust toggle behaviour for runner registration token setting at group](https://gitlab.com/gitlab-org/gitlab/-/commit/75f7bc6376260e41e7393768bfa0cc1398e45646) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167417))
- [Skip CS components when parsing licenses from SBOM](https://gitlab.com/gitlab-org/gitlab/-/commit/c83412701871e6371664924f45043a36ccc0de44) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168828))
- [Update pipeline mini graph variables](https://gitlab.com/gitlab-org/gitlab/-/commit/86b966fbe70e0db3971c92f48c876dc82334190c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167359))
- [Enable FF enable_add_on_users_filtering by default](https://gitlab.com/gitlab-org/gitlab/-/commit/87a1593e1623b680ab3ce165ce810f03a1b335e3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168692))
- [Improve status dropdown description](https://gitlab.com/gitlab-org/gitlab/-/commit/27dcde5ec2562568382a4d79ad5984596678acaf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168025)) **GitLab Enterprise Edition**
- [Process security policies only when they are changed](https://gitlab.com/gitlab-org/gitlab/-/commit/9a72cd707663a145cde04202b8787bd64200c58b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167969)) **GitLab Enterprise Edition**
- [Settings block: Move collapsible button to left](https://gitlab.com/gitlab-org/gitlab/-/commit/b2ffdfc6c103a789597feb5087e8e2fa319d433d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168523))
- [Display an icon for closed merge requests on branches page](https://gitlab.com/gitlab-org/gitlab/-/commit/448bdc9bfd3d7aa6f050afa39221dfe2dc8ff284) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/161879))
- [Security dashboard: Update heading to use shared component](https://gitlab.com/gitlab-org/gitlab/-/commit/ce4f0cbf6234c26400173c686830d49ab93ddc45) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168644))
- [Display helper text for severity group](https://gitlab.com/gitlab-org/gitlab/-/commit/48254aa6831dcd76655071c6656b84303d2fbf75) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168372)) **GitLab Enterprise Edition**
- [Initial commit for changing admin Duo Utilization routes](https://gitlab.com/gitlab-org/gitlab/-/commit/d2f5079a8484dad1f03426dbb1b330e6448e2a57) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167989)) **GitLab Enterprise Edition**
- [Improve documentation `spp_repository_pipeline_access` settings](https://gitlab.com/gitlab-org/gitlab/-/commit/d51dd18a5b8915a392367c6b9e18e9934663deab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168560))
- [Synchronously add vulnerabilities_reads indexes](https://gitlab.com/gitlab-org/gitlab/-/commit/6af2f6d09e4af4c82acfdf7722b093301cad011b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167603))
- [Remove `ai_merge_request_reader_for_chat` feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/f191302237f5914455e5c1a167d1f4e0f23e5c74) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168684)) **GitLab Enterprise Edition**
- [Allow top level group owners to create Service Accounts in Self-Managed](https://gitlab.com/gitlab-org/gitlab/-/commit/872e801070ac439bf7c037925cb909649d612589) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163726)) **GitLab Enterprise Edition**
- [Update GlPagination to use design tokens](https://gitlab.com/gitlab-org/gitlab/-/commit/2a47780fe6fa1a9bc47d297a77da0fc029fdb45c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163581))
- [Artifacts page: Update heading to use shared component](https://gitlab.com/gitlab-org/gitlab/-/commit/7bd20124894515ae1ce661b35b5523cc4acb23df) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168643))
- [Handle permanently available deprovision parameters](https://gitlab.com/gitlab-org/gitlab/-/commit/d54104038cd259113ebc68fcf84f782535d27a73) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168383)) **GitLab Enterprise Edition**
- [Include HTML layouts in project export and project transfer emails](https://gitlab.com/gitlab-org/gitlab/-/commit/88c7f65791135f283bbb99991730f815cb7f847a) by @jimender2 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165600))
- [Fix sbom scanner to work with reported licenses](https://gitlab.com/gitlab-org/gitlab/-/commit/50a42eef656f32ae1a1848c52f6a8ada6d0e0224) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167185)) **GitLab Enterprise Edition**
- [Remove allow_cross_joins_across_databases](https://gitlab.com/gitlab-org/gitlab/-/commit/cdc23a26f715ab24136ebdbb36ed73b0449c4a8d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168447)) **GitLab Enterprise Edition**
- [Fix Vue 3 failing test](https://gitlab.com/gitlab-org/gitlab/-/commit/3892ace1ee828c30937428f9e19ceba5adcfb994) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168280)) **GitLab Enterprise Edition**
- [Fix Vue 3 failing test](https://gitlab.com/gitlab-org/gitlab/-/commit/e0fc6599f55420889ed5ae877c47542ee390cd60) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168267)) **GitLab Enterprise Edition**
- [Duo Utilization routes setup](https://gitlab.com/gitlab-org/gitlab/-/commit/d460e03b9f67873dd29b1f2d13c643befe1c7a7c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167864)) **GitLab Enterprise Edition**
- [Link project_bot user deletion audit event to its resource if possible](https://gitlab.com/gitlab-org/gitlab/-/commit/cba1c715f3156b93470a15754051b9c91928939b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167021)) **GitLab Enterprise Edition**
- [Revise and update repository xray docs](https://gitlab.com/gitlab-org/gitlab/-/commit/180b6eaacaafb88632e1702dd900094272518617) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167752))
- [Remove the beta badge for Secret push protection](https://gitlab.com/gitlab-org/gitlab/-/commit/b7f663d94c33930fbebab26e0140372b4b2880ae) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167273)) **GitLab Enterprise Edition**
- [Update push check and scanning gem to handle exclusions](https://gitlab.com/gitlab-org/gitlab/-/commit/a190168cfec90fb2ee19ba5e0efc641b196c8228) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166511)) **GitLab Enterprise Edition**
- [Update extension for docs links in misc ruby files 2](https://gitlab.com/gitlab-org/gitlab/-/commit/74bc0a4fa97dc6f3b37f6817a2ed712f73d434b4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168477)) **GitLab Enterprise Edition**
- [Add regex support for runner tag search](https://gitlab.com/gitlab-org/gitlab/-/commit/df12ac2b67a7fc055ca1add3421cd7680c3d8b25) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166508))
- [Hide bulk selection column when user doesn't allowed to delete artifacts](https://gitlab.com/gitlab-org/gitlab/-/commit/f3b4af9d910531625352bd0f4d2cb4c874399351) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168487))
- [CI/CD Admin: Use shared components](https://gitlab.com/gitlab-org/gitlab/-/commit/57dd64d19de2bae3f9100a2d80ac4c319e232d4a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168041))
- [Changing RCA prompt to new prompt](https://gitlab.com/gitlab-org/gitlab/-/commit/59bfd130faafb622d0eb35521435b6fea8f8a024) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168450)) **GitLab Enterprise Edition**
- [Send trial_type param during trial generation](https://gitlab.com/gitlab-org/gitlab/-/commit/bc0f2291b5720027fc30c5d9266a768852712913) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168265)) **GitLab Enterprise Edition**
- [Add API support for webhook feature flag events](https://gitlab.com/gitlab-org/gitlab/-/commit/904ad7a3732dc63b1a7861f8f649d298a0492470) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168442))
- [Hide blob ci status](https://gitlab.com/gitlab-org/gitlab/-/commit/ea9135fd4b09b6171e407eb82f1510763ff37420) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167950))
- [Seperate gitlab_sec updates from gitlab_main transaction](https://gitlab.com/gitlab-org/gitlab/-/commit/debda5ddb1d60fa9121ef772a349d7d00c13811a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167048)) **GitLab Enterprise Edition**
- [Add conditional mapping for elasticsearch](https://gitlab.com/gitlab-org/gitlab/-/commit/8ab8c2b4ac3bc413eda556d09ffb8765d122f456) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163946)) **GitLab Enterprise Edition**
- [Localize dates in UI](https://gitlab.com/gitlab-org/gitlab/-/commit/9baa157ba628627efced9abb5725852b7bdf3cf7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166627))
- [Convert ml_models.project_id constraint to cascade delete](https://gitlab.com/gitlab-org/gitlab/-/commit/7c5e0bc3ae8e95cdd09da9a6456fcccfb594e352) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168323))
- [Update extension for docs links in misc ruby files](https://gitlab.com/gitlab-org/gitlab/-/commit/003687ff433207cca737c0ef4351dd007eb94884) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168316)) **GitLab Enterprise Edition**
- [Update Harbor Registry illustrations](https://gitlab.com/gitlab-org/gitlab/-/commit/54542b4ef81a891f10ed218d17818b072dadceee) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168073))
- [Update extension for docs links in models and presenters](https://gitlab.com/gitlab-org/gitlab/-/commit/72c9f70908284585fad40bbe3fe88a9e9c024d3c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167865))
- [Switch to Duo Chat V2](https://gitlab.com/gitlab-org/gitlab/-/commit/b06a85a968065ff653871c4f515a2fa68038ca29) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168326))
- [Remove security_policy_bot_shared_avatar feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/e971103792d6bf4da641c3268ca36c89732fd00a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168315))
- [Update extension for docs links in ruby helpers](https://gitlab.com/gitlab-org/gitlab/-/commit/52c00c92b3a097fa5aad8ae4269683c2f725ca4e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167566))
- [Add bold font for status filter](https://gitlab.com/gitlab-org/gitlab/-/commit/1d4e785949c26ba2575d34c3f8228261b3bd2cf1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168130)) **GitLab Enterprise Edition**
- [Remove group_access_request_webhooks feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/275a70a15cf2caffa3f48ba2f42aad204afa0c92) by @Taucher2003 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168279))
- [Clarify 'GitLab' term in signup error message](https://gitlab.com/gitlab-org/gitlab/-/commit/403dedde74ad70a1c066b37ae4a9e92a08bb8bcf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166904))
- [Remove gl-new-card](https://gitlab.com/gitlab-org/gitlab/-/commit/269edb35089748995dbd1ece68cabd88a9e45007) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/161737))
- [Update extension for docs links in /lib ruby files](https://gitlab.com/gitlab-org/gitlab/-/commit/8efd9495e5a82451a5283ce7826e987cc39ab8e6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167863))
- [Fix `tag` icon display in the project ref selector dropdown](https://gitlab.com/gitlab-org/gitlab/-/commit/43fb0b6f31d465b965be6222e5657379bcaacb2f) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168109))
- [Use a default value for the parameter that will be parsed by JSON.parse](https://gitlab.com/gitlab-org/gitlab/-/commit/c825dcf0db78a4cba59a6eea7b7bed211de5c028) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168103))
- [Disable heap fragmentation memory watchdog check](https://gitlab.com/gitlab-org/gitlab/-/commit/9dbaa09087500675b4bef1a9a8b2e2b2d7194386) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168100))
- [Return all linked projects/namespaces when fetching policies](https://gitlab.com/gitlab-org/gitlab/-/commit/ac81f7df2422e207cd884f215fa87d1ffd70567d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166605)) **GitLab Enterprise Edition**
- [Fix Vue 3 failing test](https://gitlab.com/gitlab-org/gitlab/-/commit/b08d1b7e8f704719b1e8ffd00093ea6edb50effb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167899)) **GitLab Enterprise Edition**
- [Allow filtering users on backend in RTE](https://gitlab.com/gitlab-org/gitlab/-/commit/4fc46eb7f89d9be90fecab3d98d14e8d61008db5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168040))
- [Add probe for checks in air-gapped instances](https://gitlab.com/gitlab-org/gitlab/-/commit/f18719c8f2e122b5ebab01c9b4ff738867fc3603) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167016)) **GitLab Enterprise Edition**
- [Add markdown version to redis cache key](https://gitlab.com/gitlab-org/gitlab/-/commit/d905c0a2b7df63f368f754dded1f990eb84dbdab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165707))
- [Allow watermarks to move from high to low for zoekt indices](https://gitlab.com/gitlab-org/gitlab/-/commit/6bc1d0c61e8015e811d53219bcfc7a615190ee09) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167996)) **GitLab Enterprise Edition**
- [Change duo trials duration logic](https://gitlab.com/gitlab-org/gitlab/-/commit/4809632e8982a345fea6cec38216ea314d92c90a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164572)) **GitLab Enterprise Edition**
- [This MR changes layout of filters](https://gitlab.com/gitlab-org/gitlab/-/commit/8909b8bed22f097ff8c90955bb9baf284a1d1b0e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/160934)) **GitLab Enterprise Edition**
- [Add watermark enum to zoekt indices](https://gitlab.com/gitlab-org/gitlab/-/commit/6499f9911c426a14e00846ce01aa450dfef7f9b6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166360))
- [Rename config_version field in workspaces table](https://gitlab.com/gitlab-org/gitlab/-/commit/e08c61cffb5e76b5e492ecb9344e4520795651d7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165876)) **GitLab Enterprise Edition**
- [Remove default for organization_id](https://gitlab.com/gitlab-org/gitlab/-/commit/d0be8f1f1d752c2af5f17099a181db78f6df5fbd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166999)) **GitLab Enterprise Edition**
- [Fixes a bug with the duo free access ending banner](https://gitlab.com/gitlab-org/gitlab/-/commit/7369b3d9715152d1b7e92fbbd01cbcafe3162539) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167926)) **GitLab Enterprise Edition**
- [Add storage watermark to zoekt indices](https://gitlab.com/gitlab-org/gitlab/-/commit/70beddf59706332696c7607ccf2e6a6e5b0f5e98) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166222)) **GitLab Enterprise Edition**
- [Add keyboard nav to boards](https://gitlab.com/gitlab-org/gitlab/-/commit/d348d55ab70daa6d59444f97560c09ddbdb98f48) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165895)) **GitLab Enterprise Edition**
- [Migrate Admin group edit page to use SettingsSection component](https://gitlab.com/gitlab-org/gitlab/-/commit/b9554daeed9972b7ab5975b9b609d0bfea64f750) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167900))
- [Update kubernates empty states illustrations](https://gitlab.com/gitlab-org/gitlab/-/commit/3ecee77258383800b4e00f4c2ca8baf421f692ac) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167681))
- [Split AI impact dashboard table into multiple panels](https://gitlab.com/gitlab-org/gitlab/-/commit/51f4e411ee958aaf213ac0bdbf291d4d31d79cfd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167057)) **GitLab Enterprise Edition**
- [Add handling big content for a drawer](https://gitlab.com/gitlab-org/gitlab/-/commit/58c5f92fe719c9e780964d846975193a5e164f5a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165395)) **GitLab Enterprise Edition**
- [Create work item: Add dividers to items in sidebar](https://gitlab.com/gitlab-org/gitlab/-/commit/8c1a7a33d852bcaee7b8110f6afd48a5e33686bd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167747))
- [Split the Value stream dashboard table into multiple panels](https://gitlab.com/gitlab-org/gitlab/-/commit/186eaf185b640b0f8935fd055af1329261fae290) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167217)) **GitLab Enterprise Edition**
- [Update extension for docs links in ci ruby files](https://gitlab.com/gitlab-org/gitlab/-/commit/917c67cbbe169bcb5bccf9bbf7606d7c26b48168) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167858))
- [Add scheduling worker to update storage used on zoekt index](https://gitlab.com/gitlab-org/gitlab/-/commit/a6b610aa5b09f68629ac6e76b5b7074360b96aa0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166403)) **GitLab Enterprise Edition**
- [Add conditional mapping for elasticsearch](https://gitlab.com/gitlab-org/gitlab/-/commit/ea2f2f9266e9928043d8de5cf14dd0e70d9599e4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163009)) **GitLab Enterprise Edition**
- [Add stat cards for filtering users](https://gitlab.com/gitlab-org/gitlab/-/commit/fbd2b2162b3615d3ba094cdcd6f4e4b883f24fbc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165403))
- [Change the order of fork information](https://gitlab.com/gitlab-org/gitlab/-/commit/6086eac82f9c041c94e5c6ff6ecafbc22754421b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167769))
- [Add an option to track_event API to send events to Snowplow](https://gitlab.com/gitlab-org/gitlab/-/commit/7472945df02616271ff4d2f1baf1265c5c9193a5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165748))
- [Discover Duo Pro: Migrate to regular card](https://gitlab.com/gitlab-org/gitlab/-/commit/92df5d1bc0d0e845e12e82ca76faab7cc73e5edb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167761)) **GitLab Enterprise Edition**
- [Update Members page](https://gitlab.com/gitlab-org/gitlab/-/commit/51a4a8d4291b3bd84ffcac06c33c61008049b87d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166384))
- [Use POST request to force unsubscribe by email clients](https://gitlab.com/gitlab-org/gitlab/-/commit/f5d93688699e4226413b8b4cc9c0dedf1c2f1008) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167196))
- [Update Locked Files page](https://gitlab.com/gitlab-org/gitlab/-/commit/043dd1e37ec6f4a91966a6548c2db0613f13834b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166529))
- [Drop randomization_seed from database load balancing log messages](https://gitlab.com/gitlab-org/gitlab/-/commit/ada9c6a52104b201302ca498db96b9f2a26ee6a8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167710))
- [Remove load_balancing_disconnect_without_verify feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/4faed9ecb481a7544645330a7cb50d5d7051d19f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167661))
- [Add new list between two lists on a board](https://gitlab.com/gitlab-org/gitlab/-/commit/0267db6915f3cbedbf8d227019d47f6cd529e8ae) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163390))
- [Make roles and permissions page visible to premium](https://gitlab.com/gitlab-org/gitlab/-/commit/c3b3600d80576cae291468bfef4748eecae8cde9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165968)) **GitLab Enterprise Edition**
- [Show specific OmniAuth buttons in signup page](https://gitlab.com/gitlab-org/gitlab/-/commit/7bcbb146b5132b2396f0ab08abc308e842d0832e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167467))
- [Consider multiple target branch pipelines for license policy](https://gitlab.com/gitlab-org/gitlab/-/commit/dd4f2d7bb1bfb064850176d2ba66790f8298c817) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165906)) **GitLab Enterprise Edition**
- [This MR adds extra check for policy scope](https://gitlab.com/gitlab-org/gitlab/-/commit/e643df59a9de62aa04d66d9d4d4f67e1bbfe472b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167601)) **GitLab Enterprise Edition**
- [Backfill PATs seven_days_notification_sent_at column](https://gitlab.com/gitlab-org/gitlab/-/commit/225aaaf4c7282caade83944b7e428a01aa1e4666) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165592))
- [Add integration test for group scope](https://gitlab.com/gitlab-org/gitlab/-/commit/5288f8483aacd247ce3d40bf7a2f0c58187ddc75) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167334)) **GitLab Enterprise Edition**
- [Update Escalation Policies empty state illustration](https://gitlab.com/gitlab-org/gitlab/-/commit/754c830c2217b3d32176082d5d411d97830b3903) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167497))
- [Format code blocks](https://gitlab.com/gitlab-org/gitlab/-/commit/1e48162be1b9b9f851c7668284ff3dbacc883c6d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167469))
- [Scope ComponentsResolver to Group or Project](https://gitlab.com/gitlab-org/gitlab/-/commit/6e3c725d3b8136385a69952d58cbfddbd9c73b55) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166493)) **GitLab Enterprise Edition**
- [Separate gitlab_main updates from gitlab_sec updates](https://gitlab.com/gitlab-org/gitlab/-/commit/e4bc163aaa5931476799ab148e8fab5bbafd54f7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167046)) **GitLab Enterprise Edition**
- [Add errors to SecurityPolicyProjectCreated subscription](https://gitlab.com/gitlab-org/gitlab/-/commit/b2181f0fd5b6ea1ae8412b785c3d175e4c428d9f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167422)) **GitLab Enterprise Edition**
- [Simplify logic to exclude rules in Scan Execution Policies](https://gitlab.com/gitlab-org/gitlab/-/commit/61ef3cdb7475d4766f663a267c423eb3a508e7d6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164804)) **GitLab Enterprise Edition**
- [Finalize UpdateWorkspacesConfigVersion3 migration](https://gitlab.com/gitlab-org/gitlab/-/commit/80ace9b0354b7e502e4726de50c14d0a60d587b3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167094))
- [Make tag content more ergonomic on commit list pages](https://gitlab.com/gitlab-org/gitlab/-/commit/ff850af3063c9b8a44b9f1bc8b8b10df8b0a497a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167343))
- [This MR updates linked SPP query](https://gitlab.com/gitlab-org/gitlab/-/commit/d06a5a37c72d2d3343c5e2fcefc4b489f467daab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167314)) **GitLab Enterprise Edition**
- [Adds to RedisStore sid](https://gitlab.com/gitlab-org/gitlab/-/commit/df89e2c30f6a5f8ca98251657219336134eed665) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167151))
- [Create loose fkeys dast_profiles_schedulus.profile_id](https://gitlab.com/gitlab-org/gitlab/-/commit/68c86edf2344a701f77164facda9425423a1de47) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164716))
- [This MR fix remove button layout](https://gitlab.com/gitlab-org/gitlab/-/commit/68af0dc3446b70ad4446ae01eb9e0f2a41659fa3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166681)) **GitLab Enterprise Edition**
- [Raise error on lock retries exhaustion](https://gitlab.com/gitlab-org/gitlab/-/commit/13c6fcf1423f88f2f3670fd7e21aacf077ea7fd4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167257))
- [Add watermark enum to zoekt indices](https://gitlab.com/gitlab-org/gitlab/-/commit/ceb0153a5aeb95f15e98313805ac64cf2b69ebe4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167112))
- [Add Changelog trailer](https://gitlab.com/gitlab-org/gitlab/-/commit/5bc45a577a78a9e2347e12a9ebabe0b311948ba7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167002))
- [Add option to skip cache with zoekt scheduling service](https://gitlab.com/gitlab-org/gitlab/-/commit/4105b9ef0e96c9eebb29287c224badc0d5d8b264) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167232)) **GitLab Enterprise Edition**
- [Align time tracking link size](https://gitlab.com/gitlab-org/gitlab/-/commit/1b6f32ed31ed38ae49b523fc97e9da6cf3a33791) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167187))
- [Show manifest media type for container registry image tag](https://gitlab.com/gitlab-org/gitlab/-/commit/e6a735df721157c0aff366cf708c9ac1855a0526) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166151))
- [Re-enable DocumentationLinks in haml-lint](https://gitlab.com/gitlab-org/gitlab/-/commit/ad7c4c12861ec99c716ad131227c74cb1b984501) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166971))
- [Remove index from SBOM tables](https://gitlab.com/gitlab-org/gitlab/-/commit/8856885ffa6934c4db995845d4d540d80174f8e7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166912))
- [Fix yaml support for monaco-editor with vite](https://gitlab.com/gitlab-org/gitlab/-/commit/f05bce4435fb73dc7756622836a2bbf2cd1b8d90) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/152660))
- [Model Registry present latest SemVer instead of ID](https://gitlab.com/gitlab-org/gitlab/-/commit/07a4734f1783fd3e87a96bc6ce94f65314e12a45) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166713))
- [Use a `label` instead of `strong` tag in a CI job token allowlist form](https://gitlab.com/gitlab-org/gitlab/-/commit/cbe5dccd1e6f2f91de0cb44a393aa43fe451db94) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166953))
- [Small update to Linked widget help copy](https://gitlab.com/gitlab-org/gitlab/-/commit/1593dabc9bbda74e532419fca2c76d24cf5cc9d4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166960))
- [Zoekt nodes skip tasks when over critical storage watermarks](https://gitlab.com/gitlab-org/gitlab/-/commit/9901138d9d30c1eeca5f0bad53387bf7fa9286d9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166750)) **GitLab Enterprise Edition**
- [Update container registry tags list toggle details icon](https://gitlab.com/gitlab-org/gitlab/-/commit/d88b345ae65d60ef27fa929da445b88f12f6451f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166746))
- [Switch from Rails.application.secrets to Rails.application.credentials](https://gitlab.com/gitlab-org/gitlab/-/commit/8a88f8cdcd177fec0104940c84bf729d748283f7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166431))
- [Ensure zoekt replica router returns distinct set of indices](https://gitlab.com/gitlab-org/gitlab/-/commit/030379350eabc7a2e0568e50d959a4d273c13bf5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167064)) **GitLab Enterprise Edition**
- [Remove meta-programming from AutoMergeService](https://gitlab.com/gitlab-org/gitlab/-/commit/4061a20cf3d3a20474b6b639aa2d5414fba2fc1c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166778))
- [This MR fix remove button layout](https://gitlab.com/gitlab-org/gitlab/-/commit/40a4150ae7e1b91ac6a9e190bede2c34018e9cbd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167060)) **GitLab Enterprise Edition**
- [Send add-on metrics during seat link sync](https://gitlab.com/gitlab-org/gitlab/-/commit/3858ff75159be51769869b0f220d7987a8fd7234) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166182)) **GitLab Enterprise Edition**
- [Set default true for pipeline mainteennce feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/f26851fd02b24fe5405c78f206cb4fb3eeebd35c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165760)) **GitLab Enterprise Edition**
- [Add link to error code to Duo Chat response](https://gitlab.com/gitlab-org/gitlab/-/commit/978738f9249d67d9e605e7f5b52923d6037cdc96) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166369)) **GitLab Enterprise Edition**
- [Avatar: Refactor img to use GlAvatar](https://gitlab.com/gitlab-org/gitlab/-/commit/f49ea7918cc90e4a0ad0e4cd8d58d66676245ea2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166472))
- [Localize dates in UI](https://gitlab.com/gitlab-org/gitlab/-/commit/ad18c79d5f7f1005602fbe21af3c96a77bd081e3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166521))
- [Remove legacy event tracking from Value Streams Dashboard](https://gitlab.com/gitlab-org/gitlab/-/commit/886d1edf74176d4d27f338e7edb64df10d47289d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166366)) **GitLab Enterprise Edition**
- [Add pages_domains not null constraint for project_id](https://gitlab.com/gitlab-org/gitlab/-/commit/2c82883aeeeb2679d4c52eaccff2b342e3390ef2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166705))
- [Update pipeline migration UI text](https://gitlab.com/gitlab-org/gitlab/-/commit/6e29c0882f0b75c033bc8a6696241707cbd6bdd5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166822)) **GitLab Enterprise Edition**
- [Allow to select multiple groups with the same name in MR approval rules](https://gitlab.com/gitlab-org/gitlab/-/commit/d50b4bc2ea10fab58d22aa322f3d67382b881639) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166818))
- [Use `GlTable` for the deployment approval settings in the add rule modal](https://gitlab.com/gitlab-org/gitlab/-/commit/b7afb50c652c9647108d88b9e6ed5550d9897ae4) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166495)) **GitLab Enterprise Edition**
- [This MR adds warning for invalid policies](https://gitlab.com/gitlab-org/gitlab/-/commit/fd7530d6921c805cd281e5a32c635a8dee4bc2ff) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164809)) **GitLab Enterprise Edition**
- [Update approval_policy_rule_id fk to nullify on delete](https://gitlab.com/gitlab-org/gitlab/-/commit/5a561fde9f5d00330a898c270beb73eacffe246f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166482)) **GitLab Enterprise Edition**
- [Remove cache when zoekt replica search FF is changed](https://gitlab.com/gitlab-org/gitlab/-/commit/850cde732dee180e89e801670ba19e8770b0150a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166752))
- [Clean up `scan_execution_policy_cache_ci_templates` feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/00745d754d82ed114e9a3f67a7d6c885bd965366) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166594)) **GitLab Enterprise Edition**
- [Update Puma to 6.4.3 and patch PID reaper](https://gitlab.com/gitlab-org/gitlab/-/commit/53dfdcd47cc0da402c188b8b069619a16d300598) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166758))
- [Domain verification: Migrate to Crud](https://gitlab.com/gitlab-org/gitlab/-/commit/ba5b53531135f866033e55b5a77b91c7528482d0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166144))
- [Let embedded videos be full width with max-width 100%](https://gitlab.com/gitlab-org/gitlab/-/commit/f482759df97eccbf2d443bd449fd262096905aff) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166016))
- [Remove default project_id from p_ci_finished_build_ch_sync_event](https://gitlab.com/gitlab-org/gitlab/-/commit/39605fb3f6540aec8901016097fbfd595df75d66) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166736)) **GitLab Enterprise Edition**
- [Update UI docs links in app/view/groups files](https://gitlab.com/gitlab-org/gitlab/-/commit/6c31e61b75adc71fbaec294f00b4e6c05be3e7ba) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166022))
- [Update UI docs links in assorted files](https://gitlab.com/gitlab-org/gitlab/-/commit/20ab7bb7049df44f3e5a76214cb088b8d40b423c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166024))
- [Update UI docs links in app/views/shared files](https://gitlab.com/gitlab-org/gitlab/-/commit/9923e0eeced8927d106a63dfd3a648ae29817ab1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166023))
- [Update UI docs links in app/view/projects files](https://gitlab.com/gitlab-org/gitlab/-/commit/bf326e77acd1a4d031100b43d2005e0214585c24) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165885))
- [Add comparison pipelines in bot comments for error cases](https://gitlab.com/gitlab-org/gitlab/-/commit/62d54c02191d13580b5a5f33465187bab55a4899) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162863)) **GitLab Enterprise Edition**
- [Fix Vue 3 failing test](https://gitlab.com/gitlab-org/gitlab/-/commit/87380270de28dd255e445abb465c4ec99d899b58) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166714)) **GitLab Enterprise Edition**
- [Made Environments > Deployment details page mobile friendly](https://gitlab.com/gitlab-org/gitlab/-/commit/72c2608b8bfe2add80bc179c0a41da1871ff5e1b) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166261)) **GitLab Enterprise Edition**
- [Show group path in group selection dropdown in purchase flow](https://gitlab.com/gitlab-org/gitlab/-/commit/bd9bb78a8350e3a6827235544222760953a1d0f7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166407)) **GitLab Enterprise Edition**
- [Renamed run pipeline button](https://gitlab.com/gitlab-org/gitlab/-/commit/8669e6924ab261f771f0185b31364e3de566eb39) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166442))
- [ACTUALLY set the schema to gitlab_sec](https://gitlab.com/gitlab-org/gitlab/-/commit/02b025571341b90fb51757da6f38c545e9dfb521) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164518)) **GitLab Enterprise Edition**
- [Update pipeline migration text and link](https://gitlab.com/gitlab-org/gitlab/-/commit/7b12f82bc8c204a8ff9330f07326c3415301d9e1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166541)) **GitLab Enterprise Edition**
- [Add an OPS FF to avoid flooding sentry with semver dialect errors](https://gitlab.com/gitlab-org/gitlab/-/commit/ff1757dee727548947a68d4de401e4326716748c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165184)) **GitLab Enterprise Edition**
- [There were several problems here:](https://gitlab.com/gitlab-org/gitlab/-/commit/ff81c8a28e30e309e71ec0a8e45ca5cc93d8154e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166644)) **GitLab Enterprise Edition**
- [There were several problems here:](https://gitlab.com/gitlab-org/gitlab/-/commit/00e47f0a14227615f78cd7b9152c9a0c82bef727) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166643)) **GitLab Enterprise Edition**
- [Remove beta mention in metadata database alert on registry pages](https://gitlab.com/gitlab-org/gitlab/-/commit/10a90861c59c883ec2b505086d3928553789d67f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166393))
- [Fix zoekt replica group search](https://gitlab.com/gitlab-org/gitlab/-/commit/544f74fce1797499f9e2016e26e6323cd4c1c12b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165862)) **GitLab Enterprise Edition**
- [Clean up `ci_conditionals_reduce_gitaly_calls` feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/90677dc202e82110363279245b257e600601887c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166590))
- [Commits: Migrate non-compliant Avatar sizes](https://gitlab.com/gitlab-org/gitlab/-/commit/339af3ff495dae0f1f5f903f0c302087ac9c7bcc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166587))
- [Show an empty state when Protected Environment has no approval rules](https://gitlab.com/gitlab-org/gitlab/-/commit/c53b3cbaa4458cbce51e6a31dde8444c9a86adc0) by @antonkalmykov ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166309)) **GitLab Enterprise Edition**
- [Update UI docs links in application_settings files](https://gitlab.com/gitlab-org/gitlab/-/commit/283a7bf85cb72c108fbff4b1aad1604687e42491) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164986))
- [Update ffi gem to v1.17.0](https://gitlab.com/gitlab-org/gitlab/-/commit/9165bb9ebef94c1ec7f74b8ad91b64f49bd262a5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166535))
- [Split remediations query from upload deletion for decomposition](https://gitlab.com/gitlab-org/gitlab/-/commit/f687d630e8e76298284b51622eed4961e594bc9b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166519)) **GitLab Enterprise Edition**
- [Do not destroy empty ML model packages](https://gitlab.com/gitlab-org/gitlab/-/commit/58a7655ed8c6a8d30d1b8e017aafc662b9ec031b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166186))
- [Finalize migration NullifyOrganizationIdForSnippets](https://gitlab.com/gitlab-org/gitlab/-/commit/5e38f8fb4af576bcdeb70e9c775cd72807f49a65) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165353))
- [Add used_storage_bytes column to zoekt indices](https://gitlab.com/gitlab-org/gitlab/-/commit/d0166780291bcd390f62e4950fc6fc45faa2ef6a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166398))
- [Modify the way dividers are generated](https://gitlab.com/gitlab-org/gitlab/-/commit/d9402cf62660462732091f99fd5ce3e312fd2633) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166351))
- [Remove cross DB transaction against dast_site_profile](https://gitlab.com/gitlab-org/gitlab/-/commit/56f54a9b8791b717b547284dace34eb5e38509ab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166147)) **GitLab Enterprise Edition**
- [Remove feature flag zoekt_create_indexing_tasks](https://gitlab.com/gitlab-org/gitlab/-/commit/82b302a23dbe07726090fbafb79f5ddc3adf603b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165978)) **GitLab Enterprise Edition**
- [Watch for k8s events changes](https://gitlab.com/gitlab-org/gitlab/-/commit/bf3c4eddc1a9663f0d5df51f48c0cb70a47b5cde) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165633))
- [Cleanup 'locked_paths_mergeability_check' FF](https://gitlab.com/gitlab-org/gitlab/-/commit/c7de1897616a9328b10561b41f370852e84c965c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166269))
- [Enable summarize_notes_with_duo by default](https://gitlab.com/gitlab-org/gitlab/-/commit/e10a45d4580f2f3c62a9a19194076ba502d750dc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165951))
- [Improve messaging for pending approval invited members](https://gitlab.com/gitlab-org/gitlab/-/commit/08f2b377991dc9d3eed049f0e854e7575f05843e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164733)) **GitLab Enterprise Edition**
- [Add loader for pipeline actions](https://gitlab.com/gitlab-org/gitlab/-/commit/6f2cca99dd7013e71b6c44ff8a9ca9a289a5ac0c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165982))
- [Hide failed jobs widget logic](https://gitlab.com/gitlab-org/gitlab/-/commit/de8ef80b303e50f5df002b4d6d1084c09e171fb4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165704))
- [Tranition vulnerability_state_transitions to gitlab_sec schema](https://gitlab.com/gitlab-org/gitlab/-/commit/059fae9e1955a2cf3cb848a558b0a4ee80d3b639) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165308)) **GitLab Enterprise Edition**
- [Localize dates within issues](https://gitlab.com/gitlab-org/gitlab/-/commit/14629109f134cefe771fd9bae4906ce760ae6632) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162278))
- [Make pages_domains.project_id not nullable](https://gitlab.com/gitlab-org/gitlab/-/commit/cc08641a24c5526020c9d2a5a1dbe36e68fbed4d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166123))
- [Permanently delete project: Remove gl-new-card classes](https://gitlab.com/gitlab-org/gitlab/-/commit/b991c6b5f2e438abc92ce011447e80c19625c101) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166142)) **GitLab Enterprise Edition**
- [Add popover for image and tag on vuln report page](https://gitlab.com/gitlab-org/gitlab/-/commit/c7d3bcdc07fa42329fbdd9b2345f15ee18a6cceb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165607))
- [Remove allow_cross_joins_across_databases](https://gitlab.com/gitlab-org/gitlab/-/commit/e9a32751e0ced515f04e20400d47bc61dfeff445) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165941)) **GitLab Enterprise Edition**
- [Only notify user who started BulkImport](https://gitlab.com/gitlab-org/gitlab/-/commit/ce513bfbb65b39c11f9fcf072c7d4d27af02d2df) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165939))
- [Update dependency ai-gateway to v1.18.0](https://gitlab.com/gitlab-org/gitlab/-/commit/a2527cb16011d0e70d90495346a04c97e702bfa9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162943))
- [Change the UX of the create model button for Model registry](https://gitlab.com/gitlab-org/gitlab/-/commit/50af6c16518313ed841f9ee757bca778a1b1a9e0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163594))
### Deprecated (6 changes)
- [Deprecate Legacy Epics on GraphQL](https://gitlab.com/gitlab-org/gitlab/-/commit/62581f85f497665bd2812028816001f2b6612974) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168182)) **GitLab Enterprise Edition**
- [Adds ContainerTagsExpirationPolicy graphql type](https://gitlab.com/gitlab-org/gitlab/-/commit/8520ad0e58baa89764afa4792fed33f581fa6112) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167126))
- [GraphQL: Deprecate CiRunnerUsageByProject.ciUsedMinutes](https://gitlab.com/gitlab-org/gitlab/-/commit/5478d93acfd7b0b187db3315c0bbe8b385a36fe3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168199))
- [GraphQL: Deprecate CiRunnerUsage.ciUsedMinutes in favor of ciDuration](https://gitlab.com/gitlab-org/gitlab/-/commit/42f76ca8db5e8fbc76907cdbcce3617b4ea6c1a8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167928))
- [Initial checkin for Issue 479384](https://gitlab.com/gitlab-org/gitlab/-/commit/f647b4769fb8b4e91ff9b5e163339bc506b1c423) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162914)) **GitLab Enterprise Edition**
- [Deprecate namespaces addOnPurchase GraphQL field](https://gitlab.com/gitlab-org/gitlab/-/commit/03437346baf040373fc8a333501031731b1cbc21) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166198)) **GitLab Enterprise Edition**
### Removed (40 changes)
- [Removed include_manual_to_pipeline_completion flag](https://gitlab.com/gitlab-org/gitlab/-/commit/2bc56b5dc023c62b6bf758bf05387c5929c6c247) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166156))
- [Clean up account_validation_email feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/b4a808a404518f5e1c242ba985c0733d1dce62ee) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167147)) **GitLab Enterprise Edition**
- [Remove identifier_external_ids column from vulnerability_reads](https://gitlab.com/gitlab-org/gitlab/-/commit/28f9ad96f1d9fd87fe2d87f4ec4ae8afb5adf87e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164883))
- [Remove cross join allowances from vuln ingestion process](https://gitlab.com/gitlab-org/gitlab/-/commit/1ed5fc3fc6cfbb00c803bf0b8acfb90e0f5aa3b3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166720)) **GitLab Enterprise Edition**
- [Model Registry removed Candidates tab](https://gitlab.com/gitlab-org/gitlab/-/commit/3c3250c058867d9cf16c29e7daaa2bd04a369490) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168510))
- [Remove flash background colors](https://gitlab.com/gitlab-org/gitlab/-/commit/942b2908713051f019567b8100e7fc5bbe06e6f0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165186))
- [Drop zoekt_shards table](https://gitlab.com/gitlab-org/gitlab/-/commit/5e109d41d6781348510073631bcf2bcbc8cb6511) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167720))
- [Remove finalized BBM that contains cross join sec decomp can't support](https://gitlab.com/gitlab-org/gitlab/-/commit/9d7077407728cff8d4c79c4f5b3fa8f8f097443d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167789)) **GitLab Enterprise Edition**
- [Delete migration BackfillSbomOccurrencesTraversalIdsAndArchived](https://gitlab.com/gitlab-org/gitlab/-/commit/c6b51ca94bb64a13dec8cce3a8e221fbf32fb072) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167597))
- [Remove Issue Analytics broken search filters](https://gitlab.com/gitlab-org/gitlab/-/commit/d7ee235aee8cb3d957c46b7c57cda0c887734847) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168246))
- [Remove BBM that cannot function post Sec Decomposition](https://gitlab.com/gitlab-org/gitlab/-/commit/ef009c0b064aab3c4869d1bd7388108c50ca0f76) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167794))
- [Remove sec-decomposition related cross join supression](https://gitlab.com/gitlab-org/gitlab/-/commit/18df0f268088c65d45d743555a99036e10fdab77) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168053)) **GitLab Enterprise Edition**
- [Remove sec-decomposition related cross join suppresion](https://gitlab.com/gitlab-org/gitlab/-/commit/acc0184d9ba7781e7a84004b5506fce02d8fb0cb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168051)) **GitLab Enterprise Edition**
- [Delete unused BBM code](https://gitlab.com/gitlab-org/gitlab/-/commit/28234fa491169243f15804434ebc536fe8336bf3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167049)) **GitLab Enterprise Edition**
- [Elasticsearch: Reindex to remove title completion](https://gitlab.com/gitlab-org/gitlab/-/commit/c3a23a84594e7028b2e6b57dcb85d136546d02f0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167887)) **GitLab Enterprise Edition**
- [Remove no longer needed cross join suppressions](https://gitlab.com/gitlab-org/gitlab/-/commit/453f74f78f897d9777655bf2ac9456e087be4a20) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167787))
- [Remove unneeded transitional cross join suppresion](https://gitlab.com/gitlab-org/gitlab/-/commit/f96eb60ccd6b42cb072b4f08bce4cbb9f7f8b195) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167682)) **GitLab Enterprise Edition**
- [Remove unneeded cross db interaction suppressions](https://gitlab.com/gitlab-org/gitlab/-/commit/f208794ce0f0007e1aa0e545fec65076ec444ed9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167679)) **GitLab Enterprise Edition**
- [Remove unneeded cross join suppresion](https://gitlab.com/gitlab-org/gitlab/-/commit/7770d64bf9d246969bd6ed994371ba787e6607d9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167676)) **GitLab Enterprise Edition**
- [Drop token_with_ivs table](https://gitlab.com/gitlab-org/gitlab/-/commit/6ba14590090f9021198593602565d751b734069b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/157650))
- [Clean up migrated prompts for self-hosted code suggestions](https://gitlab.com/gitlab-org/gitlab/-/commit/8b54635235c0c3ae1537e3dc81e284671c05c9ab) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167426)) **GitLab Enterprise Edition**
- [Remove cross DB access suppression from remediation creation](https://gitlab.com/gitlab-org/gitlab/-/commit/711062fd0f34349ac5731265cf2149f276df258e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167327)) **GitLab Enterprise Edition**
- [Remove transitional cross DB warning suppresion](https://gitlab.com/gitlab-org/gitlab/-/commit/ca06f505d35a539de02763610764269bd122de8f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167347)) **GitLab Enterprise Edition**
- [Place Product Analytics admin settings behind flag](https://gitlab.com/gitlab-org/gitlab/-/commit/716cfa9888166b030bd2034ccbb55b1dc1c1f8b1) by @max.woolf ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167192)) **GitLab Enterprise Edition**
- [Remove faulty async index definitions](https://gitlab.com/gitlab-org/gitlab/-/commit/e74a9c0b5da03c780a780f366a45355a9f75a099) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167102))
- [Remove possibly unnecessary cross join suppresion for vuln helper](https://gitlab.com/gitlab-org/gitlab/-/commit/fc24597f8d932405cdd1e6143bab27f1cf00120d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167054)) **GitLab Enterprise Edition**
- [Remove unneeded cross DB suppression](https://gitlab.com/gitlab-org/gitlab/-/commit/625f465c9b67a2a90547ed6c3f51df70b5a375d7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167044)) **GitLab Enterprise Edition**
- [Remove unneeded cross join allowances](https://gitlab.com/gitlab-org/gitlab/-/commit/d4713a3d7f75a668da0821cba134d3138921c931) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166710)) **GitLab Enterprise Edition**
- [Delete the `emoji_webhooks` feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/f5c2a454198c5ed68fdbecc6c0c2b43d266356e6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/161133))
- [Remove ci_platform_metrics and related Sidekiq code](https://gitlab.com/gitlab-org/gitlab/-/commit/e5753a8b72bff30ed22c04da1390d8c0a4be757f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165460))
- [Remove early access checkbox](https://gitlab.com/gitlab-org/gitlab/-/commit/4747e4289d13d2b201ccd58a917a383114339eb8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166776)) **GitLab Enterprise Edition**
- [Remove transitional cross join allowances](https://gitlab.com/gitlab-org/gitlab/-/commit/37816be66872d15247122cdfa946c2a16b394096) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166723)) **GitLab Enterprise Edition**
- [Remove pipeline reference from state transition](https://gitlab.com/gitlab-org/gitlab/-/commit/44b7985dca17966fa9449ec31d3dda034720c5fe) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164207))
- [Remove unneeded cross join allowance for sec decomposition](https://gitlab.com/gitlab-org/gitlab/-/commit/9b782ac7b949aeedb73f2e32830de4681536f547) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166513)) **GitLab Enterprise Edition**
- [Remove DAG code](https://gitlab.com/gitlab-org/gitlab/-/commit/9f011c483e79a2b45220d9bdfb20969f796b1f22) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166367))
- [Remove unneeded transitional cross join suppresions](https://gitlab.com/gitlab-org/gitlab/-/commit/315a0bc810df5cbea1d930bf6e4118e457bd89da) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166345)) **GitLab Enterprise Edition**
- [Drop namespace setting column toggle_security_policy_custom_ci](https://gitlab.com/gitlab-org/gitlab/-/commit/47bfeb893a9c47c5adf4bbab329f58f40f8f248f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162712))
- [Remove ensure prepared worker](https://gitlab.com/gitlab-org/gitlab/-/commit/3fdbfd37d8381c1bf1fa502dba4986c86052b1b2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166035))
- [Remove validate_target_sha_in_user_commit_files feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/dc4605da7432c2e61d29f44267ab665cbf6f6a4a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165695))
- [Remove ignore_columns for Packages::BuildInfo](https://gitlab.com/gitlab-org/gitlab/-/commit/004e48e40d75e879f2968764ab28e14f36ae1ee1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165616))
### Security (13 changes)
- [Prevent guest access to project templates](https://gitlab.com/gitlab-org/gitlab/-/commit/30cdc6ad27b6fabcedcd381eedddc306db911546)
- [Skip content when listing conflict files with types](https://gitlab.com/gitlab-org/gitlab/-/commit/00b8a6c8f52722b58d6e2f134579a2bd3aeb62a0)
- [Do not create a pipeline on MR refresh if source branch was deleted](https://gitlab.com/gitlab-org/gitlab/-/commit/480d0bd7ccdca6f93ff715abcd6c2fa7a9bebec2)
- [Escape OAuth application name on authorize page](https://gitlab.com/gitlab-org/gitlab/-/commit/18520b5abefbf3d63b39ca786274cdd388c73e97)
- [Remove access to local requests via cube query service](https://gitlab.com/gitlab-org/gitlab/-/commit/ac39cbe4c47622259b06b92f4557d697fd2a8831)
- [Prevent deploy keys from pushing code to an archived project](https://gitlab.com/gitlab-org/gitlab/-/commit/7950fe587ec01257909ee1c6f4035e4477b97c6a)
- [Hide version info from unauthorized users](https://gitlab.com/gitlab-org/gitlab/-/commit/7cc59acbd64189bc4cd6f6a3a3c829a51ac855ed)
- [Return for admin condition if user authentication with job token](https://gitlab.com/gitlab-org/gitlab/-/commit/f5e8c0286f0245eb5704c036ecabeddfc8c7d757) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167449))
- [External webhook token should be set](https://gitlab.com/gitlab-org/gitlab/-/commit/0dbce3f1a8d18540e9914abfba7d73e8eadf9a80)
- [Updates Summarize Comments LLM Prompt](https://gitlab.com/gitlab-org/gitlab/-/commit/e0ed4fc43edb5da97568a7148f0e0f40f4b41221)
- [Hide system notes with invalid references](https://gitlab.com/gitlab-org/gitlab/-/commit/975ac7740d0b5dc7026020872e73fb1b543f5aed)
- [Reset dependency proxy maven credentials when registry url is changed](https://gitlab.com/gitlab-org/gitlab/-/commit/2e3b0d702470cb6080a8cd329d9f97f27205e3e8)
- [Implement input sanitization for SummarizeComments](https://gitlab.com/gitlab-org/gitlab/-/commit/a0ff56cc58330b1b3e6ad133de203f0655a6e227)
### Performance (11 changes)
- [Update import_data sharding](https://gitlab.com/gitlab-org/gitlab/-/commit/9754abd2b504bbc2387a0c9ed822583c6919a8aa) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168391))
- [Stop creating keep-arounds on merge base commits](https://gitlab.com/gitlab-org/gitlab/-/commit/396e4a2575a30cdcff985464739a7fc2bded1fa9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168604))
- [Remove cancel_redundant_pipelines_without_hierarchy_cte feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/1de53bdea42174e149503833f02300233590ed75) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164436))
- [Use sticky data consistency for post receive worker](https://gitlab.com/gitlab-org/gitlab/-/commit/2a98ad6964b326751665c53486218ba65234de0b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168514))
- [Enable CI variables optimization for pipeline creation](https://gitlab.com/gitlab-org/gitlab/-/commit/054e53fcc54a93309111e62e9cd6835ea1ab3cc9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168061))
- [Add concurrency_limit to ProcessScanResultPolicyWorker](https://gitlab.com/gitlab-org/gitlab/-/commit/ef7ae09cb04607836017b4b0e852ad57053ca470) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168086)) **GitLab Enterprise Edition**
- [Move a field check into the query instead of the loop body](https://gitlab.com/gitlab-org/gitlab/-/commit/0187b2d63352b90b27c03d4fc744c7c2c2c0472a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168004))
- [Add deduplication to SynScanPoliciesWorker](https://gitlab.com/gitlab-org/gitlab/-/commit/6b5d93995ab52a3906e0b443970c1ee179eab85b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167965)) **GitLab Enterprise Edition**
- [Limit count query in the events APIs](https://gitlab.com/gitlab-org/gitlab/-/commit/e96c39be7fa190d9376a253414586aa93f3db9c7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166695))
- [Remove increase_diff_file_performance feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/09413b63c2005afbfe79a2f39ed16aeb2570d3f4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166036))
- [Cache Fog::Storage object for CI build chunks](https://gitlab.com/gitlab-org/gitlab/-/commit/d4a21f54f1754a59cce02221f030468ed72f5029) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165900))
### Other (146 changes)
- [Add and backfill project_id for dast_site_profiles_builds](https://gitlab.com/gitlab-org/gitlab/-/commit/15eb6afe1f8b680930c83b294f40f2518053adbc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167768))
- [Add and backfill project_id for dast_profiles_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/1d9212f7a51b38f9577c6e6211d2edeb1ff58ef9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167633))
- [Clean up send_verification_code_to_secondary_email feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/679969d736b689c018e77ca69041985e0b2436bb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166869))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/cfde235e8948ace348a879939c6b884e5852363c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168910))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/057db5079901ad14e514dfcab84d002a44ee5e32) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/169030))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/634a9262451c2d40c5c60f0a968291d96470b5fc) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168907))
- [Finalize migration BackfillBoardsEpicListsGroupId](https://gitlab.com/gitlab-org/gitlab/-/commit/2a11dd992de0d0c047e1c0b6ce5d8822eca910c3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168458))
- [Add expiration wording to duo pro and enterprise trial success](https://gitlab.com/gitlab-org/gitlab/-/commit/1be9b534ac4a56593a0ee24428038ba2968a5a4c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168845)) **GitLab Enterprise Edition**
- [Remove in-app trials redirect to stored user location](https://gitlab.com/gitlab-org/gitlab/-/commit/23c5a3c34cc39024faebcf8aa96ec9844fd645f8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168838)) **GitLab Enterprise Edition**
- [Finalize BackfillComplianceFrameworkSecurityPoliciesNamespaceId](https://gitlab.com/gitlab-org/gitlab/-/commit/892b0b3897fca1571c528ffcfa6a8503be6da82e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168886))
- [refactor: Protected badge as reusable component](https://gitlab.com/gitlab-org/gitlab/-/commit/a3cdc6743df8caed227967f47766bb3da7ca128c) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/161917))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/53fde6693289a3207f30b582c055bfba423f8b48) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168906))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/4a29325cb30dd5166240acd4222a8d2ea0cfc4c1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168732))
- [Do not subscribe to Users::ActivityEvent](https://gitlab.com/gitlab-org/gitlab/-/commit/f751f18e5c5b33e07f95bf64ee5cd17f62abe329) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168629))
- [Create partitions for p_ci_build_trace_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/84e95d14d400373ab3a4486d1f9e3c5335800ed9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168756))
- [Drop issues.correct_work_item_type_id foreign key](https://gitlab.com/gitlab-org/gitlab/-/commit/85bf51031d0cfff970ab91a2a3fbb3f9896a96b7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168741))
- [Backfill migration for vulnerability_reads identifier_names](https://gitlab.com/gitlab-org/gitlab/-/commit/92fbabce742a5ac4e510d3ffea6720f5c927a62c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163088))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/859c508fad84e3c6347e01b6f68c3d1acd1b946c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167118))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/a5f477e15b14e920854eea99123411d0dc8baa79) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167265))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/804a24f9df49d1b70ef1f6d97ead2b9aed088d2c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164818))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/a37d795f42ed6fe65c5a3d0b8935c2ced473a6a4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166852))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/33f75660b6bb1420304fcf61331997a85dd70337) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166853))
- [Add db_config_database into marginalia comments](https://gitlab.com/gitlab-org/gitlab/-/commit/f92e2fc4748478cdb3f96daebe96c8b497e6c80d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168272))
- [Avoid sidekiq warning for FlushCounterIncrementsWorker](https://gitlab.com/gitlab-org/gitlab/-/commit/b27987142bc3a30e55bd38f986898467b931b03a) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167145))
- [Finalize migration BackfillBoardsEpicBoardPositionsGroupId](https://gitlab.com/gitlab-org/gitlab/-/commit/af48342889a4ae0103ac8ac53d764b22daab07f6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167979))
- [Track worker concurrency using Redis hash](https://gitlab.com/gitlab-org/gitlab/-/commit/1667b7e08898d79c5f9bd418005c693a5e5dd47d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167027))
- [Backfill issues.correct_work_item_type_id with correct value](https://gitlab.com/gitlab-org/gitlab/-/commit/44e195be1bb6d9f698ee6ea15b97c438530d604a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167972))
- [Remove upcoming_reconciliations from spec](https://gitlab.com/gitlab-org/gitlab/-/commit/13fbb3e7276780932c991337a63f2134d6cf0bca) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168624))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/c605c6a099f627f45c55a8396129b0a7f2e91608) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167391))
- [Add trigger to update issues.correct_work_item_type_id](https://gitlab.com/gitlab-org/gitlab/-/commit/6670a9fc44c4056d418a10b8eadc9671b676e592) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167510))
- [Reduce wait time for replica if worker urgency is high](https://gitlab.com/gitlab-org/gitlab/-/commit/cc8dfe47eefd291a856baf1d698311b816c4c783) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167877))
- [Regenerate RuboCop TODO files](https://gitlab.com/gitlab-org/gitlab/-/commit/2cb80a94a24c134ec14fcb63d3cfe509df523e86) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168547))
- [Add and backfill project_id for packages_composer_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/df81b0d75bb6e9c2125c9da3cb9b0de8d0cc875a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167444))
- [Add and backfill project_id for dast_scanner_profiles_builds](https://gitlab.com/gitlab-org/gitlab/-/commit/170a80a95b611c80d3a3828f7dcedf63bf91c55c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167626))
- [Use routing table name for PipelineConfig model](https://gitlab.com/gitlab-org/gitlab/-/commit/ce8aec8656f2d468239b75cd554e185be5566012) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168088))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/aa9549861cc91c94b853fe591aa13ea49869efb4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167698))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/6a1b1f38e67d0efe99f6cd9057d1977bdf683ced) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167117))
- [Move Cop/WithoutReactiveCache to gitlab-org/gitlab](https://gitlab.com/gitlab-org/gitlab/-/commit/e51616651746d28b82aba81a7945fed9dddb8754) by @schurzi ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164279))
- [Set `vulnerability_count` of project_security_statistics records](https://gitlab.com/gitlab-org/gitlab/-/commit/377f3574934ed708c65ec72e87b3b31642390e72) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167812))
- [Create partitions for p_ci_build_trace_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/054c6e8146ab1778bfd2e8799fc513ee78f3f20f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168365))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/849e2394cd1849bf5304abf9adae4ad57b880c1e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167999))
- [Finalize migration BackfillAuditEventsStreamingHeadersGroupId](https://gitlab.com/gitlab-org/gitlab/-/commit/2f71141963797ae09778b02a1d6b4db0a0eaf607) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167692))
- [Correct tag name restrictions documentation](https://gitlab.com/gitlab-org/gitlab/-/commit/45c865ef61734f4f0d2be9d963367ccb8d78d0ec) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168300))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/972671b289c4034aca05dda58ee27da1eebbde6a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167115))
- [Finalize migration BackfillApprovalProjectRulesUsersProjectId](https://gitlab.com/gitlab-org/gitlab/-/commit/d48e5535eed9e72243fe11037d3a6878d0e3229f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167506))
- [Protected containers: Align actor for feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/ea3051b7c0eb6a64e1e60d6c70f994f42ae02f3a) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164083))
- [Add and backfill project_id for ci_secure_file_states](https://gitlab.com/gitlab-org/gitlab/-/commit/4e2af1a4d13d179d06254bba32bca21a49b6b7c3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167617))
- [Add and backfill project_id for packages_pypi_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/808c8b9f78685eab1729620d097b9aba788ae8ed) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167608))
- [Fix Style/SingleArgumentDig offences](https://gitlab.com/gitlab-org/gitlab/-/commit/d6ef31b38f9c175d27eb50c23d86d5a25c91572e) by @rutvikchandla3 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167424))
- [Add and backfill project_id for ci_pipeline_schedule_variables](https://gitlab.com/gitlab-org/gitlab/-/commit/7f74125edf2b1295e7ada3c0c4e8452c281c0fd6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168110))
- [Regenerate RuboCop TODO files](https://gitlab.com/gitlab-org/gitlab/-/commit/03732e45b4773774129fd56bb05f729162f0fc82) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/168223))
- [Add and backfill project_id for packages_rubygems_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/cea51c5cedefadef818490961e92264a4902d649) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167611))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/f62ecb9bfa119a33a13f21b0afe88bb33e426037) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167116))
- [Add initial schema for custom field configuration](https://gitlab.com/gitlab-org/gitlab/-/commit/920e98dc24efe75bd930fd4225a875630756fb34) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167591))
- [Continue removal of Trial Abandonment worker](https://gitlab.com/gitlab-org/gitlab/-/commit/004b8282445dbab762834174bad3e49b0a3111bd) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167952)) **GitLab Enterprise Edition**
- [Cleanup of backend and E2E for `pipeline_security_dashboard_graphql`](https://gitlab.com/gitlab-org/gitlab/-/commit/b561c29fb389d16a3d7a727e925c20636ccc4297) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166732))
- [Solve null equality in BBM that deduplicates lfs_objects_projects](https://gitlab.com/gitlab-org/gitlab/-/commit/dc0065b4335415fe18766e9bd246ca91c2cc34db) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167468))
- [Add and backfill project_id for pages_domain_acme_orders](https://gitlab.com/gitlab-org/gitlab/-/commit/9ca5697a1fa565356c3e9d472bd3555503ea74d4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167614))
- [Remove .issuable-row background in milestone's page_bundles](https://gitlab.com/gitlab-org/gitlab/-/commit/475f644e9196484f655e1db3c7f3be26e639b336) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167934))
- [Add foreign key constraint to `projects.organization_id`](https://gitlab.com/gitlab-org/gitlab/-/commit/a80b66b895271b06731e28b5a65a2a26c46309a7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166980))
- [Add and backfill project_id for ci_resources](https://gitlab.com/gitlab-org/gitlab/-/commit/116d28970c5000188291278b3c900d9cb271d985) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167645))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/ab5a0c4e6208cbdef96f7e488cfe51e99c372586) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167859))
- [Remove web_ide_oauth flag and its references](https://gitlab.com/gitlab-org/gitlab/-/commit/a709cce3ef830c1d4e7f4eb3d5ee79ae4fea3415) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167464))
- [Finalize migration BackfillApprovalsProjectId](https://gitlab.com/gitlab-org/gitlab/-/commit/fb06aca117ab018a50c0f11eadeadb9b9221bf61) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167507))
- [Finalize migration BackfillApprovalMergeRequestRuleSourcesProjectId](https://gitlab.com/gitlab-org/gitlab/-/commit/592aea8c2c243ed088f37372c64ccfc13f20a36e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167251))
- [Change the duo pro discover page to match new wording and design](https://gitlab.com/gitlab-org/gitlab/-/commit/1915ffa36f96181f1a9ada32e00d2220697082a9) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167826)) **GitLab Enterprise Edition**
- [DB Docs are up to date](https://gitlab.com/gitlab-org/gitlab/-/commit/37df8b9a965150924632c640f50f188cde766f9b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166584))
- [Add Duo Enterprise product interaction for seat assignment lead](https://gitlab.com/gitlab-org/gitlab/-/commit/52ec6b6af0a656b57bd157e2f0760ee7ae196c25) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167685)) **GitLab Enterprise Edition**
- [Add and backfill project_id for packages_nuget_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/34849d27534b4d6655a71b8faac263e511e049bb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167607))
- [Remove the nodes which are offline for more than 12 hours](https://gitlab.com/gitlab-org/gitlab/-/commit/5e89958a116d7dbda617d3c396c8bc6d0136194d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166481)) **GitLab Enterprise Edition**
- [Add and backfill project_id for ci_builds_runner_session](https://gitlab.com/gitlab-org/gitlab/-/commit/84e195a20dbba1cf2807369ab497ba46e0b0d947) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167634))
- [Add and backfill project_id for pages_deployment_states](https://gitlab.com/gitlab-org/gitlab/-/commit/7a1f0960202ff3fbc0ef71946e8e32b92b4127c1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167613))
- [Add and backfill project_id for packages_rpm_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/7e0b3bfb3ea0033427f7f4a48fb445f070a9c73d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167609))
- [Add and backfill project_id for approval_project_rules_protected_branche](https://gitlab.com/gitlab-org/gitlab/-/commit/ec8450985d455ae76d850285b644a32f52d409eb) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167648))
- [Add and backfill project_id for packages_npm_metadata](https://gitlab.com/gitlab-org/gitlab/-/commit/36adef0b862c019a3c6d2b27c79f040c61969c86) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167446))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/26f847dc3d8ad57900021ebbf841ab211dddad2e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166798))
- [Remove pipeline_run_keyword feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/f38c167adacf21af3ee72c240cd3d3bad6ff55f8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167722))
- [Add and backfill project_id for incident_management_pending_alert_escala](https://gitlab.com/gitlab-org/gitlab/-/commit/2af4990b64de20b437266bd098d02a254b2fb8d5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166816))
- [Introduce `project_security_statistics` table](https://gitlab.com/gitlab-org/gitlab/-/commit/5ee258fee64d791fe7d9182019037ab33facbf2f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167442))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/23443ff5dd7e7f21394230cea3c3b2bc4a0cfe3d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167267))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/713ced6b0c985e7d2bff1294ca6df0b41abd867c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167390))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/2b107dd3f41780780bd5e685ba6c62f1ca731f4e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167270))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/7686ebb61f3d13c06e669668df543726bdefabe1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167511))
- [Finalize migration BackfillApprovalGroupRulesUsersGroupId](https://gitlab.com/gitlab-org/gitlab/-/commit/e9d05ffe7e6092ccc12d77931e025bd045036e64) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167250))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/518442bf0c1a29ee63d734c1be3ef6c430c41501) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166976))
- [Use defined constants for selector types](https://gitlab.com/gitlab-org/gitlab/-/commit/22aa8612331e85d478b86202d9897afe029d286e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167419)) **GitLab Enterprise Edition**
- [Finalize migration BackfillApprovalMergeRequestRulesProjectId](https://gitlab.com/gitlab-org/gitlab/-/commit/d8d4c9b33e5e9a9ea7e39da271d0d9a8fdffcc2a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167252))
- [Finalize migration BackfillApprovalGroupRulesProtectedBranchesGroupId](https://gitlab.com/gitlab-org/gitlab/-/commit/c08c5deab001904ea17c5bb5a1fc84211e3333e5) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167249))
- [Finalize migration BackfillAgentActivityEventsAgentProjectId](https://gitlab.com/gitlab-org/gitlab/-/commit/93c554737050d14c06da3c190221b2016a091638) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167103))
- [Fix Performance/RegexpMatch offenses](https://gitlab.com/gitlab-org/gitlab/-/commit/384835435286f39ebffb39d48928566a67c737dd) by @bolah2009 ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166706)) **GitLab Enterprise Edition**
- [Fully deprecate legacy sidekiq workers for onboarding](https://gitlab.com/gitlab-org/gitlab/-/commit/454adab2d63dc10996e0ffe107dae94f2b8408e0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167211))
- [Add metric to track when CVS cannot scan component](https://gitlab.com/gitlab-org/gitlab/-/commit/963b5d448b26f78fc773d5fef6d8dc9aac3f20df) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166928)) **GitLab Enterprise Edition**
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/c977d261ad66a5320e5ec256fd8b0a8219de733a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167114))
- [Add and backfill project_id for incident_management_timeline_event_tag_l](https://gitlab.com/gitlab-org/gitlab/-/commit/f28b7d013796687e4e63c75cac894c021e473339) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166461))
- [Add and backfill project_id for ci_unit_test_failures](https://gitlab.com/gitlab-org/gitlab/-/commit/f6fbec5901a010549aaeecedb4d5978627e70a93) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166817))
- [Mark 20231016162120 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/dd761045c83b611cd315db200aa58a3e1d9cd879) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165989)) **GitLab Enterprise Edition**
- [Add issues.correct_work_item_type_id column](https://gitlab.com/gitlab-org/gitlab/-/commit/b33fd7b2bc18a54b2987ad477e67e09e4d38738f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167092))
- [Add `work_item_types.correct_id` column](https://gitlab.com/gitlab-org/gitlab/-/commit/5a49ce40fe455dd462424d973891892ad690f687) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166548))
- [Mark 20231019223356 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/1ea982f3d0cd3de1ec2a76825f9f52c34db262f6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165990)) **GitLab Enterprise Edition**
- [Fix packages_packages definition file](https://gitlab.com/gitlab-org/gitlab/-/commit/81e00e9e40b0c0dec8d28cc14061c7f36a6b9956) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/167047))
- [Add emails notification for RewriteHistory worker](https://gitlab.com/gitlab-org/gitlab/-/commit/b5147c8f76d0244859b2b304c0573e5935b3358c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166173))
- [Add target_type to refine the query](https://gitlab.com/gitlab-org/gitlab/-/commit/dcac8b142a6cfe0e60a8788c6d64ce024a316cc0) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166983))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/79c0ca788472db6c4c777e5323e97354ac17fef3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166811))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/ec73bc7896035283180b900bcc8d5864d637b182) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166796))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/8588173d926ffa971c6948d9cfb3a2e59a4840de) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166975))
- [Drop database table compliance_checks](https://gitlab.com/gitlab-org/gitlab/-/commit/77108c49ccaea585099a157c91eb6da52a75984b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166353))
- [refactor: Fix rubocop offense Layout/space_inside_parens](https://gitlab.com/gitlab-org/gitlab/-/commit/9c5e82136d2fc86e27433602d6d9f6c883669bf8) by @gerardo-navarro ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166802))
- [Drop default for work_item_types.id](https://gitlab.com/gitlab-org/gitlab/-/commit/826ac6bd42d9526337cb054a510f713a8321cad6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166678))
- [Change FF type and default enable flag](https://gitlab.com/gitlab-org/gitlab/-/commit/560789f67e38ca643c39e79ab2bb0bc2521c2a45) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166608)) **GitLab Enterprise Edition**
- [Redefine broken foreign keys on p_ci_pipelines](https://gitlab.com/gitlab-org/gitlab/-/commit/eda06ec1bda8ed2642459268d9b2047054460ea7) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166318))
- [Add accessibility tests to todos filtering dashboard](https://gitlab.com/gitlab-org/gitlab/-/commit/49cd60a4b8f86cfdbcd3a5c875d9d3f4bde082f4) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/161036))
- [Add and backfill project_id for milestone_releases](https://gitlab.com/gitlab-org/gitlab/-/commit/5e330b243e58e8ba85feff4019bca60219a74314) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166466))
- [Mark 20231005103449 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/12ec00d4319b25f0c6ef7c65edbad0fd453c5b3c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165988)) **GitLab Enterprise Edition**
- [Rubocop fix](https://gitlab.com/gitlab-org/gitlab/-/commit/b43b2944af17bd579b94aa9d901898ae0ac1c8eb) by @arno_gr ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166805))
- [Change default for org id](https://gitlab.com/gitlab-org/gitlab/-/commit/4377786c3a4a2f2833d18542b8ae9ebc9b7700ee) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166348)) **GitLab Enterprise Edition**
- [Fix the initial_indexing logic](https://gitlab.com/gitlab-org/gitlab/-/commit/f38dbcecec9122ab6a7bbf27b5869e9eed8aff3f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165033)) **GitLab Enterprise Edition**
- [Mark 20231130202203 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/aa4cd9ff3e3954f76bc9e08ca5ea53c45db06e39) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165993)) **GitLab Enterprise Edition**
- [Add and backfill project_id for incident_management_oncall_rotations](https://gitlab.com/gitlab-org/gitlab/-/commit/0b3bedadf5cad169294375e60940172f510570b2) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166153))
- [Add and backfill project_id for alert_management_alert_user_mentions](https://gitlab.com/gitlab-org/gitlab/-/commit/b99f532801dcd3710f11f32a3e0e6c520d02c16e) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166145))
- [Remove `project_analytics_dashboard_dynamic_vsd` feature flag](https://gitlab.com/gitlab-org/gitlab/-/commit/bda375a1c0fdc7c320960d749137782b926a8fcf) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166581)) **GitLab Enterprise Edition**
- [Add and backfill project_id for incident_management_escalation_rules](https://gitlab.com/gitlab-org/gitlab/-/commit/c6154d59871e4d47af68536201180b7044252d6a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166149))
- [Remove unused code for build tags](https://gitlab.com/gitlab-org/gitlab/-/commit/2545fe78266478c20f46e66b3a0609d3f797f15a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166613))
- [Mark 20231004124852 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/c6f669877952cf206dad546d694c7a6167252a6d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165987)) **GitLab Enterprise Edition**
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/30376537273cd0f20e6bdeaf163ffe6c5ed0ff0a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166419))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/65a992c617316483e0b11173463eef97870f031b) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166562))
- [Mark 20240107132344 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/32177974b4be1d4a0f50b5272fa01f75d0fca92a) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165996)) **GitLab Enterprise Edition**
- [DB Docs are up to date](https://gitlab.com/gitlab-org/gitlab/-/commit/83d7e2d9c9fa6ef0e211a00d332da47746280177) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166060))
- [Audit list of classes in dashboard.scss](https://gitlab.com/gitlab-org/gitlab/-/commit/a358925bdfc6e9d538e0d0dcb4966e65a1e56d87) by @NIKU-SINGH ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164651))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/cd4324c765db2fae7eabc61eb33d89efa7b6a90f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162350))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/74b8dc684db2ae608466c388d9a352fa6aaf7c5c) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/162804))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/4d572efcfee3b764ef9a7a31a6eebc2e5f7d6f64) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/163125))
- [Add and backfill project_id for alert_management_alert_metric_images](https://gitlab.com/gitlab-org/gitlab/-/commit/356f5e171895bcef512b1a7d30fba99feccb812d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166074))
- [Mark 20240104134928 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/ab39e45fb175cd07484fcb3f2ba3a13179abc68f) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165995)) **GitLab Enterprise Edition**
- [Partition ci_build_trace_metadata table - 4](https://gitlab.com/gitlab-org/gitlab/-/commit/93b9e2cadcc7a481036ef7a4779bb15926b1e6b1) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165316))
- [Add and backfill project_id for ci_job_artifact_states](https://gitlab.com/gitlab-org/gitlab/-/commit/bc4b7118b814becfd0eade0ec6a71a3f9bc450ea) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165940))
- [Remove obsolete Advanced search migrations](https://gitlab.com/gitlab-org/gitlab/-/commit/b33dc6ee75b1f31f687215841e0dfd33c24066b8) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165977)) **GitLab Enterprise Edition**
- [Remove feature flag save_policy_violation_data](https://gitlab.com/gitlab-org/gitlab/-/commit/5413f08d1db4e241fdcd913ad1338d29ed969346) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166298)) **GitLab Enterprise Edition**
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/c2bb4944d7d7b9be83d411047b56d1265556e43d) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164150))
- [Mark 20231213172132 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/01c05bbcafa882f4b6a15703f0b528ff54c04232) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165994)) **GitLab Enterprise Edition**
- [Add index for component search on Occurrences table](https://gitlab.com/gitlab-org/gitlab/-/commit/0177ab0fd84ea4554f9afd846001ee49db2e3697) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166180))
- [Mark 20231130152447 as obsolete](https://gitlab.com/gitlab-org/gitlab/-/commit/916e8ec15f74a9382d9bb7baeecb5d80ec14f883) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165991)) **GitLab Enterprise Edition**
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/112f51fe5f5894fa791351072b5f9dca7e0f2cb6) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164578))
- [Remove & clean up set_sbom_report_ingestion_errors FF](https://gitlab.com/gitlab-org/gitlab/-/commit/6f1123d14d1009ca6f17e80cccf556153c0fccf3) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165865))
- [Quarantine a flaky test](https://gitlab.com/gitlab-org/gitlab/-/commit/81385243047622e00d54d83780190666dbf196ee) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/155375))
- [Adjust signup page items for more clarity](https://gitlab.com/gitlab-org/gitlab/-/commit/e272c8a4c7b243758454d6f15363d0c13ca05c04) ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/165202)) **GitLab Enterprise Edition**
- [Removes Unused CSS class](https://gitlab.com/gitlab-org/gitlab/-/commit/4e17154650ee4afc8b1ae4238d27efb908855a19) by @NIKU-SINGH ([merge request](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/164637))
## 17.4.2 (2024-10-09)
### Fixed (1 change)

View File

@ -4,6 +4,7 @@ import {
GlButton,
GlDisclosureDropdown,
GlDisclosureDropdownItem,
GlDisclosureDropdownGroup,
} from '@gitlab/ui';
// eslint-disable-next-line no-restricted-imports
import { mapActions, mapGetters, mapState } from 'vuex';
@ -33,6 +34,7 @@ export default {
GlButton,
GlDisclosureDropdown,
GlDisclosureDropdownItem,
GlDisclosureDropdownGroup,
ReplyButton,
TimelineEventButton,
UserAccessRoleBadge,
@ -350,15 +352,6 @@ export default {
class="note-action-button more-actions-toggle"
no-caret
>
<gl-disclosure-dropdown-item
v-if="canReportAsAbuse"
data-testid="report-abuse-button"
@action="onAbuse"
>
<template #list-item>
{{ $options.i18n.reportAbuse }}
</template>
</gl-disclosure-dropdown-item>
<gl-disclosure-dropdown-item
v-if="noteUrl"
class="js-btn-copy-note-link"
@ -378,11 +371,22 @@ export default {
{{ displayAssignUserText }}
</template>
</gl-disclosure-dropdown-item>
<gl-disclosure-dropdown-item v-if="canEdit" class="js-note-delete" @action="onDelete">
<template #list-item>
<span class="gl-text-danger">{{ __('Delete comment') }}</span>
</template>
</gl-disclosure-dropdown-item>
<gl-disclosure-dropdown-group v-if="canReportAsAbuse || canEdit" bordered>
<gl-disclosure-dropdown-item
v-if="canReportAsAbuse"
data-testid="report-abuse-button"
@action="onAbuse"
>
<template #list-item>
{{ $options.i18n.reportAbuse }}
</template>
</gl-disclosure-dropdown-item>
<gl-disclosure-dropdown-item v-if="canEdit" class="js-note-delete" @action="onDelete">
<template #list-item>
<span class="gl-text-danger">{{ __('Delete comment') }}</span>
</template>
</gl-disclosure-dropdown-item>
</gl-disclosure-dropdown-group>
</gl-disclosure-dropdown>
</div>
<!-- IMPORTANT: show this component lazily because it causes layout thrashing -->

View File

@ -32,16 +32,16 @@ export default {
FETCH_SETTINGS_ERROR_MESSAGE,
},
apollo: {
containerExpirationPolicy: {
containerTagsExpirationPolicy: {
query: expirationPolicyQuery,
variables() {
return {
projectPath: this.projectPath,
};
},
update: (data) => data.project?.containerExpirationPolicy,
update: (data) => data.project?.containerTagsExpirationPolicy,
result({ data }) {
this.workingCopy = { ...get(data, 'project.containerExpirationPolicy', {}) };
this.workingCopy = { ...get(data, 'project.containerTagsExpirationPolicy', {}) };
},
error(e) {
this.fetchSettingsError = e;
@ -51,16 +51,16 @@ export default {
data() {
return {
fetchSettingsError: false,
containerExpirationPolicy: null,
containerTagsExpirationPolicy: null,
workingCopy: {},
};
},
computed: {
isEnabled() {
return this.containerExpirationPolicy || this.enableHistoricEntries;
return this.containerTagsExpirationPolicy || this.enableHistoricEntries;
},
isLoading() {
return this.$apollo.queries.containerExpirationPolicy.loading;
return this.$apollo.queries.containerTagsExpirationPolicy.loading;
},
showDisabledFormMessage() {
return !this.isEnabled && !this.fetchSettingsError;
@ -69,10 +69,10 @@ export default {
return this.isAdmin ? UNAVAILABLE_ADMIN_FEATURE_TEXT : UNAVAILABLE_USER_FEATURE_TEXT;
},
isEdited() {
if (isEmpty(this.containerExpirationPolicy) && isEmpty(this.workingCopy)) {
if (isEmpty(this.containerTagsExpirationPolicy) && isEmpty(this.workingCopy)) {
return false;
}
return !isEqual(this.containerExpirationPolicy, this.workingCopy);
return !isEqual(this.containerTagsExpirationPolicy, this.workingCopy);
},
},
};

View File

@ -43,14 +43,14 @@ export default {
FETCH_SETTINGS_ERROR_MESSAGE,
},
apollo: {
containerExpirationPolicy: {
containerTagsExpirationPolicy: {
query: expirationPolicyQuery,
variables() {
return {
projectPath: this.projectPath,
};
},
update: (data) => data.project?.containerExpirationPolicy,
update: (data) => data.project?.containerTagsExpirationPolicy,
error(e) {
this.fetchSettingsError = e;
},
@ -59,15 +59,15 @@ export default {
data() {
return {
fetchSettingsError: false,
containerExpirationPolicy: null,
containerTagsExpirationPolicy: null,
};
},
computed: {
isCleanupEnabled() {
return this.containerExpirationPolicy?.enabled ?? false;
return this.containerTagsExpirationPolicy?.enabled ?? false;
},
isEnabled() {
return this.containerExpirationPolicy || this.enableHistoricEntries;
return this.containerTagsExpirationPolicy || this.enableHistoricEntries;
},
showDisabledFormMessage() {
return !this.isEnabled && !this.fetchSettingsError;
@ -112,7 +112,7 @@ export default {
{{ cleanupRulesButtonText }}
</gl-button>
</gl-card>
<template v-if="!$apollo.queries.containerExpirationPolicy.loading">
<template v-if="!$apollo.queries.containerTagsExpirationPolicy.loading">
<gl-alert
v-if="showDisabledFormMessage"
:dismissible="false"

View File

@ -1,4 +1,4 @@
fragment ContainerExpirationPolicyFields on ContainerExpirationPolicy {
fragment ContainerTagsExpirationPolicyFields on ContainerTagsExpirationPolicy {
cadence
enabled
keepN

View File

@ -1,9 +1,9 @@
#import "../fragments/container_expiration_policy.fragment.graphql"
#import "../fragments/container_tags_expiration_policy.fragment.graphql"
mutation updateContainerExpirationPolicy($input: UpdateContainerExpirationPolicyInput!) {
mutation updateContainerTagsExpirationPolicy($input: UpdateContainerExpirationPolicyInput!) {
updateContainerExpirationPolicy(input: $input) {
containerExpirationPolicy {
...ContainerExpirationPolicyFields
containerTagsExpirationPolicy {
...ContainerTagsExpirationPolicyFields
}
errors
}

View File

@ -1,10 +1,10 @@
#import "../fragments/container_expiration_policy.fragment.graphql"
#import "../fragments/container_tags_expiration_policy.fragment.graphql"
query getProjectExpirationPolicy($projectPath: ID!) {
project(fullPath: $projectPath) {
id
containerExpirationPolicy {
...ContainerExpirationPolicyFields
containerTagsExpirationPolicy {
...ContainerTagsExpirationPolicyFields
}
}
}

View File

@ -11,9 +11,9 @@ export const updateContainerExpirationPolicy =
const sourceData = client.readQuery(queryAndParams);
const data = produce(sourceData, (draftState) => {
draftState.project.containerExpirationPolicy = {
...draftState.project.containerExpirationPolicy,
...updatedData.updateContainerExpirationPolicy.containerExpirationPolicy,
draftState.project.containerTagsExpirationPolicy = {
...draftState.project.containerTagsExpirationPolicy,
...updatedData.updateContainerExpirationPolicy.containerTagsExpirationPolicy,
};
});

View File

@ -4,6 +4,7 @@ import {
GlTooltipDirective,
GlDisclosureDropdown,
GlDisclosureDropdownItem,
GlDisclosureDropdownGroup,
} from '@gitlab/ui';
import * as Sentry from '~/sentry/sentry_browser_wrapper';
import { __, sprintf } from '~/locale';
@ -28,6 +29,7 @@ export default {
GlButton,
GlDisclosureDropdown,
GlDisclosureDropdownItem,
GlDisclosureDropdownGroup,
ReplyButton,
UserAccessRoleBadge,
},
@ -277,15 +279,6 @@ export default {
category="tertiary"
no-caret
>
<gl-disclosure-dropdown-item
v-if="canReportAbuse"
data-testid="abuse-note-action"
@action="emitEvent('reportAbuse')"
>
<template #list-item>
{{ $options.i18n.reportAbuseText }}
</template>
</gl-disclosure-dropdown-item>
<gl-disclosure-dropdown-item
data-testid="copy-link-action"
:data-clipboard-text="noteUrl"
@ -304,15 +297,26 @@ export default {
{{ assignUserActionText }}
</template>
</gl-disclosure-dropdown-item>
<gl-disclosure-dropdown-item
v-if="showEdit"
data-testid="delete-note-action"
@action="emitEvent('deleteNote')"
>
<template #list-item>
<span class="gl-text-red-500">{{ $options.i18n.deleteNoteText }}</span>
</template>
</gl-disclosure-dropdown-item>
<gl-disclosure-dropdown-group v-if="canReportAbuse || showEdit" bordered>
<gl-disclosure-dropdown-item
v-if="canReportAbuse"
data-testid="abuse-note-action"
@action="emitEvent('reportAbuse')"
>
<template #list-item>
{{ $options.i18n.reportAbuseText }}
</template>
</gl-disclosure-dropdown-item>
<gl-disclosure-dropdown-item
v-if="showEdit"
data-testid="delete-note-action"
@action="emitEvent('deleteNote')"
>
<template #list-item>
<span class="gl-text-red-500">{{ $options.i18n.deleteNoteText }}</span>
</template>
</gl-disclosure-dropdown-item>
</gl-disclosure-dropdown-group>
</gl-disclosure-dropdown>
</div>
</template>

View File

@ -66,11 +66,6 @@ export default {
required: false,
default: false,
},
allowedChildTypes: {
type: Array,
required: false,
default: () => [],
},
isTopLevel: {
type: Boolean,
required: false,
@ -90,6 +85,16 @@ export default {
required: false,
default: true,
},
allowedChildrenByType: {
type: Object,
required: false,
default: () => {},
},
draggedItemType: {
type: String,
required: false,
default: null,
},
},
data() {
return {
@ -290,8 +295,9 @@ export default {
parentId: toParentId,
};
},
handleDragOnStart() {
handleDragOnStart(params) {
sortableStart();
this.$emit('drag', params.item.dataset.childType);
this.dragCancelled = false;
// Attach listener to detect `ESC` key press to cancel drag.
document.addEventListener('keyup', this.handleDocumentKeyup);
@ -299,6 +305,7 @@ export default {
async handleDragOnEnd(params) {
clearTimeout(this.toggleTimer);
sortableEnd();
this.$emit('drop');
document.removeEventListener('keyup', this.handleDocumentKeyup);
// Drag was cancelled, prevent reordering.
if (this.dragCancelled) return;
@ -524,10 +531,14 @@ export default {
:show-labels="showLabels"
:work-item-full-path="fullPath"
:show-task-weight="showTaskWeight"
:allowed-child-types="allowedChildTypes"
:dragged-item-type="draggedItemType"
:allowed-children-by-type="allowedChildrenByType"
:is-top-level="isTopLevel"
:data-child-title="child.title"
:data-child-type="child.workItemType.name"
class="!gl-border-x-0 !gl-border-b-1 !gl-border-t-0 !gl-border-solid !gl-pb-2 last:!gl-border-b-0 last:!gl-pb-0"
@drag="$emit('drag', $event)"
@drop="$emit('drop')"
@mouseover="prefetchWorkItem(child)"
@mouseout="clearPrefetching"
@removeChild="removeChild"

View File

@ -59,16 +59,21 @@ export default {
required: false,
default: false,
},
allowedChildTypes: {
type: Array,
draggedItemType: {
type: String,
required: false,
default: () => [],
default: null,
},
showTaskWeight: {
type: Boolean,
required: false,
default: true,
},
allowedChildrenByType: {
type: Object,
required: false,
default: () => {},
},
},
data() {
return {
@ -180,11 +185,14 @@ export default {
shouldShowWeight() {
return this.childItemType === WORK_ITEM_TYPE_VALUE_TASK ? this.showTaskWeight : true;
},
allowedChildren() {
return this.allowedChildTypes.length > 0;
allowedChildTypes() {
return this.allowedChildrenByType?.[this.childItemType] || [];
},
draggedItemTypeIsAllowed() {
return this.allowedChildTypes.includes(this.draggedItemType);
},
showChildrenDropzone() {
return !this.hasChildren && this.allowedChildren;
return !this.hasChildren && this.draggedItemTypeIsAllowed;
},
},
methods: {
@ -280,6 +288,10 @@ export default {
:is-top-level="false"
:show-task-weight="showTaskWeight"
:has-indirect-children="hasIndirectChildren"
:dragged-item-type="draggedItemType"
:allowed-children-by-type="allowedChildrenByType"
@drag="$emit('drag', $event)"
@drop="$emit('drop')"
@removeChild="$emit('removeChild', childItem)"
@error="$emit('error', $event)"
@click="$emit('click', $event)"

View File

@ -24,6 +24,7 @@ import {
getShowLabelsFromLocalStorage,
} from '../../utils';
import getWorkItemTreeQuery from '../../graphql/work_item_tree.query.graphql';
import namespaceWorkItemTypesQuery from '../../graphql/namespace_work_item_types.query.graphql';
import WorkItemChildrenLoadMore from '../shared/work_item_children_load_more.vue';
import WorkItemMoreActions from '../shared/work_item_more_actions.vue';
import WorkItemActionsSplitButton from './work_item_actions_split_button.vue';
@ -108,10 +109,12 @@ export default {
workItem: {},
disableContent: false,
showLabelsLocalStorageKey: WORKITEM_TREE_SHOWLABELS_LOCALSTORAGEKEY,
workItemTypes: [],
hierarchyWidget: null,
draggedItemType: null,
};
},
apollo: {
// eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties
hierarchyWidget: {
query: getWorkItemTreeQuery,
variables() {
@ -139,6 +142,20 @@ export default {
}
},
},
workItemTypes: {
query: namespaceWorkItemTypesQuery,
variables() {
return {
fullPath: this.fullPath,
};
},
update(data) {
return data.workspace?.workItemTypes?.nodes;
},
skip() {
return !this.canUpdate;
},
},
},
computed: {
workItemHierarchy() {
@ -218,6 +235,17 @@ export default {
showTaskWeight() {
return this.workItemType !== WORK_ITEM_TYPE_VALUE_EPIC;
},
allowedChildrenByType() {
return this.workItemTypes.reduce((acc, type) => {
const definition = type.widgetDefinitions?.find(
(widgetDefinition) => widgetDefinition.type === WIDGET_TYPE_HIERARCHY,
);
if (definition?.allowedChildTypes?.nodes?.length > 0) {
acc[type.name] = definition.allowedChildTypes.nodes.map((a) => a.name);
}
return acc;
}, {});
},
},
mounted() {
this.showLabels = getShowLabelsFromLocalStorage(
@ -354,9 +382,12 @@ export default {
:work-item-type="workItemType"
:show-labels="showLabels"
:disable-content="disableContent"
:allowed-child-types="allowedChildTypes"
:show-task-weight="showTaskWeight"
:has-indirect-children="hasIndirectChildren"
:allowed-children-by-type="allowedChildrenByType"
:dragged-item-type="draggedItemType"
@drag="draggedItemType = $event"
@drop="draggedItemType = null"
@error="error = $event"
@show-modal="showModal"
/>

View File

@ -3,5 +3,13 @@ fragment WorkItemTypeFragment on WorkItemType {
name
widgetDefinitions {
type
... on WorkItemWidgetDefinitionHierarchy {
allowedChildTypes {
nodes {
id
name
}
}
}
}
}

View File

@ -1,6 +1,7 @@
# frozen_string_literal: true
class Projects::Analytics::CycleAnalytics::ValueStreamsController < Projects::ApplicationController
extend ::Gitlab::Utils::Override
include ::Analytics::CycleAnalytics::ValueStreamActions
respond_to :json
@ -14,3 +15,5 @@ class Projects::Analytics::CycleAnalytics::ValueStreamsController < Projects::Ap
project.project_namespace
end
end
Projects::Analytics::CycleAnalytics::ValueStreamsController.prepend_mod

View File

@ -75,6 +75,10 @@ module ApplicationWorker
set(rescheduled_once: true)
end
def concurrency_limit_resume
set(concurrency_limit_resume: true)
end
def generated_queue_name
Gitlab::SidekiqConfig::WorkerRouter.queue_name_from_worker_name(self)
end

View File

@ -13,9 +13,8 @@ class GroupDestroyWorker
idempotent!
deduplicate :until_executed, ttl: 2.hours
def perform(group_id, user_id, params = {})
def perform(group_id, user_id, params = {}) # rubocop:disable Lint/UnusedMethodArgument -- Keep params parameter for backwards compatibility. Remove `param` in 18.0 release.
Gitlab::QueryLimiting.disable!('https://gitlab.com/gitlab-org/gitlab/-/issues/464673')
params = params.with_indifferent_access
begin
group = Group.find(group_id)
@ -25,28 +24,12 @@ class GroupDestroyWorker
user = User.find(user_id)
admin_mode = params[:admin_mode]
optionally_run_in_admin_mode(user, admin_mode) do
# AdjournedGroupDeletionWorker will destroy groups days after they are scheduled for deletion.
# If admin_mode is enabled, it will potentially halt group and project deletion.
# The admin_mode flag allows bypassing this check (but no other policy checks), since the admin_mode
# check should have been run when the job was scheduled, not whenever Sidekiq gets around to it.
Gitlab::Auth::CurrentUserMode.optionally_run_in_admin_mode(user) do
Groups::DestroyService.new(group, user).execute
end
end
private
# AdjournedGroupDeletionWorker will destroy groups days after they are scheduled for deletion.
# If admin_mode is enabled, it will potentially halt group and project deletion.
# The admin_mode flag allows bypassing this check (but no other policy checks), since the admin_mode
# check should have been run when the job was scheduled, not whenever Sidekiq gets around to it.
def optionally_run_in_admin_mode(user, admin_mode)
unless Gitlab::CurrentSettings.admin_mode && admin_mode && user.admin? # rubocop:disable Cop/UserAdmin -- policy checks are enforced further down the stack
yield
return
end
Gitlab::Auth::CurrentUserMode.bypass_session!(user.id) do
Gitlab::Auth::CurrentUserMode.with_current_admin(user) do
yield
end
end
end
end

View File

@ -14,12 +14,19 @@ class ProjectDestroyWorker
deduplicate :until_executed, ttl: 2.hours
def perform(project_id, user_id, params)
params = params.symbolize_keys
Gitlab::QueryLimiting.disable!('https://gitlab.com/gitlab-org/gitlab/-/issues/333366')
project = Project.find(project_id)
user = User.find(user_id)
::Projects::DestroyService.new(project, user, params.symbolize_keys).execute
# AdjournedProjectDeletionWorker will destroy projects days after they are scheduled for deletion.
# If admin_mode is enabled, it will potentially halt group and project deletion.
# The admin_mode flag allows bypassing this check (but no other policy checks), since the admin_mode
# check should have been run when the job was scheduled, not whenever Sidekiq gets around to it.
Gitlab::Auth::CurrentUserMode.optionally_run_in_admin_mode(user) do
::Projects::DestroyService.new(project, user, params).execute
end
rescue ActiveRecord::RecordNotFound => error
logger.error("Failed to delete project (#{project_id}): #{error.message}")
end

View File

@ -827,6 +827,8 @@
- 1
- - security_sync_policy_violation_comment
- 1
- - security_sync_project_policies
- 1
- - security_sync_project_policy
- 1
- - security_sync_scan_policies

View File

@ -0,0 +1,13 @@
# frozen_string_literal: true
class AddIssueLinkIdToRelatedEpicLinks < Gitlab::Database::Migration[2.2]
milestone '17.5'
def up
add_column :related_epic_links, :issue_link_id, :bigint
end
def down
remove_column :related_epic_links, :issue_link_id, if_exists: true
end
end

View File

@ -0,0 +1,13 @@
# frozen_string_literal: true
class AddWorkItemParentLinksIdToEpicIssues < Gitlab::Database::Migration[2.2]
milestone '17.5'
def up
add_column :epic_issues, :work_item_parent_link_id, :bigint
end
def down
remove_column :epic_issues, :work_item_parent_link_id, if_exists: true
end
end

View File

@ -0,0 +1,13 @@
# frozen_string_literal: true
class AddWorkItemParentLinkIdToEpics < Gitlab::Database::Migration[2.2]
milestone '17.5'
def up
add_column :epics, :work_item_parent_link_id, :bigint
end
def down
remove_column :epics, :work_item_parent_link_id, if_exists: true
end
end

View File

@ -0,0 +1,20 @@
# frozen_string_literal: true
class AddRelatedEpicLinksIssueLinkConstraints < Gitlab::Database::Migration[2.2]
milestone '17.5'
disable_ddl_transaction!
INDEX_NAME = 'index_unique_issue_link_id_on_related_epic_links'
def up
add_concurrent_index :related_epic_links, :issue_link_id, unique: true, name: INDEX_NAME
add_concurrent_foreign_key(:related_epic_links, :issue_links,
column: :issue_link_id, validate: true, on_delete: :cascade
)
end
def down
remove_concurrent_index_by_name :related_epic_links, INDEX_NAME
remove_foreign_key_if_exists :related_epic_links, column: :issue_link_id
end
end

View File

@ -0,0 +1,20 @@
# frozen_string_literal: true
class AddEpicIssueWorkItemParentLinkConstraints < Gitlab::Database::Migration[2.2]
milestone '17.5'
disable_ddl_transaction!
INDEX_NAME = 'index_unique_parent_link_id_on_epic_issues'
def up
add_concurrent_index :epic_issues, :work_item_parent_link_id, unique: true, name: INDEX_NAME
add_concurrent_foreign_key(:epic_issues, :work_item_parent_links,
column: :work_item_parent_link_id, validate: true, on_delete: :cascade
)
end
def down
remove_concurrent_index_by_name :epic_issues, INDEX_NAME
remove_foreign_key_if_exists :epic_issues, column: :work_item_parent_link_id
end
end

View File

@ -0,0 +1,20 @@
# frozen_string_literal: true
class AddEpicWorkItemParentLinkConstraints < Gitlab::Database::Migration[2.2]
milestone '17.5'
disable_ddl_transaction!
INDEX_NAME = 'index_unique_parent_link_id_on_epics'
def up
add_concurrent_index :epics, :work_item_parent_link_id, unique: true, name: INDEX_NAME
add_concurrent_foreign_key(:epics, :work_item_parent_links,
column: :work_item_parent_link_id, validate: true, on_delete: :nullify
)
end
def down
remove_concurrent_index_by_name :epics, INDEX_NAME
remove_foreign_key_if_exists :epics, column: :work_item_parent_link_id
end
end

View File

@ -0,0 +1 @@
6eaaa9237a8df4734eff4feb42cd6ad687fa3d1d28fb20ecc1202bae30a15840

View File

@ -0,0 +1 @@
d9150237b49596467d630efcb9daa38a711f4fb4dfd0b4508ad92385b83da737

View File

@ -0,0 +1 @@
699d206239f7696ce90c2338bf58f27367fb33abb0418397f3e9929963e70f4d

View File

@ -0,0 +1 @@
5a16834f6a0c44dca575078ff523ada9de4ddf5421564a34794fcd2ff35cb2ca

View File

@ -0,0 +1 @@
914aaf6bc4cb26a6e8cbe3b4266a84e7728825e5c48a14ff1ff21467fc94dc32

View File

@ -0,0 +1 @@
9687e2ef0a8886e583b2806229349f3f08f1b167cc8ab9ff474ef291dc887190

View File

@ -11256,7 +11256,8 @@ CREATE TABLE epic_issues (
epic_id bigint NOT NULL,
issue_id bigint NOT NULL,
relative_position integer,
namespace_id bigint
namespace_id bigint,
work_item_parent_link_id bigint
);
CREATE SEQUENCE epic_issues_id_seq
@ -11345,6 +11346,7 @@ CREATE TABLE epics (
issue_id bigint,
imported smallint DEFAULT 0 NOT NULL,
imported_from smallint DEFAULT 0 NOT NULL,
work_item_parent_link_id bigint,
CONSTRAINT check_450724d1bb CHECK ((issue_id IS NOT NULL)),
CONSTRAINT check_ca608c40b3 CHECK ((char_length(color) <= 7)),
CONSTRAINT check_fcfb4a93ff CHECK ((lock_version IS NOT NULL))
@ -17849,7 +17851,8 @@ CREATE TABLE related_epic_links (
created_at timestamp with time zone NOT NULL,
updated_at timestamp with time zone NOT NULL,
link_type smallint DEFAULT 0 NOT NULL,
group_id bigint
group_id bigint,
issue_link_id bigint
);
CREATE SEQUENCE related_epic_links_id_seq
@ -31361,8 +31364,14 @@ CREATE UNIQUE INDEX index_unique_epics_on_issue_id ON epics USING btree (issue_i
CREATE UNIQUE INDEX index_unique_issuable_resource_links_on_unique_issue_link ON issuable_resource_links USING btree (issue_id, link) WHERE is_unique;
CREATE UNIQUE INDEX index_unique_issue_link_id_on_related_epic_links ON related_epic_links USING btree (issue_link_id);
CREATE UNIQUE INDEX index_unique_issue_metrics_issue_id ON issue_metrics USING btree (issue_id);
CREATE UNIQUE INDEX index_unique_parent_link_id_on_epic_issues ON epic_issues USING btree (work_item_parent_link_id);
CREATE UNIQUE INDEX index_unique_parent_link_id_on_epics ON epics USING btree (work_item_parent_link_id);
CREATE UNIQUE INDEX index_unique_project_authorizations_on_unique_project_user ON project_authorizations USING btree (project_id, user_id) WHERE is_unique;
CREATE INDEX index_unit_test_failures_failed_at ON ci_unit_test_failures USING btree (failed_at DESC);
@ -34557,6 +34566,9 @@ ALTER TABLE ONLY agent_user_access_group_authorizations
ALTER TABLE ONLY group_crm_settings
ADD CONSTRAINT fk_54592e5f57 FOREIGN KEY (source_group_id) REFERENCES namespaces(id) ON DELETE CASCADE;
ALTER TABLE ONLY epic_issues
ADD CONSTRAINT fk_54dd5d38a7 FOREIGN KEY (work_item_parent_link_id) REFERENCES work_item_parent_links(id) ON DELETE CASCADE;
ALTER TABLE ONLY terraform_states
ADD CONSTRAINT fk_558901b030 FOREIGN KEY (locked_by_user_id) REFERENCES users(id) ON DELETE SET NULL;
@ -34740,6 +34752,9 @@ ALTER TABLE ONLY protected_tag_create_access_levels
ALTER TABLE ONLY environments
ADD CONSTRAINT fk_75c2098045 FOREIGN KEY (cluster_agent_id) REFERENCES cluster_agents(id) ON DELETE SET NULL;
ALTER TABLE ONLY epics
ADD CONSTRAINT fk_765e132668 FOREIGN KEY (work_item_parent_link_id) REFERENCES work_item_parent_links(id) ON DELETE SET NULL;
ALTER TABLE ONLY notes
ADD CONSTRAINT fk_76db6d50c6 FOREIGN KEY (namespace_id) REFERENCES namespaces(id) ON DELETE CASCADE;
@ -35118,6 +35133,9 @@ ALTER TABLE ONLY vulnerability_reads
ALTER TABLE ONLY member_approvals
ADD CONSTRAINT fk_b2e4a4b68a FOREIGN KEY (member_id) REFERENCES members(id) ON DELETE CASCADE;
ALTER TABLE ONLY related_epic_links
ADD CONSTRAINT fk_b30520b698 FOREIGN KEY (issue_link_id) REFERENCES issue_links(id) ON DELETE CASCADE;
ALTER TABLE ONLY issues
ADD CONSTRAINT fk_b37be69be6 FOREIGN KEY (work_item_type_id) REFERENCES work_item_types(id);

View File

@ -42,7 +42,7 @@ Install one of the following GitLab-approved LLM models:
| Mistral | [Mistral 7B Text](https://huggingface.co/mistralai/Mistral-7B-v0.3) | **{check-circle}** Yes | **{dotted-circle}** No |**{dotted-circle}** No |
| Mistral | [Mixtral 8x22B Text](https://huggingface.co/mistralai/Mixtral-8x22B-v0.1) | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No |
| Mistral | [Mixtral 8x7B Text](https://huggingface.co/mistralai/Mixtral-8x7B-v0.1) | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No |
| Claude 3 | [Claude 3.5 Sonnet](https://www.anthropic.com/news/claude-3-5-sonnet) | **{check-circle}** No | **{check-circle}** Yes | **{check-circle}** Yes |
| Claude 3 | [Claude 3.5 Sonnet](https://www.anthropic.com/news/claude-3-5-sonnet) | **{dotted-circle}** No | **{check-circle}** Yes | **{check-circle}** Yes |
The following models are under evaluation, and support is limited:
@ -55,11 +55,11 @@ The following models are under evaluation, and support is limited:
| CodeLlama | [Code-Llama 13b](https://huggingface.co/meta-llama/CodeLlama-13b-Instruct-hf) | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No |
| DeepSeekCoder | [DeepSeek Coder 33b Instruct](https://huggingface.co/deepseek-ai/deepseek-coder-33b-instruct) | **{check-circle}** Yes | **{check-circle}** Yes | **{dotted-circle}** No |
| DeepSeekCoder | [DeepSeek Coder 33b Base](https://huggingface.co/deepseek-ai/deepseek-coder-33b-base) | **{check-circle}** Yes | **{dotted-circle}** No | **{dotted-circle}** No |
| GPT | [GPT-3.5-Turbo](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-35) | **{check-circle}** No | **{dotted-circle}** Yes | **{dotted-circle}** No |
| GPT | [GPT-4](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-4) | **{check-circle}** No | **{dotted-circle}** Yes | **{dotted-circle}** No |
| GPT | [GPT-4 Turbo](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-4) | **{check-circle}** No | **{dotted-circle}** Yes | **{dotted-circle}** No |
| GPT | [GPT-4o](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-4o-and-gpt-4-turbo) | **{check-circle}** No | **{dotted-circle}** Yes | **{dotted-circle}** No |
| GPT | [GPT-4o-mini](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-4o-and-gpt-4-turbo) | **{check-circle}** No | **{dotted-circle}** Yes | **{dotted-circle}** No |
| GPT | [GPT-3.5-Turbo](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-35) | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No |
| GPT | [GPT-4](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-4) | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No |
| GPT | [GPT-4 Turbo](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-4) | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No |
| GPT | [GPT-4o](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-4o-and-gpt-4-turbo) | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No |
| GPT | [GPT-4o-mini](https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/models?tabs=python-secure#gpt-4o-and-gpt-4-turbo) | **{dotted-circle}** No | **{check-circle}** Yes | **{dotted-circle}** No |
<!-- vale gitlab_base.Spelling = YES -->

View File

@ -175,7 +175,4 @@ the added benefit and safety of an isolated writeable environment.
#### Simplified access through `pgai` Ruby gem
WARNING:
The `pgai` gem has not yet been updated to use the new database lab instances so you will only be able to access the legacy instance using this tool.
For instructions on using the `pgai` Ruby gem, see: [Database Lab access using the pgai Ruby gem](database_lab_pgai.md).

View File

@ -6,9 +6,6 @@ info: Any user with at least the Maintainer role can merge updates to this conte
# Database Lab access using the `pgai` Ruby gem
WARNING:
The `pgai` gem has not yet been updated to use the new database lab instances so you will only be able to access `gitlab-production-main` and `gitlab-production-ci` using this tool.
[@mbobin](https://gitlab.com/mbobin) created the [`pgai` Ruby Gem](https://gitlab.com/mbobin/pgai/#pgai) that
greatly simplifies access to a database clone, with support for:

View File

@ -21,7 +21,7 @@ On top of each dashboard, there's the same panel with the [error budget](../inde
Here, the time based targets adjust depending on the range.
For example, while the budget was 20 minutes per 28 days, it is only 1/4 of that for 7 days:
![5m budget in 7 days](img/error_budget_detail_7d_budget.png)
![5m budget in 7 days](img/error_budget_detail_7d_budget_v14_10.png)
Also, keep in mind that Grafana rounds the numbers. In this example the
total time spent is 5 minutes and 24 seconds, so 24 seconds over
@ -67,7 +67,7 @@ If this is something you would like for your group, let us know there.
### Stage group aggregation
![stage group aggregation graphs](img/error_budget_detail_stage_group_aggregation.png)
![stage group aggregation graphs](img/error_budget_detail_stage_group_aggregation_v14_10.png)
The stage group aggregation shows a graph with the Apdex and errors
portion of the error budget over time. The lower a dip in the Apdex
@ -82,7 +82,7 @@ the graph.
### Service-level indicators
![Rails requests service level indicator](img/error_budget_detail_sli.png)
![Rails requests service level indicator](img/error_budget_detail_sli_v14_10.png)
This time series shows a breakdown of each SLI that could be contributing to the
error budget for a stage group. Similar to the stage group

View File

@ -34,7 +34,7 @@ Some generated dashboards are already available:
## Time range controls
![Default time filter](img/stage_group_dashboards_time_filter.png)
![Default time filter](img/stage_group_dashboards_time_filter_v14_10.png)
By default, all the times are in UTC time zone.
[We use UTC when communicating in Engineering.](https://handbook.gitlab.com/handbook/communication/#writing-style-guidelines)
@ -54,7 +54,7 @@ Some special events are meaningful to development and operational activities.
[Grafana annotations](https://grafana.com/docs/grafana/latest/dashboards/build-dashboards/annotate-visualizations/) mark them
directly on the graphs.
![Filters and annotations](img/stage_group_dashboards_filters.png)
![Filters and annotations](img/stage_group_dashboards_filters_v14_10.png)
| Name | Type | Description |
| --------------- | ---------- | ----------- |
@ -67,4 +67,4 @@ directly on the graphs.
Example of a feature flag annotation displayed on a dashboard panel:
![Annotations](img/stage_group_dashboards_annotation.png)
![Annotations](img/stage_group_dashboards_annotation_v14_10.png)

View File

@ -17,7 +17,7 @@ contents, and how they can be customized.
### Error budget panels
![A panel showing metrics for a 28-day error budget including availability, budget remaining, and budget spent](img/stage_group_dashboards_28d_budget.png)
![A panel showing metrics for a 28-day error budget including availability, budget remaining, and budget spent](img/stage_group_dashboards_28d_budget_v14_10.png)
The top panels display the [error budget](../index.md#error-budget).
These panels always show the 28 days before the end time selected in the
@ -27,7 +27,7 @@ and stage.
### Metrics panels
![A time series graph displaying worker metrics for jobs-per-second completion rates](img/stage_group_dashboards_metrics.png)
![A time series graph displaying worker metrics for jobs-per-second completion rates](img/stage_group_dashboards_metrics_v14_10.png)
Although most of the metrics displayed in the panels are self-explanatory in their title and nearby
description, note the following:
@ -74,16 +74,16 @@ Example debugging workflow:
[Code Review group's dashboard](https://dashboards.gitlab.net/d/stage-groups-code_review/stage-groups-group-dashboard-create-code-review?orgId=1).
1. Sidekiq Error Rate panel shows an elevated error rate, specifically `UpdateMergeRequestsWorker`.
![A histogram showing error rate metrics from different worker events](img/stage_group_dashboards_debug_1.png)
![A histogram showing error rate metrics from different worker events](img/stage_group_dashboards_debug_1_v14_10.png)
1. If you select **Kibana: Kibana Sidekiq failed request logs** in the **Extra links** section, you can filter for `UpdateMergeRequestsWorker` and read through the logs.
![Debug 2](img/stage_group_dashboards_debug_2.png)
![Debug 2](img/stage_group_dashboards_debug_2_v14_10.png)
1. With [Sentry](https://sentry.gitlab.net/gitlab/gitlabcom/) you can find the exception where you
can filter by transaction type and `correlation_id` from Kibana's result item.
![Debug 3](img/stage_group_dashboards_debug_3.png)
![Debug 3](img/stage_group_dashboards_debug_3_v14_10.png)
1. A precise exception, including a stack trace, job arguments, and other information should now appear.
@ -162,7 +162,7 @@ stageGroupDashboards.dashboard('source_code')
.stageGroupDashboardTrailer()
```
![Stage Group Dashboard Customization](img/stage_group_dashboards_time_customization.png)
![Stage Group Dashboard Customization](img/stage_group_dashboards_time_customization_v14_10.png)
<i class="fa fa-youtube-play youtube" aria-hidden="true"></i>
If you want to see the workflow in action, we've recorded a pairing session on customizing a dashboard,

View File

@ -110,7 +110,7 @@ The row below the error budget row is collapsed by default. Expanding
it shows which component and violation type had the most offending
operations in the past 28 days.
![Error attribution](img/stage_group_dashboards_error_attribution.png)
![Error attribution](img/stage_group_dashboards_error_attribution_v14_1.png)
The first panel on the left shows a table with the number of errors per
component. Digging into the first row in that table has
@ -140,7 +140,7 @@ component means.
For example, see the `server` component of the `web-pages` service:
![web-pages-server-component SLI](img/stage_group_dashboards_service_sli_detail.png)
![web-pages-server-component SLI](img/stage_group_dashboards_service_sli_detail_v14_1.png)
To add more SLIs tailored to specific features, you can use an [Application SLI](../application_slis/index.md).

View File

@ -347,52 +347,6 @@ omniauth:
::EndTabs
## Use a custom OmniAuth provider
NOTE:
The following information only applies to self-compiled installations.
If you have to integrate with an authentication solution other than the [OmniAuth](https://github.com/omniauth/omniauth) providers included with GitLab,
you can use a custom OmniAuth provider.
These steps are general. Read the OmniAuth provider's documentation for the exact
implementation details.
1. Stop GitLab:
```shell
sudo service gitlab stop
```
1. Add the gem to your [`Gemfile`](https://gitlab.com/gitlab-org/gitlab/-/blob/master/Gemfile):
```shell
gem "omniauth-your-auth-provider"
```
1. Install the new OmniAuth provider gem:
```shell
sudo -u git -H bundle install --without development test mysql --path vendor/bundle --no-deployment
```
These commands are the same as the commands for [installing gems](../install/installation.md#install-gems)
during initial installation, with `--path vendor/bundle --no-deployment` instead of `--deployment`.
1. Start GitLab:
```shell
sudo service gitlab start
```
### Custom OmniAuth provider examples
If you have successfully set up a provider that is not already integrated with GitLab,
let us know.
We can't officially support every possible authentication mechanism available,
but we'd like to at least help those with specific needs.
## Keep OmniAuth user profiles up to date
You can enable profile syncing from selected OmniAuth providers.

View File

@ -201,7 +201,7 @@ Project permissions for [model registry](project/ml/model_registry/index.md) and
Project permissions for monitoring including [error tracking](../operations/error_tracking.md) and [incident management](../operations/incident_management/index.md):
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|---------------------------------------------------------------------------------------------------------------------|-:-:---|-:-:------|-:-:-------|-:-:--------|-:-:---|-------|
|---------------------------------------------------------------------------------------------------------------------| :----:| :------: | :-------: | :--------: | :---: | :---: |
| View an [incident](../operations/incident_management/incidents.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Assign an [incident management](../operations/incident_management/index.md) alert | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Participate in on-call rotation for [Incident Management](../operations/incident_management/index.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
@ -331,37 +331,37 @@ Project permissions for [project features](project/organize_work_with_projects.m
Project permissions for [GitLab Pages](project/pages/index.md):
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|---------------------------------------------------------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
| View GitLab Pages protected by [access control](project/pages/pages_access_control.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Manage GitLab Pages | | | | ✓ | ✓ | |
| Manage GitLab Pages domain and certificates | | | | ✓ | ✓ | |
| Remove GitLab Pages | | | | ✓ | ✓ | |
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|-----------------------------------------------------------------------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
| View GitLab Pages protected by [access control](project/pages/pages_access_control.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
| Manage GitLab Pages | | | | ✓ | ✓ | |
| Manage GitLab Pages domain and certificates | | | | ✓ | ✓ | |
| Remove GitLab Pages | | | | ✓ | ✓ | |
### Repository
Project permissions for [repository](project/repository/index.md) features including source code, branches, push rules, and more:
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|----------------------------------------------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
| View project code | ✓ | ✓ | ✓ | ✓ | ✓ | On self-managed GitLab instances, users with the Guest role are able to perform this action only on public and internal projects (not on private projects). [External users](../administration/external_users.md) must be given explicit access (at least the **Reporter** role) even if the project is internal. Users with the Guest role on GitLab.com are only able to perform this action on public projects because internal visibility is not available. In GitLab 15.9 and later, users with the Guest role and an Ultimate license can view private repository content if an administrator (on self-managed or GitLab Dedicated) or group owner (on GitLab.com) gives those users permission. The administrator or group owner can create a [custom role](custom_roles.md) through the API or UI and assign that role to the users. |
| Pull project code | ✓ | ✓ | ✓ | ✓ | ✓ | On self-managed GitLab instances, users with the Guest role are able to perform this action only on public and internal projects (not on private projects). [External users](../administration/external_users.md) must be given explicit access (at least the **Reporter** role) even if the project is internal. Users with the Guest role on GitLab.com are only able to perform this action on public projects because internal visibility is not available. |
| View commit status | | ✓ | ✓ | ✓ | ✓ | |
| Create commit status | | | ✓ | ✓ | ✓ | If the [branch is protected](project/repository/branches/protected.md), this depends on the access given to Developers and Maintainers. |
| Update commit status | | | ✓ | ✓ | ✓ | If the [branch is protected](project/repository/branches/protected.md), this depends on the access given to Developers and Maintainers. |
| Create [Git tags](project/repository/tags/index.md) | | | ✓ | ✓ | ✓ | |
| Delete [Git tags](project/repository/tags/index.md) | | | ✓ | ✓ | ✓ | |
| Create new [branches](project/repository/branches/index.md) | | | ✓ | ✓ | ✓ | |
| Delete non-protected branches | | | ✓ | ✓ | ✓ | |
| Force push to non-protected branches | | | ✓ | ✓ | ✓ | |
| Push to non-protected branches | | | ✓ | ✓ | ✓ | |
| Manage [protected branches](project/repository/branches/protected.md) | | | | ✓ | ✓ | |
| Delete protected branches | | | | ✓ | ✓ | |
| Push to protected branches | | | | ✓ | ✓ | If the [branch is protected](project/repository/branches/protected.md), this depends on the access given to Developers and Maintainers. |
| Manage [protected tags](project/protected_tags.md) | | | | ✓ | ✓ | |
| Manage [push rules](project/repository/push_rules.md) | | | | ✓ | ✓ | |
| Remove fork relationship | | | | | ✓ | |
| Force push to protected branches | | | | | | Not allowed for Guest, Reporter, Developer, Maintainer, or Owner. See [protected branches](project/repository/branches/protected.md#allow-force-push-on-a-protected-branch). |
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|-----------------------------------------------------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
| View project code | ✓ | ✓ | ✓ | ✓ | ✓ | On self-managed GitLab instances, users with the Guest role are able to perform this action only on public and internal projects (not on private projects). [External users](../administration/external_users.md) must be given explicit access (at least the **Reporter** role) even if the project is internal. Users with the Guest role on GitLab.com are only able to perform this action on public projects because internal visibility is not available. In GitLab 15.9 and later, users with the Guest role and an Ultimate license can view private repository content if an administrator (on self-managed or GitLab Dedicated) or group owner (on GitLab.com) gives those users permission. The administrator or group owner can create a [custom role](custom_roles.md) through the API or UI and assign that role to the users. |
| Pull project code | ✓ | ✓ | ✓ | ✓ | ✓ | On self-managed GitLab instances, users with the Guest role are able to perform this action only on public and internal projects (not on private projects). [External users](../administration/external_users.md) must be given explicit access (at least the **Reporter** role) even if the project is internal. Users with the Guest role on GitLab.com are only able to perform this action on public projects because internal visibility is not available. |
| View commit status | | ✓ | ✓ | ✓ | ✓ | |
| Create commit status | | | ✓ | ✓ | ✓ | If the [branch is protected](project/repository/branches/protected.md), this depends on the access given to Developers and Maintainers. |
| Update commit status | | | ✓ | ✓ | ✓ | If the [branch is protected](project/repository/branches/protected.md), this depends on the access given to Developers and Maintainers. |
| Create [Git tags](project/repository/tags/index.md) | | | ✓ | ✓ | ✓ | |
| Delete [Git tags](project/repository/tags/index.md) | | | ✓ | ✓ | ✓ | |
| Create new [branches](project/repository/branches/index.md) | | | ✓ | ✓ | ✓ | |
| Delete non-protected branches | | | ✓ | ✓ | ✓ | |
| Force push to non-protected branches | | | ✓ | ✓ | ✓ | |
| Push to non-protected branches | | | ✓ | ✓ | ✓ | |
| Manage [protected branches](project/repository/branches/protected.md) | | | | ✓ | ✓ | |
| Delete protected branches | | | | ✓ | ✓ | |
| Push to protected branches | | | | ✓ | ✓ | If the [branch is protected](project/repository/branches/protected.md), this depends on the access given to Developers and Maintainers. |
| Manage [protected tags](project/protected_tags.md) | | | | ✓ | ✓ | |
| Manage [push rules](project/repository/push_rules.md) | | | | ✓ | ✓ | |
| Remove fork relationship | | | | | ✓ | |
| Force push to protected branches | | | | | | Not allowed for Guest, Reporter, Developer, Maintainer, or Owner. See [protected branches](project/repository/branches/protected.md#allow-force-push-on-a-protected-branch). |
Project permissions for [merge requests](project/merge_requests/index.md):
@ -405,8 +405,8 @@ The following table lists group permissions available for each role:
Group permission for [analytics](../user/analytics/index.md) features including value streams, product analytics, and insights:
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|---------------------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
| Action | Guest | Reporter | Developer | Maintainer | Owner | Notes |
|-----------------------------------------------------------------------------------------|:-----:|:--------:|:---------:|:----------:|:-----:|-------|
| View [Insights](project/insights/index.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
| View [Insights](project/insights/index.md) charts | ✓ | ✓ | ✓ | ✓ | ✓ | |
| View [Issue analytics](group/issues_analytics/index.md) | ✓ | ✓ | ✓ | ✓ | ✓ | |
@ -478,9 +478,9 @@ Group permissions for [group features](../user/group/index.md):
| Create subgroup | | | | ✓ | ✓ | Maintainers: Only if users with the Maintainer role [can create subgroups](group/subgroups/index.md#change-who-can-create-subgroups). |
| Edit [epic](group/epics/index.md) comments (posted by any user) | | | | ✓ | ✓ | |
| Fork project into a group | | | | ✓ | ✓ | |
| View [Billing](../subscriptions/gitlab_com/index.md#view-gitlabcom-subscription) | | | | | ✓ | Does not apply to subgroups |
| View group [Usage Quotas](storage_usage_quotas.md) page | | | | | ✓ | Does not apply to subgroups |
| [Migrate group](group/import/index.md) | | | | | ✓ | |
| View [Billing](../subscriptions/gitlab_com/index.md#view-gitlabcom-subscription) | | | | | ✓ | Does not apply to subgroups |
| View group [Usage Quotas](storage_usage_quotas.md) page | | | | | ✓ | Does not apply to subgroups |
| [Migrate group](group/import/index.md) | | | | | ✓ | |
| Delete group | | | | | ✓ | |
| Manage [subscriptions, storage, and compute minutes](../subscriptions/gitlab_com/index.md) | | | | | ✓ | |
| Manage [group access tokens](group/settings/group_access_tokens.md) | | | | | ✓ | |

View File

@ -10,6 +10,7 @@ module Gitlab
class CurrentUserMode
include Gitlab::Utils::StrongMemoize
NotRequestedError = Class.new(StandardError)
NonSidekiqEnvironmentError = Class.new(StandardError)
# RequestStore entries
CURRENT_REQUEST_BYPASS_SESSION_ADMIN_ID_RS_KEY = { res: :current_user_mode, data: :bypass_session_admin_id }.freeze
@ -84,6 +85,20 @@ module Gitlab
def current_admin
Gitlab::SafeRequestStore[CURRENT_REQUEST_ADMIN_MODE_USER_RS_KEY]
end
def optionally_run_in_admin_mode(user)
raise NonSidekiqEnvironmentError unless Gitlab::Runtime.sidekiq?
unless Gitlab::CurrentSettings.admin_mode && user.admin? # rubocop:disable Cop/UserAdmin -- policy checks should be enforced further down the stack
return yield
end
bypass_session!(user.id) do
with_current_admin(user) do
yield
end
end
end
end
def initialize(user, session = Gitlab::Session.current)

View File

@ -1057,10 +1057,12 @@ excluded_attributes:
- :start_date_sourcing_epic_id
- :due_date_sourcing_epic_id
- :issue_id
- :work_item_parent_link_id
epic_issue:
- :epic_id
- :issue_id
- :namespace_id
- :work_item_parent_link_id
system_note_metadata:
- :description_version_id
- :note_id

View File

@ -78,14 +78,17 @@ module Gitlab
end
def send_to_processing_queue(job)
context = (job['context'] || {}).merge(related_class: self.class.name)
context = job['context'] || {}
Gitlab::ApplicationContext.with_raw_context(context) do
args = job['args']
Gitlab::SidekiqLogging::ConcurrencyLimitLogger.instance.resumed_log(worker_name, args)
worker_name.safe_constantize&.perform_async(*args)
worker_klass = worker_name.safe_constantize
next if worker_klass.nil?
worker_klass.concurrency_limit_resume.perform_async(*args)
end
end

View File

@ -58,7 +58,7 @@ module Gitlab
end
def resumed?
current_context['meta.related_class'] == concurrency_service.name
job['concurrency_limit_resume'] == true
end
def has_jobs_in_queue?

View File

@ -60183,7 +60183,7 @@ msgstr ""
msgid "ValueStreamAnalytics|Dashboard"
msgstr ""
msgid "ValueStreamAnalytics|Edit Value Stream: %{name}"
msgid "ValueStreamAnalytics|Edit value stream: %{name}"
msgstr ""
msgid "ValueStreamAnalytics|Failed to load usage overview data"
@ -60216,7 +60216,7 @@ msgstr ""
msgid "ValueStreamAnalytics|Merge request analytics"
msgstr ""
msgid "ValueStreamAnalytics|New Value Stream"
msgid "ValueStreamAnalytics|New value stream"
msgstr ""
msgid "ValueStreamAnalytics|Number of commits pushed to the default branch"

View File

@ -11,7 +11,7 @@ module QA
def initialize
@image = 'registry.gitlab.com/gitlab-org/security-products/dast/webgoat-8.0@sha256:' \
'bc09fe2e0721dfaeee79364115aeedf2174cce0947b9ae5fe7c33312ee019a4e'
'bc09fe2e0721dfaeee79364115aeedf2174cce0947b9ae5fe7c33312ee019a4e'
@name = 'webgoatserver'
super
end
@ -20,24 +20,23 @@ module QA
return if running?
command = %W[docker run -d --rm --network #{network} --name #{name} --hostname #{host_name}]
command.push("-e", "WEBGOAT_PORT=#{host_network? ? server_port : DEFAULT_SERVER_PORT}")
command.push("-e", "WEBGOAT_SSRF_PORT=#{host_network? ? admin_port : DEFAULT_ADMIN_PORT}")
command.push("-p", DEFAULT_SERVER_PORT, "-p", WEBGOAT_SSRF_PORT) unless host_network?
command.push("-e", "WEBGOAT_PORT=#{host_network? ? server_port_host : DEFAULT_SERVER_PORT}")
command.push("-e", "WEBGOAT_SSRF_PORT=#{host_network? ? admin_port_host : DEFAULT_ADMIN_PORT}")
command.push("-p", DEFAULT_SERVER_PORT, "-p", DEFAULT_ADMIN_PORT) unless host_network?
command.push(image)
shell command.join(" ")
end
def ip_address
ip_address = `docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' #{name}`.strip
return host_name if ip_address.empty?
ip_address
@ip_address ||= shell("docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' #{name}")
.strip
.then { |addr| addr.empty? ? host_name : addr }
end
def public_port
@public_port ||= if host_network?
server_port
server_port_host
elsif docker_network?
DEFAULT_SERVER_PORT
else
@ -47,7 +46,7 @@ module QA
def admin_port
@admin_port ||= if host_network?
admin_port_random
admin_port_host
elsif docker_network?
DEFAULT_ADMIN_PORT
else
@ -59,11 +58,11 @@ module QA
attr_reader :name, :image
def server_port
def server_port_host
@server_port ||= random_port
end
def admin_port_random
def admin_port_host
@admin_port_random ||= random_port
end

View File

@ -35,6 +35,7 @@ module QA
:ci_job_url,
:ci_job_name,
:rspec_retried?,
:parallel_run?,
to: QA::Runtime::Env
delegate :retry_failed_specs?, to: ::Gitlab::QA::Runtime::Env
@ -66,7 +67,7 @@ module QA
def save_test_metrics
return log(:info, "Saving test metrics json not enabled, skipping") unless save_metrics_json?
file = File.join('tmp', metrics_file_name(prefix: 'test'))
file = File.join('tmp', metrics_file_name(prefix: 'test', with_pipeline_id_postfix: false))
File.write(file, execution_data.to_json) && log(:debug, "Saved test metrics to #{file}")
rescue StandardError => e
@ -99,7 +100,7 @@ module QA
retry_on_exception(sleep_interval: 30, message: 'Failed to push test metrics to GCS') do
gcs_client.put_object(
gcs_bucket,
metrics_file_name(prefix: 'test', postfix: metrics_filename_postfix),
metrics_file_name(prefix: 'test'),
execution_data.to_json,
force: true, content_type: 'application/json'
)
@ -145,7 +146,7 @@ module QA
retry_on_exception(sleep_interval: 30, message: 'Failed to push resource fabrication metrics to GCS') do
gcs_client.put_object(
gcs_bucket,
metrics_file_name(prefix: 'fabrication', postfix: metrics_filename_postfix),
metrics_file_name(prefix: 'fabrication'),
data.to_json, force: true,
content_type: 'application/json'
)
@ -184,22 +185,17 @@ module QA
# Construct file name for metrics
#
# @param [Hash] prefix of filename
# @return [void]
def metrics_file_name(prefix:, postfix: '')
"#{prefix}-metrics-#{env('CI_JOB_NAME_SLUG') || 'local'}" \
"#{retry_failed_specs? ? "-retry-#{rspec_retried?}" : ''}#{postfix}.json"
end
# Postfix for metrics filenames
#
# @param [String] prefix
# @param [Boolean] with_pipeline_id_postfix
# @return [String]
def metrics_filename_postfix
@metrics_filename_postfix ||= if QA::Runtime::Env.parallel_run?
"-#{Process.pid}-#{env('CI_PIPELINE_ID') || 'local'}"
else
"-#{env('CI_PIPELINE_ID') || 'local'}"
end
def metrics_file_name(prefix:, with_pipeline_id_postfix: true)
name = ["#{prefix}-metrics-#{env('CI_JOB_NAME_SLUG') || 'local'}"]
name << "-env-#{env('TEST_ENV_NUMBER') || 1}" if parallel_run?
name << "-retry-#{rspec_retried?}" if retry_failed_specs?
name << "-#{env('CI_PIPELINE_ID') || 'local'}" if with_pipeline_id_postfix
name << ".json"
name.join
end
# Transform example to influxdb compatible metrics data

View File

@ -15,7 +15,7 @@
module QA
module Tools
class DeleteTestUsers < DeleteResourceBase
EXCLUDE_USERS = %w[gitlab-qa gitlab-qa-user-for-ai].freeze
EXCLUDE_USERS = %w[gitlab-qa gitlab-qa-user-for-ai gitlab-qa-user-for-jetbrains glab-test-bot].freeze
def initialize(dry_run: false, exclude_users: nil)
super(dry_run: dry_run)

View File

@ -30,7 +30,9 @@ RSpec.describe 'Editing file blob', :js, feature_category: :source_code_manageme
edit_in_single_file_editor
end
fill_editor(content: 'class NextFeature\\nend\\n')
# Append object_id so that the content varies between specs. If we don't do this then depending on test order
# there may be no diff and nothing to render.
fill_editor(content: "class NextFeature#{object_id}\\nend\\n")
if commit_changes
click_button 'Commit changes'
@ -124,14 +126,12 @@ RSpec.describe 'Editing file blob', :js, feature_category: :source_code_manageme
expect(page).to have_content 'NextFeature'
end
it 'previews content', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/448293' do
it 'previews content' do
edit_and_commit(commit_changes: false)
click_link 'Preview changes'
wait_for_requests
new_line_count = page.all('.line_holder.new').size
expect(new_line_count).to be > 0
expect(page).to have_css('.line_holder.new')
end
end

View File

@ -1,4 +1,8 @@
import { GlDisclosureDropdown, GlDisclosureDropdownItem } from '@gitlab/ui';
import {
GlDisclosureDropdown,
GlDisclosureDropdownItem,
GlDisclosureDropdownGroup,
} from '@gitlab/ui';
import { shallowMount } from '@vue/test-utils';
import AxiosMockAdapter from 'axios-mock-adapter';
import { nextTick } from 'vue';
@ -26,6 +30,7 @@ describe('noteActions', () => {
const findUserAccessRoleBadgeText = (idx) => findUserAccessRoleBadge(idx).text().trim();
const findTimelineButton = () => wrapper.findComponent(TimelineEventButton);
const findReportAbuseButton = () => wrapper.find(`[data-testid="report-abuse-button"]`);
const findDisclosureDropdownGroup = () => wrapper.findComponent(GlDisclosureDropdownGroup);
const setupStoreForIncidentTimelineEvents = ({
userCanAdd,
@ -53,6 +58,7 @@ describe('noteActions', () => {
close: mockCloseDropdown,
},
}),
GlDisclosureDropdownGroup,
GlDisclosureDropdownItem,
},
});
@ -119,6 +125,32 @@ describe('noteActions', () => {
expect(wrapper.find('[data-testid="note-emoji-button"]').exists()).toBe(true);
});
describe('actions dropdown group', () => {
it('should render the dropdown group when canReportAsAbuse is true', async () => {
wrapper.setProps({ canReportAsAbuse: true });
await nextTick();
expect(findDisclosureDropdownGroup().exists()).toBe(true);
});
it('should render the dropdown group when canEdit is true', async () => {
wrapper.setProps({ canEdit: true });
await nextTick();
expect(findDisclosureDropdownGroup().exists()).toBe(true);
});
it('should render the dropdown group when both canReportAsAbuse and canEdit are true', async () => {
wrapper.setProps({ canReportAsAbuse: true, canEdit: true });
await nextTick();
expect(findDisclosureDropdownGroup().exists()).toBe(true);
});
it('should not render the dropdown group when neither canReportAsAbuse nor canEdit is true', async () => {
wrapper.setProps({ canReportAsAbuse: false, canEdit: false });
await nextTick();
expect(findDisclosureDropdownGroup().exists()).toBe(false);
});
});
describe('actions dropdown', () => {
it('should be possible to edit the comment', () => {
expect(wrapper.find('.js-note-edit').exists()).toBe(true);

View File

@ -19,7 +19,7 @@ import expirationPolicyQuery from '~/packages_and_registries/settings/project/gr
import {
expirationPolicyPayload,
emptyExpirationPolicyPayload,
containerExpirationPolicyData,
containerTagsExpirationPolicyData,
nullExpirationPolicyPayload,
} from '../mock_data';
@ -65,12 +65,12 @@ describe('Cleanup image tags project settings', () => {
describe('isEdited status', () => {
it.each`
description | apiResponse | workingCopy | result
${'empty response and no changes from user'} | ${emptyExpirationPolicyPayload()} | ${{}} | ${false}
${'empty response and changes from user'} | ${emptyExpirationPolicyPayload()} | ${{ enabled: true }} | ${true}
${'response and no changes'} | ${expirationPolicyPayload()} | ${containerExpirationPolicyData()} | ${false}
${'response and changes'} | ${expirationPolicyPayload()} | ${{ ...containerExpirationPolicyData(), nameRegex: '12345' }} | ${true}
${'response and empty'} | ${expirationPolicyPayload()} | ${{}} | ${true}
description | apiResponse | workingCopy | result
${'empty response and no changes from user'} | ${emptyExpirationPolicyPayload()} | ${{}} | ${false}
${'empty response and changes from user'} | ${emptyExpirationPolicyPayload()} | ${{ enabled: true }} | ${true}
${'response and no changes'} | ${expirationPolicyPayload()} | ${containerTagsExpirationPolicyData()} | ${false}
${'response and changes'} | ${expirationPolicyPayload()} | ${{ ...containerTagsExpirationPolicyData(), nameRegex: '12345' }} | ${true}
${'response and empty'} | ${expirationPolicyPayload()} | ${{}} | ${true}
`('$description', async ({ apiResponse, workingCopy, result }) => {
mountComponentWithApollo({
provide: { ...defaultProvidedValues, enableHistoricEntries: true },

View File

@ -24,12 +24,12 @@ describe('Container Expiration Policy Settings Form', () => {
const {
data: {
project: { containerExpirationPolicy },
project: { containerTagsExpirationPolicy },
},
} = expirationPolicyPayload();
const defaultProps = {
value: { ...containerExpirationPolicy },
value: { ...containerTagsExpirationPolicy },
};
const trackingPayload = {
@ -107,7 +107,7 @@ describe('Container Expiration Policy Settings Form', () => {
// we keep in sync what prop we pass to the component with the cache
const {
data: {
project: { containerExpirationPolicy: value },
project: { containerTagsExpirationPolicy: value },
},
} = queryPayload;

View File

@ -7,7 +7,7 @@ describe('Registry settings cache update', () => {
const payload = (value) => ({
data: {
updateContainerExpirationPolicy: {
containerExpirationPolicy: {
containerTagsExpirationPolicy: {
...value,
},
},
@ -16,7 +16,7 @@ describe('Registry settings cache update', () => {
const cacheMock = {
project: {
containerExpirationPolicy: {
containerTagsExpirationPolicy: {
enabled: false,
},
},
@ -45,7 +45,7 @@ describe('Registry settings cache update', () => {
...queryAndVariables,
data: {
project: {
containerExpirationPolicy: {
containerTagsExpirationPolicy: {
enabled: true,
},
},
@ -60,7 +60,7 @@ describe('Registry settings cache update', () => {
...queryAndVariables,
data: {
project: {
containerExpirationPolicy: {
containerTagsExpirationPolicy: {
enabled: false,
},
},

View File

@ -1,5 +1,5 @@
export const containerExpirationPolicyData = () => ({
__typename: 'ContainerExpirationPolicy',
export const containerTagsExpirationPolicyData = () => ({
__typename: 'ContainerTagsExpirationPolicy',
cadence: 'EVERY_DAY',
enabled: true,
keepN: 'TEN_TAGS',
@ -13,8 +13,8 @@ export const expirationPolicyPayload = (override) => ({
data: {
project: {
id: '1',
containerExpirationPolicy: {
...containerExpirationPolicyData(),
containerTagsExpirationPolicy: {
...containerTagsExpirationPolicyData(),
...override,
},
},
@ -24,7 +24,7 @@ export const expirationPolicyPayload = (override) => ({
export const emptyExpirationPolicyPayload = () => ({
data: {
project: {
containerExpirationPolicy: {},
containerTagsExpirationPolicy: {},
},
},
});
@ -33,7 +33,7 @@ export const nullExpirationPolicyPayload = () => ({
data: {
project: {
id: '1',
containerExpirationPolicy: null,
containerTagsExpirationPolicy: null,
},
},
});
@ -41,8 +41,8 @@ export const nullExpirationPolicyPayload = () => ({
export const expirationPolicyMutationPayload = ({ override, errors = [] } = {}) => ({
data: {
updateContainerExpirationPolicy: {
containerExpirationPolicy: {
...containerExpirationPolicyData(),
containerTagsExpirationPolicy: {
...containerTagsExpirationPolicyData(),
...override,
},
errors,

View File

@ -126,7 +126,7 @@ describe('SuperSidebar component', () => {
it('adds inert attribute when collapsed', () => {
createWrapper({ sidebarState: { isCollapsed: true } });
expect(findSidebar().attributes('inert')).toBe('inert');
expect(findSidebar().attributes('inert')).toBeDefined();
});
it('does not add inert attribute when expanded', () => {
@ -271,7 +271,7 @@ describe('SuperSidebar component', () => {
it(`initially makes sidebar inert and peekable (${STATE_CLOSED})`, () => {
createWrapper({ sidebarState: { isCollapsed: true, isPeekable: true } });
expect(findSidebar().attributes('inert')).toBe('inert');
expect(findSidebar().attributes('inert')).toBeDefined();
expect(findSidebar().classes()).not.toContain(peekHintClass);
expect(findSidebar().classes()).not.toContain(hasPeekedClass);
expect(findSidebar().classes()).not.toContain(peekClass);
@ -283,7 +283,7 @@ describe('SuperSidebar component', () => {
findPeekBehavior().vm.$emit('change', STATE_WILL_OPEN);
await nextTick();
expect(findSidebar().attributes('inert')).toBe('inert');
expect(findSidebar().attributes('inert')).toBeDefined();
expect(findSidebar().classes()).toContain(peekHintClass);
expect(findSidebar().classes()).toContain(hasPeekedClass);
expect(findSidebar().classes()).not.toContain(peekClass);
@ -414,6 +414,7 @@ describe('SuperSidebar component', () => {
wrapper.vm.sidebarState.isCollapsed = false;
await nextTick();
await nextTick();
expect(focusSpy).toHaveBeenCalledTimes(1);
});
@ -432,6 +433,7 @@ describe('SuperSidebar component', () => {
wrapper.vm.sidebarState.isCollapsed = false;
await nextTick();
await nextTick();
expect(focusSpy).toHaveBeenCalledTimes(1);
@ -448,9 +450,10 @@ describe('SuperSidebar component', () => {
});
const ESC_KEY = 27;
it('collapses sidebar when sidebar is in overlay mode', () => {
it('collapses sidebar when sidebar is in overlay mode', async () => {
jest.spyOn(bp, 'windowWidth').mockReturnValue(lg);
findSidebar().trigger('keydown', { keyCode: ESC_KEY });
await findSidebar().trigger('keydown.esc', { keyCode: ESC_KEY });
expect(toggleSuperSidebarCollapsed).toHaveBeenCalled();
});

View File

@ -1,4 +1,4 @@
import { GlDisclosureDropdown } from '@gitlab/ui';
import { GlDisclosureDropdown, GlDisclosureDropdownGroup } from '@gitlab/ui';
import Vue from 'vue';
import VueApollo from 'vue-apollo';
import createMockApollo from 'helpers/mock_apollo_helper';
@ -27,6 +27,7 @@ describe('Work Item Note Actions', () => {
const findAuthorBadge = () => wrapper.findByTestId('author-badge');
const findMaxAccessLevelBadge = () => wrapper.findByTestId('max-access-level-badge');
const findContributorBadge = () => wrapper.findByTestId('contributor-badge');
const findDisclosureDropdownGroup = () => wrapper.findComponent(GlDisclosureDropdownGroup);
const addEmojiMutationResolver = jest.fn().mockResolvedValue({
data: {
@ -84,6 +85,42 @@ describe('Work Item Note Actions', () => {
showSpy.mockClear();
});
describe('dropdown group', () => {
it('renders dropdown group when either canReportAbuse or showEdit is true', () => {
createComponent({ canReportAbuse: true, showEdit: true });
expect(findDisclosureDropdownGroup().exists()).toBe(true);
});
it('does not render dropdown group when both canReportAbuse and showEdit are false', () => {
createComponent({ canReportAbuse: false, showEdit: false });
expect(findDisclosureDropdownGroup().exists()).toBe(false);
});
it('renders reportAbuse button inside dropdown group when canReportAbuse is true', () => {
createComponent({ canReportAbuse: true });
expect(findDisclosureDropdownGroup().exists()).toBe(true);
expect(findReportAbuseToAdminButton().exists()).toBe(true);
});
it('renders delete note button inside dropdown group when showEdit is true', () => {
createComponent({ showEdit: true });
expect(findDisclosureDropdownGroup().exists()).toBe(true);
expect(findDeleteNoteButton().exists()).toBe(true);
});
it('renders both reportAbuse and delete note buttons when both canReportAbuse and showEdit are true', () => {
createComponent({ canReportAbuse: true, showEdit: true });
expect(findDisclosureDropdownGroup().exists()).toBe(true);
expect(findReportAbuseToAdminButton().exists()).toBe(true);
expect(findDeleteNoteButton().exists()).toBe(true);
});
});
describe('reply button', () => {
it('is visible by default', () => {
createComponent();

View File

@ -171,11 +171,14 @@ describe('WorkItemChildrenWrapper', () => {
describe('drag & drop', () => {
let dragParams;
let draggedItem;
beforeEach(() => {
isLoggedIn.mockReturnValue(true);
createComponent({ canUpdate: true, children: childrenWorkItemsObjectives });
draggedItem = findFirstWorkItemLinkChildItem().element;
dragParams = {
oldIndex: 1,
newIndex: 0,
@ -184,14 +187,16 @@ describe('WorkItemChildrenWrapper', () => {
};
});
it('adds a class `is-dragging` to document body when dragging', async () => {
it('emits drag event with child type and adds a class `is-dragging` to document body when dragging', async () => {
expect(document.body.classList.contains('is-dragging')).toBe(false);
wrapper.findComponent(Draggable).vm.$emit('start');
wrapper.findComponent(Draggable).vm.$emit('start', { item: draggedItem });
expect(wrapper.emitted('drag')).toEqual([[draggedItem.dataset.childType]]);
expect(document.body.classList.contains('is-dragging')).toBe(true);
wrapper.findComponent(Draggable).vm.$emit('end', dragParams);
expect(wrapper.emitted('drop').length).toBe(1);
await nextTick();
expect(document.body.classList.contains('is-dragging')).toBe(false);
@ -199,7 +204,7 @@ describe('WorkItemChildrenWrapper', () => {
it('dispatches `mouseup` event and cancels drag when Escape key is pressed', async () => {
jest.spyOn(document, 'dispatchEvent');
wrapper.findComponent(Draggable).vm.$emit('start');
wrapper.findComponent(Draggable).vm.$emit('start', { item: draggedItem });
const event = new Event('keyup');
event.code = ESC_KEY;

View File

@ -26,6 +26,7 @@ import {
workItemHierarchyTreeResponse,
workItemHierarchyPaginatedTreeResponse,
workItemHierarchyTreeFailureResponse,
workItemHierarchyNoChildrenTreeResponse,
} from '../../mock_data';
jest.mock('~/alert');
@ -60,6 +61,7 @@ describe('WorkItemLinkChild', () => {
workItemTreeQueryHandler = getWorkItemTreeQueryHandler,
isExpanded = false,
showTaskWeight = false,
props = {},
} = {}) => {
const mockApollo = createMockApollo([[getWorkItemTreeQuery, workItemTreeQueryHandler]], {
Mutation: {
@ -85,6 +87,7 @@ describe('WorkItemLinkChild', () => {
workItemType,
workItemFullPath,
showTaskWeight,
...props,
},
stubs: {
WorkItemChildrenWrapper,
@ -286,4 +289,56 @@ describe('WorkItemLinkChild', () => {
});
});
});
describe('drag & drop', () => {
const allowedChildrenByType = { Issue: ['Task'], Epic: ['Epic', 'Issue'] };
const getWorkItemTreeNoChildrenQueryHandler = jest
.fn()
.mockResolvedValue(workItemHierarchyNoChildrenTreeResponse);
it('emits drag & drop events from children wrapper', () => {
createComponent({
isExpanded: true,
});
findTreeChildren().vm.$emit('drag', 'Task');
expect(wrapper.emitted('drag')).toEqual([['Task']]);
findTreeChildren().vm.$emit('drop');
expect(wrapper.emitted('drop').length).toBe(1);
});
it.each`
draggedItemType | childItemType | showChildrenDropzone
${'Task'} | ${'Task'} | ${false}
${'Task'} | ${'Issue'} | ${true}
${'Task'} | ${'Epic'} | ${false}
${'Issue'} | ${'Task'} | ${false}
${'Issue'} | ${'Issue'} | ${false}
${'Issue'} | ${'Epic'} | ${true}
${'Epic'} | ${'Task'} | ${false}
${'Epic'} | ${'Issue'} | ${false}
${'Epic'} | ${'Epic'} | ${true}
`(
'shows children dropzone is $showChildrenDropzone when dragging $draggedItemType in $childItemType for orphans',
async ({ draggedItemType, childItemType, showChildrenDropzone }) => {
createComponent({
workItemTreeQueryHandler: getWorkItemTreeNoChildrenQueryHandler,
props: {
allowedChildrenByType,
draggedItemType,
childItem: {
...workItemEpic,
workItemType: {
...workItemEpic.workItemType,
name: childItemType,
},
},
},
});
await waitForPromises();
expect(findTreeChildren().exists()).toBe(showChildrenDropzone);
},
);
});
});

View File

@ -13,6 +13,7 @@ import WorkItemActionsSplitButton from '~/work_items/components/work_item_links/
import WorkItemMoreActions from '~/work_items/components/shared/work_item_more_actions.vue';
import WorkItemRolledUpData from '~/work_items/components/work_item_links/work_item_rolled_up_data.vue';
import getWorkItemTreeQuery from '~/work_items/graphql/work_item_tree.query.graphql';
import namespaceWorkItemTypesQuery from '~/work_items/graphql/namespace_work_item_types.query.graphql';
import {
FORM_TYPES,
WORK_ITEM_TYPE_ENUM_OBJECTIVE,
@ -31,6 +32,7 @@ import {
workItemHierarchyTreeEmptyResponse,
workItemHierarchyNoUpdatePermissionResponse,
mockRolledUpCountsByType,
namespaceWorkItemTypesQueryResponse,
} from '../../mock_data';
jest.mock('~/alert');
@ -43,6 +45,9 @@ describe('WorkItemTree', () => {
const workItemHierarchyTreeResponseHandler = jest
.fn()
.mockResolvedValue(workItemHierarchyTreeResponse);
const namespaceWorkItemTypesQueryHandler = jest
.fn()
.mockResolvedValue(namespaceWorkItemTypesQueryResponse);
const findEmptyState = () => wrapper.findByTestId('crud-empty');
const findLoadingIcon = () => wrapper.findComponent(GlLoadingIcon);
@ -76,7 +81,10 @@ describe('WorkItemTree', () => {
canUpdate,
canUpdateChildren,
},
apolloProvider: createMockApollo([[getWorkItemTreeQuery, workItemHierarchyTreeHandler]]),
apolloProvider: createMockApollo([
[getWorkItemTreeQuery, workItemHierarchyTreeHandler],
[namespaceWorkItemTypesQuery, namespaceWorkItemTypesQueryHandler],
]),
provide: {
hasSubepicsFeature,
},
@ -365,4 +373,15 @@ describe('WorkItemTree', () => {
fullPath: 'test/project',
});
});
it('fetches widget definitions and passes formatted allowed children by type to children wrapper', async () => {
await createComponent();
expect(namespaceWorkItemTypesQueryHandler).toHaveBeenCalled();
await nextTick();
expect(findWorkItemLinkChildrenWrapper().props('allowedChildrenByType')).toEqual({
Issue: ['Task'],
});
});
});

View File

@ -5266,3 +5266,98 @@ export const mockUploadErrorDesignMutationResponse = {
designManagementUpload: null,
},
};
export const namespaceWorkItemTypesQueryResponse = {
data: {
workspace: {
id: 'gid://gitlab/Namespaces/1',
workItemTypes: {
nodes: [
{
__typename: 'WorkItemType',
id: 'gid://gitlab/WorkItems::Type/1',
name: 'Issue',
widgetDefinitions: [
{
type: 'HIERARCHY',
allowedChildTypes: {
nodes: [
{
id: 'gid://gitlab/WorkItems::Type/5',
name: 'Task',
__typename: 'WorkItemType',
},
],
__typename: 'WorkItemTypeConnection',
},
__typename: 'WorkItemWidgetDefinitionHierarchy',
},
],
},
],
},
},
},
};
export const workItemHierarchyNoChildrenTreeResponse = {
data: {
workItem: {
id: 'gid://gitlab/WorkItem/3',
iid: '3',
archived: false,
workItemType: {
id: 'gid://gitlab/WorkItems::Type/2411',
name: 'Objective',
iconName: 'issue-type-objective',
__typename: 'WorkItemType',
},
title: 'New title without children',
userPermissions: {
deleteWorkItem: true,
updateWorkItem: true,
setWorkItemMetadata: true,
adminParentLink: true,
createNote: true,
adminWorkItemLink: true,
__typename: 'WorkItemPermissions',
},
confidential: false,
reference: 'test-project-path#2',
namespace: {
__typename: 'Project',
id: '1',
fullPath: 'test-project-path',
name: 'Project name',
fullName: 'Project name',
},
widgets: [
{
type: 'DESCRIPTION',
__typename: 'WorkItemWidgetDescription',
},
{
type: 'HIERARCHY',
parent: null,
hasChildren: false,
depthLimitReachedByType: [],
rolledUpCountsByType: [],
children: {
pageInfo: {
hasNextPage: false,
hasPreviousPage: false,
startCursor: null,
endCursor: null,
__typename: 'PageInfo',
},
count: 0,
nodes: [],
__typename: 'WorkItemConnection',
},
__typename: 'WorkItemWidgetHierarchy',
},
],
__typename: 'WorkItem',
},
},
};

View File

@ -61,7 +61,7 @@ RSpec.describe 'memory watchdog', feature_category: :cloud_connector do
end
context 'when runtime is unsupported' do
it 'does not register life-cycle hook' do
it 'does not register life-cycle hook', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/468232' do
expect(Gitlab::Cluster::LifecycleEvents).not_to receive(:on_worker_start)
run_initializer

View File

@ -408,5 +408,38 @@ RSpec.describe Gitlab::Auth::CurrentUserMode, :request_store, feature_category:
end
end
end
describe '.optionally_run_in_admin_mode' do
let(:admin) { build_stubbed(:admin) }
context 'when invoked from a sidekiq context', :with_sidekiq_context do
before do
stub_application_setting(admin_mode: true)
end
it 'yields without changing the admin mode for non-admin users' do
expect { |b| described_class.optionally_run_in_admin_mode(user, &b) }.to yield_control
expect(described_class.bypass_session_admin_id).to be_nil
end
it 'runs in admin mode for admin users' do
described_class.optionally_run_in_admin_mode(admin) do
expect(described_class.bypass_session_admin_id).to eq(admin.id)
end
end
it 'resets the admin mode after yielding for admin users' do
described_class.optionally_run_in_admin_mode(admin) { -> {} }
expect(described_class.bypass_session_admin_id).to be_nil
end
end
context 'when invoked from a non-sidekiq context' do
it 'raises an exception' do
expect { described_class.optionally_run_in_admin_mode(admin) }
.to raise_error(Gitlab::Auth::CurrentUserMode::NonSidekiqEnvironmentError)
end
end
end
end
end

View File

@ -964,6 +964,7 @@ epic_issues:
- issue
- epic
- work_item
- work_item_parent_link
feature_flag_issues:
- issue
- feature_flag
@ -1073,10 +1074,12 @@ epic:
- epic_board_positions
- work_item
- own_subscriptions
- work_item_parent_link
epic_issue:
- epic
- issue
- work_item
- work_item_parent_link
system_note_metadata:
- note
- description_version

View File

@ -127,16 +127,17 @@ RSpec.describe Gitlab::SidekiqMiddleware::ConcurrencyLimit::ConcurrencyLimitServ
describe '#resume_processing!' do
let(:jobs) { [[1], [2], [3]] }
let(:expected_context) { stored_context.merge(related_class: described_class.name) }
let(:setter) { instance_double('Sidekiq::Job::Setter') }
it 'puts jobs back into the queue and respects order' do
jobs.each do |j|
service.add_to_queue!(j, worker_context)
end
expect(worker_class).to receive(:perform_async).with(1).ordered
expect(worker_class).to receive(:perform_async).with(2).ordered
expect(worker_class).not_to receive(:perform_async).with(3).ordered
expect(worker_class).to receive(:concurrency_limit_resume).twice.and_return(setter)
expect(setter).to receive(:perform_async).with(1).ordered
expect(setter).to receive(:perform_async).with(2).ordered
expect(setter).not_to receive(:perform_async).with(3).ordered
expect(Gitlab::SidekiqLogging::ConcurrencyLimitLogger.instance)
.to receive(:resumed_log)
@ -154,9 +155,10 @@ RSpec.describe Gitlab::SidekiqMiddleware::ConcurrencyLimit::ConcurrencyLimitServ
end
expect(Gitlab::ApplicationContext).to receive(:with_raw_context)
.with(expected_context)
.with(stored_context)
.exactly(jobs.count).times.and_call_original
expect(worker_class).to receive(:perform_async).exactly(jobs.count).times
expect(worker_class).to receive(:concurrency_limit_resume).exactly(3).times.and_return(setter)
expect(setter).to receive(:perform_async).exactly(jobs.count).times
expect { service.resume_processing!(limit: jobs.count) }
.to change { service.has_jobs_in_queue? }.from(true).to(false)

View File

@ -61,14 +61,41 @@ RSpec.describe Gitlab::SidekiqMiddleware::ConcurrencyLimit::Server, feature_cate
TestConcurrencyLimitWorker.perform_async('foo')
end
it 'executes the job if resumed' do
expect(TestConcurrencyLimitWorker).to receive(:work)
expect(Gitlab::SidekiqLogging::ConcurrencyLimitLogger.instance).not_to receive(:deferred_log)
expect(Gitlab::SidekiqMiddleware::ConcurrencyLimit::ConcurrencyLimitService).not_to receive(:add_to_queue!)
context 'when only the related_class is set in the context' do
it 'defers the job' do
expect(TestConcurrencyLimitWorker).not_to receive(:work)
expect(Gitlab::SidekiqLogging::ConcurrencyLimitLogger.instance).to receive(:deferred_log).and_call_original
expect(Gitlab::SidekiqMiddleware::ConcurrencyLimit::ConcurrencyLimitService).to receive(:add_to_queue!)
related_class = 'Gitlab::SidekiqMiddleware::ConcurrencyLimit::ConcurrencyLimitService'
Gitlab::ApplicationContext.with_raw_context(related_class: related_class) do
TestConcurrencyLimitWorker.perform_async('foo')
related_class = 'Gitlab::SidekiqMiddleware::ConcurrencyLimit::ConcurrencyLimitService'
Gitlab::ApplicationContext.with_raw_context(related_class: related_class) do
TestConcurrencyLimitWorker.perform_async('foo')
end
end
end
context 'when concurrency_limit_resume setter is used' do
it 'executes the job if resumed' do
expect(TestConcurrencyLimitWorker).to receive(:work)
expect(Gitlab::SidekiqLogging::ConcurrencyLimitLogger.instance).not_to receive(:deferred_log)
expect(Gitlab::SidekiqMiddleware::ConcurrencyLimit::ConcurrencyLimitService).not_to receive(:add_to_queue!)
Gitlab::ApplicationContext.with_raw_context do
TestConcurrencyLimitWorker.concurrency_limit_resume.perform_async('foo')
end
end
end
context 'when both related class and concurrency_limit_resume setter is used' do
it 'executes the job if resumed' do
expect(TestConcurrencyLimitWorker).to receive(:work)
expect(Gitlab::SidekiqLogging::ConcurrencyLimitLogger.instance).not_to receive(:deferred_log)
expect(Gitlab::SidekiqMiddleware::ConcurrencyLimit::ConcurrencyLimitService).not_to receive(:add_to_queue!)
related_class = 'Gitlab::SidekiqMiddleware::ConcurrencyLimit::ConcurrencyLimitService'
Gitlab::ApplicationContext.with_raw_context(related_class: related_class) do
TestConcurrencyLimitWorker.concurrency_limit_resume.perform_async('foo')
end
end
end
end

View File

@ -16,7 +16,8 @@ RSpec.describe SystemCheck::IncomingEmail::ImapAuthenticationCheck do
describe '#load_config' do
subject { system_check.send(:load_config) }
context 'returns no mailbox configurations with mailroom default configuration' do
context 'returns no mailbox configurations with mailroom default configuration',
quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/448844' do
it { is_expected.to be_nil }
end

View File

@ -15,7 +15,9 @@ RSpec.describe API::NpmGroupPackages, feature_category: :package_registry do
subject { get(url) }
end
it_behaves_like 'handling get metadata requests for packages in multiple projects'
context 'when qurantined shared example', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/496617' do
it_behaves_like 'handling get metadata requests for packages in multiple projects'
end
context 'with mixed group and project visibilities' do
subject { get(url, headers: headers) }

View File

@ -17,7 +17,9 @@ RSpec.describe Issuable::DiscussionsListService, feature_category: :team_plannin
describe 'fetching notes for issue' do
let_it_be(:issuable) { create(:issue, project: project) }
it_behaves_like 'listing issuable discussions', user_role: :guest, internal_discussions: 1, total_discussions: 7
context 'when qurantined shared example', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/446157' do
it_behaves_like 'listing issuable discussions', user_role: :guest, internal_discussions: 1, total_discussions: 7
end
context 'without notes widget' do
let_it_be(:issuable) { create(:work_item, project: project) }
@ -35,6 +37,9 @@ RSpec.describe Issuable::DiscussionsListService, feature_category: :team_plannin
describe 'fetching notes for merge requests' do
let_it_be(:issuable) { create(:merge_request, source_project: project, target_project: project) }
it_behaves_like 'listing issuable discussions', user_role: :reporter, internal_discussions: 0, total_discussions: 6
context 'when qurantined shared example', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/446156' do
it_behaves_like 'listing issuable discussions',
user_role: :reporter, internal_discussions: 0, total_discussions: 6
end
end
end

View File

@ -145,6 +145,9 @@ RSpec.configure do |config|
# Admin controller specs get auto admin mode enabled since they are
# protected by the 'EnforcesAdminAuthentication' concern
metadata[:enable_admin_mode] = true if %r{(ee)?/spec/controllers/admin/}.match?(location)
# The worker specs get Sidekiq context
metadata[:with_sidekiq_context] = true if %r{(ee)?/spec/workers/}.match?(location)
end
config.define_derived_metadata(file_path: %r{(ee)?/spec/.+_docs\.rb\z}) do |metadata|

View File

@ -2539,7 +2539,6 @@
- './ee/spec/views/subscriptions/new.html.haml_spec.rb'
- './ee/spec/workers/active_user_count_threshold_worker_spec.rb'
- './ee/spec/workers/adjourned_group_deletion_worker_spec.rb'
- './ee/spec/workers/adjourned_project_deletion_worker_spec.rb'
- './ee/spec/workers/adjourned_projects_deletion_cron_worker_spec.rb'
- './ee/spec/workers/admin_emails_worker_spec.rb'
- './ee/spec/workers/analytics/code_review_metrics_worker_spec.rb'
@ -8393,7 +8392,6 @@
- './spec/workers/post_receive_spec.rb'
- './spec/workers/process_commit_worker_spec.rb'
- './spec/workers/project_cache_worker_spec.rb'
- './spec/workers/project_destroy_worker_spec.rb'
- './spec/workers/project_export_worker_spec.rb'
- './spec/workers/projects/after_import_worker_spec.rb'
- './spec/workers/projects/git_garbage_collect_worker_spec.rb'

View File

@ -32,34 +32,4 @@ RSpec.shared_examples 'protected branch access' do
expect(protected_ref).to have_received(:group)
end
end
context 'when current_project is nil' do
context "and protected_branch_group isn't nil" do
let_it_be(:group) { create(:group) }
let_it_be(:current_user) { create(:user) }
let_it_be(:protected_ref) { create(:protected_branch, project: nil, group: group) }
let_it_be(:access_level) { ::Gitlab::Access::DEVELOPER }
using RSpec::Parameterized::TableSyntax
where(:assign_access_level, :expected_check_access) do
:guest | false
:reporter | false
:developer | true
:maintainer | true
:owner | true
end
with_them do
subject do
group.add_member(current_user, assign_access_level)
described_class.new(protected_branch: protected_ref, access_level: access_level).check_access(current_user,
nil)
end
it { is_expected.to eq(expected_check_access) }
end
end
end
end

View File

@ -33,6 +33,19 @@ RSpec.shared_examples 'protected ref access' do
end
end
describe 'scopes' do
describe '::for_role' do
subject(:for_role) { described_class.for_role }
let_it_be(:developer_access) { create(described_factory, :developer_access) }
let_it_be(:maintainer_access) { create(described_factory, :maintainer_access) }
it 'includes all role based access levels' do
expect(for_role).to contain_exactly(developer_access, maintainer_access)
end
end
end
describe '::human_access_levels' do
subject { described_class.human_access_levels }

View File

@ -18,6 +18,10 @@ RSpec.configure do |config|
redis_queues_metadata_cleanup!
end
def with_sidekiq_context
allow(Sidekiq).to receive(:server?).and_return(true)
end
# As we'll review the examples with this tag, we should either:
# - fix the example to not require Sidekiq inline mode (and remove this tag)
# - explicitly keep the inline mode and change the tag for `:sidekiq_inline` instead
@ -29,6 +33,18 @@ RSpec.configure do |config|
gitlab_sidekiq_inline { example.run }
end
config.before(:example, :sidekiq_inline) do
with_sidekiq_context
end
config.before(:example, :sidekiq_might_not_need_inline) do
with_sidekiq_context
end
config.before(:example, :with_sidekiq_context) do
with_sidekiq_context
end
# Some specs need to run mailers through Sidekiq explicitly, rather
# than the ActiveJob test adapter. There is a Rails bug that means we
# have to do some extra steps to make this happen:

View File

@ -540,6 +540,26 @@ RSpec.describe ApplicationWorker, feature_category: :shared do
end
end
describe '.concurrency_limit_resume' do
around do |example|
Sidekiq::Testing.fake!(&example)
end
context 'when the worker is not marked as deferred' do
it 'concurrency_limit_resume key is nil' do
worker.perform_async
expect(Sidekiq::Queues[worker.queue].first['concurrency_limit_resume']).to eq nil
end
end
context 'when the concurrency limited worker is marked as resume' do
it 'sets defaults if no arguments are passed' do
worker.concurrency_limit_resume.perform_async
expect(Sidekiq::Queues[worker.queue].first['concurrency_limit_resume']).to eq(true)
end
end
end
describe '.with_status' do
around do |example|
Sidekiq::Testing.fake!(&example)

View File

@ -3,10 +3,11 @@
require 'spec_helper'
RSpec.describe ProjectDestroyWorker, feature_category: :source_code_management do
let_it_be(:project) { create(:project, :repository, pending_delete: true) }
let_it_be(:repository) { project.repository.raw }
let!(:project) { create(:project, :repository, pending_delete: true) }
let!(:repository) { project.repository.raw }
let(:user) { project.first_owner }
let(:params) { {} }
subject(:worker) { described_class.new }
@ -20,11 +21,44 @@ RSpec.describe ProjectDestroyWorker, feature_category: :source_code_management d
end
describe '#perform' do
it 'deletes the project' do
worker.perform(project.id, user.id, {})
shared_examples 'deletes the project' do
specify do
worker.perform(project.id, user.id, params)
expect(Project.all).not_to include(project)
expect(repository).not_to exist
expect(Project.all).not_to include(project)
expect(repository).not_to exist
end
end
it_behaves_like 'deletes the project'
context 'when an admin deletes the project' do
let_it_be(:user) { create(:admin) }
context 'with admin_mode setting enabled' do
context 'with admin mode session', :enable_admin_mode do
it_behaves_like 'deletes the project'
end
context 'without admin mode session' do
it 'does not delete the project' do
worker.perform(project.id, user.id, params)
expect(Project.all).to include(project)
expect(repository).to exist
end
end
end
context 'with admin_mode setting disabled' do
before do
stub_application_setting(admin_mode: false)
end
context 'without admin mode session' do
it_behaves_like 'deletes the project'
end
end
end
it 'does not raise error when project could not be found' do