{"openapi":"3.1.0","info":{"title":"GitLab API","version":"1.0.0","description":"Read GitLab.com in real time — no token, no OAuth. Look up any public project by numeric id or \"group/name\" path for its full detail (stars, forks, open issues, default branch, visibility, license, topics, timestamps) and pull its commits, branches, tags, releases, issues, merge requests, language breakdown, members and decoded README. Look up any user, list a user's public projects, inspect any group and its projects, and search public projects by keyword with sort + order. Pass project as a numeric id, a \"group/name\" path or a gitlab.com URL. Every call is live (no cache) and returns the upstream GitLab REST v4 shape, paginated with page + per_page (max 100). 16 endpoints. Calls are routed through a rotating residential proxy so per-IP rate limits never bite. Built for dev dashboards, OSS analytics, CI/CD tooling and repo monitoring across the GitLab ecosystem — the sibling of our GitHub API. No upstream token, no cache.","contact":{"name":"PremiumApi","url":"https://www.oanor.com/by/premiumapi"}},"servers":[{"url":"https://api.oanor.com/gitlab-api","description":"oanor gateway"}],"tags":[{"name":"Project"},{"name":"Users"},{"name":"Groups"},{"name":"Search"},{"name":"Meta"}],"components":{"securitySchemes":{"oanorKey":{"type":"apiKey","in":"header","name":"x-oanor-key","description":"Get your key at https://www.oanor.com/developer/keys"}}},"security":[{"oanorKey":[]}],"paths":{"/v1/project":{"get":{"operationId":"get_v1_project","tags":["Project"],"summary":"Project detail","description":"","parameters":[{"name":"project","in":"query","required":true,"description":"Project id or group/name path (or gitlab.com URL)","schema":{"type":"string"},"example":"gitlab-org/gitlab"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"id":278964,"name":"GitLab","path":"gitlab","topics":["hacktoberfest","javascript","ruby","vue.js"],"license":{"key":"mit","name":"MIT License","html_url":"https://opensource.org/licenses/MIT"},"web_url":"https://gitlab.com/gitlab-org/gitlab","tag_list":["hacktoberfest","javascript","ruby","vue.js"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/278964/project_avatar.png","created_at":"2015-05-20T10:47:11.949Z","readme_url":"https://gitlab.com/gitlab-org/gitlab/-/blob/master/README.md","star_count":6031,"visibility":"public","description":"GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider.","forks_count":12141,"license_url":"https://gitlab.com/gitlab-org/gitlab/-/blob/master/LICENSE","default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab.git","last_activity_at":"2026-06-02T16:25:33.058Z","name_with_namespace":"GitLab.org / GitLab","path_with_namespace":"gitlab-org/gitlab"},"meta":{"timestamp":"2026-06-02T16:52:21.083Z","request_id":"83004325-c431-4d19-a70a-7a22dbeee6ac"},"status":"ok","message":"Project detail","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/project/branches":{"get":{"operationId":"get_v1_project_branches","tags":["Project"],"summary":"Branches","description":"","parameters":[{"name":"project","in":"query","required":true,"description":"Project id or group/name path (or gitlab.com URL)","schema":{"type":"string"},"example":"gitlab-org/gitlab"},{"name":"per_page","in":"query","required":false,"description":"Page size (max 100)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":[{"name":"#1404-scawood-duomerge-links","commit":{"id":"1f23260d6e25274aa012107fe003d4ba0c65e116","title":"Remove repeated links to Claude LLM","message":"Remove repeated links to Claude LLM","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/1f23260d6e25274aa012107fe003d4ba0c65e116","short_id":"1f23260d","trailers":[],"created_at":"2025-09-02T10:52:43.000-07:00","parent_ids":["19986ff62116c4d6ca7f380170d8cdc397f7442a"],"author_name":"Steve Cawood","author_email":"scawood@gitlab.com","authored_date":"2025-09-02T10:52:43.000-07:00","committed_date":"2025-09-02T10:52:43.000-07:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/%231404-scawood-duomerge-links","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"#17126-saved-views-backend-poc","commit":{"id":"c4b259215634320c14839308d01ae473d3f208ec","title":"Add migration / API skeleton","message":"Add migration / API skeleton\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/c4b259215634320c14839308d01ae473d3f208ec","short_id":"c4b25921","trailers":[],"created_at":"2025-11-17T14:14:44.000+10:30","parent_ids":["d2a6d228219e5f13179a93e0647586d73078adf3"],"author_name":"Matt D'Angelo","author_email":"mdangelo@gitlab.com","authored_date":"2025-11-17T14:13:20.000+10:30","committed_date":"2025-11-17T14:14:44.000+10:30","committer_name":"Matt D'Angelo","committer_email":"mdangelo@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/%2317126-saved-views-backend-poc","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"#1775-scawood-sast-prereq","commit":{"id":"28af2bc98d1f04d3dafe19d47b896f553d7a67de","title":"Add a prerequisites for SAST scanning","message":"Add a prerequisites for SAST scanning","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/28af2bc98d1f04d3dafe19d47b896f553d7a67de","short_id":"28af2bc9","trailers":[],"created_at":"2025-10-06T13:41:18.000-07:00","parent_ids":["08f2df768c19e7095ff596bc3f660cc61afb8552"],"author_name":"Steve Cawood","author_email":"scawood@gitlab.com","authored_date":"2025-10-06T13:41:18.000-07:00","committed_date":"2025-10-06T13:41:18.000-07:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/%231775-scawood-sast-prereq","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"#554-scawood-expiredcert-vscode","commit":{"id":"29dfd7cc076bd346f1a759811a20bb360f9f5ab9","title":"Apply 1 suggestion(s) to 1 file(s)","message":"Apply 1 suggestion(s) to 1 file(s)\n\nCo-authored-by: Erran Carey <ecarey@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/29dfd7cc076bd346f1a759811a20bb360f9f5ab9","short_id":"29dfd7cc","trailers":[],"created_at":"2025-10-22T09:25:52.000-04:00","parent_ids":["3db1951cf0d1d150d02eaec09502d68f90eb4208"],"author_name":"Suzanne Selhorn","author_email":"sselhorn@gitlab.com","authored_date":"2025-10-22T09:25:52.000-04:00","committed_date":"2025-10-22T09:25:52.000-04:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/%23554-scawood-expiredcert-vscode","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"#557446-merge-chat-docs","commit":{"id":"7f8916cc2930edc4c9060e627eee10d79cb589a4","title":"Reorder some section for readability","message":"Reorder some section for readability\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/7f8916cc2930edc4c9060e627eee10d79cb589a4","short_id":"7f8916cc","trailers":[],"created_at":"2025-08-13T13:53:12.000-07:00","parent_ids":["bfb0a89a1e856c06e9e159174d5f05a04fc765c5"],"author_name":"Steve Cawood","author_email":"scawood@gitlab.com","authored_date":"2025-08-13T13:53:12.000-07:00","committed_date":"2025-08-13T13:53:12.000-07:00","committer_name":"Steve Cawood","committer_email":"scawood@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/%23557446-merge-chat-docs","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"0a68660b-mr-iid","commit":{"id":"899798758025f2618b6524a0509098f554132776","title":"Correct merge request IID!","message":"Correct merge request IID!\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/899798758025f2618b6524a0509098f554132776","short_id":"89979875","trailers":[],"created_at":"2020-05-26T18:02:06.000+01:00","parent_ids":["0a68660bb188cf3cdf73be65c0149936c88f4570"],"author_name":"Sean McGivern","author_email":"sean@gitlab.com","authored_date":"2020-05-26T18:00:38.000+01:00","committed_date":"2020-05-26T18:02:06.000+01:00","committer_name":"Sean McGivern","committer_email":"sean@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/0a68660b-mr-iid","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"1-quarantine-16316e8e-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","commit":{"id":"2d7f9b2a3e70fed4176d0bfcdef70f84989db086","title":"Quarantine end-to-end test","message":"Quarantine end-to-end test\n\nQuarantine Create Protected branch support when developers and mainta...\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/2d7f9b2a3e70fed4176d0bfcdef70f84989db086","short_id":"2d7f9b2a","trailers":[],"created_at":"2024-02-27T12:05:46.000+00:00","parent_ids":["123d0aef1e76aa8e741b51c4afa439d917fda7bf"],"author_name":"Sanad Liaquat","author_email":"sliaquat@gitlab.com","authored_date":"2024-02-27T12:05:46.000+00:00","committed_date":"2024-02-27T12:05:46.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/1-quarantine-16316e8e-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"1-quarantine-7510d3e1-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","commit":{"id":"a9d7bdb7388e6adb0f0bd320ffbf501f79726029","title":"Quarantine end-to-end test","message":"Quarantine end-to-end test\n\nQuarantine Create Protected branch support when developers and mainta...\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/a9d7bdb7388e6adb0f0bd320ffbf501f79726029","short_id":"a9d7bdb7","trailers":[],"created_at":"2024-02-27T12:50:33.000+00:00","parent_ids":["6f3649743b7bf4c73e666e96617b955e4d553018"],"author_name":"Sanad Liaquat","author_email":"sliaquat@gitlab.com","authored_date":"2024-02-27T12:50:33.000+00:00","committed_date":"2024-02-27T12:50:33.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/1-quarantine-7510d3e1-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"1-quarantine-82ca48bb-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","commit":{"id":"2306452a77d55f64b511ec910669d981e03a7670","title":"Quarantine end-to-end test","message":"Quarantine end-to-end test\n\nQuarantine Create Protected branch support when developers and mainta...\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/2306452a77d55f64b511ec910669d981e03a7670","short_id":"2306452a","trailers":[],"created_at":"2024-02-27T11:19:41.000+00:00","parent_ids":["3ed20a0d29cef4c66ad9ee0212c32df3c16d8a48"],"author_name":"Sanad Liaquat","author_email":"sliaquat@gitlab.com","authored_date":"2024-02-27T11:19:41.000+00:00","committed_date":"2024-02-27T11:19:41.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/1-quarantine-82ca48bb-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"1-quarantine-942bc674-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","commit":{"id":"10ec15a2e98904152850a35c168391d172c0730c","title":"Quarantine end-to-end test","message":"Quarantine end-to-end test\n\nQuarantine Create Protected branch support when developers and mainta...\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/10ec15a2e98904152850a35c168391d172c0730c","short_id":"10ec15a2","trailers":[],"created_at":"2024-02-27T12:21:45.000+00:00","parent_ids":["6f3649743b7bf4c73e666e96617b955e4d553018"],"author_name":"Sanad Liaquat","author_email":"sliaquat@gitlab.com","authored_date":"2024-02-27T12:21:45.000+00:00","committed_date":"2024-02-27T12:21:45.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/1-quarantine-942bc674-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"1-quarantine-b792fd58-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","commit":{"id":"aa8a4ca6c708c46347a9fd2a6e42858dcbf230ae","title":"Quarantine end-to-end test","message":"Quarantine end-to-end test\n\nQuarantine Create Protected branch support when developers and mainta...\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/aa8a4ca6c708c46347a9fd2a6e42858dcbf230ae","short_id":"aa8a4ca6","trailers":[],"created_at":"2024-02-06T12:49:05.000+00:00","parent_ids":["917e4ada6de9977bef21f6cb8ae07c94d6ebc5cc"],"author_name":"Sanad Liaquat","author_email":"sliaquat@gitlab.com","authored_date":"2024-02-06T12:49:05.000+00:00","committed_date":"2024-02-06T12:49:05.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/1-quarantine-b792fd58-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"1-quarantine-c4fd79c7-Create-Commit-data-user-views-raw-email-patch","commit":{"id":"90b07e057eaf4979c4024b0ebc7291b08c817480","title":"Quarantine end-to-end test","message":"Quarantine end-to-end test\n\nQuarantine Create Commit data user views raw email patch\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/90b07e057eaf4979c4024b0ebc7291b08c817480","short_id":"90b07e05","trailers":[],"created_at":"2024-02-27T12:57:07.000+00:00","parent_ids":["dfbafec6d5306f550ca6ae1deb161c16ff6d52ca"],"author_name":"Sanad Liaquat","author_email":"sliaquat@gitlab.com","authored_date":"2024-02-27T12:57:07.000+00:00","committed_date":"2024-02-27T12:57:07.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/1-quarantine-c4fd79c7-Create-Commit-data-user-views-raw-email-patch","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"1-quarantine-d26253bf-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","commit":{"id":"b73b9eb65e281985f5fe6e9db3fbee0cec1153fb","title":"Quarantine end-to-end test","message":"Quarantine end-to-end test\n\nQuarantine Create Protected branch support when developers and mainta...\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/b73b9eb65e281985f5fe6e9db3fbee0cec1153fb","short_id":"b73b9eb6","trailers":[],"created_at":"2024-02-27T11:58:16.000+00:00","parent_ids":["123d0aef1e76aa8e741b51c4afa439d917fda7bf"],"author_name":"Sanad Liaquat","author_email":"sliaquat@gitlab.com","authored_date":"2024-02-27T11:58:16.000+00:00","committed_date":"2024-02-27T11:58:16.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/1-quarantine-d26253bf-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"1-quarantine-d33b7f91-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","commit":{"id":"602754c4f544b32b2757c868470cfeb84c9969d8","title":"Quarantine end-to-end test","message":"Quarantine end-to-end test\n\nQuarantine Create Protected branch support when developers and mainta...\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/602754c4f544b32b2757c868470cfeb84c9969d8","short_id":"602754c4","trailers":[],"created_at":"2024-02-06T12:08:16.000+00:00","parent_ids":["accbb3c0c26a84af92237b5043008dd8ab2035b4"],"author_name":"Sanad Liaquat","author_email":"sliaquat@gitlab.com","authored_date":"2024-02-06T12:08:16.000+00:00","committed_date":"2024-02-06T12:08:16.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/1-quarantine-d33b7f91-Create-Protected-branch-support-when-developers-and-maintainers-are-not-allowed-to-push-to-a-protected-branch-user-without-push-rights-fails-to-push","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"10-0-stable-ee","commit":{"id":"c4f8f026db2c5b2fce673076ea0c03498bd9a5c5","title":"Merge 10-0-stable into 10-0-stable-ee","message":"Merge 10-0-stable into 10-0-stable-ee\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/c4f8f026db2c5b2fce673076ea0c03498bd9a5c5","short_id":"c4f8f026","trailers":[],"created_at":"2017-12-18T21:57:25.000+01:00","parent_ids":["127679b5b260f88a928d6ec472785fb7be481966","4c622bb72ff114600723496725fdc68b3062cf51"],"author_name":"Winnie Hellmann","author_email":"winnie@gitlab.com","authored_date":"2017-12-18T21:57:25.000+01:00","committed_date":"2017-12-18T21:57:25.000+01:00","committer_name":"Winnie Hellmann","committer_email":"winnie@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-0-stable-ee","can_push":false,"protected":true,"developers_can_push":false,"developers_can_merge":false},{"name":"10-0-stable-ee-with-ce-2017-09-18","commit":{"id":"915c530717ce6bae628bbb31ba7c822ecb3d820b","title":"Merge remote-tracking branch 'ce/10-0-stable' into 10-0-stable-ee-with-ce-2017-09-18","message":"Merge remote-tracking branch 'ce/10-0-stable' into 10-0-stable-ee-with-ce-2017-09-18\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/915c530717ce6bae628bbb31ba7c822ecb3d820b","short_id":"915c5307","trailers":[],"created_at":"2017-09-18T07:50:43.000+02:00","parent_ids":["d1fe8c4a0be7d8121ab5d8e98fa01234d00b3244","7bc31e138b9c9f72d978b802f17d75e33554a5b2"],"author_name":"Jarka Kadlecova","author_email":"jarka@gitlab.com","authored_date":"2017-09-18T07:50:43.000+02:00","committed_date":"2017-09-18T07:50:43.000+02:00","committer_name":"Jarka Kadlecova","committer_email":"jarka@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-0-stable-ee-with-ce-2017-09-18","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"10-1-stable-ee","commit":{"id":"554b056c94fa9802897c36a85eb7e408b7888d94","title":"Update VERSION to 10.1.7-ee","message":"Update VERSION to 10.1.7-ee\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/554b056c94fa9802897c36a85eb7e408b7888d94","short_id":"554b056c","trailers":[],"created_at":"2018-01-18T14:27:49.000-02:00","parent_ids":["55d026de5b6060aa7c47f1d513cb8c368b01c642"],"author_name":"Oswaldo Ferreira","author_email":"oswaldo@gitlab.com","authored_date":"2018-01-18T14:27:49.000-02:00","committed_date":"2018-01-18T14:27:49.000-02:00","committer_name":"Oswaldo Ferreira","committer_email":"oswaldo@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-1-stable-ee","can_push":false,"protected":true,"developers_can_push":false,"developers_can_merge":false},{"name":"10-2-stable-ee","commit":{"id":"715dcf730813e3938ef6013ca28cb9f492a7346d","title":"Update VERSION to 10.2.8-ee","message":"Update VERSION to 10.2.8-ee\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/715dcf730813e3938ef6013ca28cb9f492a7346d","short_id":"715dcf73","trailers":[],"created_at":"2018-02-07T10:13:14.000-06:00","parent_ids":["d26b67559e28e02de7bc583d05dc635aee7aa517"],"author_name":"Robert Speicher","author_email":"rspeicher@gmail.com","authored_date":"2018-02-07T10:13:14.000-06:00","committed_date":"2018-02-07T10:13:14.000-06:00","committer_name":"Robert Speicher","committer_email":"rspeicher@gmail.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-2-stable-ee","can_push":false,"protected":true,"developers_can_push":false,"developers_can_merge":false},{"name":"10-2-stable-ee-with-ce-2017-11-30","commit":{"id":"020782baf0ae3b4facb135f028e439c2028aadeb","title":"Merge remote-tracking branch 'ce/10-2-stable' into 10-2-stable-ee-with-ce-2017-11-30","message":"Merge remote-tracking branch 'ce/10-2-stable' into 10-2-stable-ee-with-ce-2017-11-30\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/020782baf0ae3b4facb135f028e439c2028aadeb","short_id":"020782ba","trailers":[],"created_at":"2017-11-30T16:59:21.000+00:00","parent_ids":["9d7c488145114f6dfd6a58fd08f3dd0af4fd50e7","07886087156029b552aba1d089aaa482fad90905"],"author_name":"Tiago Botelho","author_email":"tiagonbotelho@hotmail.com","authored_date":"2017-11-30T16:59:21.000+00:00","committed_date":"2017-11-30T16:59:21.000+00:00","committer_name":"Tiago Botelho","committer_email":"tiagonbotelho@hotmail.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-2-stable-ee-with-ce-2017-11-30","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"10-3-stable-ee","commit":{"id":"0c2ecd2d33944bbe35e73ed8aa964c8522c1895b","title":"Update VERSION to 10.3.9-ee","message":"Update VERSION to 10.3.9-ee\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/0c2ecd2d33944bbe35e73ed8aa964c8522c1895b","short_id":"0c2ecd2d","trailers":[],"created_at":"2018-03-16T19:03:55.000+00:00","parent_ids":["06c846ffbf04f87e07d5d0a29d61a89f1698a035"],"author_name":"Mark Fletcher","author_email":"mark@gitlab.com","authored_date":"2018-03-16T19:03:55.000+00:00","committed_date":"2018-03-16T19:03:55.000+00:00","committer_name":"Mark Fletcher","committer_email":"mark@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-3-stable-ee","can_push":false,"protected":true,"developers_can_push":false,"developers_can_merge":false},{"name":"10-3-stable-ee-with-ce-2017-12-08","commit":{"id":"916182d2c9418451230aeeeed9fa1fbd8c17d427","title":"[ci skip] Resolve projects.scss","message":"[ci skip] Resolve projects.scss\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/916182d2c9418451230aeeeed9fa1fbd8c17d427","short_id":"916182d2","trailers":[],"created_at":"2017-12-09T14:34:45.000+00:00","parent_ids":["11b54efbbca52ed32799631ce8b0536a3cec5388"],"author_name":"Luke Bennett","author_email":"lbennett@gitlab.com","authored_date":"2017-12-09T14:34:45.000+00:00","committed_date":"2017-12-09T14:34:45.000+00:00","committer_name":"Luke Bennett","committer_email":"lbennett@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-3-stable-ee-with-ce-2017-12-08","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"10-4-stable-ee","commit":{"id":"023315ab201e488d9a4bb3011743923e6998fc86","title":"Update VERSION to 10.4.7-ee","message":"Update VERSION to 10.4.7-ee\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/023315ab201e488d9a4bb3011743923e6998fc86","short_id":"023315ab","trailers":[],"created_at":"2018-04-03T17:43:47.000+01:00","parent_ids":["5055be39155ac6d913aada2b37838a92c4469642"],"author_name":"Filipa Lacerda","author_email":"filipa@gitlab.com","authored_date":"2018-04-03T17:43:47.000+01:00","committed_date":"2018-04-03T17:43:47.000+01:00","committer_name":"Filipa Lacerda","committer_email":"filipa@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-4-stable-ee","can_push":false,"protected":true,"developers_can_push":false,"developers_can_merge":false},{"name":"10-5-stable-ee","commit":{"id":"faa84d51129c7f0c5d1b9cb500d110de3c3c5a32","title":"Update VERSION to 10.5.8-ee","message":"Update VERSION to 10.5.8-ee\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/faa84d51129c7f0c5d1b9cb500d110de3c3c5a32","short_id":"faa84d51","trailers":[],"created_at":"2018-04-24T14:37:01.000-05:00","parent_ids":["1c94795d2d3fd574f33b41289ef118b0edec72bc"],"author_name":"Mayra Cabrera","author_email":"mcabrera@gitlab.com","authored_date":"2018-04-24T14:37:01.000-05:00","committed_date":"2018-04-24T14:37:01.000-05:00","committer_name":"Mayra Cabrera","committer_email":"mcabrera@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-5-stable-ee","can_push":false,"protected":true,"developers_can_push":false,"developers_can_merge":false},{"name":"10-5-stable-ee-with-ce-2018-02-09","commit":{"id":"7bb3a4d4e05263ee47c4599c3499ba89c42481bd","title":"Merge remote-tracking branch 'ce/10-5-stable' into 10-5-stable-ee-with-ce-2018-02-09","message":"Merge remote-tracking branch 'ce/10-5-stable' into 10-5-stable-ee-with-ce-2018-02-09\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/7bb3a4d4e05263ee47c4599c3499ba89c42481bd","short_id":"7bb3a4d4","trailers":[],"created_at":"2018-02-09T16:52:57.000-06:00","parent_ids":["d973d6e112d688946485877d3f76cbb8909b3c36","db5756e3259cf90e4cb4f71840cecb6c7849e65c"],"author_name":"Ian Baum","author_email":"ibaum@gitlab.com","authored_date":"2018-02-09T16:52:57.000-06:00","committed_date":"2018-02-09T16:52:57.000-06:00","committer_name":"Ian Baum","committer_email":"ibaum@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-5-stable-ee-with-ce-2018-02-09","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"10-6-stable-ee","commit":{"id":"582b8705efb7573ce39bfd976a34bfabc525ae9a","title":"Update VERSION to 10.6.6-ee","message":"Update VERSION to 10.6.6-ee\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/582b8705efb7573ce39bfd976a34bfabc525ae9a","short_id":"582b8705","trailers":[],"created_at":"2018-05-28T12:05:17.000+01:00","parent_ids":["6c1da24cbecc37ddcb740a13d9215a01ae6d6913"],"author_name":"Filipa Lacerda","author_email":"filipa@gitlab.com","authored_date":"2018-05-28T12:05:17.000+01:00","committed_date":"2018-05-28T12:05:17.000+01:00","committer_name":"Filipa Lacerda","committer_email":"filipa@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-6-stable-ee","can_push":false,"protected":true,"developers_can_push":false,"developers_can_merge":false},{"name":"10-7-stable-ee","commit":{"id":"ba3d9cf06aa7f2e77362ec32dd43f04ae1c6608c","title":"Update VERSION to 10.7.7-ee","message":"Update VERSION to 10.7.7-ee\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/ba3d9cf06aa7f2e77362ec32dd43f04ae1c6608c","short_id":"ba3d9cf0","trailers":[],"created_at":"2018-07-17T12:26:40.000+00:00","parent_ids":["20c5325a5b3e25d938ea159e72d5601b4fffbe9b"],"author_name":"GitLab Release Tools Bot","author_email":"robert+release-tools@gitlab.com","authored_date":"2018-07-17T12:26:40.000+00:00","committed_date":"2018-07-17T12:26:40.000+00:00","committer_name":"GitLab Release Tools Bot","committer_email":"robert+release-tools@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-7-stable-ee","can_push":false,"protected":true,"developers_can_push":false,"developers_can_merge":false},{"name":"10-8-stable-ee","commit":{"id":"075705a5f3bd9748d92cf48073bfe9e79b58f385","title":"Update VERSION to 10.8.7-ee","message":"Update VERSION to 10.8.7-ee\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/075705a5f3bd9748d92cf48073bfe9e79b58f385","short_id":"075705a5","trailers":[],"created_at":"2018-07-26T00:27:47.000+00:00","parent_ids":["9f8297e4f268083c866803641ff166a620d08641"],"author_name":"GitLab Release Tools Bot","author_email":"robert+release-tools@gitlab.com","authored_date":"2018-07-26T00:27:47.000+00:00","committed_date":"2018-07-26T00:27:47.000+00:00","committer_name":"GitLab Release Tools Bot","committer_email":"robert+release-tools@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10-8-stable-ee","can_push":false,"protected":true,"developers_can_push":false,"developers_can_merge":false},{"name":"10035-static-analysis-failure-on-master","commit":{"id":"caf4c140e3f5380199daf9b0256e06e485d9422e","title":"Remove Duplicate Keys in Environment Table","message":"Remove Duplicate Keys in Environment Table\n\nA bad merge accidentally duplicated the `computed` property on the\ncomponent.\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/caf4c140e3f5380199daf9b0256e06e485d9422e","short_id":"caf4c140","trailers":[],"created_at":"2019-02-26T15:24:11.000-05:00","parent_ids":["b15017a165d540b25adeeb943fb256ddbd302a00"],"author_name":"Andrew Fontaine","author_email":"afontaine@gitlab.com","authored_date":"2019-02-26T15:24:11.000-05:00","committed_date":"2019-02-26T15:24:11.000-05:00","committer_name":"Andrew Fontaine","committer_email":"afontaine@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10035-static-analysis-failure-on-master","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"10051-template-that-automatically-builds-and-pushes-to-the-maven-repository","commit":{"id":"fd5f83549a02e49a63edc5dc47ae984a8301af5a","title":"Remove extra validate step and fix commit message","message":"Remove extra validate step and fix commit message","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/fd5f83549a02e49a63edc5dc47ae984a8301af5a","short_id":"fd5f8354","trailers":[],"created_at":"2019-05-09T23:14:00.000+00:00","parent_ids":["a64ba867efe0c30e19542cf63b2bb3252941f009"],"author_name":"Tim Rizzi","author_email":"trizzi@gitlab.com","authored_date":"2019-05-09T23:14:00.000+00:00","committed_date":"2019-05-09T23:14:00.000+00:00","committer_name":"Tim Rizzi","committer_email":"trizzi@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10051-template-that-automatically-builds-and-pushes-to-the-maven-repository","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false},{"name":"10816-poc","commit":{"id":"b853de80e8f6b0ff1d40077b7563d15308f629e1","title":"Support `fallback_behavior` for `scan_finding` approval rules","message":"Support `fallback_behavior` for `scan_finding` approval rules\n\nSupport `fallback_behavior` for `license_finding` approval rules\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/b853de80e8f6b0ff1d40077b7563d15308f629e1","short_id":"b853de80","trailers":[],"created_at":"2024-03-25T19:39:09.000+01:00","parent_ids":["3153d26585bd093c5af9d864d3315e2a26123ad6"],"author_name":"Dominic Bauer","author_email":"dbauer@gitlab.com","authored_date":"2024-03-04T17:23:55.000+01:00","committed_date":"2024-03-25T19:39:09.000+01:00","committer_name":"Dominic Bauer","committer_email":"dbauer@gitlab.com","extended_trailers":[]},"merged":false,"default":false,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/tree/10816-poc","can_push":false,"protected":false,"developers_can_push":false,"developers_can_merge":false}],"meta":{"timestamp":"2026-06-02T16:52:24.922Z","request_id":"dbd5f2c5-14ba-46b5-b3e7-38f49da20484"},"status":"ok","message":"Project branches","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/project/commits":{"get":{"operationId":"get_v1_project_commits","tags":["Project"],"summary":"Commits","description":"","parameters":[{"name":"project","in":"query","required":true,"description":"Project id or group/name path (or gitlab.com URL)","schema":{"type":"string"},"example":"gitlab-org/gitlab"},{"name":"per_page","in":"query","required":false,"description":"Page size (max 100)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":[{"id":"8f7e4c4732493fae169a9deb6d5e2e270a79d647","title":"Merge branch 'eg/optimise-mr-policy-specs' into 'master' ","message":"Merge branch 'eg/optimise-mr-policy-specs' into 'master' \n\nOptimize factory usage in ee/spec/policies/merge_request_policy_spec.rb\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237459\n\nMerged-by: Alex Buijs <abuijs@gitlab.com>\nApproved-by: Alex Buijs <abuijs@gitlab.com>\nCo-authored-by: egrieff <egrieff@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/8f7e4c4732493fae169a9deb6d5e2e270a79d647","short_id":"8f7e4c47","trailers":[],"created_at":"2026-06-02T18:48:43.000+02:00","parent_ids":["52142899b9b894fe123a32cca55dd2610670e51d","8b21781d88821cd1b5ab827f56a4933e874f450a"],"author_name":"Alex Buijs","author_email":"abuijs@gitlab.com","authored_date":"2026-06-02T18:48:43.000+02:00","committed_date":"2026-06-02T18:48:43.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"52142899b9b894fe123a32cca55dd2610670e51d","title":"Merge branch 'renovate-gems/bootsnap' into 'master' ","message":"Merge branch 'renovate-gems/bootsnap' into 'master' \n\nUpdate dependency bootsnap to v1.24.5\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238674\n\nMerged-by: Aleksei Lipniagov <alipniagov@gitlab.com>\nApproved-by: Aleksei Lipniagov <alipniagov@gitlab.com>\nCo-authored-by: GitLab Renovate Bot <gitlab-bot@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/52142899b9b894fe123a32cca55dd2610670e51d","short_id":"52142899","trailers":[],"created_at":"2026-06-02T18:45:49.000+02:00","parent_ids":["0b9d8fed7ff2914ec1752c461bea48eb8e7c091f","42ccc15eabaa4c4fc4664d060f7fa1eabbdf51bc"],"author_name":"Aleksei Lipniagov","author_email":"alipniagov@gitlab.com","authored_date":"2026-06-02T18:45:49.000+02:00","committed_date":"2026-06-02T18:45:49.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"0b9d8fed7ff2914ec1752c461bea48eb8e7c091f","title":"Merge branch 'sofea/398183-move-document-reference-to-search-elastic' into 'master' ","message":"Merge branch 'sofea/398183-move-document-reference-to-search-elastic' into 'master' \n\nMove Gitlab::Elastic::DocumentReference to Search::Elastic namespace\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238729\n\nMerged-by: Suzanne Selhorn <sselhorn@gitlab.com>\nApproved-by: Siddharth Dungarwal <sdungarwal@gitlab.com>\nApproved-by: Ravi Kumar <rkumar@gitlab.com>\nApproved-by: Suzanne Selhorn <sselhorn@gitlab.com>\nCo-authored-by: Aishah Sofea <aishah.s.hanifa@gmail.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/0b9d8fed7ff2914ec1752c461bea48eb8e7c091f","short_id":"0b9d8fed","trailers":[],"created_at":"2026-06-02T09:41:56.000-07:00","parent_ids":["0553e1d12e7f615f488a696d7a86432d95d97be6","b24e2b335ce03f731cda60d0cf0c06aec4b4c408"],"author_name":"Suzanne Selhorn","author_email":"sselhorn@gitlab.com","authored_date":"2026-06-02T09:41:56.000-07:00","committed_date":"2026-06-02T09:41:56.000-07:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"0553e1d12e7f615f488a696d7a86432d95d97be6","title":"Merge branch 'fix/remove-stale-product-analytics-graphql-authz-entries' into 'master' ","message":"Merge branch 'fix/remove-stale-product-analytics-graphql-authz-entries' into 'master' \n\nRemove stale Product Analytics entries from GraphQL authz todo file\n\nCloses gitlab-org/quality/analytics/ci-health-incidents#925\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238904\n\nMerged-by: Robert Hunt <rhunt@gitlab.com>\nApproved-by: Vineeth Ravi <vravi@gitlab.com>\nApproved-by: Ayush Billore <abillore@gitlab.com>\nApproved-by: Bojan Marjanovic <bmarjanovic@gitlab.com>\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/0553e1d12e7f615f488a696d7a86432d95d97be6","short_id":"0553e1d1","trailers":[],"created_at":"2026-06-02T17:29:32.000+01:00","parent_ids":["e262087d7f34a20aa8bb03967c77184af89234ce","8503095a0812ac17275cd9a36487d6ad6c1f98ae"],"author_name":"Robert Hunt","author_email":"rhunt@gitlab.com","authored_date":"2026-06-02T17:29:32.000+01:00","committed_date":"2026-06-02T17:29:32.000+01:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"e262087d7f34a20aa8bb03967c77184af89234ce","title":"Merge branch 'fix/callback-worker-high-urgency' into 'master' ","message":"Merge branch 'fix/callback-worker-high-urgency' into 'master' \n\nSet Ai::Messaging::CallbackWorker data_consistency to :sticky\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238375\n\nMerged-by: Pedro Pombeiro <noreply@pedro.pombei.ro>\nApproved-by: Thomas Schmidt <tschmidt@gitlab.com>\nApproved-by: Pedro Pombeiro <noreply@pedro.pombei.ro>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\nCo-authored-by: Kinshuk Singh <kinsingh@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/e262087d7f34a20aa8bb03967c77184af89234ce","short_id":"e262087d","trailers":[],"created_at":"2026-06-02T18:29:07.000+02:00","parent_ids":["5c5c9a8913f316772d5b2b1626cf103774eb2856","3c0209057ab62ddc27a833ff55a3be6d731e2ba7"],"author_name":"Pedro Pombeiro","author_email":"noreply@pedro.pombei.ro","authored_date":"2026-06-02T18:29:07.000+02:00","committed_date":"2026-06-02T18:29:07.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"5c5c9a8913f316772d5b2b1626cf103774eb2856","title":"Merge branch '573546-dashboard-settings-inputs' into 'master' ","message":"Merge branch '573546-dashboard-settings-inputs' into 'master' \n\nCustom dashboard edit flow implementation\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238222\n\nMerged-by: Alex Pennells <apennells@gitlab.com>\nApproved-by: Rudy Crespo <rcrespo@gitlab.com>\nApproved-by: Ezekiel Kigbo <3397881-ekigbo@users.noreply.gitlab.com>\nApproved-by: Gal Katz <gkatz@gitlab.com>\nReviewed-by: Ezekiel Kigbo <3397881-ekigbo@users.noreply.gitlab.com>\nReviewed-by: Alex Pennells <apennells@gitlab.com>\nReviewed-by: Rudy Crespo <rcrespo@gitlab.com>\nReviewed-by: Gal Katz <gkatz@gitlab.com>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/5c5c9a8913f316772d5b2b1626cf103774eb2856","short_id":"5c5c9a89","trailers":[],"created_at":"2026-06-02T12:18:57.000-04:00","parent_ids":["a35d9750585ec3262ce309d48ba14c642ca0c550","5a0b727c012be5c3eacc5be4f950b2204aa8a3f6"],"author_name":"Alex Pennells","author_email":"apennells@gitlab.com","authored_date":"2026-06-02T12:18:57.000-04:00","committed_date":"2026-06-02T12:18:57.000-04:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"5a0b727c012be5c3eacc5be4f950b2204aa8a3f6","title":"Add DashboardSettingsForm component","message":"Add DashboardSettingsForm component\n\nCreate a new DashboardSettingsForm component which contains the\ntitle and description inputs used in the new dashboard modal\nand the dashboard settings drawer. Update both of these components\nto use the new form component. Implement the update flow\nin the settings drawer using the new form component.\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/5a0b727c012be5c3eacc5be4f950b2204aa8a3f6","short_id":"5a0b727c","trailers":[],"created_at":"2026-06-02T12:18:54.000-04:00","parent_ids":["f5f494bf8c394c392fb175fbc2619c3646146fa2"],"author_name":"Alex Pennells","author_email":"apennells@gitlab.com","authored_date":"2026-06-02T12:18:54.000-04:00","committed_date":"2026-06-02T12:18:54.000-04:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"a35d9750585ec3262ce309d48ba14c642ca0c550","title":"Merge branch 'deepika-remove-work-item-configurable-types-ff' into 'master' ","message":"Merge branch 'deepika-remove-work-item-configurable-types-ff' into 'master' \n\nRemove work_item_configurable_types feature flag\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237159\n\nMerged-by: Shubham Kumar <shukumar@gitlab.com>\nApproved-by: Agnes Slota <aslota@gitlab.com>\nApproved-by: Vitali Tatarintev <vtatarintev@gitlab.com>\nApproved-by: Coung Ngo <cngo@gitlab.com>\nApproved-by: Marc Saleiko <msaleiko@gitlab.com>\nApproved-by: Shubham Kumar <shukumar@gitlab.com>\nReviewed-by: Krasimir Angelov <kangelov@gitlab.com>\nReviewed-by: Coung Ngo <cngo@gitlab.com>\nReviewed-by: Marc Saleiko <msaleiko@gitlab.com>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\nReviewed-by: Agnes Slota <aslota@gitlab.com>\nCo-authored-by: Deepika Guliani <dguliani@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/a35d9750585ec3262ce309d48ba14c642ca0c550","short_id":"a35d9750","trailers":[],"created_at":"2026-06-02T18:13:17.000+02:00","parent_ids":["6490d4a5a17b5be2799b25f9c2f9fcd44c3855c0","e2fd54a31725028da475a45725891be18257c241"],"author_name":"Shubham Kumar","author_email":"shukumar@gitlab.com","authored_date":"2026-06-02T18:13:17.000+02:00","committed_date":"2026-06-02T18:13:17.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"e2fd54a31725028da475a45725891be18257c241","title":"Remove work_item_configurable_types feature flag","message":"Remove work_item_configurable_types feature flag\n\nChangelog: other\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/e2fd54a31725028da475a45725891be18257c241","short_id":"e2fd54a3","trailers":[],"created_at":"2026-06-02T18:13:17.000+02:00","parent_ids":["bc0f5b0799a1460c070953737a32d59130548db2"],"author_name":"Deepika Guliani","author_email":"dguliani@gitlab.com","authored_date":"2026-06-03T02:13:17.000+10:00","committed_date":"2026-06-02T18:13:17.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"6490d4a5a17b5be2799b25f9c2f9fcd44c3855c0","title":"Merge branch 'feature/duo-session-chat-bubbles' into 'master' ","message":"Merge branch 'feature/duo-session-chat-bubbles' into 'master' \n\nRender session activity log as chat bubbles behind feature flag\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237426\n\nMerged-by: Andrew Fontaine <afontaine@gitlab.com>\nApproved-by: Lindsey Shelton <lshelton@gitlab.com>\nApproved-by: Jack Chapman <jachapman@gitlab.com>\nApproved-by: Hunter Stewart <hustewart@gitlab.com>\nReviewed-by: Lindsey Shelton <lshelton@gitlab.com>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/6490d4a5a17b5be2799b25f9c2f9fcd44c3855c0","short_id":"6490d4a5","trailers":[],"created_at":"2026-06-02T11:50:41.000-04:00","parent_ids":["27735473487bc1bd0033ba158f97c0c994bc14c7","7cc0acd48d3c33388eca9483864fd119cde9a17f"],"author_name":"Andrew Fontaine","author_email":"afontaine@gitlab.com","authored_date":"2026-06-02T11:50:41.000-04:00","committed_date":"2026-06-02T11:50:41.000-04:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"7cc0acd48d3c33388eca9483864fd119cde9a17f","title":"Route agent/request messages through MessageMap","message":"Route agent/request messages through MessageMap\n\nRemap role from 'assistant' back to message_type for agent and\nrequest messages so they route through MessageMap instead of the\nassistant-bubble template branch in DuoChatMessage. This fixes\ntwo issues:\n\n1. Copy buttons no longer appear on read-only session messages\n2. MessageApprovalRequest renderer fires for request messages,\n   showing the approve/modify/reject buttons\n\nAlso mark the last request message with isLastMessage: true\nunconditionally so approval buttons render even when tool or\nagent messages follow the request.\n\nRevert debugging artifact that commented out GIT_CONFIG_GLOBAL.\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/7cc0acd48d3c33388eca9483864fd119cde9a17f","short_id":"7cc0acd4","trailers":[],"created_at":"2026-06-02T11:50:38.000-04:00","parent_ids":["fe130bf1073ca4c1348e4096fa1b62e90f24249d"],"author_name":"Andrew Fontaine","author_email":"afontaine@gitlab.com","authored_date":"2026-06-02T11:50:38.000-04:00","committed_date":"2026-06-02T11:50:38.000-04:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"27735473487bc1bd0033ba158f97c0c994bc14c7","title":"Merge branch 'mc_rocha-add-license-ref-wildcard' into 'master' ","message":"Merge branch 'mc_rocha-add-license-ref-wildcard' into 'master' \n\nAdd LicenseRef matching for license expression policies\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238017\n\nMerged-by: Sashi Kumar Kumaresan <skumar@gitlab.com>\nApproved-by: Imam Hossain <ihossain@gitlab.com>\nApproved-by: Sashi Kumar Kumaresan <skumar@gitlab.com>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\nReviewed-by: Imam Hossain <ihossain@gitlab.com>\nCo-authored-by: mc_rocha <mrocha@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/27735473487bc1bd0033ba158f97c0c994bc14c7","short_id":"27735473","trailers":[],"created_at":"2026-06-02T17:49:22.000+02:00","parent_ids":["0afbd4acdc5f204d6f3a56bf7a3eebdf30d7ca6e","04b42cf9987cefc81b84a7957437f167d5ba58aa"],"author_name":"Sashi Kumar Kumaresan","author_email":"skumar@gitlab.com","authored_date":"2026-06-02T17:49:22.000+02:00","committed_date":"2026-06-02T17:49:22.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"0afbd4acdc5f204d6f3a56bf7a3eebdf30d7ca6e","title":"Merge branch '584505-cleanup-disable-trending-args-ff' into 'master' ","message":"Merge branch '584505-cleanup-disable-trending-args-ff' into 'master' \n\n[FF] Cleanup disable_trending_args feature flag\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238301\n\nMerged-by: Gal Katz <gkatz@gitlab.com>\nApproved-by: Vlad Wolanyk <vwolanyk@gitlab.com>\nApproved-by: Gal Katz <gkatz@gitlab.com>\nReviewed-by: Gal Katz <gkatz@gitlab.com>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\nCo-authored-by: Shane Maglangit <smaglangit@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/0afbd4acdc5f204d6f3a56bf7a3eebdf30d7ca6e","short_id":"0afbd4ac","trailers":[],"created_at":"2026-06-02T11:45:44.000-04:00","parent_ids":["be96704e71f38e5dfaa032f73ca5e5bf4fc4d310","b0361b27ad52849a132904fa5cf48b9a811fe522"],"author_name":"Gal Katz","author_email":"gkatz@gitlab.com","authored_date":"2026-06-02T11:45:44.000-04:00","committed_date":"2026-06-02T11:45:44.000-04:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"b0361b27ad52849a132904fa5cf48b9a811fe522","title":"Remove disable_trending_args feature flag and trending GraphQL argument","message":"Remove disable_trending_args feature flag and trending GraphQL argument\n\nThe disable_trending_args beta feature flag was enabled by default in\nGitLab 18.8 and the trending argument was announced as a breaking\nchange for GitLab 19.0. Remove the flag, the deprecated GraphQL\nargument on Query.projects, Query.adminProjects, and\nOrganization.projects, and the related test contexts.\n\nThe ProjectsFinder still accepts a :trending parameter; the finder\nmethod is removed in a follow-up MR.\n\nResolves https://gitlab.com/gitlab-org/gitlab/-/issues/584505\n\nChangelog: removed\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/b0361b27ad52849a132904fa5cf48b9a811fe522","short_id":"b0361b27","trailers":[],"created_at":"2026-06-02T11:45:38.000-04:00","parent_ids":["adfdacca95c995e59251322f9097f7c25efeb8ba"],"author_name":"Shane Maglangit","author_email":"smaglangit@gitlab.com","authored_date":"2026-06-02T23:45:38.000+08:00","committed_date":"2026-06-02T11:45:38.000-04:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"be96704e71f38e5dfaa032f73ca5e5bf4fc4d310","title":"Merge branch '592456/sq/mr_approved-trigger' into 'master' ","message":"Merge branch '592456/sq/mr_approved-trigger' into 'master' \n\nImplements MR approved flow trigger\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081\n\nMerged-by: Eugenia Grieff <egrieff@gitlab.com>\nApproved-by: Roy Liu <rliu@gitlab.com>\nApproved-by: Jay <jswain@gitlab.com>\nApproved-by: Justin Ho Tuan Duong <hduong@gitlab.com>\nApproved-by: Fabio Pitino <fpitino@gitlab.com>\nApproved-by: Eugenia Grieff <egrieff@gitlab.com>\nReviewed-by: Fabio Pitino <fpitino@gitlab.com>\nReviewed-by: Jay <jswain@gitlab.com>\nReviewed-by: Justin Ho Tuan Duong <hduong@gitlab.com>\nReviewed-by: Omar Qunsul <oqunsul@gitlab.com>\nReviewed-by: Lee Tickett <ltickett@gitlab.com>\nReviewed-by: Roy Liu <rliu@gitlab.com>\nReviewed-by: zli <zli@gitlab.com>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\nReviewed-by: Shola Quadri <squadri@gitlab.com>\nReviewed-by: Chloe Fons <cfons@gitlab.com>\nCo-authored-by: sholaq <squadri@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/be96704e71f38e5dfaa032f73ca5e5bf4fc4d310","short_id":"be96704e","trailers":[],"created_at":"2026-06-02T17:39:12.000+02:00","parent_ids":["0c659ab3e4cd1fd56b138309d61e647f281e9540","7fb656dbdd4a2f5dc2d547ebbc5396d7fea4a543"],"author_name":"Eugenia Grieff","author_email":"egrieff@gitlab.com","authored_date":"2026-06-02T17:39:12.000+02:00","committed_date":"2026-06-02T17:39:12.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"7fb656dbdd4a2f5dc2d547ebbc5396d7fea4a543","title":"Implements MR approved flow trigger","message":"Implements MR approved flow trigger\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/7fb656dbdd4a2f5dc2d547ebbc5396d7fea4a543","short_id":"7fb656db","trailers":[],"created_at":"2026-06-02T17:39:11.000+02:00","parent_ids":["c9b10a3221110ab5b6ed91b9d0cb5dbae0fa539e"],"author_name":"Shola Quadri","author_email":"squadri@gitlab.com","authored_date":"2026-06-02T16:39:11.000+01:00","committed_date":"2026-06-02T17:39:11.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"8b21781d88821cd1b5ab827f56a4933e874f450a","title":"Optimize factory usage in ee/spec/policies/merge_request_policy_spec.rb","message":"Optimize factory usage in ee/spec/policies/merge_request_policy_spec.rb\n\nShifts fixture creation from per-example to per-context or per-suite.\nFactory time drops ~80%\n\n- Top-level `project` becomes `let_it_be_with_reload` and uses the\n  project factory's role transients in place of a `before` block calling\n  `add_*` per test.\n- `forked_project` and `fork_merge_request` are scoped to the fork\n  context so non-fork tests no longer create a fork per example.\n- The two `let(:project)` overrides in\n  `read_external_status_check_response`become `let_it_be_with_reload`.\n- `create_default(:namespace).freeze` with `factory_default: :keep` lets\n  every nested project create reuse the same namespace.\n- `merge_request` becomes `let_it_be` (not `let_it_be_with_reload`) so\n  the cached `target_project` association keeps the same Ruby object as\n  `project` — needed for stubs that go through `merge_request.project`.\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/8b21781d88821cd1b5ab827f56a4933e874f450a","short_id":"8b21781d","trailers":[],"created_at":"2026-06-02T17:31:39.000+02:00","parent_ids":["b32f18237793fa22afaf5c0df0c7636e8ff4df1c"],"author_name":"egrieff","author_email":"egrieff@gitlab.com","authored_date":"2026-05-22T10:34:52.000+02:00","committed_date":"2026-06-02T17:31:39.000+02:00","committer_name":"egrieff","committer_email":"egrieff@gitlab.com","extended_trailers":[]},{"id":"0c659ab3e4cd1fd56b138309d61e647f281e9540","title":"Merge branch 'update-deprecation-template' into 'master' ","message":"Merge branch 'update-deprecation-template' into 'master' \n\nFix RSS feed link for breaking changes in deprecations page\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238928\n\nMerged-by: Suzanne Selhorn <sselhorn@gitlab.com>\nApproved-by: Suzanne Selhorn <sselhorn@gitlab.com>\nApproved-by: Pearl Latteier <platteier@gitlab.com>\nCo-authored-by: Hiru Fernando <hfernando@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/0c659ab3e4cd1fd56b138309d61e647f281e9540","short_id":"0c659ab3","trailers":[],"created_at":"2026-06-02T08:29:54.000-07:00","parent_ids":["34b5c1afa9ced543cee4795233926aae3e7f11de","023e992ad5a7ca775f6aec9af1f183a9edc91dd6"],"author_name":"Suzanne Selhorn","author_email":"sselhorn@gitlab.com","authored_date":"2026-06-02T08:29:54.000-07:00","committed_date":"2026-06-02T08:29:54.000-07:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"34b5c1afa9ced543cee4795233926aae3e7f11de","title":"Merge branch '600692-introduce-latest-open-merge-request-field' into 'master' ","message":"Merge branch '600692-introduce-latest-open-merge-request-field' into 'master' \n\nAdd latestNonClosedMergeRequest field on Vulnerability\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238267\n\nMerged-by: Eugenia Grieff <egrieff@gitlab.com>\nApproved-by: Ugo Nnanna Okeadu <uokeadu@gitlab.com>\nApproved-by: Subashis  Chakraborty <schakraborty@gitlab.com>\nApproved-by: Eugenia Grieff <egrieff@gitlab.com>\nReviewed-by: Subashis  Chakraborty <schakraborty@gitlab.com>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\nReviewed-by: Ugo Nnanna Okeadu <uokeadu@gitlab.com>\nReviewed-by: Tomasz Skorupa <tskorupa@gitlab.com>\nCo-authored-by: Savas Vedova <svedova@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/34b5c1afa9ced543cee4795233926aae3e7f11de","short_id":"34b5c1af","trailers":[],"created_at":"2026-06-02T17:28:57.000+02:00","parent_ids":["b32f18237793fa22afaf5c0df0c7636e8ff4df1c","21272b9e36923556669abd41fc1785cee04d3a2c"],"author_name":"Eugenia Grieff","author_email":"egrieff@gitlab.com","authored_date":"2026-06-02T17:28:57.000+02:00","committed_date":"2026-06-02T17:28:57.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"21272b9e36923556669abd41fc1785cee04d3a2c","title":"Add latestNonClosedMergeRequest field on Vulnerability","message":"Add latestNonClosedMergeRequest field on Vulnerability\n\nIntroduces an experimental `latestNonClosedMergeRequest` field on the\n`Vulnerability` GraphQL type that returns the most recent merge request\nlinked to the vulnerability whose `state` is not `closed`.\n\nResolution is batched via `BatchLoader::GraphQL`: link rows are fetched\nfrom the sec database in one query, then the non-closed merge requests\n(with their `target_project`) are fetched from the main database in one\nquery, regardless of how many vulnerabilities are returned per page.\nThe non-closed filter is pushed to SQL through a new\n`MergeRequest.non_closed` scope, so closed MRs are never hydrated.\n\nPer-MR `read_merge_request` authorization in MergeRequestType still\nruns once per returned record. That is system-wide MergeRequestType\nbehaviour and out of scope here.\n\nResolves https://gitlab.com/gitlab-org/gitlab/-/issues/600692\n\nChangelog: other\nEE: true\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/21272b9e36923556669abd41fc1785cee04d3a2c","short_id":"21272b9e","trailers":[],"created_at":"2026-06-02T17:28:56.000+02:00","parent_ids":["a8c9537861f4a343994b1b1e2758335278b009c8"],"author_name":"Savas Vedova","author_email":"svedova@gitlab.com","authored_date":"2026-06-02T15:28:56.000+00:00","committed_date":"2026-06-02T17:28:56.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"b32f18237793fa22afaf5c0df0c7636e8ff4df1c","title":"Merge branch 'bl-add-env-var-guidance-to-cli-style-guide' into 'master' ","message":"Merge branch 'bl-add-env-var-guidance-to-cli-style-guide' into 'master' \n\nAdd env var deprecation guidance to CLI style guide\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238805\n\nMerged-by: Kati Paizee <kpaizee@gitlab.com>\nApproved-by: Kai Armstrong <karmstrong@gitlab.com>\nApproved-by: Kati Paizee <kpaizee@gitlab.com>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\nCo-authored-by: Brendan <blynch@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/b32f18237793fa22afaf5c0df0c7636e8ff4df1c","short_id":"b32f1823","trailers":[],"created_at":"2026-06-02T17:12:58.000+02:00","parent_ids":["efd3a1702aaf5eea85199ca5c09cd3d8ca1929c8","8e6c332753b4285569618f6ef406e7e97c71b1f1"],"author_name":"Kati Paizee","author_email":"kpaizee@gitlab.com","authored_date":"2026-06-02T17:12:58.000+02:00","committed_date":"2026-06-02T17:12:58.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"8e6c332753b4285569618f6ef406e7e97c71b1f1","title":"Add env var deprecation guidance to CLI style guide","message":"Add env var deprecation guidance to CLI style guide\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/8e6c332753b4285569618f6ef406e7e97c71b1f1","short_id":"8e6c3327","trailers":[],"created_at":"2026-06-02T17:12:58.000+02:00","parent_ids":["d5af32da7661f083df00b72fd488931d537003cd"],"author_name":"Brendan Lynch","author_email":"blynch@gitlab.com","authored_date":"2026-06-02T17:12:58.000+02:00","committed_date":"2026-06-02T17:12:58.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"efd3a1702aaf5eea85199ca5c09cd3d8ca1929c8","title":"Merge branch '600917-add-url-safe-name-validation-cd-models' into 'master' ","message":"Merge branch '600917-add-url-safe-name-validation-cd-models' into 'master' \n\nAdd URL-safe name validation to Cd models\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238693\n\nMerged-by: Carla Drago <cdrago@gitlab.com>\nApproved-by: George Koltsov <gkoltsov@gitlab.com>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\nReviewed-by: Agnes Slota <aslota@gitlab.com>\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/efd3a1702aaf5eea85199ca5c09cd3d8ca1929c8","short_id":"efd3a170","trailers":[],"created_at":"2026-06-02T17:07:41.000+02:00","parent_ids":["3b73533b672a7ec4e0a7beef502ddf127a23857a","3cc01a4728b7bd6fc37b4565ebe933c644f3b59f"],"author_name":"Carla Drago","author_email":"cdrago@gitlab.com","authored_date":"2026-06-02T17:07:41.000+02:00","committed_date":"2026-06-02T17:07:41.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"3cc01a4728b7bd6fc37b4565ebe933c644f3b59f","title":"Add URL-safe name validation to Cd models","message":"Add URL-safe name validation to Cd models\n\nValidates that Cd::Application and Cd::Environment names contain\nonly letters, digits, underscores and hyphens so they can be used\nsafely as URL path segments.\n\nChangelog: added\nEE: true\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/3cc01a4728b7bd6fc37b4565ebe933c644f3b59f","short_id":"3cc01a47","trailers":[],"created_at":"2026-06-02T17:07:25.000+02:00","parent_ids":["488f157a7414e2540d57d51d70f766cf9953ab30"],"author_name":"Carla Drago","author_email":"cdrago@gitlab.com","authored_date":"2026-06-02T17:07:25.000+02:00","committed_date":"2026-06-02T17:07:25.000+02:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"3b73533b672a7ec4e0a7beef502ddf127a23857a","title":"Merge branch 'docs-component-inputs' into 'master' ","message":"Merge branch 'docs-component-inputs' into 'master' \n\nClarify that inputs must be used outside the header\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238820\n\nMerged-by: Lysanne Pinto <lpinto@gitlab.com>\nApproved-by: Lysanne Pinto <lpinto@gitlab.com>\nCo-authored-by: Marcel Amirault <mamirault@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/3b73533b672a7ec4e0a7beef502ddf127a23857a","short_id":"3b73533b","trailers":[],"created_at":"2026-06-02T11:05:31.000-04:00","parent_ids":["7cb51fb8cb3b6d0dc30875f1c56242659007efee","9fb7182649a5491b580d93f7e4398418af09c291"],"author_name":"Lysanne Pinto","author_email":"lpinto@gitlab.com","authored_date":"2026-06-02T11:05:31.000-04:00","committed_date":"2026-06-02T11:05:31.000-04:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"7cb51fb8cb3b6d0dc30875f1c56242659007efee","title":"Merge branch 'votto-vue-name--approvals' into 'master' ","message":"Merge branch 'votto-vue-name--approvals' into 'master' \n\nAdd vue name property to approvals components\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237855\n\nMerged-by: Artur Fedorov <afedorov@gitlab.com>\nApproved-by: Artur Fedorov <afedorov@gitlab.com>\nReviewed-by: Artur Fedorov <afedorov@gitlab.com>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\nCo-authored-by: Vanessa Otto <votto@gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/7cb51fb8cb3b6d0dc30875f1c56242659007efee","short_id":"7cb51fb8","trailers":[],"created_at":"2026-06-02T15:01:32.000+00:00","parent_ids":["d456a6d6509b663d95247812be91a497cc69668e","17f36d2dff793c177e359ff17b7b1febac04ca8f"],"author_name":"Artur Fedorov","author_email":"afedorov@gitlab.com","authored_date":"2026-06-02T15:01:32.000+00:00","committed_date":"2026-06-02T15:01:32.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"17f36d2dff793c177e359ff17b7b1febac04ca8f","title":"Add vue name property to approvals components","message":"Add vue name property to approvals components\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/17f36d2dff793c177e359ff17b7b1febac04ca8f","short_id":"17f36d2d","trailers":[],"created_at":"2026-06-02T15:01:28.000+00:00","parent_ids":["db7363b49b9cda63126aeddd605ba01938b20313"],"author_name":"Vanessa Otto","author_email":"votto@gitlab.com","authored_date":"2026-06-02T17:01:28.000+02:00","committed_date":"2026-06-02T15:01:28.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"023e992ad5a7ca775f6aec9af1f183a9edc91dd6","title":"Fix RSS feed link for breaking changes in deprecations page","message":"Fix RSS feed link for breaking changes in deprecations page\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/023e992ad5a7ca775f6aec9af1f183a9edc91dd6","short_id":"023e992a","trailers":[],"created_at":"2026-06-02T10:53:31.000-04:00","parent_ids":["7e1e97c91d8d5166b8b29bddbf414cb8d773fba4"],"author_name":"Hiru Fernando","author_email":"hfernando@gitlab.com","authored_date":"2026-06-02T10:53:31.000-04:00","committed_date":"2026-06-02T10:53:31.000-04:00","committer_name":"Hiru Fernando","committer_email":"hfernando@gitlab.com","extended_trailers":[]},{"id":"d456a6d6509b663d95247812be91a497cc69668e","title":"Merge branch '597766-move-analytics-dashboards-code-foss' into 'master' ","message":"Merge branch '597766-move-analytics-dashboards-code-foss' into 'master' \n\nMove merge request analytics data sources to FOSS\n\nSee merge request https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237440\n\nMerged-by: Alex Pennells <apennells@gitlab.com>\nApproved-by: Luke Duncalfe <lduncalfe@gitlab.com>\nApproved-by: Daniele Rossetti <drossetti@gitlab.com>\nApproved-by: Alex Pennells <apennells@gitlab.com>\nReviewed-by: Luke Duncalfe <lduncalfe@gitlab.com>\nReviewed-by: Alex Pennells <apennells@gitlab.com>\nReviewed-by: GitLab Duo <gitlab-duo@gitlab.com>\nCo-authored-by: Ezekiel <3397881-ekigbo@users.noreply.gitlab.com>","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/d456a6d6509b663d95247812be91a497cc69668e","short_id":"d456a6d6","trailers":[],"created_at":"2026-06-02T10:51:59.000-04:00","parent_ids":["7e1e97c91d8d5166b8b29bddbf414cb8d773fba4","49e506ce00101cfc52232bb98cc88f71a88aa767"],"author_name":"Alex Pennells","author_email":"apennells@gitlab.com","authored_date":"2026-06-02T10:51:59.000-04:00","committed_date":"2026-06-02T10:51:59.000-04:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},{"id":"49e506ce00101cfc52232bb98cc88f71a88aa767","title":"Move merge request analytics data sources to FOSS","message":"Move merge request analytics data sources to FOSS\n\nMove the merge_requests, merge_request_counts, and mean_time_to_merge\ndata sources plus the merge_request_analytics graphql/api/utils library\nand the shared Apollo client to FOSS. The Apollo client keeps a one-line\nre-export shim at the EE path; the EE barrel spreads the new FOSS\nregistry into its existing entries so EE consumers keep resolving them.\n\nCo-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>\n","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/49e506ce00101cfc52232bb98cc88f71a88aa767","short_id":"49e506ce","trailers":[],"created_at":"2026-06-02T10:51:59.000-04:00","parent_ids":["15914bcd08ee52d5f1709869121757e4130151be"],"author_name":"Ezekiel Kigbo","author_email":"3397881-ekigbo@users.noreply.gitlab.com","authored_date":"2026-06-03T00:51:59.000+10:00","committed_date":"2026-06-02T10:51:59.000-04:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]}],"meta":{"timestamp":"2026-06-02T16:52:25.719Z","request_id":"1c0c4737-10c9-4655-bcfc-be429066a4b4"},"status":"ok","message":"Project commits","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/project/issues":{"get":{"operationId":"get_v1_project_issues","tags":["Project"],"summary":"Issues","description":"","parameters":[{"name":"project","in":"query","required":true,"description":"Project id or group/name path (or gitlab.com URL)","schema":{"type":"string"},"example":"gitlab-org/gitlab"},{"name":"state","in":"query","required":false,"description":"opened|closed|all","schema":{"type":"string"}},{"name":"per_page","in":"query","required":false,"description":"Page size (max 100)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":[{"id":191603917,"iid":601852,"epic":{"id":3852880,"iid":19972,"url":"/groups/gitlab-org/-/epics/19972","title":"OAuth for Protocells - Production","group_id":9970},"type":"ISSUE","state":"opened","title":"Sandbox: Run basic E2E tests for IAM auth flows using gitlab-qa","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601852","notes":"https://gitlab.com/api/v4/projects/278964/issues/601852/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601852/award_emoji"},"author":{"id":28243218,"name":"Daniele Bracciani","state":"active","locked":false,"web_url":"https://gitlab.com/daniele-gitlab","username":"daniele-gitlab","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/28243218/avatar.png","public_email":""},"labels":["Deliverable","devops::software supply chain security","group::authentication","iam-protocell","section::sec","type::maintenance"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601852","epic_iid":19972,"imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"created_at":"2026-06-02T16:42:35.863Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601852","short":"#601852","relative":"#601852"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:45:44.181Z","description":"\n\n## Problem\n\nAs IAM service components are deployed to the GATE sandbox, we have no automated\nend-to-end validation of the core auth flows through the full stack\n(client → Envoy → IAM → GitLab Rails). Issues can go undetected until they reach\nstaging or production.\n\n## Proposal\n\nAdd a basic E2E test job triggered after `deploy-to-sandbox`, running against the\nsandbox environment as the test target (no isolated environment needed — the sandbox\nitself serves as the test target).\n\nThis job should:\n- Use `gitlab-qa` (or equivalent) pointed at the sandbox GitLab URL\n- Cover a narrow, stable set of happy/deny paths:\n  - Consent flow (OAuth application authorization)\n  - Token issuance / exchange happy path\n  - Invalid or expired token deny path\n- Mirror the pattern used for smoke tests already running in the sandbox pipeline\n- Be non-blocking initially: a failure triggers an alert rather than halting the release,\n  since it runs at the end of the deploy chain\n\n## Out of scope\n\nMore structured pre-promotion blocking tests (e.g. against staging before production\npromotion) are tracked separately in\nhttps://gitlab.com/gitlab-org/gitlab/-/work_items/599956.\n\n## References\n\n- Parent discussion: https://gitlab.com/gitlab-org/gitlab/-/work_items/599956\n- Cells precedent (QA through HTTP Router + Topology Service):\n  https://gitlab.com/gitlab-com/gl-infra/delivery/-/work_items/21521","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":0,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191597521,"iid":601851,"type":"ISSUE","state":"opened","title":"Claude Code training: Level 4 session pre-work (Anthropic Academy learning path) - Jay McCure","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601851","notes":"https://gitlab.com/api/v4/projects/278964/issues/601851/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601851/award_emoji"},"author":{"id":34724468,"name":"Brian Legault","state":"active","locked":false,"web_url":"https://gitlab.com/brianlegault","username":"brianlegault","avatar_url":"https://secure.gravatar.com/avatar/028f9a926052dccc614d40af603d8a26a82d1da943c4c9a6aa1c7247220949cf?s=80&d=identicon","public_email":""},"labels":["automation:ml"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601851","assignee":{"id":34724468,"name":"Brian Legault","state":"active","locked":false,"web_url":"https://gitlab.com/brianlegault","username":"brianlegault","avatar_url":"https://secure.gravatar.com/avatar/028f9a926052dccc614d40af603d8a26a82d1da943c4c9a6aa1c7247220949cf?s=80&d=identicon","public_email":""},"imported":false,"severity":"UNKNOWN","assignees":[{"id":34724468,"name":"Brian Legault","state":"active","locked":false,"web_url":"https://gitlab.com/brianlegault","username":"brianlegault","avatar_url":"https://secure.gravatar.com/avatar/028f9a926052dccc614d40af603d8a26a82d1da943c4c9a6aa1c7247220949cf?s=80&d=identicon","public_email":""}],"downvotes":0,"has_tasks":false,"created_at":"2026-06-02T15:48:01.200Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601851","short":"#601851","relative":"#601851"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:10:27.835Z","description":"<!--IssueSummary start-->\n\n<details>\n<summary>\n\nEveryone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.\n\n</summary>\n\n- [Label this issue](https://contributors.gitlab.com/manage-issue?action=label&projectId=278964&issueIid=601851)\n\n</details>\n\n<!--IssueSummary end-->\n\nPre-work for the upcoming **Live Level 4 Claude Code session** (targeting the last full week of June 2026). [Slack announcement](https://gitlab.slack.com/archives/CJWA4E9UG/p1779983021516499)\n\n> **Before starting:** [sign up for Anthropic Academy](https://accounts.skilljar.com/accounts/signup/) and register with your GitLab email address (`@gitlab.com`) so progress can be tracked.\n\nChecklist of the self-paced learning path, with an approximate time-to-complete for each item. Times were re-checked against the actual course/page content (Skilljar courses don't publish durations, so those are estimates; doc/article times are based on measured length at \\~200 wpm).\n\n---\n\n## :seedling: Level 1 — First contact\n\n- [ ] [**Claude Code 101**](https://anthropic.skilljar.com/claude-code-101) — self-paced course, certificate included — **\\~1 hr**\n- [ ] [**Quickstart**](https://code.claude.com/docs/en/quickstart) + [**How Claude Code works**](https://code.claude.com/docs/en/how-claude-code-works) (read) — **\\~25 min** (\\~10 min + \\~15 min)\n- [ ] [**Claude Code in an Hour: A Developer's Intro**](https://www.anthropic.com/webinar-series/claude-code) (recorded webinar) — **\\~1 hr**\n\n_Level 1 subtotal: \\~2.5 hrs_\n\n## :zap: Level 2 — Working effectively\n\n- [ ] [**Claude Code in Action**](https://anthropic.skilljar.com/claude-code-in-action) — course (21 lessons), certificate included — **\\~2–3 hrs**\n- [ ] [**Best practices for Claude Code**](https://code.claude.com/docs/en/best-practices) (the \"201 textbook\" — long) — **\\~25–30 min**\n- [ ] [**Common workflows**](https://code.claude.com/docs/en/common-workflows) — bug fixing, refactoring, testing recipes — **\\~15 min**\n- [ ] [**Extend Claude Code**](https://code.claude.com/docs/en/features-overview) — CLAUDE.md vs. skills vs. hooks vs. MCP — **\\~15–20 min**\n- [ ] [**Introduction to Model Context Protocol**](https://anthropic.skilljar.com/introduction-to-model-context-protocol) (course) — **\\~1 hr** (confirmed 1h1m)\n- [ ] [**How Anthropic teams use Claude Code**](https://claude.com/blog/how-anthropic-teams-use-claude-code) (short read) — **\\~10–15 min**\n\n_Level 2 subtotal: \\~4.5–5.5 hrs_\n\n## :fire: Level 3 — Power user (required before the live session)\n\n- [ ] [**Introduction to Agent Skills**](https://anthropic.skilljar.com/introduction-to-agent-skills) (course) — plugin distribution + managed settings — **\\~30–45 min**\n- [ ] [**Introduction to Subagents**](https://anthropic.skilljar.com/introduction-to-subagents) (course) — context isolation + parallel execution — **\\~30–45 min**\n- [ ] [**Model Context Protocol: Advanced Topics**](https://anthropic.skilljar.com/model-context-protocol-advanced-topics) (course) — **\\~1–1.5 hrs**\n- [ ] **Power-user docs** (6 pages) — **\\~2–2.5 hrs** combined:\n  - [hooks](https://code.claude.com/docs/en/hooks-guide) (\\~25 min)\n  - [plugins](https://code.claude.com/docs/en/plugins) (\\~20 min)\n  - [permission modes](https://code.claude.com/docs/en/permission-modes) (\\~20 min)\n  - [headless mode](https://code.claude.com/docs/en/headless) (\\~15 min)\n  - [GitLab CI/CD integration](https://code.claude.com/docs/en/gitlab-ci-cd) (\\~15 min)\n  - [agent teams](https://code.claude.com/docs/en/agent-teams) (\\~25 min)\n- [ ] [**Effective context engineering for AI agents**](https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents) (long read — \"most important\" for this tier) — **\\~12–15 min**\n- [ ] [**Equipping agents for the real world with Agent Skills**](https://www.anthropic.com/engineering/equipping-agents-for-the-real-world-with-agent-skills) (design rationale) — **\\~8–10 min**\n- [ ] [**Scaling agentic coding across your organization**](https://resources.anthropic.com/scaling-agentic-coding) (org rollout playbook / eBook) — **\\~15–30 min**\n\n_Level 3 subtotal: \\~5.5–6.5 hrs_\n\n---\n\n**Estimated total: \\~12.5–14.5 hrs** across all three levels.\n\n> **Notes on estimates:**\n>\n> - **Confirmed:** _Introduction to Model Context Protocol_ (\\~1 hr / 1h1m). _Claude Code in Action_ is 21 lessons (\\~1 hr of video, \\~2–3 hrs with hands-on practice).\n> - **Course estimates:** Anthropic Academy / Skilljar course pages don't publish durations, so Claude Code 101, Agent Skills, Subagents, and MCP Advanced Topics are estimated from scope (beginner intros \\~30–60 min; advanced \\~1–1.5 hrs).\n> - **Doc/article times** are measured from page length at \\~200 wpm. The webinar is taken at its stated \"in an hour\" runtime.","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":16,"completed_count":0}},{"id":191592577,"iid":601849,"epic":{"id":3790944,"iid":19585,"url":"/groups/gitlab-org/-/epics/19585","title":"Run new backend specs in random order","group_id":9970,"human_readable_end_date":"Oct 12, 2025","human_readable_timestamp":"<strong>Past due</strong>"},"type":"ISSUE","state":"opened","title":"Order-dependent FOSS specs needing attention (rspec_order_todo)","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601849","notes":"https://gitlab.com/api/v4/projects/278964/issues/601849/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601849/award_emoji"},"author":{"id":438961,"name":"Peter Leitzen","state":"active","locked":false,"web_url":"https://gitlab.com/splattael","username":"splattael","avatar_url":"https://secure.gravatar.com/avatar/1770b841bba7c10e32e4a10f69d7b2cbc5d2d225fd1835388bcd4e0689fa6fd6?s=80&d=identicon","public_email":"pleitzen@gitlab.com"},"labels":["backend","devops::developer experience","group::development tooling","maintenance::test-gap","section::developer experience","test","type::maintenance","workflow::ready for development"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601849","epic_iid":19585,"imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"created_at":"2026-06-02T15:23:44.734Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601849","short":"#601849","relative":"#601849"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:39:42.196Z","description":"<!--IssueSummary start-->\n\n<details>\n<summary>\n\nEveryone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.\n\n</summary>\n\n- [Work on this issue](https://contributors.gitlab.com/manage-issue?action=work&projectId=278964&issueIid=601849)\n\n</details>\n\n<!--IssueSummary end-->\n\n## Summary\n\nThis issue tracks FOSS spec files from\n[`spec/support/rspec_order_todo.yml`](../blob/master/spec/support/rspec_order_todo.yml)\nthat **failed** the `scripts/rspec_check_order_dependence` check while being\nprocessed by AI agents working on https://gitlab.com/gitlab-org/gitlab/-/issues/601848.\n\nEach failing file falls into one of two categories — see below. The category\ndetermines what the AI agent reports and what the human fix looks like.\n\n---\n\n## Failure categories\n\n### Category A — Setup failure\n\n**Definition:** The spec fails even when run in **defined order** (the very\nfirst phase of the check script). This is not an order-dependency problem —\nthe spec itself is broken or relies on missing environment setup.\n\nLook for these signs in the script output:\n- Failure occurs under `\"Running in defined order:\"`\n- Error is `LoadError`, missing constant, missing factory, wrong database state, etc.\n\n**Human fix:** Investigate and fix the spec or its environment prerequisites.\nThis is unrelated to random-order execution.\n\n---\n\n### Category B — Order-dependency failure\n\n**Definition:** The spec passes in defined order but fails in **reverse** or\n**random** order. This is a true order-dependency caused by shared mutable\nstate leaking between examples.\n\nTwo sub-cases:\n\n| Sub-case | Trigger phase | Seed available? |\n|---|---|---|\n| B1 — reverse | `\"Running in reverse order:\"` | No |\n| B2 — random | `\"Running in random order (N/M):\"` | Yes — `Randomized with seed NNNN` |\n\n**`scripts/rspec_check_order_dependence` already runs `rspec --bisect` automatically on failure.** The bisect output ends with a `Rerun with:` line — that is the minimal reproduction command.\n\n---\n\n## For AI agents\n\nWhen `scripts/rspec_check_order_dependence <path>` exits non-zero, capture the\n**full output**, then:\n\n1. **Determine the category** by finding the first failing phase header in the output:\n   - `\"Running in defined order:\"` → **Category A**\n   - `\"Running in reverse order:\"` → **Category B1**\n   - `\"Running in random order\"` → **Category B2** (note the seed on the line `Randomized with seed NNNN`)\n\n2. **For Category B**, extract the bisect result — the line starting with `bin/rspec` after `Bisect complete! Rerun with:`. This is the minimal reproduction command.\n\n3. **Post a comment** on this issue using the format below, then continue to\n   the next candidate. Do **not** attempt to fix the spec yourself.\n\n**Comment format — Category A (setup failure):**\n\n```markdown\n### `spec/path/to/failing_spec.rb` — Category A: Setup failure\n\n- **Batch:** rspec-order-todo-foss-batch-NNN\n- **Failing phase:** defined order\n- **Error summary:** (one line, e.g. \"NameError: uninitialized constant Foo\")\n- **Relevant output:**\n  ```\n  <first failing example + error>\n  ```\n```\n\n**Comment format — Category B (order-dependency):**\n\n```markdown\n### `spec/path/to/failing_spec.rb` — Category B: Order-dependent\n\n- **Batch:** rspec-order-todo-foss-batch-NNN\n- **Sub-case:** B1 (reverse) | B2 (random, seed NNNN)\n- **Reproduction command:**\n  ```shell\n  bin/rspec --bisect [--seed NNNN] spec/path/to/failing_spec.rb\n  ```\n  > **Minimal repro (from bisect):**\n  > ```shell\n  > bin/rspec --seed NNNN spec/path/to/failing_spec.rb[1:X,1:Y]\n  > ```\n- **Likely cause:** (brief description, e.g. \"example [1:X] leaves a mutable `let!` object behind\")\n- **Suggested fix:** (see Suggested fixes section below)\n```\n\n---\n\n## Suggested fixes (for the next agent picking up a Category B item)\n\nUse the minimal bisect repro to identify the **polluting example** (the one\nthat runs before the failing one in the bad order). Then apply the appropriate fix:\n\n| Symptom | Fix |\n|---|---|\n| `let!` or `before` creates a record that is not cleaned up | Wrap in `let` (lazy) or ensure `DatabaseCleaner` strategy covers it |\n| Instance variable or class variable mutated in `before(:all)` | Convert to `before(:each)` or use `around` to reset |\n| Global config changed (e.g. `Gitlab.config`, `Feature` flags, `ENV`) | Use `stub_env` / `stub_feature_flags` / `allow_any_instance_of` scoped to the example |\n| `described_class` or module constant mutated | Freeze or restore with `around { |e| orig = …; e.run; … = orig }` |\n| Shared `subject` or `let` referencing mutable AR object | Add `freeze: false` if using `let_it_be`, or switch to `let` |\n\nAfter applying the fix, verify with:\n\n```shell\nscripts/rspec_check_order_dependence spec/path/to/fixed_spec.rb\n```\n\nIf it passes, the script removes the file from `rspec_order_todo.yml` automatically.\nCommit only `rspec_order_todo.yml` + the fixed spec, and open an MR referencing\nboth this issue and https://gitlab.com/gitlab-org/gitlab/-/issues/601848.\n\n---\n\n## For humans\n\nSame process as for agents — use the bisect repro command from the comment,\nfind the polluting example, apply one of the fixes above. The bisect output\nalready tells you which example indices to look at.\n\nContributes to https://gitlab.com/gitlab-org/gitlab/-/issues/601848","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":0,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191591837,"iid":601848,"epic":{"id":3790944,"iid":19585,"url":"/groups/gitlab-org/-/epics/19585","title":"Run new backend specs in random order","group_id":9970,"human_readable_end_date":"Oct 12, 2025","human_readable_timestamp":"<strong>Past due</strong>"},"type":"ISSUE","state":"opened","title":"Remove FOSS specs from rspec_order_todo so they run in random order","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601848","notes":"https://gitlab.com/api/v4/projects/278964/issues/601848/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601848/award_emoji"},"author":{"id":438961,"name":"Peter Leitzen","state":"active","locked":false,"web_url":"https://gitlab.com/splattael","username":"splattael","avatar_url":"https://secure.gravatar.com/avatar/1770b841bba7c10e32e4a10f69d7b2cbc5d2d225fd1835388bcd4e0689fa6fd6?s=80&d=identicon","public_email":"pleitzen@gitlab.com"},"labels":["backend","devops::developer experience","group::development tooling","maintenance::test-gap","section::developer experience","test","type::maintenance","workflow::ready for development"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601848","epic_iid":19585,"imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":false,"created_at":"2026-06-02T15:19:23.188Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601848","short":"#601848","relative":"#601848"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:40:46.816Z","description":"<!--IssueSummary start-->\n\n<details>\n<summary>\n\nEveryone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.\n\n</summary>\n\n- [Work on this issue](https://contributors.gitlab.com/manage-issue?action=work&projectId=278964&issueIid=601848)\n\n</details>\n\n<!--IssueSummary end-->\n\n## Summary\n\n**5,381 FOSS spec files** are listed in\n[`spec/support/rspec_order_todo.yml`](../blob/master/spec/support/rspec_order_todo.yml)\nand run in **defined order** (`rspec --order defined`) instead of random order.\n\nRunning specs in random order surfaces hidden order-dependencies, reduces\nflakiness, and improves test isolation. The goal is to remove all FOSS entries\nfrom the todo list so every backend spec runs in random order.\n\nTo kick off, give an AI agent the following prompt:\n\n> Work on https://gitlab.com/gitlab-org/gitlab/-/issues/601848\n\nContributes to: https://gitlab.com/groups/gitlab-org/-/work_items/19585\nOriginal issue: https://gitlab.com/gitlab-org/gitlab/-/issues/407877\nOrder-dependent specs needing human attention: https://gitlab.com/gitlab-org/gitlab/-/issues/601849\n\n---\n\n## Agent Guidelines\n\n- **Batch size:** Check up to 50 candidate files per run; target **~25 passing files per MR** (stop once 25 pass, or candidates are exhausted).\n- **FOSS only.** Process only entries starting with `'./spec/'`. Skip `'./ee/spec/'` entries entirely.\n- **Check, don't fix.** Run `scripts/rspec_check_order_dependence` per file. If it **passes**, the script removes the entry from `rspec_order_todo.yml` automatically. If it **fails**, skip it and report it on https://gitlab.com/gitlab-org/gitlab/-/issues/601849.\n- **Conflict-avoidance is the top priority.** Use stride-based file selection (see Step 3) so concurrent MRs' hunks in `rspec_order_todo.yml` do not overlap.\n\n---\n\n## How the check script works\n\n```shell\n# Runs specs in: defined order, reverse order, random order (5x by default).\n# On success: auto-removes the file from spec/support/rspec_order_todo.yml.\n# On failure: exits non-zero; the YAML is NOT modified.\nscripts/rspec_check_order_dependence <path/to/spec_file.rb>\n\n# Increase random runs for higher confidence:\nRANDOM_ORDER_RUNS=10 scripts/rspec_check_order_dependence <path>\n```\n\nRun from the repo root. Requires a working GDK with a test database.\n\n---\n\n## Instructions\n\n### Setup (once per session)\n\n- **Current user ID:** call `get_user` (no args) -> `id`\n- **Current milestone ID:** search `gitlab-org` group milestones for the lowest-version **active** milestone (e.g. `19.1`) -> `id`\n\n### Pre-flight (REQUIRED before every batch)\n\n**Step 0 — Pull master.**\n\n```shell\ngit checkout master && git pull origin master\n```\n\n**Step 1 — Build an exclusion set of already-claimed files.**\n\nUse GitLab MCP `search` (scope: `merge_requests`, project: `gitlab-org/gitlab`) to find all **open** MRs whose title contains `\"rspec_order_todo\"`. For each result call `list_merge_request_diffs` and collect every `old_path` / `new_path` ending in `_spec.rb`. Union into a single **exclusion set**.\n\n**Step 2 — Check for branch-name collisions.**\n\n```shell\ngit ls-remote --heads origin '*rspec-order-todo-foss-batch-*'\n```\n\nNaming convention: `rspec-order-todo-foss-batch-NNN` (zero-padded, e.g. `001`). Pick the next unused number.\n\n**Step 3 — Select candidates with stride-based spread (conflict-avoidance).**\n\nRead `spec/support/rspec_order_todo.yml`. Keep only lines starting with `'./spec/'` (FOSS only). Remove any in the exclusion set. Call this **candidates**.\n\nStride selection:\n\n1. N = number of candidates, B = 50 (files to check this batch).\n2. S = round(N / B).\n3. Pick at indices 0, S, 2S, 3S, ... — advance past excluded entries.\n\nThis distributes each batch's deletion hunks ~S lines apart in the YAML, preventing context-window overlap between concurrent open MRs.\n\n### Per batch\n\n1. **Create branch:**\n   ```shell\n   git checkout -b rspec-order-todo-foss-batch-NNN\n   ```\n\n2. **Check each candidate:**\n   ```shell\n   scripts/rspec_check_order_dependence <path>\n   ```\n   - **Exit 0 (pass):** entry removed from YAML automatically. Add to **passed** list.\n   - **Non-zero (fail):** skip. **Read the instructions in https://gitlab.com/gitlab-org/gitlab/-/issues/601849 first** to determine the failure category (A vs B) and use the comment format defined there. Then post the comment on that issue and continue to the next candidate.\n\n   Stop once **25 files have passed**, or all candidates are exhausted.\n\n3. **Verify the YAML diff:**\n   ```shell\n   git diff spec/support/rspec_order_todo.yml\n   ```\n\n4. **Commit** (only `spec/support/rspec_order_todo.yml` modified):\n   ```\n   Remove N FOSS specs from rspec_order_todo (batch NNN)\n\n   These FOSS spec files pass the defined, reverse, and random-order checks\n   and no longer need to be excluded from random-order execution.\n\n   Contributes to https://gitlab.com/gitlab-org/gitlab/-/issues/601848\n   ```\n   Use the full URL — the commit-msg linter rejects short `#IID` references.\n\n5. **Push:**\n   ```shell\n   LEFTHOOK_EXCLUDE=openapi_docs,rubocop,danger,commit-message-linting \\\n     git push origin rspec-order-todo-foss-batch-NNN\n   ```\n\n6. **Create MR** via GitLab MCP:\n   - `title`: `Remove N FOSS specs from rspec_order_todo (batch NNN)`\n   - `labels`: `pipeline::tier-1`\n   - `squash`: `true`, `remove_source_branch`: `true`\n   - `assignee_ids`: current user ID, `milestone_id`: current milestone ID\n   - `description`:\n     ```markdown\n     ## Summary\n\n     Removes N FOSS spec files from `spec/support/rspec_order_todo.yml` so\n     they run in random order.\n\n     | File | Outcome |\n     |---|---|\n     | `spec/path/to/foo_spec.rb` | passed |\n\n     **Skipped (order-dependent — reported on https://gitlab.com/gitlab-org/gitlab/-/issues/601849):**\n     - `spec/path/to/bar_spec.rb` — failed reverse-order run\n\n     Contributes to https://gitlab.com/gitlab-org/gitlab/-/issues/601848\n     ```\n\n7. **Update this issue** with newly discovered patterns in the Learned Patterns section.\n\n---\n\n## Learned patterns\n\n_None yet. Add findings here as batches are completed._\n\n---\n\n## Definition of Done\n\n- [ ] All `'./spec/'` entries removed from `spec/support/rspec_order_todo.yml`\n- [ ] CI passes for every batch MR\n- [ ] No order-dependent failures introduced on `master`","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":3,"completed_count":0}},{"id":191591714,"iid":601847,"type":"ISSUE","state":"opened","title":"docker push to container registry gives error 500","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601847","notes":"https://gitlab.com/api/v4/projects/278964/issues/601847/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601847/award_emoji"},"author":{"id":5987886,"name":"Frank Ansari","state":"active","locked":false,"web_url":"https://gitlab.com/fnansari","username":"fnansari","avatar_url":"https://secure.gravatar.com/avatar/bef47af39270cd09dea20a118a566a430fe856726b457490598ea69e0184e628?s=80&d=identicon","public_email":""},"labels":["Category:Container Registry","automation:ml","backend","group::container registry","type::bug"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601847","imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"created_at":"2026-06-02T15:18:42.882Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601847","short":"#601847","relative":"#601847"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:10:39.006Z","description":"\n\nAfter updating to version 19.0.1 we had an issue with our docker registry. All attempts to push anything gave error 500. As storage we use a Ceph cluster.\n\n```\nregistry['storage'] = {\n  's3_v2' => {\n    'accesskey' => 'xxx',\n    'secretkey' => 'xxx',\n    'bucket' => 'mybucket',\n    'region' => 'eu-ber-1',\n    'regionendpoint' => 'https://s3.mycompany.com',\n    'pathstyle' => true,\n    'checksum_disabled' => true\n  },\n  'redirect' => {\n    'disable' => false\n  }\n}\n```\n\nWe have fixed this with this setting:\n\n```\n'checksum_disabled' => true\n```","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191590816,"iid":601846,"type":"ISSUE","state":"opened","title":"[FF] `rubygems_error_message_header`","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601846","notes":"https://gitlab.com/api/v4/projects/278964/issues/601846/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601846/award_emoji"},"author":{"id":3983112,"name":"David Fernandez","state":"active","locked":false,"web_url":"https://gitlab.com/10io","username":"10io","avatar_url":"https://secure.gravatar.com/avatar/cb0a8af6da9c60fae5c07d46f671736058d54d0136be74edd924e4b9a30a9fe0?s=80&d=identicon","public_email":"dfernandez@gitlab.com"},"labels":["Category:Package Registry","devops::package","feature flag","feature::enhancement","group::package registry","section::ci","type::feature"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601846","assignee":{"id":3983112,"name":"David Fernandez","state":"active","locked":false,"web_url":"https://gitlab.com/10io","username":"10io","avatar_url":"https://secure.gravatar.com/avatar/cb0a8af6da9c60fae5c07d46f671736058d54d0136be74edd924e4b9a30a9fe0?s=80&d=identicon","public_email":"dfernandez@gitlab.com"},"imported":false,"severity":"UNKNOWN","assignees":[{"id":3983112,"name":"David Fernandez","state":"active","locked":false,"web_url":"https://gitlab.com/10io","username":"10io","avatar_url":"https://secure.gravatar.com/avatar/cb0a8af6da9c60fae5c07d46f671736058d54d0136be74edd924e4b9a30a9fe0?s=80&d=identicon","public_email":"dfernandez@gitlab.com"}],"downvotes":0,"has_tasks":false,"milestone":{"id":490705,"iid":14,"state":"active","title":"Backlog","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/14","group_id":9970,"created_at":"2018-03-22T13:09:23.767Z","updated_at":"2018-10-30T14:56:54.069Z","description":"Issues that we want to do but are not planned right now. Open for contribution from the community."},"created_at":"2026-06-02T15:12:12.274Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601846","short":"#601846","relative":"#601846"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:12:12.274Z","description":"<!-- Title suggestion: [FF] `rubygems_error_message_header` -- <short description> -->\n\n## Summary\n\nThis issue is to roll out [the feature](https://gitlab.com/gitlab-org/gitlab/-/work_items/595492) on production,\nthat is currently behind the `rubygems_error_message_header` feature flag.\n\n## Owners\n\n- Most appropriate Slack channel to reach out to: `#g_package-registry`\n- Best individual to reach out to: @10io\n\n## Expectations\n\n### What are we expecting to happen?\n\nRubyGems clients (`gem install` / `gem fetch`) on **rubygems < 4.0** will display backend error\ndetails via the `X-Error-Message` response header instead of a generic reason phrase.\n\nNote: rubygems 4.x removed `X-Error-Message` handling (no replacement header), so the benefit is\nscoped to older clients. On 4.x the header is simply ignored (harmless). The response body is unchanged.\n\n### What can go wrong and how would we detect it?\n\nCurrent working RubyGems operations could stop working. The change only adds a response header on\nexisting 4xx/5xx error responses (body unchanged), so risk is low. Detect via the package registry\nerror-rate dashboards.\n\n## Rollout Steps\n\nNote: Please make sure to run the chatops commands in the Slack channel that gets impacted by the command.\n\n### Rollout on non-production environments\n\n- Verify the MR with the feature flag is merged to `master` and has been deployed to non-production environments with `/chatops gitlab run auto_deploy status <merge-commit-of-your-feature>`\n<!-- Delete Incremental roll out if it is not relevant to this deploy -->\n- [ ] Deploy the feature flag at a percentage (recommended percentage: 50%) with `/chatops gitlab run feature set rubygems_error_message_header <rollout-percentage> --actors --dev --pre --staging --staging-ref`\n- [ ] Monitor that the error rates did not increase (repeat with a different percentage as necessary).\n<!-- End of block for deletes -->\n- [ ] Enable the feature globally on non-production environments with `/chatops gitlab run feature set rubygems_error_message_header true --dev --pre --staging --staging-ref`\n- [ ] Verify that the feature works as expected.\n      The best environment to validate the feature in is [`staging-canary`](https://about.gitlab.com/handbook/engineering/infrastructure/environments/#staging-canary) as this is the first environment deployed to. Make sure you are [configured to use canary](https://next.gitlab.com/).\n- [ ] If the feature flag causes end-to-end tests to fail, disable the feature flag on staging to avoid blocking [deployments](https://about.gitlab.com/handbook/engineering/deployments-and-releases/deployments/).\n   - See [`#e2e-run-staging` Slack channel](https://gitlab.enterprise.slack.com/archives/CBS3YKMGD) and look for the following messages:\n      - test kicked off: `Feature flag rubygems_error_message_header has been set to true on **gstg**`\n      - test result: `This pipeline was triggered due to toggling of rubygems_error_message_header feature flag`\n\nIf you encounter end-to-end test failures and are unable to diagnose them, you may reach out to the [`#s_developer_experience` Slack channel](https://gitlab.enterprise.slack.com/archives/C07TWBRER7H) for assistance. Note that end-to-end test failures on `staging-ref` [don't block deployments](https://about.gitlab.com/handbook/engineering/infrastructure/environments/staging-ref/#how-to-use-staging-ref).\n\n### Before production rollout\n\n- [ ] If the change is significant and you wanted to announce in [#whats-happening-at-gitlab](https://gitlab.enterprise.slack.com/archives/C0259241C), it best to do it before rollout to `gitlab-org/gitlab-com`.\n\n### Specific rollout on production\n\nFor visibility, all `/chatops` commands that target production must be executed in the [`#production` Slack channel](https://gitlab.slack.com/archives/C101F3796)\nand cross-posted (with the command results) to the responsible team's Slack channel.\n\n- Ensure that the feature MRs have been deployed to both production and canary with `/chatops gitlab run auto_deploy status <merge-commit-of-your-feature>`\n- [ ] Depending on the [type of actor](https://docs.gitlab.com/development/feature_flags/#feature-actors) you are using, pick one of these options:\n  - For **project-actor**: `/chatops gitlab run feature set --project=gitlab-org/gitlab,gitlab-org/gitlab-foss,gitlab-com/www-gitlab-com rubygems_error_message_header true`\n  - For **group-actor**: `/chatops gitlab run feature set --group=gitlab-org,gitlab-com rubygems_error_message_header true`\n  - For **user-actor**: `/chatops gitlab run feature set --user=<gitlab-username-of-dri> rubygems_error_message_header true`\n  - For **all internal users**: `/chatops gitlab run feature set --feature-group=gitlab_team_members rubygems_error_message_header true`\n- [ ] Verify that the feature works for the specific actors.\n\n### Preparation before global rollout\n\n- [ ] Set a milestone to this rollout issue to signal for enabling and removing the feature flag when it is stable.\n- [ ] Check if the feature flag change needs to be accompanied with a\n  [change management issue](https://about.gitlab.com/handbook/engineering/infrastructure-platforms/change-management/#feature-flags-and-the-change-management-process).\n  Cross link the issue here if it does.\n- [ ] Ensure that you or a representative in development can be available for at least 2 hours after feature flag updates in production.\n  If a different developer will be covering, or an exception is needed, please inform the oncall SRE by using the `@sre-oncall` Slack alias.\n- [ ] Ensure that documentation exists for the feature, and the [version history text](https://docs.gitlab.com/development/documentation/feature_flags/#add-history-text) has been updated.\n- [ ] Ensure that any breaking changes have been announced following the [release post process](https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes) to ensure GitLab customers are aware.\n- [ ] Notify the [`#support_gitlab-com` Slack channel](https://gitlab.slack.com/archives/C4XFU81LG) and your team channel ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/development/feature_flags/controls/#communicate-the-change)).\n- [ ] If this flag is or may be queried by external API consumers (for example, IDE extensions, Duo CLI, or CI integrations), follow the [external API consumer guidance](https://docs.gitlab.com/development/feature_flags/#do-not-use-feature-flags-in-external-api-consumers) and ensure a fail-open mechanism is in place before the rollout milestone is finalised.\n\n### Global rollout on production\n\nFor visibility, all `/chatops` commands that target production must be executed in the [`#production` Slack channel](https://gitlab.slack.com/archives/C101F3796)\nand cross-posted (with the command results) to the responsible team's Slack channel.\n\n- [ ] [Incrementally roll out](https://docs.gitlab.com/development/feature_flags/controls/#process) the feature on production.\n  - Example: `/chatops gitlab run feature set rubygems_error_message_header <rollout-percentage> --actors`.\n  - Between every step wait for at least 15 minutes and monitor the appropriate graphs on https://dashboards.gitlab.net.\n- [ ] After the feature has been 100% enabled, wait for [at least one day before releasing the feature](#release-the-feature).\n\n### (Optional) Release the feature with the feature flag\n\n**WARNING:** This approach has the downside that it makes it difficult for us to\n[clean up](https://docs.gitlab.com/development/feature_flags/controls/#cleaning-up) the flag.\nFor example, on-premise users could disable the feature on their GitLab instance. But when you\nremove the flag at some point, they suddenly see the feature as enabled and they can't roll it back\nto the previous behavior. To avoid this potential breaking change, use this approach only for urgent\nmatters.\n\n<details><summary>See instructions if you're sure about enabling the feature globally through the feature flag definition</summary>\n\nIf you're still unsure whether the feature is [deemed stable](https://about.gitlab.com/handbook/product-development-flow/feature-flag-lifecycle/#including-a-feature-behind-feature-flag-in-the-final-release)\nbut want to release it in the current milestone, you can change the default state of the feature flag to be enabled.\nTo do so, follow these steps:\n\n- [ ] Create a merge request with the following changes.\n    - [ ] If feature was enabled for various actors, ensure the feature has been enabled globally on production `/chatops gitlab run feature get rubygems_error_message_header`. If the feature has not been globally enabled then enable the feature globally using: `/chatops gitlab run feature set rubygems_error_message_header true`\n    - [ ] Set the `default_enabled` attribute in [the feature flag definition](https://docs.gitlab.com/development/feature_flags/#feature-flag-definition-and-validation) to `true`.\n    - [ ] Decide [which changelog entry](https://docs.gitlab.com/development/feature_flags/#changelog) is needed.\n- [ ] Ensure that the default-enabling MR has been included in the release package.\n      If the merge request was deployed before [the monthly release was tagged](https://about.gitlab.com/handbook/engineering/releases/#self-managed-releases-1),\n      the feature can be officially announced in a release blog post: `/chatops gitlab run release check <merge-request-url> <milestone>`\n- [ ] After the default-enabling MR has been deployed, clean up the feature flag from all environments by running these chatops command in the `#production` channel: `/chatops gitlab run feature delete rubygems_error_message_header --dev --pre --staging --staging-ref --production`\n- [ ] Close [the feature issue](<feature-issue-link>) to indicate the feature will be released in the current milestone.\n- [ ] Set the next milestone to this rollout issue for scheduling [the flag removal](#release-the-feature).\n- [ ] (Optional) You can [create a separate issue](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Feature%20Flag%20Cleanup) for scheduling the steps below to [Release the feature](#release-the-feature).\n    - [ ] Set the title to \"[FF] `rubygems_error_message_header` - Cleanup\".\n    - [ ] Execute the `/copy_metadata <this-rollout-issue-link>` quick action to copy the labels from this rollout issue.\n    - [ ] Link this rollout issue as a related issue.\n    - [ ] Close this rollout issue.\n\n</details>\n\n### Release the feature\n\nAfter the feature has been [deemed stable](https://about.gitlab.com/handbook/product-development-flow/feature-flag-lifecycle/#including-a-feature-behind-feature-flag-in-the-final-release),\nthe [clean up](https://docs.gitlab.com/development/feature_flags/controls/#cleaning-up)\nshould be done as soon as possible to permanently enable the feature and reduce\ncomplexity in the codebase.\n\nYou can either [create a follow-up issue for Feature Flag Cleanup](https://gitlab.com/gitlab-org/gitlab/-/issues/new?issuable_template=Feature%20Flag%20Cleanup)\nor use the checklist below in this same issue.\n\n<!-- The checklist here is to help stakeholders keep track of the feature flag status -->\n- [ ] Create a merge request to remove the `rubygems_error_message_header` feature flag. Ask for review/approval/merge as usual. The MR should include the following changes:\n    - Remove all references to the feature flag from the codebase.\n    - Remove the YAML definitions for the feature from the repository.\n- [ ] Ensure that the cleanup MR has been included in the release package.\n      If the merge request was deployed before [the monthly release was tagged](https://about.gitlab.com/handbook/engineering/releases/#self-managed-releases-1),\n      the feature can be officially announced in a release blog post: `/chatops gitlab run release check <merge-request-url> <milestone>`\n- [ ] Close [the feature issue](<feature-issue-link>) to indicate the feature will be released in the current milestone.\n- [ ] Once the cleanup MR has been deployed to production, clean up the feature flag from all environments by running these chatops command in `#production` channel: `/chatops gitlab run feature delete rubygems_error_message_header --dev --pre --staging --staging-ref --production`\n- [ ] Close this rollout issue.\n\n## Rollback Steps\n\n- [ ] This feature can be disabled on production by running the following Chatops command:\n\n```\n/chatops gitlab run feature set rubygems_error_message_header false\n```\n\n- [ ] Disable the feature flag on non-production environments:\n\n```\n/chatops gitlab run feature set rubygems_error_message_header false --dev --pre --staging --staging-ref\n```\n\n- [ ] Delete feature flag from all environments:\n\n```\n/chatops gitlab run feature delete rubygems_error_message_header --dev --pre --staging --staging-ref --production\n```\n\n<!-- Uncomment the appropriate type label\n/label ~\"type::maintenance\"\n/label ~\"type::bug\"\n-->","confidential":false,"imported_from":"none","user_notes_count":0,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":38,"completed_count":0}},{"id":191590412,"iid":601845,"type":"ISSUE","state":"opened","title":"Docs: Script \"Registry Disk Space Usage by Project\" does not handle tag.layers being nil","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601845","notes":"https://gitlab.com/api/v4/projects/278964/issues/601845/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601845/award_emoji"},"author":{"id":38201643,"name":"Jan Philipp Bittner","state":"active","locked":false,"web_url":"https://gitlab.com/lur2571","username":"lur2571","avatar_url":"https://secure.gravatar.com/avatar/6709f547469ff9142d6cefe07f5a279cdb2389bfcb97a11691357ff7cd6d37d8?s=80&d=identicon"},"labels":["automation:ml","documentation","type::bug"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601845","imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":false,"created_at":"2026-06-02T15:06:48.190Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601845","short":"#601845","relative":"#601845"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:10:38.839Z","description":"<!--IssueSummary start-->\n\n<details>\n<summary>\n\nEveryone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.\n\n</summary>\n\n- [Label this issue](https://contributors.gitlab.com/manage-issue?action=label&projectId=278964&issueIid=601845)\n\n</details>\n\n<!--IssueSummary end-->\n\n- [x] Start this issue's title with `Docs:` or `Docs feedback:`.\n\n## Problem to solve\n\n* find the disk space used by each project\n* [Official Docs - Registry Disk Space Usage by Project](https://docs.gitlab.com/administration/packages/container_registry/#registry-disk-space-usage-by-project)\n* tag.layers maybe nil. This is not handled by the script.\n\n## Proposal\n\n* Handle tag.layers\n* Fixed Code:\n\n```ruby\nprojects_and_size = [[\"project_id\", \"creator_id\", \"registry_size_bytes\", \"project path\"]]\n# You need to specify the projects that you want to look through. You can get these in any manner.\nprojects = Project.last(10000)\n\nregistry_metadata_database = ContainerRegistry::GitlabApiClient.supports_gitlab_api?\n\nif registry_metadata_database\n  projects.each do |project|\n    size = project.container_repositories_size\n    if size > 0\n      projects_and_size << [project.project_id, project.creator&.id, size, project.full_path]\n    end\n  end\nelse\n  projects.each do |project|\n    project_layers = {}\n\n    project.container_repositories.each do |repository|\n      repository.tags.each do |tag|\n        unless tag.layers.nil?\n          tag.layers.each do |layer|\n            project_layers[layer.digest] ||= layer.size\n          end\n        end\n      end\n    end\n\n    total_size = project_layers.values.compact.sum\n    if total_size > 0\n      projects_and_size << [project.project_id, project.creator&.id, total_size, project.full_path]\n    end\n  end\nend\n\n# print it as comma separated output\nprojects_and_size.each do |ps|\n   puts \"%s,%s,%s,%s\" % ps\nend\n```\n\n## Who can address the issue\n\nGitLab Docs Maintainer","confidential":false,"imported_from":"none","user_notes_count":2,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":1,"completed_count":1}},{"id":191589816,"iid":601844,"type":"ISSUE","state":"opened","title":"Custom work items not appearing in user's work item list","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601844","notes":"https://gitlab.com/api/v4/projects/278964/issues/601844/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601844/award_emoji"},"author":{"id":31564656,"name":"Joel Feiner","state":"active","locked":false,"web_url":"https://gitlab.com/jfeinervega","username":"jfeinervega","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/31564656/avatar.png","public_email":""},"labels":["automation:ml","bug::functional","type::bug"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601844","imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"created_at":"2026-06-02T14:54:40.957Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601844","short":"#601844","relative":"#601844"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:10:49.843Z","description":"<!--IssueSummary start-->\n\n<details>\n<summary>\n\nEveryone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.\n\n</summary>\n\n- [Label this issue](https://contributors.gitlab.com/manage-issue?action=label&projectId=278964&issueIid=601844)\n\n</details>\n\n<!--IssueSummary end-->\n\n<!---\nPlease read this!\n\nBefore opening a new issue, make sure to search for keywords in the issues\nfiltered by the \"regression\" or \"type::bug\" label:\n\n- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=regression\n- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=type::bug\n\nand verify the issue you're about to submit isn't a duplicate.\n--->\n\n### Summary\n\nIn the user's work item list (available from the upper right in the top bar), custom work items do not appear, only issues and epics.\n\n### Steps to reproduce\n\n1. Create a custom work item type for a group.\n2. Create a work item of the type and assignee it to the current user.\n3. Go to the user work item page and observe it is not present.\n\n### Example Project\n\n<!--If possible, please create an example project here on GitLab.com that exhibits the problematic \nbehavior, and link to it here in the bug report. If you are using an older version of GitLab, this \nwill also determine whether the bug is fixed in a more recent version.-->\n\n### What is the current _bug_ behavior?\n\nWork items with custom types do not appear at all.\n\n### What is the expected _correct_ behavior?\n\nWork items with custom types would appear, regardless of whether these custom types are scoped to only some groups or subgroups.\n\n### Relevant logs and/or screenshots\n\n<!--Paste any relevant logs - please use code blocks (```) to format console output, logs, and code\n as it's tough to read otherwise.-->\n\n### Output of checks\n\n<!--If you are reporting a bug on GitLab.com, uncomment below-->\n\nThis bug happens on GitLab.com\n\n<!--and uncomment below if you have /label privileges-->\n\n<!--/label ~\"reproduced on GitLab.com\"-->\n\n<!--or follow up with an issue comment of `@gitlab-bot label ~\"reproduced on GitLab.com\"` if you do not-->\n\n#### Results of GitLab environment info\n\n<!--Input any relevant GitLab environment information if needed.-->\n\n<details>\n<summary>Expand for output related to GitLab environment info</summary>\n\n<pre>\n\n(For installations with omnibus-gitlab package run and paste the output of: \\`sudo gitlab-rake gitlab:env:info\\`)  (For installations from source run and paste the output of: \\`sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production\\`)  \n</pre>\n</details>\n\n#### Results of GitLab application Check\n\n<!--Input any relevant GitLab application check information if needed.-->\n\n<details>\n<summary>Expand for output related to the GitLab application check</summary>\n\n<pre>\n\n(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:check SANITIZE=true`)\n\n(For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true`)\n\n(we will only investigate if the tests are passing)\n\n</pre>\n</details>\n\n### Possible fixes\n\n<!--If you can, link to the line of code that might be responsible for the problem.-->\n\n### Patch release information for backports\n\nIf the bug fix needs to be backported in a [patch release](https://handbook.gitlab.com/handbook/engineering/releases/patch-releases) to a version under [the maintenance policy](https://docs.gitlab.com/policy/maintenance/), please follow the steps on the [patch release runbook for GitLab engineers](https://gitlab.com/gitlab-org/release/docs/-/blob/master/general/patch/engineers.md).\n\nRefer to the [internal \"Release Information\" dashboard](https://dashboards.gitlab.net/d/delivery-release_info/delivery3a-release-information?orgId=1) for information about the next patch release, including the targeted versions, expected release date, and current status.\n\n#### High-severity bug remediation\n\nTo remediate high-severity issues requiring an [internal release](https://handbook.gitlab.com/handbook/engineering/releases/internal-releases/) for single-tenant SaaS instances, refer to the [internal release process for engineers](https://gitlab.com/gitlab-org/release/docs/-/blob/master/general/internal-releases/engineers.md?ref_type=heads).\n\n<!--If you don't have /label privileges, follow up with an issue comment of `@gitlab-bot label ~\"type::bug\"`-->","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191588664,"iid":601843,"epic":{"id":5137380,"iid":21997,"url":"/groups/gitlab-org/-/epics/21997","title":"Event Triggers","group_id":9970,"human_readable_end_date":"Jun 12, 2026","human_readable_timestamp":"<strong>10</strong> days remaining"},"type":"ISSUE","state":"opened","title":"Define a consistent naming convention for flow trigger event types","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601843","notes":"https://gitlab.com/api/v4/projects/278964/issues/601843/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601843/award_emoji"},"author":{"id":22430838,"name":"Shola Quadri","state":"active","locked":false,"web_url":"https://gitlab.com/squadri","username":"squadri","avatar_url":"https://secure.gravatar.com/avatar/a42c85eb9e3c2f56e2212e6ffbd1253f1c20547023108bdc0403de6d56551ac6?s=80&d=identicon","public_email":""},"labels":["backend","devops::ai-powered","group::ai coding","section::ai","type::feature"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601843","epic_iid":21997,"imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":false,"milestone":{"id":1212252,"iid":48,"state":"active","title":"Next 1-3 releases","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/48","group_id":9970,"created_at":"2020-03-26T20:39:10.889Z","updated_at":"2020-03-26T20:39:10.889Z","description":"Issues which are not quite ready to schedule, but should be considered as part of the near-term roadmap."},"created_at":"2026-06-02T14:40:56.574Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601843","short":"#601843","relative":"#601843"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T14:46:24.239Z","description":"[Discussion link](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081#note_3406949583)\n\n> This list is becoming problematic IMO as it doesn't follow any convention. It mixes various types of events:\n\n> * `mention/assign` is used across multiple entities\n> * `pipeline_hooks` uses a different naming convention, making it unclear what it means\n> * `merge_request_*` are specific but we also introduced `merge_request`\n\n> What is the ultimate convention we should use and how can we align the existing events to that?\n\n### Problem\n\nThe current list of [flow trigger event types](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/models/ai/flow_trigger.rb#L13) is becoming problematic as it doesn't follow a consistent convention. It mixes several different types and naming patterns:\n\n- mention/assign are used across multiple entities, with no entity distinction\n- pipeline_hooks uses a different naming convention, making its meaning unclear\n- merge_request_* events are entity-specific, but we've also introduced a separate merge_request type in [this MR](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081).\n\nThis inconsistency makes the system harder to understand, maintain, and scale as more triggers are added.\n\n### Proposal\n\nAdopt an `entity.action` convention, where the entity is the top level key and the action is the filter. \n\nFor example:\n\n| Entity | Filter |\n| ------ | ------ |\n| merge_request | { action: in [approved, unapproved, ready, conflict, etc.] } |\n| work_item | { action: in [created, status_changed, etc.] } |\n\n\n### Benefits\n\n- Clean and consistent\n- Scales well as new events are added\n- Aligns with the existing CloudEvent pattern (`event_category` vs. `event_type`)\n\n### Considerations\n\n- Would require migrating all existing event types\n- `mention` and `assign` may need to be split per entity (e.g., mention on an MR vs. mention on a work item)\n\n### Alternatives considered\n\n- Individual enums per event: doesn't scale well\n- Hybrid approach (current state): mixes conventions and creates the inconsistency described above\n\n### Definition of Done\n\n- [ ] Naming convention agreed upon\n- [ ] Migration plan defined for existing event types\n- [ ] Approach decided for splitting mention/assign per entity\n- [ ] Documentation updated to reflect the convention\n\n### Related\n\n1. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081+\n2. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081#note_3411546267\n3. https://gitlab.com/gitlab-org/gitlab/-/work_items/592456#note_3334156523","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":4,"completed_count":0}},{"id":191588605,"iid":601842,"type":"ISSUE","state":"opened","title":"Too many results to display shown even though only 20 per page","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601842","notes":"https://gitlab.com/api/v4/projects/278964/issues/601842/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601842/award_emoji"},"author":{"id":3494303,"name":"Peter Belbin","state":"active","locked":false,"web_url":"https://gitlab.com/PeterBelbin","username":"PeterBelbin","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3494303/avatar.png","public_email":""},"labels":["automation:ml","type::bug"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601842","imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"created_at":"2026-06-02T14:39:42.729Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601842","short":"#601842","relative":"#601842"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:11:01.101Z","description":"<!--IssueSummary start-->\n\n<details>\n<summary>\n\nEveryone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.\n\n</summary>\n\n- [Label this issue](https://contributors.gitlab.com/manage-issue?action=label&projectId=278964&issueIid=601842)\n\n</details>\n\n<!--IssueSummary end-->\n\nVisiting the 'Merge requests' page on a project with a large number of merged items (page is showing 999+) as the number, and choosing the 'Merged' option, the page tries, but ends up showing a 'Too many results to display' message, even though there are only supposed to be 20 results shown on the page.\n\nI just want to see the most recent 20 merge requests, and the system has a ton of them, but it's refusing to show any.\n\nSomething has to be broken.\n\nThe page URL has the following parameters:\n\n`?sort=merged_at_desc&state=merged&first_page_size=20`\n\nPretty simple ask, but it's failing.\n\nOne other thing: \n\nOn an individual project, this seems to be working, but, not when sitting at an organizational level where multiple projects are within the org.","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191588233,"iid":601840,"epic":{"id":3705851,"iid":18681,"url":"/groups/gitlab-org/-/epics/18681","title":"Dependencies across multiple branches - Iteration 1 (MVP)","group_id":9970,"human_readable_end_date":"Jun 12, 2026","human_readable_timestamp":"<strong>10</strong> days remaining"},"type":"ISSUE","state":"opened","title":"[FE] Display tracked refs column in project dependency list","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601840","notes":"https://gitlab.com/api/v4/projects/278964/issues/601840/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601840/award_emoji"},"author":{"id":3993566,"name":"Samantha Ming","state":"active","locked":false,"web_url":"https://gitlab.com/sming-gitlab","username":"sming-gitlab","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3993566/avatar.png","public_email":""},"labels":["devops::security risk management","frontend","group::security insights","section::sec","type::feature"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601840","assignee":{"id":3993566,"name":"Samantha Ming","state":"active","locked":false,"web_url":"https://gitlab.com/sming-gitlab","username":"sming-gitlab","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3993566/avatar.png","public_email":""},"epic_iid":18681,"imported":false,"severity":"UNKNOWN","assignees":[{"id":3993566,"name":"Samantha Ming","state":"active","locked":false,"web_url":"https://gitlab.com/sming-gitlab","username":"sming-gitlab","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3993566/avatar.png","public_email":""}],"downvotes":0,"has_tasks":true,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"created_at":"2026-06-02T14:33:35.727Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601840","short":"#601840","relative":"#601840"},"time_stats":{"time_estimate":86400,"total_time_spent":0,"human_time_estimate":"24h"},"updated_at":"2026-06-02T14:43:57.758Z","description":"\n\n## Summary\n\nAdd a new \"Refs\" column to the project dependency list table to display which tracked refs (branches) a dependency appears in.\n\n## Context\n\n- Spike issue: https://gitlab.com/gitlab-org/gitlab/-/work_items/599746\n- FE implementation thread: https://gitlab.com/gitlab-org/gitlab/-/work_items/599746#note_3410397216\n- Design confirmation: https://gitlab.com/gitlab-org/gitlab/-/work_items/599746#note_3388260696\n- BE issue for adding `trackedRef` field to response: https://gitlab.com/gitlab-org/gitlab/-/work_items/599508\n- Parent epic: https://gitlab.com/groups/gitlab-org/-/work_items/18681\n\n## Design\n\nAt the project level there is no \"Projects\" column, so the refs column stands alone. The design shows a ref badge/dropdown per dependency row:\n\n![image](/uploads/230e6ff9e489e79868803e3e6969e691/image.png){width=900 height=492}\n\n(From designer confirmation: https://gitlab.com/gitlab-org/gitlab/-/work_items/599746#note_3388260696)\n\n## What needs to happen\n\n1. **Add a new `refs` field** to the `projectFields` array in `dependencies_table.vue`.\n2. **Add a new table cell template** (`#cell(refs)`) to render the tracked ref name(s) for each dependency.\n3. **Add i18n string** for the column header in `constants.js`.\n4. **Gate behind feature flags** `securityDashboardTrackedRefFilter` and `vulnerabilitiesAcrossContexts`.\n5. **Update `project_dependencies.query.graphql`** to request the `trackedRef` field once the BE adds it (https://gitlab.com/gitlab-org/gitlab/-/work_items/599508).\n\n## Notes\n\n- The column can be added to the UI now (it will show empty/null until the BE adds the `trackedRef` field to the GraphQL response).\n- The BE work is blocked by https://gitlab.com/gitlab-org/gitlab/-/work_items/597932.\n- Follow existing column patterns in `dependencies_table.vue`.","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":0,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191588232,"iid":601839,"epic":{"id":3705851,"iid":18681,"url":"/groups/gitlab-org/-/epics/18681","title":"Dependencies across multiple branches - Iteration 1 (MVP)","group_id":9970,"human_readable_end_date":"Jun 12, 2026","human_readable_timestamp":"<strong>10</strong> days remaining"},"type":"ISSUE","state":"opened","title":"[FE] Add tracked refs filter to project dependency list","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601839","notes":"https://gitlab.com/api/v4/projects/278964/issues/601839/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601839/award_emoji"},"author":{"id":3993566,"name":"Samantha Ming","state":"active","locked":false,"web_url":"https://gitlab.com/sming-gitlab","username":"sming-gitlab","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3993566/avatar.png","public_email":""},"labels":["devops::security risk management","frontend","group::security insights","section::sec","type::feature"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601839","assignee":{"id":3993566,"name":"Samantha Ming","state":"active","locked":false,"web_url":"https://gitlab.com/sming-gitlab","username":"sming-gitlab","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3993566/avatar.png","public_email":""},"epic_iid":18681,"imported":false,"severity":"UNKNOWN","assignees":[{"id":3993566,"name":"Samantha Ming","state":"active","locked":false,"web_url":"https://gitlab.com/sming-gitlab","username":"sming-gitlab","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3993566/avatar.png","public_email":""}],"downvotes":0,"has_tasks":true,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"created_at":"2026-06-02T14:33:34.637Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601839","short":"#601839","relative":"#601839"},"time_stats":{"time_estimate":86400,"total_time_spent":0,"human_time_estimate":"24h"},"updated_at":"2026-06-02T14:44:05.790Z","description":"\n\n## Summary\n\nHook up the `securityTrackedRefs` query to populate a filter dropdown on the project dependency list, and pass selected values as `trackedRefIds` / `trackedRefsScope` to the `getProjectDependencies` query.\n\n## Context\n\n- Spike issue: https://gitlab.com/gitlab-org/gitlab/-/work_items/599746\n- FE implementation thread: https://gitlab.com/gitlab-org/gitlab/-/work_items/599746#note_3410397216\n- BE MR (GraphQL schema with `trackedRefIds` / `trackedRefsScope` arguments): https://gitlab.com/gitlab-org/gitlab/-/merge_requests/234558\n- Parent epic: https://gitlab.com/groups/gitlab-org/-/work_items/18681\n\n## What needs to happen\n\n1. **Create a new `tracked_ref` filter token** in `project_dependencies_filtered_search.vue`, gated behind the `securityDashboardTrackedRefFilter` and `vulnerabilitiesAcrossContexts` feature flags.\n2. **Fetch the tracked refs list** using the existing `securityTrackedRefs` GraphQL query:\n   ```graphql\n   query {\n     project(fullPath: $fullPath) {\n       securityTrackedRefs(state: TRACKED) {\n         nodes {\n           id\n           name\n           refType\n           isDefault\n         }\n       }\n     }\n   }\n   ```\n3. **Pass selected values** as `trackedRefIds` and/or `trackedRefsScope` variables to the `getProjectDependencies` query.\n4. **Update `project_dependencies.query.graphql`** to accept the new `trackedRefIds` / `trackedRefsScope` arguments (the BE schema already supports them).\n5. **Wire up the filter** through the Vuex store (`buildGraphQLFilterOptions` in `actions.js`).\n\n## Notes\n\n- The BE schema already accepts the arguments, but the actual filtering logic will land in a separate BE MR. The FE plumbing can be ready ahead of that.\n- Follow existing filter token patterns (e.g., `component_token.vue`, `version_token.vue`).","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":0,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191588202,"iid":601838,"epic":{"id":5059944,"iid":21433,"url":"/groups/gitlab-org/-/epics/21433","title":"Add ability to delete an Organization","group_id":9970,"human_readable_end_date":"Jun 12, 2026","human_readable_timestamp":"<strong>10</strong> days remaining"},"type":"ISSUE","state":"opened","title":"Convert ai_usage_events.organization_id FK to a loose foreign key","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601838","notes":"https://gitlab.com/api/v4/projects/278964/issues/601838/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601838/award_emoji"},"author":{"id":128633,"name":"Rémy Coutable","state":"active","locked":false,"web_url":"https://gitlab.com/rymai","username":"rymai","avatar_url":"https://secure.gravatar.com/avatar/bc29098638f975e3a92a25321a047831f2f2e5e97be1c44b4e1446c8e87e17f2?s=80&d=identicon","public_email":""},"labels":["Category:Organization","database","devops::tenant scale","group::organizations","maintenance::performance","section::tenant scale","type::maintenance","workflow::in dev"],"weight":2,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601838","assignee":{"id":128633,"name":"Rémy Coutable","state":"active","locked":false,"web_url":"https://gitlab.com/rymai","username":"rymai","avatar_url":"https://secure.gravatar.com/avatar/bc29098638f975e3a92a25321a047831f2f2e5e97be1c44b4e1446c8e87e17f2?s=80&d=identicon","public_email":""},"epic_iid":21433,"imported":false,"severity":"UNKNOWN","assignees":[{"id":128633,"name":"Rémy Coutable","state":"active","locked":false,"web_url":"https://gitlab.com/rymai","username":"rymai","avatar_url":"https://secure.gravatar.com/avatar/bc29098638f975e3a92a25321a047831f2f2e5e97be1c44b4e1446c8e87e17f2?s=80&d=identicon","public_email":""}],"downvotes":0,"has_tasks":true,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"created_at":"2026-06-02T14:32:58.023Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601838","short":"#601838","relative":"#601838"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T14:56:01.396Z","description":"<!--IssueSummary start-->\n\n<details>\n<summary>\n\nEveryone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.\n\n</summary>\n\n- [Label this issue](https://contributors.gitlab.com/manage-issue?action=label&projectId=278964&issueIid=601838)\n\n</details>\n\n<!--IssueSummary end-->\n\n## Context\n\nThis descends from the audit in #601743 of foreign keys referencing `organizations(id)` for `Organizations::HardDeleteService`. During review of !238711, `@rutgerwessels` raised that a single-transaction `ON DELETE CASCADE` of AI-usage data during organization hard-deletion is risky.\n\nInvestigation refined the target:\n\n- **`ai_code_suggestion_events` is out of scope** — it's `table_size: small`, marked \"Scheduled for removal!\", and is being dropped by !235394. No action needed there.\n- The table that actually matters is **`ai_usage_events`** (`Ai::UsageEvent`), the unified going-forward table. It currently has `fk_rails_852725a860 … ON DELETE CASCADE` on `organization_id`.\n\n### Why a loose foreign key\n\n`ai_usage_events` stores **one row per AI usage event** (code-suggestion shown/accepted/rejected per IDE event, every Duo Chat message, code-review actions, etc.). The upsert dedup key `(namespace_id, user_id, event, timestamp)` floors `timestamp` only to milliseconds (`ee/app/models/ai/usage_event.rb#L83-88`), so it dedups essentially nothing. Rows are buffered in Redis and flushed to PG every 5 minutes by `UsageEvents::DumpWriteBufferCronWorker`, and retained for 3 months (monthly partitions, `retain_for: 3.months`).\n\nIt is `table_size: small` today but sits in GitLab's fastest-growing area, so a large organization can accumulate a substantial 90-day backlog. A batched loose foreign key avoids a large single-transaction cascade at hard-deletion time and is the future-proof choice.\n\n### Why this is low-cost\n\n- Same-schema LFK is permitted and common — `organizations` is already an LFK parent for `organization_users`, `fork_networks`, `ci_runner_machines`, etc. (all `gitlab_main_org`).\n- The `organizations` deletion-tracking trigger **already exists** (`organizations_loose_fk_trigger`) — no trigger migration needed.\n- Partitioned child tables are handled automatically (`LooseForeignKeys::BatchCleanerService` → `PartitionCleanerService`); no special YAML key.\n- The required index `index_ai_usage_events_on_organization_id` exists.\n- `organization_id` is `NOT NULL` ⇒ strategy must be `async_delete` (nullify impossible).\n- `Ai::UsageEvent` has a model and an `:ai_usage_event` factory ⇒ clean cleanup spec.\n\nThis is a standalone CASCADE→LFK swap (master already has the CASCADE FK; !238711 does not touch this table).\n\n## Proposal\n\nMirror the existing `ai_audit_events` LFK conversion (commit `76b4d47c49b3`).\n\n1. **Post-deploy migration** `db/post_migrate/<ts>_remove_ai_usage_events_organization_id_fk.rb` — `remove_partitioned_foreign_key :ai_usage_events, column: :organization_id` (include `Gitlab::Database::PartitioningMigrationHelpers`, `disable_ddl_transaction!`, `milestone '19.1'`). `down` re-adds the `ON DELETE CASCADE` partitioned FK.\n2. **`config/gitlab_loose_foreign_keys.yml`** — add (alphabetically among `ai_*` keys):\n   ```yaml\n   ai_usage_events:\n     - table: organizations\n       column: organization_id\n       on_delete: async_delete\n   ```\n   Omit `worker_class` (all `organizations`-parent definitions use the default `LooseForeignKeys::CleanupWorker`).\n3. **`spec/db/schema_spec.rb`** — add `organization_id` to the existing `ai_usage_events` entry in `ignored_fk_columns_map`.\n4. **`ee/spec/models/ai/usage_event_spec.rb`** — add `it_behaves_like 'cleanup by a loose foreign key'` with `parent = create(:organization)` and `model = create(:ai_usage_event, organization: parent)`.\n\n## Verification\n\n- `rails db:migrate` then `git diff db/structure.sql` shows only the removal of `ai_usage_events … fk_rails_852725a860 … ON DELETE CASCADE`; `db:rollback` restores it.\n- `rspec spec/lib/gitlab/database/loose_foreign_keys_spec.rb spec/db/schema_spec.rb ee/spec/models/ai/usage_event_spec.rb`.\n- Manual: create an org + `Ai::UsageEvent`, `organization.destroy!`, run `LooseForeignKeys::CleanupWorker.new.perform`, confirm the event row is deleted.\n\n## Notes\n\n- **Timing:** post-deploy migrations were paused for the soft PCL until **June 3rd** (per the !238711 thread) — merge on/after June 3.\n- **Eventual consistency:** between `organization.destroy!` and the LFK worker run, child rows briefly remain with a dangling `organization_id`. Acceptable for analytics rows; the trigger guarantees they are enqueued.\n- The `users.organization_id` cross-database LFK remains a separate follow-up from the original #601743 audit.\n\n/cc `@rutgerwessels`","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191587728,"iid":601836,"epic":{"id":5164182,"iid":22200,"url":"/groups/gitlab-org/-/epics/22200","title":"GitLab monorepo AI Harness","group_id":9970,"human_readable_end_date":"Jun 12, 2026","human_readable_timestamp":"<strong>10</strong> days remaining"},"type":"ISSUE","state":"opened","title":"Add the `glab` skill to improve local work with glab","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601836","notes":"https://gitlab.com/api/v4/projects/278964/issues/601836/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601836/award_emoji"},"author":{"id":3199302,"name":"Denys Mishunov","state":"active","locked":false,"web_url":"https://gitlab.com/dmishunov","username":"dmishunov","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3199302/avatar.png","public_email":"dmishunov@gitlab.com"},"labels":["automation:ml","configuration files","devops::ai-powered","feature::enhancement","section::ai","type::feature"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601836","assignee":{"id":5054237,"name":"Dmitry Gruzd","state":"active","locked":false,"web_url":"https://gitlab.com/dgruzd","username":"dgruzd","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/5054237/avatar.png","public_email":"dgruzd@gitlab.com"},"epic_iid":22200,"imported":false,"severity":"UNKNOWN","assignees":[{"id":5054237,"name":"Dmitry Gruzd","state":"active","locked":false,"web_url":"https://gitlab.com/dgruzd","username":"dgruzd","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/5054237/avatar.png","public_email":"dgruzd@gitlab.com"}],"downvotes":0,"has_tasks":true,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"created_at":"2026-06-02T14:25:45.208Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601836","short":"#601836","relative":"#601836"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:51:08.802Z","description":"<!--IssueSummary start-->\n\n<details>\n<summary>\n\nEveryone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.\n\n</summary>\n\n- [Label this issue](https://contributors.gitlab.com/manage-issue?action=label&projectId=278964&issueIid=601836)\n\n</details>\n\n<!--IssueSummary end-->\n\n[The ai/skills project](https://gitlab.com/gitlab-org/ai/skills) introduced a very useful `glab` skill allowing to improve agentic work with `glab` tool.\n\nThis issue suggests to move that skill into the monolith for the benefit of anybody working with `glab` locally in the agentic setup","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":3,"merge_requests_count":1,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191587704,"iid":601835,"type":"ISSUE","state":"opened","title":"GitLab monorepo skills","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601835","notes":"https://gitlab.com/api/v4/projects/278964/issues/601835/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601835/award_emoji"},"author":{"id":3199302,"name":"Denys Mishunov","state":"active","locked":false,"web_url":"https://gitlab.com/dmishunov","username":"dmishunov","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3199302/avatar.png","public_email":"dmishunov@gitlab.com"},"labels":["automation:ml"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601835","imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"created_at":"2026-06-02T14:25:17.844Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601835","short":"#601835","relative":"#601835"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:11:20.595Z","description":"<!--IssueSummary start-->\n\n<details>\n<summary>\n\nEveryone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.\n\n</summary>\n\n- [Label this issue](https://contributors.gitlab.com/manage-issue?action=label&projectId=278964&issueIid=601835)\n\n</details>\n\n<!--IssueSummary end-->\n\nBefore raising an issue to the GitLab issue tracker, please read through our guide for finding help to determine the best place to post:\n\n* https://about.gitlab.com/getting-help/\n\nIf you are experiencing an issue when using GitLab.com, your first port of call should be the Community Forum. Your issue may have already been reported there by another user. Please check:\n\n* https://forum.gitlab.com/\n\nIf you feel that your issue can be categorized as a reproducible bug or a feature proposal, please use one of the issue templates provided and include as much information as possible.\n\nThank you for helping to make GitLab a better product.\n\n<!-- template sourced from https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/issue_templates/Default.md -->","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191587664,"iid":601834,"type":"ISSUE","state":"opened","title":"[New Audit Event]: Group deletion visible in parent group audit log + nested project/group deletions in instance audit log","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601834","notes":"https://gitlab.com/api/v4/projects/278964/issues/601834/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601834/award_emoji"},"author":{"id":25351208,"name":"Fabian Brämik","state":"active","locked":false,"web_url":"https://gitlab.com/fbraemik","username":"fbraemik","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/25351208/avatar.png","public_email":""},"labels":["Category:Audit Events","Enterprise Edition","customer","devops::software supply chain security","group::compliance","section::sec","type::feature"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601834","imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"created_at":"2026-06-02T14:24:22.394Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601834","short":"#601834","relative":"#601834"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T14:27:42.664Z","description":"### Summary\n\nWhile project deletion in the group audit log was addressed in #39139 (closed in 18.4),\ntwo traceability gaps remain identified through customer feedback:\n\n1. **Group deletion is not shown in the parent group audit log** — only in the instance\n   audit log. A group owner at the parent level has no way to determine who deleted a\n   child group without instance-level admin access.\n\n2. **When a group is deleted, the nested projects and sub-groups contained within it\n   do not appear in either the parent group audit log or the instance audit log.** This\n   means there is no traceability for the cascading deletions caused by a group deletion.\n\n### Current behavior\n\n- Group deletion: visible in **instance audit log only** — not in parent group audit log\n- Nested project/group deletions (triggered by group deletion): **not visible anywhere**\n  (neither in parent group nor instance audit log)\n\n### Expected behavior\n\n- Group deletion is listed in the **parent group audit log** (mirroring the behavior\n  now implemented for project deletions)\n- When a group is deleted, all contained/nested projects and sub-groups are also logged\n  in at least the **instance audit log**, ensuring full traceability of cascading deletions\n\n### Proposal\n\nTwo specific gaps to close:\n\n1. Add audit event: Group deletion → parent group audit log\n2. Add audit event: Nested project and group deletions (cascade from group deletion) →\n   instance audit log (at minimum)\n\n### Why this matters\n\nFor regulated organizations (e.g., financial services, public sector), audit traceability\nis a compliance requirement. Group deletions can silently wipe out entire project\nhierarchies with no audit trail beyond the top-level deletion event. This creates\ncompliance gaps that are especially problematic for SOC 2, ISO 27001, DORA, and BAIT\nrequirements.\n\n### Related\n\n- #39139 — [New Audit Event]: Display project deletion in group audit event log (closed, delivered 18.4)\n\n/cc @khornergit","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":2,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191586948,"iid":601833,"type":"TASK","state":"opened","title":"Drop --set CORE_IMAGE from bake scripts","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601833","notes":"https://gitlab.com/api/v4/projects/278964/issues/601833/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601833/award_emoji"},"author":{"id":28919214,"name":"Albina Yusupova","state":"active","locked":false,"web_url":"https://gitlab.com/albi.yusupova","username":"albi.yusupova","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/28919214/avatar.png","public_email":""},"labels":["Category:Software Composition Analysis","backend","devops::application security testing","group::composition analysis","maintenance::pipelines","ruby","section::sec","type::maintenance","workflow::in dev"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601833","assignee":{"id":28919214,"name":"Albina Yusupova","state":"active","locked":false,"web_url":"https://gitlab.com/albi.yusupova","username":"albi.yusupova","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/28919214/avatar.png","public_email":""},"imported":false,"severity":"UNKNOWN","assignees":[{"id":28919214,"name":"Albina Yusupova","state":"active","locked":false,"web_url":"https://gitlab.com/albi.yusupova","username":"albi.yusupova","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/28919214/avatar.png","public_email":""}],"downvotes":0,"has_tasks":false,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"created_at":"2026-06-02T14:13:31.422Z","issue_type":"task","project_id":278964,"references":{"full":"gitlab-org/gitlab#601833","short":"#601833","relative":"#601833"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T14:21:01.498Z","description":"## Problem\n\nEvery per-ecosystem release bake job re-passes `CORE_IMAGE` via\n`--set \"*.args.CORE_IMAGE=…\"` and (for prod) parses\n`MAJOR/MINOR/PATCH` out of `$CI_COMMIT_TAG` just to build that value.\n`CORE_IMAGE` is a top-level `variable` in `docker-bake.hcl`, so bake\nalready reads it from the environment - both the `--set` and the tag\nparsing are redundant.\n\n## Reference\n\nProposed during the review in https://gitlab.com/gitlab-org/security-products/dependency-management/updater/-/merge_requests/114#note_3387320202\n\n## Proposal\n\nSet `CORE_IMAGE` in `variables:` on the `.docker` / `.docker-prod`\nanchors (dev SHA path / `$CI_COMMIT_TAG` path) and drop the `--set` +\nshell parsing from the generator's bake-script templates. Per-ecosystem\nbake scripts collapse to one line.\n\n## Acceptance criteria\n\n- [ ] `.docker` / `.docker-prod` define `variables.CORE_IMAGE`\n- [ ] Generator's `bake_dev` / `bake_prod` no longer emit `--set` or\n      `MAJOR/MINOR/PATCH` parsing\n- [ ] Local build works with no `CORE_IMAGE`\n      and with `CORE_IMAGE=foo` (resolves `\"core\": \"docker-image://foo\"`\n      in the bake plan)\n\n\n## Related\n\n- Parent: https://gitlab.com/gitlab-org/gitlab/-/work_items/578738+\n- Will be based on top of the pipeline generator MR: https://gitlab.com/gitlab-org/security-products/dependency-management/updater/-/merge_requests/121+","confidential":false,"imported_from":"none","user_notes_count":0,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":3,"completed_count":0}},{"id":191586908,"iid":601832,"epic":{"id":5137380,"iid":21997,"url":"/groups/gitlab-org/-/epics/21997","title":"Event Triggers","group_id":9970,"human_readable_end_date":"Jun 12, 2026","human_readable_timestamp":"<strong>10</strong> days remaining"},"type":"ISSUE","state":"opened","title":"Investigate and add existence check for flow trigger events","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601832","notes":"https://gitlab.com/api/v4/projects/278964/issues/601832/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601832/award_emoji"},"author":{"id":22430838,"name":"Shola Quadri","state":"active","locked":false,"web_url":"https://gitlab.com/squadri","username":"squadri","avatar_url":"https://secure.gravatar.com/avatar/a42c85eb9e3c2f56e2212e6ffbd1253f1c20547023108bdc0403de6d56551ac6?s=80&d=identicon","public_email":""},"labels":["backend","devops::ai-powered","group::ai coding","section::ai","type::maintenance"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601832","epic_iid":21997,"imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":false,"milestone":{"id":1212252,"iid":48,"state":"active","title":"Next 1-3 releases","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/48","group_id":9970,"created_at":"2020-03-26T20:39:10.889Z","updated_at":"2020-03-26T20:39:10.889Z","description":"Issues which are not quite ready to schedule, but should be considered as part of the near-term roadmap."},"created_at":"2026-06-02T14:12:53.964Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601832","short":"#601832","relative":"#601832"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T14:12:56.573Z","description":"[Discussion link](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081#note_3406949596)\n\n> The current `passes_event_checks?` implementation is fine to execute inside the sidekiq job but I'm wondering whether we should have a quick check like \"are there any triggers targeting this event type in this project\"? If so, dispatch the event to the subscriber worker, otherwise not.\n\n> The quick existence check, if performant, can ensure we only enqueue Sidekiq jobs if there will be work to do async, even if this async work means checking for the more granular filter matching.\n\n### Summary\n\nInvestigate adding conditional dispatched existence check for flow trigger events to avoid scheduling Sidekiq jobs when no triggers will actually fire to reduce overhead for high frequency events.\n\n### Problem\n\nIn the MR approved trigger [MR](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081), we added a `passes_event_checks?` implementation that detects a threshold which determines whether a trigger event condition is met.\n\nSo, currently, every subscribed event schedules a Sidekiq job, where `passes_event_checks?` runs to determine whether a flow should fire. \n\nFor high frequency events like pipeline status changes, this means enqueuing many jobs even when only a tiny fraction of subscriptions actually trigger flows, creating unnecessary overhead.\n\n### Proposed approach\n\nWe should introduce a quick pre-dispatch existence check to see if there are any triggers targeting the event type in the project.\n\n- If yes: dispatch the event to the subscriber worker\n- If no: skip enqueuing entirely\n\nThe granular filter matching (`passes_event_checks?`) would still run inside the Sidekiq job, the existence check simply ensures we only enqueue jobs when there's actually async work to do.\n\n### Open consideration\n\nSince the event store conditional dispatch lambda only has access to the event's data hash, not the full resource object, so we'd need to load the resource (e.g., the MR) inside the lambda, adding a DB hit. \n\nThis could potentially be mitigated by memoizing the resource in the event class. **See [discussion thread](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081#note_3406949596) for more details**\n\n### Definition of Done\n\n- [ ] Performance impact of the existence check evaluated (should be performant)\n- [ ] Conditional dispatch approach decided (which events should use it)\n- [ ] Implementation handles resource loading efficiently (e.g. with memoization)\n- [ ] No regression in trigger firing behaviour\n\n### Related\n\n1. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081+","confidential":false,"imported_from":"none","user_notes_count":0,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":4,"completed_count":0}},{"id":191586702,"iid":601831,"type":"ISSUE","state":"opened","title":"CI_COMMIT_BRANCH variable is not defined on tag push pipeline","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601831","notes":"https://gitlab.com/api/v4/projects/278964/issues/601831/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601831/award_emoji"},"author":{"id":2773,"name":"Aurélio A. Heckert","state":"active","locked":false,"web_url":"https://gitlab.com/aurium","username":"aurium","avatar_url":"https://secure.gravatar.com/avatar/22487cff4624020b3a171cab08a4b950ad9499e7003b70b01b08b3fb2cb54a2e?s=80&d=identicon","public_email":""},"labels":["automation:ml"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601831","imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"created_at":"2026-06-02T14:08:56.647Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601831","short":"#601831","relative":"#601831"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T14:10:31.000Z","description":"<!--IssueSummary start-->\n\n<details>\n<summary>\n\nEveryone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.\n\n</summary>\n\n- [Label this issue](https://contributors.gitlab.com/manage-issue?action=label&projectId=278964&issueIid=601831)\n\n</details>\n\n<!--IssueSummary end-->\n\nMy `.gitlab-cy.yml` has the job below:\n```yaml\ndebug:\n  stage: deploy\n  script:\n    - env\n```\n\nHere you can see one execution after a tag push: https://gitlab.com/nTopus/dockerized-env/-/jobs/14644219264\n\nThe `CI_PIPELINE_SOURCE` is `push`, like any other git push, however there is no `CI_COMMIT_BRANCH` unlike others.\n\nThis problem affects the possibility of defining a rule like that:\n```yaml\n  - if: $CI_COMMIT_TAG =~ /^[0-9].*/ && $CI_COMMIT_BRANCH == \"main\"\n```\n\nTags can be defined to any branch, but I want to build something only on tagged commits on my stable branch.\n\nMy colleagues and I also have this need in internal projects, using a private GitLab service.","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191584464,"iid":601829,"epic":{"id":5143688,"iid":22028,"url":"/groups/gitlab-org/-/epics/22028","title":"DAP Model Selection: Allow administrators to configure model allowlist/blocklist","group_id":9970,"human_readable_end_date":"Jul 10, 2026","human_readable_timestamp":"<strong>1</strong> month remaining"},"type":"ISSUE","state":"opened","title":"[FE] Namespace-level: Connect modal to allow-list APIs","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601829","notes":"https://gitlab.com/api/v4/projects/278964/issues/601829/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601829/award_emoji"},"author":{"id":21147948,"name":"Julie Huang","state":"active","locked":false,"web_url":"https://gitlab.com/julie_huang","username":"julie_huang","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21147948/avatar.png","public_email":""},"labels":["devops::ai-powered","frontend","group::custom models","section::ai","type::feature"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601829","epic_iid":22028,"imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":false,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"created_at":"2026-06-02T13:34:31.279Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601829","short":"#601829","relative":"#601829"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T13:39:40.645Z","description":"\n\n### Description\n\nConnect the GraphQL APIs to the allow-list modal so that namespace-level allow-list configuration values can be read and updated from the UI (for an end-to-end working feature :tada:)\n\n**Modal:**\n\n![Screenshot_2026-06-02_at_5.01.16_pm](/uploads/459c9c1908f90c15032a4bab072f808b/Screenshot_2026-06-02_at_5.01.16_pm.png){width=400}\n\n**Requirements:**\n- [ ] The allow-list modal can read namespace-level persisted allow-list values\n- [ ] The allow-list modal can update namespace-level persisted allow-list values","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":2,"completed_count":0}},{"id":191583795,"iid":601827,"epic":{"id":5143688,"iid":22028,"url":"/groups/gitlab-org/-/epics/22028","title":"DAP Model Selection: Allow administrators to configure model allowlist/blocklist","group_id":9970,"human_readable_end_date":"Jul 10, 2026","human_readable_timestamp":"<strong>1</strong> month remaining"},"type":"ISSUE","state":"opened","title":"[FE] Instance-level: Connect modal to allow-list APIs","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601827","notes":"https://gitlab.com/api/v4/projects/278964/issues/601827/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601827/award_emoji"},"author":{"id":21147948,"name":"Julie Huang","state":"active","locked":false,"web_url":"https://gitlab.com/julie_huang","username":"julie_huang","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21147948/avatar.png","public_email":""},"labels":["devops::ai-powered","frontend","group::custom models","priority::1","section::ai","type::feature"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601827","epic_iid":22028,"imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":false,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"created_at":"2026-06-02T13:23:07.336Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601827","short":"#601827","relative":"#601827"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T13:36:31.931Z","description":"\n\n### Description\n\nConnect the GraphQL APIs to the allow-list modal so that instance-level allow-list configuration values can be read and updated from the UI (for an end-to-end working feature :tada:)\n\n**Modal:**\n\n![Screenshot_2026-06-02_at_5.01.16_pm](/uploads/459c9c1908f90c15032a4bab072f808b/Screenshot_2026-06-02_at_5.01.16_pm.png){width=400}\n\n**Requirements:**\n- [ ] The allow-list modal can read instance-level persisted allow-list values\n- [ ] The allow-list modal can update instance-level persisted allow-list values","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":2,"completed_count":0}},{"id":191580527,"iid":601826,"epic":{"id":5137380,"iid":21997,"url":"/groups/gitlab-org/-/epics/21997","title":"Event Triggers","group_id":9970,"human_readable_end_date":"Jun 12, 2026","human_readable_timestamp":"<strong>10</strong> days remaining"},"type":"ISSUE","state":"opened","title":"Document events supported by triggers and their payload schema","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601826","notes":"https://gitlab.com/api/v4/projects/278964/issues/601826/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601826/award_emoji"},"author":{"id":22430838,"name":"Shola Quadri","state":"active","locked":false,"web_url":"https://gitlab.com/squadri","username":"squadri","avatar_url":"https://secure.gravatar.com/avatar/a42c85eb9e3c2f56e2212e6ffbd1253f1c20547023108bdc0403de6d56551ac6?s=80&d=identicon","public_email":""},"labels":["automation:ml","backend","devops::ai-powered","documentation","group::ai coding","section::ai","type::documentation"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601826","epic_iid":21997,"imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":false,"milestone":{"id":1212252,"iid":48,"state":"active","title":"Next 1-3 releases","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/48","group_id":9970,"created_at":"2020-03-26T20:39:10.889Z","updated_at":"2020-03-26T20:39:10.889Z","description":"Issues which are not quite ready to schedule, but should be considered as part of the near-term roadmap."},"created_at":"2026-06-02T12:38:57.195Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601826","short":"#601826","relative":"#601826"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T13:12:54.714Z","description":"<!--IssueSummary start-->\n\n<details>\n<summary>\n\nEveryone can contribute. [Help move this issue forward](https://handbook.gitlab.com/handbook/marketing/developer-relations/contributor-success/community-contributors-workflows/#contributor-links) while earning points, leveling up and collecting rewards.\n\n</summary>\n\n- [Label this issue](https://contributors.gitlab.com/manage-issue?action=label&projectId=278964&issueIid=601826)\n\n</details>\n\n<!--IssueSummary end-->\n\n### Summary\n\nDocument the supported flow trigger events and their filterable attributes and define a deprecation policy for changes to the filterable schema.\n\n### Background\n\nThe [filterable schema](https://gitlab.com/gitlab-org/gitlab/-/work_items/601825) is a contract with customers. Once an event's filterable attributes are published, customers build trigger filters against them. We need clear documentation of what's supported and a policy governing how the schema can evolve without breaking existing customer configurations.\n\n### Scope\n\n1. Document supported events and filterable attributes\n\nFor each supported event, document:\n- The event type\n- The attributes customers can filter on\n- Expected values/types for each attribute\n\n2. Define a deprecation policy for schema changes\n\n    - Document which changes are breaking vs. non-breaking, and the process for introducing breaking changes like deprecation period, customer communication, etc.\n\n### Definition of Done\n\n- [ ] All supported events and their filterable attributes documented\n- [ ] Deprecation policy defined and documented\n- [ ] Breaking vs. non-breaking changes clearly outlined\n- [ ] Process for introducing breaking changes established\n- [ ] Documentation published and communicated across the appropriate channels","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":5,"completed_count":0}},{"id":191580081,"iid":601825,"epic":{"id":5137380,"iid":21997,"url":"/groups/gitlab-org/-/epics/21997","title":"Event Triggers","group_id":9970,"human_readable_end_date":"Jun 12, 2026","human_readable_timestamp":"<strong>10</strong> days remaining"},"type":"ISSUE","state":"opened","title":"Refactor filter_data to be defined per Event class to support varied payloads","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601825","notes":"https://gitlab.com/api/v4/projects/278964/issues/601825/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601825/award_emoji"},"author":{"id":22430838,"name":"Shola Quadri","state":"active","locked":false,"web_url":"https://gitlab.com/squadri","username":"squadri","avatar_url":"https://secure.gravatar.com/avatar/a42c85eb9e3c2f56e2212e6ffbd1253f1c20547023108bdc0403de6d56551ac6?s=80&d=identicon","public_email":""},"labels":["backend","devops::ai-powered","frontend","group::ai coding","section::ai","type::maintenance"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601825","epic_iid":21997,"imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"milestone":{"id":1212252,"iid":48,"state":"active","title":"Next 1-3 releases","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/48","group_id":9970,"created_at":"2020-03-26T20:39:10.889Z","updated_at":"2020-03-26T20:39:10.889Z","description":"Issues which are not quite ready to schedule, but should be considered as part of the near-term roadmap."},"created_at":"2026-06-02T12:31:39.846Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601825","short":"#601825","relative":"#601825"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T12:46:50.379Z","description":"[Follow up from discussion](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081#note_3406949549)\n\n[Discussion 2](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081#note_3406949569):\n\n> Is the list of available triggers defined in the FE? I think the list needs to be defined in the backend. Then it can be compiled and exposed to the FE via GraphQL, together with event types, categories and description. This way when we add new events that are supported by AI triggers, we only add them to the backend.\n\n### Problem\n\nThe filter data passed to `FilterEvaluator` at dispatch time is currently hardcoded in the worker concern (ee/app/workers/concerns/ai/cloud_events_flow_trigger_worker.rb):\n\nThis approach is problematic because:\n\n1. It assumes all filterable events use an action key, even though vents like `pipeline_hooks` may not. This means each new event type may require modifying the concern or its consumer workers to build the right filter data.\n2. Customers configuring AI triggers have no way to know which fields are available for filtering on a given event type. The available filter fields are implicit in the worker code and frontend constants, not formally declared.\n3. Without a published schema, any change to the filterable fields is a silent breaking change. A renamed or removed field would cause customer-configured filters to silently stop matching.\n\n### Proposal / Solution\n\n- Each `CloudEvent` class should define an internal & external filterable schema that customers can use to configure trigger filters. This schema will serve as a contract between GitLab and clients.\n\nSteps:\n\n1. Each event class define their filterable attributes and extract the relevant values from its payload based on its filterable attributes.\n2. The worker concern dynamically reads the filter data from the event\n3. Ideally, the frontend should read from the schema, so instead of hardcoding `filterAction` on frontend constants and using buildFilterFromTriggerTypes, the UI should query the backend for available filterable attributes per event type and dynamically render filter configuration options.\n\n### Tasks\n\n- Define `filterable_attributes` interface on CloudEvent base class\n- Implement `filterable_attributes` on CloudEvent sub classes\n- Implement `build_filter_data` on Event classes to dynamically extract filter data from event payload\n- Update `CloudEventsFlowTriggerWorker` concern to use dynamic filter data instead of hardcoded action\n- Expose filterable attributes via GraphQL ([AiFlowTriggerEventType](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/app/graphql/types/ai/flow_trigger/event_type_enum.rb#L6) -- to confirm if this is the right module)\n- Update frontend to query and render filter options dynamically\n\n### Breaking change considerations\n\nSince the filterable schema is a contract, once published:\n- Adding a new filterable field is non-breaking meaning existing filters continue to work\n- Removing a filterable field is breaking meaning existing triggers with filters on that field would silently stop matching\n- Renaming a field is breaking\n- Changing enum values or removing a value is breaking since existing filters using that value would stop matching\n- Adding enum values is non breaking","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":0,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191579819,"iid":601824,"type":"ISSUE","state":"opened","title":"[FF] `pipeline_analytics_siphon` -- Route PipelineAnalytics reads through siphon_p_ci_pipelines","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601824","notes":"https://gitlab.com/api/v4/projects/278964/issues/601824/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601824/award_emoji"},"author":{"id":6230800,"name":"Narendran","state":"active","locked":false,"web_url":"https://gitlab.com/narendran-kannan","username":"narendran-kannan","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/6230800/avatar.png","public_email":""},"labels":["Category:Fleet Visibility","devops::verify","feature flag","group::ci platform","section::ci","type::maintenance"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601824","assignee":{"id":6230800,"name":"Narendran","state":"active","locked":false,"web_url":"https://gitlab.com/narendran-kannan","username":"narendran-kannan","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/6230800/avatar.png","public_email":""},"due_date":"2026-06-16","imported":false,"severity":"UNKNOWN","assignees":[{"id":6230800,"name":"Narendran","state":"active","locked":false,"web_url":"https://gitlab.com/narendran-kannan","username":"narendran-kannan","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/6230800/avatar.png","public_email":""}],"downvotes":0,"has_tasks":false,"created_at":"2026-06-02T12:26:39.962Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601824","short":"#601824","relative":"#601824"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T12:31:22.044Z","description":"\n\n## Summary\n\nThis issue is to roll out [the feature](https://gitlab.com/gitlab-org/gitlab/-/issues/598440) on production,\nthat is currently behind the `pipeline_analytics_siphon` feature flag.\n\nWhen enabled, the `PipelineAnalytics` GraphQL field (Project + Group) reads from\nthe Siphon-replicated `siphon_p_ci_pipelines` table via\n`ClickHouse::Finders::Ci::SiphonPipelinesFinder` (argMax dedup pattern) instead\nof the `ci_finished_pipelines_{hourly,daily}` materialized views.\n\n## Owners\n\n- Most appropriate Slack channel to reach out to: `#g_ci-platform`\n- Best individual to reach out to: @narendran-kannan\n\n## Expectations\n\n### What are we expecting to happen?\n\n- `/-/pipelines/charts` (Project and Group) continues to render aggregate counts,\n  per-status counts, and p50/p95/p99 duration statistics with parity to the MV\n  path within a small expected delta (raw `started_at` filtering vs hour-bucketed\n  `started_at_bucket`).\n- One bespoke sync pipeline (`Ci::ClickHouse::DataIngestion::FinishedPipelinesSyncService`)\n  becomes redundant once the rollout is complete, freeing up Sidekiq capacity and\n  removing a CSV-based ingestion path.\n\n### What can go wrong and how would we detect it?\n\n- **Siphon query latency on large groups.** `siphon_p_ci_pipelines` is row-level\n  (no pre-aggregation), so 90+ day group queries read significantly more bytes\n  than the daily MV. Detection: PipelineAnalytics request latency dashboards;\n  GraphQL P95 latency for `pipelineAnalytics` field.\n- **`source` enum translation bug.** Siphon stores `source` as `Nullable(Int64)`\n  enum; the finder translates the Ruby symbol via `Ci::Pipeline.sources`. A drift\n  here would silently return zero rows for source-filtered queries. Detection:\n  comparing aggregate counts between the two paths on a sample container.\n- **Boundary semantic difference at hour boundaries.** Siphon filters on raw\n  `started_at`; MV uses hour-truncated `started_at_bucket`. This is intentional\n  (siphon is more accurate) but customer-facing numbers may shift by a small\n  fraction at the window boundaries.\n- **ReplacingMergeTree dedup correctness.** Finder uses\n  `argMax(_siphon_replicated_at)` to pick the latest version of each row, and\n  filters `_siphon_deleted = false`. A regression here would inflate counts.\n  Detection: spot-check known soft-deleted pipelines.\n\nRelevant dashboards:\n- GraphQL field latency: TBD\n- ClickHouse query latency: console.clickhouse.com\n\n## Rollout Steps\n\nNote: Please make sure to run the chatops commands in the Slack channel that gets impacted by the command.\n\n### Rollout on non-production environments\n\n- Verify the MR with the feature flag is merged to `master` and has been deployed to non-production environments with `/chatops gitlab run auto_deploy status <merge-commit-of-your-feature>`\n- [ ] Deploy the feature flag at a percentage (recommended percentage: 50%) with `/chatops gitlab run feature set pipeline_analytics_siphon 50 --actors --dev --pre --staging --staging-ref`\n- [ ] Monitor that the error rates did not increase (repeat with a different percentage as necessary).\n- [ ] Enable the feature globally on non-production environments with `/chatops gitlab run feature set pipeline_analytics_siphon true --dev --pre --staging --staging-ref`\n- [ ] Verify that the feature works as expected.\n      The best environment to validate the feature in is [`staging-canary`](https://about.gitlab.com/handbook/engineering/infrastructure/environments/#staging-canary) as this is the first environment deployed to. Make sure you are [configured to use canary](https://next.gitlab.com/).\n- [ ] If the feature flag causes end-to-end tests to fail, disable the feature flag on staging to avoid blocking [deployments](https://about.gitlab.com/handbook/engineering/deployments-and-releases/deployments/).\n   - See [`#e2e-run-staging` Slack channel](https://gitlab.enterprise.slack.com/archives/CBS3YKMGD) and look for the following messages:\n      - test kicked off: `Feature flag pipeline_analytics_siphon has been set to true on **gstg**`\n      - test result: `This pipeline was triggered due to toggling of pipeline_analytics_siphon feature flag`\n\nIf you encounter end-to-end test failures and are unable to diagnose them, you may reach out to the [`#s_developer_experience` Slack channel](https://gitlab.enterprise.slack.com/archives/C07TWBRER7H) for assistance. Note that end-to-end test failures on `staging-ref` [don't block deployments](https://about.gitlab.com/handbook/engineering/infrastructure/environments/staging-ref/#how-to-use-staging-ref).\n\n### Before production rollout\n\n- [ ] If the change is significant and you wanted to announce in [#whats-happening-at-gitlab](https://gitlab.enterprise.slack.com/archives/C0259241C), it best to do it before rollout to `gitlab-org/gitlab-com`.\n\n### Specific rollout on production\n\nFor visibility, all `/chatops` commands that target production must be executed in the [`#production` Slack channel](https://gitlab.slack.com/archives/C101F3796)\nand cross-posted (with the command results) to the responsible team's Slack channel.\n\nThe flag uses a [container actor](https://docs.gitlab.com/development/feature_flags/#feature-actors) (Project or Group), so the most natural enablement granularity is by group.\n\n- Ensure that the feature MRs have been deployed to both production and canary with `/chatops gitlab run auto_deploy status <merge-commit-of-your-feature>`\n- [ ] Enable for `gitlab-org/gitlab` and dogfood: `/chatops gitlab run feature set --project=gitlab-org/gitlab pipeline_analytics_siphon true`\n- [ ] Verify on `https://gitlab.com/gitlab-org/gitlab/-/pipelines/charts` that the numbers match what the MV path would return for the same window.\n- [ ] Expand to `gitlab-org`: `/chatops gitlab run feature set --group=gitlab-org pipeline_analytics_siphon true`\n- [ ] Expand to `gitlab-com`: `/chatops gitlab run feature set --group=gitlab-com pipeline_analytics_siphon true`\n\n### Preparation before global rollout\n\n- [ ] Set a milestone to this rollout issue to signal for enabling and removing the feature flag when it is stable.\n- [ ] Check if the feature flag change needs to be accompanied with a\n  [change management issue](https://about.gitlab.com/handbook/engineering/infrastructure-platforms/change-management/#feature-flags-and-the-change-management-process).\n  Cross link the issue here if it does.\n- [ ] Ensure that you or a representative in development can be available for at least 2 hours after feature flag updates in production.\n  If a different developer will be covering, or an exception is needed, please inform the oncall SRE by using the `@sre-oncall` Slack alias.\n- [ ] Ensure that documentation exists for the feature, and the [version history text](https://docs.gitlab.com/development/documentation/feature_flags/#add-history-text) has been updated.\n- [ ] Ensure that any breaking changes have been announced following the [release post process](https://about.gitlab.com/handbook/marketing/blog/release-posts/#deprecations-removals-and-breaking-changes) to ensure GitLab customers are aware.\n- [ ] Notify the [`#support_gitlab-com` Slack channel](https://gitlab.slack.com/archives/C4XFU81LG) and your team channel ([more guidance when this is necessary in the dev docs](https://docs.gitlab.com/development/feature_flags/controls/#communicate-the-change)).\n- [ ] If this flag is or may be queried by external API consumers (for example, IDE extensions, Duo CLI, or CI integrations), follow the [external API consumer guidance](https://docs.gitlab.com/development/feature_flags/#do-not-use-feature-flags-in-external-api-consumers) and ensure a fail-open mechanism is in place before the rollout milestone is finalised.\n\n### Global rollout on production\n\nFor visibility, all `/chatops` commands that target production must be executed in the [`#production` Slack channel](https://gitlab.slack.com/archives/C101F3796)\nand cross-posted (with the command results) to the responsible team's Slack channel.\n\n- [ ] [Incrementally roll out](https://docs.gitlab.com/development/feature_flags/controls/#process) the feature on production.\n  - Example: `/chatops gitlab run feature set pipeline_analytics_siphon <rollout-percentage> --actors`.\n  - Between every step wait for at least 15 minutes and monitor the appropriate graphs on https://dashboards.gitlab.net.\n- [ ] After the feature has been 100% enabled, wait for [at least one day before releasing the feature](#release-the-feature).\n\n### Release the feature\n\nAfter the feature has been [deemed stable](https://about.gitlab.com/handbook/product-development-flow/feature-flag-lifecycle/#including-a-feature-behind-feature-flag-in-the-final-release),\nthe [clean up](https://docs.gitlab.com/development/feature_flags/controls/#cleaning-up)\nshould be done as soon as possible to permanently enable the feature and reduce\ncomplexity in the codebase.\n\nYou can either [create a follow-up issue for Feature Flag Cleanup](https://gitlab.com/gitlab-org/gitlab/-/issues/new?description_template=Feature%20Flag%20Cleanup)\nor use the checklist below in this same issue.\n\n- [ ] Create a merge request to remove the `pipeline_analytics_siphon` feature flag. Ask for review/approval/merge as usual. The MR should include the following changes:\n    - Remove all references to the feature flag from the codebase.\n    - Remove the YAML definitions for the feature from the repository.\n    - Drop the dual-path `clickhouse_model` branch in `CollectPipelineAnalyticsServiceBase`.\n    - Remove the per-path `let` overrides and the `[true, false].each` loops in:\n      - `spec/services/ci/collect_aggregate_pipeline_analytics_service_spec.rb`\n      - `spec/services/ci/collect_time_series_pipeline_analytics_service_spec.rb`\n      - `spec/requests/api/graphql/project/project_pipeline_analytics_spec.rb`\n      - `spec/requests/api/graphql/group/group_pipeline_analytics_spec.rb`\n    - Drop the `ci_finished_pipelines_{hourly,daily}` models (or schedule their removal in a follow-up).\n    - File a follow-up to retire `Ci::ClickHouse::DataIngestion::FinishedPipelinesSyncService` and the two `ci_finished_pipelines_sync_*_workers` ops flags.\n- [ ] Ensure that the cleanup MR has been included in the release package.\n      If the merge request was deployed before [the monthly release was tagged](https://about.gitlab.com/handbook/engineering/releases/#self-managed-releases-1),\n      the feature can be officially announced in a release blog post: `/chatops gitlab run release check <merge-request-url> <milestone>`\n- [ ] Close [the feature issue](https://gitlab.com/gitlab-org/gitlab/-/issues/598440) to indicate the feature will be released in the current milestone.\n- [ ] Once the cleanup MR has been deployed to production, clean up the feature flag from all environments by running these chatops command in `#production` channel: `/chatops gitlab run feature delete pipeline_analytics_siphon --dev --pre --staging --staging-ref --production`\n- [ ] Close this rollout issue.\n\n## Rollback Steps\n\n- [ ] This feature can be disabled on production by running the following Chatops command:\n\n```\n/chatops gitlab run feature set pipeline_analytics_siphon false\n```\n\n- [ ] Disable the feature flag on non-production environments:\n\n```\n/chatops gitlab run feature set pipeline_analytics_siphon false --dev --pre --staging --staging-ref\n```\n\n- [ ] Delete feature flag from all environments:\n\n```\n/chatops gitlab run feature delete pipeline_analytics_siphon --dev --pre --staging --staging-ref --production\n```","confidential":false,"imported_from":"none","user_notes_count":0,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":27,"completed_count":0}},{"id":191578977,"iid":601823,"epic":{"id":5095069,"iid":21626,"url":"/groups/gitlab-org/-/epics/21626","title":"Release 0 (Crawl) - [SPM] Centralized Security Scanner Enablement","group_id":9970,"human_readable_end_date":"Jun 12, 2026","human_readable_timestamp":"<strong>10</strong> days remaining"},"type":"ISSUE","state":"opened","title":"[Backend] CI impact estimation","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601823","notes":"https://gitlab.com/api/v4/projects/278964/issues/601823/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601823/award_emoji"},"author":{"id":20636818,"name":"Gal Katz","state":"active","locked":false,"web_url":"https://gitlab.com/gkatz1","username":"gkatz1","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/20636818/avatar.png","public_email":""},"labels":["devops::security risk management","group::security platform management","section::sec","type::feature"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601823","epic_iid":21626,"imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"created_at":"2026-06-02T12:16:55.065Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601823","short":"#601823","relative":"#601823"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T13:04:05.466Z","description":"### Overview\n\nInvestigate existing data points related to groups and projects, including CI pipeline runtime and cost. The goal is to use this data to provide a reliable estimation of the additional CI time that would result from applying security profiles and enabling scans.\n\n### Objectives\n\n- Identify and gather existing data points for groups and projects related to CI usage and pipeline performance.\n- Evaluate scan jobs' run times across relevant groups and projects.\n- Provide a way to calculate the estimation of the additional CI time introduced by applying the profiles.","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":0,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191578724,"iid":601822,"type":"ISSUE","state":"opened","title":"Docs: typo in docs for using Azure Workload Identity for the registry helm chart","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601822","notes":"https://gitlab.com/api/v4/projects/278964/issues/601822/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601822/award_emoji"},"author":{"id":16816180,"name":"Conor Bèhard Roberts","state":"active","locked":false,"web_url":"https://gitlab.com/Conor-Behard333","username":"Conor-Behard333","avatar_url":"https://secure.gravatar.com/avatar/f0e0499696ff5207fc4602e9ea9c7aa35948907c99c87b3606d8b889224c427d?s=80&d=identicon"},"labels":["Category:Container Registry","bug::functional","devops::package","documentation","group::container registry","section::ci","type::bug"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601822","imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":false,"created_at":"2026-06-02T12:14:51.118Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601822","short":"#601822","relative":"#601822"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T12:16:20.174Z","description":"\n\n<!--\n\n* Use this issue template for suggesting new docs or updates to existing docs.\n  Note: Doc work as part of feature development is covered in the Feature Request template.\n\n* For issues related to features of the docs.gitlab.com site, see\n  https://gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/-/issues\n\n* For information about documentation content and process, see\n  https://docs.gitlab.com/development/documentation/\n-->\n\n- [x] Start this issue's title with `Docs:` or `Docs feedback:`.\n\n## Problem to solve\nProduct: registry via helm chart\n\nDocs effected: https://docs.gitlab.com/charts/advanced/external-object-storage/azure-workload-identity/#registry\n\nThe docs refer to setting the value credentialstype to default_credentials to enabled azure workload identity. This is a typo and causes the deployment to fail connecting to the azure storage account. \n\n\n<!--\nInclude the following detail as necessary:\n\n* What product or feature(s) affected?\n* What docs or doc section affected? Include links or paths.\n* Is there a problem with a specific document, or a feature/process that's not addressed sufficiently in docs?\n* Any other ideas or requests?\n-->\n\n\n## Proposal\nThe correct value is credentials_type specified in the azure_v2 type documented here https://gitlab.com/gitlab-org/container-registry/-/blob/3ebb5bffd3f6cfbf4479b1b8a4079d842a1c8025/docs/storage-drivers/azure_v2.md#default-credentials\n\nAny reference to credentialstype needs to be changed to credentials_type\n\n<!-- Further specifics for how can we solve the problem. -->","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":1,"completed_count":1}},{"id":191576709,"iid":601821,"type":"ISSUE","state":"opened","title":"Add endpoint to return full workflow trace as JSONL via `.jsonl` URL suffix","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601821","notes":"https://gitlab.com/api/v4/projects/278964/issues/601821/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601821/award_emoji"},"author":{"id":9426861,"name":"Eduardo Bonet","state":"active","locked":false,"web_url":"https://gitlab.com/eduardobonet","username":"eduardobonet","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/9426861/avatar.png","public_email":"ebonet@gitlab.com"},"labels":["Category:Duo Agent Platform","devops::ai-powered","feature::addition","group::agent foundations","section::ai","type::feature"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601821","assignee":{"id":9426861,"name":"Eduardo Bonet","state":"active","locked":false,"web_url":"https://gitlab.com/eduardobonet","username":"eduardobonet","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/9426861/avatar.png","public_email":"ebonet@gitlab.com"},"imported":false,"severity":"UNKNOWN","assignees":[{"id":9426861,"name":"Eduardo Bonet","state":"active","locked":false,"web_url":"https://gitlab.com/eduardobonet","username":"eduardobonet","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/9426861/avatar.png","public_email":"ebonet@gitlab.com"}],"downvotes":0,"has_tasks":false,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"created_at":"2026-06-02T11:57:50.893Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601821","short":"#601821","relative":"#601821"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T12:17:13.500Z","description":"## Summary\n\nThere is currently no machine-readable REST endpoint to retrieve the full trace of a completed Duo agent workflow session. Adding a `.jsonl` suffix to a workflow trace request URL should return the complete trace as [JSON Lines](https://jsonlines.org/) (one JSON object per line), making it easy to stream, parse, and process programmatically.\n\n## Prior Art\n\nThe codebase already has related mechanisms for accessing workflow data:\n\n- **WebSocket (`GET /api/v4/ai/duo_workflows/ws`)** — streams live checkpoint data during an active workflow session, but is not suitable for retrieving a completed session's full trace after the fact.\n- **`duo_workflow_events` GraphQL field on `ProjectType`** — exposes workflow events via GraphQL pagination, but requires a GraphQL client and does not support streaming or JSONL output.\n\nNeither of these covers the use case of fetching a complete, machine-readable trace of a finished workflow in a format that is trivially pipeable from the CLI.\n\n## Motivation\n\nTools like `glab` (the GitLab CLI) are being extended to forward a `GITLAB_DUO_SESSION_ID` / `X-Gitlab-Duo-Session-Id` header on every API request so that CLI actions can be linked back to an originating Duo agent session (see https://gitlab.com/gitlab-org/cli/-/issues/8328). Once that linkage exists, consumers need a way to retrieve the full trace of what happened during a session. A JSONL REST endpoint is the natural complement: it is streamable, easy to pipe into `jq` or other CLI tools, and trivially importable into data pipelines.\n\n## Proposal\n\nWhen a request is made to a workflow trace endpoint and the URL path ends with `.jsonl`, respond with:\n\n- **Content-Type:** `application/x-ndjson` (or `application/jsonl`)\n- **Body:** one JSON object per line, each representing a single trace event/step in chronological order\n\n### Example\n\n```\nGET /api/v4/ai/duo_workflows/workflows/:workflow_id/trace.jsonl\n```\n\nResponse body (streamed):\n\n```jsonl\n{\"timestamp\":\"2026-06-02T10:00:00Z\",\"type\":\"step_start\",\"step\":\"plan\",\"data\":{...}}\n{\"timestamp\":\"2026-06-02T10:00:01Z\",\"type\":\"tool_call\",\"tool\":\"create_mr\",\"data\":{...}}\n{\"timestamp\":\"2026-06-02T10:00:02Z\",\"type\":\"step_end\",\"step\":\"plan\",\"data\":{...}}\n```\n\n### Behavior\n\n- Requests **without** `.jsonl` continue to work exactly as today (no breaking change).\n- Requests **with** `.jsonl` return the full trace in JSONL format, sourced from the `p_duo_workflows_checkpoints` table.\n- The endpoint should support the same authentication and authorization rules as the existing workflow endpoints.\n- Optionally support streaming the response for long-running or in-progress workflows.\n\n## Acceptance Criteria\n\n- [ ] A new route (or route variant) accepts `.jsonl` appended to the workflow trace URL.\n- [ ] The response uses an appropriate `Content-Type` header (`application/x-ndjson`).\n- [ ] Each line is a valid JSON object representing one trace event.\n- [ ] Events are returned in chronological order.\n- [ ] Existing endpoints are unaffected (no breaking change).\n- [ ] Authentication and authorization are enforced identically to the existing workflow endpoints.\n- [ ] API documentation is updated.\n- [ ] Feature is covered by unit and integration tests.\n\n## Related\n\n- `glab` issue: https://gitlab.com/gitlab-org/cli/-/issues/8328 — adds `GITLAB_DUO_SESSION_ID` to link CLI actions to a Duo agent session","confidential":false,"imported_from":"none","user_notes_count":3,"merge_requests_count":1,"blocking_issues_count":0,"task_completion_status":{"count":8,"completed_count":0}},{"id":191574223,"iid":601820,"epic":{"id":5137380,"iid":21997,"url":"/groups/gitlab-org/-/epics/21997","title":"Event Triggers","group_id":9970,"human_readable_end_date":"Jun 12, 2026","human_readable_timestamp":"<strong>10</strong> days remaining"},"type":"ISSUE","state":"opened","title":"Create new dedicated feature category for Event Triggers","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601820","notes":"https://gitlab.com/api/v4/projects/278964/issues/601820/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601820/award_emoji"},"author":{"id":22430838,"name":"Shola Quadri","state":"active","locked":false,"web_url":"https://gitlab.com/squadri","username":"squadri","avatar_url":"https://secure.gravatar.com/avatar/a42c85eb9e3c2f56e2212e6ffbd1253f1c20547023108bdc0403de6d56551ac6?s=80&d=identicon","public_email":""},"labels":["backend","devops::ai-powered","group::ai coding","section::ai","type::feature"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601820","epic_iid":21997,"imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":false,"milestone":{"id":1212252,"iid":48,"state":"active","title":"Next 1-3 releases","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/48","group_id":9970,"created_at":"2020-03-26T20:39:10.889Z","updated_at":"2020-03-26T20:39:10.889Z","description":"Issues which are not quite ready to schedule, but should be considered as part of the near-term roadmap."},"created_at":"2026-06-02T11:10:11.586Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601820","short":"#601820","relative":"#601820"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:39:07.358Z","description":"\n\n### Problem\n\nWe're currently using `code_suggestions` as the feature category for triggers, since they fall under our team's domain and `code_suggestions` is the umbrella category for work owned by ~\"group::ai coding\". However, this isn't specific to the triggers work and leads to confusion since triggers are not related to code suggestions functionality.\n\n### Solution\n\nCreate a more specific feature category for triggers. We've previously [discussed](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081#note_3395709089) this, but have been using the existing category in the meantime.\n\n### Proposed category names\n\n- event_triggers\n- ai_triggers\n- ai_event_triggers\n\n### Related\n\n1. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237081+\n2. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/233605+\n3. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/234044+\n4. https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237087+\n\n### Definition of Done\n\n- [ ] New feature category agreed upon and defined\n- [ ] Feature category added to the appropriate config (e.g., [config/feature_categories.yml](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/feature_categories.yml#L1-0))\n- [ ] Existing trigger code updated to use the new category\n- [ ] Relevant documentation updated\n- [ ] Relevant monitoring and observability dashboards are updated (e.g. Grafana, etc.)\n- [ ] Work item labels updated","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":6,"completed_count":0}},{"id":191573926,"iid":601819,"type":"ISSUE","state":"opened","title":"Project members listing omits inherited invited-group member with Maintainer access","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601819","notes":"https://gitlab.com/api/v4/projects/278964/issues/601819/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601819/award_emoji"},"author":{"id":9767417,"name":"Chris Kaburu","state":"active","locked":false,"web_url":"https://gitlab.com/ckaburu","username":"ckaburu","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/9767417/avatar.png","public_email":""},"labels":["Category:Permissions","devops::software supply chain security","group::authorization","section::sec","type::bug"],"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601819","imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"created_at":"2026-06-02T11:01:22.926Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601819","short":"#601819","relative":"#601819"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T11:10:03.304Z","description":"\n\n<!---\nPlease read this!\n\nBefore opening a new issue, make sure to search for keywords in the issues\nfiltered by the \"regression\" or \"type::bug\" label:\n\n- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=regression\n- https://gitlab.com/gitlab-org/gitlab/issues?label_name%5B%5D=type::bug\n\nand verify the issue you're about to submit isn't a duplicate.\n--->\n\n### Summary\n\nWhen a project is shared with a subgroup, a user can retain effective `Maintainer` access on the project through that invited subgroup while disappearing from both `GET /projects/:id/members/all` and the project Members UI.\n\n- The invited project group is a subgroup\n- The user reaches that invited subgroup through a group share into an ancestor of the invited subgroup\n- An unrelated direct membership is removed\n- The effective project authorization remains\n- The project members listing drops the user anyway\n\n### Steps to reproduce Locally (Reproduced on `v18.9.5`)\n\n#### Topology\n\n- `root`\n  - `projects`\n  - `usr-mgmt-group`\n    - `admin`\n    - `developer`\n    - `maintainer`\n    - `usr-mgmt_only-for_usr-mgmt-group`\n\n#### Steps\n\n 1. Create users:\n    - `john.doe`\n    - `jane.doe`\n 2. Add direct memberships:\n    - `john.doe` -\\> `usr-mgmt-group/developer` with access `20`\n    - `jane.doe` -\\> `usr-mgmt-group/admin` with access `50`\n    - `john.doe` -\\> `usr-mgmt_only-for_usr-mgmt-group` with access `50`\n 3. Share `usr-mgmt_only-for_usr-mgmt-group` into `usr-mgmt-group` with access `50`.\n 4. Share `developer` into `projects` with access `30`.\n 5. Share `admin` into `projects` with access `50`.\n 6. Create projects `p1` and `p2` under `projects`.\n 7. Share `maintainer` into `p1` with access `40`.\n 8. Capture baseline:\n    - `GET /groups/<maintainer>/members/all` includes `john.doe` with access `50`\n    - `GET /projects/<p1>/members/all` includes `john.doe` with access `40`\n    - `GET /projects/<p2>/members/all` includes `john.doe` with access `20`\n 9. Remove `john.doe` from `usr-mgmt-group/developer`.\n10. Re-check:\n\n- `GET /groups/<maintainer>/members/all` still includes `john.doe` with access `50`\n- `GET /projects/<p1>/members/all` no longer includes `john.doe`\n- `GET /projects/<p2>/members/all` no longer includes `john.doe`\n\n11. Check effective authorization on `p1`:\n\n- `john.max_member_access_for_project(p1.id)` returns `40`\n- `p1.team.max_member_access(john.id)` returns `40`\n- `Ability.allowed?(john, :invite_project_members, p1)` returns `true`\n\n12. Validate in UI as `john.doe`:\n\n- project Members page still omits `john.doe`\n- `Invite members` button is still present\n- creating a pending invitation succeeds\n\n### What is the current _bug_ behavior?\n\nAfter removing the unrelated direct `developer` membership:\n\n- `GET /groups/<maintainer>/members/all` still shows the user in the invited group path\n- `GET /projects/<p1>/members/all` omits the user\n- the Members UI omits the user\n- effective `Maintainer` authorization on the project remains\n- maintainer-only actions such as inviting members still work\n\n### What is the expected _correct_ behavior?\n\nIf the user still has effective project access through the invited `maintainer` group path, the user should still appear in:\n\n- `GET /projects/:id/members/all`\n- the project Members UI\n\nIf that inheritance chain is not meant to count for project membership, then the effective project authorization should also be removed. The listing and authorization surfaces should not disagree.\n\n### Relevant logs and/or screenshots\n\n<!--Paste any relevant logs - please use code blocks (```) to format console output, logs, and code\n as it's tough to read otherwise.-->\n\n### Output of checks\n\n<!--If you are reporting a bug on GitLab.com, uncomment below-->\n\n<!--This bug happens on GitLab.com-->\n\n<!--and uncomment below if you have /label privileges-->\n\n<!--/label ~\"reproduced on GitLab.com\"-->\n\n<!--or follow up with an issue comment of `@gitlab-bot label ~\"reproduced on GitLab.com\"` if you do not-->\n\n#### Results of GitLab environment info\n\n<!--Input any relevant GitLab environment information if needed.-->\n\n<details>\n<summary>Expand for output related to GitLab environment info</summary>\n\n<pre>\n\nGitLab v\\`18.9.5\\`  \n</pre>\n</details>\n\n#### Results of GitLab application Check\n\n<!--Input any relevant GitLab application check information if needed.-->\n\n<details>\n<summary>Expand for output related to the GitLab application check</summary>\n\n<pre>\n\n(For installations with omnibus-gitlab package run and paste the output of: \\`sudo gitlab-rake gitlab:check SANITIZE=true\\`)  (For installations from source run and paste the output of: \\`sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true\\`)  (we will only investigate if the tests are passing)  \n</pre>\n</details>\n\n### Possible fixes\n\n<!--If you can, link to the line of code that might be responsible for the problem.-->\n\n### Patch release information for backports\n\nIf the bug fix needs to be backported in a [patch release](https://handbook.gitlab.com/handbook/engineering/releases/patch-releases) to a version under [the maintenance policy](https://docs.gitlab.com/policy/maintenance/), please follow the steps on the [patch release runbook for GitLab engineers](https://gitlab.com/gitlab-org/release/docs/-/blob/master/general/patch/engineers.md).\n\nRefer to the [internal \"Release Information\" dashboard](https://dashboards.gitlab.net/d/delivery-release_info/delivery3a-release-information?orgId=1) for information about the next patch release, including the targeted versions, expected release date, and current status.\n\n#### High-severity bug remediation\n\nTo remediate high-severity issues requiring an [internal release](https://handbook.gitlab.com/handbook/engineering/releases/internal-releases/) for single-tenant SaaS instances, refer to the [internal release process for engineers](https://gitlab.com/gitlab-org/release/docs/-/blob/master/general/internal-releases/engineers.md?ref_type=heads).\n\n<!--If you don't have /label privileges, follow up with an issue comment of `@gitlab-bot label ~\"type::bug\"`-->","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":1,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}},{"id":191572767,"iid":601817,"type":"ISSUE","state":"opened","title":"Secrets Manager: Hide \"New Secret\" button and page actions from users without create permissions","_links":{"self":"https://gitlab.com/api/v4/projects/278964/issues/601817","notes":"https://gitlab.com/api/v4/projects/278964/issues/601817/notes","project":"https://gitlab.com/api/v4/projects/278964","award_emoji":"https://gitlab.com/api/v4/projects/278964/issues/601817/award_emoji"},"author":{"id":5056786,"name":"Joe Randazzo","state":"active","locked":false,"web_url":"https://gitlab.com/jrandazzo","username":"jrandazzo","avatar_url":"https://secure.gravatar.com/avatar/77f9b45b7f886899259e2f1115ce604b6b35c048d1eaaf06b51f3d44f0ac7407?s=80&d=identicon","public_email":""},"labels":["Category:Secrets Management","GitLab Secrets Manager::GA","UX","bug::functional","devops::software supply chain security","frontend","group::pipeline security","priority::1","section::sec","type::bug"],"upvotes":1,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/work_items/601817","imported":false,"severity":"UNKNOWN","assignees":[],"downvotes":0,"has_tasks":true,"created_at":"2026-06-02T10:37:38.334Z","issue_type":"issue","project_id":278964,"references":{"full":"gitlab-org/gitlab#601817","short":"#601817","relative":"#601817"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T10:38:47.254Z","description":"## Summary\n\nUsers with Reporter or Developer role can navigate to the Secrets Manager page and see the **New Secret** button and other action controls (edit, delete), even when they have not been granted the necessary permissions in the Secrets Manager settings. Attempting to create a secret results in a generic permission error, with no upfront indication that the action is unavailable.\n\nThis was surfaced during the Professional Services closed-beta evaluation activity: https://gitlab.com/gitlab-org/gitlab/-/work_items/593750#note_3222018998\n\n## Current behavior\n\n- Reporter+ level users can navigate to the Secrets Manager page if the feature is enabled on the project/group.\n- The **New Secret** button is visible and the creation form is accessible.\n- On submit, a generic `permission denied` error is shown.\n- No upfront feedback indicates the user lacks the required permissions.\n\n## Expected behavior\n\n- The **New Secret** button should be hidden (or disabled with a clear tooltip) for users who have not been granted create permissions in the Secrets Manager settings.\n- Similarly, edit and delete actions in the secret list should be hidden for users without the corresponding permissions.\n- Ideally, users with no secrets permissions at all should not be able to navigate to the Secrets Manager page, or should see a clear empty state explaining they have no access.\n\n## Context\n\nA previous issue [#477584](https://gitlab.com/gitlab-org/gitlab/-/work_items/477584) tracked this work. It was closed after partial implementation (securing GraphQL endpoints, adding permission forms), but the frontend UX hiding of buttons based on granular permissions was explicitly deferred from GA. See the discussion in the beta activity for the decision context: https://gitlab.com/gitlab-org/gitlab/-/work_items/477584#note_2694035209\n\nThis issue tracks the remaining UX gap.\n\n## Steps to reproduce\n\n1. Enable Secrets Manager on a project/group.\n2. Create a user with Developer role on the project.\n3. Do **not** grant that user any Secrets Manager permissions in the settings.\n4. Log in as that user and navigate to **Secure > Secrets**.\n5. Observe the **New Secret** button is visible and the form is accessible.\n6. Attempt to create a secret — observe the generic permission error.\n\n## Proposal\n\n- Fetch granular Secrets Manager permissions for the current user on page load.\n- Hide the **New Secret** button if the user lacks the `create` permission.\n- Hide edit/delete actions in the secret list if the user lacks `update`/`delete` permissions.\n- Consider restricting navigation to the Secrets Manager page entirely for users with no permissions granted.","task_status":"0 of 0 checklist items completed","confidential":false,"imported_from":"none","user_notes_count":0,"merge_requests_count":0,"blocking_issues_count":0,"task_completion_status":{"count":0,"completed_count":0}}],"meta":{"timestamp":"2026-06-02T16:52:27.346Z","request_id":"ddb55dc3-fa8a-438f-9fb5-ceb47381b86e"},"status":"ok","message":"Project issues","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/project/languages":{"get":{"operationId":"get_v1_project_languages","tags":["Project"],"summary":"Language breakdown","description":"","parameters":[{"name":"project","in":"query","required":true,"description":"Project id or group/name path (or gitlab.com URL)","schema":{"type":"string"},"example":"gitlab-org/gitlab"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"Vue":7.63,"Haml":1,"Ruby":68.59,"PLpgSQL":2.16,"JavaScript":19.3},"meta":{"timestamp":"2026-06-02T16:52:28.159Z","request_id":"5f1c1864-9257-4e88-b91c-a0ae2dd69b9d"},"status":"ok","message":"Project languages","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/project/merge-requests":{"get":{"operationId":"get_v1_project_merge_requests","tags":["Project"],"summary":"Merge requests","description":"","parameters":[{"name":"project","in":"query","required":true,"description":"Project id or group/name path (or gitlab.com URL)","schema":{"type":"string"},"example":"gitlab-org/gitlab"},{"name":"state","in":"query","required":false,"description":"opened|closed|merged|all","schema":{"type":"string"}},{"name":"per_page","in":"query","required":false,"description":"Page size (max 100)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":[{"id":491535799,"iid":238953,"sha":"2bf6216f7a96f1c67256a89efb6d22aae8d8795b","draft":true,"state":"opened","title":"Draft: Update `index_vuln_namespace_statistics_btree_traversal_ids`  unique index to add sharding key","author":{"id":7825316,"name":"Subashis  Chakraborty","state":"active","locked":false,"web_url":"https://gitlab.com/subashis","username":"subashis","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/7825316/avatar.png","public_email":""},"labels":["Category:Vulnerability Management","Data Warehouse::Impact Check","automation:ml","database","database::review pending","devops::security risk management","group::security infrastructure","maintenance::scalability","missed:19.0","pipeline::tier-1","section::sec","type::maintenance","workflow::in dev"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238953","assignee":{"id":7825316,"name":"Subashis  Chakraborty","state":"active","locked":false,"web_url":"https://gitlab.com/subashis","username":"subashis","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/7825316/avatar.png","public_email":""},"imported":false,"assignees":[{"id":7825316,"name":"Subashis  Chakraborty","state":"active","locked":false,"web_url":"https://gitlab.com/subashis","username":"subashis","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/7825316/avatar.png","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238953","reviewers":[],"created_at":"2026-06-02T16:47:22.232Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238953","short":"!238953","relative":"!238953"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:50:23.234Z","description":"This MR updates `index_vuln_namespace_statistics_btree_traversal_ids` to add sharding key so that we can make sure feature parity for Organizations.\n\n\nRelated to #592042","prepared_at":"2026-06-02T16:47:56.817Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"592042-update-index6","target_branch":"master","squash_on_merge":true,"user_notes_count":2,"work_in_progress":true,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"draft_status","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491534341,"iid":238952,"sha":"0706930824bf5d3ba6cf971c4ca3161873bc85b1","draft":false,"state":"opened","title":"Open audit event details panel from the session drawer","author":{"id":1230286,"name":"Illya Klymov","state":"active","locked":false,"web_url":"https://gitlab.com/xanf","username":"xanf","avatar_url":"https://secure.gravatar.com/avatar/2d4083cefd587e70a8a10f62c29dfb8f3b84cc9774714fd3945616912694c9f1?s=80&d=identicon","public_email":"iklymov@gitlab.com"},"labels":["frontend","pipeline::tier-1","type::feature"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238952","assignee":{"id":1230286,"name":"Illya Klymov","state":"active","locked":false,"web_url":"https://gitlab.com/xanf","username":"xanf","avatar_url":"https://secure.gravatar.com/avatar/2d4083cefd587e70a8a10f62c29dfb8f3b84cc9774714fd3945616912694c9f1?s=80&d=identicon","public_email":"iklymov@gitlab.com"},"imported":false,"assignees":[{"id":1230286,"name":"Illya Klymov","state":"active","locked":false,"web_url":"https://gitlab.com/xanf","username":"xanf","avatar_url":"https://secure.gravatar.com/avatar/2d4083cefd587e70a8a10f62c29dfb8f3b84cc9774714fd3945616912694c9f1?s=80&d=identicon","public_email":"iklymov@gitlab.com"}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238952","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T16:42:24.623Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238952","short":"!238952","relative":"!238952"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:47:50.151Z","description":"## What does this MR do and why?\n\nAdds the navigation shell for the audit event details panel on the Agent\nArtifacts page. Audit events in the session details drawer become\nclickable; clicking one replaces the session body with a details panel\nshowing the event name, breadcrumbs and a \"← Audit events\" back link. The\ndrawer keeps a single close control in its chrome header.\n\nThis is the first frontend slice. The Summary and Details sections, and\nthe maximize-to-full-page view, follow in separate merge requests. It is\nindependent of the backend GraphQL fields MR (gitlab-org/gitlab!238951) —\nthose fields are only consumed once the Summary section lands.\n\nBehind the `agent_artifacts_page` feature flag (AI Audit Event Report,\nBeta).\n\n## References\n\n- https://gitlab.com/gitlab-org/gitlab/-/work_items/592485\n\n## Screenshots or screen recordings\n\n_To be added._\n\n## How to verify\n\n1. Enable the feature flag in a Rails console:\n   `Feature.enable(:agent_artifacts_page)`.\n2. Seed sessions with audit events\n   (`ee/db/fixtures/development/96_agent_artifacts.rb`), or use a group\n   you own that has Duo Agent Platform sessions.\n3. Visit the group → **Secure → Agent sessions**\n   (`/groups/<group>/-/security/agent_artifacts`).\n4. Open a session row to show the session details drawer.\n5. Click an audit event in the timeline: the panel replaces the session\n   body and shows the event name as the title, breadcrumbs, and a\n   \"← Audit events\" back link.\n6. Click the back link to return to the session details; click the close\n   (X) in the drawer header to close the drawer.","prepared_at":"2026-06-02T16:42:49.946Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"592485-audit-event-details-panel-navigation","target_branch":"master","squash_on_merge":true,"user_notes_count":4,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"discussions_not_resolved","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491530711,"iid":238951,"sha":"fe801df69de0d29ca8f4931c1b7b0b8f30c272a0","draft":false,"state":"opened","title":"Expose Duo agent audit event summary fields in GraphQL","author":{"id":1230286,"name":"Illya Klymov","state":"active","locked":false,"web_url":"https://gitlab.com/xanf","username":"xanf","avatar_url":"https://secure.gravatar.com/avatar/2d4083cefd587e70a8a10f62c29dfb8f3b84cc9774714fd3945616912694c9f1?s=80&d=identicon","public_email":"iklymov@gitlab.com"},"labels":["backend","documentation","pipeline::tier-1","type::feature"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238951","assignee":{"id":1230286,"name":"Illya Klymov","state":"active","locked":false,"web_url":"https://gitlab.com/xanf","username":"xanf","avatar_url":"https://secure.gravatar.com/avatar/2d4083cefd587e70a8a10f62c29dfb8f3b84cc9774714fd3945616912694c9f1?s=80&d=identicon","public_email":"iklymov@gitlab.com"},"imported":false,"assignees":[{"id":1230286,"name":"Illya Klymov","state":"active","locked":false,"web_url":"https://gitlab.com/xanf","username":"xanf","avatar_url":"https://secure.gravatar.com/avatar/2d4083cefd587e70a8a10f62c29dfb8f3b84cc9774714fd3945616912694c9f1?s=80&d=identicon","public_email":"iklymov@gitlab.com"}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238951","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T16:31:49.355Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238951","short":"!238951","relative":"!238951"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:38:07.761Z","description":"## What does this MR do and why?\n\nExposes the entity and target attributes of GitLab Duo Agent Platform\naudit events (`AiAuditEvent`) on the GraphQL type, so the upcoming audit\nevent details panel can render its Summary section.\n\nAdds six `null: true` fields — `entityId`, `entityType`, `entityPath`,\n`targetId`, `targetType`, `targetDetails` — resolved through the existing\n`hash_or_attr` \n\n* The model's `entity_path` is made publicly readable so the resolver can reach it.\n\nThe fields are surfaced only when the `agent_artifacts_page` feature flag\nis enabled, as part of the AI Audit Event Report (Beta). This is the\nfirst, backend-only slice; the frontend slices follow in separate merge\nrequests.\n\n## References\n\n- https://gitlab.com/gitlab-org/gitlab/-/work_items/592485\n\n## How to verify\n\n1. Enable the feature flag: in a Rails console run\n   `Feature.enable(:agent_artifacts_page)`.\n2. Pick a Duo Agent Platform session you own that has audit events\n3. In the GraphiQL explorer (`/-/graphql-explorer`), run the query below\n   with that session's global ID and confirm the new fields resolve:\n\n```graphql\nquery {\n  duoWorkflowWorkflows(workflowId: \"gid://gitlab/Ai::DuoWorkflows::Workflow/<ID>\") {\n    nodes {\n      id\n      auditEvents {\n        nodes {\n          id\n          eventName\n          entityId\n          entityType\n          entityPath\n          targetId\n          targetType\n          targetDetails\n        }\n      }\n    }\n  }\n}\n```\n\nFor a project-scoped event expect `entityType: \"Project\"`, a populated\n`entityPath`, `targetType: \"Ai::DuoWorkflows::Workflow\"` and `targetId`\nequal to the workflow id.","prepared_at":"2026-06-02T16:32:21.464Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"592485-expose-ai-audit-event-graphql-fields","target_branch":"master","squash_on_merge":true,"user_notes_count":5,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"discussions_not_resolved","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491529528,"iid":238950,"sha":"da29497efbdec675285f37895325f6437712ae83","draft":false,"state":"opened","title":"Support table of contents button for org-mode file previews","author":{"id":2687207,"name":"skkzsh","state":"active","locked":false,"web_url":"https://gitlab.com/skkzsh","username":"skkzsh","avatar_url":"https://secure.gravatar.com/avatar/3bd4b05a487eee425fe9b826b23d8c3cdb7d1844bdbc32e9703dc3069049329d?s=80&d=identicon","public_email":"skkzsh12@gmail.com"},"labels":["Category:Source Code Management","Community contribution","devops::create","group::source code","linked-issue","pipeline::tier-1","section::dev","type::feature","workflow::in dev"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238950","assignee":{"id":2687207,"name":"skkzsh","state":"active","locked":false,"web_url":"https://gitlab.com/skkzsh","username":"skkzsh","avatar_url":"https://secure.gravatar.com/avatar/3bd4b05a487eee425fe9b826b23d8c3cdb7d1844bdbc32e9703dc3069049329d?s=80&d=identicon","public_email":"skkzsh12@gmail.com"},"imported":false,"assignees":[{"id":2687207,"name":"skkzsh","state":"active","locked":false,"web_url":"https://gitlab.com/skkzsh","username":"skkzsh","avatar_url":"https://secure.gravatar.com/avatar/3bd4b05a487eee425fe9b826b23d8c3cdb7d1844bdbc32e9703dc3069049329d?s=80&d=identicon","public_email":"skkzsh12@gmail.com"}],"downvotes":0,"reference":"!238950","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T16:28:19.076Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238950","short":"!238950","relative":"!238950"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:38:40.007Z","description":"## What does this MR do and why?\n\nCloses #600361.\n\norg-ruby doesn't generate heading anchors, so this MR introduces `Banzai::Filter::MarkupHeadingAnchorFilter` to inject them into rendered HTML.\n\n## Screenshots\nVisually confirmed rendering on GDK-in-a-box.\n\n![org-toc](/uploads/59679abd77f2bc7d9748f8e418002712/org-toc-0603.png){width=577 height=211}\n\n## Notes\n\n- No docs updates included – this area isn't well covered by existing documentation.\n  If there are specific docs that should be updated, please flag them.\n- Backend engineer, but fairly new to Rails – feedback on Rails conventions welcome. \n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist).\nIt helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.","prepared_at":"2026-06-02T16:35:25.160Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"skkzsh/org-toc","target_branch":"master","squash_on_merge":true,"user_notes_count":4,"work_in_progress":false,"source_project_id":41372369,"target_project_id":278964,"allow_collaboration":true,"detailed_merge_status":"unchecked","task_completion_status":{"count":0,"completed_count":0},"allow_maintainer_to_push":true,"force_remove_source_branch":false,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":true},{"id":491529281,"iid":238949,"sha":"c725ee3d330e8a21cf0f16b18d2fc21a14f101b3","draft":false,"state":"opened","title":"feat: add OTel cicd.* and vcs.* semconv attributes to pipeline traces","author":{"id":35689833,"name":"Ruben Peñate","state":"active","locked":false,"web_url":"https://gitlab.com/ruben.penate","username":"ruben.penate","avatar_url":"https://secure.gravatar.com/avatar/40f1edd06224d0306cd02b00a98faa5c1a74f179e9f9d77995ed146c94f05435?s=80&d=identicon"},"labels":["1st contribution","Community contribution","pipeline::tier-1","workflow::in dev"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238949","assignee":{"id":35689833,"name":"Ruben Peñate","state":"active","locked":false,"web_url":"https://gitlab.com/ruben.penate","username":"ruben.penate","avatar_url":"https://secure.gravatar.com/avatar/40f1edd06224d0306cd02b00a98faa5c1a74f179e9f9d77995ed146c94f05435?s=80&d=identicon"},"imported":false,"assignees":[{"id":35689833,"name":"Ruben Peñate","state":"active","locked":false,"web_url":"https://gitlab.com/ruben.penate","username":"ruben.penate","avatar_url":"https://secure.gravatar.com/avatar/40f1edd06224d0306cd02b00a98faa5c1a74f179e9f9d77995ed146c94f05435?s=80&d=identicon"}],"downvotes":0,"reference":"!238949","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T16:27:32.875Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238949","short":"!238949","relative":"!238949"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:35:54.689Z","description":"<!--**Not ready yet?** Add `[ci skip]` to your MR title to skip the pipeline and save CI resources. \nIt's a small habit that makes a big difference for our shared compute budget and overall system load. \nEvery pipeline counts! 🙌-->\n\n## What does this MR do and why?\n\nfeat: add OTel cicd.\\* and vcs.\\* semconv attributes to pipeline traces\n\nAdd dual-emit support for OpenTelemetry CI/CD semantic conventions alongside existing legacy attributes in pipeline_to_traces.rb.\n\nNew attributes added:\n\n- cicd.pipeline.name, cicd.pipeline.run.id, cicd.pipeline.result, cicd.pipeline.run.state, cicd.pipeline.run.url.full, cicd.pipeline.trigger.type\n- cicd.pipeline.task.name, cicd.pipeline.task.run.id, cicd.pipeline.task.run.result, cicd.pipeline.task.type\n- cicd.worker.id, cicd.worker.name, cicd.worker.state\n- vcs.provider.name, vcs.repository.name, vcs.owner.name, vcs.repository.url.full, vcs.ref.head.name, vcs.ref.head.revision, vcs.ref.head.type, vcs.ref.base.revision\n\nValue mappings align with OTel semconv enums:\n\n- status -\\> result (success/failure/cancellation/skip)\n- status -\\> run.state (pending/executing)\n- runner.active -\\> worker.state (available/offline)\n\nLegacy pipeline._/job._ attributes preserved for backward compatibility.\n\n## References\n\n<!--Include [links](https://handbook.gitlab.com/handbook/communication/#start-with-a-merge-request:~:text=Cross%20link%20issues,alternate%20if%20duplicate.) to any resources that are relevant to this MR.\nThis will give reviewers and future readers helpful context.-->\n\nRef: https://opentelemetry.io/docs/specs/semconv/registry/attributes/cicd/ \nRef: https://gitlab.com/gitlab-com/account-management/emea/ericsson/ericsson-collaboration-hub/-/work_items/104\n\n## Screenshots or screen recordings\n\n<!---\nScreenshots are required for UI changes, and strongly recommended for all other merge requests.-->\n\n| Before | After |\n|--------|-------|\n|  |  |\n\n<!--OPTIONAL: For responsive UI changes, you can use the viewport size table below.\nDelete this table if not needed or delete rows that are not relevant to your changes.\n\n| Viewport size   | Before     | After      |\n| ----------------| ---------- | ---------- |\n| `xs` (<576px)   |            |            |\n| `sm` (>=576px)  |            |            |\n| `md` (>=768px)  |            |            |\n| `lg` (>=992px)  |            |            |\n| `xl` (>=1200px) |            |            |-->\n\n## How to set up and validate locally\n\n<!--Numbered steps to set up and validate the change are strongly suggested.\n\nExample:\n\n1. In rails console enable the feature flag\n   ```ruby\n   Feature.enable(:member_areas_of_focus)\n   ```\n1. Visit any group or project member pages such as `http://127.0.0.1:3000/groups/flightjs/-/group_members`\n1. Click the `invite members` button.-->\n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist). It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.","prepared_at":"2026-06-02T16:32:27.749Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"ruben_penate/cicd-semconv-attributes","target_branch":"master","squash_on_merge":true,"user_notes_count":5,"work_in_progress":false,"source_project_id":41372369,"target_project_id":278964,"allow_collaboration":true,"detailed_merge_status":"discussions_not_resolved","task_completion_status":{"count":0,"completed_count":0},"allow_maintainer_to_push":true,"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491527254,"iid":238947,"sha":"5ae636a79869dc5c9f1b06ca9415115d7936e1b8","draft":true,"state":"opened","title":"Draft: Extract FeatureGenerator::Shared module for bin/ CLI scripts","author":{"id":28518973,"name":"Kiesha Herman","state":"active","locked":false,"web_url":"https://gitlab.com/kherman1","username":"kherman1","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/28518973/avatar.png","public_email":""},"labels":["backend","maintenance::refactor","pipeline::tier-1","section::growth","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238947","assignee":{"id":28518973,"name":"Kiesha Herman","state":"active","locked":false,"web_url":"https://gitlab.com/kherman1","username":"kherman1","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/28518973/avatar.png","public_email":""},"imported":false,"assignees":[{"id":28518973,"name":"Kiesha Herman","state":"active","locked":false,"web_url":"https://gitlab.com/kherman1","username":"kherman1","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/28518973/avatar.png","public_email":""}],"downvotes":0,"reference":"!238947","reviewers":[],"created_at":"2026-06-02T16:20:35.016Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238947","short":"!238947","relative":"!238947"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:29:15.721Z","description":"## What does this MR do and why?\n\nExtracts the shared machinery from `bin/saas-feature.rb` and `bin/dedicated-feature.rb` into a new `lib/feature_generator/shared.rb` module, eliminating \\~550 lines of duplication. Each bin script becomes a thin domain-specific wrapper.\n\nThe shared module (`FeatureGenerator::Shared`) provides three mixins:\n\n- `Helpers` — `capture_stdout`, `fail_with`\n- `OptionParserMixin` — group/URL/milestone prompts, fzf/readline dispatch, HTTP helpers\n- `CreatorMixin` — file-write, amend, branch-guard, name validation\n\nAlso fixes several latent bugs that existed in both scripts:\n\n- `url&.empty?` guard so `Readline.readline` returning `nil` (Ctrl-D) no longer raises `NoMethodError`\n- `valid_url?` now returns explicit `false` instead of `nil` on failure\n- `find_group_by_label` uses `&.last` to avoid `NoMethodError` on missing label\n\nFor reviewing, the first commit is the shared script, the second commit inserts the shared module into the feature scripts.\n\nPhase 2 (see #601414) will migrate `bin/feature-flag` to the same shared module.\n\n## References\n\n- Issue: #601414\n- Follows on from: !237752 (introduced `bin/dedicated-feature.rb`)\n\n## Screenshots or screen recordings\n\nNo UI changes — CLI tooling refactor only.\n\n## How to set up and validate locally\n\n1. Run the specs:\n\n   ```shell\n   bundle exec rspec spec/bin/saas_feature_spec.rb \\\n                     spec/bin/dedicated_feature_spec.rb \\\n                     spec/lib/feature_generator/shared_spec.rb\n   ```\n\n   77 examples should pass.\n2. Smoke-test each wrapper:\n\n   ```shell\n   bin/saas-feature.rb dummy --dry-run -g group::geo -M 19.1 -m https://gitlab.com/test\n   bin/dedicated-feature.rb dummy --dry-run -g group::geo -M 19.1 -m https://gitlab.com/test\n   ```\n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist). It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.","prepared_at":"2026-06-02T16:21:00.256Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"601414-extract-feature-generator-shared","target_branch":"master","squash_on_merge":true,"user_notes_count":1,"work_in_progress":true,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"draft_status","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":true},{"id":491526413,"iid":238946,"sha":"3c271b2328094b2fdb864552dd7d65d2fc3ee669","draft":false,"state":"opened","title":"Updating writer ownership","author":{"id":5213246,"name":"Suzanne Selhorn","state":"active","locked":false,"web_url":"https://gitlab.com/sselhorn","username":"sselhorn","avatar_url":"https://secure.gravatar.com/avatar/5bcf706b02430a7a76655ccf97035289e991834fc3b0795006c39b2bad693af3?s=80&d=identicon","public_email":""},"labels":["Technical Writing","backend","documentation","maintenance::refactor","pipeline::tier-1","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238946","assignee":{"id":5213246,"name":"Suzanne Selhorn","state":"active","locked":false,"web_url":"https://gitlab.com/sselhorn","username":"sselhorn","avatar_url":"https://secure.gravatar.com/avatar/5bcf706b02430a7a76655ccf97035289e991834fc3b0795006c39b2bad693af3?s=80&d=identicon","public_email":""},"imported":false,"assignees":[{"id":5213246,"name":"Suzanne Selhorn","state":"active","locked":false,"web_url":"https://gitlab.com/sselhorn","username":"sselhorn","avatar_url":"https://secure.gravatar.com/avatar/5bcf706b02430a7a76655ccf97035289e991834fc3b0795006c39b2bad693af3?s=80&d=identicon","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238946","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"},{"id":26727492,"name":"Robert Landry","state":"active","locked":false,"web_url":"https://gitlab.com/rjlandry","username":"rjlandry","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/26727492/avatar.png","public_email":""},{"id":30943274,"name":"Sarah Watt","state":"active","locked":false,"web_url":"https://gitlab.com/sarahwatt","username":"sarahwatt","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/30943274/avatar.png","public_email":""}],"created_at":"2026-06-02T16:17:40.876Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238946","short":"!238946","relative":"!238946"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:39:49.526Z","description":"\n## What does this MR do?\n\nThis MR updates the CODEOWNERS file with writer updates.\n\n## Related issues\n\n<!-- Link related issues below. -->\n\n## Author's checklist\n\n- [ ] Optional. Consider taking [the GitLab Technical Writing Fundamentals course](https://university.gitlab.com/courses/gitlab-technical-writing-fundamentals).\n- [ ] Follow the:\n  - [Documentation process](https://docs.gitlab.com/development/documentation/workflow/).\n  - [Documentation guidelines](https://docs.gitlab.com/development/documentation/).\n  - [Style Guide](https://docs.gitlab.com/development/documentation/styleguide/).\n- [ ] If you're adding a new page, add the [product availability details](https://docs.gitlab.com/development/documentation/styleguide/availability_details/) under the H1 topic title.\n- [ ] If you are a GitLab team member, [request a review](https://docs.gitlab.com/development/code_review/#dogfooding-the-reviewers-feature) based on:\n    - The documentation page's [metadata](https://docs.gitlab.com/development/documentation/metadata/).\n    - The [associated Technical Writer](https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments).\n\nIf you are a GitLab team member and only adding documentation, do not add any of the following labels:\n\n- `~\"frontend\"`\n- `~\"backend\"`\n- `~\"type::bug\"`\n- `~\"database\"`\n\nThese labels cause the MR to be added to code verification QA issues.\n\n## Reviewer's checklist\n\nDocumentation-related MRs should be reviewed by a Technical Writer for a non-blocking review, based on [Documentation Guidelines](https://docs.gitlab.com/development/documentation/) and the [Style Guide](https://docs.gitlab.com/development/documentation/styleguide/).\n\nIf you aren't sure which tech writer to ask, use [roulette](https://gitlab-org.gitlab.io/gitlab-roulette/?sortKey=stats.avg30&order=-1&hourFormat24=true&visible=maintainer%7Cdocs) or ask in the [#docs](https://gitlab.slack.com/archives/C16HYA2P5) Slack channel.\n\n- [ ] If the content requires it, ensure the information is reviewed by a subject matter expert.\n- Technical writer review items:\n  - [ ] Ensure docs metadata is present and up-to-date.\n  - [ ] Ensure the appropriate [labels](https://docs.gitlab.com/development/documentation/workflow/#labels) are added to this MR.\n  - [ ] Ensure a release milestone is set.\n  - If relevant to this MR, ensure [content topic type](https://docs.gitlab.com/development/documentation/topic_types/) principles are in use, including:\n    - [ ] The headings should be something you'd do a Google search for. Instead of `Default behavior`, say something like `Default behavior when you close an issue`.\n    - [ ] The headings (other than the page title) should be active. Instead of `Configuring GDK`, say something like `Configure GDK`.\n    - [ ] Any task steps should be written as a numbered list.\n    - If the content still needs to be edited for topic types, you can create a follow-up issue with the ~\"docs-technical-debt\" label.\n- [ ] Review by assigned maintainer, who can always request/require the reviews above. Maintainer's review can occur before or after a technical writer review.","prepared_at":"2026-06-02T16:18:14.514Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"selhorn-codeown-upd","target_branch":"master","squash_on_merge":true,"user_notes_count":4,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":12,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491525707,"iid":238944,"sha":"be8340e49410cd3e633680a640d53b2c383e0e93","draft":false,"state":"opened","title":"Rescue InvalidTransition when resetting source bridge","author":{"id":4088036,"name":"Hordur Freyr Yngvason","state":"active","locked":false,"web_url":"https://gitlab.com/hfyngvason","username":"hfyngvason","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4088036/avatar.png","public_email":""},"labels":["Category:Continuous Integration","backend","devops::verify","group::pipeline execution","pipeline::tier-1","section::ci","type::bug"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238944","assignee":{"id":4088036,"name":"Hordur Freyr Yngvason","state":"active","locked":false,"web_url":"https://gitlab.com/hfyngvason","username":"hfyngvason","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4088036/avatar.png","public_email":""},"imported":false,"assignees":[{"id":4088036,"name":"Hordur Freyr Yngvason","state":"active","locked":false,"web_url":"https://gitlab.com/hfyngvason","username":"hfyngvason","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4088036/avatar.png","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238944","reviewers":[{"id":3167938,"name":"Tiger Watson","state":"active","locked":false,"web_url":"https://gitlab.com/tigerwnz","username":"tigerwnz","avatar_url":"https://secure.gravatar.com/avatar/f3e76216d5cf1ff212a9fc4056d8edca84131c42a1cb3d2375aa913313bf8e8a?s=80&d=identicon","public_email":"twatson@gitlab.com"},{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T16:15:26.902Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238944","short":"!238944","relative":"!238944"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:37:18.839Z","description":"## What does this MR do and why?\n\n`Gitlab::OptimisticLocking.retry_lock` in `EnqueueJobService` reloads the bridge on `lock_version` conflict, so a retried `enqueue!` can run against an already-advanced state (e.g. `:pending`) and the state-machine guard rejects it with `StateMachines::InvalidTransition`. Treat this the same way as the existing `StaleObjectError` rescue in `Ci::ResetSkippedJobsService#reset_source_bridge`: another process already did the work, so log and continue.\n\n## References\n\n- Sentry: https://new-sentry.gitlab.net/organizations/gitlab/issues/3479455\n\n## Screenshots or screen recordings\n\n<!---\nScreenshots are required for UI changes, and strongly recommended for all other merge requests.\n-->\n\n| Before | After  |\n| ------ | ------ |\n|        |        |\n\n## How to set up and validate locally\n\nRun the spec covering the new rescue branch:\n\n```\nbundle exec rspec spec/services/ci/reset_skipped_jobs_service_spec.rb -e \"when the bridge has already been advanced past :created by another process\"\n```\n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist).\nIt helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.","prepared_at":"2026-06-02T16:15:54.400Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"fix/reset-source-bridge-invalid-transition","target_branch":"master","squash_on_merge":true,"user_notes_count":5,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":true},{"id":491520483,"iid":238942,"sha":"33174ada9a611c4700ffb63ff2d015425a78ccf8","draft":false,"state":"opened","title":"Run permissions-verify on GraphQL changes","author":{"id":2709171,"name":"Jay","state":"active","locked":false,"web_url":"https://gitlab.com/jayswain","username":"jayswain","avatar_url":"https://secure.gravatar.com/avatar/60716e6a51c96a5f126b986293c42e49301f0380aced0265756b23613f625e0f?s=80&d=identicon","public_email":"jswain@gitlab.com"},"labels":["Category:Permissions","backend","devops::software supply chain security","group::authorization","pipeline::tier-3","pipeline:mr-approved","section::sec","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238942","assignee":{"id":2709171,"name":"Jay","state":"active","locked":false,"web_url":"https://gitlab.com/jayswain","username":"jayswain","avatar_url":"https://secure.gravatar.com/avatar/60716e6a51c96a5f126b986293c42e49301f0380aced0265756b23613f625e0f?s=80&d=identicon","public_email":"jswain@gitlab.com"},"imported":false,"assignees":[{"id":2709171,"name":"Jay","state":"active","locked":false,"web_url":"https://gitlab.com/jayswain","username":"jayswain","avatar_url":"https://secure.gravatar.com/avatar/60716e6a51c96a5f126b986293c42e49301f0380aced0265756b23613f625e0f?s=80&d=identicon","public_email":"jswain@gitlab.com"}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238942","reviewers":[{"id":11758441,"name":"Dmytro Biryukov","state":"active","locked":false,"web_url":"https://gitlab.com/dbiryukov","username":"dbiryukov","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/11758441/avatar.png","public_email":""},{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T16:00:05.091Z","merge_user":{"id":10662949,"name":"Ian Anderson","state":"active","locked":false,"web_url":"https://gitlab.com/imand3r","username":"imand3r","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/10662949/avatar.png","public_email":""},"project_id":278964,"references":{"full":"gitlab-org/gitlab!238942","short":"!238942","relative":"!238942"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:48:17.831Z","description":"<!--\n**Not ready yet?** Add `[ci skip]` to your MR title to skip the pipeline and save CI resources. \nIt's a small habit that makes a big difference for our shared compute budget and overall system load. \nEvery pipeline counts! 🙌\n-->\n\n## What does this MR do and why?\n\nRun permissions-verify on GraphQL changes\n\nAdds {,ee/}app/graphql/**/*.rb and the GraphQL authorization_todo.txt\nto permissions-patterns so gitlab:permissions:validate runs when\nGraphQL mutations/types are added or removed.\n\nWithout these, removals of GraphQL surface can leave stale entries in\nconfig/authz/graphql/authorization_todo.txt that only surface on a\nlater unrelated MR whose changes happen to match the existing patterns.\n\nRelated to: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/236093\nRelated to: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/237484\n\n## References\n\n<!--\nInclude [links](https://handbook.gitlab.com/handbook/communication/#start-with-a-merge-request:~:text=Cross%20link%20issues,alternate%20if%20duplicate.) to any resources that are relevant to this MR.\nThis will give reviewers and future readers helpful context.\n-->\n\n## Screenshots or screen recordings\n\n<!---\nScreenshots are required for UI changes, and strongly recommended for all other merge requests.\n-->\n\n| Before | After  |\n| ------ | ------ |\n|        |        |\n\n<!--\nOPTIONAL: For responsive UI changes, you can use the viewport size table below.\nDelete this table if not needed or delete rows that are not relevant to your changes.\n\n| Viewport size   | Before     | After      |\n| ----------------| ---------- | ---------- |\n| `xs` (<576px)   |            |            |\n| `sm` (>=576px)  |            |            |\n| `md` (>=768px)  |            |            |\n| `lg` (>=992px)  |            |            |\n| `xl` (>=1200px) |            |            |\n-->\n\n## How to set up and validate locally\n\n<!--\nNumbered steps to set up and validate the change are strongly suggested.\n\nExample:\n\n1. In rails console enable the feature flag\n   ```ruby\n   Feature.enable(:member_areas_of_focus)\n   ```\n1. Visit any group or project member pages such as `http://127.0.0.1:3000/groups/flightjs/-/group_members`\n1. Click the `invite members` button.\n-->\n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist).\nIt helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.","prepared_at":"2026-06-02T16:00:34.740Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"jswain_update_permissions_verify_patterns","target_branch":"master","squash_on_merge":true,"user_notes_count":4,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"ci_still_running","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"should_remove_source_branch":true,"merge_when_pipeline_succeeds":true,"blocking_discussions_resolved":true},{"id":491520428,"iid":238941,"sha":"fc1f586341c7f394c7ed55beb129349c35939d8b","draft":false,"state":"opened","title":"Remove duo core features and rename title","author":{"id":25822156,"name":"Thomas Loughlin","state":"active","locked":false,"web_url":"https://gitlab.com/tloughlin","username":"tloughlin","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/25822156/avatar.png","public_email":""},"labels":["Support Team Contributions","Technical Writing","devops::ai-powered","docs-only","documentation","group::ai framework","maintenance::refactor","section::ai","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238941","assignee":{"id":25822156,"name":"Thomas Loughlin","state":"active","locked":false,"web_url":"https://gitlab.com/tloughlin","username":"tloughlin","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/25822156/avatar.png","public_email":""},"imported":false,"assignees":[{"id":25822156,"name":"Thomas Loughlin","state":"active","locked":false,"web_url":"https://gitlab.com/tloughlin","username":"tloughlin","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/25822156/avatar.png","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238941","reviewers":[{"id":11980591,"name":"Ashraf Khamis","state":"active","locked":false,"web_url":"https://gitlab.com/ashrafkhamis","username":"ashrafkhamis","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/11980591/avatar.png","public_email":""},{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:59:54.223Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238941","short":"!238941","relative":"!238941"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:44:55.942Z","description":"\n## What does this MR do?\n\n- Removes `yes` from non-agentic Duo features for Duo Core, except Code Suggestions (still available, with usage billing).\n- Renames page title to `GitLab Duo Non-Agentic features`\n\n## Related issues\n\nN/A\n\n## Author's checklist\n\n- [x] Optional. Consider taking [the GitLab Technical Writing Fundamentals course](https://university.gitlab.com/courses/gitlab-technical-writing-fundamentals).\n- [x] Follow the:\n  - [Documentation process](https://docs.gitlab.com/development/documentation/workflow/).\n  - [Documentation guidelines](https://docs.gitlab.com/development/documentation/).\n  - [Style Guide](https://docs.gitlab.com/development/documentation/styleguide/).\n- [ ] If you're adding a new page, add the [product availability details](https://docs.gitlab.com/development/documentation/styleguide/availability_details/) under the H1 topic title.\n- [x] If you are a GitLab team member, [request a review](https://docs.gitlab.com/development/code_review/#dogfooding-the-reviewers-feature) based on:\n    - The documentation page's [metadata](https://docs.gitlab.com/development/documentation/metadata/).\n    - The [associated Technical Writer](https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments).\n\nIf you are a GitLab team member and only adding documentation, do not add any of the following labels:\n\n- `~\"frontend\"`\n- `~\"backend\"`\n- `~\"type::bug\"`\n- `~\"database\"`\n\nThese labels cause the MR to be added to code verification QA issues.\n\n## Reviewer's checklist\n\nDocumentation-related MRs should be reviewed by a Technical Writer for a non-blocking review, based on [Documentation Guidelines](https://docs.gitlab.com/development/documentation/) and the [Style Guide](https://docs.gitlab.com/development/documentation/styleguide/).\n\nIf you aren't sure which tech writer to ask, use [roulette](https://gitlab-org.gitlab.io/gitlab-roulette/?sortKey=stats.avg30&order=-1&hourFormat24=true&visible=maintainer%7Cdocs) or ask in the [#docs](https://gitlab.slack.com/archives/C16HYA2P5) Slack channel.\n\n- [ ] If the content requires it, ensure the information is reviewed by a subject matter expert.\n- Technical writer review items:\n  - [ ] Ensure docs metadata is present and up-to-date.\n  - [ ] Ensure the appropriate [labels](https://docs.gitlab.com/development/documentation/workflow/#labels) are added to this MR.\n  - [ ] Ensure a release milestone is set.\n  - If relevant to this MR, ensure [content topic type](https://docs.gitlab.com/development/documentation/topic_types/) principles are in use, including:\n    - [ ] The headings should be something you'd do a Google search for. Instead of `Default behavior`, say something like `Default behavior when you close an issue`.\n    - [ ] The headings (other than the page title) should be active. Instead of `Configuring GDK`, say something like `Configure GDK`.\n    - [ ] Any task steps should be written as a numbered list.\n    - If the content still needs to be edited for topic types, you can create a follow-up issue with the ~\"docs-technical-debt\" label.\n- [ ] Review by assigned maintainer, who can always request/require the reviews above. Maintainer's review can occur before or after a technical writer review.","prepared_at":"2026-06-02T16:00:20.798Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"docs-tloughlin-duo-non-agentic-features","target_branch":"master","squash_on_merge":true,"user_notes_count":5,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":12,"completed_count":3},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491517243,"iid":238939,"sha":"6217cad17b8f75f0d907e8093f550046677e58b0","draft":true,"state":"opened","title":"Draft: Apply button style props to DuoWorkflowAction component","author":{"id":21549916,"name":"Vanessa Otto","state":"active","locked":false,"web_url":"https://gitlab.com/vanessaotto","username":"vanessaotto","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21549916/avatar.png","public_email":""},"labels":["devops::plan","frontend","group::knowledge","pipeline::tier-1","section::dev","type::feature","workflow::ready for review"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238939","assignee":{"id":21549916,"name":"Vanessa Otto","state":"active","locked":false,"web_url":"https://gitlab.com/vanessaotto","username":"vanessaotto","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21549916/avatar.png","public_email":""},"imported":false,"assignees":[{"id":21549916,"name":"Vanessa Otto","state":"active","locked":false,"web_url":"https://gitlab.com/vanessaotto","username":"vanessaotto","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21549916/avatar.png","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238939","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:50:02.793Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238939","short":"!238939","relative":"!238939"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:37:40.534Z","description":"## What does this MR do and why?\n\nPasses `generateMrButtonOptions` props (`size`, `variant`, `category`) to the `DuoWorkflowAction` component in `duo_work_item_to_mr_action.vue`.\n\nPreviously, the button style options were only applied to the `DuoChatQuickAction` component (when the feature flag is enabled), while the `DuoWorkflowAction` component had `size` hardcoded to `\"medium\"` and did not receive `variant` or `category` at all. This change ensures both code paths respect the `generateMrButtonOptions` prop consistently.","prepared_at":"2026-06-02T15:50:32.752Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"votto-apply-button-options-to-workflow-action","target_branch":"master","squash_on_merge":true,"user_notes_count":3,"work_in_progress":true,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"draft_status","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491516772,"iid":238938,"sha":"b4f0cbb96fb2aa79fa3de81358c8d0193b7ef877","draft":false,"state":"opened","title":"Add glab skill and enforce skill version bumps","author":{"id":5054237,"name":"Dmitry Gruzd","state":"active","locked":false,"web_url":"https://gitlab.com/dgruzd","username":"dgruzd","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/5054237/avatar.png","public_email":"dgruzd@gitlab.com"},"labels":["Category:Knowledge Graph","backend","frontend","group::knowledge-graph","maintenance::workflow","pipeline::tier-1","section::analytics","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238938","assignee":{"id":5054237,"name":"Dmitry Gruzd","state":"active","locked":false,"web_url":"https://gitlab.com/dgruzd","username":"dgruzd","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/5054237/avatar.png","public_email":"dgruzd@gitlab.com"},"imported":false,"assignees":[{"id":5054237,"name":"Dmitry Gruzd","state":"active","locked":false,"web_url":"https://gitlab.com/dgruzd","username":"dgruzd","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/5054237/avatar.png","public_email":"dgruzd@gitlab.com"}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238938","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:48:29.422Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238938","short":"!238938","relative":"!238938"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:36:54.905Z","description":"## What does this MR do and why?\n\nMoves the `glab` skill from [`gitlab-org/ai/skills`](https://gitlab.com/gitlab-org/ai/skills) into the monolith so anyone working with `glab` locally in an agentic setup gets it without a separate install. The skill is auto-discovered from `.claude/skills/` (and mirrored to `.agents/skills/` for OpenCode) at session start.\n\nSince `.claude/skills/**` is otherwise forbidden from being tracked by git, this also allowlists the `glab/` directory in the `ai_harness` doctor tool, with a matching integration spec and `SPECIFICATION` updates.\n\nTo make sure we always bump a skill's `version:` when changing it, this adds `scripts/lint/check-skills-version-bump.sh` wired into both Lefthook (pre-push) and CI. The check compares each changed skill's version against the baseline (merge-base with `origin/master` locally, `CI_MERGE_REQUEST_DIFF_BASE_SHA` in CI). Skills without a `version:` field and brand-new skills are skipped.\n\n## References\n\n- Closes https://gitlab.com/gitlab-org/gitlab/-/issues/601836","prepared_at":"2026-06-02T15:48:55.849Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"601836-add-glab-skill-and-version-bump-check","target_branch":"master","squash_on_merge":true,"user_notes_count":6,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491515649,"iid":238937,"sha":"9f583088436a9b4c509b55985c2685ea2db18790","draft":false,"state":"opened","title":"Add feature_category metadata to batch-008 specs","author":{"id":438961,"name":"Peter Leitzen","state":"active","locked":false,"web_url":"https://gitlab.com/splattael","username":"splattael","avatar_url":"https://secure.gravatar.com/avatar/1770b841bba7c10e32e4a10f69d7b2cbc5d2d225fd1835388bcd4e0689fa6fd6?s=80&d=identicon","public_email":"pleitzen@gitlab.com"},"labels":["backend","devops::developer experience","group::development tooling","pipeline::tier-1","pipeline:spec-only","section::developer experience","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238937","assignee":{"id":438961,"name":"Peter Leitzen","state":"active","locked":false,"web_url":"https://gitlab.com/splattael","username":"splattael","avatar_url":"https://secure.gravatar.com/avatar/1770b841bba7c10e32e4a10f69d7b2cbc5d2d225fd1835388bcd4e0689fa6fd6?s=80&d=identicon","public_email":"pleitzen@gitlab.com"},"imported":false,"assignees":[{"id":438961,"name":"Peter Leitzen","state":"active","locked":false,"web_url":"https://gitlab.com/splattael","username":"splattael","avatar_url":"https://secure.gravatar.com/avatar/1770b841bba7c10e32e4a10f69d7b2cbc5d2d225fd1835388bcd4e0689fa6fd6?s=80&d=identicon","public_email":"pleitzen@gitlab.com"}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238937","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:45:15.743Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238937","short":"!238937","relative":"!238937"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:51:15.667Z","description":"## Summary\n\nAdds missing `feature_category:` metadata to 25 spec files and removes\nthem from `.rubocop_todo/rspec/feature_category.yml`.\n\n| File | `feature_category` | Rationale |\n|---|---|---|\n| `ee/spec/helpers/ee/labels_helper_spec.rb` | `:team_planning` | `LabelsHelper` declares `feature_category :team_planning, [:issues, :labels, ...]` |\n| `ee/spec/lib/gitlab/analytics/cycle_analytics/stage_events/issue_first_associated_with_milestone_spec.rb` | `:value_stream_management` | All sibling cycle analytics stage event specs use `:value_stream_management` |\n| `ee/spec/lib/gitlab/status_page/pipeline/post_process_pipeline_spec.rb` | `:incident_management` | `StatusPage::PublishWorker` and sibling services use `feature_category :incident_management` |\n| `ee/spec/models/issuable_sla_spec.rb` | `:incident_management` | SLA is an incident management feature; sibling EE incident models use `:incident_management` |\n| `ee/spec/services/analytics/devops_adoption/enabled_namespaces/bulk_delete_service_spec.rb` | `:value_stream_management` | Sibling analytics services use `:value_stream_management` |\n| `spec/components/pajamas/alert_component_spec.rb` | `:design_system` | All Pajamas component specs use `:design_system` |\n| `spec/db/production/add_security_training_providers_spec.rb` | `:vulnerability_management` | Security training providers help developers learn about vulnerabilities |\n| `spec/graphql/mutations/security/ci_configuration/configure_sast_iac_spec.rb` | `:static_application_security_testing` | `Security::CiConfiguration::SastIacCreateService` spec uses `:static_application_security_testing` |\n| `spec/graphql/types/ci/test_suite_type_spec.rb` | `:code_testing` | Controller declares `feature_category :code_testing, [:test_reports, ...]` |\n| `spec/graphql/types/packages/tag_type_spec.rb` | `:package_registry` | All sibling package type specs use `:package_registry` |\n| `spec/helpers/rss_helper_spec.rb` | `:user_profile` | Feed token reset action uses `feature_category :user_profile` |\n| `spec/lib/bulk_imports/file_downloads/filename_fetch_spec.rb` | `:importers` | All sibling bulk import specs use `:importers` |\n| `spec/lib/gitlab/ci/badge/release/metadata_spec.rb` | `:release_orchestration` | Release model/controller uses `feature_category :release_orchestration` |\n| `spec/lib/gitlab/ci/status/group/common_spec.rb` | `:continuous_integration` | Sibling CI status specs use `:continuous_integration` |\n| `spec/lib/gitlab/diff/parser_spec.rb` | `:code_review_workflow` | All sibling diff specs use `:code_review_workflow` |\n| `spec/lib/gitlab/graphql/lazy_spec.rb` | `:api` | Sibling GraphQL utility specs (`Variables`, `BatchModelLoader`, `KnownOperations`) use `:api` |\n| `spec/lib/gitlab/kubernetes/tls_secret_spec.rb` | `:deployment_management` | Kubernetes TLS secrets are part of the deployment/environment feature |\n| `spec/lib/gitlab/project_transfer_spec.rb` | `:groups_and_projects` | Project transfer is a groups/projects management operation |\n| `spec/lib/gitlab/string_regex_marker_spec.rb` | `:source_code_management` | `StringRangeMarker` sibling spec uses `:source_code_management` |\n| `spec/lib/peek/views/external_http_spec.rb` | `:tooling` | Peek is a developer debugging/profiling tool |\n| `spec/models/concerns/group_descendant_spec.rb` | `:groups_and_projects` | `GroupDescendantsFinder` uses `:groups_and_projects`; concern is included in Group/Project |\n| `spec/models/preloaders/group_policy_preloader_spec.rb` | `:groups_and_projects` | Sibling `UsersMaxAccessLevelByProjectPreloader` uses `:groups_and_projects` |\n| `spec/requests/api/graphql/mutations/merge_requests/accept_spec.rb` | `:code_review_workflow` | All sibling merge request mutation specs use `:code_review_workflow` |\n| `spec/serializers/group_link/group_group_link_serializer_spec.rb` | `:groups_and_projects` | Sibling `GroupGroupLinkEntity` spec uses `:groups_and_projects` |\n| `spec/uploaders/content_type_whitelist_spec.rb` | `:tooling` | ContentTypeWhitelist is a CarrierWave compatibility patch (framework tooling) |\n\nContributes to https://gitlab.com/gitlab-org/gitlab/-/issues/600670","prepared_at":"2026-06-02T15:45:40.948Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"add-feature-category-batch-008","target_branch":"master","squash_on_merge":true,"user_notes_count":2,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":true},{"id":491514725,"iid":238936,"sha":"c831ef8e7ee04a1d9e6d240f0e7c0900ef333bfc","draft":false,"state":"opened","title":"Add Notifications for Groups and Projects Transfers","author":{"id":21907512,"name":"Shubham Kumar","state":"active","locked":false,"web_url":"https://gitlab.com/shubhamkrai","username":"shubhamkrai","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21907512/avatar.png","public_email":""},"labels":["backend","devops::tenant scale","frontend","group::organizations","pipeline::tier-1","section::tenant scale","type::feature"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238936","assignee":{"id":21907512,"name":"Shubham Kumar","state":"active","locked":false,"web_url":"https://gitlab.com/shubhamkrai","username":"shubhamkrai","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21907512/avatar.png","public_email":""},"imported":false,"assignees":[{"id":21907512,"name":"Shubham Kumar","state":"active","locked":false,"web_url":"https://gitlab.com/shubhamkrai","username":"shubhamkrai","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21907512/avatar.png","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238936","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:42:49.068Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238936","short":"!238936","relative":"!238936"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:50:43.203Z","description":"<!--\n**Not ready yet?** Add `[ci skip]` to your MR title to skip the pipeline and save CI resources. \nIt's a small habit that makes a big difference for our shared compute budget and overall system load. \nEvery pipeline counts! 🙌\n-->\n\n## What does this MR do and why?\n\nAdd Notifications for Groups and Projects Transfers. \n- Show transfer activity on user's profile and groups/projects activity page.\n- Added audit events\n- Updated `created` projects events to show the `current` project path only on the user activity instead of full path, so that when the projects gets transferred the created event doesn't create confusion. \n\n* At group/project level: `Transferred to a new namespace`\n* At user profile level: `Transferred project/group [link] to a new namespace`\n* Subgroup transfer activity will only show in respective project/groups activity and not on parent to avoid confusion.\n\n\nCloses #599257 \n\n## References\n\n<!--\nInclude [links](https://handbook.gitlab.com/handbook/communication/#start-with-a-merge-request:~:text=Cross%20link%20issues,alternate%20if%20duplicate.) to any resources that are relevant to this MR.\nThis will give reviewers and future readers helpful context.\n-->\n\n## Screenshots or screen recordings\n\n<!---\nScreenshots are required for UI changes, and strongly recommended for all other merge requests.\n-->\n\n| Before | After  |\n| ------ | ------ |\n|        |        |\n\n<!--\nOPTIONAL: For responsive UI changes, you can use the viewport size table below.\nDelete this table if not needed or delete rows that are not relevant to your changes.\n\n| Viewport size   | Before     | After      |\n| ----------------| ---------- | ---------- |\n| `xs` (<576px)   |            |            |\n| `sm` (>=576px)  |            |            |\n| `md` (>=768px)  |            |            |\n| `lg` (>=992px)  |            |            |\n| `xl` (>=1200px) |            |            |\n-->\n\n## How to set up and validate locally\n\n<!--\nNumbered steps to set up and validate the change are strongly suggested.\n\nExample:\n\n1. In rails console enable the feature flag\n   ```ruby\n   Feature.enable(:member_areas_of_focus)\n   ```\n1. Visit any group or project member pages such as `http://127.0.0.1:3000/groups/flightjs/-/group_members`\n1. Click the `invite members` button.\n-->\n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist).\nIt helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.","prepared_at":"2026-06-02T15:43:19.352Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"notifications-for-groups-projects","target_branch":"master","squash_on_merge":true,"user_notes_count":15,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"discussions_not_resolved","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491513339,"iid":238935,"sha":"de1aa20ba24da76d79f682685a3f01b9ad846a73","draft":false,"state":"opened","title":"Add nav item ID stability regression test","author":{"id":26726865,"name":"Anas Shahid","state":"active","locked":false,"web_url":"https://gitlab.com/anasshahid","username":"anasshahid","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/26726865/avatar.png","public_email":""},"labels":["backend","devops::growth","group::activation","pipeline::tier-1","pipeline:spec-only","section::growth","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238935","assignee":{"id":26726865,"name":"Anas Shahid","state":"active","locked":false,"web_url":"https://gitlab.com/anasshahid","username":"anasshahid","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/26726865/avatar.png","public_email":""},"imported":false,"assignees":[{"id":26726865,"name":"Anas Shahid","state":"active","locked":false,"web_url":"https://gitlab.com/anasshahid","username":"anasshahid","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/26726865/avatar.png","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238935","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"},{"id":29444457,"name":"Konstantin Greif","state":"active","locked":false,"web_url":"https://gitlab.com/kgreif","username":"kgreif","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/29444457/avatar.png","public_email":""}],"created_at":"2026-06-02T15:39:06.857Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238935","short":"!238935","relative":"!238935"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:26:42.647Z","description":"## What does this MR do and why?\n\nAdds a regression test that ensures nav item IDs remain stable across changes.\n\nNav item IDs back `user_preferences.pinned_nav_items`. A silent rename or removal corrupts existing users' sidebar pin configuration with no error — the user's pinned items simply disappear. This spec commits a fixture of all known CE and EE item IDs and causes CI to fail if any are renamed or removed without a corresponding data migration.\n\nThe test scans sidebar source files at test time and asserts that all known IDs are still present. New IDs can be added freely; only removals and renames trigger a failure.\n\n## References\n\nhttps://gitlab.com/gitlab-org/gitlab/-/work_items/601392","prepared_at":"2026-06-02T15:39:32.540Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"601392-nav-item-id-stability-regression-test","target_branch":"master","squash_on_merge":true,"user_notes_count":9,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"discussions_not_resolved","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491511331,"iid":238934,"sha":"f5be132ba44ae09ba24685b371ae42a2e54cacda","draft":false,"state":"opened","title":"Create leaf bundle","author":{"id":27976589,"name":"Pearl Latteier","state":"active","locked":false,"web_url":"https://gitlab.com/platteier","username":"platteier","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/27976589/avatar.png","public_email":""},"labels":["Documentation","Enterprise Edition","docs-only","documentation","support_backlog::done","type::feature"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238934","assignee":{"id":27976589,"name":"Pearl Latteier","state":"active","locked":false,"web_url":"https://gitlab.com/platteier","username":"platteier","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/27976589/avatar.png","public_email":""},"imported":false,"assignees":[{"id":27976589,"name":"Pearl Latteier","state":"active","locked":false,"web_url":"https://gitlab.com/platteier","username":"platteier","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/27976589/avatar.png","public_email":""}],"downvotes":0,"reference":"!238934","reviewers":[{"id":5213246,"name":"Suzanne Selhorn","state":"active","locked":false,"web_url":"https://gitlab.com/sselhorn","username":"sselhorn","avatar_url":"https://secure.gravatar.com/avatar/5bcf706b02430a7a76655ccf97035289e991834fc3b0795006c39b2bad693af3?s=80&d=identicon","public_email":""},{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"},{"id":23402697,"name":"Isaac Durham","state":"active","locked":false,"web_url":"https://gitlab.com/idurham","username":"idurham","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/23402697/avatar.png","public_email":""}],"created_at":"2026-06-02T15:33:46.734Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238934","short":"!238934","relative":"!238934"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:37:15.964Z","description":"<!--\n**Not ready yet?** Add `[ci skip]` to your MR title to skip the pipeline and save CI resources. \nIt's a small habit that makes a big difference for our shared compute budget and overall system load. \nEvery pipeline counts! 🙌\n-->\n\n## What does this MR do and why?\n\n## References\n\nReorganizes the 19.1 release post to use separate files for each feature. \n\n## Screenshots or screen recordings\n\n<!---\nScreenshots are required for UI changes, and strongly recommended for all other merge requests.\n-->\n\n| Before | After  |\n| ------ | ------ |\n|        |        |\n\n<!--\nOPTIONAL: For responsive UI changes, you can use the viewport size table below.\nDelete this table if not needed or delete rows that are not relevant to your changes.\n\n| Viewport size   | Before     | After      |\n| ----------------| ---------- | ---------- |\n| `xs` (<576px)   |            |            |\n| `sm` (>=576px)  |            |            |\n| `md` (>=768px)  |            |            |\n| `lg` (>=992px)  |            |            |\n| `xl` (>=1200px) |            |            |\n-->\n\n## How to set up and validate locally\n\n1. checkout this branch in your local copy of gitlab\n1. run the docs site with `make view`\n1. go to the release post: /releases/19/gitlab-19-1-released/\n1. verify that the release post renders correctly\n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist).\nIt helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.\n\n\nRelated to #19","prepared_at":"2026-06-02T15:34:09.182Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"19-1-leaf-bundle","target_branch":"master","squash_on_merge":true,"user_notes_count":7,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491510381,"iid":238933,"sha":"b9ed5e298764cd2a79ad68f4c0a21b97da02612b","draft":false,"state":"opened","title":"Add upgrade note for Geo OCI image index sync fix","author":{"id":283999,"name":"Douglas Barbosa Alexandre","state":"active","locked":false,"web_url":"https://gitlab.com/dbalexandre","username":"dbalexandre","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/283999/avatar.png","public_email":"douglas@gitlab.com"},"labels":["devops::tenant scale","docs-only","documentation","group::geo","section::tenant scale","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238933","assignee":{"id":283999,"name":"Douglas Barbosa Alexandre","state":"active","locked":false,"web_url":"https://gitlab.com/dbalexandre","username":"dbalexandre","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/283999/avatar.png","public_email":"douglas@gitlab.com"},"imported":false,"assignees":[{"id":283999,"name":"Douglas Barbosa Alexandre","state":"active","locked":false,"web_url":"https://gitlab.com/dbalexandre","username":"dbalexandre","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/283999/avatar.png","public_email":"douglas@gitlab.com"}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238933","reviewers":[{"id":3585,"name":"Achilleas Pipinellis","state":"active","locked":false,"web_url":"https://gitlab.com/axil","username":"axil","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3585/avatar.png","public_email":""},{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:31:10.894Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238933","short":"!238933","relative":"!238933"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:51:58.470Z","description":"## What does this MR do?\n\nAdds an upgrade note for the Geo container repository sync fix that shipped in\n[merge request 236905](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/236905)\nand was backported to 18.10, 18.11, and 19.0.\n\nOn Geo secondary sites, container repository sync silently skipped tags whose\nmanifest is an OCI image index, and left behind orphan tags it could not remove.\nUpgrading fixes new syncs, but previously affected repositories do not self-heal\npromptly: they are only rechecked on re-verification, which defaults to 90 days.\nThe note tells administrators to resync container repositories on the secondary\nto repair them immediately.\n\nThe note is added to the GitLab 18 and 19 upgrade notes pages.\n\n## Related issues\n\n- Related to https://gitlab.com/gitlab-org/gitlab/-/work_items/600486\n- Related to https://gitlab.com/gitlab-org/gitlab/-/work_items/465580\n\n## Author's checklist\n\n- [ ] Follow the\n  [Documentation guidelines](https://docs.gitlab.com/development/documentation/) and\n  [Style Guide](https://docs.gitlab.com/development/documentation/styleguide/).\n- [ ] Request a Technical Writer review based on the\n  [associated Technical Writer](https://handbook.gitlab.com/handbook/product/ux/technical-writing/#assignments).\n\n## Notes for reviewers\n\nThe fixed patch levels in the tables (18.10.8, 18.11.5, 19.0.2) are the expected\nnext patch releases. Confirm them against the patch release that actually ships\nthe backports before this merges, and adjust the affected ranges if needed.","prepared_at":"2026-06-02T15:31:34.174Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"docs-geo-oci-index-upgrade-note","target_branch":"master","squash_on_merge":true,"user_notes_count":5,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":2,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491509710,"iid":238932,"sha":"db8aad1ab017f21d7c06a465597d53f18102a64f","draft":false,"state":"opened","title":"Handle ambiguous ref in commit status API","author":{"id":4088036,"name":"Hordur Freyr Yngvason","state":"active","locked":false,"web_url":"https://gitlab.com/hfyngvason","username":"hfyngvason","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4088036/avatar.png","public_email":""},"labels":["backend","bug::functional","devops::verify","group::pipeline execution","pipeline::tier-1","section::ci","severity::3","type::bug"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238932","assignee":{"id":4088036,"name":"Hordur Freyr Yngvason","state":"active","locked":false,"web_url":"https://gitlab.com/hfyngvason","username":"hfyngvason","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4088036/avatar.png","public_email":""},"imported":false,"assignees":[{"id":4088036,"name":"Hordur Freyr Yngvason","state":"active","locked":false,"web_url":"https://gitlab.com/hfyngvason","username":"hfyngvason","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4088036/avatar.png","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238932","reviewers":[{"id":20265188,"name":"Shabini Rajadas","state":"active","locked":false,"web_url":"https://gitlab.com/srajadas","username":"srajadas","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/20265188/avatar.png","public_email":"srajadas@gitlab.com"},{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:29:27.289Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238932","short":"!238932","relative":"!238932"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:44:04.615Z","description":"<!--\n**Not ready yet?** Add `[ci skip]` to your MR title to skip the pipeline and save CI resources. \nIt's a small habit that makes a big difference for our shared compute budget and overall system load. \nEvery pipeline counts! 🙌\n-->\n\n## What does this MR do and why?\n\n`POST /projects/:id/statuses/:sha` raised `Repository::AmbiguousRefError`\nwhen the ref matched both a branch and a tag. The error bubbled out as\na 500 and surfaced in Sentry without giving the client a way to fix\nthe request.\n\nRescue it in `Ci::CreateCommitStatusService` and return a 400 telling\nthe caller to specify `refs/heads/<name>` or `refs/tags/<name>`.\n\n## References\n\n- Sentry: https://new-sentry.gitlab.net/organizations/gitlab/issues/3325077\n\n## Screenshots or screen recordings\n\n<!---\nScreenshots are required for UI changes, and strongly recommended for all other merge requests.\n-->\n\n| Before | After  |\n| ------ | ------ |\n|        |        |\n\n## How to set up and validate locally\n\n1. Run the spec:\n   ```\n   bundle exec rspec spec/services/ci/create_commit_status_service_spec.rb\n   ```\n1. (Optional) In a project that has a branch and a tag with the same name (e.g. `foo`), call:\n   ```\n   curl --request POST --header \"PRIVATE-TOKEN: <token>\" \\\n     \"http://gdk.test:3000/api/v4/projects/<id>/statuses/<sha>?state=pending&ref=foo\"\n   ```\n   Expect a 400 with a body that mentions `Ref is ambiguous`. Before this change the same request returned a 500.\n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist).\nIt helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.","prepared_at":"2026-06-02T15:29:58.961Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"fix/commit-status-api-ambiguous-ref","target_branch":"master","squash_on_merge":true,"user_notes_count":6,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":true},{"id":491507629,"iid":238931,"sha":"db56a73be5a8dcc37688c01bb7c387d57e7148c4","draft":false,"state":"opened","title":"Update dependency @gitlab/svgs to v3.161.0","author":{"id":8420142,"name":"GitLab Dependency Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-dependency-update-bot","username":"gitlab-dependency-update-bot","avatar_url":"https://secure.gravatar.com/avatar/3d0463f813f54718127bf38acba616ef6bc5160fea8111c47dd4088fcacdb91a?s=80&d=identicon","public_email":""},"labels":["automation:bot-authored","frontend","maintenance::dependency","pipeline::tier-3","pipeline:mr-approved","type::maintenance"],"squash":false,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238931","assignee":{"id":8420142,"name":"GitLab Dependency Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-dependency-update-bot","username":"gitlab-dependency-update-bot","avatar_url":"https://secure.gravatar.com/avatar/3d0463f813f54718127bf38acba616ef6bc5160fea8111c47dd4088fcacdb91a?s=80&d=identicon","public_email":""},"imported":false,"assignees":[{"id":8420142,"name":"GitLab Dependency Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-dependency-update-bot","username":"gitlab-dependency-update-bot","avatar_url":"https://secure.gravatar.com/avatar/3d0463f813f54718127bf38acba616ef6bc5160fea8111c47dd4088fcacdb91a?s=80&d=identicon","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238931","reviewers":[{"id":411701,"name":"Kushal Pandya","state":"active","locked":false,"web_url":"https://gitlab.com/kushalpandya","username":"kushalpandya","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/411701/avatar.png","public_email":"kushal@gitlab.com"},{"id":21747317,"name":"Chaoyue Zhao","state":"active","locked":false,"web_url":"https://gitlab.com/ms.mondrian","username":"ms.mondrian","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21747317/avatar.png","public_email":"czhao@gitlab.com"},{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:24:12.252Z","merge_user":{"id":411701,"name":"Kushal Pandya","state":"active","locked":false,"web_url":"https://gitlab.com/kushalpandya","username":"kushalpandya","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/411701/avatar.png","public_email":"kushal@gitlab.com"},"project_id":278964,"references":{"full":"gitlab-org/gitlab!238931","short":"!238931","relative":"!238931"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:42:31.567Z","description":"This MR contains the following updates:\n\n| Package | Type | Update | Change |\n|---|---|---|---|\n| [@gitlab/svgs](https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com#readme) ([source](https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/tree/HEAD/packages/gitlab-svgs)) | dependencies | minor | [`3.160.0` -> `3.161.0`](https://renovatebot.com/diffs/npm/@gitlab%2fsvgs/3.160.0/3.161.0) |\n\nMR created with the help of [gitlab-org/frontend/renovate-gitlab-bot](https://gitlab.com/gitlab-org/frontend/renovate-gitlab-bot)\n\n---\n\n### Release Notes\n\n<details>\n<summary>gitlab-org/gitlab-services/design.gitlab.com (@&#8203;gitlab/svgs)</summary>\n\n### [`v3.161.0`](https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/blob/HEAD/packages/gitlab-svgs/CHANGELOG.md#31610)\n\n[Compare Source](https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/compare/@gitlab/svgs@3.160.0...@gitlab/svgs@3.161.0)\n\n##### Minor Changes\n\n-   [!5997](https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/merge_requests/5997): Adds new icons that each represent a GitLab feature. Minor visual updates to some existing icons. See https://gitlab.com/gitlab-org/gitlab/-/work_items/596500 for the full list. (`@jeldergl`)\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this MR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box\n\n---\n\nThis MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMC4yLTEwLWc4ZTU5YTE2ZWMiLCJ1cGRhdGVkSW5WZXIiOiI0MC4xMC4yLTEwLWc4ZTU5YTE2ZWMiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOlsiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJmcm9udGVuZCIsIm1haW50ZW5hbmNlOjpkZXBlbmRlbmN5IiwidHlwZTo6bWFpbnRlbmFuY2UiXX0=-->","prepared_at":"2026-06-02T15:24:18.163Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"renovate/gitlab-svgs-3.x","target_branch":"master","squash_on_merge":false,"user_notes_count":4,"work_in_progress":false,"source_project_id":25685999,"target_project_id":278964,"allow_collaboration":true,"detailed_merge_status":"unchecked","task_completion_status":{"count":1,"completed_count":0},"allow_maintainer_to_push":true,"force_remove_source_branch":true,"should_remove_source_branch":true,"merge_when_pipeline_succeeds":true,"blocking_discussions_resolved":true},{"id":491506582,"iid":238930,"sha":"e3b7317e0f90da0b66366e2077a365adf2db8ca1","draft":false,"state":"opened","title":"Set X-Error-Message response header on RubyGems errors","author":{"id":3983112,"name":"David Fernandez","state":"active","locked":false,"web_url":"https://gitlab.com/10io","username":"10io","avatar_url":"https://secure.gravatar.com/avatar/cb0a8af6da9c60fae5c07d46f671736058d54d0136be74edd924e4b9a30a9fe0?s=80&d=identicon","public_email":"dfernandez@gitlab.com"},"labels":["Category:Package Registry","backend","devops::package","feature flag","feature::enhancement","group::package registry","pipeline::tier-1","section::ci","type::feature"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238930","assignee":{"id":3983112,"name":"David Fernandez","state":"active","locked":false,"web_url":"https://gitlab.com/10io","username":"10io","avatar_url":"https://secure.gravatar.com/avatar/cb0a8af6da9c60fae5c07d46f671736058d54d0136be74edd924e4b9a30a9fe0?s=80&d=identicon","public_email":"dfernandez@gitlab.com"},"imported":false,"assignees":[{"id":3983112,"name":"David Fernandez","state":"active","locked":false,"web_url":"https://gitlab.com/10io","username":"10io","avatar_url":"https://secure.gravatar.com/avatar/cb0a8af6da9c60fae5c07d46f671736058d54d0136be74edd924e4b9a30a9fe0?s=80&d=identicon","public_email":"dfernandez@gitlab.com"}],"downvotes":0,"reference":"!238930","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:21:34.925Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238930","short":"!238930","relative":"!238930"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:35:04.186Z","description":"## 🔔 Context\n\nThe GitLab RubyGems package registry returns error responses as `Content-Type: application/json` with a body like `{\"message\":\"403 Forbidden - Package protected.\"}`. The `gem` client never reads the response body during `gem install` / `gem fetch` — it only reads the HTTP status code and reason phrase, so users see generic output (`Bad response Forbidden 403 (...)`) with no idea *why* an operation failed.\n\n`Gem::RemoteFetcher#fetch_http` reads an `X-Error-Message` response header and, when present, uses its value in place of the HTTP reason phrase.\n\nRelated to https://gitlab.com/gitlab-org/gitlab/-/work_items/595492 (parent: https://gitlab.com/gitlab-org/gitlab/-/work_items/595485).\n\n## 🤔 What does this MR do and why?\n\n* Add the `X-Error-Message` response header to all 4xx/5xx error responses from the RubyGems API endpoints, gated behind the `rubygems_error_message_header` feature flag (disabled by default).\n* The header value is the error **detail** with the `\"NNN StatusPhrase - \"` prefix stripped (e.g. `403 Forbidden - Package protected.` → `Package protected.`). When the message is a bare status phrase (e.g. `403 Forbidden`) the header is **not** set — the client already shows the reason phrase. Custom messages without a status prefix (e.g. the dependency resolver's `<gem> not found`) are passed through verbatim.\n* The response **body is unchanged** — existing API consumers that parse the JSON are unaffected.\n\nThe implementation introduces `API::Helpers::Packages::Rubygems::ErrorMessageHeader`, which overrides `render_structured_api_error!` — the single chokepoint all Grape error helpers (`forbidden!`, `bad_request!`, `not_found!`, …) flow through. When the flag is disabled it calls `super` immediately (zero behavioral change).\n\nThis also **de-duplicates** the `\"NNN StatusPhrase - detail\"` parsing that previously lived inline only in the Maven helper: it is extracted into a shared `API::Helpers::Packages::ErrorMessage` module (`error_message_detail`, `error_message_single_line`) and reused by the Maven and NuGet error helpers. Their behavior is unchanged — guaranteed by their existing specs staying green.\n\n## ⚠️ RubyGems client compatibility\n\nThe mechanism is version-dependent and worth calling out explicitly:\n\n| Operation | rubygems < 4.0 | rubygems 4.x |\n|---|---|---|\n| `gem install` / `gem fetch` | reads `X-Error-Message` ✅ | header handling **removed** — ignored (harmless); body discarded on error, so no server-side channel exists |\n| `gem push` / `gem yank` | reads response **body** | reads response **body** (unchanged) |\n\nI verified against the real `Gem::RemoteFetcher#fetch_http` that **rubygems 4.0.12 no longer reads `X-Error-Message`** (and there is no replacement header). So the benefit of this change is scoped to `gem install`/`gem fetch` clients on **rubygems < 4.0**; on 4.x the header is simply ignored. The change is harmless and standards-based on all versions.\n\n## 🚩 Feature flag\n\nName: `rubygems_error_message_header` (`gitlab_com_derisk`, default disabled).\nRollout: https://gitlab.com/gitlab-org/gitlab/-/work_items/601846\n\n## 🧪 How to set up and validate locally\n\n```ruby\n# Rails console\nFeature.enable(:rubygems_error_message_header)\n```\n\n```bash\n# 404 with a detail (dependency resolver) -> header set\ncurl -sI -H \"Private-Token: $TOKEN\" \\\n  \"http://gdk.test:3000/api/v4/projects/$PID/packages/rubygems/api/v1/dependencies?gems=nonexistent\" \\\n  | grep -i x-error-message      # => X-Error-Message: nonexistent not found\n\n# bare status phrase (gem file not found) -> no header\ncurl -sI -H \"Private-Token: $TOKEN\" \\\n  \"http://gdk.test:3000/api/v4/projects/$PID/packages/rubygems/gems/nonexistent-1.0.gem\" \\\n  | grep -i x-error-message      # => (no output)\n```\n\nWith the flag disabled, the header is never present.\n\n## 📚 References\n\n* Feature issue: https://gitlab.com/gitlab-org/gitlab/-/work_items/595492\n* Rollout issue: https://gitlab.com/gitlab-org/gitlab/-/work_items/601846\n* Sibling MRs: Maven !230919, NuGet !231682, Conan !231680\n\n## MR acceptance checklist\n\n* [ ] Tests added (unit specs for the shared helper and the RubyGems override; request specs for header presence/absence + flag-off; Maven/NuGet regression specs unchanged)\n* [ ] Feature flag created (`rubygems_error_message_header`)","prepared_at":"2026-06-02T15:22:07.173Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"595492-x-error-message","target_branch":"master","squash_on_merge":true,"user_notes_count":15,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":2,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491506387,"iid":238929,"sha":"3c2715fd16751b2e36f07c6a2e5dcd82d8201f75","draft":false,"state":"opened","title":"Update dependency gitlab-zoekt-indexer to v1.16.0","author":{"id":8420142,"name":"GitLab Dependency Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-dependency-update-bot","username":"gitlab-dependency-update-bot","avatar_url":"https://secure.gravatar.com/avatar/3d0463f813f54718127bf38acba616ef6bc5160fea8111c47dd4088fcacdb91a?s=80&d=identicon","public_email":""},"labels":["automation:bot-authored","devops::ai-powered","group::global search","maintenance::dependency","section::ai","type::maintenance"],"squash":false,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238929","assignee":{"id":8420142,"name":"GitLab Dependency Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-dependency-update-bot","username":"gitlab-dependency-update-bot","avatar_url":"https://secure.gravatar.com/avatar/3d0463f813f54718127bf38acba616ef6bc5160fea8111c47dd4088fcacdb91a?s=80&d=identicon","public_email":""},"imported":false,"assignees":[{"id":8420142,"name":"GitLab Dependency Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-dependency-update-bot","username":"gitlab-dependency-update-bot","avatar_url":"https://secure.gravatar.com/avatar/3d0463f813f54718127bf38acba616ef6bc5160fea8111c47dd4088fcacdb91a?s=80&d=identicon","public_email":""}],"downvotes":0,"reference":"!238929","reviewers":[{"id":13169945,"name":"Ravi Kumar","state":"active","locked":false,"web_url":"https://gitlab.com/rkumar555","username":"rkumar555","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/13169945/avatar.png","public_email":""},{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:21:01.721Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238929","short":"!238929","relative":"!238929"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:26:10.317Z","description":"This MR contains the following updates:\n\n| Package | Update | Change |\n|---|---|---|\n| [gitlab-zoekt-indexer](https://gitlab.com/gitlab-org/gitlab-zoekt-indexer) | minor | `1.15.0` -> `1.16.0` |\n\nMR created with the help of [gitlab-org/frontend/renovate-gitlab-bot](https://gitlab.com/gitlab-org/frontend/renovate-gitlab-bot)\n\n---\n\n### Release Notes\n\n<details>\n<summary>gitlab-org/gitlab-zoekt-indexer (gitlab-zoekt-indexer)</summary>\n\n### [`v1.16.0`](https://gitlab.com/gitlab-org/gitlab-zoekt-indexer/blob/HEAD/CHANGELOG.md#1160-2026-06-01)\n\n[Compare Source](https://gitlab.com/gitlab-org/gitlab-zoekt-indexer/compare/v1.15.2...v1.16.0)\n\n[4360f00](4360f0097bdb9a7feac37ac517a06531fad6c7e3)...[c48aa34](c48aa341950a35a01e8f4603485e52f552926172)\n\n##### Bug Fixes\n\n-   Replace deprecated h2c.NewHandler with http.Server.Protocols ([57c8781](57c87815f40f438a06558332957e9370b0638b31))\n\n##### Dependencies\n\n-   Update github.com/sourcegraph/zoekt digest to [`071adfd`](https://github.com/gitlab-org/gitlab-zoekt-indexer/commit/071adfd) ([43fb1db](43fb1db2bc666375f51a3b23a2e3fadefa674b97))\n-   Update module golang.org/x/sys to v0.45.0 ([a0fa929](a0fa9299d4dc43b9a2edeb34f2a4061aa5a171cb))\n-   Update module google.golang.org/api to v0.280.0 ([896ed5a](896ed5a0bd32adfecf15928f456f167c3e27586b))\n-   Update module github.com/go-chi/chi/v5 to v5.3.0 ([b2eaf04](b2eaf0426b30fdc42114b0e25ccf96c6a73e0e08))\n\n##### Features\n\n-   Add webserver-to-indexer process health relay ([5e93006](5e93006828e9d25c462fbb6389def412d91f1fc1))\n\n### [`v1.15.2`](https://gitlab.com/gitlab-org/gitlab-zoekt-indexer/blob/HEAD/CHANGELOG.md#1152-2026-05-26)\n\n[Compare Source](https://gitlab.com/gitlab-org/gitlab-zoekt-indexer/compare/v1.15.1...v1.15.2)\n\n[fc531d8](fc531d8e91ecef13b911f277a862d815affd7d32)...[4360f00](4360f0097bdb9a7feac37ac517a06531fad6c7e3)\n\n##### Dependencies\n\n-   Update module google.golang.org/api to v0.279.0 ([0bc4637](0bc4637e1a1b7469bb6e263409a677fe8ec2df05))\n-   Update module gitlab.com/gitlab-org/labkit to v1.64.1 ([812bc36](812bc36c4b8b85bba29c234fce5f53afe4ec4544))\n-   Update module google.golang.org/grpc to v1.81.1 ([b06ade0](b06ade03f72fc03289c718c8573847ba2adf31e6))\n\n### [`v1.15.1`](https://gitlab.com/gitlab-org/gitlab-zoekt-indexer/blob/HEAD/CHANGELOG.md#1151-2026-05-18)\n\n[Compare Source](https://gitlab.com/gitlab-org/gitlab-zoekt-indexer/compare/v1.15.0...v1.15.1)\n\n[058806a](058806aaba1ec5e92dab0fe2a9243488504c1fd8)...[fc531d8](fc531d8e91ecef13b911f277a862d815affd7d32)\n\n##### Dependencies\n\n-   Update module github.com/shirou/gopsutil/v4 to v4.26.4 ([d4d9859](d4d9859e6401b17737879d053ee36ecf6d03188a))\n-   Update github.com/sourcegraph/mountinfo digest to [`e539465`](https://github.com/gitlab-org/gitlab-zoekt-indexer/commit/e539465) ([f3da8c4](f3da8c4912944508c5c1a34f09e50f51cbadfff4))\n-   Update module golang.org/x/sys to v0.44.0 ([18b631f](18b631fb2ef8bca3d477047522cc8faba788bfc5))\n-   Update module google.golang.org/grpc to v1.81.0 ([298b802](298b80295130d9e9377d1c12942031c6c293fe50))\n-   Update module google.golang.org/api to v0.277.0 ([3ec5f40](3ec5f4085f4cc5d33844106b9a9799f3a85de22a))\n-   Update module google.golang.org/api to v0.278.0 ([47494b3](47494b32bfadf87dae81fc07dae2f4575ea53c67))\n\n##### Documentation\n\n-   Update backport process to use stable branches and manual tagging ([3425342](3425342ced3d05c1a6324ea1d9ff5a552830a1bf))\n\n##### Miscellaneous Tasks\n\n-   Update security templates and turn on advanced SAST ([a8594bd](a8594bd0bdd9932411514030e58bca346fdfddaf))\n-   Fix advanced sast report file permission issue ([26368f6](26368f649196ab29f6342212b5594ce72bb7bfcf))\n\n</details>\n\n---\n\n### Configuration\n\n📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).\n\n🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.\n\n♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.\n\n🔕 **Ignore**: Close this MR and you won't be reminded about this update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box\n\n---\n\nThis MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).\n<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMC4yLTEwLWc4ZTU5YTE2ZWMiLCJ1cGRhdGVkSW5WZXIiOiI0MC4xMC4yLTEwLWc4ZTU5YTE2ZWMiLCJ0YXJnZXRCcmFuY2giOiJtYXN0ZXIiLCJsYWJlbHMiOlsiYXV0b21hdGlvbjpib3QtYXV0aG9yZWQiLCJncm91cDo6Z2xvYmFsIHNlYXJjaCIsIm1haW50ZW5hbmNlOjpkZXBlbmRlbmN5IiwidHlwZTo6bWFpbnRlbmFuY2UiXX0=-->","prepared_at":"2026-06-02T15:21:10.183Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"renovate-zoekt/gitlab-zoekt-indexer-1.x","target_branch":"master","squash_on_merge":false,"user_notes_count":2,"work_in_progress":false,"source_project_id":25685999,"target_project_id":278964,"allow_collaboration":true,"detailed_merge_status":"unchecked","task_completion_status":{"count":1,"completed_count":0},"allow_maintainer_to_push":true,"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":true},{"id":491502787,"iid":238927,"sha":"4fd75dcf3ba78c68d41be1e45481a65ab37fd0b9","draft":false,"state":"opened","title":"Consolidate model selection selectable-models derivation","author":{"id":4093067,"name":"Manoj M J","state":"active","locked":false,"web_url":"https://gitlab.com/manojmj","username":"manojmj","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4093067/avatar.png","public_email":""},"labels":["backend","devops::ai-powered","group::custom models","pipeline::tier-1","section::ai","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238927","assignee":{"id":4093067,"name":"Manoj M J","state":"active","locked":false,"web_url":"https://gitlab.com/manojmj","username":"manojmj","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4093067/avatar.png","public_email":""},"imported":false,"assignees":[{"id":4093067,"name":"Manoj M J","state":"active","locked":false,"web_url":"https://gitlab.com/manojmj","username":"manojmj","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4093067/avatar.png","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238927","reviewers":[{"id":20638348,"name":"Cindy Halim","state":"active","locked":false,"web_url":"https://gitlab.com/cindy-halim","username":"cindy-halim","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/20638348/avatar.png","public_email":""},{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:12:06.802Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238927","short":"!238927","relative":"!238927"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:46:01.033Z","description":"## What\n\n`AvailableModelsResolver` (the model list shown to a user) and\n`DuoAgentPlatformModelMetadataService` (the runtime check that a submitted\nmodel is allowed) each independently ran the same sequence: fetch model\ndefinitions → decorate the feature setting → find the decorator for the\nfeature → read its selectable models.\n\nThis extracts that sequence into a single\n`Ai::ModelSelection::DecoratedFeatureSettingFinderService` consumed by both.\nBehaviour is unchanged; feature-setting acquisition and per-caller gating\nstay where they are.\n\n## Why\n\nThe admin **model allowlist** is landing next. Once it is enforced, the set\nof models shown to a user and the set accepted at runtime must narrow to the\nsame allowlisted refs. With this derivation in one place, that becomes a\nsingle-point change rather than two code paths that could silently drift.","prepared_at":"2026-06-02T15:12:33.738Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"mmj-consolidate-model-selection-finder","target_branch":"master","squash_on_merge":true,"user_notes_count":6,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":true},{"id":491502538,"iid":238926,"sha":"98770fdee0851af0a8bc25641a6ace888949991c","draft":true,"state":"opened","title":"Draft: Backport of 'Fix MCP tools checkbox visibility for Premium groups'","author":{"id":1161495,"name":"Igor Drozdov","state":"active","locked":false,"web_url":"https://gitlab.com/igor.drozdov","username":"igor.drozdov","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1161495/avatar.png","public_email":"idrozdov@gitlab.com"},"labels":["backend","backport","devops::ai-powered","group::ai catalog","pipeline::tier-1","section::ai","type::bug"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238926","assignee":{"id":1161495,"name":"Igor Drozdov","state":"active","locked":false,"web_url":"https://gitlab.com/igor.drozdov","username":"igor.drozdov","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1161495/avatar.png","public_email":"idrozdov@gitlab.com"},"imported":false,"assignees":[{"id":1161495,"name":"Igor Drozdov","state":"active","locked":false,"web_url":"https://gitlab.com/igor.drozdov","username":"igor.drozdov","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1161495/avatar.png","public_email":"idrozdov@gitlab.com"}],"downvotes":0,"milestone":{"id":5948921,"iid":128,"state":"active","title":"18.10","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/128","due_date":"2026-03-13","group_id":9970,"created_at":"2025-03-26T00:24:05.254Z","start_date":"2026-02-14","updated_at":"2025-06-30T16:29:07.831Z","description":"| Milestone | Quarter    | Start Date - Code Merging | End Date - Code Merging | Release Date  |\r\n|-----------|------------|---------------------------|-------------------------|---------------|\r\n| 18.10     | FY27-Q1-M2 | 2026-03-12                | 2026-03-13              | 2026-03-19    |\r\n"},"reference":"!238926","reviewers":[{"id":26121709,"name":"Jaydip Pansuriya","state":"active","locked":false,"web_url":"https://gitlab.com/Imjaydip","username":"Imjaydip","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/26121709/avatar.png","public_email":""}],"created_at":"2026-06-02T15:11:31.706Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238926","short":"!238926","relative":"!238926"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:29:20.023Z","description":"<!--\nMerging into stable branches in canonical projects is reserved for\nGitLab patch releases https://docs.gitlab.com/policy/maintenance/#patch-releases\n\nIf you're backporting a security fix, please refer to the security merge request\ntemplate https://gitlab.com/gitlab-org/security/gitlab/blob/master/.gitlab/merge_request_templates/Security%20Release.md.\nSecurity backport merge requests should not be opened on the GitLab canonical project.\n\nPlease don't remove this comment or other inline comments as they may be used to enforce validation rules.\n\ntemplate sourced from https://gitlab.com/gitlab-org/gitlab/-/blob/master/.gitlab/merge_request_templates/Stable%20Branch.md\n-->\n\n## What does this MR do and why?\n\nBackport of https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238459 to the `18-10-stable-ee` branch.\n\nThe \"External MCP tools\" checkbox in group Duo settings was gated by `:ai_features` (Ultimate-only), making it invisible to Premium groups. This contradicts the documentation which states MCP is available for Premium and above.\n\nThis fix replaces `:ai_features` with `:ai_catalog`, which is a Premium+ licensed feature and is consistent with how the rest of the AI Catalog MCP flow is gated.\n\n- Original MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238459\n\n## MR acceptance checklist\n\nThis checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.\n\n- [x] This MR is backporting a bug fix, documentation update, or spec fix, previously merged in the default branch.\n- [x] The MR that fixed the bug on the default branch has been deployed to GitLab.com (not applicable for documentation or spec changes).\n- [x] The MR title is descriptive (e.g. \"Backport of 'title of default branch MR'\"). This is important, since the title will be copied to the patch blog post.\n- [ ] Required labels have been applied to this merge request\n  - [ ] [severity label] and [bug subtype] labels (if applicable)\n  - [ ] If this MR fixes a bug that affects customers, the ~\"customer\" label has been applied.\n- [ ] This MR has been approved by a maintainer (only one approval is required).\n- [ ] Ensure the `e2e:test-on-omnibus-ee` job has succeeded, or if it has failed, [investigate the failures](https://handbook.gitlab.com/handbook/engineering/testing/guide-to-e2e-test-failure-issues/). If you determine the failures are unrelated, you may proceed. If you need assistance investigating, reach out to a Software Engineer in Test in #s_developer_experience.","prepared_at":"2026-06-02T15:12:23.942Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"duo/fix/238459-backport-mcp-checkbox-18-10","target_branch":"18-10-stable-ee","squash_on_merge":true,"user_notes_count":2,"work_in_progress":true,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"draft_status","task_completion_status":{"count":8,"completed_count":3},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":true},{"id":491498053,"iid":238924,"sha":"97118f2d2abf4101ae3d469ddad29a5dd58885c1","draft":false,"state":"opened","title":"Step 2: migrate WebAuthn verification from HAML","author":{"id":11004366,"name":"Eduardo Sanz García","state":"active","locked":false,"web_url":"https://gitlab.com/eduardosanz","username":"eduardosanz","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/11004366/avatar.png","public_email":""},"labels":["backend","devops::software supply chain security","feature::addition","frontend","group::authentication","pipeline::tier-3","section::sec","type::feature"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238924","assignee":{"id":11004366,"name":"Eduardo Sanz García","state":"active","locked":false,"web_url":"https://gitlab.com/eduardosanz","username":"eduardosanz","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/11004366/avatar.png","public_email":""},"imported":false,"assignees":[{"id":11004366,"name":"Eduardo Sanz García","state":"active","locked":false,"web_url":"https://gitlab.com/eduardosanz","username":"eduardosanz","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/11004366/avatar.png","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238924","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T15:00:04.080Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238924","short":"!238924","relative":"!238924"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:50:22.748Z","description":"<!--\n**Not ready yet?** Add `[ci skip]` to your MR title to skip the pipeline and save CI resources. \nIt's a small habit that makes a big difference for our shared compute budget and overall system load. \nEvery pipeline counts! 🙌\n-->\n\n## What does this MR do and why?\n\nStep 2: migrate WebAuthn verification from HAML\n\nImplements step 2 in\nhttps://gitlab.com/gitlab-org/gitlab/-/work_items/579316.\n\n## References\n\n<!--\nInclude [links](https://handbook.gitlab.com/handbook/communication/#start-with-a-merge-request:~:text=Cross%20link%20issues,alternate%20if%20duplicate.) to any resources that are relevant to this MR.\nThis will give reviewers and future readers helpful context.\n-->\n\n## Screenshots or screen recordings\n\n<!---\nScreenshots are required for UI changes, and strongly recommended for all other merge requests.\n-->\n\n| Before | After  |\n| ------ | ------ |\n|   ![image](/uploads/6c62e8a434399e211d1cace144edafbb/image.png){width=900 height=450}     |  ![image](/uploads/bdf96578660bf67588a54ab263889065/image.png){width=900 height=499}      |\n\n<!--\nOPTIONAL: For responsive UI changes, you can use the viewport size table below.\nDelete this table if not needed or delete rows that are not relevant to your changes.\n\n| Viewport size   | Before     | After      |\n| ----------------| ---------- | ---------- |\n| `xs` (<576px)   |            |            |\n| `sm` (>=576px)  |            |            |\n| `md` (>=768px)  |            |            |\n| `lg` (>=992px)  |            |            |\n| `xl` (>=1200px) |            |            |\n-->\n\n## How to set up and validate locally\n\n1. Enable 2FA for the user with a WebAuthn device BUT not Email OTP: https://gdk.test:3443/-/profile/two_factor_auth\n2. Enable this feature flag: https://gdk.test:3443/rails/features/two_factor_vue\n3. On an incognito window try to sign-in with WebAuthn.\n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist).\nIt helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.","prepared_at":"2026-06-02T15:00:41.475Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"eduardosanz/2fa-vue-webauthn","target_branch":"eduardosanz/2fa-vue-otp-recovery","squash_on_merge":true,"user_notes_count":9,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"ci_must_pass","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":true},{"id":491497106,"iid":238923,"sha":"8379223d833b01ed0aed0c38555bb3b5359fa682","draft":false,"state":"opened","title":"SAST Vulnerability Resolution - Follow Up - Make Custom Ability wip: true","author":{"id":23087401,"name":"Charlie Kroon","state":"active","locked":false,"web_url":"https://gitlab.com/charlieeekroon","username":"charlieeekroon","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/23087401/avatar.png","public_email":""},"labels":["backend","documentation","pipeline::tier-1"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238923","assignee":{"id":23087401,"name":"Charlie Kroon","state":"active","locked":false,"web_url":"https://gitlab.com/charlieeekroon","username":"charlieeekroon","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/23087401/avatar.png","public_email":""},"imported":false,"assignees":[{"id":23087401,"name":"Charlie Kroon","state":"active","locked":false,"web_url":"https://gitlab.com/charlieeekroon","username":"charlieeekroon","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/23087401/avatar.png","public_email":""}],"downvotes":0,"reference":"!238923","reviewers":[{"id":4018056,"name":"Alex Buijs","state":"active","locked":false,"web_url":"https://gitlab.com/alexbuijs","username":"alexbuijs","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4018056/avatar.png","public_email":"abuijs@gitlab.com"},{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T14:57:30.591Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238923","short":"!238923","relative":"!238923"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T16:43:17.351Z","description":"## What does this MR do and why?\n\nBased on the following review comment (https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238336#note_3411097974), we decided to add `wip: true` to the `update_sec_ai_workflow_settings` custom ability for now. \n\n## References\n\n- https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238336#note_3411097974 \n- Relevant documentation: https://docs.gitlab.com/development/permissions/custom_roles/#step-3-mark-the-ability-as-work-in-progress-optional\n\n## Screenshots or screen recordings\n\n<!---\nScreenshots are required for UI changes, and strongly recommended for all other merge requests.\n-->\n\n| Before | After  |\n| ------ | ------ |\n|        |        |\n\n<!--\nOPTIONAL: For responsive UI changes, you can use the viewport size table below.\nDelete this table if not needed or delete rows that are not relevant to your changes.\n\n| Viewport size   | Before     | After      |\n| ----------------| ---------- | ---------- |\n| `xs` (<576px)   |            |            |\n| `sm` (>=576px)  |            |            |\n| `md` (>=768px)  |            |            |\n| `lg` (>=992px)  |            |            |\n| `xl` (>=1200px) |            |            |\n-->\n\n## How to set up and validate locally\n\n<!--\nNumbered steps to set up and validate the change are strongly suggested.\n\nExample:\n\n1. In rails console enable the feature flag\n   ```ruby\n   Feature.enable(:member_areas_of_focus)\n   ```\n1. Visit any group or project member pages such as `http://127.0.0.1:3000/groups/flightjs/-/group_members`\n1. Click the `invite members` button.\n-->\n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist).\nIt helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.","prepared_at":"2026-06-02T14:58:08.817Z","merge_status":"can_be_merged","has_conflicts":false,"imported_from":"none","source_branch":"CK-MakeCustomAbilityWIPTrue","target_branch":"CK-SASTVR-RenameAbilityMoreGeneric","squash_on_merge":true,"user_notes_count":5,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"merge_request_blocked","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491496104,"iid":238922,"sha":"7b5ae0258208e8dda52206956391246f86e645fb","draft":true,"state":"opened","title":"Draft: Prevent compliance framework deletion when linked to a policy","author":{"id":10762712,"name":"Artur Fedorov","state":"active","locked":false,"web_url":"https://gitlab.com/arfedoro","username":"arfedoro","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/10762712/avatar.png","public_email":""},"labels":["backend","pipeline::tier-1","type::bug"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238922","assignee":{"id":10762712,"name":"Artur Fedorov","state":"active","locked":false,"web_url":"https://gitlab.com/arfedoro","username":"arfedoro","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/10762712/avatar.png","public_email":""},"imported":false,"assignees":[{"id":10762712,"name":"Artur Fedorov","state":"active","locked":false,"web_url":"https://gitlab.com/arfedoro","username":"arfedoro","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/10762712/avatar.png","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238922","reviewers":[],"created_at":"2026-06-02T14:55:06.433Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238922","short":"!238922","relative":"!238922"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T14:58:28.609Z","description":"## What does this MR do and why?\n\nWhen a compliance framework is referenced by a security policy, the framework could still be deleted through a **stale client**: the frameworks dashboard \"Delete\" button is only disabled from client-side state loaded at page render (`frameworks_table.vue` → `shouldDisableDeleteAction` → `framework.securityPolicies.nodes.length > 0`). If a framework is added to a policy scope without refreshing, the client still fires `destroyComplianceFramework`, and the destroy service had **no server-side guard** — so the framework was deleted while a policy still referenced it, leaving the policy pointing at a non-existent framework.\n\nThis MR adds a server-side guard:\n\n- **Model** (`ComplianceManagement::Framework#linked_to_security_policy?`): `compliance_framework_security_policies.exists?` — a single indexed lookup.\n- **Service** (`ComplianceManagement::Frameworks::DestroyService`): returns `ServiceResponse.error(reason: :linked_to_security_policy)` before `framework.destroy` when the framework is still referenced.\n- The GraphQL mutation already maps `result.message` into the `errors` array, and the frontend already surfaces those `errors` via `createAlert` — so a stale client now gets a clear, actionable message instead of a silent data-integrity corruption. **No mutation or frontend change is required.**\n\nThis is the *prevention* counterpart to the *surfacing* work in the #600244 tech-spec / !237517 — both are valuable and independent. Landing this guard first stops the bug from reproducing.\n\n## References\n\n- Issue: https://gitlab.com/gitlab-org/gitlab/-/work_items/600244 (see note 3407957204)\n- Related (surfacing approach): !237517\n\n## Database\n\nAll three tables (`compliance_management_frameworks`, `compliance_framework_security_policies`, `security_policies`) are in `gitlab_main_org`, so the `has_many through:` association is join-safe — no cross-database concern, no migration.\n\nThe new query is a single `exists?` on the FK-indexed `framework_id` column (`idx_compliance_security_policies_on_framework_id`):\n\n```sql\nSELECT 1 AS one FROM \"compliance_framework_security_policies\"\nWHERE \"compliance_framework_security_policies\".\"framework_id\" = $1 LIMIT 1;\n```\n\nNegligible cost. A database reviewer should confirm the query plan.\n\n## How to set up and validate locally\n\n1. Create a compliance framework in a group and a scan result / approval policy that scopes to that framework.\n2. In a Rails console, attempt to delete it:\n   ```ruby\n   framework = ComplianceManagement::Framework.find(<id>)\n   ComplianceManagement::Frameworks::DestroyService.new(framework: framework, current_user: <owner>).execute\n   # => ServiceResponse.error, reason: :linked_to_security_policy, message: \"Cannot delete the compliance framework because it is referenced by a security policy. Remove it from the policy scope first.\"\n   ```\n3. In the UI, with a framework linked to a policy via a stale client, trigger delete and confirm an alert shows the above message and the framework is **not** deleted.\n\n## Testing\n\nAdded specs (model, service, GraphQL mutation request):\n- `Framework#linked_to_security_policy?` — true when referenced, false otherwise.\n- `DestroyService` — does not destroy and returns `reason: :linked_to_security_policy` when linked.\n- Mutation request — record persists and `errors` is populated when linked.\n\n> Note: specs were **not** run locally (local test DB env was unavailable in this worktree); relying on CI to validate. MR kept as Draft until the pipeline is green.\n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist).","prepared_at":"2026-06-02T14:55:38.215Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"600244-guard-framework-delete-linked-policy","target_branch":"master","squash_on_merge":true,"user_notes_count":1,"work_in_progress":true,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":true},{"id":491489503,"iid":238920,"sha":"6a5c20f7ca5a2c607d2cf63ca35cd6a816c6f19b","draft":true,"state":"opened","title":"Draft: Product Docs AI Translation: GITTECHA-802 #1","author":{"id":24874660,"name":"GitLab-Argo Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-argo-bot","username":"gitlab-argo-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/24874660/avatar.png","public_email":""},"labels":["docs-only","documentation","gitlab-translation-service","group::localization","pipeline::tier-1","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238920","assignee":{"id":24874660,"name":"GitLab-Argo Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-argo-bot","username":"gitlab-argo-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/24874660/avatar.png","public_email":""},"imported":false,"assignees":[{"id":24874660,"name":"GitLab-Argo Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-argo-bot","username":"gitlab-argo-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/24874660/avatar.png","public_email":""}],"downvotes":0,"reference":"!238920","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T14:41:32.277Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238920","short":"!238920","relative":"!238920"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:06:23.717Z","description":"# What does this MR do?\n\nThis merge request contains translations of GitLab product documentation. The source files are\nfrom the `/doc` directory, and translations are returned to language-specific directories under `/doc-locale`.\n\n## Translation MR information\n\n- Argo Request: [GITTECHA-802: JA localization update for standardized API docs_4](https://gitlab.spartansoftwareinc.com/#workspace/request/GITTECHA-802)\n- Source: 656e19297336544fb9241ef24e0c44898f0d1ce9\n\n## Review workflow\n\nFor the full review workflow documentation, see the [Translation MR Review Workflow](https://gitlab.com/gitlab-com/localization/docs-site-localization/-/blob/main/translation_mr_review_workflow.md).\n\n### Assignee checklist\n\n- [ ] Fix conflicts (check commit history of each file in `main` to identify target changes causing conflicts, such as translation changes on production or TW shortcode/linting updates)\n- [ ] Fix any pipeline issues\n- [ ] Rebase if needed\n- [ ] Check the review app for all impacted pages (Duo can help produce a list of URLs)\n- [ ] Remove the MR from Draft mode (this triggers the first review by GitLab Duo)\n- [ ] If the Duo review identified translation errors requiring review by [Japanese content maintainers](https://gitlab.com/gitlab-com/localization/maintainers/japanese), ping and add them as a reviewer.\n- [ ] Hand off for review to a [tech docs maintainer](https://gitlab.com/gitlab-com/localization/maintainers/tech-docs). The MR should be ready to merge at this point\n\n### Review App\n\n| Review app |\n| ---------- |\n|  |\n\n### Reviewer checklist\n\n- [ ] Review changes\n- [ ] Verify build pipeline\n- [ ] Merge on approval","prepared_at":"2026-06-02T14:42:00.577Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"docs-i18n/-GITTECHA-802-1","target_branch":"master","squash_on_merge":true,"user_notes_count":3,"work_in_progress":true,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":10,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491487987,"iid":238919,"sha":"6aabff92f5471b880909794f37447a4e2833789b","draft":true,"state":"opened","title":"Draft: Product Docs AI Translation: GITTECHA-801 #1","author":{"id":24874660,"name":"GitLab-Argo Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-argo-bot","username":"gitlab-argo-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/24874660/avatar.png","public_email":""},"labels":["docs-only","documentation","gitlab-translation-service","group::localization","pipeline::tier-1","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238919","assignee":{"id":24874660,"name":"GitLab-Argo Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-argo-bot","username":"gitlab-argo-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/24874660/avatar.png","public_email":""},"imported":false,"assignees":[{"id":24874660,"name":"GitLab-Argo Bot","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-argo-bot","username":"gitlab-argo-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/24874660/avatar.png","public_email":""}],"downvotes":0,"reference":"!238919","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T14:38:17.106Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238919","short":"!238919","relative":"!238919"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:06:02.901Z","description":"# What does this MR do?\n\nThis merge request contains translations of GitLab product documentation. The source files are\nfrom the `/doc` directory, and translations are returned to language-specific directories under `/doc-locale`.\n\n## Translation MR information\n\n- Argo Request: [GITTECHA-801: JA localization update for standardized API docs_3](https://gitlab.spartansoftwareinc.com/#workspace/request/GITTECHA-801)\n- Source: 656e19297336544fb9241ef24e0c44898f0d1ce9\n\n## Review workflow\n\nFor the full review workflow documentation, see the [Translation MR Review Workflow](https://gitlab.com/gitlab-com/localization/docs-site-localization/-/blob/main/translation_mr_review_workflow.md).\n\n### Assignee checklist\n\n- [ ] Fix conflicts (check commit history of each file in `main` to identify target changes causing conflicts, such as translation changes on production or TW shortcode/linting updates)\n- [ ] Fix any pipeline issues\n- [ ] Rebase if needed\n- [ ] Check the review app for all impacted pages (Duo can help produce a list of URLs)\n- [ ] Remove the MR from Draft mode (this triggers the first review by GitLab Duo)\n- [ ] If the Duo review identified translation errors requiring review by [Japanese content maintainers](https://gitlab.com/gitlab-com/localization/maintainers/japanese), ping and add them as a reviewer.\n- [ ] Hand off for review to a [tech docs maintainer](https://gitlab.com/gitlab-com/localization/maintainers/tech-docs). The MR should be ready to merge at this point\n\n### Review App\n\n| Review app |\n| ---------- |\n|  |\n\n### Reviewer checklist\n\n- [ ] Review changes\n- [ ] Verify build pipeline\n- [ ] Merge on approval","prepared_at":"2026-06-02T14:38:39.452Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"docs-i18n/-GITTECHA-801-1","target_branch":"master","squash_on_merge":true,"user_notes_count":3,"work_in_progress":true,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":10,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491487904,"iid":238918,"sha":"c583575da89e56e8b557152f91c41d8637fef994","draft":true,"state":"opened","title":"Draft: Remove FF ci_create_pipeline_worker_retry_on_reference_not_found","author":{"id":37544004,"name":"Oleg Yakovenko","state":"active","locked":false,"web_url":"https://gitlab.com/oyakovenko-ext","username":"oyakovenko-ext","avatar_url":"https://secure.gravatar.com/avatar/bbb446c11b2e49eefd8b1e7c0579d0c8913e75dd2cae816bac2ce53a868d6316?s=80&d=identicon","public_email":""},"labels":["Contractor Contribution","backend","devops::verify","feature flag","group::pipeline authoring","pipeline::tier-1","section::ci","type::bug"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238918","assignee":{"id":37544004,"name":"Oleg Yakovenko","state":"active","locked":false,"web_url":"https://gitlab.com/oyakovenko-ext","username":"oyakovenko-ext","avatar_url":"https://secure.gravatar.com/avatar/bbb446c11b2e49eefd8b1e7c0579d0c8913e75dd2cae816bac2ce53a868d6316?s=80&d=identicon","public_email":""},"imported":false,"assignees":[{"id":37544004,"name":"Oleg Yakovenko","state":"active","locked":false,"web_url":"https://gitlab.com/oyakovenko-ext","username":"oyakovenko-ext","avatar_url":"https://secure.gravatar.com/avatar/bbb446c11b2e49eefd8b1e7c0579d0c8913e75dd2cae816bac2ce53a868d6316?s=80&d=identicon","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238918","reviewers":[{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"}],"created_at":"2026-06-02T14:38:03.820Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238918","short":"!238918","relative":"!238918"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T14:52:02.576Z","description":"## What does this MR do and why?\n\nRemoves the `ci_create_pipeline_worker_retry_on_reference_not_found` feature flag introduced in !235792. The flag has been fully rolled out and the retry behavior in `CreatePipelineWorker` is now unconditional.\n\n### Changes\n\n- Remove the `Feature.enabled?` guard from `raise_reference_not_found_error!` in `CreatePipelineWorker`\n- Delete the feature flag YAML definition\n- Simplify specs by removing FF-specific enabled/disabled contexts\n\n## References\n\n- Rollout issue: https://gitlab.com/gitlab-org/gitlab/-/work_items/600554\n- Original MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/235792","prepared_at":"2026-06-02T14:38:29.281Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"600554-remove-ff-ci-create-pipeline-worker-retry-on-reference-not-found","target_branch":"master","squash_on_merge":true,"user_notes_count":3,"work_in_progress":true,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false},{"id":491486811,"iid":238917,"sha":"d89babaa8fa8e682fc7240c5e6f108805622289e","draft":false,"state":"opened","title":"Rename sub reports to typed reports","author":{"id":20636818,"name":"Gal Katz","state":"active","locked":false,"web_url":"https://gitlab.com/gkatz1","username":"gkatz1","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/20636818/avatar.png","public_email":""},"labels":["backend","devops::security risk management","group::security platform management","pipeline::tier-2","pipeline:mr-approved","section::sec","type::maintenance"],"squash":true,"upvotes":0,"web_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests/238917","assignee":{"id":20636818,"name":"Gal Katz","state":"active","locked":false,"web_url":"https://gitlab.com/gkatz1","username":"gkatz1","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/20636818/avatar.png","public_email":""},"imported":false,"assignees":[{"id":20636818,"name":"Gal Katz","state":"active","locked":false,"web_url":"https://gitlab.com/gkatz1","username":"gkatz1","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/20636818/avatar.png","public_email":""}],"downvotes":0,"milestone":{"id":6177882,"iid":135,"state":"active","title":"19.1","expired":false,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/135","due_date":"2026-06-12","group_id":9970,"created_at":"2025-10-22T16:10:17.698Z","start_date":"2026-05-16","updated_at":"2025-10-22T16:10:17.698Z","description":""},"reference":"!238917","reviewers":[{"id":32707,"name":"rossfuhrman","state":"active","locked":false,"web_url":"https://gitlab.com/rossfuhrman","username":"rossfuhrman","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/32707/avatar.png","public_email":""},{"id":21826781,"name":"GitLab Duo","state":"active","locked":false,"web_url":"https://gitlab.com/GitLabDuo","username":"GitLabDuo","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/21826781/duo-bot.png"},{"id":34844730,"name":"Vasyl Pedak","state":"active","locked":false,"web_url":"https://gitlab.com/vpedak1","username":"vpedak1","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/34844730/avatar.png","public_email":""}],"created_at":"2026-06-02T14:35:30.651Z","project_id":278964,"references":{"full":"gitlab-org/gitlab!238917","short":"!238917","relative":"!238917"},"time_stats":{"time_estimate":0,"total_time_spent":0},"updated_at":"2026-06-02T15:43:04.425Z","description":"## What does this MR do and why?\n\nRename `sub_reports` to `typed_reports`. No logic change. This should fix [this comment](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/236291#note_3378187237).\n\nChangelog: changed\\\nEE: true\n\n## MR acceptance checklist\n\nEvaluate this MR against the [MR acceptance checklist](https://docs.gitlab.com/development/code_review/#acceptance-checklist).\nIt helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.","prepared_at":"2026-06-02T14:36:12.043Z","merge_status":"unchecked","has_conflicts":false,"imported_from":"none","source_branch":"gkatz_rename_sub_reports_to_typed_reports","target_branch":"master","squash_on_merge":true,"user_notes_count":6,"work_in_progress":false,"source_project_id":278964,"target_project_id":278964,"detailed_merge_status":"unchecked","task_completion_status":{"count":0,"completed_count":0},"force_remove_source_branch":true,"merge_when_pipeline_succeeds":false,"blocking_discussions_resolved":false}],"meta":{"timestamp":"2026-06-02T16:52:29.555Z","request_id":"70467dd5-7cf5-44a7-bbe2-2e872ab10452"},"status":"ok","message":"Project merge requests","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/project/readme":{"get":{"operationId":"get_v1_project_readme","tags":["Project"],"summary":"Decoded README","description":"","parameters":[{"name":"project","in":"query","required":true,"description":"Project id or group/name path (or gitlab.com URL)","schema":{"type":"string"},"example":"gitlab-org/gitlab"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"ref":"master","size":5869,"content":"# GitLab\n\n## Canonical source\n\nThe canonical source of GitLab where all development takes place is [hosted on GitLab.com](https://gitlab.com/gitlab-org/gitlab).\n\nIf you wish to clone a copy of GitLab without proprietary code, you can use the read-only mirror of GitLab located at https://gitlab.com/gitlab-org/gitlab-foss/. However, please do not submit any issues and/or merge requests to that project.\n\n## Free trial\n\nYou can request a free trial of GitLab Ultimate [on our website](https://about.gitlab.com/free-trial/).\n\n## Open source software to collaborate on code\n\nTo see how GitLab looks please see the [features page on our website](https://about.gitlab.com/features/).\n\n- Manage Git repositories with fine grained access controls that keep your code secure\n- Perform code reviews and enhance collaboration with merge requests\n- Complete continuous integration (CI) and continuous deployment/delivery (CD) pipelines to build, test, and deploy your applications\n- Each project can also have an issue tracker, issue board, and a wiki\n- Used by more than 100,000 organizations, GitLab is the most popular solution to manage Git repositories on-premises\n- Open-core, most of the code is MIT with the files in `/ee` being proprietary but source available and open for contributions.\n\n## Editions\n\nThere are three editions of GitLab:\n\n- GitLab Community Edition (CE) is available freely under the MIT Expat license.\n- GitLab Enterprise Edition (EE) includes [extra features](https://about.gitlab.com/pricing/#compare-options) that are more useful for organizations with more than 100 users. To use EE and get official support please [become a subscriber](https://about.gitlab.com/pricing/).\n- JiHu Edition (JH) tailored specifically for the [Chinese market](https://about.gitlab.cn/).\n\n## Licensing\n\nSee the [LICENSE](LICENSE) file for licensing information as it pertains to\nfiles in this repository.\n\n## Hiring\n\nWe are hiring developers, support engineers, and production engineers all the time, please see our [jobs page](https://about.gitlab.com/jobs/).\n\n## Website\n\nOn [about.gitlab.com](https://about.gitlab.com/) you can find more information about:\n\n- [Subscriptions](https://about.gitlab.com/pricing/)\n- [Professional Services](https://about.gitlab.com/services/)\n- [Community](https://about.gitlab.com/community/)\n- [Hosted GitLab.com](https://about.gitlab.com/gitlab-com/) use GitLab as a free service\n- [GitLab Enterprise Edition](https://about.gitlab.com/features/#enterprise) with additional features aimed at larger organizations.\n- [GitLab CI](https://about.gitlab.com/solutions/continuous-integration/) a continuous integration (CI) server that is easy to integrate with GitLab.\n\n## Requirements\n\nPlease see the [requirements documentation](doc/install/requirements.md) for system requirements and more information about the supported operating systems.\n\n## Installation\n\nThe recommended way to install GitLab is with the [Omnibus packages](https://docs.gitlab.com/install/package/) on our package server.\nCompared to [a self-compiled installation](https://docs.gitlab.com/install/self_compiled/), this is faster and less error prone.\nJust select your operating system, download the respective package (Debian or RPM) and install it using the system's package manager.\n\nFor more information about other installation methods, see [install GitLab](https://about.gitlab.com/install/).\n\n## Contributing\n\nGitLab is an open source project and we are very happy to accept community contributions. Please refer to the [`CONTRIBUTING.md`](CONTRIBUTING.md) file for more details.\n\n## Install a development environment\n\nTo work on GitLab itself, we recommend setting up your development environment with [the GitLab Development Kit (GDK)](https://gitlab.com/gitlab-org/gitlab-development-kit).\nIf you do not use GDK, you need to [install and configure all the dependencies yourself](https://docs.gitlab.com/install/installation/), this is a lot of work and error prone.\nOne small thing you also have to do when installing it yourself is to copy the example development Puma configuration file:\n\n```shell\ncp config/puma.example.development.rb config/puma.rb\n```\n\nInstructions on how to start GitLab and how to run the tests can be found in the [getting started section of the GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit#getting-started).\n\n## Software stack\n\nGitLab is a Ruby on Rails application that runs on the following software:\n\n- Ubuntu/Debian/CentOS/RHEL/OpenSUSE\n- Ruby (MRI) 3.3.10\n- Git 2.33+\n- Redis 6.0+\n- PostgreSQL 16.5+\n\nFor more information please see the [architecture](https://docs.gitlab.com/ee/development/architecture.html) and [requirements](https://docs.gitlab.com/ee/install/requirements.html) documentation.\n\n## UX design\n\nPlease adhere to the [UX Guide](https://design.gitlab.com/) when creating designs and implementing code.\n\n## Third-party applications\n\nThere are a lot of [third-party applications integrating with GitLab](https://about.gitlab.com/applications/). These include GUI Git clients, mobile applications and API wrappers for various languages.\n\n## GitLab release cycle\n\nFor more information about the release process see the [release documentation](https://gitlab.com/gitlab-org/release-tools/blob/master/README.md).\n\n## Upgrading\n\nFor upgrading information please see our [update page](https://about.gitlab.com/update/).\n\n## Documentation\n\nAll documentation can be found on <https://docs.gitlab.com>.\n\n## Education\n\nGet up to speed quickly with comprehensive learning resources at [GitLab University](https://university.gitlab.com).\n\n## Getting help\n\nPlease see [Getting help for GitLab](https://about.gitlab.com/getting-help/) on our website for the many options to get help.\n\n## Why should I use GitLab?\n\nRead [why our customers choose GitLab](https://about.gitlab.com/why-gitlab/).\n","file_name":"README.md","file_path":"README.md"},"meta":{"timestamp":"2026-06-02T16:52:31.549Z","request_id":"a9c64457-ca18-4303-a799-1cb41812fd3b"},"status":"ok","message":"Project README","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/project/releases":{"get":{"operationId":"get_v1_project_releases","tags":["Project"],"summary":"Releases","description":"","parameters":[{"name":"project","in":"query","required":true,"description":"Project id or group/name path (or gitlab.com URL)","schema":{"type":"string"},"example":"gitlab-org/gitlab"},{"name":"per_page","in":"query","required":false,"description":"Page size (max 100)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":[{"name":"GitLab 18.11","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.11.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.11.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.11.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.11.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.11.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.11.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":11291544,"url":"https://about.gitlab.com/releases/2026/04/16/gitlab-18-11-released/","name":"GitLab 18.11 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2026/04/16/gitlab-18-11-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.11.0-ee/gitlab-v18.11.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.11.0-ee/gitlab-v18.11.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.11.0-ee/gitlab-v18.11.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.11.0-ee/gitlab-v18.11.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"1060c7b0ff78be7c8abe8fd6d23dcb1ca493fd78","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/1060c7b0ff78be7c8abe8fd6d23dcb1ca493fd78","short_id":"1060c7b0","trailers":[],"created_at":"2026-04-15T21:41:05.000+00:00","parent_ids":["3abf8afcfa9190b7400d05e3f45cd81e8e286b99"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-15T21:41:05.000+00:00","committed_date":"2026-04-15T21:41:05.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.11.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.11.0-ee","evidences":[],"created_at":"2026-04-16T14:53:40.881Z","milestones":[{"id":5948922,"iid":129,"state":"active","title":"18.11","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/129","due_date":"2026-04-10","group_id":9970,"created_at":"2025-03-26T00:25:30.642Z","start_date":"2026-03-14","updated_at":"2025-06-30T16:29:30.747Z","description":"| Milestone | Quarter    | Start Date - Code Merging | End Date - Code Merging | Release Date  |\r\n|-----------|------------|---------------------------|-------------------------|---------------|\r\n| 18.11     | FY27-Q1-M3 | 2026-04-09                | 2026-04-10              | 2026-04-16    |\r\n","issue_stats":{"total":2294,"closed":2127}}],"commit_path":"/gitlab-org/gitlab/-/commit/1060c7b0ff78be7c8abe8fd6d23dcb1ca493fd78","description":"![42 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=42&style=for-the-badge \"New features added in this release\")\n![4062 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=4062&style=for-the-badge \"Total features\")\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![13 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=13&style=flat-square \"New features added to this tier in this release\")\n![737 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=737&style=flat-square \"Total features in this tier\")\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Dependency resolution for Maven and Python SBOM scanning](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/#dependency-resolution): <code>Software Composition Analysis</code></summary>\n\n> GitLab dependency scanning using SBOM now supports generating a dependency graph automatically for Maven and Python projects.\n> Previously, dependency scanning required users to provide a lock file or a graph file to get an accurate dependency analysis.\n> Now, when a lock file or graph file is not available, the analyzer automatically attempts to generate one.\n> This improvement makes it easier for Maven and Python projects to enable dependency scanning without requiring a lock file.\n\n</details>\n\n<details><summary>[Incremental scanning for Advanced SAST](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#incremental-scanning): <code>SAST</code></summary>\n\n> You can now perform incremental scans that analyze only changed parts of the codebase with GitLab Advanced SAST, significantly reducing scan times compared to full repository scans. This feature is a further iteration of diff-based scanning, because it produces full results for codebases.\n> \n> By scanning just the code that has changed rather than the entire codebase, your teams can integrate security testing more seamlessly into their development workflow without sacrificing speed or adding friction.\n\n</details>\n\n<details><summary>[Unverified vulnerabilities (Beta)](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#report-unverified-vulnerabilities): <code>SAST</code></summary>\n\n> Advanced SAST can now surface unverified vulnerabilities (findings that cannot be fully traced from source to sink) directly in the vulnerability report. Enable this feature if you have a higher tolerance for false positives over false negatives.\n> \n> This feature is in beta status. Provide feedback in [issue 596512](https://gitlab.com/gitlab-org/gitlab/-/work_items/596512).\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Vulnerability resolution generally available on GitLab Duo Agent Platform](https://docs.gitlab.com/user/application_security/vulnerabilities/agentic_vulnerability_resolution/): <code>Vulnerability Management</code></summary>\n\n> Agentic SAST Vulnerability Resolution is now generally available in GitLab 18.11 on the GitLab Duo Agent Platform. It runs as part of your SAST scan, after SAST false positive detection runs, or when manually triggered for individual SAST vulnerabilities.\n> \n> Agentic SAST Vulnerability Resolution:\n> \n> - Autonomously analyzes the finding and reasons through the surrounding code context.\n> - Automatically creates a ready-to-review merge request with proposed code fixes for critical and high severity SAST vulnerabilities.\n> - Provides quality assessments so reviewers can quickly gauge confidence in the proposed remediation.\n> - Allows you to apply resolutions directly from vulnerability details pages.\n> \n> We welcome your feedback in [issue 585626](https://gitlab.com/gitlab-org/gitlab/-/issues/585626).\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Automated vulnerability severity overrides](https://docs.gitlab.com/user/application_security/policies/vulnerability_management_policy/#severity-override-policies): <code>Security Policy Management</code></summary>\n\n> Default vulnerability severities don't always reflect your organization's actual risk. A critical CVE in an internal-only service might not warrant the same urgency as one in a public-facing application, yet teams spend significant time triaging findings that don't match their risk model.\n> \n> Vulnerability management policies can now automatically adjust the severity of vulnerabilities based on conditions like CVE ID, CWE ID, file path, and directory. When applied, the policy updates the severity of any vulnerability that matches the criteria on the default branch. Manual overrides still take precedence, and all changes are logged in the vulnerability's history and audit events.\n> \n> This reduces triage work and ensures developers focus on the findings that matter most to your business.\n\n</details>\n\n<details><summary>[Top CWE chart in security dashboards](https://docs.gitlab.com/user/application_security/security_dashboard/#top-10-cwes): <code>Vulnerability Management</code></summary>\n\n> The top CWE chart is now available on the new security dashboards. Identify the most common CWEs across your project or instance to identify opportunities for training, improvement, or program optimization. Users can group the dashboard data by severity and filter the dashboard by severity, project, and report type.\n\n</details>\n\n<details><summary>[Block merge requests with high exploitability risk](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#vulnerability_attributes-object): <code>Security Policy Management</code></summary>\n\n> Previously, merge request (MR) approval policies could block MRs based on vulnerability severity, but not all vulnerabilities carry the same risk. CVSS severity alone doesn't tell you whether a CVE is being exploited or how likely exploitation is. This leads to noisy approval policies and wasted time for developers and security teams.\n> \n> You can now configure MR approval policies using Known Exploited Vulnerability (KEV) and Exploit Prediction Scoring System (EPSS) data. Block or require approval when a finding is in the KEV catalog (actively exploited in the wild), or when its EPSS score is above a threshold. Policy violations in the MR include KEV and EPSS context so developers understand why the security gate was triggered.\n> \n> This gives security teams precise control over which findings block or warn, reduces alert fatigue, and keeps enforcement aligned with the current threat landscape.\n\n</details>\n\n<details><summary>[Assign CVSS 4.0 scores to vulnerabilities](https://docs.gitlab.com/user/application_security/vulnerabilities/severities/): <code>Vulnerability Management</code></summary>\n\n> CVSS 4.0 is the latest version of the industry standard used to assess and rate the severity of a vulnerability. You can now view and access CVSS 4.0 score in the UI, including the vulnerability details page and the vulnerability report. You can also query the score using the API.\n\n</details>\n\n<details><summary>[Improved row interaction in the vulnerability report](https://docs.gitlab.com/user/application_security/vulnerability_report/): <code>Vulnerability Management</code></summary>\n\n> Previously, you had to select the row description to navigate to a vulnerability details page from the vulnerability report.\n> \n> You can now select anywhere in the row to go directly to its details. Link styling for the vulnerability description and file location only appears when you hover over each link, and keyboard navigation has been improved.\n> \n> These changes make the vulnerability report more intuitive and accessible.\n\n</details>\n\n<details><summary>[Export a security dashboard as a PDF](https://docs.gitlab.com/user/application_security/security_dashboard/#export-as-pdf): <code>Vulnerability Management</code></summary>\n\n> You can export the security dashboard as a PDF for use in reports and presentations. The export captures the current state of all of the charts and panels in the dashboard, including any active filters.\n\n</details>\n\n<details><summary>[SAST scanning in security configuration profiles](https://docs.gitlab.com/user/application_security/configuration/security_configuration_profiles/): <code>Security Testing Configuration</code></summary>\n\n> In GitLab 18.9, we introduced security configuration profiles with the **Secret Detection - Default** profile. In GitLab 18.11, profiles now extend to SAST with the **Static Application Security Testing (SAST) - Default** profile, giving you a unified control surface to apply standardized static analysis coverage across all your projects without touching a single CI/CD configuration file.\n> \n> The profile activates two scan triggers:\n> \n> - **Merge Request Pipelines**: Automatically runs a SAST scan each time new commits are pushed to a branch with an open merge request. Results only include new vulnerabilities introduced by the merge request.\n> - **Branch Pipelines (default only)**: Runs automatically when changes are merged or pushed to the default branch, providing a complete view of your default branch's SAST posture.\n\n</details>\n\n<details><summary>[Security attribute filters in group security dashboards](https://docs.gitlab.com/user/application_security/security_dashboard/#filter-the-entire-dashboard): <code>Vulnerability Management</code></summary>\n\n> You can now filter the results in a group security dashboard based on the security attributes that you have applied to the projects in that group.\n> \n> The available security attributes include the following:\n> \n> - Business impact\n> - Application\n> - Business unit\n> - Internet exposure\n> - Location\n\n</details>\n\n<details><summary>[Identifier list popover in the vulnerability report](https://docs.gitlab.com/user/application_security/vulnerability_report/): <code>Vulnerability Management</code></summary>\n\n> The vulnerability report now shows the primary CVE identifier as a clickable link in each row. When multiple identifiers exist, a **\"+N more\"** popover lists all of the identifiers. Each identifier in the list links to its external reference (for example, in the CVE, CWE, or WASC databases) so you can quickly access more details without leaving the report.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![7 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=7&style=flat-square \"New features added to this tier in this release\")\n![823 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=823&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Default model for GitLab Duo Agentic Chat updated from Haiku 4.5 to Sonnet 4.6](https://docs.gitlab.com/user/duo_agent_platform/model_selection/#default-models): <code>Duo Agent Platform</code></summary>\n\n> We've made an update to improve your Agentic Chat experience in GitLab. The default model for Agentic Chat was upgraded from Claude Haiku 4.5 to Claude Sonnet 4.6, hosted on Vertex AI. Claude Sonnet 4.6 offers improved reasoning and response quality but uses a higher GitLab Credit multiplier than Haiku 4.5.\n> \n> You can select an alternative model, including Haiku, using the [model selection](https://docs.gitlab.com/user/duo_agent_platform/model_selection/#select-a-model-for-a-feature) setting. If you've already selected a specific model, your choice is preserved. This update only affects the default and will not override any existing selections. For information about credit multipliers by model, see the [GitLab Credits documentation](https://docs.gitlab.com/subscriptions/gitlab_credits/).\n\n</details>\n\n<details><summary>[Mistral AI now supported as a self-hosted model in GitLab Duo Agent Platform](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_llm_serving_platforms/#cloud-hosted-model-deployments) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> GitLab Duo Agent Platform now supports Mistral AI as an LLM platform for self-hosted model deployments. GitLab Self-Managed customers can configure Mistral AI alongside existing supported platforms, including AWS Bedrock, Google Vertex AI, Azure OpenAI, Anthropic, and OpenAI. This gives teams more choice in how they run AI-powered features.\n\n</details>\n\n<details><summary>[Enhanced GitLab Duo Agent Platform analytics on Duo and SDLC trends dashboard](https://docs.gitlab.com/user/analytics/duo_and_sdlc_trends/): <code>DevOps Reports</code></summary>\n\n> The GitLab Duo and SDLC trends dashboard delivers improved analytics capabilities to measure the impact of GitLab Duo\n> on software delivery. The dashboard now includes new single stat panels for monthly Agent Platform unique users and Agentic Chat sessions.\n> Additionally, metrics previously displayed as a % usage compared to seat assignments have been updated to strictly report usage counts.\n> This change resolves the [issue](https://gitlab.com/gitlab-org/gitlab/-/work_items/590326) where counts were missing Agent Platform usage controlled under the new usage billing model.\n\n</details>\n\n<details><summary>[View historical months in GitLab Credits dashboard](https://docs.gitlab.com/subscriptions/gitlab_credits/?tab=Customers+Portal#view-the-gitlab-credits-dashboard): <code>Consumables Cost Management</code></summary>\n\n> The GitLab Credits dashboard in Customers Portal now supports historical month navigation. Billing managers can browse past billing months to review daily usage trends, compare consumption patterns across periods, and reconcile usage with invoices. Previously, the dashboard only displayed the current billing month. With this improvement, administrators can make more informed decisions about credit allocation and forecast future needs based on historical data.\n\n</details>\n\n<details><summary>[Set subscription-level usage cap for GitLab Credits](https://docs.gitlab.com/subscriptions/gitlab_credits/#usage-controls): <code>Consumables Cost Management</code></summary>\n\n> Administrators can now set a monthly usage cap for On-Demand Credits at the subscription level. When total on-demand credit consumption reaches the configured cap, GitLab Duo Agent Platform access is automatically suspended for all users on that subscription until the next billing period begins or the admin adjusts the cap. This setting gives organizations a hard guardrail against unexpected overage bills, removing a key barrier to broader Agent Platform rollout. Caps reset automatically each billing period, and administrators receive an email notification when the cap is reached.\n\n</details>\n\n<details><summary>[Set per-user GitLab Credits cap](https://docs.gitlab.com/subscriptions/gitlab_credits/#usage-control-status): <code>Consumables Cost Management</code></summary>\n\n> Administrators can now set an optional per-user usage cap for GitLab Credits per billing period. When an individual user's total credit consumption reaches the configured limit, GitLab Duo Agent Platform access is suspended only for that user, while other users continue unaffected. This prevents any single user from consuming a disproportionate share of the organization's credit pool, and gives administrators fine-grained control over usage distribution. Per-user usage caps work alongside subscription-level usage caps, by applying the cap that is reached first.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Epic weights](https://docs.gitlab.com/user/work_items/weight/): <code>Portfolio Management</code></summary>\n\n> Epics now support weights, making it easier to estimate and prioritize large-scale\n> initiatives during planning.\n> \n> Before breaking down an epic into child issues, you can assign a preliminary weight\n> to represent your initial estimate.\n> As you decompose the epic, the weight automatically updates to reflect the rolled-up total\n> from all child issues.\n> This is consistent with how weight rollup works for issues and tasks.\n> \n> On the epic detail page, you can see both the preliminary weight and the rolled-up weight\n> from child issues, giving you the insight needed to refine estimates over time.\n\n</details>\n\n\n\n#### Core\n\n![22 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=22&style=flat-square \"New features added to this tier in this release\")\n![2502 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2502&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Data Analyst Foundational Agent now generally available](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/data_analyst/): <code>Custom Dashboards Foundation</code></summary>\n\n> The Data Analyst Agent is a specialized AI chat assistant that helps you query, visualize, and surface data across the GitLab platform.\n> \n> Backed by the [GitLab Query Language (GLQL)](https://docs.gitlab.com/user/glql), the Data Analyst can retrieve and analyze data about each of the supported [data sources](https://docs.gitlab.com/user/glql/data_sources/), and provide clear, actionable insights about your software development health and engineering efficiency.\n> \n> These insights can be visualized directly in the agent output and embedded directly into issues and epics for further evaluation.\n</details>\n\n<details><summary>[Deploy Gitaly on Kubernetes](https://docs.gitlab.com/administration/gitaly/kubernetes/) <i>(self-managed only)</i>: <code>Gitaly</code></summary>\n\n> You can now deploy Gitaly on Kubernetes as a fully supported deployment method. This gives you greater flexibility in managing your GitLab infrastructure by using Kubernetes orchestration capabilities for scaling, high availability, and resource management. Previously, Kubernetes deployments required custom configurations and weren't officially supported, making it difficult to maintain reliable Gitaly deployments in containerized environments.\n\n</details>\n\n<details><summary>[Configure tools in custom flow definitions](https://docs.gitlab.com/user/duo_agent_platform/flows/custom/#create-a-flow): <code>Duo Agent Platform</code></summary>\n\n> You can now configure tool options and parameter values directly in your custom flow definitions to supersede the LLM default values. This gives you more precise, consistent control over how tools behave within a custom flow, making it easier to enforce guardrails and specific parameter values across that flow.\n\n</details>\n\n<details><summary>[ClickHouse is generally available for Self-Managed deployments](https://docs.gitlab.com/integration/clickhouse/#set-up-clickhouse): <code>DevOps Reports</code></summary>\n\n> For GitLab Self-Managed instances, we now have improved recommendations and configuration guidance for the GitLab [ClickHouse integration](https://docs.gitlab.com/integration/clickhouse/). Customers have options to bring their own cluster, or use the ClickHouse Cloud (recommended) setup option. This integration powers multiple dashboards and unlocks access to various API endpoints within the analytics space.\n> \n> This scalable, high-performance database is part of the larger architectural improvements planned for the GitLab analytics infrastructure.\n\n</details>\n\n<details><summary>[GLQL now has access to projects, pipelines, and jobs data sources](https://docs.gitlab.com/user/glql/data_sources/): <code>Custom Dashboards Foundation</code></summary>\n\n> The [GitLab Query Language (GLQL)](https://docs.gitlab.com/user/glql/) now has access to three new data sources: projects, pipelines, and jobs. These new data sources are also available as embedded views, letting teams surface pipeline results, job statuses, and project overviews directly in wikis, issue and merge request descriptions, and repository Markdown files.\n> GLQL also powers the [Data Analyst Agent](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/data_analyst/). With these new types, the agent can inspect CI/CD job results, debug failures, and provide detailed overviews of pipeline execution, as well as provide an accurate overview of projects in a namespace.\n</details>\n\n<details><summary>[Kubernetes 1.35 support](https://docs.gitlab.com/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features): <code>Deployment Management</code></summary>\n\n> GitLab now fully supports Kubernetes version 1.35. If you want to deploy your applications to Kubernetes\n> and access all features, upgrade your connected clusters to the most recent version.\n> For more information, see [supported Kubernetes versions for GitLab features](https://docs.gitlab.com/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features).\n\n</details>\n\n<details><summary>[Linux package improvements](https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> In GitLab 19.0, the minimum-supported version of PostgreSQL will be version 17. To prepare for this change, on instances that don't use [PostgreSQL Cluster](https://docs.gitlab.com/administration/postgresql/replication_and_failover/), upgrades to GitLab 18.11 will attempt to automatically upgrade PostgreSQL to version 17.\n> \n> If you use [PostgreSQL Cluster](https://docs.gitlab.com/administration/postgresql/replication_and_failover/) or [opt out of this automated upgrade](https://docs.gitlab.com/omnibus/settings/database/#opt-out-of-automatic-postgresql-upgrades), you must [manually upgrade to PostgreSQL 17](https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server) to be able to upgrade to GitLab 19.0.\n\n</details>\n\n<details><summary>[Backup and Restore Support for Container Registry Metadata Database](https://docs.gitlab.com/administration/backup_restore/#metadata-database) <i>(self-managed only)</i>: <code>Backup/Restore of GitLab instances</code></summary>\n\n> The GitLab [backup Rake task](https://docs.gitlab.com/administration/backup_restore/) for Linux package installations and the [backup-utility](https://docs.gitlab.com/charts/backup-restore/) for Cloud Native (Helm) installations now support the [container registry metadata database](https://docs.gitlab.com/administration/packages/container_registry_metadata_database/). You can now back up references to blobs, manifests, tags, and other data stored in the metadata database, enabling recovery in the event of malicious or accidental data corruption.\n\n</details>\n\n<details><summary>[New navigation experience for groups in Explore](https://docs.gitlab.com/user/group/#explore-groups): <code>Groups & Projects</code></summary>\n\n> We're excited to announce improvements to the groups list in **Explore**, making it easier to discover groups across your GitLab instance.\n> The redesigned interface introduces a tabbed layout with two views:\n> \n> - **Active** tab: Browse all accessible groups, helping you discover relevant communities and projects.\n> - **Inactive** tab: View archived groups and groups pending deletion for visibility into group lifecycle status.\n> \n> These changes streamline group discovery and provide clearer visibility into which groups are available to join.\n\n</details>\n\n<details><summary>[Asynchronous transfer of projects](https://docs.gitlab.com/user/group/manage): <code>Groups & Projects</code></summary>\n\n> In previous versions of GitLab, transfers of large groups and projects could timeout. As we move groups and projects to use a unified state model for operations such as transfer, archive, and deletion, you get more consistent behavior, better visibility into state history and audit details, and fewer timeouts, specifically, for long running transfer operations through asynchronous processing.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Wiki sidebar toggle repositioned for easier access](https://docs.gitlab.com/user/project/wiki/#sidebar): <code>Wiki</code></summary>\n\n> The wiki sidebar toggle is now positioned on the left side, directly next to the sidebar\n> it controls.\n> \n> When the sidebar is collapsed, the toggle remains visible as a floating\n> control so you can reopen it without scrolling back to the top of the page.\n\n</details>\n\n<details><summary>[Sticky action bar on wiki pages](https://docs.gitlab.com/user/project/wiki/): <code>Wiki</code></summary>\n\n> The action bar on wiki pages is now sticky, so it remains visible as you scroll\n> through a page. Previously, you had to scroll back to the top to access actions\n> like editing, viewing page history, or managing templates. Now the page title\n> and key actions, including Edit, New page, Templates, Page history, and more,\n> stay within reach no matter how far down the page you are.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[CI Expert Agent launches in beta](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/ci_expert_agent/): <code>Pipeline Composition</code></summary>\n\n> The AI-powered CI Expert Agent is now available in beta. This agent helps teams get from GitLab code to a first working pipeline without starting from a blank `.gitlab-ci.yml`.\n> \n> Using GitLab Duo Agent Platform, the agent inspects your repository, asks a few guided questions about your build and test process, and generates a ready-to-run pipeline you can review, edit, and commit.\n> \n> This turns pipeline creation into a conversational, context-aware experience, while still letting you take full control of the YAML after you're ready to evolve and optimize your configuration.\n\n</details>\n\n<details><summary>[Reconfigure inputs when manually running MR pipelines](https://docs.gitlab.com/ci/pipelines/merge_request_pipelines/#run-a-merge-request-pipeline-with-custom-inputs): <code>Pipeline Composition</code></summary>\n\n> A powerful aspect of CI/CD inputs is that you can manually run new pipelines with new values for runtime customization.\n> This was not available in merge request (MR) pipelines before, but in this release you can now customize inputs in MR pipelines too.\n> \n> After you configure inputs for MR pipelines, you can optionally modify those inputs and change the pipeline behavior any time you run a new pipeline for a merge request.\n\n</details>\n\n<details><summary>[GitLab Runner 18.11](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're also releasing GitLab Runner 18.11 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's New:\n> \n> - [Create `concrete` helper image with bundled dependencies](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39286)\n> - [Read the job router feature flag from the runner configuration instead of an environment variable](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39280)\n> \n> #### Bug Fixes:\n> \n> - [Incorrect runner binary path after refactoring](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39329)\n> - [Pipeline hangs on cache operations](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39279)\n> - [The `docker-machine` binary in GitLab Runner 18.9.0 references CVE-2025-68121](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39276)\n> - [Runner silently falls back to job payload credentials when credential helper binary is missing from `DOCKER_AUTH_CONFIG`](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39201)\n> - [`CONCURRENT_PROJECT_ID `not unique in different jobs, which causes a conflict in the builds directory](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/38307)\n> - [Artifact upload fails with timeout awaiting response headers](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/37220)\n> - [User-defined `after_script` executes after failed `pre_build_script` and bypasses `post_build_script`](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/3116)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-11-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Prefer mode for the container registry metadata database](https://docs.gitlab.com/administration/packages/container_registry_metadata_database/#prefer-mode) <i>(self-managed only)</i>: <code>Container Registry</code></summary>\n\n> You can now set the container registry metadata database to `prefer` mode, a new configuration option alongside the existing `true` and `false` values. In prefer mode, the registry automatically detects whether it should use the metadata database or fall back to legacy storage based on the current state of your installation.\n> \n> If your registry has existing filesystem metadata that has not been imported to the database, the registry continues to use legacy storage until you complete a metadata import. If the database is already in use, or on a fresh installation, the registry uses the database directly.\n> \n> In a later release, `prefer` mode will become the default for new Linux package installations. Existing installations will not be affected. For more information, see [issue 595480](https://gitlab.com/gitlab-org/gitlab/-/work_items/595480).\n\n</details>\n\n<details><summary>[Package protection rules now support Terraform modules](https://docs.gitlab.com/user/packages/package_registry/package_protection_rules/): <code>Package Registry</code></summary>\n\n> Teams publishing Terraform modules through the built-in GitLab Terraform module registry had\n> no way to restrict who could push new module versions. Package protection rules supported\n> several package formats but did not include `terraform_module`, leaving infrastructure\n> teams without a project-level push control.\n> \n> You can now create package protection rules scoped to `terraform_module`, restricting push\n> access based on minimum role. Support is available in the UI package type dropdown, the\n> REST API, the GraphQL API, and the GitLab Terraform provider resource.\n\n</details>\n\n<details><summary>[Release evidence now includes packages](https://docs.gitlab.com/user/project/releases/release_evidence/#include-packages-as-release-evidence): <code>Package Registry</code>, <code>Release Evidence</code></summary>\n\n> When creating a GitLab Release, packages published to the package registry were not\n> automatically associated with it. Teams had to manually construct package URLs and attach\n> them as release links through the API or pipeline scripts, adding friction and risk of\n> incomplete release records.\n> \n> GitLab now automatically includes packages in release evidence when the package version\n> matches the release tag. This creates a verifiable, auditable link between your release and\n> its associated packages without any manual steps, keeping source code, artifacts, and\n> packages together in one complete release snapshot.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Create Service Account in subgroups and projects](https://docs.gitlab.com/user/profile/service_accounts/): <code>System Access</code></summary>\n\n> Teams can now create service accounts in subgroups and projects. Instead of broad, top-level group bots, you can attach a dedicated service account to a single subgroup or project and manage its access like any other member of that namespace. Group and subgroup service accounts can be invited to the group where they were created or to any descendant subgroups and projects. Project service accounts are limited to their own project.\n\n</details>\n\n<details><summary>[Service Accounts available on GitLab Free](https://docs.gitlab.com/user/profile/service_accounts/): <code>System Access</code></summary>\n\n> Service accounts are now available on GitLab.com in all tiers. Previously limited to\n> Premium and Ultimate, service accounts let you perform automated actions, access data, or run\n> scheduled processes without tying credentials to individual team members. They're commonly used in\n> pipelines and third-party integrations where credentials must stay stable regardless of team\n> changes. On GitLab Free, you can create up to 100 service accounts per top-level group, including those\n> created in subgroups or projects.\n\n</details>\n\n<details><summary>[Fine-grained permissions for personal access tokens now available (Beta)](https://docs.gitlab.com/auth/tokens/fine_grained_access_tokens/): <code>Permissions</code></summary>\n\n> Fine-grained personal access tokens (PATs) are now available in beta. Unlike legacy PATs, which grant access to every project and group you belong to, fine-grained PATs let you limit each token to specific resources and actions. This reduces the potential impact of a leaked or compromised token.\n> \n> Your existing PATs continue to work as before, and you can still create legacy PATs without fine-grained permissions.\n> \n> This beta release covers approximately 75% of the GitLab REST API. Full REST API coverage, GraphQL enforcement, and administrator policy controls are planned for the GA release.\n> \n> To share feedback, see [epic 18555](https://gitlab.com/groups/gitlab-org/-/epics/18555).\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Security Manager role (Beta)](https://docs.gitlab.com/user/permissions/): <code>Permissions</code></summary>\n\n> The Security Manager role is now available as a beta feature, providing a new default set of permissions designed specifically for security professionals. Security teams no longer need Developer or Maintainer roles to access security features, eliminating over-privileging concerns while maintaining separation of duties.\n> \n> Users with the Security Manager role have the following access:\n> \n> - **Vulnerability management**: View, triage, and manage vulnerabilities across groups and projects, including vulnerability reports and security dashboards.\n> - **Security inventory**: View a group's security inventory to understand scanner coverage across all projects.\n> - **Security configuration profiles**: View security configuration profiles for a group.\n> - **Compliance tools**: View audit events, compliance center, compliance frameworks, and dependency lists for a group or project.\n> - **Secret push protection**: Enable secret push protection for a group.\n> - **On-demand DAST**: Create and run on-demand DAST scans for a group.\n> \n> To get started, go to a group and select **Manage** > **Members**  to invite and assign members to the Security Manager role.\n\n</details>\n\n\n","released_at":"2026-04-16T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 18.10","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.10.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.10.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.10.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.10.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.10.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.10.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":11031990,"url":"https://about.gitlab.com/releases/2026/03/19/gitlab-18-10-released/","name":"GitLab 18.10 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2026/03/19/gitlab-18-10-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.10.0-ee/gitlab-v18.10.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.10.0-ee/gitlab-v18.10.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.10.0-ee/gitlab-v18.10.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.10.0-ee/gitlab-v18.10.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"57c08314af5bc8f317b1967330f92ed029e2c628","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/57c08314af5bc8f317b1967330f92ed029e2c628","short_id":"57c08314","trailers":[],"created_at":"2026-03-18T13:35:57.000+00:00","parent_ids":["5f8352a88aa2591dbe2ca9b3a45e6cca439d3ef5"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-03-18T13:35:57.000+00:00","committed_date":"2026-03-18T13:35:57.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.10.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.10.0-ee","evidences":[],"created_at":"2026-03-19T16:16:45.575Z","milestones":[{"id":5948921,"iid":128,"state":"active","title":"18.10","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/128","due_date":"2026-03-13","group_id":9970,"created_at":"2025-03-26T00:24:05.254Z","start_date":"2026-02-14","updated_at":"2025-06-30T16:29:07.831Z","description":"| Milestone | Quarter    | Start Date - Code Merging | End Date - Code Merging | Release Date  |\r\n|-----------|------------|---------------------------|-------------------------|---------------|\r\n| 18.10     | FY27-Q1-M2 | 2026-03-12                | 2026-03-13              | 2026-03-19    |\r\n","issue_stats":{"total":2266,"closed":2164}}],"commit_path":"/gitlab-org/gitlab/-/commit/57c08314af5bc8f317b1967330f92ed029e2c628","description":"![30 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=30&style=for-the-badge \"New features added in this release\")\n![4020 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=4020&style=for-the-badge \"Total features\")\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![7 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=7&style=flat-square \"New features added to this tier in this release\")\n![724 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=724&style=flat-square \"Total features in this tier\")\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Runner controllers for job admission control](https://docs.gitlab.com/ci/runners/job_router/runner_controllers/) <i>(self-managed only)</i>: <code>GitLab Runner Core</code></summary>\n\n> You can now enforce custom policies on CI/CD jobs before runner assignment with runner controllers.\n> The runner controller connects to the job router and makes admit or reject decisions based on custom rules.\n> \n> Use runner controllers for admission control, compliance enforcement, or cost and resource governance.\n> Controllers support instance runners and a dry-run mode for safe validation before enforcement.\n> \n> This feature is an [experiment](https://docs.gitlab.com/policy/development_stages_support/).\n> To get started, see [Tutorial: Build a runner admission controller](https://docs.gitlab.com/tutorials/build_runner_admission_controller/).\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Dependency Scanning with SBOM support for Java Gradle build files](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/#manifest-fallback): <code>Software Composition Analysis</code></summary>\n\n> GitLab dependency scanning by using SBOM now supports scanning Java `build.gradle` and `build.gradle.kts` build files.\n> \n> Previously, dependency scanning for Java projects using Gradle required a lock file to be present.\n> Now, when a lock file is not available, the analyzer automatically falls back to scanning `build.gradle` and `build.gradle.kts` files, extracting and reporting only direct dependencies for vulnerability analysis.\n> This improvement makes it easier for Java projects using Gradle to enable dependency scanning without requiring a lock file.\n> \n> To enable manifest fallback, set the `DS_ENABLE_MANIFEST_FALLBACK` CI/CD variable to `\"true\"`.\n\n</details>\n\n<details><summary>[Dependency scanning SBOM-based scanning extended to self-managed](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/): <code>Software Composition Analysis</code></summary>\n\n> In GitLab 18.10, we're extending limited availability status to self-managed instances for the new SBOM-based dependency scanning feature.\n> \n> This feature was initially released in GitLab 18.5 with limited availability for GitLab.com only, behind the feature flag `dependency_scanning_sbom_scan_api` and disabled by default.\n> \n> With additional improvements and fixes, we now have confidence to reliably use the new SBOM scanning internal API and enable this feature flag by default.\n> This internal API allows the dependency scanning analyzer to generate a dependency scanning report containing all component vulnerabilities.\n> Unlike the previous behavior (Beta) that processed SBOM reports after CI/CD pipeline completion, [this improved process](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/#how-it-scans-an-application) generates scan results immediately during the CI/CD job, giving users instant access to vulnerability data for custom workflows.\n> \n> Self-managed customers who encounter issues can disable the `dependency_scanning_sbom_scan_api` feature flag. The analyzer will then fall back to the previous behavior.\n> \n> To use this feature, import the v2 dependency scanning template `Jobs/Dependency-Scanning.v2.gitlab-ci.yml`.\n> \n> We welcome feedback on this feature. If you have questions, comments, or would like to engage with our team, please reach out in this [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/523458).\n\n</details>\n\n<details><summary>[License scanning support for Dart/Flutter projects using Pub package manager](https://docs.gitlab.com/user/compliance/license_scanning_of_cyclonedx_files/#data-sources): <code>Software Composition Analysis</code></summary>\n\n> GitLab now supports license scanning for Dart and Flutter projects that use the `pub` package manager.\n> Previously, teams building with Dart or Flutter were unable to identify the licenses of their open source dependencies directly within GitLab, creating compliance blind spots for organizations with license policy requirements.\n> \n> License data is sourced directly from [pub.dev](https://pub.dev), the official Dart package repository, and results are surfaced alongside other supported ecosystems.\n> Dart/Flutter dependency scanning and vulnerability detection were already supported.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[SAST false positive detection with GitLab Duo Agent Platform](https://docs.gitlab.com/user/application_security/vulnerabilities/false_positive_detection): <code>Vulnerability Management</code></summary>\n\n> SAST false positive detection, which was first introduced as a beta in GitLab 18.7, is now generally available in GitLab 18.10.\n> \n> When a security scan runs, GitLab Duo Agent Platform analyzes each critical and high severity SAST vulnerability and determines the likelihood that it's a false positive.\n> The assessment appears directly in the vulnerability report, giving teams the context they need to triage with confidence rather than uncertainty.\n> \n> Key capabilities include:\n> \n> - Automatic analysis: False positive detection runs automatically after each security scan with no manual intervention required.\n> - Manual option: Users can manually run false positive detection for individual vulnerabilities on the vulnerability details page for on-demand analysis.\n> - Focus on high-impact findings: Limiting the analysis to critical and high severity SAST vulnerabilities cuts through the noise where it matters most.\n> - Contextual AI reasoning: Each assessment explains why a finding may or may not be a false positive, factoring in code context, data flow, and vulnerability characteristics specific to static analysis.\n> - Seamless workflow integration: Results surface directly in the vulnerability report alongside existing severity, status, and remediation information — no changes to existing workflows required.\n> \n> This feature is available for Ultimate customers with GitLab Duo Agent Platform. The feature must be enabled in your group or project settings.\n> We welcome your feedback in [issue 583697](https://gitlab.com/gitlab-org/gitlab/-/issues/583697).\n\n</details>\n\n<details><summary>[Secret false positive detection with AI (beta)](https://docs.gitlab.com/user/application_security/vulnerabilities/secret_false_positive_detection/): <code>Vulnerability Management</code>, <code>Secret Detection</code></summary>\n\n> Security teams spend significant time investigating secret detection findings that turn out to be false positives. For example, test credentials, example values, and placeholder tokens that are incorrectly flagged as actual secrets.\n> False positives create alert fatigue, erode trust in scan results, and divert attention from genuine security risks.\n> \n> GitLab 18.10 introduces AI-powered secret false positive detection (beta) to focus on the secrets that actually matter.\n> When a security scan runs, GitLab Duo automatically analyzes each **Critical** and **High** severity secret detection vulnerability to determine if it's a false positive.\n> \n> The AI assessment appears directly in the vulnerability report, giving security engineers immediate context to make faster and confident triage decisions.\n> \n> Key capabilities include:\n> \n> - Automatic analysis: False positive detection runs automatically after each security scan without manual trigger.\n> - Manual trigger option: You can manually trigger false positive detection for individual vulnerabilities on the vulnerability details page for on-demand analysis.\n> - Focus on high-impact findings: Scoped for **Critical** and **High** severity vulnerabilities to maximize signal-to-noise improvement.\n> - Contextual AI reasoning: Each assessment includes an explanation of why the finding may or may not be a true positive, based on code context and vulnerability characteristics.\n> - Confidence scoring: Each detection includes a confidence score to help teams prioritize review based on the model's certainty.\n> - Seamless workflow integration: Results surface directly in the vulnerability report alongside existing severity, status, and remediation information.\n> \n> This feature is available as a free beta for Ultimate customers and must be enabled in your group or project settings.\n> Share feedback in [issue 592861](https://gitlab.com/gitlab-org/gitlab/-/work_items/592861).\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Pipeline secret detection in security configuration profiles](https://docs.gitlab.com/user/application_security/configuration/security_configuration_profiles/): <code>Vulnerability Management</code></summary>\n\n> In GitLab 18.9, we introduced security configuration profiles with the **Secret Detection - Default** profile, starting with push protection. You use the profile to apply standardized secret scanning across hundreds of projects without touching a single CI/CD configuration file.\n> \n> The **Secret Detection - Default** profile now also covers pipeline-based scanning, providing a unified control surface for secret detection across your entire development workflow.\n> \n> The profile activates three scan triggers:\n> \n> - **Push Protection**: Scans all Git push events and blocks pushes where secrets are detected, preventing secrets from ever entering your codebase.\n> - **Merge Request Pipelines**: Automatically runs a scan each time new commits are pushed to a branch with an open merge request. Results only include new vulnerabilities introduced by the merge request.\n> - **Branch Pipelines (default only)**: Runs automatically when changes are merged or pushed to the default branch, providing a complete view of your default branch's secret detection posture.\n> \n> Applying the profile requires no YAML configuration. The profile can be applied to a group to propagate coverage across all projects in the group, or to individual projects for more granular control.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![13 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=13&style=flat-square \"New features added to this tier in this release\")\n![816 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=816&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Custom agents can use MCP to access external data](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/ai_catalog_mcp_servers/): <code>AI Catalog</code></summary>\n\n> You can now connect custom agents in the AI Catalog to external data sources and tools through the Model Context Protocol (MCP), without leaving GitLab.\n> \n> This feature is an experiment. Share your feedback in [issue 593219](https://gitlab.com/gitlab-org/gitlab/-/work_items/593219).\n\n</details>\n\n<details><summary>[GitLab MCP server tool for pipeline management](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server_tools/#manage_pipeline): <code>MCP Server</code></summary>\n\n> You can now manage your CI/CD pipelines in a GitLab project with the new `manage_pipeline` tool.\n> This GitLab MCP server tool lets AI agents create, cancel, retry, delete, and update pipeline metadata in a single call.\n> With this tool, you no longer have to piece together multiple steps to automate your pipeline workflows.\n> \n> If you want to see other GitLab MCP sever tools, let us know in the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/work_items/566375).\n\n</details>\n\n<details><summary>[Project Maintainers can enable custom agents and flows](https://docs.gitlab.com/user/duo_agent_platform/flows/custom/#enable-a-flow): <code>AI Catalog</code></summary>\n\n> Previously, enabling AI agents and flows from the AI Catalog required top-level group permissions.\n> \n> Now, when browsing the AI Catalog at the explore level or project level, project Maintainers can enable agents and flows directly in their projects.\n\n</details>\n\n<details><summary>[Configure network access control for remote flows in projects](https://docs.gitlab.com/user/duo_agent_platform/environment_sandbox/#configure-a-network-policy): <code>Duo Agent Platform</code></summary>\n\n> You can now configure [network access controls](https://docs.gitlab.com/user/duo_agent_platform/environment_sandbox/) for flows using GitLab runners in projects.\n> \n> This provides secure external integrations, while maintaining control over network destinations. This also gives project maintainers the flexibility to allow necessary API connections, MCP servers, and third-party services while enforcing security boundaries.\n> \n> Configure network access controls in the `network_policy` section of `agent-config.yml`. The `agent-config.yml` is protected by branch protection rules and MR approval workflows.\n\n</details>\n\n<details><summary>[Self-hosted Vertex AI for GitLab Duo Agent Platform](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_llm_serving_platforms/#configure-authentication-with-google-vertex-ai) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> Vertex AI is now a supported LLM platform within GitLab Duo Agent Platform Self-Hosted.\n> \n> Customers can now configure Anthropic models hosted on Vertex AI for use with GitLab Duo Agent Platform features.\n\n</details>\n\n<details><summary>[Users can enable agents and flows directly from projects](https://docs.gitlab.com/user/duo_agent_platform/agents/custom/#enable-an-agent): <code>AI Catalog</code></summary>\n\n> Maintainers and Owners can now enable agents and flows directly from their project or the explore page, without navigating away from their current context. \n> \n> Top-level group Owners can also select their group, and the specific projects where they want to activate agents and flows, streamlining their workflow setup.\n\n</details>\n\n<details><summary>[Support for Agent Skills in IDEs and CI/CD pipelines](https://docs.gitlab.com/user/duo_agent_platform/customize/agent_skills/): <code>Duo Agent Platform</code></summary>\n\n> GitLab Duo Agent Platform now supports the [Agent Skills specification](https://agentskills.io/specification),\n> an emerging standard for giving AI agents new capabilities and expertise.\n> \n> You can define Agent Skills at the workspace level for your project\n> to give agents specialized knowledge and workflows for specific tasks, like writing\n> tests in a specific framework. Agents automatically discover and load relevant skills\n> as they encounter matching tasks.\n> \n> You can also trigger skills manually by name, file path, or custom slash commands.\n> Agent Skills are accessible for flows and Agentic Chat in your IDE, and for\n> flows run in CI/CD pipelines. They also work with any other AI tool that supports\n> the specification.\n\n</details>\n\n<details><summary>[Download credit usage data as CSV](https://docs.gitlab.com/subscriptions/gitlab_credits/#export-usage-data): <code>Consumables Cost Management</code></summary>\n\n> Billing managers can now download credit usage data as a CSV file directly from the GitLab Credits dashboard in Customers Portal.\n> \n> The export provides a daily, per-action breakdown of credit consumption for the current billing month, including commitment, waiver, trial, on-demand, and included credits used.\n> \n> Finance and operations teams can use this data to perform cost allocation, chargeback reporting, and usage analysis in Excel, Google Sheets, or BI tools without manual data gathering or support requests.\n\n</details>\n\n<details><summary>[Link credit usage to GitLab Duo Agent Platform sessions](https://docs.gitlab.com/subscriptions/gitlab_credits/#gitlab-credits-dashboard): <code>Consumables Cost Management</code></summary>\n\n> The GitLab Credits dashboard now links credit consumption directly to the GitLab Duo Agent Platform session that generated it.\n> \n> In the per-user drill-down view, the **Action** column for Agent Platform usage rows (such as **Agentic Chat** or **Foundational Agents**) is now a clickable hyperlink that navigates to the corresponding session details.\n> \n> This link provides a direct audit trail from billing to AI session behavior, so administrators can investigate credit usage, support escalations, and compliance reviews without manually correlating timestamps across separate systems.\n\n</details>\n\n<details><summary>[Sort users in the GitLab Credits dashboard](https://docs.gitlab.com/subscriptions/gitlab_credits/#view-the-gitlab-credits-dashboard): <code>Consumables Cost Management</code></summary>\n\n> Enterprise administrators can now sort the **Usage by User** table in the GitLab Credits dashboard by total credits used or by username.\n> \n> The default sort order is by total credits consumed (highest first), so the top consumers are immediately visible without scrolling.\n> \n> With this view, administrators managing thousands of GitLab Duo users can quickly identify high-usage individuals for cost allocation, chargeback reporting, and license utilization audits.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Enforce merge request title naming conventions with regex](https://docs.gitlab.com/user/project/merge_requests/title_validation/): <code>Code Review Workflow</code></summary>\n\n> Maintaining consistent merge request titles is important for teams that rely on structured\n> naming conventions. Whether that's following the Conventional Commits format,\n> or linking to an internal tracking system. Teams previously needed external tooling or\n> custom CI/CD pipeline jobs to enforce these conventions, but this approach had a\n> critical gap. If someone changed the merge request title after the pipeline ran, there was no\n> re-validation, and the MR could still be merged with a non-compliant title.\n> \n> You can now configure a required title regex for merge requests in your project settings.\n> When configured, GitLab evaluates the merge request title against the pattern as a\n> mergeability check — blocking the merge until the title is updated to comply, regardless\n> of when the title was last changed.\n> \n> To set this up, go to your project's **Settings > Merge requests** and enter a regex\n> pattern in the **Merge request title must match regex** field.\n> \n> Your existing merge request workflows continue to work as before. This check only\n> applies to projects where you explicitly configure a title regex.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[macOS Tahoe 26 and Xcode 26 job image](https://docs.gitlab.com/ci/runners/hosted_runners/macos/): <code>GitLab Hosted Runners</code></summary>\n\n> You can now create, test, and deploy applications for the newest\n> generations of Apple devices using macOS Tahoe 26 and Xcode 26.\n> \n> With [hosted runners on macOS](https://docs.gitlab.com/ci/runners/hosted_runners/macos/),\n> your development teams can build and deploy macOS applications faster in a secure,\n> on-demand build environment integrated with GitLab CI/CD.\n> \n> Try it out today by using the `macos-26-xcode-26` image in your `.gitlab-ci.yml` file.\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Manage container virtual registries with a dedicated UI (Beta)](https://docs.gitlab.com/user/packages/virtual_registry/container/): <code>Virtual Registry</code></summary>\n\n> When the container virtual registry launched in beta last milestone, platform engineers could aggregate multiple upstream container registries — Docker Hub, Harbor, Quay, and others — behind a single pull endpoint. However, all configuration required direct API calls, meaning teams had to maintain scripts or manual curl commands to create and manage their registries, configure upstreams, and handle changes over time. This added operational overhead and made the feature inaccessible to users who weren't comfortable working directly with the API.\n> \n> Container virtual registries can now be created and managed directly from the GitLab UI. From the group-level container registry page, you can create new virtual registries, configure upstream sources with authentication credentials, edit existing configurations, and delete registries you no longer need — all without leaving GitLab or writing a single API call. The UI integrates seamlessly with the existing container registry experience, making virtual registries a first-class part of your group's artifact management workflow.\n> \n> This feature is in beta. To share feedback, please comment in the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/work_items/589630).\n\n</details>\n\n\n\n#### Core\n\n![10 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=10&style=flat-square \"New features added to this tier in this release\")\n![2480 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2480&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Purchase GitLab Credits on the Free tier on GitLab.com](https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom): <code>Subscription Management</code></summary>\n\n> Free tier group Owners on GitLab.com can now unlock AI with GitLab Credits. Purchase a monthly credit amount, commit to an annual term, and get access to [GitLab Duo Agent Platform agents and flows](https://docs.gitlab.com/subscriptions/gitlab_credits/#for-the-free-tier-on-gitlabcom). Credits refresh automatically each month, so your team always has what it needs to build faster and smarter.\n> \n>  Key highlights:\n> \n>  - **Usage-based pricing**: Purchase a monthly credit commitment without needing a base plan subscription.\n>  - **Self-service purchasing**: Buy credits through the GitLab purchase flow.\n>  - **Seamless upgrade path**: Your credit commitment transfers if you later upgrade to Premium or Ultimate.\n>  - **Consumption tracking**: Monitor your credit usage through the GitLab Credits dashboard.\n> \n>  This [purchase option](https://docs.gitlab.com/subscriptions/gitlab_credits/?tab=GitLab.com#buy-gitlab-credits) is currently only available for free GitLab.com top-level groups.\n\n</details>\n\n<details><summary>[GitLab Blob Search for group and instance code search](https://docs.gitlab.com/user/duo_agent_platform/agents/tools/#:~:text=REST%20API%20endpoint.-,GitLab%20Blob%20Search,-gitlab_blob_search): <code>Duo Agent Platform</code></summary>\n\n> The [`gitlab_blob_search`](https://docs.gitlab.com/user/duo_agent_platform/agents/tools/#:~:text=REST%20API%20endpoint.-,GitLab%20Blob%20Search,-gitlab_blob_search) tool now enables GitLab AI agents to search your code:\n> \n> - Across all projects in a group.\n> - Across all accessible projects on an instance.\n> \n> Previously, blob search was limited to a single project, or required specifying explicit project IDs. This change makes it easier for AI-powered workflows to discover and reuse code that's spread across multiple related projects.\n\n</details>\n\n<details><summary>[New navigation experience for projects in Explore](https://docs.gitlab.com/user/project/working_with_projects/#explore-all-projects-on-an-instance): <code>Groups & Projects</code></summary>\n\n> We've streamlined the projects page in **Explore** to reduce clutter and remove redundant options that accumulated over time.\n> The simplified interface now focuses on two core views:\n> \n> - **Active** tab: Discover projects with recent activity and ongoing development.\n> - **Inactive** tab: Access archived projects and those scheduled for deletion.\n> \n> We've removed several redundant tabs:\n> \n> - **Most starred** projects can be found by sorting **Active** or **Inactive** tabs by star count.\n> - **All** projects are available by viewing both **Active** and **Inactive** tabs.\n> - **Trending** tab will be fully removed in GitLab 19.0 due to limited functionality and low usage.\n> \n> The cleaner design aligns with other project lists for visual consistency. You can still access all the same content through more logical organization and flexible sorting options.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Introducing the work items list and saved views](https://docs.gitlab.com/user/work_items/): <code>Portfolio Management</code></summary>\n\n> The GitLab planning experience is getting a significant upgrade with the work items list and saved views,\n> bringing together two long-requested capabilities:\n> \n> - The work items list combines epics, issues, and other work items into a single unified list,\n>   eliminating the need to switch between separate pages for different work item types.\n>   This makes it easier to understand relationships across your planning objects.\n> \n> - Saved views allow you to create and save customized list configurations, including filters,\n>   sort order, and display options. This makes routine checks more efficient, and supports standardized\n>   ways of viewing work across your team.\n> \n> This is the next step in the GitLab work items journey, a unified architecture designed to deliver\n> consistency and unlock new capabilities across GitLab planning tools.\n> \n> Share your thoughts and feedback in [issue 590689](https://gitlab.com/gitlab-org/gitlab/-/work_items/590689).\n\n</details>\n\n<details><summary>[Task item support in Markdown tables](https://docs.gitlab.com/user/markdown/#task-lists-in-tables): <code>Markdown</code></summary>\n\n> You can now use task item checkbox syntax directly in Markdown table cells.\n> \n> Previously, achieving this required a combination of raw HTML and Markdown, which was\n> cumbersome and difficult to maintain.\n> \n> This improvement makes it easier to track task completion directly within structured table\n> layouts in issues, epics, and other content.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Use runtime inputs with CI/CD jobs](https://docs.gitlab.com/ci/jobs/job_inputs/): <code>Pipeline Composition</code></summary>\n\n> Using CI/CD variables for dynamic job configuration can be challenging. Variables follow a complex override hierarchy that's difficult to manage, and they can't be used for a variety of use cases.\n> \n> Now you can use `inputs` to define explicit, typed inputs at the job level. Use job inputs to define and control the values that a job accepts at runtime. With job inputs, you get:\n> \n> - Type safety (string, number, boolean, array).\n> - Default values that can be static or reference existing variables.\n> - The option to define a strict list of possible values to use.\n> - Regex support for validating input values.\n> \n> Job inputs can use the default values without any user interaction, but you can modify the values when retrying a job or running a manual job.\n\n</details>\n\n<details><summary>[GitLab Runner 18.10](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're also releasing GitLab Runner 18.10 today!\n> GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance.\n> GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's New:\n> \n> - [Allow k8s runner to define Pod Level Resources for build pod](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39085)\n> - [Add automation to update Go versions and packages for all Runner projects](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39192)\n> \n> #### Bug Fixes:\n> \n> - [S3 cache with RoleARN returns 403 instead of 404 for non-existent cache](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39105)\n> - [Using helper image `gitlab-runner-helper:x86_64-v16.11.1-nanoserver21H2` results in `init-permissions` error](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/37872)\n> - [MacOS: LaunchAgent - Service could not initialize on M1 architecture](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/28136)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-10-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Conan 2.0 package registry support (Beta)](https://docs.gitlab.com/user/packages/conan_2_repository/): <code>Package Registry</code></summary>\n\n> C and C++ development teams using Conan as their package manager have long requested registry support in GitLab. Previously, the Conan package registry was experimental and only supported Conan 1.x clients, limiting adoption for teams that have migrated to the modern Conan 2.0 toolchain.\n> \n> The Conan package registry now supports Conan 2.0 and has been promoted from Experimental to Beta. This release includes full v2 API compatibility, recipe revision support, improved search capabilities, and proper handling of upload policies including the `--force` flag. Teams can publish and install Conan 2.0 packages directly from GitLab using standard Conan client workflows, reducing the need for external artifact management solutions like JFrog Artifactory.\n> \n> With this update, platform engineering teams managing C and C++ dependencies can consolidate their package management within GitLab alongside their source code, CI/CD pipelines, and security scanning. The Conan registry supports both project-level and instance-level endpoints, and works with personal access tokens, deploy tokens, and CI/CD job tokens for authentication.\n> \n> We welcome feedback as we work toward general availability. Please share your experience in the [epic](https://gitlab.com/groups/gitlab-org/-/work_items/6816).\n\n</details>\n\n<details><summary>[GitLab Helm Chart registry generally available](https://docs.gitlab.com/user/packages/helm_repository/): <code>Package Registry</code></summary>\n\n> Teams using Helm to manage Kubernetes application deployments can now rely on the GitLab Helm Chart registry for production workloads. Previously in beta, the registry is now generally available following the resolution of key architectural and reliability concerns.\n> \n> The path to GA included resolving a hard limit that prevented the `index.yaml` endpoint from returning more than 1,000 charts, fixing a background indexing bug that caused newly published chart versions to be missing from the index, completing a full AppSec security review, and adding Geo replication support for Helm metadata cache, ensuring high availability for self-managed customers running GitLab Geo.\n> \n> Platform and DevOps teams can publish and install Helm charts directly from GitLab using standard Helm client workflows, with support for project-level endpoints and authentication using personal access tokens, deploy tokens, and CI/CD job tokens. Now you can keep charts alongside the source code, pipelines, and security scanning that depend on them.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Sign in securely with passkeys](https://docs.gitlab.com/auth/passkeys/): <code>System Access</code></summary>\n\n> GitLab now supports passkeys for passwordless sign-in and as a phishing-resistant two-factor authentication (2FA) method. Passkeys use public-key cryptography and biometric authentication (fingerprint, face recognition) or your device PIN to securely access your account.\n> \n> Passkeys offer the following benefits:\n> \n>   - **Passwordless convenience**: Sign in with your device's biometrics or PIN instead of remembering a password.\n>   - **Multi-device support**: Use passkeys on desktop browsers, mobile devices (iOS 16 or later, Android 9 or later), and FIDO2/WebAuthn-compatible hardware security keys.\n>   - **Phishing-resistant security**: Your private key never leaves your device. GitLab only stores the public key, protecting your account even if GitLab servers are compromised.\n>   - **Automatic 2FA integration**: For accounts with 2FA enabled, passkeys become available as your default 2FA method.\n> \n> To get started, add a passkey in your account settings. We welcome your questions and feedback in issue [366758](https://gitlab.com/gitlab-org/gitlab/-/work_items/366758).\n\n</details>\n\n\n","released_at":"2026-03-19T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 18.9","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.9.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.9.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.9.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.9.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.9.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.9.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":10748389,"url":"https://about.gitlab.com/releases/2026/02/19/gitlab-18-9-released/","name":"GitLab 18.9 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2026/02/19/gitlab-18-9-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.9.0-ee/gitlab-v18.9.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.9.0-ee/gitlab-v18.9.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.9.0-ee/gitlab-v18.9.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.9.0-ee/gitlab-v18.9.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"20fe49b575fedd2b8cadc2c0640178879854aeb3","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/20fe49b575fedd2b8cadc2c0640178879854aeb3","short_id":"20fe49b5","trailers":[],"created_at":"2026-02-18T17:07:38.000+00:00","parent_ids":["7649f21ebfafdd8afd68ffcb725d068d7e227161"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-02-18T17:07:38.000+00:00","committed_date":"2026-02-18T17:07:38.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.9.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.9.0-ee","evidences":[],"created_at":"2026-02-19T15:20:40.418Z","milestones":[{"id":5948920,"iid":127,"state":"active","title":"18.9","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/127","due_date":"2026-02-13","group_id":9970,"created_at":"2025-03-26T00:23:12.663Z","start_date":"2026-01-10","updated_at":"2025-06-30T16:28:47.010Z","description":"| Milestone | Quarter    | Start Date - Code Merging | End Date - Code Merging | Release Date  |\r\n|-----------|------------|---------------------------|-------------------------|---------------|\r\n| 18.9      | FY27-Q1-M1 | 2026-02-12                | 2026-02-13              | 2026-02-19    |\r\n","issue_stats":{"total":2572,"closed":2481}}],"commit_path":"/gitlab-org/gitlab/-/commit/20fe49b575fedd2b8cadc2c0640178879854aeb3","description":"![26 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=26&style=for-the-badge \"New features added in this release\")\n![3990 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3990&style=for-the-badge \"Total features\")\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![8 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=8&style=flat-square \"New features added to this tier in this release\")\n![717 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=717&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Duo Agent Platform available in Ultimate trials](https://docs.gitlab.com/subscriptions/free_trials/#gitlab-duo-agent-platform-trials): <code>Acquisition</code>, <code>Duo Agent Platform</code></summary>\n\n> Teams evaluating GitLab can now test agentic AI capabilities that automate complex development workflows and reduce manual tasks. Sign up for a GitLab Ultimate trial and get access to Duo Agent Platform with 24 evaluation credits per user, enabling hands-on experience with autonomous task execution and multi-step workflow orchestration during a 30-day evaluation. Evaluation credits are available for 30 days from the provision date, so consider your team's readiness before starting.\n> \n> [Start your free trial](https://gitlab.com/-/trial_registrations/new). Current paid customers can access evaluation credits through their account team. [Contact Sales](https://about.gitlab.com/sales/) to learn more.\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Dependency Scanning with SBOM support for Java pom.xml manifest files](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/#manifest-fallback): <code>Software Composition Analysis</code></summary>\n\n> GitLab [dependency scanning by using SBOM](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/) now supports scanning Java `pom.xml` manifest files. \n> Previously, dependency scanning for Java projects using Maven required a graph file to be present. \n> Now, when a graph file is not available, the analyzer automatically falls back to scanning `pom.xml` files, extracting and reporting only direct dependencies for vulnerability analysis. \n> This improvement makes it easier for Java projects to enable dependency scanning without requiring a graph file.\n> \n> To enable manifest fallback, set the `DS_ENABLE_MANIFEST_FALLBACK` CI/CD variable to `\"true\"`.\n\n</details>\n\n<details><summary>[Dependency Scanning with SBOM support for Python requirements.txt manifest files](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/#manifest-fallback): <code>Software Composition Analysis</code></summary>\n\n> GitLab [dependency scanning by using SBOM](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/) now supports scanning Python `requirements.txt` manifest files. \n> Previously, dependency scanning for Python projects required a lock file to be present. \n> Now, when a lock file is not available, the analyzer automatically falls back to scanning `requirements.txt` files, extracting and reporting only direct dependencies for vulnerability analysis. \n> This improvement makes it easier for Python projects to enable dependency scanning without requiring a lock file. \n> \n> To enable manifest fallback, set the `DS_ENABLE_MANIFEST_FALLBACK` CI/CD variable to `\"true\"`.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Vulnerability resolution with GitLab Duo Agent Platform (Beta)](https://docs.gitlab.com/user/duo_agent_platform/flows/foundational_flows/agentic_sast_vulnerability_resolution/): <code>Vulnerability Management</code></summary>\n\n> \n> Triaging and remediating SAST vulnerabilities is one of the most time-consuming tasks in application security. After identifying a real vulnerability, developers need to understand the finding, locate the affected code, and write an appropriate fix. All of which take time and specialized knowledge.\n> In GitLab 18.9, we're introducing Agentic SAST Vulnerability Resolution. When you trigger resolution for a SAST vulnerability, GitLab Duo autonomously analyzes the finding, reasons through the surrounding code context, generates a context-aware fix, and creates a merge request without any manual intervention.\n> \n> Key capabilities include:\n> \n> - Agentic multi-step resolution: Rather than producing a single code suggestion, the GitLab Duo Agent Platform reasons through the vulnerability, evaluates the codebase, and produces a well-informed fix.\n> - Automatic merge request creation: Generates a ready-to-review merge request with the proposed code fix for critical and high severity SAST vulnerabilities.\n> - Quality scoring: Each generated fix includes a quality assessment so reviewers can quickly gauge confidence in the proposed remediation.\n> \n> SAST vulnerability resolution is available from the vulnerability report and the individual vulnerability details pages. You can trigger a resolution directly from the individual vulnerability details page.\n> \n> This feature is available as a free beta for Ultimate customers. We welcome your feedback in [issue 585626](https://gitlab.com/gitlab-org/gitlab/-/work_items/585626).\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[New security dashboard chart: Vulnerabilities by age](https://docs.gitlab.com/user/application_security/security_dashboard/#vulnerabilities-by-age): <code>Vulnerability Management</code></summary>\n\n> The new **Vulnerabilities by age** chart helps you understand how long vulnerabilities have been open in your environment. \n> \n> The chart shows the distribution of unresolved vulnerabilities based on the amount of time since they were first detected. You can group vulnerabilities by severity or by report type, helping you identify where remediation activities may be needed. \n\n</details>\n\n<details><summary>[Centralized security governance and configuration](https://docs.gitlab.com/ee/user/application_security/configuration/security_configuration_profiles.html): <code>Vulnerability Management</code></summary>\n\n> Manage and visualize security scanner coverage across your organization. This release introduces security configuration profiles, starting with the secret detection profile.\n> Security teams now have a more powerful command center to secure your organization at scale.\n> \n> **Profile-based security configuration**\n> \n> Instead of manually editing YAML files for each project, you can now use preconfigured security configuration profiles that provide several advantages:\n> \n> - Standardized governance: Preconfigured profiles apply appropriate boundaries without interrupting productivity. You can apply standardized security best practices, without requiring custom role configurations.\n> - Scalable management: Apply the same profile across hundreds or thousands of projects with a single action.\n> \n> The secret detection profile is the first security configuration profile available. It provides the following advantages:\n> \n> - Actively identifies and blocks secrets from being committed to your repositories.\n> - One profile manages secret detection across your entire development workflow. No need to manage separate configurations for different trigger types.\n> \n> **Enhanced security inventory**\n> \n> The security inventory has been upgraded to act as your primary dashboard to assess each group's security posture:\n> \n> - Group and project hierarchies: Easily distinguish between subgroups and projects in the inventory with clear iconography.\n> - Bulk actions: A new **Bulk Action** menu allows you to apply or disable security scanner profiles across all selected projects and subgroups simultaneously.\n> - Visual coverage status: Quickly identify gaps with color-coded status bars (Enabled, Not Enabled, or Failed) with tooltips for details.\n> - Profile status indicators: See which trigger types are available in the profile details.\n\n</details>\n\n<details><summary>[Security attributes](https://docs.gitlab.com/user/application_security/attributes/): <code>Security Asset Inventories</code></summary>\n\n> Security attributes, [introduced as a beta in GitLab 18.6](/releases/2025/11/20/gitlab-18-6-released/#security-attributes-beta), are now generally available.\n> \n> Security attributes allow security teams to apply business context to their projects, including business impact, application, business unit, internet exposure, and location. You can also create custom attribute categories to match your organization's taxonomy. By applying these attributes, you can filter and prioritize the items in your security inventory based on risk posture and organizational context.\n\n</details>\n\n<details><summary>[Security dashboards: Vulnerabilities over time chart improvements](https://docs.gitlab.com/user/application_security/security_dashboard/#vulnerabilities-over-time): <code>Vulnerability Management</code></summary>\n\n> The **Vulnerabilities over time** chart is updated to provide a more accurate view of your vulnerability inventory.\n> \n> The chart previously included vulnerabilities that were no longer detected, leading to inflated numbers that did not accurately represent the state of active vulnerabilities.\n> \n> We are aware of two additional issues that may slightly alter counts in some cases. Follow [issue 590022](https://gitlab.com/gitlab-org/gitlab/-/issues/590022) and [issue 590018](https://gitlab.com/gitlab-org/gitlab/-/issues/590018) for updates.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![7 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=7&style=flat-square \"New features added to this tier in this release\")\n![803 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=803&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Duo Agent Platform Self-Hosted models now available for cloud licenses](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#gitLab-duo-agent-platform) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> GitLab Duo Agent Platform is now generally available for GitLab Self-Managed customers with a cloud license. Billing for this feature is [usage-based](https://docs.gitlab.com/subscriptions/gitlab_credits/). \n> \n> Administrators can configure [compatible models](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#compatible-models) for use with GitLab Duo Agent Platform. Administrators using AWS Bedrock or Azure OpenAI can also configure Anthropic Claude or OpenAI GPT models.\n> \n> Not yet on Ultimate? [Start a free trial with Duo Agent Platform included](#gitlab-duo-agent-platform-available-in-ultimate-trials).\n\n</details>\n\n<details><summary>[Non-billable Minimal Access users](https://docs.gitlab.com/user/permissions/#users-with-minimal-access) <i>(self-managed only)</i>: <code>Seat Cost Management</code></summary>\n\n> Previously, organizations that used identity providers to automate user provisioning on GitLab Self-Managed Premium might run into a potential problem. When identity provider syncs attempt to add users beyond the licensed seat limit, administrators must either purchase extra seats for users who don't need active access, or manually intervene to prevent failures.\n>  Now, users with the Minimal Access role on GitLab Self-Managed Premium subscriptions no longer count as billable seats, bringing them in line with how minimal access works on GitLab.com Premium, GitLab.com Ultimate, and GitLab Self-Managed Ultimate.\n>  This change unlocks the [restricted access](https://docs.gitlab.com/administration/settings/sign_up_restrictions/#restricted-access) feature, which automatically assigns the Minimal Access role to users who would otherwise exceed the seat limit during identity provider syncs. This change keeps syncs running smoothly without unexpected billing overages or manual intervention.\n\n</details>\n\n<details><summary>[Geo data management view on primary site](https://docs.gitlab.com/administration/admin_area/#data-management) <i>(self-managed only)</i>: <code>Disaster Recovery</code>, <code>Geo Replication</code></summary>\n\n> You can now troubleshoot and verify data integrity directly from the primary site, thanks to the new data management view that brings detailed verification status information to the primary Geo site. This enhancement eliminates the need to access secondary sites for basic verification and troubleshooting tasks.\n> \n> Previously, this verification status was only accessible through the secondary site UI. Now, with the data management view on the primary site, you can:\n> \n> - View detailed verification status for all replicable data types on the primary site\n> - Perform data sanitization and troubleshooting tasks directly from the primary UI\n> - Set up and verify your Geo configuration on the primary site before adding secondary sites\n> \n> This enhancement is the first step toward comprehensive self-serve troubleshooting with the UI, reducing the need to access multiple sites for routine maintenance and issue resolution.\n\n</details>\n\n<details><summary>[OAuth support in JetBrains IDEs for Self-Managed and Dedicated](https://docs.gitlab.com/editor_extensions/jetbrains_ide/setup/#authenticate-with-gitlab) <i>(self-managed only)</i>: <code>Editor Extensions</code></summary>\n\n> The GitLab Duo plugin for JetBrains IDEs now supports OAuth authentication for GitLab Self-Managed and GitLab Dedicated. This means all JetBrains users can now enjoy a faster, more secure sign-in experience. No personal access token required.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Restrict personal snippets for enterprise users](https://docs.gitlab.com/user/group/manage/#restrict-personal-snippets-for-enterprise-users): <code>Source Code Management</code></summary>\n\n> Organizations using GitLab.com need to ensure that enterprise users don't accidentally expose \n> sensitive code through personal snippets.\n> Previously, there was no way to prevent users from creating snippets in their personal namespace,\n> which can pose a security risk if snippets are inadvertently set to public.\n> \n> Group Owners can now restrict personal snippet creation for enterprise users, helping maintain\n> tighter control over where code is shared.\n> When restricted, enterprise users cannot create snippets in their personal namespace.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[View CI/CD job metrics for projects (limited availability)](https://docs.gitlab.com/user/analytics/ci_cd_analytics/#cicd-job-performance-metrics): <code>Fleet Visibility</code></summary>\n\n> GitLab CI/CD analytics now combines CI/CD pipeline and CI/CD job performance trends, which enables developers to identify\n> inefficient or problematic CI/CD jobs quickly. These capabilities are included directly in the GitLab UI, so developers\n> have the tools they need in context to identify and fix CI/CD performance problems that can significantly impact\n> development teams' velocity and overall productivity. For platform administrators, the CI/CD jobs data in this view also\n> reduces the need to rely on external or custom-built CI/CD observability solutions when you operate GitLab at an enterprise\n> scale.\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Container virtual registry now available (Beta)](https://docs.gitlab.com/user/packages/virtual_registry/container/): <code>Virtual Registry</code></summary>\n\n> Modern container-based development requires accessing images from multiple registries including Docker Hub, Harbor, Quay, and private registries. Without a container virtual registry, platform engineers must configure each project and CI/CD pipeline to authenticate with and pull from multiple registries individually. This creates configuration complexity, slows pulls with sequential registry queries, and makes it difficult to implement consistent security policies across container sources.\n> \n> The container virtual registry addresses these challenges by aggregating multiple upstream container registries behind a single endpoint. Platform engineers can configure Docker Hub, Harbor, Quay, and other registries with long-lived token authentication through one URL. Intelligent caching improves pull performance while integrating with the GitLab authentication systems for centralized access control and audit logging.\n> \n> The container virtual registry API is currently available in beta for GitLab Premium and Ultimate customers. Beta participants can use the [GitLab API](https://docs.gitlab.com/api/container_virtual_registries/) to create container virtual registries, configure multiple upstream sources with shareable configurations, and pull container images through the virtual registry. Please note the beta does not support registries that require IAM authentication. Support for cloud provider registries requiring IAM authentication is tracked in [this epic](https://gitlab.com/groups/gitlab-org/-/work_items/20919).\n> \n> On GitLab.com, this feature is behind a feature flag. To request access or share feedback, please comment in the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/work_items/589630).\n\n</details>\n\n\n\n#### Core\n\n![11 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=11&style=flat-square \"New features added to this tier in this release\")\n![2470 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2470&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Zero Downtime Upgrades now supported for Cloud Native Hybrid deployments](https://docs.gitlab.com/charts/installation/upgrade/#upgrade-with-zero-downtime) <i>(self-managed only)</i>: <code>Cloud Native Installation</code></summary>\n\n> Zero Downtime Upgrades are now officially supported for Cloud Native Hybrid deployments.\n> \n> Enterprise customers require their DevSecOps platform to be available at all times, making upgrade-related downtime a significant operational concern.\n> Until now, Zero Downtime Upgrades were only supported for Linux package-based high availability deployments, which drove many customers toward VM-based architectures even when cloud-native Kubernetes deployments would have better suited their infrastructure strategy.\n> \n> We've been upgrading our own Cloud Native Hybrid SaaS instances with zero downtime for years.\n> With this release, we're bringing that same operational experience to self-managed customers running GitLab on Kubernetes.\n> \n> The upgrade procedure has been comprehensively tested and is now fully documented, giving you the confidence to maintain availability during version upgrades.\n</details>\n\n<details><summary>[Archive a group and its content](https://docs.gitlab.com/user/group/manage/#archive-a-group): <code>Groups & Projects</code></summary>\n\n> Managing completed initiatives and abandoned projects is now easier.\n> You can now archive entire groups, including all subgroups and projects, in one action, eliminating the need to manually archive each project individually.\n> \n> When you archive a group:\n> \n> - All nested subgroups and projects are automatically archived.\n> - Archived content moves to the **Inactive** tab with clear status badges.\n> - Group data remains fully accessible in read-only mode for reference or restoration.\n> - Write permissions are disabled across the archived group and its content.\n> \n> Beyond the **Settings** page, you can archive groups and projects directly from the actions menu in list views. No more navigating through multiple screens for simple administrative tasks.\n> This highly requested feature dramatically reduces administrative overhead while keeping your workspace organized with clear separation between active and inactive work.\n> Share your feedback in [epic 18616](https://gitlab.com/groups/gitlab-org/-/epics/18616).\n\n</details>\n\n<details><summary>[Valkey as replacement option for Redis (Beta)](https://docs.gitlab.com/administration/redis/#use-valkey-instead-of-redis) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> Starting with GitLab 18.9, Valkey is bundled as an opt-in replacement for Redis in the Linux package.\n> Redis changed their license to AGPLv3, which is not suitable for open source customers. To guarantee security and maintainability for our\n> GitLab Self-Managed customers, we are transitioning from Redis to Valkey, a community-driven fork that maintains the permissive BSD license.\n> \n> Transition timeline:\n> \n> - GitLab 18.9 (this release): Valkey is bundled as an opt-in replacement (beta). You can switch from Redis to Valkey at your convenience. Valkey Sentinel support\n>   is included.\n> - GitLab 19.0 (May 2026): Valkey becomes the default and Redis binaries are removed from the Linux package. Existing Redis configuration settings remain\n>   functional and are honored for backwards compatibility.\n> \n> This transition only affects the bundled Redis in Linux packages. Customers on scaled architectures using external Redis deployments can continue to use Redis.\n> We are monitoring the potential feature divergence between Redis and Valkey and will provide guidance as the ecosystem evolves.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Navigate repositories with collapsible file tree](https://docs.gitlab.com/user/project/repository/files/file_tree_browser/): <code>Source Code Management</code></summary>\n\n> You can now browse repository files with a collapsible file tree. The tree provides\n> a comprehensive view of your project structure, so you can expand and collapse directories\n> inline, jump between files in different parts of your repository, and maintain context\n> while you work.\n> \n> The file tree appears as a resizable sidebar when you view repository files or directories.\n> You can toggle visibility with keyboard shortcuts, filter files by name or extension,\n> and navigate through complex project hierarchies. The tree synchronizes with your current\n> location, so when you select a file in the main content area, the tree updates to show\n> that file.\n> \n> Your existing repository structure and file organization remain unchanged. With fewer page\n> loads required to move between files, this feature scales from small projects to large\n> codebases with thousands of files.\n\n</details>\n\n<details><summary>[Web-based commit signing on GitLab.com](https://docs.gitlab.com/user/project/repository/signed_commits/web_commits/): <code>Source Code Management</code></summary>\n\n> Ensuring commits are cryptographically signed is essential for code integrity and meeting\n> compliance requirements. Previously, web-based commit signing was only available for GitLab Self-Managed.\n> \n> GitLab.com now supports web-based commit signing. When enabled for a group or project, commits\n> created through the GitLab web interface are automatically signed with the GitLab signing key and are\n> displayed with a **Verified** badge, providing cryptographic proof of authenticity for your repositories.\n> \n> Key details:\n> \n> - Enable in group or project settings based on your requirements.\n> - All web-based commits (Web IDE edits, merges, API operations) are automatically signed when enabled.\n> \n> This brings the GitLab.com security capabilities in line with GitLab Self-Managed and provides\n> the foundation for comprehensive commit signing policies across your organization.\n\n</details>\n\n<details><summary>[Rapid Diffs improves performance for commit changes](https://docs.gitlab.com/user/project/repository/commits/): <code>Source Code Management</code></summary>\n\n> Reviewing commits with many changed files or substantial modifications can be slow.\n> Rapid Diffs technology now powers the commits page (`/-/commits/<SHA>`), delivering faster\n> loading times, smoother scrolling, and more responsive interactions.\n> \n> With Rapid Diffs, you'll notice:\n> \n> - A pagination-free experience.\n> - Faster initial load, so you can start working with code sooner.\n> - A refreshed interface with a new file browser for quicker navigation between files.\n> - Responsive interactions, even with large numbers of changed files.\n> \n> All existing functionality is preserved. As Rapid Diffs expands to other areas of GitLab, the same performance benefits will follow.\n\n</details>\n\n<details><summary>[Support for Bitbucket Cloud API tokens in import API](https://docs.gitlab.com/api/import/#import-repository-from-bitbucket-cloud): <code>Importers</code></summary>\n\n> The GitLab import API now supports Bitbucket Cloud API tokens, providing a more secure way to\n> import repositories from Bitbucket Cloud.\n> \n> [Atlassian has deprecated app passwords](https://www.atlassian.com/blog/bitbucket/bitbucket-cloud-transitions-to-api-tokens-enhancing-security-with-app-password-deprecation)\n> in favor of API tokens, and we're planning to remove support for app passwords in 19.0.\n> \n> Importing from Bitbucket Cloud through the GitLab UI is not affected by this change.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Include CI/CD inputs from a file](https://docs.gitlab.com/ci/inputs/#use-inputs-from-external-files): <code>Pipeline Composition</code></summary>\n\n> Previously, pipeline inputs could only be defined directly within a pipeline's spec section. This limitation made it challenging to reuse input configuration across multiple projects.\n> \n> In this release you can now include input definitions from external files using the familiar `include` keyword. Being able to maintain a list of inputs in a separate place helps you have a manageable solution across many projects or pipelines. You can maintain centralized input configurations and even dynamically manage input values from external sources. \n\n</details>\n\n<details><summary>[Add timestamps to CI job logs](https://docs.gitlab.com/ci/jobs/job_logs/#timestamps): <code>Continuous Integration (CI)</code></summary>\n\n> You can now view timestamps on each CI job log line to identify performance bottlenecks and debug long-running jobs. Timestamps are displayed in UTC format. Use timestamps to troubleshoot performance issues, identify bottlenecks, and measure the duration of specific build steps. Requires GitLab Runner 18.7 or later for GitLab Self-Managed.\n\n</details>\n\n<details><summary>[CI/CD Catalog component analytics](https://docs.gitlab.com/ci/components/#view-catalog-resource-analytics): <code>Pipeline Composition</code></summary>\n\n> Previously, teams lacked visibility into how CI/CD Catalog component projects were being used across their organization. Now you can view usage counts and adoption patterns at a high level, helping you understand which component projects are most valuable and optimize your catalog investments.\n\n</details>\n\n<details><summary>[View security reports from child pipelines in merge requests](https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#view-child-pipeline-reports-in-merge-requests): <code>Continuous Integration (CI)</code></summary>\n\n> You can now view security and compliance reports from child pipelines directly in merge request widgets. Previously, you had to manually navigate through multiple pipelines to identify security issues, creating inefficient workflows especially with monorepos and complex testing setups.\n> \n> With this enhancement, the merge request widget displays reports from child pipelines directly alongside parent pipeline results, with each child pipeline's reports presented individually and artifacts available for download. This provides a unified view of all security checks, significantly reducing time spent investigating failures and enables faster merge request reviews when using parent-child pipelines.\n\n</details>\n\n\n","released_at":"2026-02-19T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 18.8","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.8.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.8.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.8.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.8.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.8.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.8.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":9398654,"url":"https://about.gitlab.com/releases/2026/01/15/gitlab-18-8-released/","name":"GitLab 18.8 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2026/01/15/gitlab-18-8-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.8.0-ee/gitlab-v18.8.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.8.0-ee/gitlab-v18.8.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.8.0-ee/gitlab-v18.8.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.8.0-ee/gitlab-v18.8.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"1010a9b2b769993080ce8399fd25e77c54e1ad1c","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/1010a9b2b769993080ce8399fd25e77c54e1ad1c","short_id":"1010a9b2","trailers":[],"created_at":"2026-01-14T08:39:05.000+00:00","parent_ids":["5aef68c772a7f8c487f2d5133a3be2d07b15b153"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-01-14T08:39:05.000+00:00","committed_date":"2026-01-14T08:39:05.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.8.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.8.0-ee","evidences":[],"created_at":"2026-01-15T15:15:28.081Z","milestones":[{"id":5948919,"iid":126,"state":"active","title":"18.8","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/126","due_date":"2026-01-09","group_id":9970,"created_at":"2025-03-26T00:22:32.213Z","start_date":"2025-12-13","updated_at":"2025-06-30T16:28:28.869Z","description":"| Milestone | Quarter    | Start Date - Code Merging | End Date - Code Merging | Release Date  |\r\n|-----------|------------|---------------------------|-------------------------|---------------|\r\n| 18.8      | FY26-Q4-M3 | 2026-01-08                | 2026-01-09              | 2026-01-15    |\r\n","issue_stats":{"total":1262,"closed":1202}}],"commit_path":"/gitlab-org/gitlab/-/commit/1010a9b2b769993080ce8399fd25e77c54e1ad1c","description":"![12 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=12&style=for-the-badge \"New features added in this release\")\n![4088 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=4088&style=for-the-badge \"Total features\")\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Centralized credential management API for group owners](https://docs.gitlab.com/api/groups#credentials-inventory-management) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> The Credentials Inventory API is now available for Enterprise users on GitLab.com. This adds credential management capabilities previously only available on self-hosted instances, and enables organizations to better manage and secure their authentication tokens and keys.\n> \n> The Credentials Inventory API provides programmatic access to view credentials across your organization, including:\n> \n> - Personal Access Tokens (PATs)\n> - Group Access Tokens (GrATs)\n> - Project Access Tokens (PrATs)\n> - SSH Keys\n> - GPG Keys\n> \n> This API complements the existing Credentials Inventory UI, allowing enterprise administrators to automate credential management tasks that previously required manual intervention. With the Credentials Inventory API, you can:\n> \n> - Automate security workflows: Build automated processes to monitor, audit, and revoke credentials.\n> - Enforce credential policies: Identify and revoke unused or expired tokens.\n> - Improve security posture: Reduce the risk of credential misuse through regular auditing.\n> - Streamline operations: Integrate credential management into your existing security tools and workflows.\n\n</details>\n\n<details><summary>[Group Owners can disable SSH keys for enterprise users](https://docs.gitlab.com/user/ssh_advanced/#disable-ssh-keys-for-enterprise-users) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> Group Owners can now disable SSH keys for all enterprise users in their group. When disabled, users cannot add new SSH keys and their existing keys are deactivated. This applies to all enterprise users in the group, including those with the Owner role. \n> \n> Thank you to [Wesley Yarde](https://gitlab.com/WYarde) for helping build this feature!\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![4 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=4&style=flat-square \"New features added to this tier in this release\")\n![709 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=709&style=flat-square \"Total features in this tier\")\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[C/C++ support in Advanced SAST now generally available](https://docs.gitlab.com/user/application_security/sast/advanced_sast_cpp/): <code>SAST</code></summary>\n\n> Cross-file, cross-function scanning support for C/C++ is now generally available in GitLab Advanced SAST.\n\n</details>\n\n<details><summary>[Multiple Container Scanning](https://docs.gitlab.com/user/application_security/container_scanning/multi_container_scanning/): <code>Container Scanning</code></summary>\n\n> In GitLab 18.8, we released multi-container scanning in Beta.\n> \n> Users are now able to pass in an array of images to be scanned as part of many Container Scanning jobs.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[GitLab Duo Security Analyst Agent now generally available](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/security_analyst_agent/): <code>Vulnerability Management</code>, <code>Dependency Management</code></summary>\n\n> The GitLab Duo Security Analyst Agent, [introduced as beta in GitLab 18.5](https://about.gitlab.com/releases/2025/10/16/gitlab-18-5-released/#gitlab-security-analyst-agent-for-duo-agent-catalog-beta), is now generally available in GitLab 18.8.\n> \n> The Security Analyst Agent enables engineers to manage vulnerabilities through natural language commands in GitLab Duo Agentic Chat. Instead of manually clicking through vulnerability dashboards or writing custom scripts for bulk operations, security teams can now triage, assess, and provide guidance for vulnerabilities in Chat conversations.\n> \n> As a foundational agent, the Security Analyst Agent is available by default in GitLab Duo Agentic Chat, with no manual setup required.\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Auto-dismiss irrelevant vulnerabilities with vulnerability management policies](https://docs.gitlab.com/user/application_security/policies/vulnerability_management_policy/#auto-dismiss-policies): <code>Security Policy Management</code></summary>\n\n> Security teams can now automatically dismiss vulnerabilities that don't apply to their organization using vulnerability management policies. Dismissing vulnerabilities that are not relevant to your organization reduces noise and helps developers focus on vulnerabilities that pose actual risk.\n> \n> You can create policies to auto-dismiss vulnerabilities based on:\n> \n> - File path\n> - Directory\n> - Identifier (CVE, CWE, or OWASP)\n> \n> Auto-dismissed vulnerabilities appear in the merge request's security widget with an **Auto-dismissed** label and are tracked in the vulnerability report activity with a dismissal reason for audit purposes.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![5 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=5&style=flat-square \"New features added to this tier in this release\")\n![796 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=796&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Duo Agent Platform now generally available](https://docs.gitlab.com/user/duo_agent_platform/): <code>Duo Agent Platform</code></summary>\n\n> GitLab Duo Agent Platform is now generally available, bringing agentic AI orchestration\n> across your entire software development lifecycle. Unlike AI tools that speed up individual\n> tasks in isolation, the Agent Platform helps teams coordinate AI agents across\n> planning, building, securing, and shipping software, closing the gap between faster\n> individual work and the collaborative, multi-stage reality of software delivery.\n> \n> The platform provides a central AI Catalog where teams can discover, manage, and share\n> agents and flows across their organization. Built-in foundational agents like Planner, Security Analyst,\n> and Data Analyst handle structured work at key decision points, while customizable flows\n> automate multi-step agents and tasks in development workflows\n> from issue to merge request, CI/CD migration, pipeline\n> troubleshooting, and code reviews.\n> \n> With governance controls, usage visibility, and flexible deployment options including\n> self-hosted models for offline environments, organizations can adopt AI at scale with\n> the transparency and control they need.\n> \n> GitLab Premium and Ultimate users can start using the Agent Platform today on GitLab.com and\n> GitLab Self-Managed instances with promotional [GitLab Credits](https://docs.gitlab.com/subscriptions/gitlab_credits/).\n\n</details>\n\n<details><summary>[Turn the GitLab Duo Agent Platform on or off](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/#turn-gitlab-duo-agent-platform-on-or-off): <code>Duo Agent Platform</code></summary>\n\n> You can now turn on or off the [GitLab Duo Agent Platform](https://docs.gitlab.com/user/duo_agent_platform/), including GitLab Duo Chat (Agentic), agents, and flows for a top-level group or the entire instance. When this setting is turned off, these features are not available.\n\n</details>\n\n<details><summary>[Group access control for GitLab Duo features](https://docs.gitlab.com/administration/gitlab_duo/configure/access_control/): <code>Duo Agent Platform</code></summary>\n\n> You can now define group access rules to control who can use GitLab Duo features, enabling flexible adoption strategies from immediate organization-wide access to phased rollouts.\n> \n> This feature provides granular governance control so you can scale adoption at your pace while maintaining security and compliance.\n\n</details>\n\n<details><summary>[GitLab Duo Agent Platform for GitLab Duo Self-Hosted (offline licensing) now generally available](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/configure_duo_features/#configure-access-to-the-gitlab-duo-agent-platform) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> GitLab Duo Agent Platform is now generally available for Duo Self-Hosted. This feature is available to GitLab Self-Managed customers with an offline license, and uses seat-based pricing. \n> \n> Self-Managed administrators can configure [compatible models](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#compatible-models) for use with GitLab Duo Agent Platform. Administrators using AWS Bedrock or Azure OpenAI can also configure Anthropic Claude or OpenAI GPT models.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[GitLab Duo Planner Agent now generally available](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/): <code>Portfolio Management</code></summary>\n\n> The Planner Agent is now generally available! The Planner Agent is a foundational agent built to support product managers directly in GitLab.\n> \n> Use the Planner Agent to create, edit, and analyze GitLab work items. Instead of manually chasing updates, prioritizing work, or summarizing planning data, the Planner Agent helps you analyze backlogs, apply frameworks like RICE or MoSCoW, and surface what truly needs your attention. It's like having a proactive teammate who understands your planning workflow and works with you to make better, more efficient decisions.\n> \n> Please provide your feedback in [issue 583008](https://gitlab.com/gitlab-org/gitlab/-/work_items/583008).\n\n</details>\n\n\n\n#### Core\n\n![1 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=1&style=flat-square \"New features added to this tier in this release\")\n![2459 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2459&style=flat-square \"Total features in this tier\")\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[GitLab Runner 18.8](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're also releasing GitLab Runner 18.8 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's New:\n> \n> - [Improved error messages for job inputs interpolation errors](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39163)\n> \n> #### Bug Fixes:\n> \n> - [`WaitForServicesTimeout` no longer supports `-1` to disable timeout](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39172)\n> - [Custom URL breaks submodule authentication with `insteadOf` rules](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39170)\n> - [Custom runner short-token on Windows 2025 uses 9 characters instead 8](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39122)\n> - [PowerShell default helper image missing for Docker executor in GitLab Runner 17.8.3](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/38669)\n> - [GitLab Runner with Docker Autoscaler does not reuse available cache volumes](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/37906)\n> - [VirtualBox leaves dangling VM when job is cancelled](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/37344)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-8-stable/CHANGELOG.md).\n\n</details>\n\n\n","released_at":"2026-01-15T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 18.7","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.7.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.7.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.7.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.7.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.7.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.7.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":9175020,"url":"https://about.gitlab.com/releases/2025/12/18/gitlab-18-7-released/","name":"GitLab 18.7 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/12/18/gitlab-18-7-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.7.0-ee/gitlab-v18.7.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.7.0-ee/gitlab-v18.7.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.7.0-ee/gitlab-v18.7.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.7.0-ee/gitlab-v18.7.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"ceaa3c8b3a5ddb810b246bff3029e68cc57caf94","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/ceaa3c8b3a5ddb810b246bff3029e68cc57caf94","short_id":"ceaa3c8b","trailers":[],"created_at":"2025-12-17T03:13:45.000+00:00","parent_ids":["b6533247744056c8535d1e845ddbbfd07c91b235"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-12-17T03:13:45.000+00:00","committed_date":"2025-12-17T03:13:45.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.7.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.7.0-ee","evidences":[],"created_at":"2025-12-18T14:59:31.186Z","milestones":[{"id":5948918,"iid":125,"state":"active","title":"18.7","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/125","due_date":"2025-12-12","group_id":9970,"created_at":"2025-03-26T00:21:13.818Z","start_date":"2025-11-15","updated_at":"2025-06-30T16:28:00.288Z","description":"| Milestone | Quarter    | Start Date - Code Merging | End Date - Code Merging | Release Date  |\r\n|-----------|------------|---------------------------|-------------------------|---------------|\r\n| 18.7      | FY26-Q4-M2 | 2025-12-11                | 2025-12-12              | 2025-12-18    |\r\n","issue_stats":{"total":2013,"closed":1954}}],"commit_path":"/gitlab-org/gitlab/-/commit/ceaa3c8b3a5ddb810b246bff3029e68cc57caf94","description":"![24 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=24&style=for-the-badge \"New features added in this release\")\n![4076 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=4076&style=for-the-badge \"Total features\")\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Service accounts available during trials on GitLab.com](https://docs.gitlab.com/user/profile/service_accounts/) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> Service accounts are now available during trial periods, allowing you to test automation and integration workflows\n> before purchasing.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![8 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=8&style=flat-square \"New features added to this tier in this release\")\n![705 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=705&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Enhanced active trial experience for Self-Managed](https://docs.gitlab.com/subscriptions/free_trials/#view-remaining-trial-period-days) <i>(self-managed only)</i>: <code>Acquisition</code></summary>\n\n> GitLab Self-Managed users on an Ultimate trial can now access their active trial status, remaining days, accessible\n> features, and expiration notifications from the left sidebar.\n> \n> These enhancements help eliminate confusion about trial duration and make it easier to evaluate paid features before purchase.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Secret validity checks improved and generally available](https://docs.gitlab.com/user/application_security/vulnerabilities/validity_check/): <code>Secret Detection</code></summary>\n\n> When a valid secret is leaked in one of your repositories, you must react quickly.\n> To help you prioritize urgent threats, validity checks automatically verify whether leaked credentials can still be used.\n> \n> In GitLab 18.7, we've improved:\n> \n> - Vendor integrations: Integrated with Google Cloud, AWS, and Postman, along with existing support for GitLab tokens.\n> - Report filtering: Filter the Vulnerability Report by validity status (active, inactive, possibly active) to quickly\n>   triage and prioritize secret findings.\n> - Group-level API: Turn on validity checks across all projects in a group with a single API call and streamline\n>   rollout across your organization.\n> \n> In this release, validity checks are generally available.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[SAST False Positive Detection with AI (Beta)](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/false_positive_detection): <code>Vulnerability Management</code></summary>\n\n> Security teams often spend significant time investigating SAST findings that turn out to be false positives,\n> diverting attention from genuine security risks.\n> \n> In GitLab 18.7, we're introducing AI-powered SAST False Positive Detection to help teams focus on the\n> vulnerabilities that matter. When a security scan runs, GitLab Duo automatically analyzes each Critical and High\n> severity SAST vulnerability to determine the likelihood that it's a false positive.\n> \n> The AI assessment appears directly in the vulnerability report, giving security engineers immediate context to\n> make faster, more confident triage decisions.\n> \n> Key capabilities include:\n> \n> - Automatic analysis: False positive detection runs automatically after each security scan with no manual\n>   triggering required.\n> - Manual trigger option: Users can manually trigger false positive detection for individual vulnerabilities on\n>   the vulnerability details page for on-demand analysis.\n> - Focused on high-impact findings: Scoped to Critical and High severity vulnerabilities to maximize signal-to-noise\n>   improvement.\n> - Contextual AI reasoning: Each assessment includes an explanation of why the finding may or may not be a true\n>   positive, based on code context and vulnerability characteristics.\n> - Seamless workflow integration: Results surface directly in the vulnerability report alongside existing severity,\n>   status, and remediation information.\n> \n> This feature is available as a free beta for Ultimate customers and must be enabled in your group or project settings.\n> We welcome your feedback in [issue 583697](https://gitlab.com/gitlab-org/gitlab/-/issues/583697).\n\n</details>\n\n<details><summary>[Filter and comment on compliance violations](https://docs.gitlab.com/user/compliance/compliance_center/compliance_violations_report/): <code>Compliance Management</code></summary>\n\n> The compliance violations report provides a centralized view of all compliance violations across your\n> organization's projects. The report displays comprehensive details about control violations, related audit events,\n> and enables teams to track violation statuses effectively.\n> \n> In GitLab 18.7, we've introduced powerful filtering capabilities to help you quickly find the violations that\n> matter most. You can now filter by:\n> \n> - Status\n> - Project\n> - Control\n> \n> Teams can now also collaborate directly on resolving violations through comments. Within the violation record\n> itself, teams can:\n> \n> - Tag team members for investigation\n> - Discuss remediation approaches\n> - Document findings—all within the violation record itself.\n> \n> Together, these features evolve the compliance violations report  into a dynamic collaboration platform,\n> enabling organizations to efficiently discover, analyze, and resolve compliance violations in their groups and\n> projects.\n\n</details>\n\n<details><summary>[Compliance framework controls show accurate scan status](https://docs.gitlab.com/user/compliance/compliance_frameworks/#gitlab-compliance-controls): <code>Compliance Management</code></summary>\n\n> GitLab compliance controls can be used in compliance frameworks. Controls are checks against the configuration or\n> behavior of projects that are assigned to a compliance framework.\n> \n> Previously, controls related to scanners (for example, checking if SAST is enabled) required your projects to have\n> a passing pipeline in the default branch before the compliance centre displayed the success or failure status of your\n> controls.\n> \n> In GitLab 18.7, we have changed this behavior to show whether your controls have succeeded or failed based solely on\n> scan completion, regardless of the overall pipeline status. This helps ease confusion because the compliance status\n> of your controls reflects whether security scans ran and completed, not whether the entire pipeline passed.\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[New security dashboards enabled by default](https://docs.gitlab.com/user/application_security/security_dashboard/#new-security-dashboards): <code>Vulnerability Management</code></summary>\n\n> The new security dashboards have been updated and modernized. The dashboards were previously available on GitLab.com,\n> and are now enabled by default on GitLab Dedicated and GitLab Self-Managed.\n> \n> The new features include:\n> \n> - A vulnerabilities over time chart that supports:\n>   -  Filtering based on project or report type.\n>   -  Grouping by report type and severity.\n>   -  Direct links to vulnerabilities in the vulnerability report.\n> - A risk score module that calculates the estimated risk for a group or project based on a GitLab algorithm.\n> \n> Please note that using the new dashboard requires ElasticSearch.\n\n</details>\n\n<details><summary>[Advanced vulnerability management available in Self-Managed and Dedicated environments](https://docs.gitlab.com/user/application_security/vulnerability_report/#advanced-vulnerability-management): <code>Vulnerability Management</code></summary>\n\n> Advanced vulnerability management is available to all Ultimate customers and includes the following features:\n> \n> - Grouping data by OWASP 2021 categories in the vulnerability report for a project or group.\n> - Filtering based on a vulnerability identifier in the vulnerability report for a project or group.\n> - Filtering based on the reachability value in the vulnerability report for a project or group.\n> - Filtering by policy violation bypass reason.\n\n</details>\n\n<details><summary>[Warn mode in merge request approval policies](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#warn-mode): <code>Security Policy Management</code></summary>\n\n> Security teams can now use warn mode to test and validate the impact of security policies before applying\n> enforcement or to roll out soft gates for accelerating your security program. Warn mode helps to reduce developer\n> friction during security policy rollouts, while continuing to ensure detected vulnerabilities are addressed.\n> \n> When you create or edit a\n> [merge request approval policy](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/),\n> you can now choose between `warn` or `enforce` enforcement options.\n> \n> Policies in warn mode generate informative bot comments without blocking merge requests. Optional approvers can\n> be designated as points of contact for policy questions. This approach enables security teams to assess policy\n> impact and build developer trust through transparent, gradual policy adoption.\n> \n> Clear indicators in merge requests tell users when policies are in `warn` or `enforce` mode, and audit events\n> track policy violations and dismissals for compliance reporting. Developers can bypass scan finding and license\n> policy violations by providing a reasoning for the policy dismissal, creating a collaborative feedback loop between\n> developers and security teams for more effective policy enablement.\n> \n> When policy violations are detected on a project's default branch, policies identify vulnerabilities that violate\n> the policy in the vulnerability reports for projects and groups. The dependency list for projects also displays\n> badges that indicate license compliance policy violations.\n> \n> Additionally, you can use the API to query a filtered list of policy violations on the default branch in a project.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![11 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=11&style=flat-square \"New features added to this tier in this release\")\n![791 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=791&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Improved GitLab Duo and SDLC trends dashboard](https://docs.gitlab.com/user/analytics/duo_and_sdlc_trends/): <code>DevOps Reports</code></summary>\n\n> The GitLab Duo and SDLC trends dashboard delivers improved analytics capabilities to measure the impact of GitLab Duo\n> on software delivery. The dashboard now provides 6-month trend analysis across GitLab Duo feature adoption, pipeline\n> performance, and common development metrics such as deployment frequency and mean time to merge.\n> \n> You can now track code generation volumes and IDE or language trends for GitLab Duo Code Suggestions, and observe\n> as your teams adopt new GitLab Duo Agent Platform flows. Enhanced user-level metrics enable teams to gain deeper\n> insight into the key Duo features providing continuous value.\n> \n> A new [endpoint for instance-level AI usage](https://docs.gitlab.com/api/graphql/reference/#aiinstanceusagedata)\n> is now available for instance administrators to extract all Duo data from either Postgres (3-month retention) or\n> ClickHouse.\n> \n> Powered by the ClickHouse integration, this dashboard delivers sub-second query performance across millions of\n> data points. For self-managed instances, see improved recommendations and configuration guidance for\n> [ClickHouse integration](https://docs.gitlab.com/integration/clickhouse/).\n\n</details>\n\n<details><summary>[Separate model selection for Agentic Chat and agents](https://docs.gitlab.com/user/gitlab_duo/model_selection/#select-a-model-for-a-feature): <code>Model Personalization</code></summary>\n\n> Separate models can now be selected for Agentic Chat and for all other agents for top-level groups or instances.\n> This provides more options for model selection for GitLab Duo Agent Platform.\n\n</details>\n\n<details><summary>[Advanced search available for both merge request descriptions and comments](https://docs.gitlab.com/user/search/advanced_search/): <code>Global Search</code></summary>\n\n> Advanced search now returns matching results from both merge request descriptions and comments. Previously, users\n> had to search merge request descriptions and comments separately.\n> \n> This improvement provides a more streamlined and comprehensive search workflow for GitLab merge requests.\n\n</details>\n\n<details><summary>[Support for `AGENTS.md` with GitLab Duo Chat (Agentic) in IDEs](https://docs.gitlab.com/user/gitlab_duo/customize_duo/agents_md/): <code>Editor Extensions</code></summary>\n\n> GitLab Duo Chat now supports the `AGENTS.md` specification, an emerging standard for providing context and\n> instructions to AI coding assistants.\n> \n> Unlike custom rules that are only available to GitLab Duo, `AGENTS.md` files are also available for other AI\n> coding tools to use. This makes your build commands, testing instructions, code style guidelines, and\n> project-specific context available to any AI tool that supports the specification.\n> \n> GitLab Duo Chat in your IDE automatically applies available instructions from `AGENTS.md` files in your repository,\n> set at the user or workspace level. For monorepos, you can place `AGENTS.md` files in subdirectories to provide\n> tailored instructions for different components.\n\n</details>\n\n<details><summary>[AI agent and flow versioning](https://docs.gitlab.com/user/duo_agent_platform/ai_catalog/#agent-and-flow-versions): <code>Duo Agent Platform</code></summary>\n\n> When you enable an agent or flow from the AI Catalog in your project, GitLab now pins it to a specific version.\n> \n> This means your AI-powered workflows stay stable and predictable even as catalog items evolve, so you can test and\n> validate new versions before you upgrade.\n\n</details>\n\n<details><summary>[AI gateway timeout setting](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/configure_duo_features/#configure-timeout-for-the-ai-gateway) <i>(self-managed only)</i>: <code>Model Personalization</code></summary>\n\n> For GitLab Duo Self-Hosted, you can now configure a timeout value for requests to self-hosted models.\n> \n> This value can range from 60 to 600 seconds.\n\n</details>\n\n<details><summary>[Report agents and flows to administrators](https://docs.gitlab.com/user/report_abuse/): <code>AI Catalog</code></summary>\n\n> You can now report agents and flows to instance administrators when you encounter problematic content. Submit an\n> abuse report that includes your feedback, and an administrator can choose to hide or delete the harmful item.\n> \n> Use this feature to keep your agents and flows safe across your entire organization.\n\n</details>\n\n<details><summary>[Configure foundational agent availability](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/#turn-foundational-agents-on-or-off): <code>Duo Agent Platform</code></summary>\n\n> You can now control which foundational agents are available in your top-level group or instance.\n> \n> Turn all foundational agents on or off by default, or toggle individual agents to align with your organization's\n> security and governance policies.\n\n</details>\n\n<details><summary>[Data Analyst foundational agent powered by GLQL (Beta)](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/data_analyst/): <code>Custom Dashboards Foundation</code></summary>\n\n> The Data Analyst Agent is a specialized AI assistant that helps you query, visualize, and surface data across the\n> GitLab platform. It uses GitLab Query Language (GLQL) to retrieve and analyze data, then provides clear, actionable\n> insights about your projects.\n> \n> You can find example prompts and use cases in the documentation.\n> \n> This agent is currently in beta status, so please share your thoughts in the\n> [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/574028) to help us improve and provide insight into\n> where you'd like to see this go next.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Additional Planner Agent features available in beta](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/): <code>Portfolio Management</code></summary>\n\n> The Planner Agent now includes create and edit features in beta! The Planner Agent is a foundational agent built\n> to support product managers directly in GitLab. Use the Planner Agent to create, edit, and analyze GitLab work items.\n> \n> Instead of manually chasing updates, prioritizing work, or summarizing planning data, the Planner Agent helps you\n> analyze backlogs, apply frameworks like RICE or MoSCoW, and surface what truly needs your attention. It's like\n> having a proactive teammate who understands your planning workflow and works with you to make better, more efficient\n> decisions.\n> \n> Please provide your feedback in [issue 576622](https://gitlab.com/gitlab-org/gitlab/-/issues/576622).\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Instance setting to control publishing of components to the CI/CD Catalog](https://docs.gitlab.com/administration/settings/continuous_integration/#restrict-cicd-catalog-publishing) <i>(self-managed only)</i>: <code>Pipeline Composition</code>, <code>Component Catalog</code></summary>\n\n> Administrators of GitLab Self-Managed and GitLab Dedicated can now restrict which projects are allowed to publish\n> components to the CI/CD Catalog. This new setting enables organizations to maintain a curated, trusted CI/CD Catalog\n> by controlling what components can be published.\n> \n> Administrators can now specify an allowlist of projects authorized to publish components. When the allowlist is\n> populated with projects, only those projects can publish components. This prevents unauthorized or unapproved\n> components from cluttering the list of published components and ensures all components meet organizational standards\n> and security requirements.\n> \n> This addresses a key governance challenge for enterprise customers who want to maintain control over their CI/CD\n> component ecosystem while enabling their teams to discover and reuse approved components.\n\n</details>\n\n\n\n#### Core\n\n![4 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=4&style=flat-square \"New features added to this tier in this release\")\n![2458 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2458&style=flat-square \"Total features in this tier\")\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Accessibility improvements for heading anchor links](https://docs.gitlab.com/user/markdown/): <code>Markdown</code></summary>\n\n> Heading anchor links now announce with the same text as their corresponding heading, improving the experience for\n> screen reader users. The links also appear after the heading text, providing a cleaner visual presentation.\n> \n> These changes make it easier for all users to understand and navigate to specific sections of documentation,\n> issues, and other content.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Dynamic input options in CI/CD pipelines](https://docs.gitlab.com/ci/inputs/#define-conditional-input-options-with-specinputsrules): <code>Pipeline Composition</code></summary>\n\n> You can set up your CI/CD pipelines to make use of dynamic input selection when creating new pipelines through the\n> intuitive web interface.\n> \n> Now, with dynamic input options, you can configure your pipelines so that input selection options update dynamically\n> based on previous selections. For example, when you select an input in one dropdown list, it automatically populates\n> a list of related input options in a second dropdown list.\n> \n> With CI/CD inputs, you can:\n> \n> - Trigger pipelines with pre-configured inputs, reducing errors and streamlining deployments.\n> - Enable your users to select different inputs than the defaults from dropdown menus.\n> - Now have cascading dropdown lists where options dynamically update based on previous selections.\n> \n> This dynamic capability enables you to create more intelligent, context-aware input configurations that guide you\n> through the pipeline creation process, reducing errors and ensuring only valid combinations of inputs are selected.\n\n</details>\n\n<details><summary>[GitLab Runner 18.7](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're also releasing GitLab Runner 18.7 today!\n> \n> GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab\n> instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service\n> included with GitLab.\n> \n> #### What's New:\n> \n> - [Configurable taskscaler reservation throttling](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/39161)\n> - [Enable `FF_TIMESTAMPS` by default](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38378)\n> \n> #### Bug Fixes:\n> \n> - [Shell executor fails on existing Git repository if a relative `builds_dir` is specified](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/39150)\n> - [Authentication failure in GitLab Runner 18.6.0 on subsequent pipeline runs (SSH executor)](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/39140)\n> - [Authentication failure in GitLab Runner 18.6.0 on subsequent pipeline runs (shell executor)](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/39123)\n> - [Docker 29 API compatibility issues](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/39129)\n> - [Variables that reference file variables no longer work in GitLab Runner 18.6.0 with the shell executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/39124)\n> - [GitLab Runner now supports Windows 11 2025 (25H2)](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/39050)\n> - [ECR credential helper is not working with the Docker Autoscaler executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38365)\n> - [Job timeouts now properly enforced in GitLab Runner](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27040)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-7-stable/CHANGELOG.md).\n\n</details>\n\n<details><summary>[View child pipeline reports in merge requests](https://docs.gitlab.com/ci/pipelines/downstream_pipelines/#view-child-pipeline-reports-in-merge-requests): <code>Continuous Integration (CI)</code></summary>\n\n> Teams using parent-child CI/CD pipelines previously had to navigate through multiple pipeline pages to check test\n> results, code quality reports, and infrastructure changes, disrupting their merge request review workflow.\n> \n> You can now view and download all reports in a unified view, including unit tests, code quality checks, Terraform\n> plans, and custom metrics, without leaving the merge request.\n> \n> This eliminates context switching and accelerates merge request velocity, giving teams the ability to deliver\n> features faster without compromising quality.\n\n</details>\n\n\n","released_at":"2025-12-18T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 18.6","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.6.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.6.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.6.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.6.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.6.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.6.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":8967819,"url":"https://about.gitlab.com/releases/2025/11/20/gitlab-18-6-released/","name":"GitLab 18.6 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/11/20/gitlab-18-6-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.6.0-ee/gitlab-v18.6.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.6.0-ee/gitlab-v18.6.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.6.0-ee/gitlab-v18.6.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.6.0-ee/gitlab-v18.6.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"5927b4ad8ecf8b257f14761954d6e25858a3dc33","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/5927b4ad8ecf8b257f14761954d6e25858a3dc33","short_id":"5927b4ad","trailers":[],"created_at":"2025-11-19T16:51:13.000+00:00","parent_ids":["28af4480977a63dc23b95a8cc8889d4394d7e033"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-11-19T16:51:13.000+00:00","committed_date":"2025-11-19T16:51:13.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.6.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.6.0-ee","evidences":[],"created_at":"2025-11-20T15:13:26.852Z","milestones":[{"id":5948917,"iid":124,"state":"active","title":"18.6","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/124","due_date":"2025-11-14","group_id":9970,"created_at":"2025-03-26T00:20:35.674Z","start_date":"2025-10-11","updated_at":"2025-06-30T16:27:38.845Z","description":"| Milestone | Quarter    | Start Date - Code Merging | End Date - Code Merging | Release Date  |\r\n|-----------|------------|---------------------------|-------------------------|---------------|\r\n| 18.6      | FY26-Q4-M1 | 2025-11-13                | 2025-11-14              | 2025-11-20    |\r\n","issue_stats":{"total":2478,"closed":2378}}],"commit_path":"/gitlab-org/gitlab/-/commit/5927b4ad8ecf8b257f14761954d6e25858a3dc33","description":"![26 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=26&style=for-the-badge \"New features added in this release\")\n![4052 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=4052&style=for-the-badge \"Total features\")\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Group Owners can update primary emails for enterprise users](https://docs.gitlab.com/user/enterprise_user/) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> Group owners can can now update the primary email address of enterprise users in their group. Updates can be made through the Users API. Previously, each enterprise user had to manually update their own email address. This change makes it easier to manage enterprise users at scale.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![5 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=5&style=flat-square \"New features added to this tier in this release\")\n![697 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=697&style=flat-square \"Total features in this tier\")\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[GitLab Security Analyst Agent available as a foundational agent](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/security_analyst_agent/): <code>Vulnerability Management</code>, <code>Dependency Management</code></summary>\n\n> The GitLab Security Analyst Agent is now a foundational agent in GitLab Duo Agentic Chat. This means that users do not have to manually add the GitLab Security Analyst agent from the AI Catalog, and this agent is available by default for GitLab Self-Managed and GitLab Dedicated as well.\n> This specialized assistant provides AI-native vulnerability management and security analysis, helping you investigate findings, triage vulnerabilities, and navigate compliance requirements without any setup.\n> \n> This feature is in beta, and we welcome your feedback in [issue 576916](https://gitlab.com/gitlab-org/gitlab/-/issues/576916).\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Security dashboard upgrade (beta on GitLab.com)](https://docs.gitlab.com/user/application_security/security_dashboard/#new-security-dashboards): <code>Vulnerability Management</code></summary>\n\n> The new security dashboards have been updated and modernized. The initial features in the beta release include:\n> \n> - A vulnerabilities over time chart that supports:\n>   - Filtering based on project or report type.\n>   - Grouping by report type and severity.\n>   - Direct links to vulnerabilities in the vulnerability report.\n> - A risk score module that calculates the estimated risk for a group or project based on a GitLab algorithm.\n> \n> The new security dashboards released in 18.6 are currently available on GitLab.com only.\n\n</details>\n\n<details><summary>[Warn mode in merge request approval policies (Beta)](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#warn-mode): <code>Security Policy Management</code></summary>\n\n> Security teams can now use warn mode to test and validate the impact of security policies before applying enforcement, reducing developer friction during security policy rollouts.\n> \n> When you create or edit a [merge request approval policy](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/), you can now choose between `warn` or `enforce` enforcement options.\n> \n> Policies in warn mode generate informative bot comments without blocking merge requests. Optional approvers can be designated as points of contact for policy questions. This approach enables security teams to assess policy impact and build developer trust through transparent, gradual policy adoption.\n> \n> Clear indicators in merge requests tell users when policies are in `warn` or `enforce` mode, and audit events track policy violations and dismissals for compliance reporting. Developers can dismiss vulnerabilities while providing reasoning for the dismissal, creating a collaborative approach to security policy management.\n\n</details>\n\n<details><summary>[Security attributes (Beta)](https://docs.gitlab.com/user/application_security/attributes/): <code>Security Asset Inventories</code></summary>\n\n> Security teams can now apply business context to projects by leveraging security attributes.\n> \n> Security attributes are organized by categories including business impact (with structured pre-defined selections), application, business unit, internet exposure, and location. Alternatively, you can create your own attribute categories and define labels within those categories.\n> \n> By applying these attributes across your projects, you can much more quickly search, filter, and identify which projects within the security inventory that require action based on risk posture and organizational context. You may now:\n> \n> * Identify projects that are mission critical and requiring better scan coverage\n> * Review scan coverage by application or business unit\n> * Search and filter based on the attributes applied to your projects\n> * Quickly locate projects that contribute to applications which are publicly accessible/exposed\n\n</details>\n\n<details><summary>[Exceptions to bypass merge request approval policies](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#user-group-role-and-custom-role-exceptions): <code>Security Policy Management</code></summary>\n\n> Organizations can now designate specific users, groups, roles, or custom roles that can bypass merge request approval policies in case critical situations occur. This capability provides flexibility for emergency responses, while maintaining comprehensive audit trails and governance controls.\n> \n> **Emergency bypass with accountability**: Designated users can bypass approval requirements during critical incidents, security hotfixes, or urgent production issues. When emergencies strike, authorized personnel can merge or push changes immediately while the system captures detailed justification and audit information for compliance review.\n> \n> **Key capabilities include:**\n> \n> - **Documented bypass process**: When authorized users invoke a policy bypass, they must provide detailed reasoning using an intuitive modal interface, ensuring every exception is properly documented with context.\n> - **Comprehensive audit integration**: Every bypass generates detailed audit events including user identity, policy context, reasoning, and timestamps for complete visibility into exception usage patterns.\n> - **Flexible configuration**: Define exception permissions for policies using YAML or UI configuration, supporting individual users, GitLab groups, standard roles, and custom roles.\n> - **Git-based push exceptions**: Users with pre-approved policy exceptions may push directly when invoking the push bypass option `security_policy.bypass_reason`.\n> \n> This feature eliminates the need to entirely disable security policies during emergencies, providing a controlled path for urgent changes while preserving organizational governance and audit requirements.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![8 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=8&style=flat-square \"New features added to this tier in this release\")\n![780 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=780&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Exact code search in limited availability](https://docs.gitlab.com/user/search/exact_code_search/): <code>Global Search</code></summary>\n\n> With this release, exact code search is now in limited availability. You can use exact match and regular expression modes to search for code across an entire instance, in a group, or in a project. Exact code search is built on top of the open-source search engine Zoekt.\n> \n> For GitLab.com, exact code search is enabled by default. For GitLab Self-Managed, an administrator must [install Zoekt](https://docs.gitlab.com/integration/zoekt/#install-zoekt) and [enable exact code search](https://docs.gitlab.com/integration/zoekt/#enable-exact-code-search).\n> \n> This feature is in active development. We welcome your feedback in [issue 420920](https://gitlab.com/gitlab-org/gitlab/-/issues/420920)!\n\n</details>\n\n<details><summary>[Model selection for GitLab Duo Agentic Chat in VS Code and JetBrains IDEs](https://docs.gitlab.com/user/gitlab_duo/model_selection/#select-an-llm-for-a-feature): <code>Editor Extensions</code>, <code>Model Personalization</code></summary>\n\n> Easily choose your preferred AI model right in GitLab Duo Chat, now available in the VS Code and JetBrains IDEs. Use the dropdown list in the GitLab Duo Chat panel to select among Claude, GPT, and other supported models. Model availability is managed by your organization admins, ensuring you have access to the right models for your workflow.\n\n</details>\n\n<details><summary>[GitLab MCP server available in beta](https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/): <code>MCP Server</code></summary>\n\n> The GitLab MCP server is available in [beta](https://docs.gitlab.com/policy/development_stages_support/#beta). With the GitLab MCP server, you can use AI assistants like Claude Code, Cursor, and other MCP-compatible tools to interact with your GitLab projects, issues, merge requests, and pipelines, all without building custom integrations for each tool.\n> \n> To get started, [turn on beta and experimental features](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/#turn-on-beta-and-experimental-features) in your GitLab Duo settings.\n> \n> The GitLab MCP server provides key tools covering issues, merge requests, and pipelines, and we continue to refine it based on user feedback. This feature might have incomplete functionality or bugs. Try it out and share feedback in [issue 561564](https://gitlab.com/gitlab-org/gitlab/-/issues/561564).\n\n</details>\n\n<details><summary>[Advanced search available for both issue descriptions and comments](https://docs.gitlab.com/user/search/advanced_search/): <code>Global Search</code></summary>\n\n> Advanced search now returns matching results from both issue descriptions and comments. Previously, users had to search issue descriptions and comments separately. This improvement provides a more streamlined and comprehensive search workflow for GitLab issues.\n\n</details>\n\n<details><summary>[Gemini 2.5 Flash model compatible with GitLab Duo Agent Platform for GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#compatible-models) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now use the Gemini 2.5 Flash model on GitLab Duo Agent Platform with [GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[GitLab Duo Planner Agent now available by default](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/): <code>Team Planning</code></summary>\n\n> The GitLab Duo Planner Agent is now available by default in the agent dropdown in GitLab Duo Chat, eliminating the need to manually add it from the AI Catalog. With full context of your work items, epics, issues, and tasks, the Planner Agent can now assist you at both the group and project levels.\n> \n> Get started with [**example prompts**](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/#example-prompts) to see how the Planner Agent can help you break down complex work, create implementation plans, and organize your team's objectives.\n> \n> This feature is in beta, and we welcome your feedback in [issue 576622](https://gitlab.com/gitlab-org/gitlab/-/issues/576622).\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Code Owners now supports inherited group memberships](https://docs.gitlab.com/ee/user/project/codeowners/advanced/#group-inheritance-and-eligibility): <code>Code Review Workflow</code>, <code>Source Code Management</code></summary>\n\n> Code ownership is critical for maintaining code quality and ensuring the right \n> people review changes to sensitive parts of your codebase. However, managing \n> Code Owners in organizations with complex group structures has been challenging. \n> Previously, to reference a group in your `CODEOWNERS` file, that group had to be \n> directly invited to each specific project, even if it was already a member of \n> a parent group.\n> \n> Code Owners now supports groups with inherited memberships as eligible approvers:\n> \n> - Groups with inherited access through parent group membership are recognized \n>   as valid code owners when Code Owners approvals are enabled.\n> - No need to invite groups directly to every project.\n> - Existing `CODEOWNERS` files continue to work without changes.\n> - Same level of control over who can approve changes to critical code paths.\n> \n> This change reduces administrative overhead while maintaining the security and \n> approval requirements that Code Owners provide.\n\n</details>\n\n<details><summary>[Webhook triggers for system-initiated approval resets](https://docs.gitlab.com/user/project/integrations/webhook_events/#system-initiated-merge-request-events): <code>Code Review Workflow</code></summary>\n\n> Integrating GitLab with external systems through webhooks is critical for automated \n> workflows and keeping teams informed about merge request status changes. However, when \n> GitLab automatically resets approvals (such as when new commits are pushed to a merge \n> request with \"Reset approvals on push\" enabled), external systems could not distinguish \n> these system-initiated events from manual user actions.\n> \n> GitLab now includes enhanced webhook payloads that clearly identify system-initiated approval \n> resets. When approvals are automatically reset, webhooks now include:\n> \n> - A `system` field set to `true`.\n> - A `system_action` field that provides specific context about why the reset occurred, \n>   such as `approvals_reset_on_push` or `code_owner_approvals_reset_on_push`.\n> \n> This means your webhook integrations can now distinguish between manual approval changes and \n> automatic system resets, enabling more sophisticated automation workflows that respond \n> appropriately to the specific context of each approval change.\n\n</details>\n\n\n\n#### Core\n\n![12 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=12&style=flat-square \"New features added to this tier in this release\")\n![2454 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2454&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Rate limit for listing project and group members](https://docs.gitlab.com/administration/settings/rate_limit_on_members_api/): <code>Groups & Projects</code></summary>\n\n> We've introduced rate limiting for the `/api/v4/projects/:id/members/all` and `/api/v4/groups/:id/members/all` endpoints to improve API stability and ensure fair resource usage across all users.\n> The `GET /api/v4/projects/:id/members/all` and `GET /api/v4/groups/:id/members/all` endpoints now have a rate limit of 200 requests per minute per user.\n> This change helps protect GitLab instances from excessive API usage that could impact performance for all users.\n> The limit of 200 requests per minute provides ample capacity for normal usage patterns while preventing potential abuse or unintentional resource exhaustion.\n> If your integrations or scripts use this endpoint, ensure they handle rate limit responses appropriately (HTTP 429) and implement retry logic with backoff as needed.\n> Most users should not be affected by this change under normal usage patterns.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[The new GitLab UI: Designed for productivity](https://docs.gitlab.com/user/interface_redesign/): <code>Design Management</code></summary>\n\n> Introducing a smarter, more intuitive GitLab UI that puts developer productivity first.\n> \n> The new side-by-side design uses contextual panels to keep you in your workflow, reducing unnecessary clicks and helping teams work faster. Customize your workspace, maximize screen real estate, and enjoy a cleaner, more dynamic experience that adapts to your workflow.\n> \n> GitLab is committed to continuous improvement, so please share your thoughts in the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/577554) and help shape the future of GitLab.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Toggle draft merge request visibility on your homepage](https://docs.gitlab.com/user/project/merge_requests/homepage/#set-your-display-preferences): <code>Code Review Workflow</code></summary>\n\n> On your homepage, draft merge requests can clutter your merge request view and\n> distract from work that's ready for action. Previously, you could not filter them\n> out.\n> \n> You can now hide draft merge requests from the **Your merge requests** section on\n> your homepage by using the display preferences. When you hide draft merge requests:\n> \n> - They are excluded from the active count.\n> - A footer displays the number of filtered draft merge requests.\n> - Your preference is saved automatically.\n> \n> This change helps you focus on merge requests that need immediate attention.\n\n</details>\n\n<details><summary>[New GitLab CLI features and improvements](https://docs.gitlab.com/cli/): <code>GitLab CLI</code></summary>\n\n> The GitLab CLI (glab) provides new features and improvements to enhance your \n> GitLab workflow from the command line:\n> \n> - **Enhanced authentication**: Auto-detect GitLab URLs from git remotes \n>   during login, making it easier to authenticate against the correct \n>   GitLab instance.\n> \n> - **Flexible pipeline monitoring**: View any pipeline by ID with the \n>   `ci-view` command.\n> \n> - **GPG key management**: Manage GPG keys directly from the CLI with \n>   new commands.\n> \n> - **Project member management**: Add, remove, and update project members \n>   from the command line.\n> \n> - **Improved Git integration**: Enhanced git-credential plugin with \n>   support for all token types.\n> \n> - **Modern user interface**: Updated prompt library for better confirmation \n>   dialogs and consistent GitLab theme across UI components.\n> \n> For a full list of changes and updates, see [CLI releases](https://gitlab.com/gitlab-org/cli/-/releases).\n> To get started with the GitLab CLI or update to the latest version, \n> see the [installation guide](https://gitlab.com/gitlab-org/cli/#installation).\n\n</details>\n\n<details><summary>[Webhook notifications for merge request review re-requests](https://docs.gitlab.com/user/project/integrations/webhook_events/#re-request-review-events): <code>Code Review Workflow</code></summary>\n\n> Webhook integrations are critical for automating workflows and keeping \n> external systems synchronized with GitLab merge request activities. \n> However, when reviewers were re-requested for merge requests, webhook \n> consumers had no way to identify which specific reviewer was being \n> re-requested, making it difficult to trigger appropriate notifications \n> or automation.\n> \n> Webhook payloads for merge requests now include a `re_requested` attribute\n> in reviewer data that clearly indicates which reviewer was re-requested:\n> \n> - Set to `true` for the specific reviewer being re-requested.\n> - Set to `false` for all other reviewers.\n> \n> This improvement enables more precise automation around the merge request\n> review process. Webhook consumers can send targeted notifications,\n> update external tracking systems, and trigger appropriate workflows when\n> reviews are re-requested.\n\n</details>\n\n<details><summary>[Web IDE support for offline GitLab Self-Managed environments](https://docs.gitlab.com/administration/settings/web_ide/) <i>(self-managed only)</i>: <code>Web IDE</code>, <code>Editor Extensions</code></summary>\n\n> GitLab Self-Managed administrators in offline or tightly controlled network environments can now configure a custom Web IDE extension host domain, enabling full Web IDE functionality without external internet access.\n> \n> Previously, the Web IDE required connectivity to `.cdn.web-ide.gitlab-static.net` to load VS Code extensions and functionality. This requirement blocked Web IDE adoption for security-conscious organizations, government and public sector customers, and enterprises with strict network policies.\n> \n> With this update, administrators can configure their GitLab instance to serve Web IDE assets directly, removing the dependency on external domains. You can now:\n> \n> - Use the full Web IDE feature set in completely offline environments.\n> - Enable the Extension Marketplace with a custom extension registry service. \n> - Enable markdown preview, code editing, and GitLab Duo Chat within the Web IDE in isolated networks.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[CI/CD Components can reference their own metadata](https://docs.gitlab.com/ci/yaml/expressions/#component-context): <code>Pipeline Composition</code></summary>\n\n> Previously, CI/CD components couldn't reference their own metadata, such as version numbers\n> or commit SHAs, within their configuration. This lack of information could cause you to use configuration with\n> hardcoded values or complex workarounds. Writing configuration this way can\n> lead to version mismatches when components build resources such as Docker images,\n> because there's no way to automatically tag those resources with the component's compatible version.\n> \n> In this release, we've introduced the ability to access component context with the `spec:component` keyword.\n> You can now build and publish versioned resources like Docker images when you release a component version,\n> ensuring everything is in sync, eliminating manual version management, and preventing version mismatches.\n\n</details>\n\n<details><summary>[Support dynamic job dependencies in `needs:parallel:matrix`](https://docs.gitlab.com/ci/yaml/matrix_expressions/#matrix-expressions-in-needsparallelmatrix): <code>Pipeline Composition</code></summary>\n\n> [`parallel:matrix`](https://docs.gitlab.com/ci/yaml/#parallelmatrix) makes it possible\n> to easily run multiple jobs in parallel with different requirements, for example\n> to test code for multiple platforms at the same time. But if you wanted later jobs\n> to use `needs:parallel:matrix` to depend on specific parallel jobs, the configuration was complex\n> and inflexible.\n> \n> Now, with the new `$[[matrix.VARIABLE]]` expression introduced as a Beta feature,\n> users can create dynamic 1-1 dependencies which makes complex `parallel:matrix` configurations\n> much easier to manage. This can help you create faster pipelines, with efficient artifact handling,\n> better scalability, and cleaner configuration. This feature is particularly valuable for multi-platform builds,\n> Terraform deployments across multiple environments, and any workflow requiring parallel processing across multiple dimensions.\n\n</details>\n\n<details><summary>[GitLab Runner 18.6](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 18.6 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's New:\n> \n> - [Implement minimal job confirmation API](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/39013)\n> \n> #### Bug Fixes:\n> \n> - [GitLab Runner does not expand the variables in the Docker image platform option](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38488)\n> - [Helper sidecar container fails to upload cache to S3 bucket from another account](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37879)\n> - [Automatically canceled job continues execution and fails](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37878)\n> - [Missing UTF8 BOM in the generated PowerShell script allows remote code execution using merge request title with character Ä](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/36060)\n> - [Intermittent Kubernetes API server request failures with Kubernetes executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/30109)\n> - [When using a Kubernetes executor, jobs with large commit messages fail](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/26624)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-6-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Helm chart registry: No more 1,000 chart limit](https://docs.gitlab.com/user/packages/helm_repository/): <code>Package Registry</code></summary>\n\n> GitLab's Helm chart registry previously generated metadata responses on-the-fly, which created performance bottlenecks when repositories contained large numbers of charts. To maintain system stability, we enforced a hard limit of the 1,000 most recent charts. This limit caused frustrating 404 errors when platform teams tried to access older chart versions.\n> \n> Platform engineers were forced to implement complex workarounds, like splitting charts across multiple repositories, manually managing chart retention policies, or maintaining separate chart storage solutions. These workarounds added operational overhead and fragmented deployment workflows, making it harder to maintain centralized chart governance.\n> \n> In GitLab 18.6, we've eliminated the 1,000 chart limitation by pre-computing metadata responses and storing them in object storage. This architectural change delivers both unlimited chart access and improved performance, as metadata is generated once in background jobs rather than on every request.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Increased rule coverage for secret push protection and pipeline secret detection](https://docs.gitlab.com/user/application_security/secret_detection/detected_secrets): <code>Secret Detection</code></summary>\n\n> We've added support for 40 new rules to GitLab's pipeline secret detection. Some existing rules have also been updated to improve quality and reduce false positives. These changes are released in [version 7.20.1](https://gitlab.com/gitlab-org/security-products/analyzers/secrets/-/releases/v7.20.1) of the secrets analyzer.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Designate an account succession beneficiary](https://docs.gitlab.com/user/profile/account/account_succession/) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> You can now designate an account beneficiary permission to manage your GitLab account if you are incapacitated or unavailable. To access your account, the beneficiary must provide appropriate legal documentation. This feature helps ensure the continuity of your work and projects while preventing unauthorized access.\n\n</details>\n\n\n","released_at":"2025-11-20T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 18.5","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.5.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.5.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.5.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.5.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.5.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.5.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":8707976,"url":"https://about.gitlab.com/releases/2025/10/16/gitlab-18-5-released/","name":"GitLab 18.5 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/10/16/gitlab-18-5-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.5.0-ee/gitlab-v18.5.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.5.0-ee/gitlab-v18.5.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.5.0-ee/gitlab-v18.5.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.5.0-ee/gitlab-v18.5.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"37cc4da7158316bb9b204cef9b056f16fff1df32","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/37cc4da7158316bb9b204cef9b056f16fff1df32","short_id":"37cc4da7","trailers":[],"created_at":"2025-10-15T05:33:45.000+00:00","parent_ids":["7fe85cab23a2577b8f0f48ff50f9f87f56ccb1dd"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-10-15T05:33:45.000+00:00","committed_date":"2025-10-15T05:33:45.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.5.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.5.0-ee","evidences":[],"created_at":"2025-10-16T14:45:39.169Z","milestones":[{"id":5948915,"iid":123,"state":"active","title":"18.5","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/123","due_date":"2025-10-10","group_id":9970,"created_at":"2025-03-26T00:19:53.377Z","start_date":"2025-09-13","updated_at":"2025-06-30T16:27:11.131Z","description":"| Milestone | Quarter    | Start Date - Code Merging | End Date - Code Merging | Release Date  |\r\n|-----------|------------|---------------------------|-------------------------|---------------|\r\n| 18.5      | FY26-Q3-M3 | 2025-10-09                | 2025-10-10              | 2025-10-16    |\r\n","issue_stats":{"total":2044,"closed":1944}}],"commit_path":"/gitlab-org/gitlab/-/commit/37cc4da7158316bb9b204cef9b056f16fff1df32","description":"![33 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=33&style=for-the-badge \"New features added in this release\")\n![3906 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3906&style=for-the-badge \"Total features\")\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![16 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=16&style=flat-square \"New features added to this tier in this release\")\n![692 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=692&style=flat-square \"Total features in this tier\")\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[DAST authentication scripts](https://docs.gitlab.com/user/application_security/dast/browser/configuration/authentication_scripts/): <code>DAST</code></summary>\n\n> You can now add scripts to your CI/CD configurations to automate DAST authentication workflows. Authentication scripts enable automating complex authentication flows, including support for time-based, one-time passwords (OTP MFA).\n> \n> This enhancement helps your team maintain critical security controls while conducting thorough, automated security scans. By supporting real-world authentication scenarios, scripts reduce friction and ensure accurate security assessments of production software.\n\n</details>\n\n<details><summary>[C/C++ support for Advanced SAST](https://docs.gitlab.com/user/application_security/sast/cpp_advanced_sast/): <code>SAST</code></summary>\n\n> We have added beta support for C/C++ to GitLab Advanced SAST.\n> \n> To use this new cross-file, cross-function scanning support, [enable C/C++ support](https://docs.gitlab.com/user/application_security/sast/cpp_advanced_sast/).\n> \n> We welcome feedback on this feature. If you have any questions, comments, or would like to engage with our team, please see this [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/575671).\n\n</details>\n\n<details><summary>[Secret validity checks is in beta](https://docs.gitlab.com/user/application_security/vulnerabilities/validity_check/): <code>Secret Detection</code></summary>\n\n> Pipeline secret detection alerts you to exposed credentials, like passwords or API keys, in your projects. However, until GitLab 18.5, you had to manually check whether each detection represented an active token. This could make effectively triaging detections difficult and time consuming.\n> \n> Now that validity checks is in beta, enable it to display the status of detected GitLab secrets. Active secrets can be used to impersonate legitimate activity, so you should rotate them as soon as possible. To watch validity checks in action, see the [validity checks playlist](https://www.youtube.com/playlist?list=PL05JrBw4t0Ko8uOgubcYqmTTMGs0zWQRt).\n\n</details>\n\n<details><summary>[Customizable detection logic for Advanced SAST](https://docs.gitlab.com/user/application_security/sast/customize_rulesets/): <code>SAST</code></summary>\n\n> You can now create custom security detection rules tailored to your organization's specific security requirements and coding patterns with GitLab Advanced SAST. This feature enables your security teams to define custom vulnerability patterns beyond the predefined ruleset, allowing them to detect application-specific security issues.\n> \n> For more information, see [Customize rulesets](https://docs.gitlab.com/user/application_security/sast/customize_rulesets/).\n\n</details>\n\n<details><summary>[Advanced SAST diff-based scanning in merge requests](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#diff-based-scanning-in-merge-requests): <code>SAST</code></summary>\n\n> You can now perform diff-based scans that analyze only the code changes in a merge request with GitLab Advanced SAST, significantly reducing scan times compared to full repository scans. By scanning just the Git diff rather than the entire codebase, your teams can integrate security testing more seamlessly into their development workflow without sacrificing speed or adding friction to the merge request process.\n> \n> We are working to enable this performance improvement by default; this is tracked in [issue 546359](https://gitlab.com/gitlab-org/gitlab/-/issues/546359).\n\n</details>\n\n<details><summary>[Dependency scanning in limited availability](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/): <code>Software Composition Analysis</code></summary>\n\n> In GitLab 18.5, we released a new dependency scanning template that works with the dependency scanning analyzer.\n> The analyzer now generates a dependency scanning report containing all component vulnerabilities.\n> Scan Execution Policy (SEP) and Pipeline Execution Policy (PEP) support the new template.\n> \n> To use the new template, import `Jobs/Dependency-Scanning.v2.gitlab-ci.yml`.\n> \n> This feature is available on GitLab.com and self-managed instances, though it's marked as limited availability because official support for self-managed is not yet available. \n> GitLab.com users can use it immediately. \n> \n> We welcome feedback on this feature. If you have questions, comments, or would like to engage with our team, please see this [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/523458).\n\n</details>\n\n<details><summary>[Static reachability in limited availability and experimental Java support](https://docs.gitlab.com/user/application_security/dependency_scanning/static_reachability/): <code>Software Composition Analysis</code></summary>\n\n> In GitLab 18.5, we released limited availability support for static reachability.\n> This release focuses on improving JS/TS coverage support, fixing bugs, and providing experimental support for Java. \n> Static reachability enriches Software Composition Analysis (SCA) results by scanning project source code to identify open source dependencies that are in use.\n> Data produced by static reachability can be used as part of users' triage and remediation decision making. Static reachability data can also be used with CVSS and EPSS scores, as well as KEV indicators to provide a more focused view of identified vulnerabilities.\n> \n> We welcome feedback on this feature. If you have questions, comments, or would like to engage with our team, please see this [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/535498).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[GitLab Security Analyst Agent for Duo Agent Catalog (beta)](https://docs.gitlab.com/user/duo_agent_platform/agents/): <code>Vulnerability Management</code>, <code>Dependency Management</code></summary>\n\n> Agents in GitLab Duo Agent Platform can be used to perform tasks and answer complex questions\n> within GitLab. Users can either create custom agents to accomplish specific tasks, like creating merge requests or reviewing code,\n> or discover GitLab agents using the AI Catalog.\n> \n> In GitLab 18.5, we are releasing the GitLab Security Analyst Agent as a beta feature, available in the AI Catalog. To use the GitLab Security Analyst Agent in specific projects, select and enable the agent in GitLab Duo Agentic Chat. The agent can perform the following tasks:\n> \n> - List all vulnerabilities in a given project.\n> - Get detailed vulnerability information, including CVE data and EPSS scores.\n> - Confirm and dismiss vulnerabilities.\n> - Update vulnerability severity levels.\n> - Revert vulnerability status back to `detected`.\n> - Create vulnerability issues, or link vulnerabilities to existing issues.\n> \n> With the GitLab Security Analyst Agent, users can perform tedious security workflows through AI-powered automation and intelligent analysis, enabling engineers to focus on genuine threats while the GitLab Security Analyst Agent handles repetitive assessment and documentation. Please note that the GitLab Security Analyst Agent using GitLab Duo Chat is only available for Ultimate customers with the GitLab Duo add-on.\n> \n> This feature is in beta, and we welcome your feedback in [issue 576916](https://gitlab.com/gitlab-org/gitlab/-/issues/576916).\n\n</details>\n\n<details><summary>[Instance-wide compliance and security policy management](https://docs.gitlab.com/security/compliance_security_policy_management/) <i>(self-managed only)</i>: <code>Compliance Management</code>, <code>Security Policy Management</code></summary>\n\n> Enterprise users want to manage their compliance frameworks and security policies across multiple top-level groups.\n> This is often the case when all groups in an instance:\n> \n> - Share the same compliance frameworks. For example, when all projects in a group must adhere to the ISO 27001 standard.\n> - Enforce similar security policies. For example, when all groups share the same pipeline execution policy.\n> \n> With GitLab 18.5, we introduce compliance and security policy groups to centralize the management of security policies and compliance frameworks on an instance for GitLab Self-Managed\n> and Dedicated instances. With this release, you can now create, configure, and allocate compliance frameworks and\n> security policies from a single top-level group and enforce them across all of the other top-level groups across your instance.\n> \n> With a compliance and security policy group, you have a single source of truth\n> where you can manage and edit your compliance frameworks and security policies. \n> Security and compliance users within the group can then apply compliance frameworks and security policies to all the projects across the instance.\n> \n> Compliance and security policy groups make it easier to manage and enforce your compliance and security\n> needs across your instance. However, groups still retain the ability to create their own compliance\n> frameworks and security policies to address specific situations or workflows that can arise in those groups.\n> \n> This feature is for GitLab Self-Managed and Dedicated customers. GitLab.com customers can\n> manage frameworks and policies centrally within a single top-level group or namespace using security policy projects.\n> \n> Learn more about compliance and security policy groups for [compliance frameworks](https://docs.gitlab.com/user/compliance/compliance_frameworks/centralized_compliance_frameworks/) and [security policies](https://docs.gitlab.com/user/application_security/policies/enforcement/compliance_and_security_policy_groups/).\n\n</details>\n\n<details><summary>[New vulnerability management features in GitLab Duo Agentic Chat](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/#security): <code>Vulnerability Management</code>, <code>Dependency Management</code></summary>\n\n> GitLab Duo Agentic Chat is an enhanced version of GitLab Duo Chat. It searches, \n> retrieves, and combines information from multiple sources across your GitLab projects to \n> provide more thorough and relevant answers. A few of its use cases include\n> the ability to search through projects, read and list files, and autonomously create and change\n> files based on the prompt provided to GitLab Duo Chat.\n> \n> In GitLab 18.5, the Agentic Chat use case expands to include managing\n> vulnerabilities from your security scanners. By adding vulnerability management tools to\n> Agentic Chat, this transforms tedious security workflows through AI-powered automation and intelligent analysis, \n> enabling security professionals to efficiently triage, manage, and remediate vulnerabilities through natural language commands.\n> This eliminates hours of manual clicking through vulnerability dashboards and streamlining complex bulk operations that previously required custom scripts or tedious manual work.\n> \n> With the new vulnerability management tools added to GitLab Duo Chat, Ultimate users with GitLab Duo can perform\n> the following:\n> \n> - List all vulnerabilities in a given project.\n> - Get detailed vulnerability information, including CVE data and EPSS scores.\n> - Confirm and dismiss vulnerabilities.\n> - Update vulnerability severity levels.\n> - Revert vulnerability status back to `detected`.\n> - Create vulnerability issues, or link vulnerabilities to existing issues.\n> \n> These tools transform security workflows from reactive manual triage into intelligent remediation, \n> letting engineers focus on genuine threats while AI handles repetitive assessment and documentation. Vulnerability management using GitLab Duo Chat is only available for Ultimate customers with the GitLab Duo add-on.\n\n</details>\n\n<details><summary>[Control requests for external control statuses](https://docs.gitlab.com/user/compliance/compliance_frameworks/#ping-enabled-setting): <code>Compliance Management</code></summary>\n\n> External controls can be attached to requirements when creating compliance frameworks in GitLab.\n> \n> By default, GitLab automatically requests the status of external controls from external systems every 12 hours\n> during compliance scans, setting the control status to 'pending'. External systems then respond by using the\n> external controls API to update the status to 'pass' or 'fail'.\n> \n> In GitLab 18.5, you can now disable this automatic 12-hour ping by turning off the **Ping enabled** setting when\n> configuring external controls. When the 12-hour ping is disabled:\n> \n> - GitLab will not automatically request status updates from external systems.\n> - The external control displays a **Disabled** badge in the compliance framework UI.\n> - You have complete control over when external control statuses are updated using the external controls API.\n> \n> This prevents the system from resetting the external control statuses to 'pending' and gives you full control over\n> status update timing.\n\n</details>\n\n<details><summary>[Show only active vulnerabilities in the dependency list](https://docs.gitlab.com/user/application_security/dependency_list/#vulnerabilities): <code>Dependency Management</code></summary>\n\n> Previously, the dependency list included some dismissed vulnerabilities.\n> \n> To provide you with a more useful representation of the vulnerabilities in the dependency list, the project dependency list now includes only active vulnerabilities in the `detected` and `confirmed` states. \n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Expose original severity from the vulnerabilities API](https://docs.gitlab.com/api/graphql/reference/#pipelinesecurityreportfindingoriginalseverity): <code>Vulnerability Management</code></summary>\n\n> The vulnerabilities GraphQL API now exposes the original severity of vulnerabilities.\n> This allows you to determine what the severity of the vulnerability was before severity overrides were applied.\n\n</details>\n\n<details><summary>[Time windows for merge request approval policies](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#security_report_time_window): <code>Security Policy Management</code></summary>\n\n> To provide further flexibility in security vulnerability comparisons, we have introduced time windows in merge request approval policies. If the security reports for the most recent baseline are not yet available, this new policy configuration allows you to use previously completed security reports, as long as the reports are not older than the age that you specify as the time window. \n> \n> Development teams can now avoid unnecessary delays when baseline security scans are stuck or taking too long, such as in very busy projects. By configuring a time window, merge requests that don't introduce new vulnerabilities can proceed without waiting for the latest pipeline to complete, improving workflow efficiency.\n> \n> To use this feature, create or edit a merge request approval policy and specify the `security_report_time_window` parameter (in minutes) in your approval policy configuration\n> \n> The system will compare your merge request's security results against the latest pipeline using the security reports created within the specified time window, allowing for faster approvals when no new vulnerabilities are introduced.\n\n</details>\n\n<details><summary>[Refreshed security finding statuses in the pipeline **Security** tab](https://docs.gitlab.com/user/application_security/detect/security_scanning_results/#change-status-or-severity): <code>Vulnerability Management</code></summary>\n\n> Previously, in the **Security** tab for a pipeline, if you dismissed an vulnerability, the vulnerability was not immediately removed from the list. \n> \n> Status updates in the security tab of a pipeline page are now updated after they are changed.\n\n</details>\n\n<details><summary>[Exceptions to bypass merge request approval policies](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#user-group-role-and-custom-role-exceptions): <code>Security Policy Management</code></summary>\n\n> Organizations can now designate specific users, groups, roles, or custom roles that can bypass merge request approval policies in case critical situations occur. This capability provides flexibility for emergency responses, while maintaining comprehensive audit trails and governance controls.\n> \n> **Emergency bypass with accountability**: Designated users can bypass approval requirements during critical incidents, security hotfixes, or urgent production issues. When emergencies strike, authorized personnel can merge or push changes immediately while the system captures detailed justification and audit information for compliance review.\n> \n> Key capabilities include:\n> \n> - **Documented bypass process**: When authorized users invoke a policy bypass, they must provide detailed reasoning using an intuitive modal interface, ensuring every exception is properly documented with context.\n> - **Comprehensive audit integration**: Every bypass generates detailed audit events including user identity, policy context, reasoning, and timestamps for complete visibility into exception usage patterns.\n> - **Flexible configuration**: Define exception permissions for policies using YAML or UI configuration, supporting individual users, GitLab groups, standard roles, and custom roles.\n> - **Git-based push exceptions**: Users with pre-approved policy exceptions may push directly when invoking the push bypass option `security_policy.bypass_reason`.\n> \n> This feature eliminates the need to entirely disable security policies during emergencies, providing a controlled path for urgent changes while preserving organizational governance and audit requirements.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![8 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=8&style=flat-square \"New features added to this tier in this release\")\n![772 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=772&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GPT-5 now available as a model option for GitLab Duo Agentic Chat](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/#select-a-model): <code>Model Personalization</code></summary>\n\n> OpenAI GPT-5 is now available as a GitLab AI Vendor model when selecting a model for GitLab Duo Agent Platform. When configured by Owners of a top-level group on GitLab.com and instance Administrators on Self-Managed and Dedicated, end-users can select to use GPT-5 with GitLab Duo features. Top-level owners and administrators can continue to set organization-wide model preferences through namespace or instance settings, or allow end-user to choose from all available GitLab AI Vendor models.\n> \n> To get started using GPT-5, select your preferred model from the model dropdown list in GitLab Duo Chat.\n\n</details>\n\n<details><summary>[Additional triggers for CLI agents](https://docs.gitlab.com/user/duo_agent_platform/triggers/): <code>Duo Agent Platform</code></summary>\n\n> You can now trigger CLI agents using additional events to give you more flexibility and control over where and when your agents take action across your projects. Along with the existing **mention** trigger, you can use:\n> \n> - **Assign**: Trigger agents when a merge request or issue is assigned.\n> - **Assign reviewer**: Trigger agents when a reviewer is added to a merge request.\n\n</details>\n\n<details><summary>[GitLab Duo Agent Platform for GitLab Duo Self-Hosted now in beta](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/configure_duo_features/#configure-access-to-the-gitlab-duo-agent-platform) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> GitLab Duo Agent Platform is now in beta for GitLab Duo Self-Hosted. This feature is available to all Self-Managed GitLab Duo Enterprise customers. Self-Managed instance administrators using AWS Bedrock or Azure OpenAI can configure Anthropic Claude or OpenAI GPT models for use with GitLab Duo Agent Platform.  Self-Hosted administrators can also configure [compatible models](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#compatible-models) to use with Gitlab Duo Agent Platform.\n\n</details>\n\n<details><summary>[Codestral now supported for GitLab Duo Chat (Classic)](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now use Mistral Codestral on [Gitlab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models) for classic Duo Chat. This model is supported for Gitlab Duo Self-Hosted customers on GitLab Self-Managed instances.\n\n</details>\n\n<details><summary>[GPT OSS Models compatible with GitLab Duo Agent Platform for GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#compatible-models) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now use GPT OSS models on GitLab Duo Agent Platform with [Gitlab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[GitLab Duo Planner, a specialized agent and Product Manager team member (beta)](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/): <code>Portfolio Management</code></summary>\n\n> Collaborate with GitLab Duo Planner, a GitLab Duo agent built to support product managers directly within GitLab. Instead of manually chasing updates, prioritizing work, or summarizing planning data, GitLab Duo Planner helps you analyze backlogs, apply frameworks like RICE or MoSCoW, and surface what truly needs your attention. It's like having a proactive teammate who understands your planning workflow and works with you to make better, faster decisions. This feature is currently in beta. Please provide feedback in [issue 576622](https://gitlab.com/gitlab-org/gitlab/-/issues/576622).\n\n</details>\n\n<details><summary>[Configure status lifecycles for issues and tasks](https://docs.gitlab.com/user/work_items/status/#lifecycles): <code>Team Planning</code></summary>\n\n> Previously, issues and tasks were required to share the same set of configured statuses. In this release, we've added support for configuring status lifecycles, enabling you to define distinct workflows for issues and tasks in your projects. With status mapping built into the workflow, you can seamlessly transition an issue or task to a new set of statuses with no bulk editing required when changing work item types. \n> \n> Share your feedback and help us improve the feature by [contributing to our feedback issue](https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/35235) with your use cases and suggestions.\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Maven virtual registry now available in beta](https://docs.gitlab.com/user/packages/virtual_registry/maven/#manage-virtual-registries): <code>Virtual Registry</code></summary>\n\n> GitLab 18.5 introduces a comprehensive web-based interface for Maven virtual registry management. Previously, platform engineers could only configure and manage virtual registries through API calls, which makes routine maintenance tasks cumbersome and requires specialized knowledge.\n> \n> This web-based approach significantly reduces operational overhead for platform engineering teams. Common tasks, like clearing stale cache entries, reordering upstreams for performance optimization, and testing connectivity are now point-and-click operations. Development teams gain better visibility into their dependency configuration, enabling more informed discussions about build performance and security policies.\n> \n> The Maven virtual registry remains in beta for GitLab Premium and Ultimate customers. Current beta limitations include a maximum of 20 virtual registries per top-level group and 20 upstreams per virtual registry.\n> \n> We invite enterprise customers to participate in the Maven virtual registry beta program to help shape the final release. Please consider sharing feedback and suggestions in [issue 543045](https://gitlab.com/gitlab-org/gitlab/-/issues/543045).\n\n</details>\n\n\n\n#### Core\n\n![9 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=9&style=flat-square \"New features added to this tier in this release\")\n![2442 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2442&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Pick up where you left off on the new personal homepage](https://docs.gitlab.com/tutorials/personal_homepage/): <code>Navigation</code></summary>\n\n> You can now access a new personal homepage that consolidates all your important GitLab activities in one place, making it easier to pick up where you left off. The homepage brings together your to-do items, assigned issues, merge requests, review requests, and recently viewed content, helping you navigate GitLab's large surface area and stay focused on what matters the most to you.\n\n</details>\n\n<details><summary>[Enhanced **Admin** area groups list](https://docs.gitlab.com/administration/admin_area/#administering-groups) <i>(self-managed only)</i>: <code>Groups & Projects</code></summary>\n\n> We've upgraded the **Admin** area groups list to provide a more consistent experience for GitLab administrators:\n> \n> - Delayed deletion protection: Group deletions now follow the same safe deletion flow used throughout GitLab, preventing accidental data loss.\n> - Faster interactions: Filter, sort, and paginate groups without page reloads for a more responsive experience.\n> - Consistent interface: The groups list now matches the look and behavior of other group lists across GitLab.\n> \n> This update brings the administrator experience in line with GitLab design standards, and adds important safety features to protect your data. Future enhancements to group management will automatically appear in all group lists throughout the platform.\n\n</details>\n\n<details><summary>[Updated navigation experience for groups](https://docs.gitlab.com/user/group/#view-a-group): <code>Groups & Projects</code></summary>\n\n> We've made changes to the group overview list to deliver a more consistent and efficient experience across GitLab.\n> These improvements make it easier to navigate your groups and projects while providing more valuable information at a glance:\n> \n> - Richer project information: Projects now display stars, forks, issues, merge requests, and relevant dates, giving you a complete activity overview at a glance.\n> - Streamlined actions: Edit or delete groups and projects directly from the overview using the actions menu. Archived and pending deletion items appear in the **Inactive** tab.\n> - Consistent experience: The group overview now matches the look and behavior of other group and project lists throughout GitLab for a more intuitive experience.\n> \n> These enhancements save time by putting more information and actions at your fingertips. This update also lays the groundwork for future features like bulk editing and advanced filtering options.\n\n</details>\n\n<details><summary>[Improved inactive item management for groups and projects](https://docs.gitlab.com/user/project/working_with_projects/#view-inactive-projects): <code>Groups & Projects</code></summary>\n\n> The **Inactive** tab now consistently displays all inactive items in one unified location across GitLab. This includes archived projects, projects pending deletion, and groups pending deletion.\n> This tab is available on the group overview page, as well as in group and project lists throughout **Your work**, **Explore**, and the **Admin** area.\n> All users with the appropriate permissions can view inactive items, while only group owners and project owners and maintainers can take further actions on them.\n> As part of this update, a new `active` parameter is now available in both the Projects and Groups REST APIs, and GraphQL APIs.\n> \n> Managing inactive content is a critical part of maintaining a GitLab instance.\n> This update makes it easier to find and recover content that was archived or is pending deletion, allowing you to maintain better control over your GitLab resources while reducing the risk of accidentally losing valuable work.\n> The clear separation of active from inactive content also provides a more focused search experience when navigating through groups and projects across all areas of GitLab.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Format markdown tables in the plain text editor](https://docs.gitlab.com/user/markdown/#tables): <code>Markdown</code></summary>\n\n> Misaligned markdown tables are difficult to read and edit, even though they render correctly.\n> \n> The new **Reformat table** feature in the plain text editor's toolbar realigns table\n> columns with a single click, preserving alignment settings and indentation. To use it:\n> \n> - Select any markdown table in wiki pages, issues, or merge requests.\n> - From the **More options** menu, select **Reformat table**. \n> \n> This makes documentation maintenance faster and collaboration easier when working with\n> complex tables.\n\n</details>\n\n<details><summary>[View child task completion in issues](https://docs.gitlab.com/user/tasks/#view-tasks): <code>Team Planning</code></summary>\n\n> You can now track the progress of issues directly from the child items widget, giving you a status overview at a glance. This enhancement provides real-time visibility into potential bottlenecks when work is already in progress, helping you quickly identify at-risk items and make timely adjustments before sprint deadlines are threatened.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Variable expansion in environment `deployment_tier`](https://docs.gitlab.com/ci/yaml/#environmentdeployment_tier): <code>Environment Management</code></summary>\n\n> You can now use CI/CD variables in the `environment:deployment_tier` field, making it easier to dynamically configure deployment tiers based on pipeline conditions.\n\n</details>\n\n<details><summary>[GitLab Runner 18.5](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're also releasing GitLab Runner 18.5 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> Bug fixes:\n> \n> - [Runner update fails on vanilla Kubernetes after updating runner operator from 1.39 to 1.41](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/259)\n> - [Some container labels have duplicate prefixes](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38674)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-5-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Increased rule coverage for secret push protection and pipeline secret detection](https://docs.gitlab.com/user/application_security/secret_detection/detected_secrets): <code>Secret Detection</code></summary>\n\n> New rules have been added to the GitLab pipeline secret detection. Some existing rules have also been updated to improve quality and reduce false positives. These changes are released in [version 7.15.0](https://gitlab.com/gitlab-org/security-products/analyzers/secrets/-/releases/v7.15.0) of the secrets analyzer.\n\n</details>\n\n\n","released_at":"2025-10-16T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 18.4","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.4.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.4.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.4.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.4.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.4.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.4.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":8463277,"url":"https://about.gitlab.com/releases/2025/09/18/gitlab-18-4-released/","name":"GitLab 18.4 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/09/18/gitlab-18-4-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.4.0-ee/gitlab-v18.4.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.4.0-ee/gitlab-v18.4.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.4.0-ee/gitlab-v18.4.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.4.0-ee/gitlab-v18.4.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"9255f56b45844196bb7657a9f1fde6aa65a5d08d","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/9255f56b45844196bb7657a9f1fde6aa65a5d08d","short_id":"9255f56b","trailers":[],"created_at":"2025-09-17T06:07:04.000+00:00","parent_ids":["34d1acdde874ccebf01277066aae617afaed596c"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-09-17T06:07:04.000+00:00","committed_date":"2025-09-17T06:07:04.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.4.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.4.0-ee","evidences":[],"created_at":"2025-09-18T15:07:54.448Z","milestones":[{"id":5948913,"iid":122,"state":"active","title":"18.4","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/122","due_date":"2025-09-12","group_id":9970,"created_at":"2025-03-26T00:18:30.089Z","start_date":"2025-08-16","updated_at":"2025-10-31T15:15:47.465Z","description":"| Milestone | Quarter    | Start Date - Code Merging | End Date - Code Merging | Release Date  |\r\n|-----------|------------|---------------------------|-------------------------|---------------|\r\n| 18.4      | FY26-Q3-M2 | 2025-09-11                | 2025-09-12              | 2025-09-18    |\r\n","issue_stats":{"total":2080,"closed":2016}}],"commit_path":"/gitlab-org/gitlab/-/commit/9255f56b45844196bb7657a9f1fde6aa65a5d08d","description":"![25 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=25&style=for-the-badge \"New features added in this release\")\n![3993 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3993&style=for-the-badge \"Total features\")\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Bypass confirmation for enterprise users when reassigning placeholders](https://docs.gitlab.com/user/project/import/#bypass-confirmation-when-reassigning-placeholder-users) <i>(SaaS only)</i>: <code>Importers</code></summary>\n\n> Users with the Owner role for a group can now bypass user confirmation when reassigning placeholders to active enterprise users in that group. This way, enterprise users do not have to keep checking their emails to confirm reassignments. After the time limit for the setting is reached, email confirmation requests are sent again for all new reassignments.\n> \n> Enterprise users still receive notification emails after the reassignment is complete, ensuring transparency throughout the process.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![4 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=4&style=flat-square \"New features added to this tier in this release\")\n![676 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=676&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Expanded AWS region support for GitLab Dedicated](https://docs.gitlab.com/subscriptions/gitlab_dedicated/data_residency_and_high_availability/#available-aws-regions) <i>(self-managed only)</i>: <code>GitLab Dedicated</code>, <code>Switchboard</code></summary>\n\n> GitLab Dedicated now supports deployment in all AWS regions, enabling you to select from an [expanded list of regions](https://docs.gitlab.com/subscriptions/gitlab_dedicated/data_residency_and_high_availability/#available-aws-regions) for your primary, secondary, and backup deployment location.\n> \n> This expansion is enabled by AWS's rollout of io2 disks across all regions, which meet GitLab Dedicated's standards for high availability and disaster recovery.\n> \n> All newly available regions can be selected when provisioning your GitLab Dedicated instance in Switchboard.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Significantly faster Advanced SAST scanning](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/): <code>SAST</code></summary>\n\n> Every minute counts when you're enabling security scans in your merge requests and pipelines.\n> We routinely ship performance improvements for Advanced SAST, targeting both the engine and its detection rules.\n> \n> In this release, we're highlighting a specific improvement that cuts scan runtime by as much as 78% in our benchmark and real-world tests.\n> We've added caching in a performance-sensitive part of the scanning process, leading to significantly faster scans in large repositories.\n> \n> This improvement is automatically enabled in Advanced SAST analyzer version 2.9.6 and later.\n> You can see which analyzer version you're using by [checking scan job logs](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#identify-the-gitlab-advanced-sast-analyzer-version).\n\n</details>\n\n<details><summary>[Operational Container Scanning severity threshold configuration](https://docs.gitlab.com/user/clusters/agent/vulnerabilities/#configure-trivy-severity-threshold-filter): <code>Software Composition Analysis</code></summary>\n\n> You can now configure Operational Container Scanning (OCS) to only return vulnerabilties at or above a certain severity level.\n> After you set a severity threshold, vulnerabilities below the severity you choose are no longer returned in the Vulnerability Report, API payloads, and other reporting mechanisms.\n> This can help you focus on the vulnerabilities you want to remediate.\n> \n> To enable this filtering, [set a `severity_threshold`](https://docs.gitlab.com/user/clusters/agent/vulnerabilities/#configure-trivy-severity-threshold-filter) in your OCS configuration.\n> \n> We gratefully acknowledge this community contribution from [John Walsh](https://gitlab.com/mjohnw).\n> To learn more about contributing to GitLab, check out the [Community Contribution program](https://about.gitlab.com/community/contribute/).\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Vulnerability details shows the auto-resolve pipeline ID](https://docs.gitlab.com/user/application_security/policies/vulnerability_management_policy/): <code>Vulnerability Management</code></summary>\n\n> When troubleshooting vulnerabilities that have been automatically resolved, and later redetected, it can be helpful to compare the current pipeline to the pipeline where the vulnerability was resolved.  \n> \n> If a vulnerability is automatically resolved, the vulnerability notes in the vulnerability details page now include the pipeline ID where it occurred.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![9 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=9&style=flat-square \"New features added to this tier in this release\")\n![764 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=764&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Duo Model Selection now generally available](https://docs.gitlab.com/user/gitlab_duo/model_selection/#select-an-llm-for-a-feature): <code>Model Personalization</code></summary>\n\n> GitLab Duo Model Selection is now generally available, giving organizations greater control over which AI models power their development workflows.\n> \n> Owners of top-level groups on Gitlab.com and administrators on Self-Managed and Dedicated can now choose a specific model from a variety of GitLab AI model vendors for use with their GitLab Duo features, accessed through the GitLab-hosted AI gateway.\n> \n> GitLab users that belong to multiple namespaces on GitLab.com can now also set a default namespace to ensure consistent AI model preferences across all development contexts. For more information on GitLab Duo Model Selection, [read the blog](https://about.gitlab.com/blog/speed-meets-governance-model-selection-comes-to-gitlab-duo/).\n\n</details>\n\n<details><summary>[End user model selection now available with GitLab Duo](https://docs.gitlab.com/user/gitlab_duo/model_selection/#select-a-model-to-use-in-gitlab-duo-agentic-chat): <code>Model Personalization</code></summary>\n\n> GitLab Duo model selection for end-users is now in public beta on Gitlab.com. Users can now select their preferred model for GitLab Duo Agentic Chat directly in the GitLab UI, giving developers personalized control over their AI assistance experience.\n> \n> When allowed by namespace owners on GitLab.com, end-users can choose from available GitLab AI Vendor models for use with GitLab Duo Agentic Chat. Namespace owners can continue to set organization-wide model preferences through namespace settings, or allow end-user model selection.\n> \n> To get started, look for the model dropdown in GitLab Duo Agentic Chat to select your preferred model. Note that changing models will start a fresh conversation, and your preferences will be remembered for future sessions.\n</details>\n\n<details><summary>[GitLab Duo context exclusion](https://docs.gitlab.com/user/gitlab_duo/context/#exclude-context-from-gitlab-duo): <code>Duo Agent Platform</code>, <code>Duo Chat</code>, <code>Code Suggestions</code>, <code>Vulnerability Management</code></summary>\n\n> GitLab Duo context exclusion allows you to control which project content is excluded as context for GitLab Duo. This is helpful to protect sensitive information such as password files and configuration files. You can exclude individual files, specific directories, specific file types, or any combination of these.\n> \n> This feature is currently in beta. Provide feedback on GitLab Duo context exclusion in [issue 566244](https://gitlab.com/gitlab-org/gitlab/-/issues/566244).\n\n</details>\n\n<details><summary>[GitLab Duo AI Catalog](https://docs.gitlab.com/user/duo_agent_platform/ai_catalog/): <code>Duo Agent Platform</code>, <code>Duo Chat</code></summary>\n\n> The GitLab Duo AI Catalog is a centralized hub for discovering and managing AI agents that perform complex tasks like creating merge requests and answering technical questions. You can:\n> \n> - Browse agents created by the GitLab team and community.\n> - Create custom agents for your projects.\n> - Share agents across projects through GitLab Duo Chat (Agentic).\n> \n> This feature is an experiment and controlled by the `global_ai_catalog` feature flag:\n> \n> - For GitLab.com, contact support to enable it for your group.\n> - For GitLab Self-Managed, enable it in the Admin panel or use the Rails console with `Feature.enable(:global_ai_catalog)`.\n> \n> To provide feedback, see the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/570717).\n\n</details>\n\n<details><summary>[GitLab Duo Agent Platform now available on GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/configure_duo_features/#configure-access-to-the-gitlab-duo-agent-platform) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> GitLab Duo Self-Hosted customers can now access the GitLab Duo Agent Platform in experimental status. The GitLab Duo Workflow Service is now integrated into the existing self-hosted AI gateway Docker image and provides support for AI agents and workflow automation. Administrators can configure a single model for use across all agents.\n> \n> For more information about the power of GitLab Duo Agent Platform, [read the blog](https://about.gitlab.com/blog/gitlab-duo-agent-platform-public-beta/).\n\n</details>\n\n<details><summary>[Automatic Duo Code Review for groups and applications](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#automatic-reviews-from-gitlab-duo-for-groups-and-applications): <code>Code Review Workflow</code></summary>\n\n> You can now use group or application settings to enable automatic Duo Code Review for multiple projects. This can help you quickly enable Duo Code Review for all projects in a group, rather than individually enabling specific projects. \n> \n> This feature is currently available in GitLab.com, and we plan to make it available for GitLab Self-Managed in a future release. Provide feedback in [issue 517386](https://gitlab.com/gitlab-org/gitlab/-/issues/517386).\n\n</details>\n\n<details><summary>[Additional supported models for GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> GitLab Self-Managed customers with GitLab Duo Enterprise can now use additional supported models with Gitlab Duo. OpenAI GPT-5 is now supported on Azure OpenAI. Open source OpenAI GPT OSS 20B and 120B aer also now supported on vLLM and Azure OpenAI. To leave feedback on using these models with GitLab Duo Self-Hosted, see [issue 523918](https://gitlab.com/gitlab-org/gitlab/-/issues/523918).\n\n</details>\n\n<details><summary>[Duo Code Review on GitLab Duo Self-Hosted is generally available](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#gitlab-duo-in-merge-requests) <i>(self-managed only)</i>: <code>Code Suggestions</code>, <code>Self-Hosted Models</code></summary>\n\n> GitLab Duo Code Review on GitLab Duo Self-Hosted is now generally available. Use Code Review on GitLab Duo Self-Hosted to accelerate your development process without compromising on data sovereignty. When Code Review reviews your merge requests, it identifies potential bugs and suggests improvements for you to apply directly. Use Code Review to iterate on and improve your changes before you ask a human to review. This feature includes support for Mistral, Meta Llama, Anthropic Claude, and OpenAI GPT model families.\n> \n> Provide feedback on Code Review in [issue 517386](https://gitlab.com/gitlab-org/gitlab/-/issues/517386).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Issue boards now show complete epic hierarchies](https://docs.gitlab.com/user/project/issue_board/#filter-issues): <code>Portfolio Management</code></summary>\n\n> You can now view all issues from child epics when filtering by a parent epic in issue boards, bringing consistency with how the Issues page already works. This improvement helps you better track and visualize your complete epic hierarchy without missing any issues nested in child epics, making your project management workflow more efficient and reliable.\n\n</details>\n\n\n\n#### Core\n\n![11 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=11&style=flat-square \"New features added to this tier in this release\")\n![2433 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2433&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Knowledge Graph](https://gitlab-org.gitlab.io/rust/knowledge-graph/): <code>Duo Agent Platform</code>, <code>Duo Chat</code>, <code>Code Suggestions</code>, <code>Vulnerability Management</code></summary>\n\n> The GitLab Knowledge Graph provides rich code intelligence across your codebase. Developers can understand and navigate their projects with greater context, making it easier to plan changes, perform impact analysis, and work with GitLab Duo agents to accelerate development tasks.\n> \n> The GitLab Duo Agent Platform leverages the Knowledge Graph to increase the accuracy of AI agents. By mapping files and definitions across a codebase, the Knowledge Graph provides enhanced context that allows Duo agents to understand relationships across your entire local workspace—unlocking faster and more precise responses to complex questions.\n> \n> This release of the Knowledge Graph focuses on local code indexing, where the CLI turns your codebase into a live, embeddable graph database for RAG. You can install it with a simple one-line script, parse local repositories, and connect via MCP to query your workspace.\n> \n> Our vision for the Knowledge Graph project is two-fold: building a vibrant community edition that developers can run locally today, which will serve as the foundation for a future, fully integrated Knowledge Graph Service within GitLab.com and self-managed instances.\n> \n> This feature is in beta status. Provide feedback in [issue 160](https://gitlab.com/gitlab-org/rust/knowledge-graph/-/issues/160).\n\n</details>\n\n<details><summary>[Publish OpenTofu modules and providers to the GitLab container registry with CI/CD templates](https://gitlab.com/components/opentofu#publish-providers-to-the-gitlab-oci-registry): <code>Infrastructure as Code</code></summary>\n\n> The GitLab container registry now supports the media types to \n> host OpenTofu modules and providers. \n> \n> Version [3.1.0](https://gitlab.com/components/opentofu/-/releases/3.1.0) of the\n> [OpenTofu CI/CD component](https://gitlab.com/components/opentofu) supports\n> a new `provider-release` template to deploy an OpenTofu provider into the GitLab registry\n> using the OCI format. Now, you can host private OpenTofu providers directly in GitLab.\n> \n> In addition, the `module-release` template now supports a new `type` input that you can set to `oci`\n> to deploy the OpenTofu module in the GitLab registry using the OCI format.\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Configure how to view issues from the Issues page](https://docs.gitlab.com/user/project/issues/managing_issues/#open-issues-in-a-drawer): <code>Portfolio Management</code></summary>\n\n> You now have full control over your listing page view, choose which metadata appears and whether to open work items in a drawer, making it easier to focus on the information that matters most to you.\n> \n> Previously, all metadata fields were always visible, which could make scanning through work items overwhelming. Now you can customize your view by turning on or off specific fields like assignees, labels, dates, and milestones.\n> \n> With the new toggle that switches between the drawer view and full-page navigation you can quickly review details while maintaining context of your list, or open the full page when you need more screen space for detailed editing and comprehensive navigation.\n\n</details>\n\n<details><summary>[Enhanced parent filtering for epic and issue lists](https://docs.gitlab.com/user/project/issues/): <code>Portfolio Management</code></summary>\n\n> We've replaced the \"epic\" filter on the Issues and Epics pages with a more flexible \"parent\" filter. This change lets you filter by any parent work item, not just epics. You can now easily find child tasks by filtering by their parent issue, or find issues by filtering by their parent epic, giving you better visibility into your work hierarchy across both issue and epic lists.\n\n</details>\n\n<details><summary>[Text editors toolbar parity](https://docs.gitlab.com/user/rich_text_editor/): <code>Markdown</code></summary>\n\n> The GitLab plain text editor now includes the same formatting options as the rich text editor. The plain text editor toolbar has been updated with a \"More options\" menu that provides access to advanced formatting tools like:\n> \n> - Code blocks\n> - Details blocks\n> - Horizontal rules\n> - Mermaid diagrams\n> - PlantUML diagrams\n> - Table of contents\n> \n> Both editors now have consistent button placement and separators, making it easier to switch between editing modes while maintaining access to familiar formatting options.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Simulate CI/CD Pipelines against different branch](https://docs.gitlab.com/ci/pipeline_editor/#validate-cicd-configuration): <code>Pipeline Composition</code></summary>\n\n> Previously, when using the pipeline editor and validating your changes using the Validate tab, you could only run a simulation for the default branch. In this release, we've expanded this capability. You can now select any branch to simulate pipelines against. This improvement gives you greater flexibility in testing and validating your pipelines. You can ensure they perform as expected across different cases, including your stable branches or feature branches.\n\n</details>\n\n<details><summary>[GitLab Runner 18.4](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 18.4 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### Bug Fixes:\n> \n> - [FIPS runners fail to start jobs with GitLab Runner 18.2.1](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38963)\n> - [The `chown` command for runners with custom ConfigMap & security context constraints (SCC) fails after Operator v1.37.0 upgrade on OpenShift 4.16.27](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/246)\n> - [Reinstate `FF_RETRIEVE_POD_WARNING_EVENTS` in GitLab 17.x.x releases due to early removal in 17.2](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38851)\n> - [All GitLab Runner jobs fail due to filesystem permission errors](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/214)\n> - [Build jobs fail sporadically with permission denied error](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37464)\n> - [Gitlab Runner Helm chart upgrade broke the variables](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/30851)\n> - [Enabling `FF_USE_FASTZIP` does not enable fastzip](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/28989)\n> - [GitLab Runner encounters an `UnsupportedOperation` error when trying to stop Spot instances created with one-time requests](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/28865)\n> - [Long polling for GitLab Runners does not work properly in Kubernetes deployed environments](https://gitlab.com/gitlab-org/gitlab/-/issues/331460)\n> - [Allow admins to override image:kubernetes:user value](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38894)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-4-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Pipeline secret detection now excludes certain files and directories by default](https://docs.gitlab.com/user/application_security/secret_detection/pipeline/#excluded-items): <code>Secret Detection</code></summary>\n\n> Pipeline secret detection now automatically excludes [certain file types and directories](https://docs.gitlab.com/user/application_security/secret_detection/pipeline/#excluded-items) if they have a low likelihood of containing secrets, improving scan performance. These changes are released in analyzer [version 7.11.0](https://gitlab.com/gitlab-org/security-products/analyzers/secrets/-/releases/v7.11.0).\n\n</details>\n\n<details><summary>[Secret detection analyzer Git fetching improvements](https://docs.gitlab.com/user/application_security/secret_detection/pipeline/#how-the-analyzer-fetches-commits): <code>Secret Detection</code></summary>\n\n> Version [7.12.0](https://gitlab.com/gitlab-org/security-products/analyzers/secrets/-/releases/v7.12.0) of the secret detection analyzer adds significant improvements to the way Git commits are fetched. The analyzer now parses `--depth` and `--since` options passed from `SECRET_DETECTION_LOG_OPTIONS`, so you can further specify how many commits you want to scan. The analyzer also selects appropriate fetch strategies based on context, which prevents a known issue where potentially millions of commits were unnecessarily fetched, even with shallow depth configurations.\n> \n> This enhancement reduces job timeouts, decreases resource consumption, and provides more predictable scan performance. Experience faster secret detection scans, especially in large repositories, with clearer logging that matches the actual fetching behavior.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[CI/CD job tokens can authenticate Git push requests](https://docs.gitlab.com/ci/jobs/ci_job_token/#allow-git-push-requests-to-your-project-repository): <code>System Access</code></summary>\n\n> You can now allow CI/CD job tokens generated in your project to authenticate Git push requests to the project’s repository. Enable this with the Job token permissions settings in the UI, or alternatively with the [`ci_push_repository_for_job_token_allowed`](https://docs.gitlab.com/api/projects/#edit-a-project) parameter in the project's REST API endpoint.\n\n</details>\n\n<details><summary>[Enhanced controls for who can download job artifacts](https://docs.gitlab.com/ci/yaml/#artifactsaccess): <code>Artifact Security</code></summary>\n\n> In GitLab 16.11, we added the `artifacts:access` keyword enabling users to control whether artifacts can be downloaded by all users with access to the pipeline, only users with the Developer role or higher, or no user at all.\n> \n> In this release, you can now restrict who can download artifacts to only the Maintainer role or higher, giving you one more option for controlling who can download job artifacts.\n\n</details>\n\n\n","released_at":"2025-09-18T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 18.3","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.3.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.3.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.3.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.3.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.3.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.3.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":8260283,"url":"https://about.gitlab.com/releases/2025/08/21/gitlab-18-3-released/","name":"GitLab 18.3 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/08/21/gitlab-18-3-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.3.0-ee/gitlab-v18.3.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.3.0-ee/gitlab-v18.3.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.3.0-ee/gitlab-v18.3.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.3.0-ee/gitlab-v18.3.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"94282cd9b41643ecd8a82da6cf46834cd9609afe","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/94282cd9b41643ecd8a82da6cf46834cd9609afe","short_id":"94282cd9","trailers":[],"created_at":"2025-08-20T06:39:06.000+00:00","parent_ids":["5ca9efb496b3b87dcc02bd3075630063e0d2c727"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-08-20T06:39:06.000+00:00","committed_date":"2025-08-20T06:39:06.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.3.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.3.0-ee","evidences":[],"created_at":"2025-08-21T14:40:39.169Z","milestones":[{"id":5948912,"iid":121,"state":"active","title":"18.3","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/121","due_date":"2025-08-15","group_id":9970,"created_at":"2025-03-26T00:16:55.171Z","start_date":"2025-07-12","updated_at":"2025-11-04T07:09:22.816Z","description":"| Milestone | Quarter    | Start Date - Code Merging | End Date - Code Merging | Release Date  |\r\n|-----------|------------|---------------------------|-------------------------|---------------|\r\n| 18.3      | FY26-Q3-M1 | 2025-08-07                | 2025-08-08              | 2025-08-14    |","issue_stats":{"total":2596,"closed":2537}}],"commit_path":"/gitlab-org/gitlab/-/commit/94282cd9b41643ecd8a82da6cf46834cd9609afe","description":"![36 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=36&style=for-the-badge \"New features added in this release\")\n![3968 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3968&style=for-the-badge \"Total features\")\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Enterprise user enhancements](https://docs.gitlab.com/user/enterprise_user/) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> GitLab 18.3 introduces enterprise user enhancements that give organizations greater control over user privacy and lifecycle management.\n> \n> Group owners can now delete enterprise users in their namespace with the Users API. This destructive action unlinks user contributions and associates them with a system-wide Ghost user. These option is particularly valuable for cleaning up users erroneously created with automated SCIM imports or managing federated environments where usernames and emails need to be repurposed.\n> \n> Additionally, organizations can now hide enterprise user emails on their user profiles, providing broader email privacy enforcement for all enterprise users.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![11 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=11&style=flat-square \"New features added to this tier in this release\")\n![672 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=672&style=flat-square \"Total features in this tier\")\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Improved file location information for Dependency Scanning analyzer](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/#customizing-behavior-with-the-cicd-template): <code>Software Composition Analysis</code></summary>\n\n> Being able to trace a dependency back to its source is important, especially for\n> vulnerability remediation. Previously, the Dependency Scanning analyzer sometimes\n> linked to job artifacts which were deleted when they expired. This made it\n> difficult to trace back to the source of the dependency.\n> The Dependency Scanning analyzer can now link to the project file that introduced\n> the dependency. With this option enabled, links in the dependency list and\n> vulnerability report are reliable.\n> Users may enable this functionality by setting `DS_FF_LINK_COMPONENTS_TO_GIT_FILES=true`\n> for the Dependency Scanning job.\n\n</details>\n\n<details><summary>[User-defined source for license information](https://docs.gitlab.com/user/compliance/license_scanning_of_cyclonedx_files/#use-cyclonedx-report-as-a-source-of-license-information): <code>Software Composition Analysis</code></summary>\n\n> Users may now choose which source of license information has priority -\n> the GitLab License database or a CycloneDX SBOM report. This provides users \n> with more flexibility in sourcing license information for their open-source dependencies.\n> Users who wish to define the source of license information may\n> use the [Security Configuration UI](https://docs.gitlab.com/user/application_security/detect/security_configuration/#with-the-ui)\n> to make a selection. By default we use the SBOM data as a source\n> for license information.\n\n</details>\n\n<details><summary>[Concise DAST job output](https://docs.gitlab.com/user/application_security/dast/browser/troubleshooting/#what-is-dast-doing): <code>DAST</code></summary>\n\n> GitLab 18.3 introduces several improvements to the dynamic analysis security testing job output.\n> \n> This improved job output provides clear, structured information that\n> helps you understand scan results and troubleshoot failures.\n> \n> Each section of the job output is concise and intuitive, with a link to our troubleshooting documentation at the bottom of the output.\n> To override concise job output, set `DAST_FF_DIAGNOSTIC_JOB_OUTPUT: \"true\"` in your DAST configuration.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Surfacing violations of compliance framework controls (Beta)](https://docs.gitlab.com/user/compliance/compliance_center/compliance_violations_report/): <code>Compliance Management</code></summary>\n\n> Previously, the compliance violations report provided a high-level view of merge request activity for all projects\n> in a group. The available compliance violations related to separation of duty concerns, such as:\n> \n> - Detecting when an author of a merge request approved their own merge request.\n> - When a merge request was merged with fewer than two approvals.\n> \n> However, user feedback revealed that users found violation classifications confusing and difficult to understand, due to not aligning well with actual compliance use cases.\n> \n> GitLab 18.3 significantly enhances the violations report by expanding beyond separation of duty to include violations of compliance controls and requirements in compliance frameworks. \n> Each custom compliance framework control has an associated audit event that provides detailed context about violations: who committed the violation, when it occurred, and how to fix it. \n> This includes the user's name and IP address, plus actionable remediation suggestions. \n> \n> These improvements give compliance managers more powerful and relevant context to ensure their organization adheres to specific compliance frameworks, \n> while providing reassurance that non-compliance can be effectively identified, rectified, and prevented.\n\n</details>\n\n<details><summary>[Custom admin role](https://docs.gitlab.com/user/custom_roles/) <i>(self-managed only)</i>: <code>Permissions</code></summary>\n\n> The custom admin role brings granular permissions to the Admin area for GitLab Self-Managed and GitLab Dedicated instances. Instead of granting full access, administrators can now create specialized roles that access only the specific functions needed by users. This feature helps organizations implement the principle of least privilege for administrative functions, reduce security risks from overprivileged access, and improve operational efficiency.\n> \n> If you have questions, want to share your implementation experience, or would like to engage directly with our team about potential improvements, see the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/509376).\n\n</details>\n\n<details><summary>[Instance level compliance and policy management (Beta)](https://docs.gitlab.com/user/compliance/compliance_frameworks/centralized_compliance_frameworks/) <i>(self-managed only)</i>: <code>Compliance Management</code>, <code>Security Policy Management</code></summary>\n\n> Enterprise users want to manage their compliance frameworks and security policies across multiple top-level groups.\n> This is often the case when all groups in an instance:\n> \n> - Share the same compliance frameworks. For example, when all projects in a group must adhere to the ISO 27001 standard.\n> - Enforce similar policies. For example, when all groups share the same pipeline execution policy.\n> \n> With GitLab 18.3, compliance and security policy management is now available in beta for GitLab Self-Managed\n> instances. You can now create, configure, and allocate compliance frameworks and\n> security policies from a single top-level group and enforce them across all of the other top-level groups across your\n> GitLab Self-Managed instance.\n> \n> When you use a compliance and security policy top-level group, you have a single source of truth\n> where you can manage and edit your compliance frameworks and security policies. \n> Group admins can then apply these compliance frameworks and security policies to all the projects within those groups.\n> \n> When you manage key frameworks and policies from the chosen top-level compliance and security policy group, \n> it's easier to manage and enforce key compliance and security needs across your GitLab Self-Managed instance.\n> However, groups still retain the ability to create their own compliance frameworks and security policies to address\n> specific situations or workflows that can arise in those groups.\n> \n> This feature is for GitLab Self-Managed customers because GitLab.com and GitLab Dedicated customers are already\n> able to manage policies centrally within a single top-level group or namespace.\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Grant pipeline execution policies access to CI/CD configurations via API](https://docs.gitlab.com/api/projects/#edit-a-project): <code>Security Policy Management</code></summary>\n\n> Use the Projects REST API to programmatically enable or disable the **Pipeline execution policy** setting in security policy projects with the new `spp_repository_pipeline_access` field. Previously, this setting could only be managed through the GitLab UI. With this enhancement, you can now:\n>   \n> - `GET` the current **Pipeline execution policy** status.\n> - `PUT` to enable or disable the setting programmatically.\n>   \n> This improvement enables better automation and integration workflows for teams managing security policies at scale.\n\n</details>\n\n<details><summary>[Group by OWASP 2021 in the vulnerability report](https://docs.gitlab.com/user/application_security/vulnerability_report/#advanced-vulnerability-management): <code>Vulnerability Management</code></summary>\n\n> In the vulnerability report for projects and groups, you can now group the vulnerabilities by their OWASP Top 10 2021 category. Available for GitLab.com and GitLab Dedicated instances only.\n\n</details>\n\n<details><summary>[Scan execution policy templates](https://docs.gitlab.com/user/application_security/policies/scan_execution_policies/#scan-execution-policy-editor): <code>Security Policy Management</code></summary>\n\n> Scan execution policy templates help you quickly create scan execution policies based on common use cases. Choose from three\n> templates:\n>   \n>   * Merge request security\n>   * Scheduled scanning\n>   * Release security\n>   \n> Once you select a template, choose which GitLab security scans to enable with the template to get up and running immediately. If you have more advanced use cases, you can switch to the custom configuration to extend the policy with specific branch patterns, pipeline sources, and more.\n\n</details>\n\n<details><summary>[Security policy audit events](https://docs.gitlab.com/ee/user/compliance/audit_event_streaming/): <code>Security Policy Management</code></summary>\n\n> GitLab Ultimate now provides comprehensive audit events for security policy management, with events organized and centralized within each security policy project.\n> \n> Security teams can now:\n> \n> - Track all policy modifications with detailed metadata.\n> - Monitor enforcement failures, including scan and pipeline execution failures.\n> - Monitor skipped scan execution and pipeline execution pipelines.\n> - Detect policy violations within each project, including MRs merged with policy violations.\n> - Receive alerts when limits are exceeded.\n> - Detect policy configuration errors.\n> - Use streaming-only options for high-volume scenarios.\n> \n> New audit events include:\n>   \n>   - [security_policy_create](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_create.yml)\n>   - [security_policy_delete](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_delete.yml)\n>   - [security_policy_update](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_update.yml)\n>   - [security_policy_merge_request_merged_with_policy_violations](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_merge_request_merged_with_policy_violations.yml)\n>   - [security_policy_yaml_invalidated](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_yaml_invalidated.yml)\n>   - [security_policies_limit_exceeded](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_yaml_invalidated.yml)\n>   - [security_policy_violations_detected](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_violations_detected.yml) (streaming only)\n>   - [security_policy_pipeline_failed](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_pipeline_failed.yml) (streaming only)\n>   - [security_policy_pipeline_skipped](https://gitlab.com/gitlab-org/gitlab/-/blob/master/ee/config/audit_events/types/security_policy_pipeline_skipped.yml) (streaming only)\n>   - [merge_request_branch_bypassed_by_security_policy](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/audit_events/types/merge_request_branch_bypassed_by_security_policy.yml)\n> \n> This enhancement strengthens your security posture by ensuring you have access to policy changes, configuration errors, and enforcement gaps, enabling faster incident response and thorough auditing capabilities.\n\n</details>\n\n<details><summary>[Service account and access token exceptions for approval policies](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#access-token-and-service-account-exceptions): <code>Security Policy Management</code></summary>\n\n> The new **Service Account & Access Token Exceptions** feature allows you to designate service accounts and access tokens that can bypass merge request approval policies when necessary. This eliminates friction for known automations, while preserving security controls.\n> \n> **Key capabilities include:**\n> \n> - Automated workflow support: Configure specific service accounts, bot users, group access tokens, and project access tokens to bypass approval requirements for CI/CD pipelines, pull mirroring, and automated version updates. Service accounts can push directly to protected branches using approved tokens while maintaining restrictions for human users.\n> - Emergency access and auditing: Enable break-glass scenarios for critical incidents with comprehensive audit trails. All bypass events generate detailed audit logs with context and reasoning, supporting compliance requirements while allowing rapid response during outages or security fixes.\n> - GitOps integration: Unblock common automation challenges including repository mirroring, external CI systems (Jenkins, CloudBees), automated changelog generation, and GitFlow release processes. Service accounts receive the minimum required permissions with token-based access scoped to specific projects and branches.\n> \n> This enhancement maintains strict security policies with flexibility for modern DevOps automation needs, eliminating custom workarounds while preserving governance controls. \n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![11 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=11&style=flat-square \"New features added to this tier in this release\")\n![755 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=755&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Code Review available on GitLab Duo Self-Hosted (Beta)](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#gitlab-duo-in-merge-requests) <i>(self-managed only)</i>: <code>Code Suggestions</code>, <code>Self-Hosted Models</code></summary>\n\n> You can now use GitLab Duo Code Review on GitLab Duo Self-Hosted. This feature is in beta on GitLab Duo Self-Hosted, with support for Mistral, Meta Llama, Anthropic Claude, and OpenAI GPT model families.\n> \n> Use Code Review on GitLab Duo Self-Hosted to accelerate your development process without compromising on data sovereignty. When Code Review reviews your merge requests, it identifies potential bugs and suggests improvements for you to apply directly. Use Code Review to iterate on and improve your changes before you ask a human to review.\n> \n> Provide feedback on Code Review in [issue 517386](https://gitlab.com/gitlab-org/gitlab/-/issues/517386).\n\n</details>\n\n<details><summary>[Customize instructions for GitLab Duo Code Review](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#customize-instructions-for-gitlab-duo-code-review): <code>Code Review Workflow</code></summary>\n\n> Enforce consistent code review standards across your projects with custom instructions for GitLab Duo Code Review. Define specific review criteria for different file types using glob patterns, ensuring language-specific conventions are applied where they matter most.\n> \n> With custom instructions, you can:\n> \n> - Describe your team's code review standards\n> - Use glob patterns to define file-specific instructions\n> - Observe clearly labeled feedback that references your custom instructions\n> \n> Simply create a [.gitlab/duo/mr-review-instructions.yaml file](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#customize-instructions-for-gitlab-duo-code-review) in your repository with your custom instructions. GitLab Duo will automatically incorporate these instructions into its reviews, citing the specific instruction group when providing feedback.\n> \n> Help us improve this feature by sharing your thoughts and suggestions in our [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/517386).\n\n</details>\n\n<details><summary>[Bring your own models to GitLab Duo Self-Hosted (Beta)](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#bring-your-own-compatible-model) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> GitLab Duo Self-Hosted now enables you to bring your own model to use with GitLab Duo features. This feature is in beta, and available to all GitLab Self-Managed customers with GitLab Duo Enterprise. Instance administrators can configure any compatible model for use with a supported GitLab Duo feature.\n> \n> This feature makes GitLab Duo Self-Hosted more flexible, but GitLab cannot guarantee that all GitLab Duo features will work with every compatible model. Instance administrators are responsible for validating the compatibility and performance of their chosen model. GitLab does not provide technical support for issues specific to your chosen model or platform.\n\n</details>\n\n<details><summary>[Hybrid model selection on GitLab Duo Self-Hosted (Beta)](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#decide-on-your-configuration-type) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now use a mix of GitLab AI vendor models and privately configured self-hosted models on GitLab Duo Self-Hosted. This feature is in beta and available on GitLab Self-Managed to all GitLab Duo Enterprise customers.\n> \n> With hybrid models on GitLab Duo Self-Hosted, GitLab Self-Managed instance administrators can now choose between a self-hosted model and self-hosted AI gateway, or a GitLab AI vendor model and the GitLab-hosted AI gateway, on a feature-by-feature basis. This enables administrators to balance their security and scalability requirements. To provide feedback on hybrid model selection, see [issue 561048](https://gitlab.com/gitlab-org/gitlab/-/issues/561048).\n\n</details>\n\n<details><summary>[More models available for use with GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> GitLab Self-Managed customers with GitLab Duo Enterprise can now use Anthropic Claude 4 with GitLab Duo Self-Hosted. Claude 4 is supported on AWS Bedrock. Open source OpenAI GPT OSS 20B and 120B have been added as experimental models, and are available on vLLM, Azure OpenAI, and AWS Bedrock. To leave feedback on using these models with GitLab Duo Self-Hosted, see [issue 523918](https://gitlab.com/gitlab-org/gitlab/-/issues/523918).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[OAuth apps support SSO authentication](https://docs.gitlab.com/api/oauth2/#authorization-code-flow): <code>Pages</code>, <code>System Access</code></summary>\n\n> OAuth applications can now seamlessly integrate with your organization's single sign-on requirements. Previously, users had to authenticate twice: first with GitLab, then with SSO, creating unnecessary friction and complexity.\n> \n> Now, OAuth applications can specify a parameter in their authorization requests to automatically trigger SSO authentication when required. This provides:\n> \n> - A unified authentication experience for users\n> - Automatic compliance with your organization's SSO policies  \n> - Consistent security across all GitLab integrations\n> - Simple implementation for developers with just a parameter addition\n> \n> Your OAuth integrations now respect SSO policies automatically, eliminating confusing authentication workflows while maintaining security.\n\n</details>\n\n<details><summary>[Bulk edit epic assignees, milestones, and more](https://docs.gitlab.com/user/group/epics/manage_epics/#bulk-edit-epics): <code>Portfolio Management</code></summary>\n\n> You can now bulk edit more epic attributes in a group. In addition to labels, you can now update assignee, health status, subscription, confidentiality, and milestone for multiple epics at once. \n> \n> This enhancement makes it faster to manage large numbers of epics by letting you apply the same changes across multiple epics simultaneously.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Faster workspace startup with shallow cloning](https://docs.gitlab.com/user/workspace/#shallow-cloning): <code>Workspaces</code></summary>\n\n> Workspaces now use shallow cloning to reduce startup time. During initialization, GitLab downloads only the latest commit history instead of the full Git history. After the workspace starts, Git converts the shallow clone to a full clone in the background.\n> \n> This feature applies automatically to all new workspaces, no configuration is required, and it doesn't affect your development workflow.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[AWS Secrets Manager support for GitLab CI/CD](https://docs.gitlab.com/ci/secrets/aws_secrets_manager/): <code>Secrets Management</code></summary>\n\n> Secrets stored in AWS Secrets Manager can now be easily retrieved and used in CI/CD jobs. Our new integration with AWS simplifies the process of interacting with AWS Secrets Manager through GitLab CI/CD, helping our AWS customers streamline build and deploy processes!\n> \n> Thank you to [Markus Siebert](https://gitlab.com/m-s-db) and [Henry Sachs](https://gitlab.com/DerAstronaut) who helped build this feature through [GitLab Co-Create program](https://about.gitlab.com/community/co-create/)!\n\n</details>\n\n<details><summary>[SAML SSO support for session timeout attribute](https://docs.gitlab.com/user/group/saml_sso/): <code>System Access</code></summary>\n\n> GitLab now automatically detects and respects the `SessionNotOnOrAfter` attribute in SAML assertions from your Identity Provider (IdP). When this attribute is present, GitLab sets user sessions to expire at the time specified by your IdP, ensuring consistent session management across your organization. This feature requires no configuration changes - if your IdP provides the attribute, GitLab automatically honors the specified expiration time.\n\n</details>\n\n<details><summary>[Additional service account email configuration options](https://docs.gitlab.com/user/profile/service_accounts/): <code>System Access</code></summary>\n\n> By default, GitLab automatically generates an email address for new service accounts. Organizations can now assign a custom email address for service accounts through the UI. Previously, custom email configuration was only possible through the Service Accounts API. This change allows organizations to better route notifications to designated email addresses.\n\n</details>\n\n\n\n#### Core\n\n![13 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=13&style=flat-square \"New features added to this tier in this release\")\n![2422 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2422&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Duo Agent Platform in Visual Studio (Beta)](https://docs.gitlab.com/user/duo_agent_platform/): <code>Editor Extensions</code></summary>\n\n> We are excited to announce the public beta release of the Duo Agent Platform for Visual Studio! With this release, Visual Studio users can now access Duo Agent Platform's advanced AI-powered capabilities directly within their IDE.\n> \n> The Duo Agent Platform brings two powerful features to your workflow:\n> \n> - **Agentic chat**: Quickly accomplish conversational tasks such as creating and editing files, searching your codebase with pattern matching and grep, and getting instant answers about your code—all without leaving Visual Studio.\n> - **Agent flows**: Tackle larger, more complex tasks with comprehensive planning and implementation support. Agent flows help you turn high-level ideas into architecture and code, leveraging GitLab resources like issues, merge requests, commits, CI/CD pipelines, and security vulnerabilities.\n> \n> Both features offer intelligent search across documentation, code patterns, and project information, empowering you to move seamlessly from quick edits to in-depth project analysis.\n> \n> Try the Duo Agent Platform beta in Visual Studio today and experience a new level of productivity and AI assistance in your development workflow.\n\n</details>\n\n<details><summary>[New CLI commands for GitLab-managed OpenTofu and Terraform states](https://docs.gitlab.com/user/infrastructure/iac/terraform_state): <code>GitLab CLI</code>, <code>Infrastructure as Code</code></summary>\n\n> The GitLab CLI (`glab`) now includes a new top-level command, `opentofu`. \n> The `opentofu` command is aliased to `terraform` and `tf` commands to assist with GitLab-managed     \n> OpenTofu and Terraform states.\n> \n> The following commands have been added:\n> \n> - `glab opentofu init`: Initialize the state backend locally.\n> - `glab opentofu state list`: List all states in a project.\n> - `glab opentofu state download`: Download the latest state or a specific version.\n> - `glab opentofu state delete`: Delete the entire state or a specific version.\n> - `glab opentofu state lock`: Lock a state.\n> - `glab opentofu state unlock`: Unlock a state\n> \n> To manage state with the `opentofu` command, you must have at least `glab` 1.66 or later.\n\n</details>\n\n<details><summary>[Kubernetes 1.33 support](https://docs.gitlab.com/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features): <code>Deployment Management</code></summary>\n\n> GitLab now fully supports Kubernetes version 1.33. If you deploy your apps to Kubernetes, you can upgrade your connected clusters to the most recent version and take advantage of all its features.\n> \n> For more information, see the [Supported Kubernetes versions for GitLab features](https://docs.gitlab.com/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features).\n\n</details>\n\n<details><summary>[New navigation experience for groups in **Your work**](https://docs.gitlab.com/user/group/#view-groups): <code>Groups & Projects</code></summary>\n\n> We're excited to announce significant improvements to the group overview in **Your work**, designed to streamline how you discover and access your groups.\n> The new tabbed interface features a **Member** tab, which provides a comprehensive view of accessible groups, and an **Inactive** tab to track groups pending deletion.\n> We've also streamlined group management by adding **Edit** and **Delete** actions to the list view for users with appropriate permissions.\n> We hope that these improvements make it easier to find and manage the groups that matter most to you.\n> \n> We value your feedback on this update! Join the discussion in [epic 18401](https://gitlab.com/groups/gitlab-org/-/epics/18401) to share your experience with the new navigation system.\n\n</details>\n\n<details><summary>[Enhanced **Admin** area projects list](https://docs.gitlab.com/administration/admin_area/#administering-projects) <i>(self-managed only)</i>: <code>Groups & Projects</code></summary>\n\n> We've upgraded the **Admin** area projects list to provide a more consistent experience for GitLab administrators:\n> \n> - Delayed deletion protection: Project deletions now follow the same safe deletion flow used throughout GitLab, preventing accidental data loss.\n> - Faster interactions: Filter, sort, and paginate projects without page reloads for a more responsive experience.\n> - Consistent interface: The projects list now matches the look and behavior of other project lists across GitLab.\n> \n> This update brings the administrator experience in line with GitLab design standards, and adds important safety features to protect your data. Future enhancements to project management will automatically appear in all project lists throughout the platform.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Embedded views (powered by GLQL)](https://docs.gitlab.com/user/glql/#embedded-views): <code>Markdown</code>, <code>Wiki</code>, <code>Team Planning</code></summary>\n\n> This release introduces embedded views, powered by GLQL, to general availability. Create and embed dynamic, queryable views of GitLab data directly where your work lives: in wiki pages, epic descriptions, issue comments, and merge requests.\n> \n> Embedded views provide a stable foundation for teams to track work progress without navigating between multiple locations. Query issues, merge requests, epics, and other work items using familiar syntax, then display the results as tables or lists with customizable fields and filtering.\n> \n> Embedded views transform static documentation into living dashboards that stay current with your project data, helping teams maintain context and improve collaboration across their workflows.\n> \n> We welcome your feedback as we continue to enhance embedded views. Please share your thoughts and suggestions in our [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/509792).\n\n</details>\n\n<details><summary>[Control unique domains default for GitLab Pages sites](https://docs.gitlab.com/administration/pages/#disable-unique-domains-by-default): <code>Pages</code></summary>\n\n> Administrators can now set the default behavior for unique domains on new GitLab Pages sites. By default, new Pages sites use unique domain URLs (like `my-project-1a2b3c.example.com`) to prevent cookie sharing between sites. \n> \n>  With this new setting for the instance, you can set new Pages sites to use path-based URLs (like `my-namespace.example.com/my-project`) by default. This helps organizations align GitLab Pages behavior with their workflows and security requirements.\n> \n>  Users can still override this setting for individual projects, and existing Pages sites remain unaffected.\n\n</details>\n\n<details><summary>[Enhancements to wiki functionality](https://docs.gitlab.com/user/discussions/): <code>Wiki</code></summary>\n\n> This release introduces an enhanced wiki experience with three key improvements: you can now subscribe to wiki pages, view wiki comments while editing a page, and sort wiki page comments.\n> \n> These enhancements help teams collaborate more effectively on documentation by letting you:\n> \n> - Discuss content directly in context.\n> - Suggest improvements and corrections.  \n> - Keep documentation accurate and up-to-date.\n> - Share knowledge and expertise.\n> \n> With these updates, your GitLab wiki becomes living documentation that evolves alongside your projects through direct feedback and discussion.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Migration by direct transfer](https://docs.gitlab.com/ee/user/group/import/index.html): <code>Importers</code></summary>\n\n> Migration by direct transfer is now generally available. To migrate GitLab groups and projects between GitLab instances by direct transfer, you can use the GitLab UI or the [REST API](https://docs.gitlab.com/ee/api/bulk_imports.html).\n> \n> Compared to [migration by uploading an export file](https://docs.gitlab.com/ee/user/project/settings/import_export.html#migrate-projects-by-uploading-an-export-file), direct transfer:\n> \n> - Works more reliably with large projects.\n> - Supports migrations with a larger version gap between the source and destination instances.\n> - Offers better insights into the migration process and results.\n> \n> On GitLab.com, migration by direct transfer is enabled by default. On GitLab Self-Managed and GitLab Dedicated, an administrator must [enable the feature](https://docs.gitlab.com/ee/administration/settings/import_and_export_settings.html#enable-migration-of-groups-and-projects-by-direct-transfer).\n\n</details>\n\n<details><summary>[New Web IDE source control operations](https://docs.gitlab.com/user/project/web_ide/#use-source-control): <code>Web IDE</code></summary>\n\n> We're excited to announce additional source control functionalities in the Web IDE. You can manage your Git workflow more efficiently without leaving your browser. In the **Source Control** panel, you can now:\n> \n> - Create and delete branches.\n> - Create a branch from any existing branch as your base.\n> - Amend your last commit for quick fixes.\n> - Force push changes directly from the interface.\n> \n> These enhancements bring Git operations right to your fingertips. For information about the functionalities available to you, see [Use source control](https://docs.gitlab.com/user/project/web_ide/#use-source-control).\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[GitLab Runner 18.3](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 18.3 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### Bug Fixes:\n> \n> - [In GitLab 18.2.0, runners are unable to pull the job cache by using the subdirectory file as cache key](https://gitlab.com/gitlab-org/gitlab/-/issues/556464)\n> - [Docker executor fails to start jobs intermittently and returns an `incorrect username or password` error message.](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38707)\n> - [Inconsistency in `*_get_sources` hooks usage between `none` and `empty` Git strategies](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38703)\n> - [Operator deployed with non-OLM manifests assumes wrong default images](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/228)\n> - [Operator creates ConfigMap with the wrong name if CR has the `app.kubernetes.io/instance` label](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/183)\n> - [Operator 1.10.0 on OpenShift 4.9 fails to create runner ConfigMap and start pod in the `gitlab-runner` namespace](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/138)\n> \n> #### What's new:\n> \n> - [GitLab Runner Operator now supports runner manager pod annotation](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/245)\n> - [GitLab Runner Operator now supports OpenShift 4.19](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/253)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-3-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Fine-grained permissions for CI/CD job tokens](https://docs.gitlab.com/ci/jobs/fine_grained_permissions/): <code>Permissions</code></summary>\n\n> Pipeline security just got more flexible. Job tokens are ephemeral credentials that provide access to resources in pipelines. Until now, these tokens inherited full permissions from the user, often resulting in unnecessarily broad access capabilities.\n> \n> With our new fine-grained permissions for job tokens feature, you can now precisely control which specific resources a job token can access within your projects. This allows you to implement the principle of least privilege in your CI/CD workflows, granting only the minimal access necessary for jobs to complete their tasks when accessing your projects with the CI/CD job token.\n> \n> We're actively working to add [additional fine-grained permissions](https://gitlab.com/groups/gitlab-org/-/epics/6310) to reduce reliance on long-lived tokens in pipelines.\n\n</details>\n\n<details><summary>[SSH key security warnings](https://docs.gitlab.com/user/ssh/): <code>System Access</code></summary>\n\n> GitLab now displays a security warning in the UI when a user uploads a weak SSH key. This warning appears for older key types or keys with insufficient bit length (less than 2048 bits). This change helps educate users about SSH key security best practices and encourages the use of stronger cryptographic keys.\n\n</details>\n\n\n","released_at":"2025-08-21T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 18.2","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.2.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.2.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.2.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.2.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.2.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.2.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":7987825,"url":"https://about.gitlab.com/releases/2025/07/17/gitlab-18-2-released/","name":"GitLab 18.2 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/07/17/gitlab-18-2-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.2.0-ee/gitlab-v18.2.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.2.0-ee/gitlab-v18.2.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.2.0-ee/gitlab-v18.2.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.2.0-ee/gitlab-v18.2.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"64403a0daee4413eb45b939590f37c351b8e72bf","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/64403a0daee4413eb45b939590f37c351b8e72bf","short_id":"64403a0d","trailers":[],"created_at":"2025-07-16T11:36:45.000+00:00","parent_ids":["56fb6320693b15f5ccc1f5a906d333093844c756"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-07-16T11:36:45.000+00:00","committed_date":"2025-07-16T11:36:45.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.2.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.2.0-ee","evidences":[],"created_at":"2025-07-17T20:41:42.109Z","milestones":[{"id":5948889,"iid":120,"state":"closed","title":"18.2","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/120","due_date":"2025-07-11","group_id":9970,"created_at":"2025-03-25T23:30:48.262Z","start_date":"2025-06-14","updated_at":"2025-10-22T16:30:54.030Z","description":"| Milestone | Quarter    | Start Date - Code Merging | End Date - Code Merging | Release Date  |\r\n|-----------|------------|---------------------------|-------------------------|---------------|\r\n| 18.2      | FY26-Q2-M3 | 2025-07-10                | 2025-07-11              | 2025-07-17    |","issue_stats":{"total":2127,"closed":2068}}],"commit_path":"/gitlab-org/gitlab/-/commit/64403a0daee4413eb45b939590f37c351b8e72bf","description":"![35 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=35&style=for-the-badge \"New features added in this release\")\n![3814 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3814&style=for-the-badge \"Total features\")\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![18 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=18&style=flat-square \"New features added to this tier in this release\")\n![661 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=661&style=flat-square \"Total features in this tier\")\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Improve security with immutable container tags (Beta)](https://docs.gitlab.com/user/packages/container_registry/immutable_container_tags/): <code>Container Registry</code></summary>\n\n> Container registries are critical infrastructure for modern DevSecOps teams.\n> However, even with protected container tags, organizations still face a challenge:\n> After a tag is created, users with sufficient permissions can alter it.\n> This creates risks for teams that rely on specific tagged versions of container images for production stability.\n> Any modification—even by authorized users—can introduce unintended changes or compromise deployment integrity.\n> \n> With immutable container tags, you can protect container images from unintended changes.\n> After a tag is created that matches an immutable rule, no one can modify the container image.\n> You can now:\n> \n> - Create up to 5 total protection rules per project (combining both protected and immutable rules) using RE2 regex patterns.\n> - Protect critical tags like latest, semantic versions (for example, v1.0.0), or release candidates from any modification.\n> - Ensure immutable tags are automatically excluded from cleanup policies.\n> \n> Immutable container tags require the next-generation container registry, which is enabled by default on GitLab.com.\n> For GitLab Self-Managed instances, you must enable the [metadata database](https://docs.gitlab.com/administration/packages/container_registry_metadata_database/)\n> to use immutable container tags.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Container Scanning support for multi-architecture container images](https://docs.gitlab.com/user/application_security/container_scanning/#available-cicd-variables): <code>Software Composition Analysis</code></summary>\n\n> Container Scanning now ships with Linux Arm64 container image variants. When running\n> on a Linux Arm64 runner, the analyzer will no longer require emulation, resulting in a faster\n> analysis. In addition, you can now scan multi-architecture images by\n> setting the `TRIVY_PLATFORM` environment variable to the platform you want to scan.\n\n</details>\n\n<details><summary>[Static reachability support for JavaScript](https://docs.gitlab.com/user/application_security/dependency_scanning/static_reachability/#supported-languages-and-package-managers): <code>Software Composition Analysis</code></summary>\n\n> Composition Analysis now supports Static Reachability for JavaScript libraries.\n> You can use the data produced by static reachability as part of your triage and remediation\n> decision making. Static reachability data can also be used with EPSS, KEV, and CVSS scores\n> to provide a more focused view of your vulnerabilities.\n\n</details>\n\n<details><summary>[Improved support for verifying successful DAST login](https://docs.gitlab.com/user/application_security/dast/browser/configuration/variables/#authentication): <code>DAST</code></summary>\n\n> Previously, the `DAST_AUTH_SUCCESS_IF_AT_URL` variable required an exact URL match to verify successful authentication. This worked well for applications with static landing pages, but posed difficulties for applications where post-login URLs contain dynamic elements for each login.\n> \n> Now, you can use wildcard patterns in the `DAST_AUTH_SUCCESS_IF_AT_URL` variable to match dynamic URL patterns. This enhancement provides the flexibility needed to verify authentication success even when the exact URL changes between sessions.\n\n</details>\n\n<details><summary>[DAST support for time-based one-time password MFA](https://docs.gitlab.com/user/application_security/dast/browser/configuration/authentication/): <code>DAST</code></summary>\n\n> Dynamic Analysis now supports time-based one-time password (TOTP) multi-factor authentication.\n> \n> You can run DAST scans on projects with TOTP MFA enabled to ensure comprehensive security testing.\n> This enhancement delivers more accurate scan results by testing applications in configurations that mirror\n> production environments where MFA is deployed.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[New group overview compliance dashboard](https://docs.gitlab.com/user/compliance/compliance_center/compliance_overview_dashboard/): <code>Compliance Management</code></summary>\n\n> The compliance center is the central location for compliance teams to manage their compliance status\n> reporting, violations reporting, and compliance frameworks for their group.\n> \n> The new group overview compliance dashboard gives compliance managers an aggregated view on compliance\n> information across all of the projects in a group. This first iteration displays the following information:\n> \n> - % of projects covered by a certain compliance framework.\n> - % of failed requirements for all projects in a group.\n> - % of failed controls for all projects in a group.\n> - The specific frameworks that require 'attention'.\n> \n> With this new group overview, compliance managers now have a single unified view that\n> provides them with a clear high-level picture, of their compliance posture.\n\n</details>\n\n<details><summary>[Deactivate streaming to an audit streaming destination](https://docs.gitlab.com/administration/compliance/audit_event_streaming/#activate-or-deactivate-streaming-destinations): <code>Audit Events</code></summary>\n\n> Previously, there was no way to temporarily deactivate streaming to an audit streaming destination. You might\n> want to do this for a number of reasons, including to troubleshoot stream connectivity or to make changes to\n> configuration without deleting the configuration and starting again.\n> \n> With GitLab 18.2, we've added the ability to toggle an audit stream as active or inactive. When the audit stream\n> is inactive, audit events are no longer streamed to the chosen destination. When reactivated, audit events are\n> again streamed to the chosen destination.\n\n</details>\n\n<details><summary>[Filter functionality for all audit streaming destinations](https://docs.gitlab.com/user/compliance/audit_event_streaming/): <code>Compliance Management</code></summary>\n\n> Previously, certain audit streaming destinations did not have all of the available filtering capability.\n> \n> We now support filter functionality for all destinations via the UI, including the ability to filter:\n> \n> - By audit event type.\n> - By groups or projects.\n> \n> This change also means that audit event destinations such as AWS and GCP can now filter through audit events.\n\n</details>\n\n<details><summary>[Credentials inventory now includes service account tokens](https://docs.gitlab.com/administration/credentials_inventory/): <code>System Access</code></summary>\n\n> GitLab now supports service account tokens in the credentials inventory, giving you better visibility and control over the various authentication methods used across your software supply chain. The credentials inventory provides a complete picture of credentials used across your organization.\n\n</details>\n\n<details><summary>[Custom admin role in beta](https://docs.gitlab.com/user/custom_roles/) <i>(self-managed only)</i>: <code>Permissions</code></summary>\n\n> The custom admin role brings granular permissions to the Admin Area for GitLab Self-Managed and GitLab Dedicated instances. Instead of granting full access, administrators can now create specialized roles that access only the specific functions needed by users. This feature helps organizations implement the principle of least privilege for administrative functions, reduce security risks from overprivileged access, and improve operational efficiency.\n> \n> We're actively seeking community feedback on this feature. If you have questions, want to share your implementation experience, or would like to engage directly with our team about potential improvements, please visit our [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/509376).\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Download a PDF export of security reports](https://docs.gitlab.com/user/application_security/security_dashboard/#exporting): <code>Vulnerability Management</code></summary>\n\n> To communicate the state and progress of your vulnerability management efforts to other stakeholders,\n> you can now export the security dashboard for each project or group as a PDF document.\n\n</details>\n\n<details><summary>[Centralized Security Policy Management (Beta)](https://docs.gitlab.com/user/application_security/policies/centralized_security_policy_management/) <i>(self-managed only)</i>: <code>Security Policy Management</code></summary>\n\n> In large organizations where compliance is critical, teams often struggle with fragmented policies\n> scattered across multiple projects and groups. Without centralized visibility, ensuring consistent\n> enforcement becomes a time-consuming challenge while increasing compliance risk.\n> \n> Centralized security policy management introduces a unified approach to creating, managing,\n> and enforcing security policies across your entire GitLab organization through a single designated\n> compliance and security policy (CSP) group. This allows security teams to:\n> \n> - **Define policies once and apply everywhere**: Create instance-wide security policies once through the CSP and automatically enforce the policies across all groups and projects.\n> - **Configure business unit policies**: Top-level groups can configure their own distinct set of policies while inheriting organization policies from the CSP group.\n> - **Ensure adherence to principle of least privilege**: Establish a central policy management layer enforced for the instance.\n> \n> This beta release establishes the foundational framework for centralized policy management,\n> with support for all existing security policy types, configurable for groups, projects, or instance.\n\n</details>\n\n<details><summary>[Vulnerability ID added to vulnerability report CSV export](https://docs.gitlab.com/user/application_security/vulnerability_report/#exporting): <code>Vulnerability Management</code></summary>\n\n> Previously, the CSV export of the vulnerability report did not include vulnerability IDs.\n> You can now find the ID of each vulnerability listed in the CSV export.\n\n</details>\n\n<details><summary>[Reachability filter in the vulnerability report](https://docs.gitlab.com/user/application_security/vulnerability_report/#filtering-vulnerabilities): <code>Vulnerability Management</code></summary>\n\n> Users can now filter data in the vulnerability report to include only reachable vulnerabilities.\n> Reachable vulnerabilities represent vulnerabilities that are both:\n> \n> - On the Common Vulnerabilities and Exposures (CVE) list.\n> - Part of a library that is explicitly imported.\n\n</details>\n\n<details><summary>[Vulnerability GraphQL API returns additional information](https://docs.gitlab.com/api/graphql/reference/#vulnerability): <code>Vulnerability Management</code></summary>\n\n> You can now use the GraphQL API to determine the pipeline when the vulnerability was\n> introduced and when it was last detected. The Vulnerability GraphQL API now includes:\n> \n> - `initialDetectedPipeline`: Use to retrieve additional commit information about when the vulnerability was introduced, such as the author's user name.\n> - `latestDetectedPipeline`: Use to retrieve additional commit information about when the vulnerability was removed, such as the commit SHA.\n\n</details>\n\n<details><summary>[Source branch pattern exceptions for approval policies](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#source-branch-exceptions): <code>Security Policy Management</code></summary>\n\n> Previously, teams using GitFlow often faced approval deadlocks when merging `release/*` branches to `main`,\n> as most contributors had already participated in release development and then couldn't serve as approvers.\n> \n> Branch pattern exceptions in merge request approval policies solve this by automatically bypassing approval\n> requirements for specific source-target branch combinations.\n> Configure strict approvals for feature-to-main merges while allowing streamlined release-to-main workflows.\n> \n> **Key capabilities:**\n> \n> - **Pattern-based configuration:** Define source branch patterns like `release/*` or `hotfix/*`\n> that bypass approval requirements\n> - **Seamless integration:** Branch exceptions integrate directly into existing merge request approval\n> policies and are configurable through the UI or `policy.yml` file.\n> \n> This eliminates the need for complex workarounds while preserving the security benefits of merge request\n> approval policies for standard development workflows.\n\n</details>\n\n<details><summary>[Display dependency paths](https://docs.gitlab.com/user/application_security/dependency_list/#dependency-paths): <code>Dependency Management</code></summary>\n\n> Previously, it was difficult to determine whether a dependency was a direct dependency, or a transient dependency imported by a descendant of the dependency.\n> \n> You can now determine whether a library is primarily or transitively imported using the new dependency paths feature. You can find dependency paths on the project and group dependency list as well as in the vulnerability details. This capability allows developers to determine the most efficient path to a fix depending on how the library is imported.\n\n</details>\n\n<details><summary>[Security Inventory for comprehensive asset visibility now in beta](https://docs.gitlab.com/user/application_security/security_inventory/): <code>Security Asset Inventories</code></summary>\n\n> AppSec teams need comprehensive visibility into their organization's security posture across all assets. Previously, GitLab security workflows focused primarily on project-level scanner configuration and project-level vulnerabilities, making it difficult to understand coverage gaps and make efficient, risk-based prioritization decisions.\n> \n> Security Inventory provides a centralized view of the security posture across your GitLab instance, enabling AppSec teams to:\n> \n> - Get complete visibility into security coverage across projects and groups\n> - Identify assets that lack security scanning or have configuration gaps\n> - Make informed, risk-based decisions about where to focus security efforts\n> - Track security posture improvements over time\n> \n> This feature helps bridge the gap between individual project security and organization-wide security strategy, giving you the asset inventory foundation needed for effective security program management.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![9 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=9&style=flat-square \"New features added to this tier in this release\")\n![744 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=744&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Duo Agent Platform in the IDE (Beta)](https://docs.gitlab.com/user/duo_agent_platform/): <code>Editor Extensions</code></summary>\n\n> The Duo Agent Platform brings agentic chat and agent flows directly into VS Code and JetBrains IDEs, enabling natural conversation-based interaction with your codebase and GitLab projects.\n> \n> Agentic chat is designed for quick, conversational tasks like creating and editing files, searching across your codebase with pattern matching and grep, and getting immediate answers about your code. \n> Agent flows handle larger implementations and comprehensive planning, taking high-level ideas from concept to architecture while accessing GitLab resources including issues, merge requests, commits, CI/CD pipelines, and security vulnerabilities.\n> Both provide intelligent search capabilities for documentation, code patterns, and project discovery to help you accomplish everything from quick edits to complex project analysis.\n> \n> The platform also supports Model Context Protocol (MCP) for connecting to external data sources and tools, allowing AI features to leverage context beyond GitLab.\n> \n> Learn more in our blog [GitLab Duo Agent Platform Public Beta: Next-gen AI orchestration and more](https://about.gitlab.com/blog/gitlab-duo-agent-platform-public-beta/).\n> \n> To get started, see the [Duo Agent Platform documentation](https://docs.gitlab.com/user/duo_agent_platform/),\n> [VS Code setup guide](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/#use-agentic-chat-in-vs-code),\n> and [JetBrains setup guide](https://docs.gitlab.com/user/gitlab_duo_chat/agentic_chat/#use-agentic-chat-in-jetbrains-ides).\n\n</details>\n\n<details><summary>[Group and project controls for Premium and Ultimate with GitLab Duo](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/): <code>Code Suggestions</code>, <code>Duo Chat</code></summary>\n\n> GitLab Premium and Ultimate users can now change the availability of Code Suggestions and GitLab Duo Chat in the IDE for groups and projects. Previously, you could change the availability for the instance or top-level group only.\n\n</details>\n\n<details><summary>[Mistral Small now available for GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models/) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now use Mistral Small on [Gitlab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models). This model is available on GitLab Self-Managed instances, and is the first fully compatible open source model for GitLab Duo Chat and Code Suggestions on GitLab Duo Self-Hosted.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Custom workflow statuses for issues and tasks](https://docs.gitlab.com/user/work_items/status/): <code>Team Planning</code></summary>\n\n> Move beyond the basic open/closed system with configurable status that lets you track work items through\n> your team's actual workflow stages.\n> \n> Instead of relying on labels, you can now define custom statuses that accurately\n> reflect your process. With configurable statuses, you can:\n> \n> - **Define custom workflows** that match your team's actual process.\n> - **Replace workflow labels** with proper statuses that are easier to find, update, and report on.\n> - **Clarify completion outcomes** beyond closing an issue using \"Done\" or \"Canceled\".\n> - **Filter and report accurately** on work item status for better project insights.\n> - **Use status in issue boards** with automatic updates when issues move between columns.\n> - **Bulk update status** across multiple work items for efficient workflow management.\n> - **Track dependencies** with status visibility for linked work items.\n> \n> Custom workflow statuses also support **quick actions in comments** and automatically syncs with GitLab\n> open/closed system.\n> \n> Help us improve this feature by sharing your thoughts and suggestions in our\n> [feedback issue](https://gitlab.com/gitlab-com/www-gitlab-com/-/issues/35235).\n\n</details>\n\n<details><summary>[Configure epic display preferences](https://docs.gitlab.com/user/group/epics/manage_epics/#configure-epic-display-preferences): <code>Portfolio Management</code></summary>\n\n> You now have full control over which metadata appears when you view your list of \n> work items, making it easier to focus on the information that matters most to you.\n> \n> Previously, all metadata fields were always visible, which could make scanning through work\n> items overwhelming. Now you can customize your view by turning on or off specific fields\n> like assignees, labels, dates, and milestones.\n\n</details>\n\n<details><summary>[Open epics in a drawer or the full page on the Epics page](https://docs.gitlab.com/user/group/epics/manage_epics/#open-epics-in-a-drawer): <code>Portfolio Management</code></summary>\n\n> You can now choose how epics open from the list page with a new toggle that switches between drawer view and\n> full-page navigation.\n> \n> Use the drawer to quickly review epic details while maintaining context of your epic list,\n> or open the full page when you need more screen space for detailed editing and comprehensive navigation.\n\n</details>\n\n<details><summary>[Assign milestones to epics for enhanced long-term planning](https://docs.gitlab.com/user/project/milestones/): <code>Portfolio Management</code></summary>\n\n> You can now assign [milestones](https://docs.gitlab.com/user/project/milestones/) directly to epics, creating a natural planning cascade from strategic initiatives down to execution. This enhancement helps you align longer-term planning cadences, like quarterly planning or SAFe program increments, with epics. At the same time, you can keep iterations focused on development sprints.\n> \n> With this clear hierarchy in place, you can reduce administrative overhead and gain better visibility into how your strategic initiatives progress against organizational timeframes.\n\n</details>\n\n<details><summary>[Assign epics to team members](https://docs.gitlab.com/user/group/epics/manage_epics/#assignees): <code>Portfolio Management</code></summary>\n\n> You can now assign epics to individuals, making it clear who is responsible for overseeing strategic initiatives. Epic assignees help you identify ownership at the portfolio level, enabling faster decision-making and clearer accountability for long-term objectives. Teams can quickly see who to contact about epic progress, dependencies, or scope changes.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Map workspace Kubernetes agents for the instance](https://docs.gitlab.com/user/workspace/gitlab_agent_configuration/#allow-a-cluster-agent-for-workspaces-on-the-instance) <i>(self-managed only)</i>: <code>Workspaces</code></summary>\n\n> GitLab administrators can now map enabled workspace Kubernetes agents for the instance. Users can then create workspaces from any group or project in that instance.\n> \n> This significantly increases workspace scalability by allowing organizations to provision workspace Kubernetes agents once, and make those agents accessible to all current and future projects across the entire instance.\n\n</details>\n\n\n\n#### Core\n\n![8 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=8&style=flat-square \"New features added to this tier in this release\")\n![2409 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2409&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Administrators can reassign contributions without user confirmation](https://docs.gitlab.com/administration/settings/import_and_export_settings/#skip-confirmation-when-reassigning-placeholder-users) <i>(self-managed only)</i>: <code>Importers</code></summary>\n\n> Administrators can now reassign contributions from placeholder users to active users without user confirmation.\n> This feature addresses a key challenge for larger organizations where the process stalled when users did not check their emails to approve reassignments.\n> \n> On GitLab instances where user impersonation is enabled, administrators can maintain data integrity while streamlining user management workflows.\n> Users still receive notification emails after the reassignment is complete, ensuring transparency throughout the process.\n\n</details>\n\n<details><summary>[Reassign from placeholder users to inactive users](https://docs.gitlab.com/administration/settings/import_and_export_settings/#skip-confirmation-when-administrators-reassign-placeholder-users) <i>(self-managed only)</i>: <code>Importers</code></summary>\n\n> Previously, administrators could reassign contributions and memberships from placeholder users to active users only.\n> \n> On GitLab Self-Managed, administrators can now also reassign contributions and memberships from placeholder users to inactive users.\n> This feature permits you to preserve the contribution history and membership information of blocked, banned, or deactivated users on your GitLab instance.\n> \n> Administrators must first enable this setting and, when enabled, this setting streamlines user management by\n> skipping user confirmation during reassignment while maintaining secure access control.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Sorting and pagination for GLQL views](https://docs.gitlab.com/user/glql/#presentation-syntax): <code>Wiki</code>, <code>Team Planning</code></summary>\n\n> This release introduces enhanced sorting and pagination for GLQL views, making it easier to work with large datasets.\n> \n> You can now sort by key fields including due dates, health status, and popularity to quickly find the most relevant items. The new \"Load more\" pagination system provides better control over data loading, replacing overwhelming full-page results with manageable chunks that load on demand.\n> \n> These improvements help teams efficiently navigate complex project data and focus on what matters most at any given moment.\n\n</details>\n\n<details><summary>[Work item references and editor improvements for GitLab Flavored Markdown](https://docs.gitlab.com/user/markdown/#gitlab-specific-references): <code>Markdown</code></summary>\n\n> You can now reference issues, epics, and work items using a unified `[work_item:123]` syntax in GitLab Flavored Markdown. This new syntax works alongside existing reference formats like `#123` for issues and `&123` for epics, and supports cross-project references with `[work_item:namespace/project/123]`.\n> \n> The plain text editor also includes a new [preference to maintain cursor indentation](https://docs.gitlab.com/user/profile/preferences/#maintain-cursor-indentation) when you press Enter, making it easier to write structured content like nested lists and code blocks.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[New merge request homepage](https://docs.gitlab.com/user/project/merge_requests/homepage/): <code>Code Review Workflow</code></summary>\n\n> Managing code reviews across multiple projects can be overwhelming when you're juggling dozens of merge requests\n> as both an author and reviewer.\n> \n> The new merge request homepage transforms how you navigate your review workload\n> by intelligently prioritizing what needs your attention right now, with two powerful viewing modes:\n> \n> - **Workflow view** organizes merge requests by their review state, grouping work by its stage in the code review workflow.\n> - **Role view** groups your merge requests by whether you're the author or reviewer, giving you a clear separation of responsibilities.\n> \n> The **Active** tab shows merge requests requiring attention, **Merged** displays recently completed work,\n> and **Search** provides comprehensive filtering capabilities.\n> \n> The new homepage also expands your visibility by combining both authored and assigned merge requests,\n> ensuring you never miss work that's been delegated to you.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Trigger jobs can mirror the downstream pipeline status](https://docs.gitlab.com/ci/yaml/#triggerstrategy): <code>Pipeline Composition</code></summary>\n\n> Previously, trigger jobs using `strategy:depend` had limitations when dealing with complex pipeline states such as manual jobs, blocked pipelines, or retried pipelines with changing statuses during execution. This could make it seem like the downstream pipeline was actively running, when it was actually blocked on a manual job.\n> The new `strategy:mirror` keyword provides more nuanced status reporting by mirroring the exact real-time status of the downstream pipeline. Statuses include intermediate states like `running`, `manual`, `blocked`, and `canceled`. This gives teams complete visibility into the current state of their downstream pipeline without breaking the existing workflow.\n\n</details>\n\n<details><summary>[GitLab Runner 18.2](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 18.2 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### Bug Fixes:\n> \n> - [Runners fail in FIPS mode after you upgrade to GitLab Runner 18.1.0](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38890)\n> - [Unable to start job pods with `FF_USE_DUMB_INIT_WITH_KUBERNETES_EXECUTOR`](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/241)\n> - [The `ubi-fips` image is not the default helper image flavor for GitLab Runner FIPS](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38273)\n> - [Runners remain offline for an extended period after you disable GitLab maintenance mode](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29181)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-2-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Improved archive file support for Container Scanning](https://docs.gitlab.com/user/application_security/container_scanning/#scanning-archive-formats): <code>Software Composition Analysis</code></summary>\n\n> GitLab 18.2 brings improved archive file scanning support to Container Scanning.\n> If a vulnerability in a particular package is found in multiple images, you now see a vulnerability attributed to each scanned image.\n\n</details>\n\n\n","released_at":"2025-07-17T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 18.1","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.1.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.1.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.1.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.1.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.1.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.1.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":7750407,"url":"https://about.gitlab.com/releases/2025/06/19/gitlab-18-1-released/","name":"GitLab 18.1 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/06/19/gitlab-18-1-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.1.0-ee/gitlab-v18.1.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.1.0-ee/gitlab-v18.1.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.1.0-ee/gitlab-v18.1.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.1.0-ee/gitlab-v18.1.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"e0f3b86408aa4e7f03b63ac9e7dba6de1df14e93","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/e0f3b86408aa4e7f03b63ac9e7dba6de1df14e93","short_id":"e0f3b864","trailers":[],"created_at":"2025-06-18T04:10:52.000+00:00","parent_ids":["2373694eec9047c759fba499ceeffc57b6820aa9"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-06-18T04:10:52.000+00:00","committed_date":"2025-06-18T04:10:52.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.1.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.1.0-ee","evidences":[],"created_at":"2025-06-19T15:03:22.965Z","milestones":[{"id":4609094,"iid":111,"state":"closed","title":"18.1","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/111","due_date":"2025-06-13","group_id":9970,"created_at":"2024-06-03T13:30:31.569Z","start_date":"2025-05-10","updated_at":"2025-10-22T16:30:49.837Z","description":"","issue_stats":{"total":2268,"closed":2228}}],"commit_path":"/gitlab-org/gitlab/-/commit/e0f3b86408aa4e7f03b63ac9e7dba6de1df14e93","description":"![25 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=25&style=for-the-badge \"New features added in this release\")\n![3897 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3897&style=for-the-badge \"Total features\")\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Compromised password detection for native GitLab credentials](https://docs.gitlab.com/user/profile/user_passwords/#compromised-password-detection) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> GitLab.com now performs a secure check of your account credentials when you sign in to GitLab.com.\n> If your password is part of a known leak, GitLab displays a banner and sends you an email notification.\n> These notifications include instructions for how to update your credentials.\n> \n> For maximum security, GitLab recommends using a unique, strong password for GitLab, enabling two-factor authentication, and regularly reviewing your account activity.\n> \n> Note that this feature is only available for native GitLab usernames and passwords. SSO credentials are not checked.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![9 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=9&style=flat-square \"New features added to this tier in this release\")\n![643 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=643&style=flat-square \"Total features in this tier\")\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[DAST detection parity with secret detection default rules](https://docs.gitlab.com/user/application_security/dast/browser/checks/): <code>DAST</code></summary>\n\n> The DAST analyzer now automatically ingests the same default secret detection rules that are used by GitLab Secret Detection analyzer. This improvement ensures consistency in the types of secrets detected by both.\n\n</details>\n\n<details><summary>[PHP support for Advanced SAST](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#supported-languages): <code>SAST</code></summary>\n\n> We have added PHP support to GitLab Advanced SAST.\n> To use this new cross-file, cross-function scanning support, [enable Advanced SAST](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#enable-advanced-sast-scanning).\n> If you have already enabled Advanced SAST, PHP support is automatically activated.\n> \n> To see which types of vulnerabilities Advanced SAST detects in each language, see the [Advanced SAST coverage page](https://docs.gitlab.com/user/application_security/sast/advanced_sast_coverage/).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Define a `Name` for external custom controls](https://docs.gitlab.com/user/compliance/compliance_frameworks/#external-controls): <code>Compliance Management</code></summary>\n\n> Previously, you couldn't define a name for an external custom control when creating a custom compliance framework,\n> which made it difficult to identify external controls when listed alongside GitLab controls.\n> \n> We've now added a `Name` field as part of the workflow when defining an external custom control, so you can\n> create multiple external custom controls and clearly define each one with its own unique name.\n\n</details>\n\n<details><summary>[Pagination for requirements in compliance frameworks UI](https://docs.gitlab.com/user/compliance/compliance_frameworks/#add-requirements): <code>Compliance Management</code></summary>\n\n> When creating a compliance framework, you can specify a maximum of 50 requirements.\n> \n> However, it becomes very difficult to navigate a compliance framework with this many requirements because they\n> consume a lot of space in the user interface.\n> \n> In this release, we have introduced pagination for requirements to make it easier for users to navigate, find, and\n> select requirements when there is a large number of them attached to a compliance framework.\n\n</details>\n\n<details><summary>[UI performance and filtering improvements for compliance center](https://docs.gitlab.com/user/compliance/compliance_center/): <code>Compliance Management</code></summary>\n\n> We have continued to improve the UI performance and filtering options provided by the compliance center. In this\n> release, we have:\n> \n> - Improved the UI speed and performance of the **Edit Framework** page, especially where there are many requirements\n>   and projects on the page.\n> - Introduced new filtering options so that you can group by requirement, project, or framework in the\n>   **Compliance status report** tab in the compliance center.\n> \n> By delivering these improvements, we continue to ensure that the compliance center and associated functions\n> continue to perform at scale for customers who regularly use the compliance center.\n\n</details>\n\n<details><summary>[Control status pop-up in the compliance status report](https://docs.gitlab.com/user/compliance/compliance_center/compliance_status_report/): <code>Compliance Management</code></summary>\n\n> Controls in the compliance status report have three different statuses:\n> \n> - Pass\n> - Fail\n> - Pending\n> \n> No matter the number of controls that are attached to the requirement, if at least one control was 'pending', the\n> entire requirement row was shown as 'pending' as well. This deviated from the established UX pattern for visualizing\n> failed controls, where the requirement would show the number of controls associated with the requirement, even\n> when there was at least one control that fails.\n> \n> To provide further context and information for 'pending' controls, we now provide a hover over pop-up on the\n> requirement row status, with the status of each control listed. You can now understand which controls are pending,\n> and which are potentially succeeding and failing, rather than just seeing a single status for 'pending'.\n\n</details>\n\n<details><summary>[Increased SAST coverage for Duo Vulnerability Resolution](https://docs.gitlab.com/user/application_security/vulnerabilities/#supported-vulnerabilities-for-vulnerability-resolution): <code>Vulnerability Management</code></summary>\n\n> Previously, you had to manually resolve detected vulnerabilities with these Common Weakness Enumeration (CWE) identifiers:\n> \n> - CWE-78 (Command Injection)\n> - CWE-89 (SQL Injection)\n> \n> Now, Duo Vulnerability Resolution can automatically fix these vulnerabilities.\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Filter by component version in the dependency list](https://docs.gitlab.com/user/application_security/dependency_list/#filter-dependency-list): <code>Dependency Management</code></summary>\n\n> The dependency lists now supports filtering by a component's version number. You can select multiple versions (for example, `version=1.1,1.2,1.4`) but ranges are not supported. This feature is available in both groups and projects.\n\n</details>\n\n<details><summary>[Variable precedence controls in pipeline execution policies](https://docs.gitlab.com/user/application_security/policies/pipeline_execution_policies/#variables_override-type): <code>Security Policy Management</code></summary>\n\n> Security teams often strike a delicate balance between security assurance and developer experience. It's critical to ensure security scans are properly enforced, but security analyzers can require specific inputs from development teams to properly execute. With variable precedence controls, security teams now have granular control over how variables are handled in pipeline execution policies through the new `variables_override` configuration option.\n> \n> Using this new configuration, you can now:\n> \n> * Enforce container scanning policies that allow project-specific container image paths (`CS_IMAGE`).\n> * Allow lower risk variables like `SAST_EXCLUDED_PATHS` while blocking high risk variables like `SAST_DISABLED`.\n> * Define globally shared credentials that are secured (masked or hidden) with global CI/CD variables, such as `AWS_CREDENTIALS`, while allowing project-specific overrides where appropriate through project-level CI/CD variables.\n> \n> This powerful feature supports two approaches:\n> \n> * **Lock variables by default** (`allow: false`): Lock all variables except specific ones you list as exceptions.\n> * **Allow variables by default** (`allow: true`): Allow variables to be customized, but restrict critical risks by listing them as exceptions.\n> \n> To improve traceability and troubleshooting when a pipeline execution policy is the source of an CI/CD job, we're also introducing job logs to help developers and security teams identify the jobs executed by a policy. The job logs provide details on the impact of variable overrides to help you understand if variables are overridden or locked by policies.\n> \n> **Real-world impact**\n> \n> This enhancement bridges the gap between security requirements and flexibility for developers:\n> \n> * Security teams can enforce standardized scanning while allowing project-specific customizations.\n> * Developers maintain control over project-specific variables without requesting policy exceptions.\n> * Organizations can implement consistent security policies without disrupting development workflows.\n> \n> By solving this critical variable control challenge, GitLab enables organizations to implement robust security policies without sacrificing the flexibility teams need to deliver software efficiently.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![7 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=7&style=flat-square \"New features added to this tier in this release\")\n![735 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=735&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Multiple matches per file in code search](https://docs.gitlab.com/integration/exact_code_search/zoekt/): <code>Code Search</code></summary>\n\n> Exact code search (in beta) now consolidates multiple search results from the same file into a single view. This improvement:\n> \n> - Preserves context between adjacent matches instead of displaying isolated lines.\n> - Reduces visual clutter by eliminating duplicate content when matches are close together.\n> - Enhances navigation by clearly showing the number of matches per file.\n> - Improves readability by displaying code as you would see it in your editor.\n> \n> With this change, finding and understanding code patterns across your repositories is now more efficient.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Epic support for GitLab Query Language views Beta](https://docs.gitlab.com/user/glql/fields/#epic): <code>Wiki</code>, <code>Team Planning</code></summary>\n\n> We've made a significant improvement to GitLab Query Language (GLQL) views. You can now use epic as a type in your queries to search for epics across groups, and query by parent epic!\n> \n> This is a huge step forward for our planning and tracking capabilities, making it easier than ever to query and organize at the epic level.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Enhanced CODEOWNERS file validation with permission checks](https://docs.gitlab.com/ee/user/project/codeowners/troubleshooting.html#validate-your-codeowners-file): <code>Source Code Management</code></summary>\n\n> GitLab now provides enhanced validation for CODEOWNERS files that goes beyond basic syntax checking. When viewing a CODEOWNERS file, GitLab automatically runs comprehensive validations to help you identify both syntax and permission issues before they affect your merge request workflows.\n> \n> The enhanced validation checks the first 200 unique user and group references in your CODEOWNERS file, and verifies that:\n> \n> - All referenced users and groups have access to the project.\n> - Users have the necessary permissions to approve merge requests.\n> - Groups have at least Developer-level access or higher.\n> - Groups contain at least one user with merge request approval permissions.\n> \n> This proactive validation helps prevent approval workflow disruptions by catching configuration issues early, ensuring your Code Owners can actually fulfill their review responsibilities when merge requests are created.\n\n</details>\n\n<details><summary>[Custom workspace initialization with `postStart` events](https://docs.gitlab.com/user/workspace/#user-defined-poststart-events): <code>Workspaces</code></summary>\n\n> GitLab workspace now supports custom `postStart` events in your devfile, allowing you to define commands that automatically execute after workspace startup. Use these events to:\n> \n> - Set up development dependencies.\n> - Configure your environment.\n> - Run initialization scripts that prepare your project for immediate productivity without manual intervention.\n\n</details>\n\n<details><summary>[Duo Code Review is now generally available](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#have-gitlab-duo-review-your-code): <code>Code Review Workflow</code></summary>\n\n> Duo Code Review is now generally available and ready for production use. This AI-powered code review assistant transforms the traditional code review process by providing intelligent, automated feedback on your merge requests. It helps identify potential bugs, security vulnerabilities, and code quality issues before human reviewers get involved, making the entire review process more efficient and thorough. It includes:\n> \n> - **Automated initial review**: Duo Code Review analyzes your code changes and provides comprehensive feedback on potential issues, improvements, and best practices.\n> - **Interactive refinement**: Mention `@GitLabDuo` in merge request comments to get targeted feedback on specific changes or questions.\n> - **Actionable suggestions**: Many suggestions can be applied directly from your browser, streamlining the improvement process.\n> - **Context-aware analysis**: Leverages understanding of the changed files to provide relevant, project-specific recommendations.\n> \n> To request a code review:\n> \n> - In your merge request, add `@GitLabDuo` as a reviewer using the `/assign_reviewer @GitLabDuo` quick action, or assign GitLab Duo directly as a reviewer.\n> - Mention `@GitLabDuo` in comments to ask specific questions or request focused feedback on any discussion thread.\n> - Enable automatic reviews in your project settings to have GitLab Duo automatically review all new merge requests.\n> \n> Duo Code Review helps teams maintain higher code quality standards while reducing the time spent on manual review cycles. By catching issues early and providing educational feedback, it serves as both a quality gate and a learning tool for development teams.\n> \n> <i class=\"fa fa-youtube-play youtube\" aria-hidden=\"true\"></i> [Watch an overview](https://www.youtube.com/watch?v=FlHqfMMfbzQ) of Duo Code Review in action from our beta release.\n> \n> Share your experience and feedback in [issue 517386](https://gitlab.com/gitlab-org/gitlab/-/issues/517386) to help us continue improving this feature.\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Maven virtual registry now available in beta](https://docs.gitlab.com/user/packages/virtual_registry/maven/): <code>Virtual Registry</code></summary>\n\n> The Maven virtual registry simplifies Maven dependency management in GitLab. Without the Maven virtual registry, you must configure each project to access dependencies from Maven Central, private repositories, or the GitLab package registry. This approach slows builds with sequential repository queries and complicates security auditing and compliance reporting.\n> \n> The Maven virtual registry addresses these issues by aggregating multiple upstream repositories behind a single endpoint. Platform engineers can configure Maven Central, private registries, and GitLab package registries through one URL. Intelligent caching improves build performance and integrates with GitLab authentication systems. Organizations benefit from reduced configuration overhead, faster builds, and centralized access control for improved security and compliance.\n> \n> The Maven virtual registry is currently available in beta for GitLab Premium and Ultimate customers on both GitLab.com and GitLab Self-Managed. The GA release will include additional capabilities, such as a web-based user interface for registry configuration, shareable upstream functionality, lifecycle policies for cache management, and enhanced analytics. Current beta limitations include a maximum of 20 virtual registries per top-level groups and 20 upstreams per virtual registry, with API-only configuration available during the beta period.\n> \n> We invite enterprise customers to participate in the Maven virtual registry beta program to help shape the final release. Beta participants will receive early access to the capabilities, direct engagement with GitLab product teams, and priority support during evaluation. To join the beta program, express interest and provide your use case details in [issue 498139](https://gitlab.com/gitlab-org/gitlab/-/issues/498139), and share feedback and suggestions in [issue 543045](https://gitlab.com/gitlab-org/gitlab/-/issues/543045).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Subscribe to service account pipeline notifications](https://docs.gitlab.com/user/profile/notifications/#notification-events-on-issues-merge-requests-and-epics): <code>System Access</code></summary>\n\n> You can now subscribe to notifications for pipeline events triggered by service accounts. Notifications are sent when the pipeline passes, fails, or is fixed. Previously, these notifications were only sent to the service account's email address if the service account has a valid custom email address.\n> \n> Thank you [Densett](https://gitlab.com/Densett), [Gilles Dehaudt](https://gitlab.com/tonton1728), [Lenain](https://gitlab.com/lenaing), [Geoffrey McQuat](https://gitlab.com/gmcquat), and [Raphaël Bihoré](https://gitlab.com/rbihore) for your contribution!\n\n</details>\n\n\n\n#### Core\n\n![8 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=8&style=flat-square \"New features added to this tier in this release\")\n![2401 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2401&style=flat-square \"Total features in this tier\")\n\n<details><summary>[New `accessLevels` argument for `projectMembers` in GraphQL API](https://docs.gitlab.com/api/graphql/reference/#projectprojectmembers): <code>Groups & Projects</code></summary>\n\n> We're excited to announce the addition of the `accessLevels` argument to the `projectMembers` field in our GraphQL API. Use this argument to filter project members by access level directly from an API call. Previously, you had to fetch an entire list of project members and apply filters locally, which added significant computational overhead. Now, analyzing project permissions and generating ownership graphs is faster and more resource-efficient. This enhancement is particularly valuable to organizations managing large-scale deployments with complex permission structures.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Enhanced merge request review experience with review panel](https://docs.gitlab.com/user/project/merge_requests/reviews/#submit-a-review): <code>Code Review Workflow</code></summary>\n\n> When you review a merge request, it can be valuable to see all of the comments and feedback you've provided before you submit your review. Previously, this experience was fragmented between the final comment and an additional pop-up to see your pending comments, making it hard to get the complete overview.\n> \n> When conducting code reviews, you can now access a dedicated drawer that consolidates all your pending draft comments in one organized view. The enhanced review panel moves the review submission interface to a more accessible location, and provides a numbered badge showing your pending comment count. When you open the panel, you'll see all your draft comments organized in a scrollable list, making it easier to review and manage your feedback before submitting.\n\n</details>\n\n<details><summary>[View downstream pipeline job logs in VS Code](https://docs.gitlab.com/editor_extensions/visual_studio_code/cicd/): <code>Editor Extensions</code></summary>\n\n> The GitLab Workflow extension for VS Code now displays job logs from downstream pipelines directly in your editor. Previously, viewing logs from child pipelines required switching to the GitLab web interface.\n> \n> This feature was developed through the [GitLab Co-create program](https://about.gitlab.com/community/co-create/). Special thanks to Tim Ryan for making this contribution!\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[GitLab Runner 18.1](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're also releasing GitLab Runner 18.1 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### Bug Fixes:\n> \n> - [If you upgrade to GitLab 17.10 or 17.11, runners might receive a `404` response when they request jobs](https://gitlab.com/gitlab-org/gitlab/-/issues/543351).\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-1-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[View inactive personal access tokens](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html): <code>System Access</code></summary>\n\n> GitLab automatically deactivates access tokens after they expire or are revoked. You can now review these inactive tokens. Previously, access tokens were no longer visible after they became inactive. This change enhances traceability and security of these token types.\n\n</details>\n\n<details><summary>[Filter for bot and human users](https://docs.gitlab.com/administration/moderate_users/#view-users-by-type) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> Established GitLab instances can often have large numbers of human and bot users. You can now filter the users list in the Admin area by user type. Filtering users can help you:\n> \n> - Quickly identify and manage human users separately from automated accounts.\n> - Perform targeted administrative actions on specific user types.\n> - Simplify user auditing and management workflows.\n\n</details>\n\n<details><summary>[ORCID identifier in user profile](https://docs.gitlab.com/user/profile/): <code>User Profile</code></summary>\n\n> GitLab now supports ORCID identifiers in user profiles, making GitLab more accessible and valuable for researchers and the academic community. [ORCID](https://orcid.org/) (Open Researcher and Contributor ID) provides researchers with a persistent digital identifier that distinguishes them from other researchers and supports automated linkages between researchers and their professional activities, ensuring their work is properly recognized.\n> \n> This feature was developed as a community contribution by Thomas Labalette and Erwan Hivin, master students at Artois University, under the supervision of [Daniel Le Berre](https://www.ouvrirlascience.fr/appointment-of-daniel-le-berre-as-the-national-coordinator-for-higher-education-and-research-software-forges-in-france/), addressing a long-standing request from the academic community.\n\n</details>\n\n<details><summary>[Achieve SLSA Level 1 compliance with CI/CD components](https://docs.gitlab.com/ci/pipelines/pipeline_security/#sign-and-verify-slsa-provenance-with-a-cicd-component): <code>Artifact Security</code></summary>\n\n> You can now achieve [SLSA](https://slsa.dev/) Level 1 compliance using GitLab new CI/CD components for signing and verifying SLSA-compliant [artifact provenance metadata](https://docs.gitlab.com/ci/runners/configure_runners/#artifact-provenance-metadata) generated by GitLab Runner. The components wrap [Sigstore Cosign functionality](https://docs.gitlab.com/ee/ci/yaml/signing_examples.html) in reusable modules that can be easily integrated into CI/CD workflows.\n\n</details>\n\n\n","released_at":"2025-06-19T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 18.0","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v18.0.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.0.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v18.0.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.0.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.0.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v18.0.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":7458086,"url":"https://about.gitlab.com/releases/2025/05/15/gitlab-18-0-released/","name":"GitLab 18.0 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/05/15/gitlab-18-0-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.0.0-ee/gitlab-v18.0.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.0.0-ee/gitlab-v18.0.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.0.0-ee/gitlab-v18.0.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v18.0.0-ee/gitlab-v18.0.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"504fd9e5236e13d674e051c6b8a1e9892b371c58","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/504fd9e5236e13d674e051c6b8a1e9892b371c58","short_id":"504fd9e5","trailers":[],"created_at":"2025-05-14T17:38:49.000+00:00","parent_ids":["c5cf0c2cacb04e3c6749351dba5ab7159a1576c8"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-05-14T17:38:49.000+00:00","committed_date":"2025-05-14T17:38:49.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v18.0.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v18.0.0-ee","evidences":[],"created_at":"2025-05-15T15:11:15.689Z","milestones":[{"id":4431576,"iid":102,"state":"closed","title":"18.0","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/102","due_date":"2025-05-09","group_id":9970,"created_at":"2024-01-31T19:44:35.789Z","start_date":"2025-04-12","updated_at":"2025-10-22T16:30:42.359Z","description":"","issue_stats":{"total":1940,"closed":1903}}],"commit_path":"/gitlab-org/gitlab/-/commit/504fd9e5236e13d674e051c6b8a1e9892b371c58","description":"![35 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=35&style=for-the-badge \"New features added in this release\")\n![3872 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3872&style=for-the-badge \"Total features\")\n\n<details><summary>[Rate limits for Groups, Projects, and Users API](https://docs.gitlab.com/user/gitlab_com/#rate-limits-on-gitlabcom) <i>(SaaS only)</i>: <code>Groups & Projects</code></summary>\n\n> We have added API rate limits for projects, groups, and users to improve platform stability and performance for all users. These changes are in response to increased API traffic that has been affecting our services.\n> \n> The limits have been carefully set based on average usage patterns and should provide sufficient capacity for most use cases. If you exceed these limits, you'll receive a \"429 Too Many Requests\" response.\n> \n> For complete details about specific rate limits and implementation information, please [read the related blog post](https://about.gitlab.com/blog/rate-limitations-announced-for-projects-groups-and-users-apis/).\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![6 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=6&style=flat-square \"New features added to this tier in this release\")\n![634 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=634&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Internal releases available for GitLab Dedicated](https://handbook.gitlab.com/handbook/engineering/releases/internal-releases/) <i>(self-managed only)</i>: <code>GitLab Dedicated</code></summary>\n\n> GitLab Dedicated customers with strict security requirements and compliance obligations require the highest level of protection for their development environments.\n> Today, we're introducing Internal Releases, a new private release that allows us to remediate GitLab Dedicated instances for critical vulnerabilities before public disclosure, ensuring GitLab Dedicated customers are never exposed to them.\n> This new capability delivers immediate protection for critical vulnerabilities found in GitLab parallel to response for GitLab.com. This new process does not require customer action.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[New permissions for custom roles](https://docs.gitlab.com/user/custom_roles/): <code>Permissions</code></summary>\n\n> You can create custom roles with the [Manage protected environments](https://gitlab.com/gitlab-org/gitlab/-/issues/471385) permission. Custom roles allow you to grant only the specific permissions users need to complete their tasks. This helps you define roles that are tailored to the needs of your group, and can reduce the number of users who need the Owner or Maintainer role.\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Exclude packages from license approval rules](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#license_finding-rule-type): <code>Security Policy Management</code></summary>\n\n> In merge request approval policies, this new enhancement to license approval policies gives legal and compliance teams more control over which packages can use specific licenses. You can now create exceptions for pre-approved packages, even when they use licenses that would normally be blocked by your organization's policies.\n> \n> Previously, in license approval policies, if you blocked a license like AGPL-3.0, it was blocked for all packages across your organization. This created challenges when:\n>   \n> - Your legal team pre-approved specific packages with otherwise restricted licenses.\n> - You needed to use the same package across hundreds of projects.\n> - Different teams required different license exceptions.\n> \n> With this release, you can maintain strict license governance while allowing necessary exceptions, significantly reducing approval bottlenecks and manual reviews. For example, you can:\n> \n> - Define package-specific exceptions to your license approval rules using Package URL (PURL) format.\n> - Allow specific packages (or package versions) to use otherwise restricted licenses.\n> - Block specific packages (or package versions) from using generally allowed licenses.\n> \n> To add exceptions, follow this workflow when you create or edit a license approval policy:\n>   \n> 1. In your group, go to **Security & Compliance** > **Policies**\n> 1. Create or edit a license approval policy.\n> 1. Find the new package exception options in the visual editor or configure them in YAML mode.\n> 1. Choose between allowlist or denylist mode for the licenses.\n> 1. Add specific licenses to your policy.\n> 1. For each license, define package exceptions in PURL format (for example, `pkg:npm/@angular/animation@12.3.1`).\n> 1. Specify whether to include or exclude these packages from the license rule.\n> \n> The policy then enforces your license rules while respecting the defined exceptions, giving you granular control over license compliance across your organization.\n\n</details>\n\n<details><summary>[Configure Jira issues from vulnerabilities using the Jira integration API](https://docs.gitlab.com/api/project_integrations/#jira-issues): <code>Vulnerability Management</code></summary>\n\n> Previously, you had to configure the integration to [create Jira issues from vulnerabilities](https://docs.gitlab.com/integration/jira/configure/#create-a-jira-issue-for-a-vulnerability) from the **Project settings** page.\n> \n> You can now configure this integration from the project integrations API, which allows you to automate the setup.\n\n</details>\n\n<details><summary>[Improved traceability of redetected vulnerabilities](https://docs.gitlab.com/user/application_security/vulnerabilities/#vulnerability-status-values): <code>Vulnerability Management</code></summary>\n\n> Previously, when a resolved vulnerability was redetected and changed status, the vulnerability details did not provide information to indicate when and why the status change occurred. \n> \n> GitLab now adds a system note to the vulnerability history when resolved vulnerabilities change status because they appeared in a new scan. This additional information helps users understand why vulnerabilities have changed status.\n\n</details>\n\n<details><summary>[Bulk add vulnerabilities to issues from the vulnerability report](https://docs.gitlab.com/user/application_security/vulnerability_report/#add-vulnerabilities-to-an-existing-issue): <code>Vulnerability Management</code></summary>\n\n> With this release you can now bulk add vulnerabilities to new or existing _GitLab_ issues from the vulnerability report. You may now associate multiple issues and vulnerabilities together. Additionally, related vulnerabilities are now listed within the issue page.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![12 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=12&style=flat-square \"New features added to this tier in this release\")\n![728 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=728&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Premium and Ultimate with Duo](https://docs.gitlab.com/user/gitlab_duo/#summary-of-gitlab-duo-features): <code>Code Suggestions</code>, <code>Duo Chat</code></summary>\n\n> We're excited to announce GitLab Premium with Duo and GitLab Ultimate with Duo. GitLab Premium and Ultimate now include AI-native features.\n> \n> GitLab AI-native features include Code Suggestions and Chat within the IDE. Development teams can use these features to: \n> \n> - Analyze, understand, and explain code\n> - Write secure code faster\n> - Quickly generate tests to maintain code quality\n> - Easily refactor code to improve performance or use specific libraries\n\n</details>\n\n<details><summary>[Repository X-Ray now available on GitLab Duo Self-Hosted](https://docs.gitlab.com/user/project/repository/code_suggestions/repository_xray/) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now use Repository X-Ray with Code Suggestions on GitLab Duo Self-Hosted. This feature is in beta for GitLab Duo Self-Hosted, and is generally available on GitLab Self-Managed instances.\n\n</details>\n\n<details><summary>[List only Enterprise users for contributions reassignment on GitLab.com](https://docs.gitlab.com/user/group/import/direct_transfer_migrations/#user-contribution-and-membership-mapping): <code>Importers</code></summary>\n\n> In this release we've improved the placeholder users mapping experience by\n> narrowing down the user selection dropdown to only [Enterprise users](https://docs.gitlab.com/user/enterprise_user/)\n> associated with the top-level group.\n> Previously, when reassigning users' contributions after an import to GitLab.com, you would see in the dropdown list\n> all active users on the platform, making it difficult to identify the correct user, especially when SCIM provisioning\n> had modified usernames. Now, if your top-level group uses the Enterprise users feature, the dropdown list will display only\n> users claimed by your organization, significantly reducing the potential for errors during user reassignment.\n> The same scoping is also applied to CSV-based reassignment, preventing accidental assignment to users outside your organization.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Automatic reviews with Duo Code Review](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#automatic-reviews-from-gitlab-duo): <code>Code Review Workflow</code></summary>\n\n> Duo Code Review provides valuable insights during the review process, but currently requires you to manually request reviews on each merge request.\n> \n> You can now configure GitLab Duo Code Review to run automatically on merge requests by updating your project's merge request settings. When enabled, Duo Code Review automatically reviews merge requests unless:\n> \n> - The merge request is marked as draft.\n> - The merge request contains no changes.\n> \n> Automatic reviews ensure that all code in your project receives a review, consistently improving code quality across your codebase.\n\n</details>\n\n<details><summary>[Code Suggestions prompt caching](https://docs.gitlab.com/user/project/repository/code_suggestions/#prompt-caching): <code>Code Suggestions</code></summary>\n\n> Code Suggestions now includes prompt caching. Prompt caching significantly improves code completion latency by avoiding the re-processing of cached prompt and input data. The cached data is never logged to any persistent storage, and you can optionally disable prompt caching in the GitLab Duo settings. \n\n</details>\n\n<details><summary>[Improved Duo Code Review context](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#have-gitlab-duo-review-your-code): <code>Code Review Workflow</code></summary>\n\n> Duo Code Review now provides more comprehensive context for improved analysis.\n> The key improvements are:\n> \n> - Includes a merge request's title and description to better understand the purpose of proposed changes.\n> - Examines all diffs simultaneously to recognize cross-file relationships and reduce false positives.\n> - Provides the full content of changed files to understand how modifications fit within existing code patterns.\n> \n> These enhancements reduce inaccurate suggestions and deliver more relevant and higher quality\n> code reviews.\n\n</details>\n\n<details><summary>[Create a workspace from merge requests](https://docs.gitlab.com/user/workspace/configuration/#create-a-workspace): <code>Workspaces</code></summary>\n\n> You can now create a workspace directly from a merge request with the new **Open in Workspace** option. This feature automatically configures a workspace with the merge request's branch and context, allowing you to:\n> \n> - Review code changes in a fully configured environment.\n> - Run tests on the merge request branch to verify functionality.\n> - Make additional modifications to the merge request without local setup.\n\n</details>\n\n<details><summary>[Shared Kubernetes namespace for workspaces](https://docs.gitlab.com/user/workspace/settings/#shared_namespace): <code>Workspaces</code></summary>\n\n> You can now create GitLab workspaces in a shared Kubernetes namespace. This removes the need to create \n> a new namespace for every workspace and eliminates the requirement to give elevated ClusterRole \n> permission to the agent. With this feature, you can more easily adopt workspaces in secure or \n> restricted environments, offering a simpler path to scale.\n> \n> To enable shared namespaces, set the `shared_namespace` field in your agent configuration file to \n> specify the Kubernetes namespace you want to use for all workspaces.\n> \n> Thank you to the half dozen community contributors who helped build this feature through \n> [GitLab Co-Create program](https://about.gitlab.com/community/co-create/)!\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Display and filter archived projects in the compliance projects report](https://docs.gitlab.com/user/compliance/compliance_center/compliance_projects_report/#filter-the-compliance-projects-report): <code>Compliance Management</code></summary>\n\n> In the compliance projects report, you can view the compliance frameworks applied to projects within a group or\n> subgroup.\n> \n> However, the report lacked the ability to show whether a project is archived or not, which could be useful\n> information for managing compliance across active and archived projects.\n> \n> As such, we've added an indicator to show whether a project is archived. This will provide you with better\n> visibility and context when reviewing compliance frameworks across both active and archived projects.\n> \n> This feature includes:\n> \n> - An archived status badge for each project in the compliance projects report to show whether a project is\n>   archived.\n> - A filter that allows you to toggle between archived, non-archived, or all projects.\n\n</details>\n\n<details><summary>[Disable user invitations](https://docs.gitlab.com/administration/settings/visibility_and_access_controls/#disable-user-invitations): <code>System Access</code></summary>\n\n> You can now remove the ability to invite members to groups or projects. \n> \n> - On GitLab.com, this setting is configured by Owners of groups with enterprise users and applies to any sub-groups or projects within the top-level group. No user can send invites while this setting is enabled.\n> - On GitLab Self-Managed, this setting is by administrators and applies to the entire instance. Administrators can still invite users directly.\n> \n> This feature helps organizations maintain strict control over membership access.\n\n</details>\n\n<details><summary>[LDAP authentication with GitLab username](https://docs.gitlab.com/administration/auth/ldap/) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> LDAP users can now authenticate requests with their GitLab username. Previously, if the GitLab username didn't match their LDAP username, GitLab returned an authentication error. This change helps users maintain separate naming conventions in GitLab and LDAP systems without disrupting approval workflows.\n\n</details>\n\n<details><summary>[Support for SHA256 SAML certificates](https://docs.gitlab.com/integration/saml/): <code>System Access</code></summary>\n\n> GitLab now automatically detects and supports both SHA1 and SHA256 certificate fingerprints for Group SAML authentication. This maintains backward compatibility with existing SHA1 fingerprints while adding support for more secure SHA256 fingerprints. This upgrade is essential to prepare for the upcoming ruby-saml 2.x release that will make SHA256 the default.\n\n</details>\n\n\n\n#### Core\n\n![16 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=16&style=flat-square \"New features added to this tier in this release\")\n![2393 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2393&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Improved pod status visualizations in the dashboard for Kubernetes](https://docs.gitlab.com/ci/environments/kubernetes_dashboard): <code>Deployment Management</code></summary>\n\n> You can use the dashboard for Kubernetes to monitor your deployed applications. Until now, pods with container errors like `CrashLoopBackOff` or `ImagePullBackOff` were displayed with a \"Pending\" or \"Running\" status, which makes it difficult to identify problematic deployments without using `kubectl`. \n> \n> In GitLab 18.0, error states in the UI show a specific container's status, similar to the `kubectl` output. Now, you can quickly identify and troubleshoot failing pods without leaving the GitLab interface.\n\n</details>\n\n<details><summary>[Support for multiple workspaces in the GitLab for Slack app](https://docs.gitlab.com/administration/settings/slack_app/#enable-support-for-multiple-workspaces) <i>(self-managed only)</i>: <code>Integrations</code></summary>\n\n> The GitLab for Slack app now supports multiple workspaces for GitLab Self-Managed and GitLab Dedicated customers. Enabling multiple workspaces allows organizations with federated Slack environments to maintain seamless GitLab integrations across all their workspaces. To enable support for multiple workspaces, configure the GitLab for Slack app as an [unlisted distributed app](https://api.slack.com/distribution#unlisted-distributed-apps). \n\n</details>\n\n<details><summary>[Delete groups and placeholder users](https://docs.gitlab.com/user/project/import/#placeholder-user-deletion): <code>Importers</code></summary>\n\n> In GitLab 18.0, when you delete a top-level group, placeholder users associated with the group are deleted as well. If placeholder users are associated with other projects, they are only removed from the top-level group. \n> This way, unnecessary placeholder users are removed without disrupting the history or attributions of other projects.\n\n</details>\n\n<details><summary>[GitLab chart 9.0 released with breaking changes](https://docs.gitlab.com/charts/releases/9_0/) <i>(self-managed only)</i>: <code>Cloud Native Installation</code>, <code>Omnibus Package</code></summary>\n\n> * [Breaking change](https://docs.gitlab.com/update/deprecations/#postgresql-14-and-15-no-longer-supported): Support for PostgreSQL 14 and 15 has been removed. Make sure you are running PostgreSQL 16 before upgrading.\n> * [Breaking change](https://docs.gitlab.com/update/deprecations/#major-update-of-the-prometheus-subchart): The bundled Prometheus chart was updated from 15.3 to 27.11. Along with the Prometheus chart upgrade, the Prometheus version was updated from 2.38 to 3.0. Manual steps are required to perform the upgrade. If you have Alertmanager, Node Exporter, or Pushgateway enabled, you must also update your Helm values. For more information, see the [migration guide](https://docs.gitlab.com/charts/releases/9_0.html#prometheus-upgrade).\n> * [Breaking change](https://docs.gitlab.com/update/deprecations/#fallback-support-for-gitlab-nginx-chart-controller-image-v131): The default NGINX controller image was updated from version 1.3.1 to 1.11.2. If you're using the GitLab NGINX chart, and you have set your own NGINX RBAC rules, new RBAC rules must exist. For more information, see the [upgrade guide](https://docs.gitlab.com/charts/releases/8_0/#upgrade-to-86x-851-843-836) for more information.\n\n</details>\n\n<details><summary>[Deletion protection available for all users](https://docs.gitlab.com/administration/settings/visibility_and_access_controls/#deletion-protection): <code>Groups & Projects</code></summary>\n\n> Project and group delayed deletion is now available for all GitLab users, including those on our Free tier. This essential safety feature adds a grace period (7 days on GitLab.com) before deleted groups and projects are permanently removed. This feature allows recovery from accidental deletions without complex recovery operations.\n> \n> By making data safety a core feature, GitLab can help better protect your work against data loss events.\n\n</details>\n\n<details><summary>[Delayed project deletion for user namespaces](https://docs.gitlab.com/user/project/working_with_projects/#delayed-project-deletion): <code>Groups & Projects</code></summary>\n\n> Delayed project deletion is now available for projects in user namespaces (personal projects). Previously, this safeguard against accidental data loss was only available for group namespaces. When you delete a project in your user namespace, it will now enter a \"pending deletion\" state for the duration configured in your instance settings (7 days on GitLab.com), rather than being immediately deleted. This creates a recovery window during which you can restore the project if needed.\n> \n> We hope this enhancement provides greater peace of mind when managing your personal projects in GitLab.\n\n</details>\n\n<details><summary>[New `active` parameter for Groups and Projects REST APIs](https://docs.gitlab.com/api/projects/#list-projects): <code>Groups & Projects</code></summary>\n\n> We've added a new `active` parameter to our Groups and Projects REST APIs that simplifies filtering groups based on their status. When set to `true`, only non-archived groups or projects not marked for deletion are returned. When set to `false`, only archived groups or projects marked for deletion are returned. If the parameter is undefined, no filtering is applied. This enhancement helps you efficiently manage your workflows by targeting specific statuses through simple API calls.\n> \n> Thank you [@dagaranupam](https://gitlab.com/dagaranupam) for adding this parameter to the Projects API.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[GitLab Query Language views enhancements](https://docs.gitlab.com/user/glql/): <code>Wiki</code>, <code>Team Planning</code></summary>\n\n> We've made significant improvements to GitLab Query Language (GLQL) views. These improvements include support for:\n> \n> - The `>=` and `<=` operators for all date types\n> - The **View actions** dropdown in views\n> - The **Reload** action\n> - Field aliases\n> - Aliasing columns to a custom name in GLQL tables\n>         \n> We welcome your feedback on this enhancement, and on GLQL views in general, in [issue 509791](https://gitlab.com/gitlab-org/gitlab/-/issues/509791).\n\n</details>\n\n<details><summary>[Pages template improvements](https://docs.gitlab.com/user/project/pages/getting_started/pages_new_project_template/#project-templates): <code>Pages</code></summary>\n\n> GitLab provides [templates for popular static site generators](https://gitlab.com/pages). We've taken a deep dive into available templates using a scoring framework, and refined the list to include only the most popular templates.\n> \n> Refining templates available for GitLab Pages streamlines the website creation process. Use templates to launch professional-looking sites with minimal technical expertise. Enhanced templates also provide modern, responsive designs, eliminating the need for custom development work.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[View open merge requests targeting files](https://docs.gitlab.com/user/project/repository/files/#view-open-merge-requests-for-a-file): <code>Source Code Management</code></summary>\n\n> Previously, when working on code files, you had no visibility into who else might be modifying\n> the same file in other branches. This lack of awareness led to merge conflicts, duplicated work,\n> and inefficient collaboration.\n> \n> Now you can easily identify all open merge requests that modify the file you're viewing in the\n> repository. This feature helps you:\n> \n> - Identify potential merge conflicts before they happen.\n> - Avoid duplicating work that's already in progress.\n> - Improve collaboration by providing visibility into in-flight changes.\n> \n> A badge displays the number of open merge requests modifying the file, and hovering over it\n> reveals a popover with the list of these merge requests.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[New CI/CD analytics view for projects in limited availability](https://docs.gitlab.com/user/analytics/ci_cd_analytics/): <code>Fleet Visibility</code></summary>\n\n> The redesigned CI/CD analytics view transforms how your development teams analyze, monitor, and optimize pipeline performance\n> and reliability. Developers can access intuitive visualizations in the GitLab UI that reveal performance\n> trends and reliability metrics. Embedding these insights in your project repository eliminates context-switching\n> that disrupts developer flow. Teams can identify and address pipeline bottlenecks that drain productivity.\n> This enhancement leads to faster development cycles, improved collaboration, and data-driven confidence to optimize your\n> CI/CD workflows in GitLab.\n\n</details>\n\n<details><summary>[GitLab Runner 18.0](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 18.0 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [Add `ConfigurationError` and `ExitCodeInvalidConfiguration` to the GitLab Runner build error classifications](https://gitlab.com/gitlab-org/gitlab/-/issues/514297)\n> - [Improve cloud provider error messages for failed cache uploads to cloud storage](https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/5527)\n> \n> #### Bug Fixes:\n> \n> - [GitLab Runner can use cached images even when disallowed](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38706)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-0-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Security scanners now support MR pipelines](https://docs.gitlab.com/ee/user/application_security/detect/roll_out_security_scanning.html#use-security-scanning-tools-with-merge-request-pipelines): <code>API Security</code>, <code>Container Scanning</code>, <code>DAST</code>, <code>Fuzz Testing</code>, <code>SAST</code>, <code>Secret Detection</code>, <code>Software Composition Analysis</code></summary>\n\n> You can now choose to run [Application Security Testing (AST) scanners](https://docs.gitlab.com/ee/user/application_security/detect/) in [merge request (MR) pipelines](https://docs.gitlab.com/ee/ci/pipelines/merge_request_pipelines.html).\n> To minimize the impact to your pipelines, this is as an opt-in behavior you can control.\n> \n> Previously, the default behavior depended on whether you used the [Stable or Latest CI/CD template edition](https://docs.gitlab.com/user/application_security/detect/security_configuration/#template-editions) to enable a scanner:\n> \n> - In Stable templates, scan jobs ran in branch pipelines only. MR pipelines weren't supported.\n> - In Latest templates, scan jobs ran in MR pipelines when an MR was open, and ran in branch pipelines if there was no associated MR. You couldn't control this behavior.\n> \n> Now, a new option, `AST_ENABLE_MR_PIPELINES`, allows you to control whether to run jobs in MR pipelines.\n> The default behavior for both Stable and Latest templates remains the same. Specifically:\n> \n> - Stable templates continue to run scan jobs in branch pipelines by default, but you can set `AST_ENABLE_MR_PIPELINES: \"true\"` to use MR pipelines instead when an MR is open.\n> - Latest templates continue to run scan jobs in MR pipelines by default when an MR is open, but you can set `AST_ENABLE_MR_PIPELINES: \"false\"` to use branch pipelines instead.\n> \n> This improvement affects all security scanning templates except for API Discovery (`API-Discovery.gitlab-ci.yml`), which currently defaults to MR pipelines.\n> We also changed the API Discovery template to align with other Stable templates in GitLab 18.0 and use branch pipeline by default.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Limit maximum user session length](https://docs.gitlab.com/administration/settings/account_and_limit_settings/#set-sessions-to-expire-from-creation-date) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> Administrators can now choose if the maximum length of a user session is computed from the initial sign-in or from the last activity. Users are notified that the session is ending, but cannot prevent the session from expiring or extend the session. This feature is disabled by default.\n> \n> Thank you [John Parent](https://gitlab.kitware.com/john.parent) for your contribution!\n\n</details>\n\n<details><summary>[Granular permissions for job tokens in beta](https://docs.gitlab.com/ci/jobs/fine_grained_permissions/): <code>Permissions</code></summary>\n\n> Pipeline security just got more flexible. Job tokens are ephemeral credentials that provide access to resources in pipelines. Until now, these tokens inherited full permissions from the user, often resulting in unnecessarily broad access capabilities.\n> \n> With our new [fine-grained permissions for job tokens](https://docs.gitlab.com/ee/ci/jobs/fine_grained_permissions.html) beta feature, you can now precisely control which specific resources a job token can access within a project. This allows you to implement the principle of least privilege in your CI/CD workflows, granting only the minimal access necessary for each job to complete its tasks.\n> \n> We're actively seeking community feedback on this feature. If you have questions, want to share your implementation experience, or would like to engage directly with our team about potential improvements, please visit our [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/519575).\n\n</details>\n\n\n\n##### [Monitor](https://about.gitlab.com/stages-devops-lifecycle/monitor/)\n\n<details><summary>[Event data collection](https://docs.gitlab.com/administration/settings/event_data/) <i>(self-managed only)</i>: <code>Application Instrumentation</code></summary>\n\n> In GitLab 18.0, we are enabling event-level product usage data collection from GitLab Self-Managed and GitLab Dedicated instances. Unlike aggregated data, event-level data provides GitLab with deeper insights into usage, allowing us to improve user experience on the platform and increase feature adoption. For detailed instructions on how to adjust data sharing settings, please refer to our documentation.\n\n</details>\n\n\n","released_at":"2025-05-15T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.11","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.11.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.11.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.11.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.11.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.11.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.11.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":7250962,"url":"https://about.gitlab.com/releases/2025/04/17/gitlab-17-11-released/","name":"GitLab 17.11 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/04/17/gitlab-17-11-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.11.0-ee/gitlab-v17.11.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.11.0-ee/gitlab-v17.11.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.11.0-ee/gitlab-v17.11.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.11.0-ee/gitlab-v17.11.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"b7c061ce59a5eca5c5764fcf61be8a5103fb7d55","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/b7c061ce59a5eca5c5764fcf61be8a5103fb7d55","short_id":"b7c061ce","trailers":[],"created_at":"2025-04-16T03:59:00.000+00:00","parent_ids":["088f6c50242a7bef606dd34a11c0ecbe764ec313"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-04-16T03:59:00.000+00:00","committed_date":"2025-04-16T03:59:00.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.11.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.11.0-ee","evidences":[],"created_at":"2025-04-17T14:55:17.487Z","milestones":[{"id":4599726,"iid":110,"state":"closed","title":"17.11","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/110","due_date":"2025-04-11","group_id":9970,"created_at":"2024-05-24T19:20:15.085Z","start_date":"2025-03-15","updated_at":"2025-10-22T16:29:57.419Z","description":"","issue_stats":{"total":2221,"closed":2184}}],"commit_path":"/gitlab-org/gitlab/-/commit/b7c061ce59a5eca5c5764fcf61be8a5103fb7d55","description":"![48 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=48&style=for-the-badge \"New features added in this release\")\n![3837 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3837&style=for-the-badge \"Total features\")\n\n<details><summary>[Configure SAML single sign-on with multiple identity providers in Switchboard](https://docs.gitlab.com/administration/dedicated/configure_instance/saml/) <i>(self-managed only)</i>: <code>GitLab Dedicated</code>, <code>Switchboard</code></summary>\n\n> You can now configure SAML single sign-on (SSO) for your GitLab Dedicated instance for up to ten identity providers (IdPs).\n> \n> All SAML configuration options available for GitLab Dedicated instances can be configured for each individual IdP.\n> \n> If you had previously configured multiple IdPs, you can now view and edit all existing SAML configurations directly in Switchboard.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![13 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=13&style=flat-square \"New features added to this tier in this release\")\n![628 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=628&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Open files as context now available on GitLab Duo Self-Hosted Code Suggestions](https://docs.gitlab.com/user/project/repository/code_suggestions/#using-open-files-as-context) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> On Gitlab Duo Self-Hosted, you can now use [files open in tabs in your IDE](https://docs.gitlab.com/user/project/repository/code_suggestions/#using-open-files-as-context) as context when using Code Suggestions.\n\n</details>\n\n<details><summary>[Select individual models for AI-powered features on GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/configure_duo_features/#configure-the-feature-to-use-a-self-hosted-model) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> On GitLab Duo Self-Hosted, you can now select and configure individual supported models for each GitLab Duo feature and sub-feature on your GitLab Self-Managed instance.\n> \n> To leave feedback, go to [issue 524175](https://gitlab.com/gitlab-org/gitlab/-/issues/524175).\n\n</details>\n\n<details><summary>[Llama 3 models generally available for GitLab Duo Chat and Code Suggestions](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> Llama 3 models are now generally available with Gitlab Duo Self-Hosted to support GitLab Duo Chat and Code Suggestions.\n> \n> To leave feedback on using these models with GitLab Duo Self-Hosted, see [issue 523918](https://gitlab.com/gitlab-org/gitlab/-/issues/523918).\n\n</details>\n\n<details><summary>[More GitLab Duo features now available on GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#supported-gitlab-duo-features) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now use more [GitLab Duo](https://about.gitlab.com/gitlab-duo/) features with GitLab Duo Self-Hosted in your GitLab Self-Managed instance. The following features are available in beta:\n> \n> - [Root Cause Analysis](https://docs.gitlab.com/user/gitlab_duo_chat/examples/#troubleshoot-failed-cicd-jobs-with-root-cause-analysis) \n> - [Vulnerability Explanation](https://docs.gitlab.com/user/application_security/vulnerabilities/#explaining-a-vulnerability)\n> - [Vulnerability Resolution](https://docs.gitlab.com/user/application_security/vulnerabilities/#vulnerability-resolution)\n> - [AI Impact Dashboard](https://docs.gitlab.com/user/analytics/ai_impact_analytics/) \n> - [Discussion Summary](https://docs.gitlab.com/user/discussions/#summarize-issue-discussions-with-duo-chat)\n> - [Merge Request Commit Message](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#generate-a-merge-commit-message)\n> - [Merge Request Summary](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#generate-a-description-by-summarizing-code-changes)\n> - [GitLab Duo for the CLI](https://docs.gitlab.com/editor_extensions/gitlab_cli/#gitlab-duo-for-the-cli)\n> \n> [Code Review Summary](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#summarize-a-code-review) is also available on GitLab Duo Self-Hosted as an experiment.\n\n</details>\n\n<details><summary>[GitLab Duo with Amazon Q is generally available](https://docs.gitlab.com/user/duo_amazon_q/) <i>(self-managed only)</i>: <code>Code Suggestions</code></summary>\n\n> We're excited to announce general availability for GitLab Duo with Amazon Q, a joint offering that brings together the comprehensive GitLab AI-powered DevSecOps platform with autonomous Amazon Q AI agents in a single, integrated solution. GitLab Duo with Amazon Q integrates AI agents directly into development workflows, allowing developers to accelerate key tasks without switching tools. Acting as intelligent assistants within the GitLab DevSecOps platform, these agents automate time-consuming processes like code generation, testing, reviews, and Java modernization, helping teams focus on innovation while maintaining security and quality standards.\n> \n> GitLab Duo with Amazon Q provides major benefits for development teams:\n> \n> - Streamline feature development from idea to code: use `/q dev`, which will convert an issue description directly into merge-ready code in minutes. \n> - Modernize legacy code without the headache: use `/q transform` to automate the entire Java modernization process. \n> - Accelerate code reviews without sacrificing quality: use `/q review` to get instant, intelligent feedback on code quality and security directly in merge requests.\n> - Automate testing to ship with confidence: use `/q test` to generate comprehensive unit tests that understand your application logic.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Increased rule coverage for secret push protection and pipeline secret detection](https://docs.gitlab.com/user/application_security/secret_detection/detected_secrets): <code>Secret Detection</code></summary>\n\n> GitLab secret detection has received significant updates, including 17 new secret push protection rules and 12 new pipeline secret detection rules. Some existing rules have also been updated to improve quality and reduce false positives. For details, see v0.9.0 in the [change log](https://gitlab.com/gitlab-org/security-products/secret-detection/secret-detection-rules/-/blob/main/CHANGELOG.md#v090).\n\n</details>\n\n<details><summary>[Static reachability beta with Python support](https://docs.gitlab.com/user/application_security/dependency_scanning/static_reachability/): <code>Software Composition Analysis</code></summary>\n\n> The Composition Analysis team has released beta support for static reachability for Python. This beta release focuses on enhancing stability, observability, and provides a better user experience via easier configuration.\n> \n> Static reachability enriches software composition analysis (SCA) results. Powered by GitLab Advanced SAST, static reachability scans project source code to identify which open source dependencies are in use.\n> \n> You can use the data produced by static reachability as part of your triage and remediation decision making. Static reachability data can also be used with CVSS and EPSS scores, as well as KEV indicators to provide a more focused view of your vulnerabilities.\n> \n> We welcome feedback on this feature. If you have questions, comments, or would like to engage with our team please see this [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/535498).\n\n</details>\n\n<details><summary>[Dynamic analysis support for reflected XSS checks](https://docs.gitlab.com/user/application_security/dast/browser/checks/): <code>DAST</code></summary>\n\n> The Dynamic Analysis team has introduced a check for [CWE-79](https://cwe.mitre.org/data/definitions/79.html). This work allows our DAST scanner to check for reflected XSS attacks.\n> \n> Checking for Reflective XSS is on by default. To turn off this check, in you configuration, set `DAST_FF_XSS_ATTACK: false`.\n> If you have questions or feedback, see [issue 525861](https://gitlab.com/gitlab-org/gitlab/-/issues/525861).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Customize compliance frameworks with requirements and compliance controls](https://docs.gitlab.com/user/compliance/compliance_center/compliance_status_report/): <code>Compliance Management</code></summary>\n\n> Previously, compliance frameworks in GitLab could be created as a label to identify that your project has certain\n> compliance requirements or needs additional oversight. This label could then be used as a scoping mechanism to\n> ensure that security policies could be enforced on all projects within a group.\n> \n> In this release, we are introducing a new way for compliance managers to get more in-depth compliance monitoring\n> in GitLab through 'requirements'.\n> \n> With requirements, as part of a custom compliance framework, you can define specific requirements from a number of\n> different compliance standards, laws, and regulations that must be followed as an organization.\n> \n> We are also expanding the number of compliance controls (previously known as compliance checks) that we offer from\n> five to over 50! These 50 out-of-the-box (OOTB) controls can be mapped to the compliance framework requirements.\n> \n> These controls check particular project, security, and merge request settings across your GitLab instance to help\n> you meet requirements under a number of different compliance standards, laws, and regulations such as SOC2, NIST,\n> ISO 27001, and the GitLab CIS Benchmark.\n> \n> Adherence to these controls is reflected in standard adherence report, which is redesigned to take into account\n> requirements and the mapping of controls to those requirements.\n> \n> In addition to expanding our OOTB controls, we now allow users to map requirements to external controls, which can\n> be for items, programs, or systems that exist outside the GitLab platform. These mappings allow you to use the\n> GitLab compliance center as the single source of truth when it comes to your compliance monitoring and audit\n> evidence needs.\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[CycloneDX export for the project dependency list](https://docs.gitlab.com/user/application_security/dependency_list/#download-the-dependency-list): <code>Dependency Management</code></summary>\n\n> Many organizations now require a software bill of materials (SBOM) to meet regulatory requirements and help further increase the security of the software supply chain. Previously, you could only export your dependency list as a JSON or CSV file from GitLab. Now, GitLab can generate your SBOM by exporting your dependency list in the widely-adopted CycloneDX format. \n> \n> To download an SBOM directly as a CycloneDX file, in the dependency list, select **Export** > **Export as CycloneDX (JSON)**.\n\n</details>\n\n<details><summary>[Email delivery for dependency list and vulnerability report export](https://docs.gitlab.com/user/application_security/dependency_list/#download-the-dependency-list): <code>Dependency Management</code></summary>\n\n> Previously, when exporting the dependency list or the vulnerability report, you had to remain on the page until the export completed before you could download the report.\n> \n> Now, you are notified by email with a download link when the dependency list or vulnerability report export is complete. \n\n</details>\n\n<details><summary>[Export dependency list in CSV format](https://docs.gitlab.com/ee/user/application_security/dependency_list/#download-the-dependency-list): <code>Dependency Management</code></summary>\n\n> Previously, you could not export a dependency list from GitLab as CSV file. Now, when you download a dependency list, you can select the new CSV option to export the list in this format.\n\n</details>\n\n<details><summary>[Tool filter replaced with Scanner and Report Type filters](https://docs.gitlab.com/user/application_security/vulnerability_report/#report-type-filter): <code>Vulnerability Management</code></summary>\n\n> Previously, the **tool** search filter in the vulnerability report allowed you to filter results based on a single group of tools that included the type of scanner (like ESLint or Gemnasium) and the type of report (like SAST or container scanning). \n> \n> To help you find the appropriate tools more easily, we've replaced the **tool** filter with the **scanner** filter and the **report type** filter. You can now filter your search based on each of these types of tools separately.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![12 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=12&style=flat-square \"New features added to this tier in this release\")\n![716 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=716&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Duo Chat now uses Anthropic Claude Sonnet 3.7](https://docs.gitlab.com/user/gitlab_duo_chat/examples/): <code>Duo Chat</code></summary>\n\n> GitLab Duo Chat now uses Anthropic Claude Sonnet 3.7 as the base model, replacing Claude 3.5 Sonnet for answering most questions.\n> \n> Claude 3.7 Sonnet has strongly improved coding and reasoning capabilities, making it even better at explaining code, generating code, processing text data, and answering complex DevSecOps questions. You'll notice more detailed and accurate Chat responses in these areas.\n> \n> This upgrade applies to all Chat features, and ensures a consistent and improved experience across the entire Chat interface.\n\n</details>\n\n<details><summary>[Manage multiple conversations in GitLab Duo Chat](https://docs.gitlab.com/user/gitlab_duo_chat/#have-multiple-conversations-with-chat): <code>Duo Chat</code></summary>\n\n> Multiple conversations with GitLab Duo Chat is now available in GitLab Self-Managed instances in the web UI. You can create new conversations, browse your conversation history, and switch between conversations without losing context.\n> \n> For your privacy, conversations with no activity for 30 days are automatically deleted, and you can manually delete any conversation at any time. On GitLab Self-Managed, administrators can reduce how long conversations are retained for.\n> \n> Share your experience with us in [issue 526013](https://gitlab.com/gitlab-org/gitlab/-/issues/526013).\n\n</details>\n\n<details><summary>[SAML verification for contribution reassignment when importing to GitLab.com](https://docs.gitlab.com/user/project/import/#requirements): <code>Importers</code></summary>\n\n> In this milestone, we've added SAML verification checks to contribution reassignment when importing to GitLab.com. These checks prevent reassignment errors in groups where SAML SSO is enabled.\n> \n> If you import to GitLab.com and use SAML SSO for GitLab.com groups, all users must link their SAML identity to their GitLab.com account before you can reassign contributions and memberships.\n> When you reassign contributions to users who have not verified their SAML identity, you'll receive error messages. These messages explain the steps to take to help ensure your group memberships are attributed correctly.\n\n</details>\n\n<details><summary>[Geo - New replicables view](https://docs.gitlab.com/administration/geo/) <i>(self-managed only)</i>: <code>Disaster Recovery</code>, <code>Geo-replication</code></summary>\n\n> We are introducing a new look and feel for the replicables view in Geo. The new experience better aligns with the rest of GitLab and provides a more streamlined and less cluttered interface to review the synchronization and verification status of Geo secondary sites. In addition, there is now a click-through detailed view for each replicable item, providing information such as the primary and secondary checksums, error details, and much more. This information will make troubleshooting Geo synchronization issues much easier.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Set work in progress limits by weight](https://docs.gitlab.com/ee/user/project/issue_board.html#work-in-progress-limits): <code>Team Planning</code></summary>\n\n> You can now set work in progress limits by weight in addition to issue count, giving you more flexibility in managing your team's workload. \n> \n> Control the flow of work based on the complexity or effort of each task, rather than just the number of issues. Teams that use issue weights to represent effort can now ensure they don't overcommit by limiting the total weight of issues in a given board list.\n> \n> Use this feature to optimize your team's productivity and create a more balanced workflow that accounts for varying task complexity.\n\n</details>\n\n<details><summary>[Epic, issue, and task custom fields](https://docs.gitlab.com/user/work_items/custom_fields/): <code>Team Planning</code></summary>\n\n> With this release, you can configure text, number, single-select,\n> and multi-select custom fields for issues, epics, tasks, objectives, and key\n> results. While labels have been the primary way to categorize work items up\n> to this point, custom fields provide a more user-friendly approach for adding\n> structured metadata to your planning artifacts.\n> \n> Custom fields are configured in your top-level group and cascade to all subgroups and projects.\n> You can map fields to one or more work item types and filter by custom field values in the issues and epics lists.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Use imported files as context in Code Suggestions](https://docs.gitlab.com/user/project/repository/code_suggestions/#using-imported-files-as-context): <code>Code Suggestions</code></summary>\n\n> GitLab Duo Code Suggestions can now use imported files in your IDE to enrich and improve the quality of suggestions. Imported files provide additional context about your project. Imported file context is supported for JavaScript and TypeScript files.\n\n</details>\n\n<details><summary>[GitLab Eclipse plugin available in beta](https://docs.gitlab.com/editor_extensions/eclipse/setup/): <code>Editor Extensions</code></summary>\n\n> We're thrilled to announce the beta release of the GitLab Eclipse plugin, now available in the [Eclipse Marketplace](https://marketplace.eclipse.org/content/gitlab-eclipse). This powerful new plugin extends GitLab Duo features directly into your Eclipse IDE, giving you seamless access to Duo Chat and AI-powered code suggestions. \n> \n> As the plugin is currently in beta, we're actively improving features, including expanding authentication options, and refining the final user experience. Your feedback is invaluable. Please share your thoughts to help us make the GitLab Eclipse plugin even better by adding your feedback [in issue 162](https://gitlab.com/gitlab-org/editor-extensions/gitlab-eclipse-plugin/-/issues/162).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Assign projects when creating compliance frameworks](https://docs.gitlab.com/user/compliance/compliance_frameworks/#apply-a-compliance-framework-to-a-project): <code>Compliance Management</code></summary>\n\n> In the past, you couldn't assign new compliance frameworks to projects without navigating to the **Projects** tab\n> in the compliance center after creating the compliance framework. This situation created unnecessary friction to\n> creating new compliance frameworks in your groups.\n> \n> In GitLab 17.11, when creating a compliance framework, we introduced a new step that provides the option of\n> assigning multiple projects to the compliance framework before it is created.\n> \n> This new feature:\n> \n> - Helps keep you in the compliance framework creation workflow.\n> - Provides guidance for you to understand that compliance frameworks work together with projects in a group to\n>   monitor and enforce compliance adherence for the entire group.\n\n</details>\n\n<details><summary>[Token statistics for service account management](https://docs.gitlab.com/ee/user/profile/service_accounts.html): <code>System Access</code></summary>\n\n> The token management interface for service accounts now includes a helpful statistics dashboard that provides at-a-glance information about your token inventory. This information can help you assess the state of your tokens and identify tokens that require attention.\n> The statistics dashboard includes four key metrics:\n>   - Active tokens: View the total number of active tokens\n>   - Expiring tokens: Identify tokens that expire in the next two weeks\n>   - Revoked tokens: Track tokens that were manually revoked\n>   - Expired tokens: Monitor tokens that have previously expired\n> Thank you [Chaitanya Sonwane](https://gitlab.com/chaitanyason9) for your contribution!\n\n</details>\n\n<details><summary>[Service accounts UI](https://docs.gitlab.com/ee/user/profile/service_accounts.html): <code>System Access</code></summary>\n\n> You now can use a dedicated space to create and manage service accounts in the GitLab UI. This interface allows you to create, monitor, and control automated access to your GitLab resources. Previously, this functionality was only available in the API.\n\n</details>\n\n<details><summary>[Automated Duo Pro and Duo Enterprise seat assignment](https://docs.gitlab.com/ee/user/group/saml_sso/group_sync.html#gitlab-duo-seat-assignment): <code>System Access</code></summary>\n\n> You can now automatically assign a Duo Pro or Duo Enterprise seat to users with SAML Group Sync. As long as the GitLab group has available Duo Pro or Duo Enterprise seats, any user mapped from the identity provider is automatically assigned a seat. This reduces the effort to manage seat assignments.\n\n</details>\n\n\n\n#### Core\n\n![22 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=22&style=flat-square \"New features added to this tier in this release\")\n![2377 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2377&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Kubernetes 1.32 support](https://docs.gitlab.com/ee/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features): <code>Deployment Management</code></summary>\n\n> This release adds full support for Kubernetes version 1.32, released in December 2024. If you deploy your apps to Kubernetes, you can now upgrade your connected clusters to the most recent version and take advantage of all its features.\n> \n> You can read more about [our Kubernetes support policy and other supported Kubernetes versions](https://docs.gitlab.com/ee/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features).\n\n</details>\n\n<details><summary>[All auto-disabled webhooks now automatically re-enable](https://docs.gitlab.com/user/project/integrations/webhooks/#auto-disabled-webhooks): <code>Webhooks</code></summary>\n\n> With this release, webhooks that return `4xx` errors are now automatically re-enabled. All errors (`4xx`, `5xx`, or server errors) are treated the same way, allowing for more predictable behavior and easier troubleshooting. This change was announced in [this blog post](https://about.gitlab.com/blog/gitlab-webhooks-get-smarter-with-self-healing-capabilities/).\n> \n> Failing webhooks are temporarily disabled for one minute, extending to a maximum of 24 hours. After a webhook fails 40 consecutive times, it now becomes permanently disabled.\n> \n> Webhooks that were permanently disabled in GitLab 17.10 and earlier underwent a data migration.\n> \n> - For GitLab.com, these changes apply automatically.\n> - For GitLab Self-Managed and GitLab Dedicated, these changes affect only those instances where the `auto_disabling_webhooks` `ops` flag is enabled.\n> \n> Thanks to [Phawin](https://gitlab.com/lifez) for [this community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/166329)!\n\n</details>\n\n<details><summary>[Ghost user contributions auto-mapped during imports](https://docs.gitlab.com/user/project/import/#user-contribution-and-membership-mapping): <code>Importers</code></summary>\n\n> Previously, ghost user contributions would create placeholder references that required manual reassignment, creating extra work during migrations.\n> Now, importers using new [contributions and membership mapping functionality](https://docs.gitlab.com/user/project/import/#user-contribution-and-membership-mapping), migration by direct transfer, GitHub, Bitbucket Server and Gitea importers,\n> handle ghost user contributions more intelligently.\n> When importing content to GitLab, contributions previously made by the ghost user on\n> the source instance are now automatically mapped to the ghost user on the destination instance.\n> \n> This enhancement eliminates the creation of unnecessary placeholder users for ghost user contributions,\n> reducing clutter in user mapping interface and simplifying the migration process.\n\n</details>\n\n<details><summary>[Filter placeholder users in Admin area](https://docs.gitlab.com/administration/admin_area/#administering-users): <code>Importers</code></summary>\n\n> Previously, placeholder users created during imports appeared mixed with regular users \n> without clear distinction in the **Admin** area **Users** page.\n> \n> With this release, administrators can now filter for placeholder accounts from the search box\n> in the **Users** page in the **Admin** area. To do this, select `Type` in the dropdown list,\n> then choose `Placeholder`.\n\n</details>\n\n<details><summary>[Placeholder user limits appear in group usage quotas](https://docs.gitlab.com/user/project/import/#placeholder-user-limits): <code>Importers</code></summary>\n\n> For imports to GitLab.com, placeholder users are limited per top-level group. These limits depend on your GitLab license and number of seats. With this release, it's possible to check your placeholder user usage and limits for a top-level group in the UI.\n> \n> To view your current usage and limits:\n> \n>   1. On the left sidebar, select **Search or go to** and find your group. This group must be at the top level.\n>   1. Select **Settings > Usage Quotas**.\n>   1. Select the **Import** tab.\n\n</details>\n\n<details><summary>[Linux package improvements](https://docs.gitlab.com/omnibus/) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> In GitLab 18.0, the minimum-supported version of PostgreSQL will be version 16. To prepare for this change, on\n> instances that don't use [PostgreSQL Cluster](https://docs.gitlab.com/administration/postgresql/replication_and_failover/),\n> upgrades to GitLab 17.11 will attempt to automatically upgrade PostgreSQL to version 16.\n> \n> If you use [PostgreSQL Cluster](https://docs.gitlab.com/administration/postgresql/replication_and_failover/) or [opt out of this automated upgrade](https://docs.gitlab.com/omnibus/settings/database/#opt-out-of-automatic-postgresql-upgrades), you must [manually upgrade to PostgreSQL 16](https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server)\n> to be able to upgrade to GitLab 18.0.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Improved wiki sidebar styling](https://docs.gitlab.com/user/project/wiki/#customize-sidebar): <code>Wiki</code></summary>\n\n> The custom wiki sidebar now features improved styling with reduced heading sizes and better left-padding for lists. These ergonomic enhancements improve the readability of custom navigation created through the `_sidebar` wiki page.\n>  \n>  Custom sidebars help teams organize their wiki content in a way that makes sense for their unique knowledge base structure. With this styling update, the sidebar is now easier to scan, creating a clearer visual hierarchy that helps team members find relevant information more quickly.\n\n</details>\n\n<details><summary>[Display last comment as a column in GLQL views](https://docs.gitlab.com/user/glql/fields/#last-comment): <code>Wiki</code>, <code>Team Planning</code></summary>\n\n> GLQL views now support displaying the last comment on an issue or merge request as a column. By including `lastComment` as a field in your GLQL query, you can see the most recent updates without leaving your current context. \n> \n> Previously, you had to open each issue or merge request individually to view the last comment, which was time consuming and made it difficult to get a quick overview of progress. This improvement helps teams maintain momentum by providing at-a-glance visibility into ongoing conversations and status updates.\n> \n> We welcome your feedback on this enhancement and GLQL views in general on our [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/509791).\n\n</details>\n\n<details><summary>[Nuxt project template for GitLab Pages](https://docs.gitlab.com/user/project/pages/getting_started/pages_new_project_template/): <code>Pages</code></summary>\n\n> GitLab provides templates for the most popular Static Site Generators (SSGs), and you can now create a GitLab Pages site using Nuxt, a powerful framework built on Vue.js. Nuxt is particularly valuable for teams looking to build modern, performant web applications with less configuration overhead.\n> \n> This addition expands your options for quickly launching a Pages site with built-in CI/CD pipelines and a modern development experience, without spending time on initial setup and configuration.\n\n</details>\n\n<details><summary>[New issue look now generally available](https://docs.gitlab.com/user/project/issues/): <code>Team Planning</code></summary>\n\n> As of this release, the new issue look is generally available and replaces the legacy issue experience. Issues now share a common framework with epics and tasks, featuring real-time updates and workflow improvements:\n> \n> - **Drawer view:** You can open items from lists or boards in a drawer for quick viewing without leaving your current context. A button at the top lets you expand to a full-page view.\n> - **Change type:** Convert types between epics, issues, and tasks using the “Change type” action (replaces “Promote to epic”)\n> - **Start date:** Issues now support start dates, aligning their functionality with epics and tasks.\n> - **Ancestry:** The complete hierarchy is above the title and the Parent field in the sidebar. To manage relationships, use the new quick action commands `/set_parent`, `/remove_parent`, `/add_child`, and `/remove_child`.\n> - **Controls:** All actions are now accessible from the top menu (vertical ellipsis), which remains visible in the sticky header when scrolling.\n> - **Development:** All development items (merge requests, branches, and feature flags) related to an issue or task are now consolidated in a single, convenient list.\n> - **Layout:** UI improvements create a more seamless experience between issues, epics, tasks, and merge requests, helping you navigate your workflow more efficiently.\n> - **Linked items:** Create relationships between tasks, issues, and epics with improved linking options. Drag and drop to change link types and toggle the visibility of labels and closed items.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Extension marketplace for Web IDE on self-managed instances](https://docs.gitlab.com/administration/settings/vscode_extension_marketplace/): <code>Web IDE</code></summary>\n\n> We're thrilled to announce the launch of the extension marketplace in the Web IDE for self-managed users. With the extension marketplace, you can discover, install, and manage third-party extensions to enhance your development experience. \n> \n> By default, the GitLab instance is configured to use the Open VSX extension registry. To activate this, follow the [enable with default extension registry](https://docs.gitlab.com/administration/settings/vscode_extension_marketplace/#enable-with-default-extension-registry) steps.\n> \n> If you want to use your own or custom registry, you also have the option to [connect a custom extension registry](https://docs.gitlab.com/administration/settings/vscode_extension_marketplace/#customize-extension-registry). This provides you with more flexibility to manage available extensions.\n> \n> After enabling the extension marketplace, individual users must still opt in to use it. They can do this by going to the **Integrations** section in their [Preferences](https://gitlab.com/-/profile/preferences) settings.\n> \n> It's important to note that some extensions require a local runtime environment and are not compatible with the web-only version. Despite this, you can still choose from thousands of available extensions to boost your productivity and customize your workflow.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Improved pipeline graph visualization for failed jobs](https://docs.gitlab.com/ci/pipelines/#view-pipelines): <code>Pipeline Composition</code></summary>\n\n> You can now quickly identify failed jobs in the pipeline graph with new visual indicators. Failed job groups are highlighted in the pipeline graph, and failed jobs are grouped at the top of each stage. This improved visualization helps you troubleshoot pipeline failures without having to search through complex pipeline structures.\n\n</details>\n\n<details><summary>[Force-cancel CI/CD jobs stuck in canceling state](https://docs.gitlab.com/ci/jobs/#force-cancel-a-job): <code>Continuous Integration (CI)</code></summary>\n\n> CI/CD jobs can occasionally get stuck in the 'canceling' state, blocking deployments or access to shared resources.\n> \n> Users with the Maintainer [role](https://docs.gitlab.com/user/permissions/) can now force-cancel these stuck jobs directly from the job logs page, ensuring problematic jobs can be properly terminated.\n\n</details>\n\n<details><summary>[Improved runner management in projects](https://docs.gitlab.com/ci/runners/runners_scope/#project-runners): <code>Fleet Visibility</code></summary>\n\n> You can now manage runners more efficiently in your projects. Runners are displayed in a single-column layout and organized in their own lists instead of the previous two-column view.\n> \n> This improved organization makes it simpler to find and manage runners, with new features including a list of assigned projects, runner managers, and jobs that a runner has run. For information about additional runner management improvements planned for GitLab 18.0, see [issue 33803](https://gitlab.com/gitlab-org/gitlab/-/issues/33803).\n\n</details>\n\n<details><summary>[GitLab Runner 17.11](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 17.11 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [Code sign GitLab Runner Windows executables](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/2483)\n> \n> #### Bug Fixes:\n> \n> - [Cleaning Git configuration in GitLab Runner 17.10.0 results in an error](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38681)\n> - [The `FF_DISABLE_UMASK_FOR_KUBERNETES_EXECUTOR` flag doesn't disable the `umask` command](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38382)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-11-stable/CHANGELOG.md).\n\n</details>\n\n<details><summary>[CI/CD pipeline inputs](https://docs.gitlab.com/ci/inputs/#for-a-pipeline): <code>Pipeline Composition</code></summary>\n\n> CI/CD variables are essential for dynamic CI/CD workflows, and are used for many things, including as environment variables, context variables, tool configuration, and matrix variables. But developers sometimes rely on CI/CD variables to inject [pipeline variables](https://docs.gitlab.com/ci/variables/#use-pipeline-variables) into pipelines to manually modify pipeline behavior, which have some risks due to the higher precedence of pipeline variables.\n> \n> In GitLab 17.11 and later, you can now use `inputs` to safely modify pipeline behavior instead of using pipeline variables, including in scheduled pipelines, downstream pipelines, triggered pipelines, and other cases. Inputs provide developers with a more structured and flexible solution for injecting dynamic content at CI/CD job runtime. After you switch to inputs, you can completely [disable access to pipeline variables](https://docs.gitlab.com/ci/variables/#restrict-pipeline-variables).\n> \n> We'd greatly appreciate it if you could try it out and share your feedback through this dedicated [issue](https://gitlab.com/gitlab-org/gitlab/-/issues/533802).\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Docker Hub authentication UI for the dependency proxy](https://docs.gitlab.com/user/packages/dependency_proxy/#authenticate-with-docker-hub): <code>Container Registry</code></summary>\n\n> We're excited to announce UI support for Docker Hub authentication in the GitLab Dependency Proxy. This feature was initially introduced in GitLab 17.10 with GraphQL API support only, and now includes a user interface for easier configuration.\n> \n> With this enhancement, you can now configure Docker Hub authentication directly from your group settings page, helping you:\n> \n> * Avoid pipeline failures due to rate limits.\n> * Access private Docker Hub images.\n> * Store your Docker Hub credentials, [personal access token](https://docs.docker.com/security/for-developers/access-tokens/), or [organization access tokens](https://docs.docker.com/security/for-admins/access-tokens/) securely.\n> \n> This streamlined approach makes it easier to maintain uninterrupted access to Docker Hub images in your CI/CD pipelines without using the GraphQL API.\n\n</details>\n\n<details><summary>[Enhance security with protected container tags](https://docs.gitlab.com/user/packages/container_registry/protected_container_tags/): <code>Container Registry</code></summary>\n\n> Container registries are critical infrastructure for modern DevSecOps teams. Until now, GitLab users with the Developer role or higher could push and delete any container tag in their projects, creating risks of accidental or unauthorized changes to production-critical container images.\n> \n> With protected container tags, you now have fine-grained control over who can push or delete specific container tags. You can:\n> \n> - Create up to five protection rules per project.\n> - Use RE2 regex patterns to protect tags like `latest`, semantic versions (for example, `v1.0.0`), or stable release tags (for example, `main-stable`).\n> - Restrict push and delete operations to Maintainer, Owner, or Administrator roles.\n> - Prevent protected tags from being removed by cleanup policies.\n> \n> This feature requires the next-generation container registry, which is already enabled by default on GitLab.com. For GitLab Self-Managed instance, you'll need to enable the [metadata database](https://docs.gitlab.com/administration/packages/container_registry_metadata_database/) to use protected container tags.\n\n</details>\n\n<details><summary>[Safeguard your registry with protected Maven packages](https://docs.gitlab.com/ee/user/packages/package_registry/package_protection_rules.html): <code>Package Registry</code></summary>\n\n> We're thrilled to introduce support for protected Maven packages to enhance the security and stability of your GitLab package registry. Accidental modification of packages can disrupt the entire development process. With protected packages, you can safeguard your most important dependencies against unintended changes. \n> \n> In GitLab 17.11, you can now protect Maven packages by creating protection rules. If a package matches a protection rule, only specified users can push new versions of the package. Package protection rules prevent accidental overwrites, improve compliance with regulatory requirements, and reduce the need for manual oversight.\n> \n> [Protected packages](https://gitlab.com/groups/gitlab-org/-/epics/5574) support for Maven and other package formats are all community contributions from `gerardo-navarro` and the Siemens crew. Thank you, Gerardo, and the rest of the crew from Siemens for their many contributions to GitLab! If you want to learn more about how Gerardo and the Siemens crew contributed this change, check out this [video](https://www.youtube.com/watch?v=5-nQ1_Mi7zg) in which Gerardo shares his learnings and best practices for contributing to GitLab based on his experience as an external contributor.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Enhanced sorting options for access tokens](https://docs.gitlab.com/user/profile/personal_access_tokens/): <code>System Access</code></summary>\n\n> There are now additional sorting options for access tokens in the UI and API. These sorting options complement GitLab existing token management capabilities, giving you more control over your access token inventory, and helping you better maintain access token security. The new sorting options include:\n> \n> - Sort by expiration date (ascending): View the tokens that expire soonest.\n> - Sort by expiration date (descending): View the tokens with the longest remaining lifetime.\n> - Sort by last used date (ascending): View the tokens that have not been used recently.\n> - Sort by last used date (descending): View the tokens used most recently.\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Store and filter a `source` value for CI/CD jobs](https://docs.gitlab.com/api/jobs/#view-the-source-of-a-job): <code>Security Policy Management</code></summary>\n\n> GitLab 17.11 introduces a new feature that allows users to verify the origin of build artifacts by tracking the source attribute of CI/CD jobs. This enhancement is particularly valuable for security and compliance workflows. For example, organizations can implement software supply chain security measures or require verifiable evidence of security scans for compliance purposes.\n> \n> Jobs in GitLab now store and display a `source` value that identifies whether they originated from:\n> \n> - A scan execution policy\n> - A pipeline execution policy\n> - A regular pipeline\n> \n> You can access the `source` attribute on the **Build** > **Jobs** page with a new filter option, using the Jobs API, or through the ID token `claims` for artifact verification.\n> \n> With this new feature, you can now:\n> \n> - Verify the authenticity of security scan results.\n> - Filter jobs by source type to quickly identify policy-enforced scans.\n> - Implement cryptographic verification of artifacts using the new ID token claims.\n> - Ensure compliance requirements are met with proper audit trails.\n> \n> Security and compliance teams can leverage this feature to:\n> \n> - View only policy-enforced jobs using the new filter on the Jobs page.\n> - Automate tasks by accessing the `source` field in the Jobs API.\n> - Implement artifact verification using the new ID token claims:\n> \n>   - `job_source`: Identifies the job's origin.\n>   - `job_policy_ref_uri`: Points to the policy file (for policy-defined jobs).\n>   - `job_policy_ref_sha`: Contains the git commit SHA of the policy.\n\n</details>\n\n\n\n##### [Monitor](https://about.gitlab.com/stages-devops-lifecycle/monitor/)\n\n<details><summary>[Pre-deployment opt-out toggle to disable event data sharing](https://docs.gitlab.com/administration/settings/event_data/): <code>Application Instrumentation</code></summary>\n\n> In GitLab 18.0, we plan to enable event-level product usage data collection from GitLab Self-Managed and GitLab Dedicated instances. Unlike aggregated data, event-level data provides GitLab with deeper insights into usage, allowing us to improve user experience on the platform and increase feature adoption.\n> \n> Starting in GitLab 17.11, you will have the ability to opt out of event data collection before it starts, effectively allowing you to choose participation in advance. For more information and details on how to opt-out please see our documentation.\n\n</details>\n\n\n","released_at":"2025-04-17T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.10","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.10.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.10.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.10.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.10.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.10.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.10.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":7060522,"url":"https://about.gitlab.com/releases/2025/03/20/gitlab-17-10-released/","name":"GitLab 17.10 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/03/20/gitlab-17-10-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.10.0-ee/gitlab-v17.10.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.10.0-ee/gitlab-v17.10.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.10.0-ee/gitlab-v17.10.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.10.0-ee/gitlab-v17.10.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"ef8041bebeac4b902db1666c582a3de1d495ae39","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/ef8041bebeac4b902db1666c582a3de1d495ae39","short_id":"ef8041be","trailers":[],"created_at":"2025-03-19T10:32:24.000+00:00","parent_ids":["cbdde3fc461f96c0d72b08852563f2d032a2772d"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-03-19T10:32:24.000+00:00","committed_date":"2025-03-19T10:32:24.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.10.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.10.0-ee","evidences":[],"created_at":"2025-03-20T14:48:48.388Z","milestones":[{"id":4599725,"iid":109,"state":"closed","title":"17.10","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/109","due_date":"2025-03-14","group_id":9970,"created_at":"2024-05-24T19:19:32.653Z","start_date":"2025-02-15","updated_at":"2025-10-22T16:29:17.183Z","description":"","issue_stats":{"total":2312,"closed":2293}}],"commit_path":"/gitlab-org/gitlab/-/commit/ef8041bebeac4b902db1666c582a3de1d495ae39","description":"![37 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=37&style=for-the-badge \"New features added in this release\")\n![3789 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3789&style=for-the-badge \"Total features\")\n\n<details><summary>[Manage multiple conversations in GitLab Duo Chat](https://docs.gitlab.com/user/gitlab_duo_chat/#have-multiple-conversations-with-chat) <i>(SaaS only)</i>: <code>Duo Chat</code></summary>\n\n> Maintaining context across different topics in GitLab Duo Chat is now easier with multiple conversations. You can create new conversations, browse your conversation history, and switch between conversations.\n> \n> Previously, starting a new conversation meant losing the context of your existing chat. Now, you can manage multiple conversations on different topics. Each conversation maintains its own context, so for example, you can ask follow-up questions about code explanations in one conversation, whilst preparing a work-plan in another conversation.\n> \n> When you need to revisit previous discussions, select the new chat history icon to see all your recent conversations. Conversations are automatically organized by most recent activity, making it easy to pick up where you left off.\n> \n> For your privacy, conversations with no activity for 30 days are automatically deleted, and you can manually delete any conversation at any time.\n> \n> This feature is currently available only on GitLab.com in the web UI. It is not available in GitLab Self-Managed instances, nor in IDE integrations.\n> \n> Share your experience with us in [issue 526013](https://gitlab.com/gitlab-org/gitlab/-/issues/526013).\n\n</details>\n\n<details><summary>[Expanded AWS Regions available for GitLab Dedicated failover instances](https://docs.gitlab.com/subscriptions/gitlab_dedicated/data_residency_and_high_availability/) <i>(self-managed only)</i>: <code>GitLab Dedicated</code>, <code>Switchboard</code></summary>\n\n> GitLab Dedicated customers can now select from an expanded list of AWS regions when choosing where to host their failover instance for [disaster recovery](https://docs.gitlab.com/subscriptions/gitlab_dedicated/data_residency_and_high_availability/#disaster-recovery).\n> \n> Expanding failover support to additional regions enables GitLab Dedicated customers to fully use the disaster recovery functionality of GitLab Dedicated regardless of which AWS region they need to use to satisfy their data residency needs.\n> \n> These newly available regions are only available for hosting failover instances as they do not fully support certain AWS features that GitLab Dedicated relies on.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![11 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=11&style=flat-square \"New features added to this tier in this release\")\n![615 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=615&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Select models for AI-powered features on GitLab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/configure_duo_features/#configure-the-feature-to-use-a-self-hosted-model) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> On GitLab Duo Self-Hosted, you can now select individual supported models for each GitLab Duo Chat sub-feature on your self-managed instance. Model selection and configuration for Chat sub-features is now in beta.\n> \n> To leave feedback, go to [issue 524175](https://gitlab.com/gitlab-org/gitlab/-/issues/524175).\n\n</details>\n\n<details><summary>[AI Impact Dashboard available on GitLab Duo Self-Hosted Code Suggestions](https://docs.gitlab.com/user/analytics/ai_impact_analytics/) <i>(self-managed only)</i>: <code>Self-Hosted Models</code>, <code>Value Stream Management</code>, <code>DORA Metrics</code></summary>\n\n> You can now use the AI Impact Dashboard with GitLab Duo Self-Hosted Code Suggestions on your self-managed instance to help you understand the impact of GitLab Duo on your productivity. The AI Impact Dashboard is in beta with GitLab Duo Self-Hosted, and you can use this feature with your self-managed instance and Visual Studio Code, Microsoft Visual Studio, JetBrains, and Neovim IDEs.\n> \n> Use the AI Impact Dashboard to compare AI usage trends with metrics like lead time, cycle time, DORA, and vulnerabilities. This allows you to measure how much time is saved in your end-to-end workstream using GitLab Duo Self-Hosted, whilst staying focused on business outcomes rather than developer activity.\n> \n> Please leave feedback on the AI Impact Dashboard in [issue 456105](https://gitlab.com/gitlab-org/gitlab/-/issues/456105).\n\n</details>\n\n<details><summary>[Meta Llama 3 models available for GitLab Duo Self-Hosted Code Suggestions and Chat](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_models_and_hardware_requirements/#supported-models) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now use select Meta Llama 3 models with GitLab Duo Self-Hosted. These models are in beta for GitLab Duo Self-Hosted to support GitLab Duo Chat and Code Suggestions.\n> \n> Please leave feedback on using these models with GitLab Duo Self-Hosted in [issue 523912](https://gitlab.com/gitlab-org/gitlab/-/issues/523917).\n\n</details>\n\n<details><summary>[Root Cause Analysis available on Gitlab Duo Self-Hosted](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/#supported-gitlab-duo-features) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now use [GitLab Duo Root Cause Analysis](https://about.gitlab.com/blog/developing-gitlab-duo-blending-ai-and-root-cause-analysis-to-fix-ci-cd/) on GitLab Duo Self-Hosted. This feature is in beta for GitLab Self-Managed instances using GitLab Duo Self-Hosted, with support for Mistral, Anthropic, and OpenAI GPT model families.\n> \n> With Root Cause Analysis on GitLab Duo Self-Hosted, you can troubleshoot failed jobs in CI/CD pipelines faster without compromising data sovereignty. Root Cause Analysis analyzes the failed job log, quickly determines the root cause of the job failure, and suggests a fix for you.\n> \n> Note that this feature currently has limited functionality, and full functionality is planned for 17.11.\n> Additional information is available in\n> [troubleshooting documentation](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/troubleshooting/#feature-not-accessible-or-feature-button-not-visible)\n> and in issue [527128](https://gitlab.com/gitlab-org/gitlab/-/issues/527128).\n> \n> Please leave feedback on Root Cause Analysis for GitLab Duo Self-Hosted in [issue 523912](https://gitlab.com/gitlab-org/gitlab/-/issues/523912).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[New insights into GitLab Duo Code Suggestions and GitLab Duo Chat trends](https://docs.gitlab.com/user/analytics/ai_impact_analytics/): <code>Value Stream Management</code></summary>\n\n> The AI comparison metrics panel on the AI Impact Dashboard now provides month-over-month (MoM) tracking for GitLab Duo Code Suggestions acceptance rate and GitLab Duo Chat usage (MoM%). These new trend-based insights complement the existing Duo Code Suggestions and Duo Chat tiles, which provide a 30-day snapshot of these metrics.\n> With these additional metrics, managers can better measure the AI impact on their software development processes and identify patterns, by comparing Code Suggestions acceptance rate and Duo Chat usage with other SDLC metrics over time.\n\n</details>\n\n<details><summary>[New visualization of DevOps performance with DORA metrics across projects](https://docs.gitlab.com/user/analytics/value_streams_dashboard/#projects-by-dora-metric): <code>Value Stream Management</code>, <code>DORA Metrics</code></summary>\n\n> We are excited to introduce the **Projects by DORA metric** panel, a new addition to the [Value Streams Dashboard](https://www.youtube.com/watch?v=EA9Sbks27g4). This table lists all projects in the top-level group, with breakdown into the [four DORA metrics](https://about.gitlab.com/solutions/value-stream-management/dora/#overview). Managers can use this table to identify high, medium, and low-performing projects. This information can also help make data-driven decisions, allocate resources effectively, and focus on initiatives that enhance software delivery speed, stability, and reliability.\n> \n> The [DORA metrics](https://docs.gitlab.com/user/analytics/dora_metrics/) are available out-of-the-box in GitLab, and now together with the [**DORA Performers score** panel](https://about.gitlab.com/blog/inside-dora-performers-score-in-gitlab-value-streams-dashboard/) executives have a complete view into their organization's DevOps health top to bottom.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Duo Code Review available in beta](https://docs.gitlab.com/user/project/merge_requests/duo_in_merge_requests/#have-gitlab-duo-review-your-code): <code>Code Review Workflow</code></summary>\n\n> Code review is an essential activity of software development. It ensures that contributions to a project maintain and improve code quality and security, and is an avenue of mentorship and feedback for engineers. It's also one of the most time-consuming activities in the software development process.\n> \n> Duo Code Review is the next evolution of the code review process.\n> \n> Duo Code Review can accelerate your development process. When it performs an initial review on your merge request, it can help identify potential bugs and suggest further improvements - some of which you can apply directly from your browser. Use it to iterate on and improve your changes before you add another human to the loop.\n> \n> **Try it out:**\n> \n> - To start a code review immediately, add `@GitLabDuo` as a reviewer to your merge request.\n> - To refine feedback on your changes, mention `@GitLabDuo` in a comment.\n> \n> You can track future progress for Duo Code Review in epic [13008](https://gitlab.com/groups/gitlab-org/-/epics/13008) and related child epics. Feedback can be provided in issue [517386](https://gitlab.com/gitlab-org/gitlab/-/issues/517386).\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Dependency Scanning support for pub (Dart) package manager](https://docs.gitlab.com/user/application_security/dependency_scanning/#supported-languages-and-package-managers): <code>Software Composition Analysis</code></summary>\n\n> Dependency Scanning has added support for pub, the official package manager for Dart. Support for this has been added to our Dependency Scanning [latest template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Jobs/Dependency-Scanning.latest.gitlab-ci.yml) and [CI/CD component](https://gitlab.com/explore/catalog/components/dependency-scanning).\n> \n> This addition was a community contribution from one of our users, Alexandre Laroche. The GitLab Composition Analysis team appreciates this contribution to improve our product, many thanks, Alexandre. If you are interested in learning more about contributing to GitLab please check out our [Community Contribution program](https://about.gitlab.com/community/contribute/).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Sort access tokens in Credentials Inventory](https://docs.gitlab.com/administration/credentials_inventory/): <code>System Access</code></summary>\n\n> You can now sort personal, project, and group access tokens in the Credentials Inventory by owner, created date, and last used date. This helps you to locate and identify your access tokens more quickly.\n> Thank you [Chaitanya Sonwane](https://gitlab.com/chaitanyason9) for your contribution!\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Handling of `needs` statements in pipeline execution policies for compliance](https://docs.gitlab.com/user/application_security/policies/pipeline_execution_policies/#pipeline-execution-policy-schema): <code>Security Policy Management</code></summary>\n\n> To strengthen your control over pipeline execution, jobs enforced in the `.pipeline-policy-pre` reserved stage are now required to complete before jobs in subsequent stages can begin, regardless of whether the job defines any `needs` statements. Previously, jobs defined in the `.pipeline-policy-pre` stage and jobs in subsequent pipelines with a `needs` statement both started as soon as the pipeline executed. With this enhancement, jobs in subsequent stages must wait for the `.pipeline-policy-pre` to complete before starting any other jobs without dependencies, helping you enforce ordered execution and ensuring compliance within the security policies.\n> \n> Our customers rely on reserved stages to enforce compliance and security checks before developer jobs run. A common use case is to enforce a security or compliance check that fails the entire pipeline if the check does not pass. Allowing jobs to run out of order could bypass this enforcement and weaken policy intent. This improvement provides you with a more consistent approach to compliance enforcement.\n> \n> To inject jobs at the beginning of the pipeline without overriding `needs` behavior, configure the jobs to use a custom stage with the new custom stages feature that we introduced in 17.9.\n\n</details>\n\n<details><summary>[Change the severity of a vulnerability](https://docs.gitlab.com/user/application_security/vulnerability_report/#change-or-override-vulnerability-severity): <code>Vulnerability Management</code></summary>\n\n> When triaging vulnerabilities, you need the flexibility to adjust severity levels based on your organization's unique security context and risk tolerance. Until now, you had to rely on the default severity levels assigned by security scanners, which might not accurately reflect the risk level for your specific environment.\n> \n> Now you can manually change the severity of specific vulnerability occurrences to better align with your organization's security needs. This allows you to:\n> \n> - Adjust the severity level of any vulnerability to **Critical**, **High**, **Medium**, **Low**, **Info**, or **Unknown**.\n> - Change multiple vulnerabilities' severity at once from the vulnerability report.\n> - Easily identify which vulnerabilities have custom severity levels through visual indicators.\n> \n> All severity changes are tracked in the vulnerability history and audit events and can only be overridden by your team members who have at least the Maintainer role for the project, or a custom role with the `admin_vulnerability` permission. This feature gives security teams more flexibility and control over vulnerability prioritization.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![6 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=6&style=flat-square \"New features added to this tier in this release\")\n![704 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=704&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Duo Chat is now resizable](https://docs.gitlab.com/ee/user/gitlab_duo_chat/#use-gitlab-duo-chat-in-the-gitlab-ui): <code>Duo Chat</code></summary>\n\n> In the GitLab UI, you can now resize the Duo Chat drawer. This makes it easier to view code outputs, or keep Chat open whilst working with GitLab in the background.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Path exclusions for CODEOWNERS](https://docs.gitlab.com/user/project/codeowners/reference/#exclusion-patterns): <code>Source Code Management</code>, <code>Code Review Workflow</code></summary>\n\n> When teams configure a `CODEOWNERS` file, it's common to include broad matching patterns for paths \n> and file types. These broad configurations can be problematic if your documentation, automated \n> build files, or other patterns don't require a specified Code Owner.\n> \n> You can now configure the `CODEOWNERS` file with path exclusions to ignore certain paths. This is helpful \n> when you want to exclude specific files, or paths from requiring a Code Owner approval.\n\n</details>\n\n<details><summary>[Configurable squash settings in branch rules](https://docs.gitlab.com/user/project/repository/branches/branch_rules/#edit-squash-commits-option): <code>Source Code Management</code>, <code>Code Review Workflow</code></summary>\n\n> Different Git workflows require different strategies for handling commits when merging between branches. In previous versions of GitLab, you could only set a single strategy for whether commits should be squashed when merging and how strongly that should be enforced. This setup could be error-prone or require developers to make specific choices to follow the project convention for different branch targets.\n> \n> You can now configure squash settings for each protected branch through branch rules. For example, you can:\n> \n> - Require squashing when merging from your `feature` branch to the `develop` branch to keep history clean.\n> - Disable squashing when merging from the `develop` branch to `main` branch when you want the commit history to remain intact.\n> \n> This flexibility ensures consistent commit history across your project while respecting the unique needs of each branch in your workflow, all without requiring manual developer intervention.\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Package registry adds audit events](https://docs.gitlab.com/user/compliance/audit_event_types/): <code>Package Registry</code></summary>\n\n> Package registry operations are now logged as audit events so teams can track when packages are published or deleted to meet compliance requirements.\n> \n> Before this release, there was no built-in way to track who published or made changes to packages. Teams had to create their own tracking systems or manually document package changes to maintain logs of these activities. Now, each audit event shows who made a change, when it happened, how they were authenticated, and exactly what changed in the package.\n> \n> Audit events for projects are stored either in a group namespace or the project itself for individual project Owners. Groups can turn off audit events to manage storage needs.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Select a compliance framework as default from the dropdown list on the Frameworks page](https://docs.gitlab.com/user/compliance/compliance_center/compliance_frameworks_report/#set-and-remove-a-compliance-framework-as-default): <code>Compliance Management</code></summary>\n\n> Users can set a default compliance framework in the GitLab compliance center, which is applied to all new and\n> imported projects that are created in that group. A default compliance framework has a **default** label to help\n> users identify it.\n> \n> To make it easier to set a compliance framework as default, we are introducing the ability for users\n> to set a framework as default by using the framework dropdown list on the list frameworks page in the compliance\n> center of a top-level group. This feature isn't available in the compliance center of subgroups nor projects.\n\n</details>\n\n<details><summary>[Map OmniAuth profile attributes to user](https://docs.gitlab.com/integration/omniauth/#keep-omniauth-user-profiles-up-to-date) <i>(self-managed only)</i>: <code>User Management</code></summary>\n\n> You can now map the Organization and Title profile attributes from an OmniAuth identity provider (IdP) to a user's GitLab profile. This allows the IdP to be the single source of truth for these attributes, and users can no longer change them.\n\n</details>\n\n\n\n#### Core\n\n![18 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=18&style=flat-square \"New features added to this tier in this release\")\n![2355 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2355&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Timestamps of when placeholder users were created](https://docs.gitlab.com/user/project/import/#placeholder-user-attributes): <code>Importers</code></summary>\n\n> Previously, when you imported groups or projects, you could not see when [placeholder users](https://docs.gitlab.com/user/project/import/#placeholder-users) were created.\n> With this release, we've added timestamps so you can track the progress of your migration and troubleshoot any issues as they occur.\n\n</details>\n\n<details><summary>[Bulk edit to-do items](https://docs.gitlab.com/user/todos/#bulk-edit-to-do-items): <code>Notifications</code></summary>\n\n> You can now efficiently manage your To-Do List with our improved bulk editing feature. Select multiple to-do items and mark them as done or snooze them in one go, giving you more control over your tasks and helping you stay organized with less effort.\n\n</details>\n\n<details><summary>[Snooze to-do items](https://docs.gitlab.com/user/todos/#snooze-to-do-items): <code>Notifications</code></summary>\n\n> You can now snooze notifications in your To-Do List, allowing you to temporarily hide items and focus on what's most important right now. Whether you need an hour to concentrate or want to revisit a task tomorrow, you'll have fine-grained control over when notifications reappear, helping you manage your workflow more effectively.\n\n</details>\n\n<details><summary>[Request reassignment by using a CSV file](https://docs.gitlab.com/user/project/import/#request-reassignment-by-using-a-csv-file): <code>Importers</code></summary>\n\n> With this release, user contribution mapping now supports bulk reassignment by using a CSV file.\n> If you have a large user base with many placeholder users, group members with the Owner role can:\n> \n> 1. Download a prefilled CSV template.\n> 1. Add GitLab usernames or public emails from the destination instance.\n> 1. Upload the completed file to reassign all contributions at once.\n> \n> This method eliminates tedious manual reassignment through the UI.\n> To further streamline large-scale migrations, API support for CSV-based reassignment is now also available.\n\n</details>\n\n<details><summary>[New navigation experience for projects in Your Work](https://docs.gitlab.com/user/project/working_with_projects/): <code>Groups & Projects</code></summary>\n\n> We're excited to announce significant improvements to the project overview in **Your Work**, designed to streamline how you discover and access your projects. This update introduces a more intuitive tab-based navigation system that better reflects how users interact with their projects.\n> \n> - The new **Contributed** tab (previously **Yours**) now displays all projects you've contributed to, including your personal projects, making it easier to track your development activity.\n> - Find your individual projects faster with the **Personal** tab, now prominently featured in the main navigation.\n> - Access team projects through the **Member** tab (formerly **All**), showing all projects where you have membership.\n> - The **Inactive** tab (previously **Pending deletion**) now provides a comprehensive view of both archived projects and those pending deletion.\n> \n> Further, if you have the appropriate permissions, you can now edit or delete a project directly from the **Your Work** projects overview.\n> These changes reflect our commitment to creating a more efficient and user-friendly GitLab experience. The new layout helps you focus on the projects that matter most to your work, reducing the time spent navigating between different project categories.\n> \n> We value your feedback on this update! Join the discussion in [epic 16662](https://gitlab.com/groups/gitlab-org/-/epics/16662) to share your experience with the new navigation system.\n\n</details>\n\n<details><summary>[Improved project creation permission settings](https://docs.gitlab.com/administration/settings/visibility_and_access_controls/#define-which-roles-can-create-projects): <code>Groups & Projects</code></summary>\n\n> We've improved the project creation permission settings to make them more clear, intuitive, and aligned with our security principles. The improved settings include:\n> \n> - Renamed the \"Default project creation protection\" dropdown to \"Minimum role required for project creation\" to clearly reflect the setting's purpose.\n> - Renamed the \"Developers + Maintainers\" dropdown option to \"Developers\" for consistency across the platform.\n> - Reordered the dropdown options from most restrictive to least restrictive access level.\n> \n> These changes make it easier to understand and configure which roles can create projects within your groups, helping administrators enforce appropriate access controls more confidently.\n> \n> Thank you [@yasuk](https://gitlab.com/yasuk) for this community contribution!\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Authenticate to private Pages with an access token](https://docs.gitlab.com/user/project/pages/pages_access_control/#authenticate-with-an-access-token): <code>Pages</code></summary>\n\n> You can now authenticate to private GitLab Pages sites programmatically using access tokens, making it easier to automate interactions with your Pages content. Previously, accessing restricted Pages sites required interactive authentication through the GitLab UI.\n> \n> This powerful enhancement increases productivity while maintaining security, giving developers more flexibility in how they interact with and distribute private Pages content.\n\n</details>\n\n<details><summary>[GitLab Query Language views Beta](https://docs.gitlab.com/user/glql/#glql-views): <code>Wiki</code>, <code>Team Planning</code></summary>\n\n> Tracking and understanding work in progress across GitLab previously required navigating multiple locations, reducing team efficiency and consuming valuable time.\n> \n> This release introduces GitLab Query Language (GLQL) views Beta so you can create dynamic, real-time work tracking directly in your existing workflows.\n> \n> GLQL views embed live data queries in Markdown code blocks throughout Wiki pages, epic descriptions, issue comments, and merge requests.\n> \n> Previously available as an experiment, GLQL views now enter beta with support for sophisticated filtering using logical expressions and operators across key fields, including assignee, author, label, and milestone. You can customize your view's presentation as tables or lists, control which fields appear, and set result limits to create focused, actionable insights for your team.\n> \n> Teams can now maintain context while accessing the information they need, creating shared understanding, and improving collaboration — all without leaving their current workflow.\n> \n> [We welcome your feedback](https://gitlab.com/gitlab-org/gitlab/-/issues/509791) on GLQL views as we continue to enhance this feature.\n\n</details>\n\n<details><summary>[Enhanced markdown experience](https://docs.gitlab.com/user/markdown/): <code>Markdown</code></summary>\n\n> GitLab Flavored Markdown has been enhanced with several powerful improvements:\n> \n> - **Improved math and image handling**:\n>   - Disable [math rendering](https://docs.gitlab.com/user/markdown/#math-equations) limits in your group or self-hosted instance to handle more complex mathematical expressions.\n>   - Control [image dimensions](https://docs.gitlab.com/user/markdown/#change-image-or-video-dimensions) precisely using pixel values or percentages to better manage content layout.\n> \n> - **Enhanced editor experience**:\n>   - Continue lists automatically when pressing Enter/Return.\n>   - Shift text left or right using keyboard shortcuts.\n>   - Create clear term-definition pairs using description list syntax.\n>   - Adjust video widths flexibly.\n> \n> - **Better content organization**:\n>   - Navigate content more easily with auto-expanding [summary quick views](https://docs.gitlab.com/user/markdown/#show-item-summary) (add `+s` to URLs).\n>   - See referenced [issue titles](https://docs.gitlab.com/user/markdown/#show-item-title) render automatically (add `+` to URLs).\n>   - Organize content modularly using [`include` syntax](https://docs.gitlab.com/user/markdown/#includes).\n>   - Create visually distinct callouts and warnings using [alert boxes](https://docs.gitlab.com/user/markdown/#alerts).\n> \n> These improvements make GitLab Flavored Markdown more powerful for teams creating and maintaining documentation while offering greater flexibility in how content is presented and organized.\n\n</details>\n\n<details><summary>[New issues look now in beta](https://docs.gitlab.com/user/project/issues/): <code>Team Planning</code></summary>\n\n> Issues now share a common framework with epics and tasks, featuring real-time updates and workflow improvements:\n> \n> * **Drawer view:** Open items from lists or boards in a drawer for quick viewing without leaving your current context. A button at the top lets you expand to full page view.\n> * **Change type:** Convert types between epics, issues, and tasks using the \"Change type\" action (replaces \"Promote to epic\")\n> * **Start date:** Issues now support start dates, aligning their functionality with epics and tasks.\n> * **Ancestry:** The complete hierarchy is above the title and the Parent field in the sidebar. To manage relationships, use the new [quick action](https://docs.gitlab.com/user/project/quick_actions/) commands `/set_parent`, `/remove_parent`, `/add_child`, and `/remove_child`.\n> * **Controls:** All actions are now accessible from the top menu (vertical ellipsis), which remains visible in the sticky header when scrolling.\n> * **Development:** All development items (merge requests, branches, and feature flags) related to an issue or task are now consolidated in a single, convenient list.\n> * **Layout:** UI improvements create a more seamless experience between issues, epics, tasks, and merge requests, helping you navigate your workflow more efficiently.\n> * **Linked items:** Create relationships between tasks, issues, and epics with improved linking options. Drag and drop to change link types and toggle the visibility of labels and closed items.\n\n</details>\n\n<details><summary>[Description templates for epics, issues, tasks, objectives and key results](https://docs.gitlab.com/user/project/description_templates/): <code>Portfolio Management</code></summary>\n\n> You can now streamline your workflow and maintain consistency across your projects with description templates for work items (epics, tasks, objectives, and key results).\n> \n> This powerful addition allows you to create standardized templates, saving you time and ensuring all crucial information is included every time you create a new work item.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Ignore specific revisions in Git blame](https://docs.gitlab.com/user/project/repository/files/git_blame/#ignore-specific-revisions): <code>Source Code Management</code></summary>\n\n> When browsing the history of a repository, there might be commits that aren't relevant to otherwise meaningful changes in the project. This can happen during:\n> \n> - Refactors where you change from one library to another without changing functionality.\n> - Implementation of code formatters or linters that require standardizing the entire codebase.\n> \n> When you look through the history of a project with `blame`, these kinds of commits make it difficult to understand the changes that occurred. Git supports identifying these commits with a `.git-blame-ignore-revs` file in your project. GitLab now allows you to toggle the blame view to show or hide these specific revisions in the \"Blame preferences\" dropdown list, making it easier to understand the history of your project.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[GitLab Runner 17.10](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 17.10 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [Perform Autoscaler executor health check before instance usage](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38271)\n> - [Expand Docker executor volumes](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38249)\n> - [Add Docker excecutor configuration for device addition for services](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/6208)\n> \n> #### Bug Fixes:\n> \n> - [The Windows `gitlab-runner-helper` image fails due to invalid volume specification for the `/opt/step-runner' path](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38632)\n> - [Repository mirroring for RPM packages is not working properly in GitLab Runner 17.7.0 and later ](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38409)\n> - [Running `git submodule update --remote` in GitLab CI/CD returns an error](https://gitlab.com/gitlab-org/gitlab/-/issues/359825)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-10-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Docker Hub authentication for the dependency proxy](https://docs.gitlab.com/user/packages/dependency_proxy/#authenticate-with-docker-hub): <code>Container Registry</code></summary>\n\n> The GitLab Dependency Proxy for container images now supports authentication with Docker Hub, helping you avoid pipeline failures due to rate limits and giving you access to private images.\n> \n> Starting April 1, 2025, Docker Hub will enforce stricter pull limits (100 per 6-hour window per IPv4 address or IPv6 /64 subnet) for unauthenticated users. Without authentication, your pipelines might fail once these limits are reached.\n> \n> With this release, you can configure Docker Hub authentication through the GraphQL API using your Docker Hub credentials, [personal access token](https://docs.docker.com/security/for-developers/access-tokens/), or [organization access tokens](https://docs.docker.com/security/for-admins/access-tokens/). Support for UI configuration will be available in GitLab 17.11.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Wider distribution for token expiration notifications](https://docs.gitlab.com/user/group/manage/#expiry-emails-for-group-and-project-access-tokens): <code>System Access</code></summary>\n\n> Previously, access token expiry notification emails were only sent to direct members of the group and project in which the token was expiring. Now, these notifications are also sent to inherited group and project members, if the setting is enabled. This wider distribution makes it easier to manage the token before expiry.\n\n</details>\n\n<details><summary>[Identify and revoke tokens with token information API](https://docs.gitlab.com/api/admin/token/) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> GitLab administrators can now use a unified API to identify and revoke tokens. Previously, administrators had to use endpoints related to the specific type of token. This API allows revocation regardless of the type. For a list of supported token types, see the [Token information API](https://docs.gitlab.com/api/admin/token/).\n> \n> Thank you [Nicholas Wittstruck](https://gitlab.com/nwittstruck) and the team from Siemens for your contribution!\n\n</details>\n\n<details><summary>[Configurable token duration with GitLab OIDC provider](https://docs.gitlab.com/administration/auth/oidc/#configure-a-custom-duration-for-id-tokens) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> When using GitLab as an OpenID Connect (OIDC) provider, you can now configure the duration of ID tokens with the `id_token_expiration` attribute. Previously, ID tokens had a fixed expiration time of 120 seconds.        \n> \n> Thank you [Henry Sachs](https://gitlab.com/DerAstronaut) for your contribution!\n\n</details>\n\n<details><summary>[Extended webhook triggers for expiring tokens](https://docs.gitlab.com/user/group/manage/#add-additional-webhook-triggers-for-group-access-token-expiration): <code>System Access</code></summary>\n\n> You can now trigger webhook events 60 and 30 days before a project or group access token expires. Previously, these webhook events only triggered 7 days before expiry. This is an optional setting that matches the existing email notification schedule for expiring tokens.\n\n</details>\n\n\n","released_at":"2025-03-20T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.9","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.9.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.9.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.9.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.9.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.9.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.9.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":6875613,"url":"https://about.gitlab.com/releases/2025/02/20/gitlab-17-9-released/","name":"GitLab 17.9 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/02/20/gitlab-17-9-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.9.0-ee/gitlab-v17.9.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.9.0-ee/gitlab-v17.9.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.9.0-ee/gitlab-v17.9.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.9.0-ee/gitlab-v17.9.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"f5041566b342c2f30a8d63b8117272c454e18410","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/f5041566b342c2f30a8d63b8117272c454e18410","short_id":"f5041566","trailers":[],"created_at":"2025-02-19T06:02:22.000+00:00","parent_ids":["859e9cc4afa5accc1f009861be31c836be0793de"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-02-19T06:02:22.000+00:00","committed_date":"2025-02-19T06:02:22.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.9.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.9.0-ee","evidences":[],"created_at":"2025-02-20T16:17:17.891Z","milestones":[{"id":4599724,"iid":108,"state":"closed","title":"17.9","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/108","due_date":"2025-02-14","group_id":9970,"created_at":"2024-05-24T19:18:50.640Z","start_date":"2025-01-11","updated_at":"2025-10-22T16:28:38.856Z","description":"","issue_stats":{"total":2896,"closed":2882}}],"commit_path":"/gitlab-org/gitlab/-/commit/f5041566b342c2f30a8d63b8117272c454e18410","description":"![45 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=45&style=for-the-badge \"New features added in this release\")\n![3752 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3752&style=for-the-badge \"Total features\")\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Use API to disable 2FA for individual enterprise users](https://docs.gitlab.com/ee/api/group_enterprise_users.html#disable-two-factor-authentication-for-an-enterprise-user) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> You can now use the API to clear all two-factor authentication (2FA) registrations for an individual enterprise user. Previously, this was only possible in the UI. Using the API allows for automated and bulk operations, saving time when 2FA resets need to be done at scale.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![15 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=15&style=flat-square \"New features added to this tier in this release\")\n![604 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=604&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Gitlab Duo Self-Hosted is generally available](https://docs.gitlab.com/ee/administration/gitlab_duo_self_hosted/) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now host selected large language models (LLMs) in your own infrastructure and configure those models as the source for GitLab Duo Code Suggestions and Chat. This feature is now generally available on self-managed GitLab environments with applicable licensing.\n> \n> With GitLab Duo Self-Hosted, you can use models hosted either on-premise or in a private cloud as the source for GitLab Duo Chat or Code Suggestions. We currently support open-source Mistral models on vLLM or AWS Bedrock, Claude 3.5 Sonnet on AWS Bedrock, and OpenAI models on Azure OpenAI. By enabling self-hosted models, you can leverage the power of generative AI while maintaining complete data sovereignty and privacy.\n> \n> Please leave feedback in [issue 512753](https://gitlab.com/gitlab-org/gitlab/-/issues/512753).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Speed up adding new child items by keeping the form open](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html#multi-level-child-epics): <code>Portfolio Management</code></summary>\n\n> We've streamlined the process of creating multiple child items by keeping the form open after each submission, making it easier to add multiple entries without extra clicks. This update saves you time and ensures a smoother workflow when managing your tasks.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Configure DAST scans through the UI with full control](https://docs.gitlab.com/ee/user/application_security/dast/on-demand_scan.html): <code>DAST</code></summary>\n\n> To effectively test complex applications, security teams need flexibility when they configure DAST scans. Previously, DAST scans configured through the UI had limited configuration options, which prevented successful scanning of applications with specific security requirements. This meant you had to use pipeline-based scans even for quick security assessments.\n> \n> You can now configure DAST scans through the UI with the same granular control available in pipeline-based scans. This includes:\n> \n> - Full authentication configuration, including custom headers and cookies\n> - Precise crawl settings like maximum pages, maximum depth, and excluded URLs\n> - Advanced scan timeouts and retry attempts\n> - Custom scanner behavior, like maximum links to crawl and DOM depth\n> - Targeted scanning modes for specific vulnerability types\n> \n> Save these configurations as reusable profiles to maintain consistent security testing across your applications. Every configuration change is tracked with audit events, so you know when scan settings are added, edited, or removed.\n> \n> This enhanced control helps you run more effective security scans while maintaining compliance using detailed audit trails. Instead of spending time managing pipeline configurations, you can quickly launch the right scan for each application to find and fix vulnerabilities faster.\n\n</details>\n\n<details><summary>[Enable Dependency Scanning using SBOM for Cargo, Conda, Cocoapods and Swift projects](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/dependency_scanning_sbom/): <code>Software Composition Analysis</code></summary>\n\n> In GitLab 17.9 the Composition Analysis team starts the transition to Dependency Scanning using SBOM with the new Dependency Scanning analyzer. This analyzer will be a replacement for Gemnasium, which will reach end of support in 18.0, remaining available for use through GitLab 19.0.\n> \n> The Dependency Scanning using SBOM approach will better support customers through expansion of language support, a tighter integration and experience within the GitLab platform, and a shift towards industry standard report types (SBOM-based scanning and reporting). As of GitLab 17.9, the new Dependency Scanning analyzer will be enabled by default in the `latest` Dependency Scanning CI/CD template (`Dependency-Scanning.latest.gitlab-ci.yml`) for the following project and file types:\n> \n>   - C/C++/Fortran/Go/Python/R projects using conda with a `conda-lock.yml` file.\n>   - Objective-C projects using Cocoapods with a `podfile.lock` file.\n>   - Rust projects using Cargo with a `cargo.lock` file.\n>   - Swift projects using Swift with a `package.resolved` file.\n> \n> With this change we are introducing a new CI/CD variable: `DS_ENFORCE_NEW_ANALYZER` which is set to `false` by default.\n> \n> This approach ensures that all existing customers of the `latest` template continue to use the Gemnasium analyzer by default and it enables automatically the new Dependency Scanning analyzer for the file types listed above.\n> \n> Existing customers who wish to migrate to the new Dependency Scanning analyzer can set `DS_ENFORCE_NEW_ANALYZER` to `true` (at the project, group, or instance level). You can read more about this change in the [deprecation announcement](https://docs.gitlab.com/ee/update/deprecations.html?removal_milestone=18.0#dependency-scanning-upgrades-to-the-gitlab-sbom-vulnerability-scanner) and the associated [migration guide](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/migration_guide_to_sbom_based_scans.html).\n> \n> Customers who want to entirely prevent the use of the new Dependency Scanning analyzer must set the CI/CD variable `DS_EXCLUDED_ANALYZERS` to `dependency-scanning`.\n\n</details>\n\n<details><summary>[License scanning support for Swift packages](https://docs.gitlab.com/ee/user/compliance/license_scanning_of_cyclonedx_files/index.html): <code>Software Composition Analysis</code></summary>\n\n> In GitLab 17.9, we added support for license scanning on Swift packages. This will allow users who use Swift within their projects to better understand the licensing of their Swift packages.\n> \n> This data is available to composition analysis users through the Dependency List, SBOM reports, and GraphQL API.\n\n</details>\n\n<details><summary>[Multi-core Advanced SAST offers faster scans](https://docs.gitlab.com/ee/user/application_security/sast/#security-scanner-configuration): <code>SAST</code></summary>\n\n> GitLab Advanced SAST now offers multi-core scanning as an opt-in feature to improve performance.\n> This can reduce scan duration significantly, especially for larger codebases.\n> \n> To enable it, set the `SAST_SCANNER_ALLOWED_CLI_OPTS` CI/CD variable to `--multi-core N`, where `N` is the desired number of cores to use.\n> You should only set this variable on the `gitlab-advanced-sast` job, not any other jobs.\n> Check [the documentation](https://docs.gitlab.com/ee/user/application_security/sast/#security-scanner-configuration) for important guidance on how to select the right value.\n> \n> We're working to enable this performance improvement by default; this is tracked in [issue 517409](https://gitlab.com/gitlab-org/gitlab/-/issues/517409).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Search and filter the Credentials Inventory](https://docs.gitlab.com/ee/administration/credentials_inventory.html): <code>System Access</code></summary>\n\n> You can now use search and filter capabilities in the Credentials Inventory. This makes it easier to identify tokens and keys which fall within certain user-defined parameters, including tokens that expire within a certain window. Previously, the entries in the Credentials Inventory were presented as a static list.\n\n</details>\n\n<details><summary>[New permissions for custom roles](https://docs.gitlab.com/ee/user/custom_roles.html): <code>Permissions</code></summary>\n\n> You can create custom roles with the [Read compliance dashboard](https://gitlab.com/gitlab-org/gitlab/-/issues/465324) permission. Custom roles allow you to grant only the specific permissions users need to complete their tasks. This helps you define roles that are tailored to the needs of your group, and can reduce the number of users who need the Owner or Maintainer role.\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[EPSS, KEV, and CVSS data for vulnerability risk prioritization](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/risk_assessment_data.html): <code>Vulnerability Management</code></summary>\n\n> We've added support for the following vulnerability risk data:\n> \n> - Exploit Prediction Scoring System (EPSS)\n> - Known Exploited Vulnerabilities (KEV) \n> - Common Vulnerabilities and Exposures (CVE)\n>  \n> You can now efficiently prioritize risk across your dependency and container image vulnerabilities using this data. You can find the data in the Vulnerability Report and in the Vulnerability Details page.\n\n</details>\n\n<details><summary>[Enforce custom stages in pipeline execution policies](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html#inject_policy): <code>Security Policy Management</code></summary>\n\n> We're excited to introduce a new capability for pipeline execution policies that allows you to enforce **custom stages** into your CI/CD pipelines in `Inject` mode. This feature provides greater flexibility and control over your pipeline structure while maintaining security and compliance requirements, supplying you with:\n> \n> * **Enhanced pipeline customization**: Define and inject custom stages at specific points in your pipeline, allowing for more granular control over job execution order.\n> * **Improved security and compliance**: Ensure that security scans and compliance checks run at the most appropriate times in your pipeline, such as after build but before deployment.\n> * **Flexible policy management**: Maintain centralized policy control while allowing development teams to customize their pipelines within defined guardrails.\n> * **Seamless integration**: Custom stages work alongside existing project stages and other policy types, providing a non-disruptive way to enhance your CI/CD workflows.\n> \n> **How does it work?**\n> \n> The new and improved `inject_policy` strategy for pipeline execution policies allows you to define custom stages in your policy configuration. These stages are then intelligently merged with your project's existing stages using a Directed Acyclic Graph (DAG) algorithm, ensuring proper ordering and preventing conflicts.\n> \n> For example, you can now easily inject a custom security scanning stage between your build and deploy stages.\n> \n> The `inject_policy` stage replaces `inject_ci` which will be deprecated, allowing you to opt into the `inject_policy` mode to gain the benefits. The `inject_policy` mode will become the default when configuring policies with `Inject` in the policy editor.\n\n</details>\n\n<details><summary>[Block deletion of active security policy projects](https://docs.gitlab.com/ee/user/application_security/policies/): <code>Security Policy Management</code></summary>\n\n> To ensure secure management of security policies and prevent disruption to enabled and enforced policies, we've added protection to prevent deletion of security policy projects that are in active use.\n> \n> If a security policy project is linked to any groups or projects, the links must be removed before the security policy project can be deleted.\n\n</details>\n\n<details><summary>[Dependency list filter by component in projects](https://docs.gitlab.com/ee/user/application_security/dependency_list/#filter-dependency-list): <code>Dependency Management</code></summary>\n\n> On the Dependencies list in a project, you can now filter by the package name using the Component filter.\n> \n> Previously, you could not search for packages in the Dependencies list for a project level. Now, setting the Component filter will find packages that contain the specified string.\n\n</details>\n\n<details><summary>[Filter by identifier in the project Vulnerability Report](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/#filtering-vulnerabilities): <code>Vulnerability Management</code></summary>\n\n> In the Vulnerability Report for a project, you can now filter the results by vulnerability identifier so you can find specific vulnerabilities (like CVEs or CWEs) that are in your project. \n> You can use the identifier in conjunction with other filters like the severity, status, or tool filters. The vulnerability identifier filter is limited to reports with 20,000 vulnerabilities or less.\n\n</details>\n\n<details><summary>[Support custom roles in merge request approval policies](https://docs.gitlab.com/ee/user/application_security/policies/merge_request_approval_policies.html#require_approval-action-type): <code>Permissions</code>, <code>Security Policy Management</code></summary>\n\n> We've made merge request approval policies more flexible by adding the ability to assign custom roles as approvers. \n> \n> You can now tailor approval requirements to match your organization’s unique team structures and responsibilities, ensuring the right roles are engaged in the review process based on the policy. For example, require approval from AppSec Engineering roles for security reviews and Compliance roles for license approvals.\n\n</details>\n\n<details><summary>[Support merge request variables in pipeline execution policies](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html): <code>Security Policy Management</code></summary>\n\n> Pipeline execution policies now support additional merge request variables, allowing you to create more sophisticated policies that take into account information related to the merge request. This provides more targeted and efficient control over CI/CD enforcement. The following variables are now supported:\n> \n>   - `CI_MERGE_REQUEST_SOURCE_BRANCH_SHA`\n>   - `CI_MERGE_REQUEST_TARGET_BRANCH_SHA`\n>   - `CI_MERGE_REQUEST_DIFF_BASE_SHA`\n> \n> With this enhancement, you can:\n> \n>   - Implement advanced security scans that compare changes between source and target branches, ensuring thorough code review and vulnerability detection. \n>   - Create dynamic pipeline configurations that adapt based on the specifics of each merge request, streamlining your development process.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![13 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=13&style=flat-square \"New features added to this tier in this release\")\n![698 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=698&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab-managed Kubernetes resources](https://docs.gitlab.com/ee/user/clusters/agent/managed_kubernetes_resources.html): <code>Environment Management</code>, <code>Deployment Management</code></summary>\n\n> Deploy your applications to Kubernetes with more control and automation using [GitLab-managed Kubernetes resources](https://docs.gitlab.com/user/clusters/agent/managed_kubernetes_resources/). Previously, you had to manually configure Kubernetes resources for each environment. Now, you can use GitLab-managed Kubernetes resources to automatically provision and manage these resources.\n> \n> With GitLab-managed Kubernetes resources, you can:\n> \n> - Automatically create namespaces and service accounts for new environments\n> - Manage access permissions through role bindings\n> - Configure other required Kubernetes resources\n> \n> When your developers deploy applications, GitLab automatically creates the necessary Kubernetes resources based on the provided resource templates, streamlining your deployment process and maintaining consistency across environments.\n\n</details>\n\n<details><summary>[Restrict users from making their profile private](https://docs.gitlab.com/ee/administration/settings/account_and_limit_settings.md#prevent-users-from-making-their-profiles-private) <i>(self-managed only)</i>: <code>User Management</code>, <code>User Profile</code></summary>\n\n> Users can choose to make their user profile public or private.\n> Administrators can now control whether users have the option to make profiles private across their GitLab instance. In the Admin Area, \"Allow users to make their profiles private\" controls this setting. This setting is enabled by default, allowing users to choose private profiles.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Run multiple Pages sites with parallel deployments](https://docs.gitlab.com/ee/user/project/pages/#parallel-deployments): <code>Pages</code></summary>\n\n> You can now create multiple versions of your GitLab Pages sites simultaneously with parallel deployments. Each deployment gets a unique URL based on your configured prefix. For example, with a unique domain your site would be accessible at `project-123456.gitlab.io/prefix`, or without a unique domain at `namespace.gitlab.io/project/prefix`.\n> \n> This feature is especially helpful when you need to:\n> \n> - Preview design changes or content updates.\n> - Test site changes in development.\n> - Review changes from merge requests.\n> - Maintain multiple site versions (for example, with localized content).\n> \n> Parallel deployments expire after 24 hours by default to help manage storage space, though you can customize this duration or set deployments to never expire. For automatic cleanup, parallel deployments created from merge requests are deleted when the merge request is merged or closed.\n\n</details>\n\n<details><summary>[Enhancing workflow visibility: new insights into merge request review time](https://docs.gitlab.com/ee/user/group/value_stream_analytics/#value-stream-stage-events): <code>Value Stream Management</code>, <code>Code Review Workflow</code></summary>\n\n> To improve development workflow tracking, [Value Stream Analytics](https://about.gitlab.com/solutions/value-stream-management/) (VSA) has been extended with a new event - *Merge request last approved at*. The [merge request approval](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/) event marks the end of the review phase and the start of the final pipeline run or merge stage. For example, to calculate the total merge request review time, you can create a VSA stage with *Merge request reviewer first assigned* as the start event and *Merge request last approved at* as the end event.\n> \n> With this enhancement, teams gain deeper insights into opportunities to optimize review times, which help reduce the overall cycle time of development, leading to faster software delivery.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Add project files to Duo Chat in VS Code and JetBrains IDEs](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#ask-about-specific-files): <code>Editor Extensions</code>, <code>Duo Chat</code></summary>\n\n> Add your project files directly to Duo Chat in VS Code and JetBrains to unlock more powerful, context-aware AI assistance. \n> \n> By adding project files, Duo Chat gains deep understanding of your specific codebase, enabling it to provide highly contextual and accurate responses. This context awareness gives you more relevant code explanations, precise debugging help, and suggestions that seamlessly integrate with your existing codebase. We welcome your feedback on this new, exciting feature. Please share your thoughts in our [feedback](https://gitlab.com/gitlab-org/gitlab/-/issues/492443) issue.\n\n</details>\n\n<details><summary>[Workspaces container support with Sysbox](https://docs.gitlab.com/ee/user/workspace/configuration.html#build-and-run-containers-in-a-workspace): <code>Workspaces</code></summary>\n\n> GitLab workspaces now supports building and running containers directly in your development environment. When your workspace runs on a Kubernetes cluster configured [with Sysbox](https://docs.gitlab.com/ee/user/workspace/configuration.html#with-sysbox), you can build and run containers without additional configuration.\n> \n> Introduced in GitLab 17.4 as part of our [sudo access feature](https://about.gitlab.com/releases/2024/09/19/gitlab-17-4-released/#secure-sudo-access-for-workspaces), this capability enables you to maintain your complete container workflow in your GitLab workspace environment. \n\n</details>\n\n<details><summary>[Create workspaces without a custom devfile](https://docs.gitlab.com/ee/user/workspace/#gitlab-default-devfile): <code>Workspaces</code></summary>\n\n> Previously, setting up a workspace required creating a `devfile.yaml` configuration file. GitLab now provides you with a default file that includes common development tools. This enhancement:\n> \n> - Removes configuration barriers.\n> - Enables you to create a workspace quickly from any project.\n> - Includes common development tools pre-configured and ready to use.\n> - Lets you focus on development instead of configuration.\n> \n> Start developing and create a workspace immediately without additional setup or configuration steps.\n\n</details>\n\n<details><summary>[Workspace extensions now support proposed APIs](https://docs.gitlab.com/ee/user/workspace/#extension-marketplace): <code>Workspaces</code></summary>\n\n> Workspace extensions now support enabling proposed APIs, improving compatibility and reliability in production environments. This update allows extensions that depend on proposed APIs to run without errors, including critical development tools like the Python Debugger. The change expands API access while maintaining stability.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Apply a compliance framework by using a project's compliance center](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_projects_report.html): <code>Compliance Management</code></summary>\n\n> In GitLab 17.2, we released the ability for group owners to apply and remove compliance frameworks for all projects\n> in a group by using the group's compliance center.\n> \n> We have expanded this to now allow group owners to also apply and remove compliance frameworks at the project level.\n> This will make it even easier for group owners to apply and monitor compliance frameworks at the project level.\n> \n> The ability to apply and remove compliance frameworks at the project level is only available for group owners and\n> not project owners.\n\n</details>\n\n<details><summary>[OAuth application authorization audit event](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#authorization): <code>Audit Events</code></summary>\n\n> Previously, when a user authorized an OAuth application, no audit event was generated. However, this event is important for security teams to\n> monitor the OAuth applications authorized by users on a specific GitLab instance.\n> \n> With this release, GitLab now provides a **User authorized an OAuth application** audit event to track when users successfully authorize OAuth\n> applications. This new audit event further improves your ability to audit your GitLab instance.\n\n</details>\n\n<details><summary>[Email notifications for service accounts](https://docs.gitlab.com/ee/user/profile/service_accounts.html): <code>System Access</code></summary>\n\n> You can now set a custom email address to receive email notifications for service accounts. When a custom email address is specified when creating a service account, GitLab sends notifications to that address. Each service account must use a unique email address. This can help you monitor processes and events more effectively.\n> \n> Thank you [Gilles Dehaudt](https://gitlab.com/tonton1728), [Étienne Girondel](https://gitlab.com/lenaing), [Kevin Caborderie](https://gitlab.com/Densett), [Geoffrey McQuat](https://gitlab.com/gmcquat), [Raphaël Bihore](https://gitlab.com/rbihore) from the [SNCF Connect & Tech team](https://www.sncf-connect-tech.fr/) for your contribution!\n\n</details>\n\n<details><summary>[Support for additional group memberships with multiple OIDC providers](https://docs.gitlab.com/ee/administration/auth/oidc.html#configure-multiple-openid-connect-providers) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> You can now configure additional group memberships when using multiple OIDC providers. Previously, if you configured multiple OIDC providers, you were limited to a single group membership.\n\n</details>\n\n<details><summary>[Custom expiration date for rotated service account tokens](https://docs.gitlab.com/ee/api/group_service_accounts.html#rotate-a-personal-access-token-for-a-service-account-user): <code>System Access</code></summary>\n\n> When rotating an access token for a service account, you can now use the `expires_at` attribute to set a custom expiration date. Previously, tokens automatically expired seven days after rotation. This allows for more granular management of token lifetimes, enhancing your ability to maintain secure access controls.\n\n</details>\n\n\n\n#### Core\n\n![16 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=16&style=flat-square \"New features added to this tier in this release\")\n![2337 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2337&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Simplified access to deployments within project environments](https://docs.gitlab.com/ee/ci/environments/): <code>Environment Management</code></summary>\n\n> Have you ever struggled to get an overview of your deployments within a project? You can now view recent deployment details in the environments list without having to expand each environment. For each environment, the list shows your latest successful deployment and, if different, your most recent deployment attempt.\n\n</details>\n\n<details><summary>[Composite identity for more secure AI connections](https://docs.gitlab.com/development/ai_features/composite_identity/): <code>Duo Workflow</code></summary>\n\n> Previously, a request to GitLab could only be authenticated as a single user. With composite identity, we have now made it possible to authenticate a request as a service account and a user simultaneously.\n> AI agent use cases often require permissions to be based on the user who initiated the tasks in a system, while simultaneously showing a distinct identity that's separate from the initiating user. A composite identity is our new identity principal, which represents an AI agent's identity. This identity is linked with the identity of the human user who requests actions from the agent.\n> Whenever an AI agent action attempts to access a resource, a composite identity token is used. This token belongs to a service account, and is also linked with the human user who is instructing the agent. The authorization checks that run on the token take into account both principals before granting access to a resource. Both identities need to have access to the resource, otherwise access is denied.\n> This new functionality enhances our ability to protect resources stored in GitLab.\n> For more information about how the composite identity for service accounts can be used, see the [documentation](https://docs.gitlab.com/development/ai_features/composite_identity/).\n</details>\n\n<details><summary>[Implement OCI-based GitOps with the FluxCD CI/CD component](https://gitlab.com/components/fluxcd/): <code>Container Registry</code>, <code>Deployment Management</code>, <code>Component Catalog</code></summary>\n\n> Have you ever wondered how to implement GitOps best practices with GitLab? The new [FluxCD component](https://gitlab.com/components/fluxcd/) makes it easy. Use the FluxCD component to package Kubernetes manifests into OCI images and store the images in OCI-compatible container registries. You can optionally sign the images and trigger an immediate FluxCD reconciliation.\n\n</details>\n\n<details><summary>[Get started with the GitLab integration with Kubernetes](https://docs.gitlab.com/ee/user/clusters/agent/getting_started): <code>Deployment Management</code></summary>\n\n> In this release, we added new Kubernetes Getting started guides that show you how to use GitLab to deploy applications to Kubernetes directly and with FluxCD. These easy-to-follow tutorials don't require in-depth Kubernetes knowledge to complete, so both novice and experienced users can learn how to integrate GitLab and Kubernetes.\n> \n> To supplement the Kubernetes Getting started guides, we also included a series of recommendations for integrating GitLab into Kubernetes environments.\n\n</details>\n\n<details><summary>[Discover and migrate certificate-based Kubernetes clusters](https://docs.gitlab.com/ee/api/cluster_discovery.html): <code>Deployment Management</code></summary>\n\n> The certificate-based Kubernetes integration will be turned off on GitLab.com for all users between May 6, 2025 9:00 AM UTC and May 8, 2025 22:00 PM UTC, and will be removed from GitLab Self-Managed instances in GitLab 19.0 (expected in May 2026). \n> \n> To help users migrate, we added a new cluster API endpoint that group Owners can query to [discover any certificate-based clusters](https://docs.gitlab.com/ee/api/cluster_discovery.html) registered to a group, subgroup, or project. We also updated the [migration documentation](https://docs.gitlab.com/ee/user/infrastructure/clusters/migrate_to_gitlab_agent.html) to provide instructions for different types of use cases.\n> \n> We encourage all GitLab.com users to check if they are affected, and to plan their migrations as soon as possible.\n\n</details>\n\n<details><summary>[Manage project integrations from a group with the REST API](https://docs.gitlab.com/ee/api/group_integrations.html): <code>API</code>, <code>Integrations</code></summary>\n\n> Previously, you could manage project integrations from a group in the GitLab UI only. With this release, it's possible to manage these integrations with the REST API too.\n> \n> Thanks to [Van](https://gitlab.com/van.m.anderson) for their [initial community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/148283), which was subsequently picked up and completed by GitLab.\n\n</details>\n\n<details><summary>[Group sharing visibility enhancement](https://docs.gitlab.com/user/project/members/sharing_projects_groups/#view-shared-groups): <code>Groups & Projects</code></summary>\n\n> We're excited to announce expanded visibility for group sharing across GitLab. Previously, while you could see shared projects on a group's overview page, you couldn't see which groups your group had been invited to join. Now you can view both **Shared projects** and **Shared groups** tabs on the group overview page, giving you a complete view of how your groups are connected and shared throughout your organization. This makes it easier to audit and manage group access across your organization.\n> \n> We welcome feedback about this change in [epic 16777](https://gitlab.com/groups/gitlab-org/-/epics/16777).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Wiki page comments](https://docs.gitlab.com/ee/user/discussions/): <code>Wiki</code></summary>\n\n> You can now add comments directly on wiki pages, transforming your documentation into an interactive collaboration space.\n> \n> Comments and threads on wiki pages help teams:\n> \n> - Discuss content directly in context.\n> - Suggest improvements and corrections.\n> - Keep documentation accurate and up-to-date.\n> - Share knowledge and expertise.\n> \n> With wiki comments, teams can maintain living documentation that evolves alongside their projects through direct feedback and discussion.\n\n</details>\n\n<details><summary>[Control access to GitLab Pages for groups](https://docs.gitlab.com/ee/user/project/pages/pages_access_control.html#restrict-pages-access-to-project-members-for-the-group-and-its-subgroups): <code>Pages</code></summary>\n\n> You can now restrict GitLab Pages access at the group level. Group owners can enable a single setting to make all Pages sites in a group and its subgroups visible only to project members. This centralized control simplifies security management without modifying individual project settings.\n\n</details>\n\n<details><summary>[Change work item type to another](https://docs.gitlab.com/ee/user/tasks.html#convert-a-task-into-another-item-type): <code>Portfolio Management</code></summary>\n\n> You can now easily change the type of your work items, giving you the flexibility to manage your projects more efficiently.\n\n</details>\n\n<details><summary>[Work items GraphQL API - additional query filters](https://docs.gitlab.com/ee/api/graphql/reference/): <code>Portfolio Management</code></summary>\n\n> The Work Items GraphQL API now includes additional query filters that let you filter by:\n> \n> - Created, updated, closed, and due dates\n> - Health status\n> - Weight\n> \n> These new filters give you more control when querying and organizing work items through the API.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Automatic CI/CD pipeline cleanup](https://docs.gitlab.com/ee/ci/pipelines/settings.html#automatic-pipeline-cleanup): <code>Continuous Integration (CI) Scaling</code></summary>\n\n> In the past, if you wanted to delete older CI/CD pipelines, you could only do this through the API.\n> \n> In GitLab 17.9, we have introduced a project setting that allows you to set a CI/CD pipeline expiry time.\n> Any pipelines and related artifacts older than the defined retention period are deleted.\n> This can help reduce the disk usage in projects that run lots of pipelines that generate large artifacts, and even improve overall performance.\n\n</details>\n\n<details><summary>[GitLab Runner 17.9](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're also releasing GitLab Runner 17.9 today! GitLab Runner is the highly-scalable build agent that runs \n> your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with \n> GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [Add health check for runner autoscaler instances](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38271)\n> - [Add histogram metrics for runner prepare stage duration](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37471)\n> - [Add support for custom service container names to the Kubernetes executor](https://gitlab.com/gitlab-org/gitlab/-/issues/421131)\n> \n> #### Bug Fixes:\n> \n> - [GitLab Runner is unable to retrieve cache from S3 Express One Zone](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38484)\n> - [GitLab Runner on Kubernetes reports 'script_failure' instead of 'runner_system_failure' for AWS Spot instances](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37911)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-9-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Rotate access tokens with `self_rotate` scope](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#personal-access-token-scopes): <code>System Access</code></summary>\n\n> You can now use the `self_rotate` scope to rotate access tokens. This scope is available for personal, project, or group access tokens. Previously, this required two requests: One to obtain a new token, then another to perform the token rotation.\n> \n> Thank you [Stéphane Talbot](https://gitlab.com/stalb) and [Anthony Juckel](https://gitlab.com/ajuckel) for your contribution! \n\n</details>\n\n<details><summary>[View inactive project and group access tokens](https://docs.gitlab.com/ee/user/project/settings/project_access_tokens.html#revoke-or-rotate-a-project-access-token) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> You can now view inactive group and project access tokens in the UI. Previously, GitLab instantly deleted project and group access tokens after they expired or were revoked. This lack of a record of inactive tokens made auditing and security reviews more difficult. GitLab now retains inactive group and project access token records for 30 days, which helps teams track token usage and expiration for compliance and monitoring purposes.\n\n</details>\n\n<details><summary>[View access token IP addresses](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#view-the-time-at-and-ips-where-a-token-was-last-used): <code>System Access</code></summary>\n\n> Previously, when viewing your personal access tokens, the only usage information you could see was how many minutes ago the token was used. Now, you can also see up to the last seven IP addresses that the tokens were used from. This combined information can help you track where your token is being used.\n> \n> Thank you [Jayce Martin](https://jrm2k.us), [Avinash Koganti](http://www.linkedin.com/in/avinash-koganti-38b511162), [Austin Dixon](https://austindixon.net/), and [Rohit Kala](https://www.linkedin.com/in/rohit-kala-1b891a179) for your contribution! \n\n</details>\n\n\n","released_at":"2025-02-20T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.8","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.8.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.8.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.8.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.8.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.8.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.8.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":6583301,"url":"https://about.gitlab.com/releases/2025/01/16/gitlab-17-8-released/","name":"GitLab 17.8 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2025/01/16/gitlab-17-8-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.8.0-ee/gitlab-v17.8.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.8.0-ee/gitlab-v17.8.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.8.0-ee/gitlab-v17.8.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.8.0-ee/gitlab-v17.8.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"f03594b9e09b648c839e9c008286a24c93c82373","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/f03594b9e09b648c839e9c008286a24c93c82373","short_id":"f03594b9","trailers":[],"created_at":"2025-01-15T09:47:21.000+00:00","parent_ids":["5f11b1d52b72613ff7279ab544bd8dd7bec85f71"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2025-01-15T09:47:21.000+00:00","committed_date":"2025-01-15T09:47:21.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.8.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.8.0-ee","evidences":[],"created_at":"2025-01-16T14:45:09.908Z","milestones":[{"id":4599723,"iid":107,"state":"closed","title":"17.8","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/107","due_date":"2025-01-10","group_id":9970,"created_at":"2024-05-24T19:16:47.710Z","start_date":"2024-12-14","updated_at":"2025-10-22T16:27:50.491Z","description":"","issue_stats":{"total":1531,"closed":1511}}],"commit_path":"/gitlab-org/gitlab/-/commit/f03594b9e09b648c839e9c008286a24c93c82373","description":"![31 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=31&style=for-the-badge \"New features added in this release\")\n![3707 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3707&style=for-the-badge \"Total features\")\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Hosted runners on Linux for GitLab Dedicated now in limited availability](https://docs.gitlab.com/ee/administration/dedicated/hosted_runners.html) <i>(self-managed only)</i>: <code>GitLab Dedicated</code>, <code>GitLab Hosted Runners</code></summary>\n\n> We are excited to introduce the limited availability of hosted runners on Linux for GitLab Dedicated.\n> \n> Managing fleets of runners can be complex and require significant experience to ensure all CI/CD jobs can\n> scale to meet the demands of developers.\n> \n> Hosted runners for GitLab Dedicated allow you to use fully managed runners for CI/CD jobs.\n> They eliminate the need to maintain your own runner infrastructure, and provide the same\n> security, flexibility, and efficiency of GitLab Dedicated to runners.\n> \n> Hosted runners scale automatically to meet your CI/CD demands to ensure\n> optimal performance during peak times and for large projects.\n> The limited availability release includes Linux runners in various sizes,\n> ranging from 2 to 32 vCPUs, with 8 to 128 GB of memory.\n> \n> To request access to hosted runners for GitLab Dedicated during the limited availability phase,\n> contact your GitLab representative.\n\n</details>\n\n<details><summary>[Large M2 Pro hosted runners on macOS (Beta)](https://docs.gitlab.com/ee/ci/runners/hosted_runners/macos.html) <i>(SaaS only)</i>: <code>GitLab Hosted Runners</code></summary>\n\n> We bring M2 Pro performance to mobile DevOps teams!\n> \n> With up to 2 times the performance of M1 runners and 6 times the performance of x86-64 macOS runners,\n> you can increase your development team's velocity when building and deploying applications.\n> \n> Fully integrated to GitLab CI/CD and available on-demand, teams can now seamlessly create, test,\n> and deploy applications faster for the Apple ecosystem.\n> \n> Try out the new M2 Pro runners today by using `saas-macos-large-m2pro` as the tag in your `.gitlab-ci.yml` file.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![11 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=11&style=flat-square \"New features added to this tier in this release\")\n![589 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=589&style=flat-square \"Total features in this tier\")\n\n<details><summary>SAST scanning in VS Code</summary>\n\n> We're excited to announce that real-time GitLab SAST scanning is now available in VS Code as an experimental feature.\n> \n> You can now scan your project files directly in VS Code, before you've committed or pushed them, so you can find and fix security vulnerabilities faster. A SAST scanning side panel displays your scan results and updates as you make changes to your code. Hover over the vulnerability result to see a detailed description or open it in a separate editor window for more context. Reference our [documentation](https://docs.gitlab.com/ee/editor_extensions/visual_studio_code/#perform-sast-scanning) to get started.\n> \n> This feature is available for GitLab.com customers on the Ultimate tier. We welcome your [feedback](https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/issues/1775) and are excited to mature this functionality in the upcoming milestones.\n> \n> For a demonstration, watch this [video of SAST scanning in VS Code](https://www.youtube.com/watch?v=KOYdVdA6ZCs).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Epic ancestors](https://docs.gitlab.com/ee/user/group/epics/#relationships-between-epics-and-other-items): <code>Portfolio Management</code></summary>\n\n> Navigating your [epic hierarchy](https://docs.gitlab.com/ee/user/group/epics/#relationships-between-epics-and-other-items) just got easier with the redesigned Ancestry widget, now prominently displayed at the top of each epic in a breadcrumb-like format. You can quickly grasp the relationships between epics by seeing both immediate and ultimate parents at a glance, helping you maintain a clear overview of your project structure and easily move between related epics.\n> \n> Your administrator must enable [the new look for epics](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html).\n\n</details>\n\n<details><summary>[Epic health status](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html#health-status.): <code>Portfolio Management</code></summary>\n\n> You can now easily communicate the progress of your projects with the new health status feature for epics. By setting the status to \"On track,\" \"Needs attention,\" or \"At risk,\" you'll have a quick visual indicator of your epic's health, allowing you to manage risk and keep stakeholders informed about the project's overall status.\n> \n> Your administrator must enable [the new look for epics](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html).\n\n</details>\n\n<details><summary>[Epic parent](https://docs.gitlab.com/ee/user/group/epics/#relationships-between-epics-and-other-items): <code>Portfolio Management</code></summary>\n\n> You can now easily manage your epic hierarchy by adding a parent directly from an epic, just as you would for an issue. This streamlined process gives you more flexibility in organizing your work, allowing you to quickly establish relationships between epics and maintain a clear structure for your projects.\n> \n> Your administrator must enable [the new look for epics](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html).\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Secret detection now includes remediation steps](https://docs.gitlab.com/ee/user/application_security/secret_detection/): <code>Secret Detection</code></summary>\n\n> It's important to fix exposed secrets quickly to minimize the risk of attackers using exposed credentials to break into your systems. Proper remediation requires multiple steps beyond just removing the secret, such as rotating credentials and investigating potential unauthorized access. To help keep your systems secure, secret detection now includes specific remediation steps for each type of detected secret. This guidance helps you systematically address exposures and reduce the risk of security breaches. Remediation steps will appear on all vulnerabilities upon the completion of a pipeline.\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Find the commit that resolved a vulnerability](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#vulnerability-resolution): <code>Vulnerability Management</code></summary>\n\n> Previously, when a vulnerability was no longer detected, we did not provide users a way to see when or where a vulnerability was resolved.\n> Now, we display a link to the commit SHA where the vulnerability was resolved, providing better traceability and insight into the resolution process. This makes it easier for security and development teams to collaborate and manage vulnerabilities more effectively.\n</details>\n\n<details><summary>[Support multiple distinct approval actions in merge request approval policies](https://docs.gitlab.com/ee/user/application_security/policies/merge_request_approval_policies.html): <code>Security Policy Management</code></summary>\n\n> Previously, merge request approval policies supported only a single approval rule per policy, allowing for one set of approvers stacked with an “OR” condition. As a result, it was more challenging to enforce layered security approvals from varied roles, individual approvers, or separate groups.\n> \n> With this update, you can create up to five approval rules for each merge request approval policy, allowing for more flexible and robust approval policies. Each rule can specify different approvers or roles and each rule is evaluated independently. For example, security teams can define complex approval workflows such as requiring one approver from Group A and one from Group B, or one from a specific role and another from a specified group, ensuring compliance and enhanced control in sensitive workflows.\n> \n> Example uses of this improvement include:\n> \n> - **Distinct role approvals:** One approval from a Developer role and another from a Maintainer role.\n> - **Role and group approvals**: One approval from Developer or Maintainer and a separate approval from a member of the Security Group.\n> - **Distinct group approvals:** One approval from a member of the Python Experts Group and another separate approval from a member of the Security Group.\n\n</details>\n\n<details><summary>[Add vulnerabilities as supported webhook events](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#vulnerability-events): <code>Webhooks</code>, <code>Vulnerability Management</code></summary>\n\n> Introducing a webhook integration that generates events for actions related to vulnerabilities to allow you to automate and integrate with external resources. For example, events are generated when vulnerabilities are created or the status of a vunerability changes.\n> \n> <!--What is the problem and solution you're proposing? This content sets the overall vision for the feature and serves as the release notes that will populate in various places, including the [release post blog](https://about.gitlab.com/releases/categories/releases/) and [Gitlab project releases](https://gitlab.com/gitlab-org/gitlab/-/releases). \"-->\n\n</details>\n\n<details><summary>[Enforce centralized workflow rules for the `override_ci` strategy](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html#override_project_ci): <code>Security Policy Management</code></summary>\n\n> In pipeline execution policies, the `override_ci` strategy now supports the use of workflow rules to aid in policy enforcement for jobs defined in the policy, as well as jobs defined in the project's configuration when using `include:project`. By defining workflow rules in the policy, you can filter out jobs executed by the pipeline execution policy based on particular rules, such as by configuring rules that prevent the use of branch pipelines in projects.\n> \n> To isolate the use of workflow rules to target only jobs defined in your policy, the best practice is to define the rules for the job instead of globally in the policy. Alternatively, you can group jobs and rules using a separate `include` field.\n> \n> Previously, when using the `override_ci` strategy, workflow rules could only be applied to jobs defined in the pipeline execution policy.\n> \n> The `inject_ci` strategy remains unchanged and workflow rules can only be used to control when policy jobs are enforced, without affecting the project's workflow rules.\n\n</details>\n\n<details><summary>[Make `skip_ci` configurable for pipeline execution policies](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html#skip_ci-type): <code>Security Policy Management</code></summary>\n\n> We've introduced a new configuration option for Pipeline Execution Policies (PEPs) that allows for more flexibility in handling the `[skip ci]` directive. This feature addresses scenarios where certain automated processes, such as semantic releases, where it's necessary to bypass pipeline execution while still ensuring critical security and compliance checks are performed.\n> \n> To use this feature, set `skip_ci` to `allowed: false` in the pipeline execution policy YAML configuration or enable **Prevent users from skipping pipelines** in the policy editor. Then, specify the users or service accounts that are allowed to use `[skip ci]`. By default all users will be blocked from skipping pipeline execution jobs unless they are excluded within the `skip_ci` configuration as an exception.\n\n</details>\n\n<details><summary>[Manage concurrency of scheduled scan execution pipelines](https://docs.gitlab.com/ee/user/application_security/policies/scan_execution_policies.html#concurrency-control): <code>Security Policy Management</code></summary>\n\n> To improve the scalability of global scheduled scan execution policies, we have introduced a new capability to configure a time window in a scan execution policy. The `time_window` property defines the time period in which the policy creates and executes new schedules to ensure optimal performance. \n> \n> To use the new property, update your policy using YAML mode and follow the [`time_window` schema](https://docs.gitlab.com/ee/user/application_security/policies/scan_execution_policies.html#time_window-schema). You can provide a value in seconds for the window of time in which the schedules should run. For example, `86400` for a 24 hour time window. Then supply the `distribution: random` field and value to enforce the schedules to execute at random times across the defined time window.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![7 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=7&style=flat-square \"New features added to this tier in this release\")\n![685 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=685&style=flat-square \"Total features in this tier\")\n\n<details><summary>[View subgroups and projects pending deletion](https://docs.gitlab.com/ee/user/group/#view-groups-pending-deletion): <code>Groups & Projects</code></summary>\n\n> When you mark a group for deletion, you need visibility into all affected subgroups and projects. Previously, only the group marked for deletion displayed a \"Pending deletion\" label, but not their subgroups and projects, making it difficult to identify which content was scheduled for deletion.\n> \n> Now, when a group is marked for deletion, all of its subgroups and projects will display a \"Pending deletion\" label. This improved visibility helps you quickly distinguish between active and soon-to-be deleted content across your entire group hierarchy.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Customizable colors for epics](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html#epic-color): <code>Portfolio Management</code></summary>\n\n> You now have more flexibility in categorizing your epics with an expanded set of color options, including pre-existing values and custom RGB or hex codes. This enhanced visual customization allows you to easily associate epics with squads, company initiatives, or hierarchy levels, making it simpler to prioritize and organize your work on roadmaps and epic boards.\n> \n> Your administrator must enable [the new look for epics](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html).\n\n</details>\n\n<details><summary>[Track time spent on epics](https://docs.gitlab.com/ee/user/project/time_tracking.html): <code>Portfolio Management</code></summary>\n\n> You can now track time directly in epics, giving you more granular control over your project's time management. This new feature allows you to log time spent on different aspects of your project, helping you monitor progress, stay on schedule, and keep your budget in check as you work through sprints and milestones.\n\n</details>\n\n<details><summary>[Show iteration field on child items in epics, issues, and objectives](https://docs.gitlab.com/ee/user/group/iterations): <code>Portfolio Management</code></summary>\n\n> When viewing epic detail, planners need to be able to see which child issues are planned into iterations (sprints) and which are not yet planned. This will allow teams to more easily make sure that all defined work is slated into sprints.\n> \n> For epics, your administrator must enable [the new look for epics](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html).\n\n</details>\n\n<details><summary>[Webhooks for epics](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html): <code>Portfolio Management</code></summary>\n\n> Supercharge your workflow automation with the epic webhooks, allowing you to receive real-time updates in your preferred tools whenever changes occur in your epics. By integrating GitLab with your other services, you can enhance collaboration, stay on top of project developments, and streamline your processes without constantly switching between applications.\n> \n> Your administrator must enable [the new look for epics](https://docs.gitlab.com/ee/user/group/epics/epic_work_items.html).\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Use roles to define project members as Code Owners](https://docs.gitlab.com/ee/user/project/codeowners/reference.html#add-a-role-as-a-code-owner): <code>Source Code Management</code></summary>\n\n> You can now use roles as Code Owners in your `CODEOWNERS` file to manage role-based expertise and approvals more efficiently. Instead of listing individual users or creating groups, you can use the following syntax:\n> \n> - `@@developers` - References all users with the Developer role.\n> - `@@maintainers` - References all users with the Maintainer role. \n> - `@@owners` - References all users with the Owner role.\n> \n> For example, add `* @@maintainers` to require approval from any maintainer for all changes in the repository.\n> \n> This simplifies Code Owner management as team members join, leave, or change roles in your project. The `CODEOWNERS` file remains current without manual updates, because GitLab automatically includes all users who have the specified role.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Scaling UI performance for the 'Frameworks' report tab in the Compliance Center](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_frameworks_report.html): <code>Compliance Management</code></summary>\n\n> With GitLab 17.8, we have made changes to the backend to ensure the compliance center remains quick and responsive,\n> even if you have 1,000's of compliance frameworks in the **Frameworks** report tab of the compliance center.\n> \n> Additionally, when looking for more information and clicking on a framework in the **Frameworks** tab, GitLab\n> returns up to 1,000 projects that are attached to that particular framework as part of the information in the\n> right-hand side pop up menu.\n\n</details>\n\n\n\n#### Core\n\n![11 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=11&style=flat-square \"New features added to this tier in this release\")\n![2321 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2321&style=flat-square \"Total features in this tier\")\n\n<details><summary>[View paused Flux reconciliations on the dashboard for Kubernetes](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html): <code>Deployment Management</code></summary>\n\n> Previously, when you suspended Flux reconciliation from the dashboard for Kubernetes, there was no clear indicator of the suspended state. We've added a new \"Paused\" status to the existing set of status indicators, making it clear when Flux reconciliation is suspended and providing better visibility into the state of your deployments.\n\n</details>\n\n<details><summary>[Search for pods on the dashboard for Kubernetes](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html): <code>Environment Management</code>, <code>Deployment Management</code></summary>\n\n> On the dashboard for Kubernetes, finding specific pods in large deployments can be time-consuming. A new search bar lets you quickly filter pods by name. The search works across all available pods, and you can combine it with status filters to find exactly the pods you need to monitor or troubleshoot.\n\n</details>\n\n<details><summary>[Track multiple to-do items in an issue or merge request](https://docs.gitlab.com/ee/user/todos.html#actions-that-create-to-do-items): <code>Notifications</code></summary>\n\n> You can now keep track of multiple discussions and mentions within a single issue or merge request. With the new multiple to-do items feature, you'll receive separate to-do items for each mention or action, ensuring you don't miss important updates or requests for your attention. This enhancement helps you manage your work more effectively and respond to your team's needs more efficiently.\n\n</details>\n\n<details><summary>[Project creation protection for groups now includes Owners](https://docs.gitlab.com/ee/user/group/index.html#specify-who-can-add-projects-to-a-group): <code>Groups & Projects</code></summary>\n\n> Project creation can be restricted to specific roles in a group using the **Allowed to create projects** setting. The Owner role is now available as an option, enabling you to restrict new project creation to users with the Owner role for the group. This role was previously unavailable in the selection options.\n> \n> Thank you [@yasuk](https://gitlab.com/yasuk) for this community contribution!\n\n</details>\n\n<details><summary>[List the deployments related to a release](https://docs.gitlab.com/ee/user/project/releases/): <code>Environment Management</code>, <code>Deployment Management</code></summary>\n\n> While GitLab has long supported creating releases from Git tags and tracking deployments, this information previously lived in multiple separate places that were difficult to piece together. Now, you can see all deployments related to a release directly on the release page. Release managers can quickly verify where a release has been deployed and which environments are pending deployment. This complements the existing deployment page integration that shows release notes for tagged deployments.\n> \n> We would like to express our gratitude to [Anton Kalmykov](https://gitlab.com/antonkalmykov) for contributing both features to GitLab.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Primary domain redirect for GitLab Pages](https://docs.gitlab.com/ee/user/project/pages/#primary-domain): <code>Pages</code></summary>\n\n> You can now set a primary domain in GitLab Pages to automatically redirect all requests from custom domains to your primary domain. This helps maintain SEO rankings and provides a consistent brand experience by directing visitors to your preferred domain, regardless of which URL they initially use to access your site.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Pipeline limits available in GitLab Community Edition](https://docs.gitlab.com/ee/administration/settings/continuous_integration.html#set-cicd-limits) <i>(self-managed only)</i>: <code>Continuous Integration (CI)</code></summary>\n\n> Administrators can now control pipeline resource usage by setting CI/CD limits for their GitLab Community Edition installations. Previously, this feature was only available in GitLab Enterprise Edition.\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Safeguard your dependencies with protected packages](https://docs.gitlab.com/ee/user/packages/package_registry/package_protection_rules.html): <code>Package Registry</code></summary>\n\n> We're thrilled to introduce support for protected PyPI packages, a new feature designed to enhance the security and stability of your GitLab package registry. In the fast-paced world of software development, accidental modification or deletion of packages can disrupt entire development processes. Protected packages address this issue by allowing you to safeguard your most important dependencies against unintended changes.\n> \n> From GitLab 17.8, you can protect PyPI packages by creating protection rules. If a package is matched by a protection rule, only specified users can update or delete the package. With this feature, you can prevent accidental changes, improve compliance with regulatory requirements, and streamline your workflows by reducing the need for manual oversight.\n\n</details>\n\n<details><summary>[Enhance security with protected container repositories](https://docs.gitlab.com/ee/user/packages/container_registry/container_repository_protection_rules.html): <code>Container Registry</code></summary>\n\n> We're thrilled to announce the rollout of protected container repositories, a new feature in the GitLab container registry that addresses security and control challenges in managing container images. Organizations often struggle with unauthorized access to sensitive container repositories, accidental modifications, lack of granular control, and difficulties in maintaining compliance. This solution provides enhanced security through strict access controls, granular permissions for push, pull, and management operations, and seamless integration with GitLab CI/CD pipelines.\n> \n> Protected container repositories offers value to users by reducing the risk of security breaches and accidental changes to critical assets. This feature streamlines workflows by maintaining security without sacrificing development speed, improves overall governance of the container registry, and provides peace of mind knowing that important container assets are protected according to organizational needs.\n> \n> This feature and the [protected packages](https://gitlab.com/groups/gitlab-org/-/epics/5574) feature are both community contributions from `gerardo-navarro` and the Siemens crew. Thank you Gerardo and the rest of the crew from Siemens for their many contributions to GitLab! If you are interesting in learning more about how Gerardo and the Siemens crew contributed this change, check out this [video](https://www.youtube.com/watch?v=5-nQ1_Mi7zg) in which Gerardo shares his learnings and best practices for contributing to GitLab based on his experience as an external contributor.\n\n</details>\n\n\n\n##### [Modelops](https://about.gitlab.com/stages-devops-lifecycle/modelops/)\n\n<details><summary>[GitLab MLOps Python Client Beta](https://gitlab.com/gitlab-org/modelops/mlops/gitlab-mlops): <code>MLOps</code></summary>\n\n> Data scientists and Machine Learning engineers primarily work in Python environments, but integrating their machine learning workflows with GitLab MLOps features often requires context switching and understanding of the GitLab API structure. This can create friction in their development process and slow down their ability to track experiments, manage model artifacts, and collaborate with team members.\n> \n> The new GitLab MLOps Python client provides a seamless, Pythonic interface to GitLab MLOps features. Data scientists can now interact with GitLab [experiment tracking](https://docs.gitlab.com/ee/user/project/ml/experiment_tracking/) and [model registry](https://docs.gitlab.com/ee/user/project/ml/model_registry/) capabilities directly from their Python scripts and notebooks. The client includes:\n> \n> - **GitLab Experiment Tracking**: Easily track machine learning experiments within GitLab.\n> - **Model Registry Integration**: Register and manage models in the GitLab model registry.\n> - **Experiment Management**: Create and manage experiments directly from the client.\n> - **Run Tracking**: Initiate and monitor training runs with ease.\n> \n> This integration allows data scientists to focus on model development while automatically capturing their ML lifecycle metadata in GitLab. The Python client works seamlessly with existing ML workflows and requires minimal setup, making GitLab MLOps features more accessible to the data science community.\n> \n> We welcome the wider Python and data science community to contributions and share feedback directly in our [project's repository](https://gitlab.com/gitlab-org/modelops/mlops/gitlab-mlops)\n\n</details>\n\n<details><summary>[Machine learning model experiments tracking in GA](https://docs.gitlab.com/ee/user/project/ml/experiment_tracking/): <code>MLOps</code></summary>\n\n> When creating machine learning models, data scientists often experiment with different parameters, configurations, and feature engineering to improve the performance of the model. Keeping track of all this metadata and the associated artifacts so that the data scientist can later replicate the experiment is not trivial. Machine learning experiment tracking enables them to log parameters, metrics, and artifacts directly into GitLab, giving easy access later on while also keeping all experimental data within your GitLab environment. This feature is now generally available with enhanced data displays, enhanced permissions, deeper integration with GitLab, and bug fixes.\n\n</details>\n\n\n","released_at":"2025-01-16T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.7","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.7.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.7.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.7.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.7.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.7.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.7.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":6466423,"url":"https://about.gitlab.com/releases/2024/12/19/gitlab-17-7-released/","name":"GitLab 17.7 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/12/19/gitlab-17-7-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.7.0-ee/gitlab-v17.7.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.7.0-ee/gitlab-v17.7.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.7.0-ee/gitlab-v17.7.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.7.0-ee/gitlab-v17.7.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"1fd574ee5710155adf5307fba45132264dcb64a1","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/1fd574ee5710155adf5307fba45132264dcb64a1","short_id":"1fd574ee","trailers":[],"created_at":"2024-12-18T06:10:01.000+00:00","parent_ids":["a145e5ccfaac6bdf51b6708be078eb6d29f7cf18"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-12-18T06:10:01.000+00:00","committed_date":"2024-12-18T06:10:01.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.7.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.7.0-ee","evidences":[],"created_at":"2024-12-19T14:52:40.659Z","milestones":[{"id":4599664,"iid":106,"state":"closed","title":"17.7","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/106","due_date":"2024-12-13","group_id":9970,"created_at":"2024-05-24T18:04:01.815Z","start_date":"2024-11-16","updated_at":"2025-10-22T16:27:43.177Z","description":"","issue_stats":{"total":2311,"closed":2286}}],"commit_path":"/gitlab-org/gitlab/-/commit/1fd574ee5710155adf5307fba45132264dcb64a1","description":"![25 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=25&style=for-the-badge \"New features added in this release\")\n![3676 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3676&style=for-the-badge \"Total features\")\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Small hosted runner on Linux Arm available to all Tiers](https://docs.gitlab.com/ee/ci/runners/hosted_runners/linux.html) <i>(SaaS only)</i>: <code>GitLab Hosted Runners</code></summary>\n\n> We are excited to introduce the small hosted runner on Linux Arm for GitLab.com, available for all tiers.\n> This 2 vCPUs Arm runner is fully integrated with GitLab CI/CD and allows you to\n> build and test applications natively on the Arm architecture.\n> \n> We are determined to provide the industry’s fastest CI/CD build speed and look forward to seeing teams achieve even shorter feedback cycles and ultimately deliver software faster.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Group and project access tokens in credentials inventory](https://docs.gitlab.com/administration/credentials_inventory/) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> Group and project access tokens are now visible in the credentials inventory on GitLab.com. Previously, only personal access tokens and SSH keys were visible. Additional token types in the inventory allow for a more complete picture of credentials across the group.\n\n</details>\n\n<details><summary>[New API endpoint to list enterprise users](https://docs.gitlab.com/ee/api/group_enterprise_users.html) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> Group Owners can now use a dedicated API endpoint to list enterprise users and any associated attributes.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![7 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=7&style=flat-square \"New features added to this tier in this release\")\n![578 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=578&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Instance administrators can control which integrations can be enabled](https://docs.gitlab.com/ee/administration/settings/project_integration_management.html#integration-allowlist) <i>(self-managed only)</i>: <code>Integrations</code></summary>\n\n> Instance administrators can now configure an allowlist to control which integrations can be enabled on a GitLab instance. If an empty allowlist is configured, no integrations are allowed on the instance. After an allowlist is configured, new GitLab integrations are not on the allowlist by default.\n> \n> Previously enabled integrations that are later blocked by the allowlist settings are disabled. If these integrations are allowed again, they are re-enabled with their existing configuration.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Improved detection accuracy in Advanced SAST](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html): <code>SAST</code></summary>\n\n> We've updated Advanced SAST to detect the following vulnerability classes more accurately:\n> \n> - C#: OS command injection and SQL injection.\n> - Go: path traversal.\n> - Java: code injection, CRLF injection in headers or logs, cross-site request forgery (CSRF), improper certificate validation, insecure deserialization, unsafe reflection, and XML external entity (XXE) injection.\n> - JavaScript: code injection.\n> \n> We've also improved detection of user input sources for C# (ASP.NET) and Java (JSF, HttpServlet) and updated severity levels for consistency.\n> \n> To see which types of vulnerabilities Advanced SAST detects in each language, see [Advanced SAST coverage](https://docs.gitlab.com/ee/user/application_security/sast/advanced_sast_coverage.html).\n> To use this improved cross-file, cross-function scanning, [enable Advanced SAST](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html#enable-advanced-sast-scanning).\n> If you've already enabled Advanced SAST, the new rules are [automatically activated](https://docs.gitlab.com/ee/user/application_security/sast/rules.html#how-rule-updates-are-released).\n\n</details>\n\n<details><summary>[Efficient risk prioritization with KEV](https://docs.gitlab.com/ee/api/graphql/reference/#cveenrichmenttype): <code>Software Composition Analysis</code></summary>\n\n> In GitLab 17.7, we added support for the Known Exploited Vulnerabilities Catalog (KEV). The [KEV Catalog](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) is maintained by CISA and curates listings of CVEs that have been exploited in the wild. You can leverage KEV to better prioritize scan results and to help evaluate the potential impact a vulnerability may have on your environment.\n> \n> This data is available to composition analysis users through GraphQL. There is [planned work](https://gitlab.com/gitlab-org/gitlab/-/issues/427441) to support displaying this data in the GitLab UI.\n\n</details>\n\n<details><summary>[Expanded Code Flow view for Advanced SAST](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html#vulnerability-code-flow): <code>SAST</code></summary>\n\n> The Advanced SAST [code flow view](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html#vulnerability-code-flow) is now available wherever vulnerabilities are shown, including the:\n> \n> - [Vulnerability Report](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/).\n> - [Merge request security widget](https://docs.gitlab.com/ee/user/application_security/sast/#merge-request-widget).\n> - [Pipeline security report](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/pipeline.html).\n> - [Merge request changes view](https://docs.gitlab.com/ee/user/application_security/sast/#merge-request-changes-view).\n> \n> The new views are enabled on GitLab.com. On GitLab self-managed, the new views are on by default starting in GitLab 17.7 (MR changes view) and GitLab 17.6 (all other views). For details on supported versions and feature flags, see [code flow feature availability](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html#code-flow-feature-availability).\n> \n> To learn more about Advanced SAST, see [the announcement blog](https://about.gitlab.com/blog/gitlab-advanced-sast-is-now-generally-available/).\n\n</details>\n\n<details><summary>[Enable secret push protection in your groups with APIs](https://docs.gitlab.com/ee/api/group_security_settings.html): <code>Secret Detection</code></summary>\n\n> With this release, you can now enable secret push protection on all projects in your group via the [REST API](https://docs.gitlab.com/ee/api/group_security_settings.html) and the [GraphQL API](https://docs.gitlab.com/ee/api/graphql/reference/index.html#mutationsetgroupsecretpushprotection). This allows you to efficiently enable secret push protection on a per-group basis instead of project by project. Audit events are logged every time push protection is enabled or disabled.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Remove Owner base role from custom roles](https://docs.gitlab.com/ee/user/custom_roles.html#create-a-custom-role): <code>Permissions</code></summary>\n\n> The Owner base role is no longer available when creating a custom role as it provided no additional value because permissions are additive. Existing custom roles with the Owner base role are not impacted by this change.\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Auto-resolve vulnerabilities when not found in subsequent scans](https://docs.gitlab.com/ee/user/application_security/policies/vulnerability_management_policy.html): <code>Vulnerability Management</code></summary>\n\n> GitLab [security scanning tools](https://docs.gitlab.com/ee/user/application_security/#security-scanning-tools) help identify known vulnerabilities and potential weaknesses in your application code. Scanning feature branches surfaces new weaknesses or vulnerabilities so they can be remediated before merging. In the case of vulnerabilities already in your project's default branch, fixing these in a feature branch will mark the vulnerability as no longer detected when the next default branch scan runs. While it is informative to know which vulnerabilities are no longer detected, each must still be manually marked as Resolved to close them. This can be time consuming if there are many of these to resolve, even when using the new [Activity filter](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/#activity-filter) and [bulk-changing status](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/#change-status-of-vulnerabilities).\n> \n> We are introducing a new policy type _Vulnerability Management policy_ for users who want vulnerabilities automatically set to Resolved when no longer detected by automated scanning. Simply configure a new policy with the new Auto-resolve option and apply it to the appropriate project(s). You can even configure the policy to only Auto-resolve vulnerabilities of a certain severity or from specific security scanners. Once in place, the next time the project's default branch is scanned, any existing vulnerabilities that are no longer found will be marked as Resolved. The action updates the vulnerability record with an activity note, timestamp when the action occurred, and the pipeline the vulnerability was determined to be removed in.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![3 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=3&style=flat-square \"New features added to this tier in this release\")\n![678 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=678&style=flat-square \"Total features in this tier\")\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[New `/help` command in GitLab Duo Chat](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#gitlab-duo-chat-slash-commands): <code>Editor Extensions</code>, <code>Duo Chat</code></summary>\n\n> Discover GitLab Duo Chat's powerful features! Just type `/help` in the chat message field to explore everything it can do for you.\n> \n> Give it a try and see how GitLab Duo Chat can make your work smoother and more efficient.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Track CI/CD component usage across projects](https://docs.gitlab.com/ee/api/graphql/reference/index.html#cicatalogresourcecomponentusage): <code>Pipeline Composition</code></summary>\n\n> Central DevOps teams often need to track where their CI/CD components are used across pipelines to better manage and optimize them. Without visibility, it's challenging to identify outdated component use, understand adoption rates, or support component life cycles.\n> \n> To address this, we've added a new GraphQL query that enables DevOps teams to view a list of projects where a component is used across their organization's pipelines.\n> This capability empowers DevOps teams to enhance productivity and make better decisions by providing crucial insights.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Navigation and usability improvements for the compliance center](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_frameworks_report.html): <code>Compliance Management</code></summary>\n\n> We continue to make iterative and important improvements to the compliance center's user experience for both groups\n> and projects.\n> \n> With GitLab 17.7, we shipped two key improvements:\n> \n> - Users can now filter by groups in the **Projects** tab of the compliance center, which gives another option\n>   to users to apply, filter, and search for the appropriate project, and the compliance framework attached to that\n>   project.\n> - A project's compliance center now has a **Frameworks** tab, which allows users to search for compliance\n>   frameworks attached to that particular project.\n> \n> Please note that adding or editing frameworks is still done on groups, not projects.\n\n</details>\n\n\n\n#### Core\n\n![12 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=12&style=flat-square \"New features added to this tier in this release\")\n![2310 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2310&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Omnibus improvements](https://docs.gitlab.com/omnibus/) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> Because of a bug, FIPS Linux packages for GitLab 17.6 and earlier did not use the system Libgcrypt, but the same Libgcrypt bundled with regular Linux packages.\n> \n> This issue is fixed for all FIPS Linux packages for GitLab 17.7, except for AmazonLinux 2. The Libgcrypt version of AmazonLinux 2 is not compatible with the GPGME and GnuPG versions shipped with the FIPS Linux packages.\n> \n> FIPS Linux packages for AmazonLinux 2 will continue to use the same Libgcrypt bundled with the regular Linux packages, otherwise we would have to downgrade GPGME and GnuPG.\n\n</details>\n\n<details><summary>[Setting `environment.action: access` and `prepare` resets the `auto_stop_in` timer](https://docs.gitlab.com/ee/ci/yaml/#environmentauto_stop_in): <code>Deployment Management</code></summary>\n\n> Previously, when using the `action: prepare`, `action: verify`, and `action: access` jobs together with the `auto_stop_in` setting, the timer was not reset. Starting in 18.0, `action: prepare` and `action: access` will reset the timer, while `action: verify` leaves it untouched.\n> \n> For now, you can change to the new implementation by enabling the `prevent_blocking_non_deployment_jobs` feature flag.\n> \n> Multiple breaking changes are intended to differentiate the behavior of the `environment.action: prepare | verify | access` values. The `environment.action: access` keyword will remain the closest to its current behavior, except for the timer reset.\n> \n> To prevent future compatibility issues, you should review your use of these keywords.\n> Learn more about these proposed changes in the following issues:\n> \n> - [Issue 437132](https://gitlab.com/gitlab-org/gitlab/-/issues/437132)\n> - [Issue 437133](https://gitlab.com/gitlab-org/gitlab/-/issues/437133)\n> - [Issue 437142](https://gitlab.com/gitlab-org/gitlab/-/issues/437142)\n\n</details>\n\n<details><summary>[Kubernetes 1.31 support](https://docs.gitlab.com/ee/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features): <code>Deployment Management</code></summary>\n\n> This release adds full support for Kubernetes version 1.31, released in August 2024. If you deploy your apps to Kubernetes, you can now upgrade your connected clusters to the most recent version and take advantage of all its features.\n> \n> For more information, see our [Kubernetes support policy and other supported Kubernetes versions](https://docs.gitlab.com/ee/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features).\n\n</details>\n\n<details><summary>[Set namespace and Flux resource path from CI/CD job](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html): <code>Environment Management</code>, <code>Deployment Management</code></summary>\n\n> To use the dashboard for Kubernetes, you need to select an agent for Kubernetes connection from the environment settings, and optionally configure a namespace and a Flux resource to track the reconciliation status. In GitLab 17.6, we added support for selecting an agent with a CI/CD configuration. However, configuring the namespace and the Flux resource still required you to use the UI or make an API call. In 17.7, you can fully configure the dashboard using the CI/CD syntax with the `environment.kubernetes.namespace` and `environment.kubernetes.flux_resource_path` attributes.\n\n</details>\n\n<details><summary>SCA Vulnerability Prioritizer</summary>\n\n> This experimental feature is another step in helping users prioritize vulnerabilities identified during [Dependency Scanning](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html) or [Container Scanning](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html). Users may include this CI/CD component in their `.gitlab-ci.yml` file, which will generate a prioritization report for vulnerabilities found in the project. The report will print to the pipeline output.\n> \n> The component queries the GitLab GraphQL API to retrieve vulnerability data and prioritizes as follows:\n> \n> 1. Vulnerabilities with known exploits (KEV) are the top priority.\n> 2. Vulnerabilities with high EPSS scores.\n> 3. Higher severity vulnerabilities.\n> \n> Only detected and confirmed vulnerabilities are shown. Currently, the component relies on EPSS and KEV data to help prioritize vulnerabilities. EPSS and KEV data are only found on CVEs, which are collected through dependency and container scanning. To learn more, please refer to the [Vulnerability Prioritizer](https://gitlab.com/components/vulnerability-prioritizer).\n> \n> As always, we welcome your feedback. Please add any questions or comments to the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/509508).\n\n</details>\n\n<details><summary>[New user contribution and membership mapping available in direct transfer](https://docs.gitlab.com/ee/user/project/import/#user-contribution-and-membership-mapping): <code>Importers</code></summary>\n\n> The new method of user contribution and membership mapping is now available when you migrate between GitLab instances by [direct transfer](https://docs.gitlab.com/ee/user/group/import/index.html). This feature offers flexibility and control for both users managing the import process and users receiving contribution reassignments. With the new method, you can:\n> \n> - Reassign memberships and contributions to existing users on the destination instance after the import has completed. Any memberships and contributions you import are first mapped to placeholder users. All contributions appear associated with placeholders until you reassign them on the destination instance.\n> - Map memberships and contributions for users with different email addresses on source and destination instances.\n> \n> When you reassign a contribution to a user on the destination instance, the user can accept or reject the reassignment.\n> \n> For more information, see [streamline migrations with user contribution and membership mapping](https://about.gitlab.com/blog/streamline-migrations-with-user-contribution-and-membership-mapping/). To leave feedback, add a comment to [issue 502565](https://gitlab.com/gitlab-org/gitlab/-/issues/502565).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Unicode 15.1 emoji support 🦖🍋‍🟩🐦‍🔥](https://gitlab-org.gitlab.io/ruby/gems/tanuki_emoji/): <code>Markdown</code></summary>\n\n> In previous versions of GitLab, emoji support was limited to an older Unicode standard, which meant some newer emojis were unavailable.\n> \n> GitLab 17.7 introduces support for Unicode 15.1, bringing the latest emoji additions. This includes exciting new options like the t-rex 🦖, lime 🍋‍🟩, and phoenix 🐦‍🔥, allowing you to express yourself with the most up-to-date symbols.\n> \n> Additionally, this update enhances emoji diversity, ensuring greater representation across cultures, languages,\n> and identities, helping everyone feel included when communicating on the platform.\n\n</details>\n\n<details><summary>[Set your preferred text editor as default](https://docs.gitlab.com/ee/user/profile/preferences.html#set-the-default-text-editor): <code>Text Editors</code></summary>\n\n> In this version, we're introducing the ability to set a default text editor for a more personalized editing experience. With this change, you can now choose between the rich text editor, the plain text editor, or opt for no default, allowing flexibility in how you create and edit content. \n> \n> This update ensures smoother workflows by aligning the editor interface with individual preferences or team standards. With this enhancement, GitLab continues to prioritize customization and usability for all users.\n\n</details>\n\n<details><summary>[New Planner user role](https://docs.gitlab.com/ee/user/permissions.html): <code>Portfolio Management</code></summary>\n\n> We've introduced the new Planner role to give you tailored access to Agile planning tools like epics, roadmaps, and Kanban boards without over-provisioning [permissions](https://docs.gitlab.com/ee/user/permissions.html). This change helps you collaborate more effectively while keeping your workflows secure and aligned with the principle of least privilege.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Extended token expiration notifications](https://docs.gitlab.com/ee/security/tokens/): <code>System Access</code></summary>\n\n> Previously, token expiration email notifications were only sent seven days before expiry. Now, these notifications are also sent 30 and 60 days before expiry. The increased frequency and date range of notifications makes users more aware of tokens that may be expiring soon. \n\n</details>\n\n<details><summary>[New description field for access tokens](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#create-a-personal-access-token): <code>System Access</code></summary>\n\n> When creating a personal, project, group, or impersonation access token, you can now optionally enter a description of that token. This helps provide extra context about the token, such as where and how is it used.\n\n</details>\n\n<details><summary>[Rotate personal, project, and group access tokens in the UI](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#revoke-or-rotate-a-personal-access-token): <code>System Access</code></summary>\n\n> You can now use the UI to rotate personal, project, and group access tokens. Previously, you had to use the API to do this.\n> \n> Thank you [shangsuru](https://gitlab.com/shangsuru) for your contribution!\n\n</details>\n\n\n","released_at":"2024-12-19T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.6","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.6.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.6.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.6.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.6.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.6.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.6.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":6290250,"url":"https://about.gitlab.com/releases/2024/11/21/gitlab-17-6-released/","name":"GitLab 17.6 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/11/21/gitlab-17-6-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.6.0-ee/gitlab-v17.6.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.6.0-ee/gitlab-v17.6.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.6.0-ee/gitlab-v17.6.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.6.0-ee/gitlab-v17.6.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"a8830741d3c4ad7f6a70eed38ee7af31f298d093","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/a8830741d3c4ad7f6a70eed38ee7af31f298d093","short_id":"a8830741","trailers":[],"created_at":"2024-11-20T11:20:27.000+00:00","parent_ids":["8ff4801303e54afa40fd82c54e0f700040dc401b"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-11-20T11:20:27.000+00:00","committed_date":"2024-11-20T11:20:27.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.6.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.6.0-ee","evidences":[],"created_at":"2024-11-21T14:35:01.242Z","milestones":[{"id":4599661,"iid":105,"state":"closed","title":"17.6","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/105","due_date":"2024-11-15","group_id":9970,"created_at":"2024-05-24T18:01:39.878Z","start_date":"2024-10-12","updated_at":"2025-10-22T16:27:08.478Z","description":"","issue_stats":{"total":2648,"closed":2613}}],"commit_path":"/gitlab-org/gitlab/-/commit/a8830741d3c4ad7f6a70eed38ee7af31f298d093","description":"![39 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=39&style=for-the-badge \"New features added in this release\")\n![3651 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3651&style=for-the-badge \"Total features\")\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[macOS Sequoia 15 and Xcode 16 job image](https://docs.gitlab.com/ee/ci/runners/hosted_runners/macos.html) <i>(SaaS only)</i>: <code>GitLab Hosted Runners</code></summary>\n\n> You can now create, test, and deploy applications for the newest\n> generations of Apple devices using macOS Sequoia 15 and Xcode 16.\n> \n> GitLab [hosted runners on macOS](https://docs.gitlab.com/ee/ci/runners/hosted_runners/macos.html)\n> help your development teams build and deploy macOS applications faster in a secure,\n> on-demand build environment integrated with GitLab CI/CD.\n> \n> Try it out today by using the `macos-15-xcode-16` image in your `.gitlab-ci.yml` file.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![11 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=11&style=flat-square \"New features added to this tier in this release\")\n![571 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=571&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Use self-hosted model for GitLab Duo Chat](https://docs.gitlab.com/ee/administration/self_hosted_models/) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now host selected large language models (LLMs) in your own infrastructure and configure those models as the source for GitLab Duo Chat. This feature is in beta and available with an Ultimate and Duo Enterprise subscription on self-managed GitLab environments.\n> \n> With self-hosted models, you can use models hosted either on-premise or in a private cloud as the source for GitLab Duo Chat or Code Suggestions (introduced as a beta feature in GitLab 17.5). For Code Suggestions, we currently support open-source Mistral models on vLLM or AWS Bedrock, Claude 3.5 Sonnet on AWS Bedrock, and OpenAI models on Azure OpenAI. For Chat, we currently support open-source Mistral models on vLLM or AWS Bedrock, and Claude 3.5 Sonnet on AWS Bedrock. By enabling self-hosted models, you can leverage the power of generative AI while maintaining complete data sovereignty and privacy.\n> \n> Please leave feedback in [issue 501268](https://gitlab.com/gitlab-org/gitlab/-/issues/501268).\n\n</details>\n\n<details><summary>[New tenant networking configurations for GitLab Dedicated](https://docs.gitlab.com/ee/administration/dedicated/configure_instance/network_security.html#outbound-private-link) <i>(self-managed only)</i>: <code>GitLab Dedicated</code>, <code>Switchboard</code></summary>\n\n> As a GitLab Dedicated tenant administrator, you can now use Switchboard to set up outbound private links and private hosted zones. You can also monitor your network connections by viewing periodic snapshots in Switchboard.\n> \n> Outbound private links and private hosted zones establish secure network connectivity between resources in your AWS account and GitLab Dedicated.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Query user-level GitLab Duo Enterprise usage metrics](https://docs.gitlab.com/ee/api/graphql/reference/#aiusermetrics): <code>Value Stream Management</code></summary>\n\n> Prior to this release, it was not possible to get GitLab Duo Chat and Code Suggestions usage data per Duo Enterprise user. In 17.6, we've added a GraphQL API to provide visibility into the number of code suggestions accepted and Duo Chat interactions for each active Duo Enterprise user. The API can help you get more granular insight into who is using which Duo Enterprise features and how frequently. This is the first iteration toward our goal of [providing more comprehensive Duo Enterprise usage data](https://gitlab.com/groups/gitlab-org/-/epics/15026) within GitLab.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Efficient risk prioritization with EPSS](https://docs.gitlab.com/ee/api/graphql/reference/#cveenrichmenttype): <code>Software Composition Analysis</code></summary>\n\n> In GitLab 17.6, we added support for the Exploit Prediction Scoring System (EPSS). EPSS gives each CVE a score between 0 and 1 indicating the probability of the CVE being exploited in the next 30 days. You can leverage EPSS to better prioritize scan results and to help evaluate the potential impact a vulnerability may have on your environment.\n> \n> This data is available to composition analysis users through GraphQL.\n\n</details>\n\n<details><summary>[Enable Secret Push Protection in your projects via API](https://docs.gitlab.com/ee/api/projects.html): <code>Secret Detection</code></summary>\n\n> It's now easier to programatically enable secret push protection. We've updated the application settings REST API, allowing you to: \n> 1. Enable the feature in your self-managed instance so that it can be enabled on a per-project basis.\n> 2. Check whether the feature has been enabled on a project.\n> 3. Enable the feature for a specified project.\n\n</details>\n\n<details><summary>[Secret Push Protection audit events for applied exclusions](https://docs.gitlab.com/ee/user/application_security/secret_detection/exclusions.html): <code>Secret Detection</code></summary>\n\n> Audit events are now logged when a secret push protection exclusion is applied. This enables security teams to audit and track any occurence when a secret on the project's exclusions list is allowed to be pushed.\n\n</details>\n\n<details><summary>[Support for license data from CycloneDX SBOMs](https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscyclonedx): <code>Software Composition Analysis</code></summary>\n\n> The License Scanner now has the ability to consume a dependency's license from a CycloneDX SBOM that includes [supported package types](https://docs.gitlab.com/ee/user/compliance/license_scanning_of_cyclonedx_files/#supported-languages-and-package-managers).\n> \n> In cases where the `licenses` field of a CycloneDX SBOM is available, users will see license data from their SBOM. In cases where the SBOM lacks license information we will continue to provide this data from our License database.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[New audit event when merge requests are merged](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#compliance-management): <code>Audit Events</code></summary>\n\n> With this release, when a merge request is merged, a new audit event type called `merge_request_merged` is triggered that contains key information about\n> the merge request, including:\n> \n> - The title of the merge request\n> - The description or summary of the merge request\n> - How many approvals were required for merge\n> - How many approvals were granted for merge\n> - Which users approved the merge request\n> - Whether committers approve the merge request\n> - Whether authors approved the merge request\n> - The date/time of the merge\n> - The list of SHAs from Commit history\n\n</details>\n\n<details><summary>[New adherence checks for SAST and DAST security scanners](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_standards_adherence_dashboard.html#gitlab-standard): <code>Compliance Management</code></summary>\n\n> GitLab offers a wide range of security scanners such as SAST, secret detection, dependency scanning, container scanning, and more\n> so that you can check your applications for security vulnerabilities.\n> \n> You need to have a way to show auditors and relevant compliance authorities that your applications have adhered to regulatory standards that require you to have security \n> scanners set up for your repositories.\n> \n> To help you demonstrate adherence to these standards, this release includes two new checks as part of the standard adherence report in the Compliance Center. These\n> new checks check whether SAST and DAST has been enabled for projects within a group. The checks confirm that the SAST and DAST security scanners\n> correctly ran in a project and the pipeline results has the correct resulting artifacts.\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Prevent modification of group protected branches](https://docs.gitlab.com/ee/user/application_security/policies/merge_request_approval_policies.html#approval_settings): <code>Security Policy Management</code></summary>\n\n> When a merge request approval policy is configured to prevent group branch modification, policies now account for protected branches configured for a group. This setting ensures that branches protected at the group level cannot be unprotected. Protected branches restrict certain actions, such as deleting the branch and force pushing to the branch. You can override this behavior and declare exceptions for specific top-level groups with the new `approval_settings.block_group_branch_modification` property to allow group owners to temporarily modify protected branches when necessary.\n> \n> This new project override setting ensures that group protected branch settings cannot be modified to circumvent security and compliance requirements, ensuring more stable enforcement of protected branches.   \n\n</details>\n\n<details><summary>[Vulnerability report grouping](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/#group-vulnerabilities): <code>Vulnerability Management</code></summary>\n\n> Users require the ability to view vulnerabilities in groups. This will help security analysts optimize their triage tasks by utilizing bulk actions. In addition users can see how many vulnerabilities match their group; i.e. how many OWASP Top 10 vulnerabilities are there?\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![12 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=12&style=flat-square \"New features added to this tier in this release\")\n![675 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=675&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Project events for group webhooks](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#project-events): <code>Webhooks</code></summary>\n\n> In this release, we've added project events to group webhooks. Project events are triggered when:\n> \n> - A project is created in a group.\n> - A project is deleted in a group.\n> \n> These events are triggered for [group webhooks](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#group-webhooks) only.\n\n</details>\n\n<details><summary>[Filter GitLab Duo users by assigned seat](https://docs.gitlab.com/ee/subscriptions/subscription-add-ons.html#view-assigned-gitlab-duo-users): <code>Add-on Provisioning</code></summary>\n\n> In previous versions of GitLab, the user list displayed on the GitLab Duo seat assignment page could not be filtered, making it difficult to see which users had previously been assigned a GitLab Duo seat. Now, you can filter your user list by Assigned seat = Yes or Assigned seat = No to see to see which users are currently assigned or not assigned a GitLab Duo seat, allowing for ease in adjusting seat allocations.\n\n</details>\n\n<details><summary>[GitLab Duo seat assignment email update](https://docs.gitlab.com/ee/subscriptions/subscription-add-ons.html#assign-gitlab-duo-seats) <i>(self-managed only)</i>: <code>Seat Cost Management</code></summary>\n\n> All users on self-managed instances will receive an email when they are assigned a GitLab Duo seat. \n> \n> Previously, those assigned a Duo Enterprise seat or those granted access by bulk assignment would not be notified. You wouldn't know you were assigned a seat unless someone told you, or you noticed new functionality in the GitLab UI.\n> \n> To disable this email, an administrator can disable the `duo_seat_assignment_email_for_sm` feature flag.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[AI Impact Analytics API for GitLab Duo Pro](https://docs.gitlab.com/ee/api/graphql/reference/#aimetrics): <code>Value Stream Management</code></summary>\n\n> GitLab Duo Pro customers can now programmatically access AI Impact Analytics metrics with the `aiMetrics` GraphQL API. Metrics include the number of assigned GitLab Duo seats, Duo Chat users, and Code Suggestion users. The API also provides granular counts for code suggestions that are shown and accepted. With this data, you can calculate the acceptance rate for Code Suggestions, and better understand your Duo Pro users' adoption of Duo Chat and Code Suggestions. You can also pair AI Impact Analytics metrics with Value Stream Analytics and DORA metrics to gain deeper insight into how adopting Duo Chat and Code Suggestions are impacting your team's productivity.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Automated Repository X-Ray](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/repository_xray.html): <code>Code Suggestions</code></summary>\n\n> Repository X-Ray enriches code generation requests for GitLab Duo Code Suggestions by providing additional context about a project's dependencies to improve the accuracy and relevance of code recommendations. This improves the quality of code generation. Previously, Repository X-Ray used a CI job that you had to configure and manage.\n> \n> Now, when a new commit is pushed to your project's default branch, Repository X-Ray automatically triggers a background job that scans and parses the applicable configuration files in your repository.\n\n</details>\n\n<details><summary>[Corporate network support for GitLab Duo](https://docs.gitlab.com/ee/editor_extensions/language_server/#enable-proxy-authentication): <code>Editor Extensions</code></summary>\n\n> The latest update to the GitLab Duo plugin introduces advanced proxy authentication. This enables developers to connect seamlessly in environments with strict corporate firewalls. Building on our existing HTTP proxy support, this enhancement allows for authenticated connections. It ensures secure and uninterrupted access to Duo features in VS Code and JetBrains IDEs.\n> \n> This update is crucial for developers needing secure, authenticated connections in restricted network environments. It ensures all Duo features remain available without compromising security.\n\n</details>\n\n<details><summary>[Enhanced merge request reviewer assignments](https://docs.gitlab.com/ee/user/project/merge_requests/reviews/#request-a-review): <code>Code Review Workflow</code></summary>\n\n> After you've carefully crafted your changes and prepared a merge request, the next step is to identify reviewers who can help move it forward. Identifying the right reviewers for your merge request involves understanding who the right approvers are, and who might be a subject matter expert (CODEOWNER) for the changes you're proposing. \n> \n> Now, when assigning reviewers, the sidebar creates a connection between the approval requirements for your merge request and reviewers. View each approval rule, then select from approvers who can satisfy that approval rule and move the merge request forward for you. If you use [optional CODEOWNER sections](https://docs.gitlab.com/ee/user/project/codeowners/#make-a-code-owners-section-optional) those rules are also shown in the sidebar to help you identify appropriate subject matter experts for your changes.\n> \n> Enhanced reviewer assignments is the next evolution of applying intelligence to assigned reviewers in GitLab. This iteration builds on what we've learned from suggested reviewers, and how to effectively identify the best reviewers for moving a merge request forward. In [upcoming iterations](https://gitlab.com/groups/gitlab-org/-/epics/14808) of reviewer assignments, we'll continue to enhance the intelligence used to recommend and rank possible reviewers.\n\n</details>\n\n<details><summary>[Support for private container registries in workspaces](https://docs.gitlab.com/ee/user/workspace/configuration.html#configure-support-for-private-container-registries): <code>Remote Development</code></summary>\n\n> GitLab workspaces now offer support for private container registries. With this setup, you can pull container images from any private registry of your choice. As long as your Kubernetes cluster has a valid image pull secret, you can reference the secret in your [GitLab agent configuration](https://docs.gitlab.com/ee/user/workspace/gitlab_agent_configuration.html).\n> \n> This feature simplifies workflows, especially for teams that use custom or third-party container registries, and improves the flexibility and security of containerized development environments.\n\n</details>\n\n<details><summary>[Extension marketplace now available in workspaces](https://docs.gitlab.com/ee/user/project/web_ide/index.html#extension-marketplace): <code>Remote Development</code></summary>\n\n> The extension marketplace is now available in workspaces. With the extension marketplace, you can discover, install, and manage third-party extensions to enhance your development experience. Choose from thousands of extensions to boost your productivity or customize your workflow.\n> \n> The extension marketplace is disabled by default. To get started, go to your user preferences and [enable the extension marketplace](https://docs.gitlab.com/ee/user/profile/preferences.html#integrate-with-the-extension-marketplace). For enterprise users, only users with the Owner role for a top-level group can [enable the extension marketplace](https://docs.gitlab.com/ee/user/enterprise_user/#enable-the-extension-marketplace-for-the-web-ide-and-workspaces).\n\n</details>\n\n<details><summary>[Improved workspace lifecycle with delayed termination](https://docs.gitlab.com/ee/user/workspace/#automatic-workspace-stop-and-termination): <code>Remote Development</code></summary>\n\n> With this release, a workspace now stops rather than terminates after the configured timeout has elapsed. This feature means you can always restart your workspaces and pick up where you left off.\n> \n> By default, a workspace automatically:\n> \n> - Stops 36 hours after the workspace was last started or restarted\n> - Terminates 722 hours after the workspace was last stopped\n> \n> You can configure these settings in your [GitLab agent configuration](https://docs.gitlab.com/ee/user/workspace/gitlab_agent_configuration.html).\n> \n> With this feature, a workspace remains available for approximately one month after it was stopped. This way, you get to keep your progress while optimizing workspace resources.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Top-level group Owners can create service accounts](https://docs.gitlab.com/ee/administration/settings/account_and_limit_settings.html#allow-top-level-group-owners-to-create-service-accounts) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> Currently, only administrators can create service accounts on GitLab self-managed. Now, there is an optional setting which allows top-level group Owners to create service accounts. This allows administrators to choose if they would like a wider range of roles that are allowed to create service accounts, or keep it as an administrator-only task.\n\n</details>\n\n<details><summary>[Service accounts badge](https://docs.gitlab.com/ee/user/profile/service_accounts.html): <code>System Access</code></summary>\n\n> Service accounts now have a designated badge and can be easily identified in the users list. Previously, these accounts only had the `bot` badge, making it difficult to distinguish between them and group and project access tokens.\n\n</details>\n\n\n\n#### Core\n\n![15 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=15&style=flat-square \"New features added to this tier in this release\")\n![2298 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2298&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Add support for values to the `glab agent bootstrap` command](https://gitlab.com/gitlab-org/cli/-/blob/main/docs/source/cluster/agent/bootstrap.md#options): <code>Deployment Management</code></summary>\n\n> In the last release, we introduced support for easy agent bootstrapping to the GitLab CLI tool. GitLab 17.6 further improves the `glab cluster agent bootstrap` command with support for custom Helm values. You can use the `--helm-release-values` and `--helm-release-values-from` flags to customize the generated `HelmRelease` resource.\n\n</details>\n\n<details><summary>[Select a GitLab agent for an environment in a CI/CD job](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html#configure-a-dashboard-for-a-dynamic-environment): <code>Environment Management</code></summary>\n\n> To use the dashboard for Kubernetes, you need to select an agent for Kubernetes connection from the environment settings. Until now, you could select the agent only from the UI or (from GitLab 17.5) the API, which made configuring a dashboard from CI/CD difficult. In GitLab 17.6, you can configure an agent connection with the `environment.kubernetes.agent` syntax.\n> \n> In addition, [issue 500164](https://gitlab.com/gitlab-org/gitlab/-/issues/500164) proposes to add support for selecting a namespace and Flux resource from your CI/CD configuration.\n\n</details>\n\n<details><summary>[Display release notes on deployment details page](https://docs.gitlab.com/ee/ci/environments/deployment_approvals.html#view-blocked-deployments): <code>Continuous Delivery</code></summary>\n\n> Have you ever wondered what might be included in a deployment you've been asked to approve? In past versions, you could create a release with a detailed description about its content and instructions for testing, but the related environment-specific deployment did not show this data. We are happy to share that GitLab now displays the release notes under the related deployment details page.\n> \n> Because GitLab releases are always created from a Git tag, the release notes are shown only on deployments related to the tag-triggered pipeline.\n> \n> This feature was contributed to GitLab by [Anton Kalmykov](https://gitlab.com/antonkalmykov). Thank you!\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Deploy your Pages site with any CI/CD job](https://docs.gitlab.com/ee/user/project/pages/#user-defined-job-names): <code>Pages</code></summary>\n\n> To give you more flexibility in designing your pipelines, you no longer \n> need to name your Pages deploy job `pages`. You can now simply use the \n> `pages` attribute in any CI/CD job to trigger a Pages deployment.\n\n</details>\n\n<details><summary>[Easily remove closed items from your view](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html): <code>Portfolio Management</code></summary>\n\n> You can now hide closed items from the linked and child items lists by turning off the **Show closed items** toggle. With this addition, you have greater control over your view and can focus on active work while reducing visual clutter in complex projects.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Merge at a scheduled date and time](https://docs.gitlab.com/ee/user/project/merge_requests/auto_merge.html#prevent-merge-before-a-specific-date): <code>Code Review Workflow</code></summary>\n\n> Some merge requests may need to be held for merging until after a certain date or time. When that date and time does pass you need to find someone with permissions to merge and hope they're available to take care of it for you. If this is after hours or the timeline is critical you may need to prepare folks well in advance for the task.\n> \n> Now, when you create or edit a merge request you can specify a `merge after` date. This date will be used to prevent the merge request from being merged until it has passed. Using this new capability with our previously released [improvements to auto-merge](https://about.gitlab.com/releases/2024/09/19/gitlab-17-4-released/#auto-merge-when-all-checks-pass) gives you the flexibility to schedule merge requests to merge in the future.\n> \n> A big thank you to [Niklas van Schrick](https://gitlab.com/Taucher2003) for the amazing contribution!\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[JaCoCo test coverage visualization now generally available](https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization/jacoco.html): <code>Code Testing and Coverage</code></summary>\n\n> You can now see JaCoCo test coverage results directly in your merge request diff view. This visualization allows you to quickly identify which lines are covered by tests and which need additional coverage before merging. \n\n</details>\n\n<details><summary>[GitLab Runner 17.6](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 17.6 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### Bug Fixes:\n> \n> - [In GitLab Runner 17.5.0, pods fail to become attachable](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38260)\n> - [Runner crashes with `exec format error` when installing the fleeting plugin](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38247)\n> - [Kubernetes executor pods with cgroup v2 enabled hang when OOMKilled](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38244)\n> - [Runner defaults are not honoured when registering runner with a configuration template](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38231)\n> - [GitLab Runner waits for Kubernetes pods to become attachable during the polling period when using exec mode](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37244)\n> - [Authentication issues occur when the feature flag `FF_GIT_URLS_WITHOUT_TOKENS` is enabled](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38268)\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Audit events for privileged actions](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#groups-and-projects) <i>(self-managed only)</i>: <code>Audit Events</code></summary>\n\n> There are now additional audit events for privileged settings-related administrator actions. A record of when these settings were changed can help improve security by providing an audit trail.\n\n</details>\n\n<details><summary>[Disable OTP authenticator and WebAuthn devices independently](https://docs.gitlab.com/ee/user/profile/account/two_factor_authentication.html#disable-two-factor-authentication): <code>System Access</code></summary>\n\n> It is now possible to disable the OTP authenticator and WebAuthn devices individually or simultaneously. Previously, if you disabled the OTP authenticator, the WebAuthn device(s) were also disabled. Because the two now operate independently, there is more granular control over these authentication methods. \n\n</details>\n\n<details><summary>[Use API to get information about tokens](https://docs.gitlab.com/ee/api/admin/token.html) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> Administrators can use the new token information API to get information about personal access tokens, deploy tokens, and feed tokens. Unlike other API endpoints that expose token information, this endpoint allows administrators to retrieve token information without knowing the type of the token.\n> \n> Thank you [Nicholas Wittstruck](https://gitlab.com/nwittstruck) and the rest of the crew from Siemens for your contribution!\n\n</details>\n\n<details><summary>[More information in sign in emails from new locations](https://docs.gitlab.com/ee/user/profile/notifications.html#notifications-for-unknown-sign-ins) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> GitLab optionally sends an email when a sign-in from a new location is detected. Previously, this email only contained the IP address, which is difficult to correlate to a location. This email now contains city and country location information as well.\n> \n> Thank you [Henry Helm](https://gitlab.com/shangsuru) for your contribution! \n\n</details>\n\n<details><summary>[Admin setting to enforce CI/CD job token allowlist](https://docs.gitlab.com/ee/administration/settings/continuous_integration.html#job-token-permissions) <i>(self-managed only)</i>: <code>Secrets Management</code></summary>\n\n> Previously, we announced that the default CI/CD job token (`CI_JOB_TOKEN`) behavior [will change in GitLab 18.0](https://docs.gitlab.com/ee/update/deprecations.html#default-cicd-job-token-ci_job_token-scope-changed), requiring you to explicitly add indvidual [projects or groups to your project's job token allowlist](https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#add-a-group-or-project-to-the-job-token-allowlist) if you want them to continue to be able to access your project.\n> \n> Now, we are giving self-managed and Dedicated instance administrators the ability to enforce this more secure setting on all projects on an instance. After you enable this setting, all projects will need to make use of their allowlist if they want to use CI/CD job tokens for authentication. _Note: We recommend enabling this setting as part of a strong security policy._\n\n</details>\n\n<details><summary>[Track CI/CD job token authentications](https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#job-token-authentication-log): <code>Secrets Management</code></summary>\n\n> Previously it was difficult to track which other projects were using accessing your project by authenticating with CI/CD job tokens. To make it easier for you to audit and control access to your project, we've added an authentication log.\n> \n> With this authentication log, you can view the list of other projects that have used a job token to authenticate with your project, both in the UI and as a downloadable CSV file. This data can be used to audit project access and aid in populating the job token allowlist to enable stronger [control over which projects can access your project](https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#control-job-token-access-to-your-project). \n\n</details>\n\n\n\n##### [Modelops](https://about.gitlab.com/stages-devops-lifecycle/modelops/)\n\n<details><summary>[Model registry now generally available](https://docs.gitlab.com/ee/user/project/ml/model_registry/): <code>MLOps</code></summary>\n\n> GitLab model registry, now generally available, is your centralized hub for managing machine learning models as part of your existing GitLab workflow. You can track model versions, store artifacts and metadata, and maintain comprehensive documentation in the model card.\n> \n> Built for seamless integration, the model registry works natively with [MLflow clients]( https://docs.gitlab.com/ee/user/project/ml/experiment_tracking/mlflow_client.html) and connects directly to your CI/CD pipelines, enabling automated model deployment and testing. Data scientists can manage models through an intuitive UI or existing MLflow workflows, while MLOps teams can leverage semantic versioning and CI/CD integration for streamlined production deployments all within the [GitLab API](https://docs.gitlab.com/ee/api/model_registry.html).\n> \n>  Please feel free to drop us a note in our [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/504458) and we'll get back in touch! Get started today by going to **Deploy > Model registry** in your GitLab instance.\n\n</details>\n\n\n","released_at":"2024-11-21T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.5","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.5.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.5.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.5.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.5.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.5.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.5.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":5062415,"url":"https://about.gitlab.com/releases/2024/10/17/gitlab-17-5-released/","name":"GitLab 17.5 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/10/17/gitlab-17-5-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.5.0-ee/gitlab-v17.5.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.5.0-ee/gitlab-v17.5.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.5.0-ee/gitlab-v17.5.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.5.0-ee/gitlab-v17.5.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"173959793c1163052d16c2158773ea9504aa712e","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/173959793c1163052d16c2158773ea9504aa712e","short_id":"17395979","trailers":[],"created_at":"2024-10-16T07:54:00.000+00:00","parent_ids":["70a9e395f7b80649ff3931b32ce747a74f5b5174"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-10-16T07:54:00.000+00:00","committed_date":"2024-10-16T07:54:00.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.5.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.5.0-ee","evidences":[],"created_at":"2024-10-17T15:55:47.720Z","milestones":[{"id":4477118,"iid":104,"state":"closed","title":"17.5","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/104","due_date":"2024-10-11","group_id":9970,"created_at":"2024-03-05T01:39:45.239Z","start_date":"2024-09-14","updated_at":"2025-10-22T16:27:05.703Z","description":"","issue_stats":{"total":2280,"closed":2247}}],"commit_path":"/gitlab-org/gitlab/-/commit/173959793c1163052d16c2158773ea9504aa712e","description":"![28 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=28&style=for-the-badge \"New features added in this release\")\n![3612 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3612&style=for-the-badge \"Total features\")\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Safeguard your dependencies with protected packages](https://docs.gitlab.com/ee/user/packages/package_registry/package_protection_rules.html) <i>(SaaS only)</i>: <code>Container Registry</code></summary>\n\n> We're thrilled to introduce support for protected npm packages, a new feature designed to enhance the security and stability of your GitLab package registry. In the fast-paced world of software development, accidental modification or deletion of packages can disrupt entire development processes. Protected packages address this issue by allowing you to safeguard your most important dependencies against unintended changes.\n> \n> From GitLab 17.5, you can protect npm packages by creating protection rules. If a package is matched by a protection rule, only specified users can update or delete the package. With this feature, you can prevent accidental changes, improve compliance with regulatory requirements, and streamline your workflows by reducing the need for manual oversight.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Credentials Inventory available on GitLab.com](https://docs.gitlab.com/administration/credentials_inventory/) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> The Credentials Inventory is now available for top-level group Owners on GitLab.com. In the Credentials Inventory, you can view your [enterprise user's](https://docs.gitlab.com/ee/user/enterprise_user/) personal access tokens and SSH keys across your group. You can also revoke, delete, and view additional information about the credentials. Previously, this was only available for administrators on GitLab self-managed.\n> \n> Group Owners can use the Credentials Inventory to understand the credentials that exist in their purview, and provide increased visibility and control. \n\n</details>\n\n<details><summary>[Disable password authentication for enterprise users](https://docs.gitlab.com/ee/user/group/saml_sso/#disable-password-authentication-for-enterprise-users) <i>(SaaS only)</i>: <code>User Management</code></summary>\n\n> Enterprise users can authenticate using a local account with username and password. Now, group Owners can disable password authentication for the group's enterprise users. If password authentication is disabled, enterprise users can use either the group's SAML identity provider to authenticate with GitLab web UI, or a personal access token to authenticate with GitLab API and Git using HTTP Basic Authentication.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![10 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=10&style=flat-square \"New features added to this tier in this release\")\n![560 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=560&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Use self-hosted model for GitLab Duo Code Suggestions](https://docs.gitlab.com/ee/administration/self_hosted_models/) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> You can now host selected large language models (LLMs) in your own infrastructure and configure those models as the source for Code Suggestions. This feature is in beta and available with an Ultimate and Duo Enterprise subscription on self-managed GitLab environments.\n> \n> With self-hosted models, you can use models hosted either on-premise or in a private cloud to enable GitLab Duo Code Suggestions. We currently support open-source Mistral models on vLLM or AWS Bedrock. By enabling self-hosted models, you can leverage the power of generative AI while maintaining complete data sovereignty and privacy.\n> \n> Please leave feedback in [the feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/498376).\n\n</details>\n\n<details><summary>[Have a conversation with GitLab Duo Chat about your merge request](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples#ask-about-a-specific-merge-request): <code>Duo Chat</code></summary>\n\n> In response to your feedback, GitLab Duo Chat is now aware of merge requests. Whether you are a reviewer or an author, you can now converse with Chat about a merge request to quickly dig into it, or learn what to do next. Simply open your merge request and open Duo Chat, then start the conversation.\n> \n> This new feature complements our existing feature, where you can quickly populate the description of a merge request by asking GitLab Duo to [summarize code changes](https://docs.gitlab.com/ee/user/project/merge_requests/duo_in_merge_requests.html#generate-a-description-by-summarizing-code-changes), so that reviewers can get a general understanding of what the merge request is about.\n\n</details>\n\n<details><summary>[GitLab Dedicated Tenant Overview in Switchboard](https://docs.gitlab.com/ee/administration/dedicated/tenant_overview.html) <i>(self-managed only)</i>: <code>GitLab Dedicated</code>, <code>Switchboard</code></summary>\n\n> Switchboard's new Tenant Overview now provides a single place to quickly access essential information about your GitLab Dedicated instance.\n> \n> With this first release, you can now view your current GitLab version, instance URL, and the date and time of your upcoming and past maintenance windows all on the Tenant Overview page.\n\n</details>\n\n<details><summary>[Kubernetes integration support for firewalled GitLab installations](https://docs.gitlab.com/ee/user/clusters/agent/#receptive-agents) <i>(self-managed only)</i>: <code>Deployment Management</code></summary>\n\n> Until now, the agent for Kubernetes could be used only if the Kubernetes cluster could connect to the GitLab instance.\n> This issue meant that some customers couldn't use the agent if, for example, they ran GitLab on a private network or behind a firewall.\n> From GitLab 17.5, you can initiate the cluster-GitLab connection from GitLab, assuming that a properly configured `agentk` instance is already waiting for a connection initialization.\n> \n> Once the initial connection is established, all the features of the agent are available. Initializing from a cluster is not changed with this development.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Export code suggestion usage events](https://docs.gitlab.com/ee/api/graphql/reference/#codesuggestionevent): <code>Value Stream Management</code></summary>\n\n> Previously, AI impact analytics were available only on GitLab.com to GitLab Duo Enterprise customers, and on GitLab self-managed with a ClickHouse integration. Additionally, the default metrics were aggregated.\n> \n> Now, you can export raw code suggestion events from the GraphQL API. This way you can import the data into your data analysis tool to get deeper insights into acceptance rates across more dimensions, such as suggestion size, language, and user. The raw events are not stored in ClickHouse, so some AI Impact Analytics metrics become available to all GitLab deployments, including GitLab Dedicated and self-managed.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Secret Push Protection is generally available](https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection): <code>Secret Detection</code></summary>\n\n> We're excited to announce that Secret Push Protection is now generally available for all GitLab Ultimate customers.\n> \n> If a secret, like a key or an API token, is accidentally committed to a Git repository, anyone with access to the repository can impersonate the user of the secret for malicious purposes. A leaked secret costs time and money, and potentially damages a company's reputation. Secret push protection helps reduce the remediation time and reduce risk by protecting secrets from being pushed in the first place.\n> \n> Secret push protection has been improved since the beta release. When commits are pushed by using the Git CLI, now only the changes (diff) are scanned for secrets. We've also added experimental support for excluding paths, rules, or specific values to avoid false positives.\n> \n> To learn more, see [the blog](https://about.gitlab.com/blog/prevent-secret-leaks-in-source-code-with-gitlab-secret-push-protection/).\n\n</details>\n\n<details><summary>[Ruby support and rule updates for Advanced SAST](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html): <code>SAST</code></summary>\n\n> We've added Ruby support to GitLab Advanced SAST.\n> To use this new cross-file, cross-function scanning support, [enable Advanced SAST](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html#enable-advanced-sast-scanning).\n> If you've already enabled Advanced SAST, Ruby support is automatically activated.\n> \n> In the last month, we've also released updates to improve the detection rules for [the other languages Advanced SAST supports](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html#supported-languages) by:\n> \n> - Detecting additional Java path traversal, Java command injection, and JavaScript path traversal vulnerabilities.\n> - Updating CWE mappings to more specifically and consistently identify vulnerability types.\n> - Increasing the severity of path traversal vulnerabilities.\n> \n> To see which types of vulnerabilities Advanced SAST detects in each language, see the new [Advanced SAST coverage page](https://docs.gitlab.com/ee/user/application_security/sast/advanced_sast_coverage.html).\n> \n> To learn more about Advanced SAST, see [last month's announcement blog](https://about.gitlab.com/blog/gitlab-advanced-sast-is-now-generally-available/).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Component filter on the Dependency List](https://docs.gitlab.com/ee/user/application_security/dependency_list/#filter-dependency-list): <code>Dependency Management</code></summary>\n\n> Now, in GitLab, you can filter for specific dependency components quickly to identify whether or not they are used in your group or project.\n> It is time consuming and inconvenient to manually go through the entire list just to verify whether or not a particular package and version is present.\n> With the new **filter by component** on the dependency list, you isolate vulnerable dependencies so that you can assess open risks in your application.\n\n</details>\n\n<details><summary>[Add groups to security policy scope](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html#security-policy-scopes): <code>Security Policy Management</code></summary>\n\n> You can now target groups/subgroups in security policy scopes. This extends the existing options allowing you to target all projects in a group/subgroup, projects based on a defined project list, and projects matching a list of compliance framework labels.\n> \n> This gives you further flexibility in enabling policies across your groups, while also being able to apply exceptions to scope projects out of enforcement where necessary.\n> \n> This improvement also precedes a number of [enhancements](https://gitlab.com/groups/gitlab-org/-/epics/5446) that will simplify the process of linking security policy projects and granularly scoping enforcement of policies.\n\n</details>\n\n<details><summary>[Migration process for compliance pipelines to security policies](https://docs.gitlab.com/ee/user/group/compliance_pipelines.html#pipeline-execution-policies-migration): <code>Compliance Management</code>, <code>Security Policy Management</code></summary>\n\n> In GitLab 17.3, we announced the deprecation of compliance pipelines and its eventual removal by the 18.0 release.\n> Instead of compliance pipelines, you should use the pipeline execution policy type instead, which was released in GitLab 17.2.\n> \n> To help you migrate your existing compliance pipelines over to the pipeline execution policy type, this release includes a\n> warning banner that:\n> \n> - Notifies users about the deprecation of compliance pipelines.\n> - Provides a prompted and guided workflow to migrate existing compliance pipelines to the pipeline execution policy type.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![3 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=3&style=flat-square \"New features added to this tier in this release\")\n![663 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=663&style=flat-square \"Total features in this tier\")\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Introducing Duo Quick Chat](https://docs.gitlab.com/ee/user/gitlab_duo_chat/#in-the-editor-window): <code>Editor Extensions</code>, <code>Duo Chat</code></summary>\n\n> Introducing Duo Quick Chat, an AI-powered chat designed to work exactly where you are in your code. Duo Quick Chat operates directly on the lines you're editing, offering real-time assistance without ever moving you away from your code. Whether you're refactoring, fixing bugs, or writing tests, Duo Quick Chat provides suggestions and explanations on the spot, ensuring that you stay fully focused without switching context.\n\n</details>\n\n<details><summary>[Elevate your coding: Duo Chat now in Visual Studio for Windows](https://docs.gitlab.com/ee/user/gitlab_duo_chat/index.html#use-gitlab-duo-chat-in-visual-studio-for-windows): <code>Editor Extensions</code>, <code>Duo Chat</code></summary>\n\n> Empower your development workflow with Duo Chat, now seamlessly integrated into Visual Studio for Windows. Duo Chat enhances your coding experience by providing AI-powered capabilities to explain, refine, debug code, or write tests all in real-time. This integration allows you to leverage Duo Chat's advanced AI tools directly within your familiar development environment, improving productivity and enabling faster, more efficient problem-solving.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Access compliance center on projects](https://docs.gitlab.com/ee/user/compliance/compliance_center/): <code>Compliance Management</code></summary>\n\n> Previously, the compliance center was available only for top-level groups and subgroups.\n> \n> With this release, we've added the compliance center to projects. At this level, compliance center provides\n> view-only capabilities for checks and violations that pertain to a particular project.\n> \n> To add or edit a framework, you should access the compliance center on top-level groups instead.\n\n</details>\n\n\n\n#### Core\n\n![12 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=12&style=flat-square \"New features added to this tier in this release\")\n![2283 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2283&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab chart improvements](https://docs.gitlab.com/charts/) <i>(self-managed only)</i>: <code>Cloud Native Installation</code></summary>\n\n> GitLab 17.5 includes an update to our version of the NGINX Ingress Controller. The `nginx-controller` container image is now version 1.11.2. Please\n> note this includes new RBAC requirements because the new controller now uses endpointslices and requires an RBAC rule to access them.\n\n</details>\n\n<details><summary>[Omnibus improvements](https://docs.gitlab.com/omnibus/) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> GitLab 17.5 includes support for upgrading PostgreSQL from version 14.x to 16.x for single node installations. Automatic upgrades are not enabled and\n> so PostgreSQL upgrades must be triggered manually.\n\n</details>\n\n<details><summary>[Configure agent and GitOps environment settings with the REST API](https://docs.gitlab.com/ee/api/environments.html): <code>Environment Management</code>, <code>Deployment Management</code></summary>\n\n> You can check the status of your pods and Flux reconciliation from the GitLab environments UI.\n> However, this approach is hard to scale because the required settings are exposed only through GraphQL or the UI.\n> Now, GitLab ships with REST API support for configuring an agent for Kubernetes, as well as setting the namespace and Flux resource per environment.\n> To further improve support for dynamic environments, [issue 467912](https://gitlab.com/gitlab-org/gitlab/-/issues/467912) proposes adding support for configuring these settings in CI/CD pipelines.\n\n</details>\n\n<details><summary>[Easy bootstrapping of GitLab Kubernetes integration](https://docs.gitlab.com/ee/user/clusters/agent/install/#bootstrap-the-agent-with-flux-support-recommended): <code>Deployment Management</code></summary>\n\n> GitLab offers flexible, reliable, and secure GitOps support with the [agent for Kubernetes](https://docs.gitlab.com/ee/user/clusters/agent/) and its [Flux integration](https://docs.gitlab.com/ee/user/clusters/agent/gitops.html).\n> Still, bootstrapping Flux with GitLab and setting up the agent for Kubernetes used to require a lot of documentation reading and switching between the GitLab UI and the terminal.\n> The GitLab CLI now offers [the `glab cluster agent bootstrap` command](https://gitlab.com/gitlab-org/cli/-/blob/main/docs/source/cluster/agent/bootstrap.md) to simplify installing the agent on top of an existing Flux installation. \n> Now, you can configure Flux and the agent with just two simple commands.\n\n</details>\n\n<details><summary>[Stream Kubernetes resource events](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html): <code>Deployment Management</code></summary>\n\n> GitLab provides a real-time view of your pods, as well as pod log streaming, all through the dashboard for Kubernetes.\n> In GitLab 17.4, we offered a static listing of resource-specific event information from the UI.\n> This release further improves the dashboard for Kubernetes by letting you stream incoming events as they emerge in the cluster.\n\n</details>\n\n<details><summary>[Suspend or resume GitOps reconciliation from the GitLab UI](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html#suspend-or-resume-flux-reconciliation): <code>Deployment Management</code></summary>\n\n> As a Flux user, have you ever needed to quickly stop an automatic reconciliation or drift remediation? Have you wanted to trigger a `HelmRelease` to synchronize manually removed resources? These actions are best achieved with the Flux suspend and resume functions. Until now, your best option was to use the Flux CLI, which required a context switch and several commands to ensure the right resource was affected. In GitLab 17.5, you can suspend or resume a reconciliation from the built-in dashboard for Kubernetes.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Enhanced branch rules editing capabilities](https://docs.gitlab.com/ee/user/project/repository/branches/branch_rules.html#create-a-branch-rule): <code>Source Code Management</code></summary>\n\n> In GitLab 15.10, we introduced a [consolidated view for branch-related settings and rules](https://about.gitlab.com/releases/2023/03/22/gitlab-15-10-released/#see-all-branch-related-settings-together). This view provided you with an easy way to understand the configuration of your project across multiple settings.\n> \n> Building on this feature, you can now directly modify specific branch rules in this view, including branch protections, approval rules, and external status check configurations. These new capabilities lay the foundation for [continued improvements](https://gitlab.com/groups/gitlab-org/-/epics/12546) in branch configuration that will allow for greater flexibility in the future.\n> \n> We encourage you to explore these new capabilities and to provide feedback. You can do this by contributing to our dedicated [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/486050).\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[GitLab Runner 17.5](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 17.5 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [Support AWS S3 multipart uploads with scoped temporary credentials](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/26921)\n> \n> #### Bug Fixes:\n> \n> - [Jobs with extra services don't complete if one of the service container is not running](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38035)\n> - [The `gitlab-runner-fips-17.4.0-1` package fails to run on Amazon Linux 2 and returns a glibc error](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/38034)\n> - [Cache doesn't work with Amazon S3 when using S3 Express One Zone endpoints](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37394)\n> - [Jobs are unable to pull base images if the `DOCKER_AUTH_CONFIG` variable has multiple registries](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/28073)\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Enhance API performance when working with container registry tags](https://docs.gitlab.com/ee/api/container_registry.html#list-registry-repository-tags): <code>Container Registry</code></summary>\n\n> We're excited to announce a significant improvement to our Container Registry API for self-managed GitLab instances. With the release of GitLab 17.5, we've implemented keyset pagination for the `:id/registry/repositories/:repository_id/tags` endpoint, bringing it in line with the functionality already available on GitLab.com. This enhancement is part of our ongoing efforts to improve API performance and provide a consistent experience across all GitLab deployments.\n> \n> Keyset pagination offers a more efficient method for handling large datasets, resulting in improved performance and a better user experience. This update is particularly useful when managing large container registries, as it allows for smoother navigation through repository tags. In order to use this feature, self-managed instances must upgrade to the [next-generation container registry](https://docs.gitlab.com/ee/administration/packages/container_registry_metadata_database.html).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Improved user management summary](https://docs.gitlab.com/ee/user/profile/account/create_accounts.html#create-users-in-admin-area) <i>(self-managed only)</i>: <code>User Management</code></summary>\n\n> Administrators now have an enhanced, summarized view of the following critical pieces of information about the users on their instance:\n> \n> - Pending approval.\n> - Without two-factor authentication.\n> - Administrators.\n> \n> This increases user management efficiency, because administrators can quickly see how many users are in these states from the summary view, and filter on them.\n\n</details>\n\n<details><summary>[View token associations using API](https://docs.gitlab.com/ee/api/personal_access_tokens.html#list-token-associations): <code>System Access</code></summary>\n\n> You can now view which groups, subgroups, and projects a token is associated with. This makes it easier to determine the impact of token expirations or revocations, and to understand where a token is able to be used.\n\n</details>\n\n<details><summary>[Selective SAML single sign-on enforcement](https://docs.gitlab.com/ee/administration/settings/sign_in_restrictions.html#disable-password-authentication-for-users-with-an-sso-identity) <i>(self-managed only)</i>: <code>User Management</code></summary>\n\n> Previously, when SAML SSO was enabled, groups could choose to enforce SSO, which required all members to use SSO\n> authentication to access the group. However, some groups want the security of SSO enforcement for employees or\n> group members, while still allowing outside collaborators or contractors to access their groups without SSO.\n> \n> Now, groups with SAML SSO enabled have SSO automatically enforced for all members\n> who have a SAML identity. Group members without SAML identities are not required to\n> use SSO unless SSO enforcement is explicitly enabled.\n> \n> A member has a SAML identity if one or both of the following are true:\n> \n> - They signed in to GitLab using their GitLab group's single sign-on URL.\n> - They were provisioned by SCIM.\n> \n> To ensure smooth operation of the selective SSO enforcement feature, ensure your SAML configuration is\n> working properly before selecting the **Enable SAML authentication for this group** checkbox.\n\n</details>\n\n\n","released_at":"2024-10-17T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.4","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.4.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.4.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.4.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.4.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.4.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.4.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":4902676,"url":"https://about.gitlab.com/releases/2024/09/19/gitlab-17-4-released/","name":"GitLab 17.4 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/09/19/gitlab-17-4-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.4.0-ee/gitlab-v17.4.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.4.0-ee/gitlab-v17.4.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.4.0-ee/gitlab-v17.4.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.4.0-ee/gitlab-v17.4.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"22193b3da887c1fa5e49021fa8f87b74e6539a7a","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/22193b3da887c1fa5e49021fa8f87b74e6539a7a","short_id":"22193b3d","trailers":[],"created_at":"2024-09-18T10:05:13.000+00:00","parent_ids":["486828e0af74bcf6a8538e5bfc003253db91f2ca"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-09-18T10:05:13.000+00:00","committed_date":"2024-09-18T10:05:13.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.4.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.4.0-ee","evidences":[],"created_at":"2024-09-19T14:33:34.833Z","milestones":[{"id":4477117,"iid":103,"state":"closed","title":"17.4","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/103","due_date":"2024-09-13","group_id":9970,"created_at":"2024-03-05T01:38:46.860Z","start_date":"2024-08-10","updated_at":"2025-10-22T16:26:56.406Z","description":"","issue_stats":{"total":2526,"closed":2500}}],"commit_path":"/gitlab-org/gitlab/-/commit/22193b3da887c1fa5e49021fa8f87b74e6539a7a","description":"![32 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=32&style=for-the-badge \"New features added in this release\")\n![3584 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3584&style=for-the-badge \"Total features\")\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Extension marketplace now available in the Web IDE](https://docs.gitlab.com/ee/user/project/web_ide/index.html#extension-marketplace) <i>(SaaS only)</i>: <code>Web IDE</code></summary>\n\n> We're thrilled to announce the launch of the extension marketplace in the Web IDE on GitLab.com. With the extension marketplace, you can discover, install, and manage third-party extensions and enhance your development experience. Some extensions are not compatible with the web-only version because they require a local runtime environment. However, you can still choose from thousands of extensions to boost your productivity or customize your workflow.\n> \n> The extension marketplace is disabled by default. To get started, you can enable the extension marketplace in the **Integrations** section of your [user preferences](https://gitlab.com/-/profile/preferences). For [enterprise users](https://docs.gitlab.com/ee/user/enterprise_user/), only users with the Owner role for a top-level group can enable the extension marketplace.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![6 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=6&style=flat-square \"New features added to this tier in this release\")\n![550 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=550&style=flat-square \"Total features in this tier\")\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Summarize issue discussions with GitLab Duo Chat](https://docs.gitlab.com/ee/user/discussions/index.html#summarize-issue-discussions-with-duo-chat): <code>Team Planning</code></summary>\n\n> Getting up to speed on lengthy issue discussions can be a significant time investment. With this release, AI-generated issue discussion summarization has been integrated with Duo Chat and is now generally available for GitLab.com, Self-managed, and Dedicated customers. \n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Support for ingesting CycloneDX 1.6 SBOMs](https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscyclonedx): <code>Software Composition Analysis</code></summary>\n\n> GitLab 15.3 added support for [ingesting CycloneDX SBOMs](https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscyclonedx).\n> \n> In GitLab 17.4 we have added support for ingesting CycloneDX version 1.6 SBOMs.\n> \n> Fields relating to hardware (HBOM), services (SaaSBOM), and AI/ML models (AI/ML-BOM) are not currently supported. SBOMs that contain data relating to these BOMs will be processed, but the data will not be analyzed or presented to users. Support for these other BOM-types is being tracked in this [epic](https://gitlab.com/groups/gitlab-org/-/epics/14989).\n\n</details>\n\n<details><summary>[Automatic cleanup for removed SAST analyzers](https://docs.gitlab.com/ee/user/application_security/sast/#end-of-supported-analyzers): <code>SAST</code></summary>\n\n> In [GitLab 17.0](https://docs.gitlab.com/ee/update/deprecations.html#sast-analyzer-coverage-changing-in-gitlab-170), [16.0](https://docs.gitlab.com/ee/update/deprecations.html#sast-analyzer-coverage-changing-in-gitlab-160), and [15.4](https://docs.gitlab.com/ee/update/deprecations.html#sast-analyzer-consolidation-and-cicd-template-changes), we streamlined GitLab SAST so it uses fewer separate analyzers to scan your code for vulnerabilities.\n> \n> Now, after you upgrade to GitLab 17.3.1 or later, a one-time data migration will automatically resolve leftover vulnerabilities from the [analyzers that have reached End of Support](https://docs.gitlab.com/ee/user/application_security/sast/#end-of-supported-analyzers).\n> This helps clean up your Vulnerability Report so you can focus on the vulnerabilities that are still detected by the most up-to-date analyzers.\n> \n> The migration only resolves vulnerabilities that you haven't confirmed or dismissed, and it doesn't affect vulnerabilities that were [automatically translated to Semgrep-based scanning](https://docs.gitlab.com/ee/user/application_security/sast/analyzers/#transition-to-semgrep-based-scanning).\n\n</details>\n\n<details><summary>[Advanced SAST is generally available](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html): <code>SAST</code></summary>\n\n> We're excited to announce that our Advanced Static Application Security Testing (SAST) scanner is now generally available for all GitLab Ultimate customers.\n> \n> Advanced SAST is a new scanner powered by the technology we [acquired from Oxeye](https://about.gitlab.com/blog/oxeye-joins-gitlab-to-advance-application-security-capabilities/) earlier this year. It uses a proprietary detection engine with rules informed by in-house security research to identify exploitable vulnerabilities in first-party code. It delivers more accurate results so developers and security teams don't have to sort through the noise of false-positive results.\n> \n> Along with the new scanning engine, GitLab 17.4 includes:\n> \n> - A new [code-flow view](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#vulnerability-code-flow) that traces a vulnerability's path across files and functions.\n> - An automatic migration that allows Advanced SAST to \"take over\" existing results from previous GitLab SAST scanners.\n> \n> To learn more, see [the announcement blog](https://about.gitlab.com/blog/gitlab-advanced-sast-is-now-generally-available/).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Grant read access to pipeline execution YAML files in projects linked to security policies](https://docs.gitlab.com/ee/user/application_security/policies/): <code>Security Policy Management</code></summary>\n\n> In GitLab 17.4, we added a setting to security policies you can use to grant read access to `pipeline-execution.yml` files for all linked projects. This setting gives you more flexibility to enable users, bots, or tokens that enforce pipeline execution globally across projects. For example, you can ensure a group or project access tokens can read security policy configurations in order to trigger pipelines during pipeline execution. You still can't view the security policy project repository or YAML directly. The configuration is used only during pipeline creation.\n> \n> To configure the setting, go to the security policy project you want to share. Select **Settings > General > Visibility, project features, permissions**, scroll to **Pipeline execution policies**, and enable the **Grant access to this repository for projects linked to it as the security policy project source for security policies** toggle.\n\n</details>\n\n<details><summary>[Support suffix for jobs with name collisions in pipeline execution policy pipelines](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html#pipeline-execution-policy-schema): <code>Security Policy Management</code></summary>\n\n> An enhancement to the [17.2 release of pipeline execution policies](https://about.gitlab.com/releases/2024/07/18/gitlab-17-2-released/#pipeline-execution-policy-type), policy creators may now configure pipeline execution policies to handle collisions in job names gracefully. With the `policy.yml` for the pipeline execution policy, you may now configure the following options:\n> \n>   - `suffix: on_conflict` configures the policy to gracefully handle collisions by renaming policy jobs, which is the new default behavior\n>   - `suffix: never` enforces all jobs names are unique and will fail pipelines if collisions occur, which has been the default behavior since 17.2\n> \n>   With this improvement, you can ensure security and compliance jobs executed within a pipeline execution policy always run, while also preventing unnecessary impacts to developers downstream.\n> \n>   In a follow-up enhancement, we will introduce the configuration option within the policy editor.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![8 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=8&style=flat-square \"New features added to this tier in this release\")\n![660 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=660&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Restrict group access by domain with the Groups API](https://docs.gitlab.com/ee/api/groups.html#update-group): <code>API</code>, <code>Groups & Projects</code></summary>\n\n> Previously, you could only add domain restrictions at the group level in the UI. Now, you can also do this by using the new `allowed_email_domains_list` attribute in the Groups API.\n\n</details>\n\n<details><summary>[Non-deployment jobs to protected environments aren't turned into manual jobs](https://docs.gitlab.com/ee/ci/jobs/job_control.html#types-of-manual-jobs): <code>Environment Management</code></summary>\n\n> Due to an implementation issue, the `action: prepare`, `action: verify`, and `action: access` jobs\n> become manual jobs when they run against a protected environment. These jobs require manual interaction to run,\n> although they don't require any additional approvals.\n> \n> [Issue 390025](https://gitlab.com/gitlab-org/gitlab/-/issues/390025) proposes to fix the implementation, so these jobs won't be turned into manual jobs.\n> After this proposed change, to keep the current behavior, you will need to\n> [explicitly set the jobs to manual](https://docs.gitlab.com/ee/ci/jobs/job_control.html#types-of-manual-jobs).\n> \n> For now, you can change to the new implementation now by enabling the `prevent_blocking_non_deployment_jobs` feature flag.\n> \n> Any proposed breaking changes are intended to differentiate the behavior of the\n> `environment.action: prepare | verify | access` values.\n> The `environment.action: access` keyword will remain the closest to its current behavior.\n> \n> To prevent future compatibility issues, you should review your use of these keywords now.\n> You can learn more about these proposed changes in the following issues:\n> \n> - [Issue 437132](https://gitlab.com/gitlab-org/gitlab/-/issues/437132)\n> - [Issue 437133](https://gitlab.com/gitlab-org/gitlab/-/issues/437133)\n> - [Issue 437142](https://gitlab.com/gitlab-org/gitlab/-/issues/437142)\n\n</details>\n\n<details><summary>[GitLab Duo seat assignment email](https://docs.gitlab.com/ee/subscriptions/subscription-add-ons.html#assign-gitlab-duo-seats) <i>(self-managed only)</i>: <code>Seat Cost Management</code></summary>\n\n> Users on self-managed instances will now receive an email when they are assigned a GitLab Duo seat. Previously, you wouldn't know you were assigned a seat unless someone told you, or you noticed new functionality in the GitLab UI.\n> \n> To disable this email, an administrator can disable the `duo_seat_assignment_email_for_sm` feature flag.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[GitLab Pages parallel deployments in beta](https://docs.gitlab.com/ee/user/project/pages/#parallel-deployments): <code>Pages</code></summary>\n\n> This release introduces Pages parallel deployments in beta. You can now easily preview changes and manage parallel deployments for your\n> GitLab Pages sites. This enhancement allows for seamless experimentation with new ideas, so you can test and refine your sites with confidence. By\n> catching any issues early, you can ensure that the live site remains stable and polished, building on the already great foundation of GitLab Pages.\n> \n> Additionally, parallel deployments can be useful for localization when you deploy different language versions of an application or website.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Authenticate with OAuth for GitLab Duo in JetBrains IDEs](https://docs.gitlab.com/ee/editor_extensions/jetbrains_ide/#configure-the-extension): <code>Editor Extensions</code></summary>\n\n> Our GitLab Duo plugin for JetBrains now offers a more secure and streamlined onboarding process. Sign in quickly and securely with OAuth. It integrates seamlessly with your existing workflow, with no personal access token required!\n</details>\n\n<details><summary>[Secure sudo access for workspaces](https://docs.gitlab.com/ee/user/workspace/configuration.html#configure-sudo-access-for-a-workspace): <code>Remote Development</code></summary>\n\n> You can now configure sudo access for your workspace, making it easier than ever to install, configure, and run dependencies directly in your development environment. We've implemented three secure methods to ensure a seamless development experience:\n> \n> - Sysbox\n> - Kata Containers\n> - User namespaces\n> \n> With this feature, you can fully customize your environment to match your workflow and project needs.\n\n</details>\n\n<details><summary>[More context-aware GitLab Duo Code Suggestions using open tabs](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/#use-open-tabs-as-context): <code>Editor Extensions</code>, <code>Code Suggestions</code></summary>\n\n> Elevate your coding workflow and receive more context-aware Code Suggestions using the contents of other open tabs.\n> \n> This improvement to Code Suggestions now uses the content of your open editor tabs to provide more relevant and accurate code recommendations.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Search by multiple compliance frameworks](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_projects_report.html): <code>Compliance Management</code></summary>\n\n> In GitLab 17.3, we provided users with the ability to add multiple compliance frameworks to a project.\n> \n> Now you can search by multiple compliance frameworks, which makes it easier to search for projects that have multiple compliance frameworks attached to them.\n\n</details>\n\n\n\n#### Core\n\n![17 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=17&style=flat-square \"New features added to this tier in this release\")\n![2271 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2271&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Omnibus improvements](https://docs.gitlab.com/omnibus/) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> GitLab 17.4 includes PostgreSQL 16 by default for fresh installations of GitLab.\n> \n> GitLab 17.7 will include OpenSSL V3. This will affect Omnibus instances with external integration setup's that do not meet the minimum requirements of TLS 1.2 or above for outbound connections, along with at least 112-bit encryption for TLS certificates. Please review our [OpenSSL upgrade documentation](https://docs.gitlab.com/omnibus/settings/ssl/openssl_3.html) for more information or if your are unsure if your instance will be affected.\n\n</details>\n\n<details><summary>[List groups invited to a group or project using the Groups or Projects API](https://docs.gitlab.com/ee/api/groups.html#list-a-groups-invited-groups): <code>Groups & Projects</code></summary>\n\n> We added new endpoints to the Groups API and Projects API to retrieve the groups that have been invited to a group or project. This functionality is available only on the Members page of a group or project. We hope that this addition will make it easier to automate membership management for your groups and projects. The endpoints are rate-limited to 60 requests per minute per user.\n\n</details>\n\n<details><summary>[Improved source display for group and project members](https://docs.gitlab.com/ee/user/project/members/#membership-types): <code>Groups & Projects</code></summary>\n\n> We have simplified the display of the source column on the Members page for groups and projects. Direct members are still indicated as `Direct member`. Inherited members are now listed as `Inherited from` followed by the group name. Members that were added by inviting a group to the group or project are listed as `Invited group` followed by the group name. For members that inherited from an invited group that was added to a parent group, we now display the last step to keep the display actionable for users managing membership.\n\n</details>\n\n<details><summary>[Trigger a Flux reconciliation from the cluster UI](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html): <code>Deployment Management</code></summary>\n\n> Although you can configure Flux to trigger reconciliations at specified intervals, there are situations where you might want an immediate reconciliation. In past releases, you could trigger the reconciliation from a CI/CD pipeline or from the command line. In GitLab 17.4, you can now trigger a reconciliation from a dashboard for Kubernetes with no additional configuration.\n> \n> To trigger a reconciliation, go to a configured dashboard and select the Flux status badge.\n\n</details>\n\n<details><summary>[Resend failed webhook requests with the API](https://docs.gitlab.com/ee/api/projects.html#resend-project-hook-event): <code>Webhooks</code></summary>\n\n> Previously, GitLab provided the ability to resend webhook requests only in the UI, which was inefficient if many\n> requests failed.\n> \n> So that you can handle failed webhook requests programmatically, in this release thanks to a community contribution, we\n> added API endpoints for resending them:\n> \n> - [Project webhook requests](https://docs.gitlab.com/ee/api/projects.html#resend-project-hook-event)\n> - [Group webhook requests](https://docs.gitlab.com/ee/api/groups.html#resend-group-hook-event) (Premium and Ultimate tier only)\n> \n> You can now:\n> \n> 1. Get a list of [project hook](https://docs.gitlab.com/ee/api/projects.html#get-project-hook-events) or [group hook](https://docs.gitlab.com/ee/api/groups.html#get-group-hook-events) events.\n> 1. Filter the list to see failures.\n> 1. Use the `id` of any event to resend it.\n> \n> Thanks to [Phawin](https://gitlab.com/lifez) for [this community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151130)!\n\n</details>\n\n<details><summary>[Idempotency keys for webhook requests](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#delivery-headers): <code>Webhooks</code></summary>\n\n> From this release, we support an idempotency key in the headers of webhook requests. An idempotency key is a unique ID that remains consistent across webhook retries, which\n> allows webhook clients to detect retries. Use the `Idempotency-Key` header to ensure the idempotency of webhook effects on integrations.\n> \n> Thanks to [Van](https://gitlab.com/van.m.anderson) for this [community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/160952)!\n\n</details>\n\n<details><summary>[List Kubernetes resource events](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html): <code>Deployment Management</code></summary>\n\n> GitLab provides a real-time view into your pods and streaming pod logs. Until now, however, we didn't show you resource-specific event information from the UI,\n> so you still had to use 3rd party tools to debug Kubernetes deployments.\n> This release adds events to the resource details view of [the dashboard for Kubernetes](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html).\n> \n> This is the first time we've added events to the UI. Currently, events are refreshed every time you open the resource details view. You can track the development of real-time event streaming in [issue 470042](https://gitlab.com/gitlab-org/gitlab/-/issues/470042).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Resizable wiki sidebar](https://docs.gitlab.com/ee/user/project/wiki/): <code>Wiki</code></summary>\n\n> You can now adjust the wiki sidebar to see longer page titles, improving the overall discoverability of \n> content. As wiki content grows, having a resizable sidebar helps manage and browse through complex hierarchies or extensive \n> lists of pages more efficiently.\n\n</details>\n\n<details><summary>[GitLab Pages without wildcard DNS is generally available](https://docs.gitlab.com/ee/administration/pages/#pages-domain-without-wildcard-dns) <i>(self-managed only)</i>: <code>Pages</code></summary>\n\n> Previously, to create a GitLab Pages project, you needed a domain formatted like `name.example.io`\n> or `name.pages.example.io`. This requirement meant you had to set up wildcard DNS records and\n> TLS certificate. In this release, setting up a GitLab Pages project without a DNS wildcard has\n> moved from beta to generally available.\n> \n> Removing the requirement for wildcard certificates eases administrative overhead associated with\n> GitLab Pages. Some customers can't use GitLab Pages because of organizational restrictions on\n> wildcard DNS records or certificates.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[CI/CD component for code intelligence](https://docs.gitlab.com/ee/user/project/code_intelligence.html#with-the-cicd-component): <code>Code Review Workflow</code></summary>\n\n> Code intelligence in GitLab provides code navigation features when browsing a repository. Getting started with code navigation is often complicated, as you must configure a CI/CD job. This job can require custom scripting to provide the correct output and artifacts.\n> \n> GitLab now supports an official [Code intelligence CI/CD component](https://gitlab.com/explore/catalog/components/code-intelligence) for easier setup. Add this component to your project by following the instructions for [using a component](https://docs.gitlab.com/ee/ci/components/index.html#use-a-component). This greatly simplifies adopting code intelligence in GitLab.\n> \n> Currently, the component supports these languages:\n> \n>   - Go version 1.21 or later.\n>   - TypeScript or JavaScript.\n> \n> We'll continue to evaluate [available SCIP indexers](https://github.com/sourcegraph/scip?tab=readme-ov-file#tools-using-scip) as we look to broaden language support for the new component. If you're interested in adding support for a language, please open a merge request in the [code intelligence component](https://gitlab.com/components/code-intelligence) project.\n\n</details>\n\n<details><summary>[Linked files in merge request show first](https://docs.gitlab.com/ee/user/project/merge_requests/changes.html#show-a-linked-file-first): <code>Code Review Workflow</code></summary>\n\n> When you share a link to a specific file in a merge request, it's often because you want the person to look at something within that file. Merge requests previously needed to load all of the files before scrolling to the specific position you've referenced. Linking directly to a file is a great way to improve the speed of collaboration in merge requests:\n> \n> 1. Find the file you want to show first. Right-click the name of the file to copy the link to it.\n> 1. When you visit that link, your chosen file is shown at the top of the list. The file browser shows a link icon next to the file name.\n> \n> Feedback about linked files can be left in [issue 439582](https://gitlab.com/gitlab-org/gitlab/-/issues/439582).\n\n</details>\n\n<details><summary>[Auto-merge when all checks pass](https://docs.gitlab.com/ee/user/project/merge_requests/auto_merge.html): <code>Code Review Workflow</code></summary>\n\n> Merge requests have many required checks that must pass before they are mergeable. These checks can include approvals, unresolved threads, pipelines, and other items that need to be satisfied. When you're responsible for merging code, it can be hard to keep track of all of these events, and know when to come back and check to see if a merge request can be merged.\n> \n> GitLab now supports **Auto-merge** for all checks in merge requests. Auto-merge enables any user who is eligible to merge to set a merge request to **Auto-merge**, even before all the required checks have passed. As the merge request continues through its lifecycle, the merge request automagically merges after the last failing check passes.\n> \n> We're really excited about this improvement to accelerate your merge request workflows. You can leave feedback about this feature in [issue 438395](https://gitlab.com/gitlab-org/gitlab/-/issues/438395).\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[JaCoCo support for test coverage visualization available in beta](https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization/jacoco.html): <code>Code Testing and Coverage</code></summary>\n\n> You can now use JaCoCo coverage reports, a popular standard for coverage calculation, inside your merge requests. The feature is available as beta, but ready for testing by anyone who wants to use JaCoCo coverage reports right away. If you have any feedback, feel free to contribute to the [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/479804).\n\n</details>\n\n<details><summary>[GitLab Runner 17.4](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 17.4 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [GitLab Runner fleeting plugin for Azure compute (GA)](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29223)\n> \n> #### Bug Fixes:\n> \n> - [The entire `step_script` contents appear in the job log's `after_script` section when a Kubernetes executor job is cancelled before completion](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37952)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-4-stable/CHANGELOG.md).\n\n</details>\n\n<details><summary>[Hide CI/CD variable values in the UI](https://new.docs.gitlab.com/ci/variables/#define-a-cicd-variable-in-the-ui): <code>Variables</code></summary>\n\n> You might not want anyone to see the value of a variable after it is saved to project settings. You can now select the new **Masked and hidden** visibility option when creating a CI/CD variable. Selecting this option will permanently mask the value of the variable in the CI/CD settings UI, restricting the value from being displayed to anyone in the future and decreasing visibility of your data.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Secret Detection support for Anthropic API keys](https://docs.gitlab.com/ee/user/application_security/secret_detection/pipeline/detected_secrets.html): <code>Secret Detection</code></summary>\n\n> Both pipeline and client-side Secret Detection now support detection of [Anthropic](https://www.anthropic.com/) API keys.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Optional token expiration](https://docs.gitlab.com/ee/administration/settings/account_and_limit_settings.html#require-expiration-dates-for-new-access-tokens) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> Administrators can now decide if they want to enforce a mandatory expiration date for personal, project, and group access tokens. If administrators disable this setting, any new access token generated will not be required to have an expiration date. By default this setting is enabled, and an expiration less than that of the maximum allowed lifetime is required. This setting is available in GitLab 16.11 and later.\n\n</details>\n\n\n","released_at":"2024-09-19T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.3","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.3.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.3.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.3.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.3.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.3.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.3.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":4717648,"url":"https://about.gitlab.com/releases/2024/08/15/gitlab-17-3-released/","name":"GitLab 17.3 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/08/15/gitlab-17-3-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.3.0-ee/gitlab-v17.3.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.3.0-ee/gitlab-v17.3.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.3.0-ee/gitlab-v17.3.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.3.0-ee/gitlab-v17.3.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"5aad128b1defa01641e69fdcd5a2ec16bd1d4c2c","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/5aad128b1defa01641e69fdcd5a2ec16bd1d4c2c","short_id":"5aad128b","trailers":[],"created_at":"2024-08-14T10:29:18.000+00:00","parent_ids":["391c0035fb448af002bc853175e7c5424a60edc6"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-08-14T10:29:18.000+00:00","committed_date":"2024-08-14T10:29:18.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.3.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.3.0-ee","evidences":[],"created_at":"2024-08-15T14:48:55.966Z","milestones":[{"id":4423694,"iid":101,"state":"closed","title":"17.3","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/101","due_date":"2024-08-09","group_id":9970,"created_at":"2024-01-24T20:01:34.511Z","start_date":"2024-07-13","updated_at":"2025-10-22T16:26:52.778Z","description":"","issue_stats":{"total":2100,"closed":2078}}],"commit_path":"/gitlab-org/gitlab/-/commit/5aad128b1defa01641e69fdcd5a2ec16bd1d4c2c","description":"![40 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=40&style=for-the-badge \"New features added in this release\")\n![3552 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3552&style=for-the-badge \"Total features\")\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Improved performance for hosted runners on macOS](https://docs.gitlab.com/ee/ci/runners/hosted_runners/macos.html) <i>(SaaS only)</i>: <code>GitLab Hosted Runners</code></summary>\n\n> We have shipped performance improvements with the recent upgrade to macOS 14.5 and Xcode 15.4. With this change, Xcode build jobs are significantly faster compared to previous job executions.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![10 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=10&style=flat-square \"New features added to this tier in this release\")\n![544 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=544&style=flat-square \"Total features in this tier\")\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[AI Impact analytics with enhanced sparklines trend visualization](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#ai-impact-analytics): <code>Value Stream Management</code>, <code>Code Suggestions</code></summary>\n\n> We are excited to announce a significant improvement to our [AI Impact analytics](https://about.gitlab.com/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/) with the introduction of sparklines. These small, simple graphs embedded in data tables enhance the readability and accessibility of AI Impact data. By transforming numerical values into visual representations, the new sparklines make it easier to identify trends over time, so you can spot upward or downward movements. This new visual approach also streamlines the process of comparing trends across multiple metrics, reducing the time and effort required when relying solely on numbers.\n\n</details>\n\n<details><summary>[AI Impact analytics: Code Suggestions acceptance rate and GitLab Duo seats usage](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#ai-impact-analytics): <code>Value Stream Management</code>, <code>Code Suggestions</code></summary>\n\n> These two new metrics highlight the effectiveness and utilization of GitLab Duo, and are now included in the [AI Impact analytics in the Value Streams Dashboard](https://about.gitlab.com/blog/developing-gitlab-duo-ai-impact-analytics-dashboard-measures-the-roi-of-ai/), which helps organizations understand the impact of GitLab Duo on delivering business value. \n> \n> The **Code Suggestions acceptance rate** metric indicates how frequently developers accept code suggestions made by GitLab Duo. This metric reflects both the effectiveness of these suggestions and the level of trust contributors have in AI capabilities. Specifically, the metric represents the percentage of code suggestions provided by GitLab Duo that have been accepted by code contributors in the last 30 days.\n> \n> The **GitLab Duo seats assigned and used** metric shows the percentage of consumed licensed seats, helping organizations plan effectively for license utilization, resource allocation, and understanding of usage patterns. This metric tracks the ratio of assigned seats that have used at least one AI feature in the last 30 days.\n> \n> With the addition of these new metrics, we have also introduced new overview tiles — a new visualization which provides a clear summary of the metrics, helping you quickly assess the current state of your AI features.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Troubleshoot failed jobs with root cause analysis](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.md#troubleshoot-failed-cicd-jobs-with-root-cause-analysis): <code>Continuous Integration (CI)</code></summary>\n\n> Root cause analysis is now generally available. With root cause analysis, you can troubleshoot failed jobs in CI/CD pipelines faster. This AI-powered feature analyzes the failed job log, quickly determines the root cause of the job failure, and suggests a fix for you.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Rust support for Dependency and License Scanning](https://docs.gitlab.com/ee/user/compliance/license_scanning_of_cyclonedx_files/#supported-languages-and-package-managers): <code>Software Composition Analysis</code></summary>\n\n> Composition Analysis has delivered Rust support for Dependency and License Scanning. Rust scanning supports the `Cargo.lock` file type.\n> \n> To enable Rust scanning for your Project use the `cargo` template from the [Dependency Scanning CI/CD Component](https://gitlab.com/explore/catalog/components/dependency-scanning).\n\n</details>\n\n<details><summary>[Display SBOM ingestion errors in GitLab UI](https://docs.gitlab.com/ee/user/application_security/dependency_list/): <code>Software Composition Analysis</code></summary>\n\n> GitLab 15.3 added support for [ingesting CycloneDX SBOMs](https://docs.gitlab.com/ee/ci/yaml/artifacts_reports.html#artifactsreportscyclonedx). While the SBOM reports are validated against the CycloneDX schema, any warnings and errors produced as part of validation were not displayed to the user. \n> \n> In GitLab 17.3 these validation messages appear in the GitLab UI on the project-level Vulnerability Report and Dependency List pages.\n> \n> Users will be able to view SBOM ingestion errors in the following areas of the GitLab UI: the project level vulnerability report and dependency list pages, the licenses and security tabs of the pipeline page.\n\n</details>\n\n<details><summary>[Enforce the ruleset used in SAST, IaC Scanning, and Secret Detection](https://docs.gitlab.com/ee/user/application_security/sast/customize_rulesets.html#specify-a-remote-configuration-file): <code>SAST</code>, <code>Secret Detection</code>, <code>Security Policy Management</code></summary>\n\n> You can customize the rules used in [SAST](https://docs.gitlab.com/ee/user/application_security/sast/customize_rulesets.html), [IaC Scanning](https://docs.gitlab.com/ee/user/application_security/iac_scanning/#customize-rules), and [Secret Detection](https://docs.gitlab.com/ee/user/application_security/secret_detection/pipeline/index.html#customizing-analyzer-settings) by creating a local configuration file committed in the repository or by setting a CI/CD variable to apply a shared configuration across multiple projects.\n> \n> Previously, scanners preferred the local configuration file, even if you also set a shared ruleset reference.\n> This precedence order made it difficult to ensure that scans would use a known, trusted ruleset.\n> \n> Now, we've added a new CI/CD variable, `SECURE_ENABLE_LOCAL_CONFIGURATION`, to control whether local configuration files are allowed.\n> It defaults to `true`, which keeps the existing behavior: local configuration files are allowed and are preferred over shared configurations.\n> If you set the value to `false` when you [enforce scan execution](https://docs.gitlab.com/ee/user/application_security/#enforce-scan-execution), you can be sure that scans use your shared ruleset, or the default ruleset, even if project developers add a local configuration file.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Add authentication to merge request external status checks](https://docs.gitlab.com/ee/user/project/merge_requests/status_checks.html): <code>Security Policy Management</code></summary>\n\n> External status checks can now be configured with HMAC (Hash-based Message Authentication Code) authentication. This will provide a more secure way to verify the authenticity of requests from GitLab to external services.\n> \n> When enabled for your status check, a shared secret is used to generate a unique signature for each request. The signature is sent in the `X-Gitlab-Signature` header, using SHA256 as the hash algorithm.\n> \n> - Improved Security: HMAC authentication prevents tampering with requests and ensures they come from a legitimate source.\n> - Compliance: This feature is particularly valuable for regulated industries, such as banking, where security is paramount.\n> - Backwards Compatibility: The feature will be optional and backwards compatible. Users can choose to enable HMAC authentication for new or existing checks, but existing external status checks will continue to function without changes.\n> \n> In a [future iteration](https://gitlab.com/gitlab-org/gitlab/-/issues/476163), GitLab plans to add an option to also verify and block HTTP requests.\n\n</details>\n\n<details><summary>[LDAP group link support for custom roles](https://docs.gitlab.com/ee/user/group/access_and_permissions.html#manage-group-memberships-via-ldap): <code>Permissions</code></summary>\n\n> Organizations that use LDAP group links to manage user permissions for groups can already use default roles for membership.\n> \n> In this release, we're extending that support to [custom roles](https://docs.gitlab.com/ee/user/custom_roles.html). This configuration makes it easier to map access to a\n> large group of users.\n\n</details>\n\n<details><summary>[New permission for custom roles](https://docs.gitlab.com/ee/user/custom_roles.html): <code>Permissions</code></summary>\n\n> You can create custom roles with the following new permission:\n> \n> - [Read Runners](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#runner)\n> \n> With custom roles, you can reduce the number of users with the Owner role by creating users with equivalent permissions. This helps you define roles that are tailored to the needs of your group, and prevents users from being given more privileges than they need. \n\n</details>\n\n<details><summary>[Resolve a vulnerability with AI](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#vulnerability-resolution): <code>Vulnerability Management</code></summary>\n\n> Vulnerability resolution uses AI to give specific code suggestions for users to fix vulnerabilities. With the click of a button you can open a merge request to get started resolving any SAST vulnerability from the [list of supported CWE identifiers](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#availability).\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![8 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=8&style=flat-square \"New features added to this tier in this release\")\n![652 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=652&style=flat-square \"Total features in this tier\")\n\n<details><summary>[End-to-end instance indexing for advanced search](https://docs.gitlab.com/ee/integration/advanced_search/elasticsearch.html#index-the-instance): <code>Global Search</code></summary>\n\n> When you enable advanced search in GitLab, you can now select **Index the instance** to perform initial indexing or re-create an index from scratch. This setting achieves functional parity with the `gitlab:elastic:index` rake task by indexing all supported types of data into the integrated Elasticsearch or OpenSearch cluster.\n> \n> **Index the instance** replaces the setting to index all projects, which was limited to the initial indexing only.\n\n</details>\n\n<details><summary>[Audit event when agent for Kubernetes is created and deleted](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#deployment-management): <code>Audit Events</code></summary>\n\n> Because the agent for Kubernetes allows bi-directional data flow between a Kubernetes cluster and GitLab, it's important to know when a component that can access your systems is added or removed.\n> In past releases, compliance teams had to use custom tooling or search for this data in GitLab directly. GitLab now provides the following audit events:\n> \n> - `cluster_agent_created` records who registered a new agent for Kubernetes.\n> - `cluster_agent_create_failed` records who tried to register a new agent for Kubernetes but failed.\n> - `cluster_agent_deleted` records who removed an agent for Kubernetes registration.\n> - `cluster_agent_delete_failed` records who tried to remove an agent for Kubernetes registration but failed.\n> \n> These audit events extend the `cluster_agent_token_created` and `cluster_agent_token_revoked` audit events to further improve the ability to audit your GitLab instance.\n\n</details>\n\n<details><summary>[List group or project webhook events with the API](https://docs.gitlab.com/ee/api/projects.html#get-project-hook-events): <code>Webhooks</code></summary>\n\n> Since GitLab 9.3 you can view project webhook request history in the UI, and since GitLab 15.3 you can also [view group webhook request history in the UI](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#view-webhook-request-history).\n> \n> In this release, that data is now exposed in the REST API, which can help you automate processes to discover and respond to webhook errors. You can get a list of events for a specific [project hook](https://docs.gitlab.com/ee/api/projects.html#get-project-hook-events) and [group hook](https://docs.gitlab.com/ee/api/groups.html#get-group-hook-events) in the past 7 days.\n> \n> Thanks to [Phawin](https://gitlab.com/lifez) for [this community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/151048)!\n\n</details>\n\n<details><summary>[Health check for GitLab Duo in beta](https://docs.gitlab.com/ee/user/gitlab_duo/setup.html#run-a-health-check-for-gitlab-duo) <i>(self-managed only)</i>: <code>Cloud Connector</code></summary>\n\n> You can now troubleshoot the setup for GitLab Duo on your self-managed instance. In the **Admin** area, on the GitLab Duo page, select **Run health check**.\n> This health check performs a series of validations and suggests appropriate corrective actions to ensure GitLab Duo is operational.\n> \n> The health check for GitLab Duo is available on Self-managed and GitLab Dedicated as a beta feature.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[New Value Stream Analytics stage events for Cycle Time Reduction](https://docs.gitlab.com/ee/user/group/value_stream_analytics/#value-stream-stage-events): <code>Value Stream Management</code></summary>\n\n> To improve the tracking of merge request (MR) review time in GitLab, we added a new stage event to [Value Stream Analytics](https://about.gitlab.com/solutions/value-stream-management/): **MR first reviewer assigned**.\n> With this new event teams can identify where delays occur in the review process, find opportunities to improve collaboration, and encourage a culture of responsiveness and accountability among team members. Reducing the review time directly impacts the overall cycle time of development, [leading to faster software delivery](https://about.gitlab.com/blog/three-steps-to-optimize-software-value-streams/). For example, you can now add a new custom **Review Time to Merge (RTTM)** stage that starts with **MR first reviewer assigned** and ends with **MR merged**.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Granular control of code suggestions by language in VS Code](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/supported_extensions.html#manage-languages-for-code-suggestions): <code>Editor Extensions</code></summary>\n\n> Get more control over your coding experience in VS Code by enabling or disabling code suggestions for specific programming languages. This granular control allows you to customize your workflow, reducing irrelevant or intrusive suggestions while maintaining the benefits of code suggestions for your preferred languages.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Merge train visualization](https://docs.gitlab.com/ee/ci/pipelines/merge_trains.html): <code>Merge Trains</code></summary>\n\n> You can now visualize the merge train to gain better insight into the status and order of merge requests in the pipeline. With merge train visualization, you can identify conflicts earlier, take actions on merge requests directly in the merge train, and minimize the risk of breaking the default branch.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Add multiple compliance frameworks to a single project](https://docs.gitlab.com/ee/user/group/compliance_frameworks.html#add-a-compliance-framework-to-a-project): <code>Compliance Management</code></summary>\n\n> You can create a compliance framework to identify that your project has certain compliance requirements or needs additional oversight.\n> The compliance framework can optionally enforce compliance pipeline configuration to the projects on which it is applied.\n> \n> Previously, users could only apply one compliance framework to a project, which limited how many compliance requirements could be set on a project.\n> We have now provided the ability for a user to apply multiple compliance frameworks per project.\n> This will allow users to apply multiple different compliance frameworks onto a single project at a given time.\n> With this release, you can apply multiple compliance frameworks to a project. The project is then set with the compliance requirements of each framework.\n\n</details>\n\n\n\n#### Core\n\n![21 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=21&style=flat-square \"New features added to this tier in this release\")\n![2254 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2254&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Omnibus improvements](https://docs.gitlab.com/omnibus/) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> GitLab 17.3 includes packages for supporting [Raspberry Pi OS 12](https://www.raspberrypi.com/news/bookworm-the-new-version-of-raspberry-pi-os/).\n> \n> Debian 10 has reached [EOL on June 30th, 2024](https://www.debian.org/releases/buster/). GitLab will remove support for Debian 10 in GitLab 17.6.\n\n</details>\n\n<details><summary>[Improved sorting and filtering for projects and groups in Your Work](https://docs.gitlab.com/ee/user/project/working_with_projects.html#search-in-projects): <code>Groups & Projects</code></summary>\n\n> We have updated the sorting and filtering functionality of the project and group overview in **Your Work**.\n> Previously, in the **Your Work** page for projects, you could filter by name and language, and use a pre-defined set of sorting options. We have standardized the sorting options to include **Name**, **Created date**, **Updated date**, and **Stars**. We also added a navigation element to sort in ascending or descending order, and moved the language filter to the filter menu. Now you can find archived projects in the new **Inactive** tab. Additionally, we added a **Role** filter that allows you to search for projects you are the Owner of.\n> \n> In the Your Work page for groups, we have standardized the sorting options to include **Name**, **Created date**, and **Updated date**, and added a navigation element to sort in ascending or descending order.\n> \n> We welcome feedback about these changes in [#438322](https://gitlab.com/gitlab-org/gitlab/-/issues/438322).\n\n</details>\n\n<details><summary>[Kubernetes 1.30 support](https://docs.gitlab.com/ee/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features): <code>Deployment Management</code></summary>\n\n> This release adds full support for Kubernetes version 1.30, released in April 2024. If you deploy your apps to Kubernetes, you can now upgrade your connected clusters to the most recent version and take advantage of all its features.\n> \n> You can read more about [our Kubernetes support policy and other supported Kubernetes versions](https://docs.gitlab.com/ee/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features).\n\n</details>\n\n<details><summary>[Toggle inheriting settings for integrations by using the API](https://docs.gitlab.com/ee/api/integrations.html): <code>Integrations</code></summary>\n\n> Until now, you could only control whether a project inherited integration settings, or used its\n> own settings, using the UI.\n> \n> In this milestone, we are introducing a new `use_inherited_settings` parameter to the REST API of all integrations. This parameter allows you to use the API to set\n> whether or not a project inherits integration settings. If not set, the default behavior is `false` (use the project's own settings).\n\n</details>\n\n<details><summary>[Find group settings by using the command palette](https://docs.gitlab.com/ee/user/search/command_palette.html): <code>Settings</code>, <code>Global Search</code></summary>\n\n> In 17.2, we added the ability to [search for project settings by using the command palette](https://about.gitlab.com/releases/2024/07/18/gitlab-17-2-released/#find-project-settings-by-using-the-command-palette). This change made it easier to quickly find the settings you need.\n> \n> With 17.3, you can now search for group settings from the command palette as well. Try it out by visiting a group, selecting **Search or go to**, entering command mode with `>`, and typing the name of a settings section, like **Merge request approvals**. Select a result to jump right to the setting itself.\n\n</details>\n\n<details><summary>[Delete a pod from the GitLab UI](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html#delete-a-pod): <code>Deployment Management</code></summary>\n\n> Have you ever needed to restart or delete a failing pod in Kubernetes? Until now, you had to leave GitLab, use another tool to connect to the cluster, stop the pod, and wait for a new pod to start. GitLab now has built-in support for deleting pods, so you can smoothly troubleshoot your Kubernetes clusters.\n> \n> You can stop a pod from a [dashboard for Kubernetes](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html), which lists all the pods across your cluster or namespace.\n\n</details>\n\n<details><summary>[Easily connect to a cluster from your local terminal](https://docs.gitlab.com/ee/user/clusters/agent/user_access.html): <code>Deployment Management</code></summary>\n\n> Do you want to connect to a Kubernetes cluster from your local terminal or using one of the desktop Kubernetes GUI tools?\n> GitLab allows you to connect to a terminal using the [user access feature of the agent for Kubernetes](https://docs.gitlab.com/ee/user/clusters/agent/user_access.html). \n> Previously, finding commands required navigating out of GitLab to browse the documentation. Now, GitLab provides the connect command from the UI. GitLab can even help you configure user access!\n> \n> To retrieve the connection command, either go to a [Kubernetes dashboard](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html), or to the [agent list](https://docs.gitlab.com/ee/user/clusters/agent/work_with_agent.html#view-your-agents).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Add merge requests to tasks](https://docs.gitlab.com/ee/user/tasks.html#add-a-merge-request-and-automatically-close-tasks): <code>Team Planning</code></summary>\n\n> Tasks are frequently used to break down issues into engineering implementation steps. Before this release, there was no way to connect a merge request to a task it implements. You can now use the same [closing pattern](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#closing-issues-automatically) that you would when referencing issues from a merge request description to connect a merge request to a task. From the task view, connected merge requests are visible from the sidebar. If your project has the [auto-close setting enabled](https://docs.gitlab.com/ee/user/project/issues/managing_issues.html#disable-automatic-issue-closing), the task will automatically close when the connected merge request is merged into your default branch.\n\n</details>\n\n<details><summary>[Set parent items for OKRs and tasks](https://docs.gitlab.com/ee/user/okrs.html#set-an-objective-as-a-parent): <code>Portfolio Management</code></summary>\n\n> You can now effortlessly update parent assignments for [OKRs](https://docs.gitlab.com/ee/user/okrs.html#set-an-objective-as-a-parent) and [tasks](https://docs.gitlab.com/ee/user/tasks.html#set-an-issue-as-a-parent), directly from the child record, eliminating the need to navigate back and forth. This is a great step towards our goal of [improving efficiency with your workflows](https://gitlab.com/groups/gitlab-org/-/epics/10501).\n\n</details>\n\n<details><summary>[Report abuse for task, objective and key result items](https://docs.gitlab.com/ee/user/report_abuse.html): <code>Team Planning</code></summary>\n\n> You can now easily report abuse for work items directly from the **Actions** menu, just like you can with legacy issues. This new feature helps keep your workspace clean and safe by allowing you to quickly flag inappropriate content, ensuring a better collaborative environment for your team.\n\n</details>\n\n<details><summary>[Resolve threads in tasks, objectives, and key results](https://docs.gitlab.com/ee/user/discussions/#resolve-a-thread): <code>Team Planning</code></summary>\n\n> You can now resolve threads in tasks, objectives, and key results, making it easier to manage and track important conversations. Resolved threads are collapsed by default, helping you focus on active discussions and streamline your collaboration workflows.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Improved TLS support in JetBrains IDEs](https://docs.gitlab.com/ee/editor_extensions/jetbrains_ide/#add-a-custom-certificate-for-code-suggestions): <code>Editor Extensions</code></summary>\n\n> For tighter security in sensitive environments, you can now configure custom HTTP agent options, including client certificates and certificate authorities, directly in your JetBrains IDE settings.\n\n</details>\n\n<details><summary>[More easily remove content from repositories](https://docs.gitlab.com/ee/user/project/repository/reducing_the_repo_size_using_git.html#remove-blobs): <code>Source Code Management</code></summary>\n\n> Currently, the process for removing content from a repository is complicated, and you might have to force push the project to GitLab.\n> This is prone to errors and can cause you to temporarily turn off protections to enable the push.\n> It can be even harder to delete files that use too much space within the repository.\n> \n> You can now use the new repository maintenance option in project settings to remove blobs based on a list of object IDs.\n> With this new method, you can selectively remove content without the need to force push a project back to GitLab.\n> \n> In the event that secrets or other content has been pushed that needs to be redacted from a project, we're also introducing a new option to redact text.\n> Provide a string that GitLab will replace with `***REMOVED***` in files across the project.\n> After the text has been redacted, run housekeeping to remove old versions of the string.\n> \n> This new UI streamlines the way you can manage your repositories when content needs to be removed.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Filter jobs by job name](https://docs.gitlab.com/ee/ci/jobs/): <code>Continuous Integration (CI)</code></summary>\n\n> You can now quickly find a specific job by searching for a job name.\n> \n> Previously, you could only filter the list of jobs by status, requiring manual scrolling to find a specific job. With this release, you can now enter a job name to filter the results. The results will only include jobs in pipelines that ran after the release of GitLab 17.3.\n\n</details>\n\n<details><summary>[GitLab Runner 17.3](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're releasing GitLab Runner 17.3 today! GitLab Runner is the lightweight, highly scalable agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### Bug fixes:\n> \n> - [Jobs appear to hang when canceled in the Kubernetes runner](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37780)\n> - [Log level not updated when not specified](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37490)\n> - [Job log adds extra newlines when using the runner Kubernetes executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27099) \n> \n> For a list of all changes, see the GitLab Runner [changelog](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-3-stable/CHANGELOG.md).\n\n</details>\n\n<details><summary>[Description and type added to CI/CD catalog component input details](https://docs.gitlab.com/ee/ci/components/#cicd-catalog): <code>Pipeline Composition</code></summary>\n\n> The details page for a CI/CD component in the catalog provides useful information about the component. In this release we've added two more columns to the table that shows information about available inputs. The new **Description** and **Type** columns make it much easier to understand what an input is used for, and what type of value is expected.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Filter the member list in a group or project by role](https://docs.gitlab.com/ee/user/project/members/index.html): <code>Permissions</code></summary>\n\n> Users can now filter the Members page by role. Use the filter to find members with a specific role.\n\n</details>\n\n<details><summary>[View role details in the right drawer](https://docs.gitlab.com/ee/user/custom_roles.html): <code>Permissions</code></summary>\n\n> Previously, if you wanted to view permissions for the custom roles of a user, you had to have the Owner role in the group. This requirement made it difficult to troubleshoot and understand what actions a user can perform when assigned a custom role. Now, any user can view the permissions of a user assigned a custom role in the Members page.\n\n</details>\n\n<details><summary>[Disable personal access tokens using Admin UI](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#use-the-admin-ui) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> Administrators can now disable or re-enable instance personal access tokens through the Admin UI. Previously, administrators had to use the application settings API or the GitLab Rails console to do this.  \n\n</details>\n\n<details><summary>[Bluesky identifier in user profile](https://docs.gitlab.com/ee/user/profile/#add-external-accounts-to-your-user-profile-page): <code>User Profile</code></summary>\n\n> You can now add your Bluesky did:plc identifier to your GitLab profile.\n> \n> Thank you [Dominique](https://domi.zip/) for your contribution!\n\n</details>\n\n<details><summary>[Subdomain cookies preserved on sign out](https://docs.gitlab.com/ee/user/profile/active_sessions.html): <code>System Access</code></summary>\n\n> GitLab sign out process has been improved so that cookies from sibling subdomains are not deleted on sign out. Previously, these cookies were deleted, causing users to be signed out of other subdomain services on the same top-level domain as GitLab. For example, if a user has Kibana set up on `kibana.example.com` and GitLab set up on `gitlab.example.com`, signing out from GitLab will no longer sign the user out from Kibana.\n> \n> Thank you [Guilherme C. Souza](https://gitlab.com/GCSBOSS) for your contribution! \n\n</details>\n\n\n","released_at":"2024-08-15T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.2","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.2.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.2.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.2.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.2.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.2.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.2.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":4495968,"url":"https://about.gitlab.com/releases/2024/07/18/gitlab-17-2-released/","name":"GitLab 17.2 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/07/18/gitlab-17-2-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.2.0-ee/gitlab-v17.2.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.2.0-ee/gitlab-v17.2.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.2.0-ee/gitlab-v17.2.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.2.0-ee/gitlab-v17.2.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"f1ebbe522423b514610449d0f6dc7a262f855314","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/f1ebbe522423b514610449d0f6dc7a262f855314","short_id":"f1ebbe52","trailers":[],"created_at":"2024-07-17T10:16:48.000+00:00","parent_ids":["fc184ff955cebc7b228e30811c84d65dda1a57a9"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-07-17T10:16:48.000+00:00","committed_date":"2024-07-17T10:16:48.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.2.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.2.0-ee","evidences":[],"created_at":"2024-07-18T15:04:26.287Z","milestones":[{"id":4423693,"iid":100,"state":"closed","title":"17.2","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/100","due_date":"2024-07-12","group_id":9970,"created_at":"2024-01-24T20:00:58.957Z","start_date":"2024-06-15","updated_at":"2025-10-22T16:22:39.042Z","description":"","issue_stats":{"total":2098,"closed":2068}}],"commit_path":"/gitlab-org/gitlab/-/commit/f1ebbe522423b514610449d0f6dc7a262f855314","description":"![39 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=39&style=for-the-badge \"New features added in this release\")\n![3512 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3512&style=for-the-badge \"Total features\")\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Simplified setup for Google Cloud integration](https://docs.gitlab.com/ee/tutorials/set_up_gitlab_google_integration/#secure-your-usage-with-google-cloud-identity-and-access-management-iam) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> Google Cloud CLI commands are now natively available when setting up workload identity federation for the Google Cloud IAM integration. Previously, the guided setup used a script downloaded through cURL commands. Also, help text has been added to better describe the setup process. These improvements help group owners set up the Google Cloud IAM integration more quickly.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![12 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=12&style=flat-square \"New features added to this tier in this release\")\n![534 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=534&style=flat-square \"Total features in this tier\")\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Merge commit message generation now GA](https://docs.gitlab.com/ee/user/project/merge_requests/duo_in_merge_requests.html#generate-a-merge-commit-message): <code>Code Review Workflow</code></summary>\n\n> Crafting commit messages is an important part of ensuring that future users understand what and why changes were made to the codebase. It's challenging to come up with a message that communicates your changes effectively and takes into account everything you might have changed.\n> \n> Generation of merge commits with GitLab Duo is now Generally Available to help ensure every merge request has quality commit messages. Before you merge, select **Edit commit message** in the merge widget, then use the **Generate commit message** option to have a commit message drafted.\n> \n> This new GitLab Duo capability is a great way to make sure your project's commit history is a valuable resource for future developers.\n\n</details>\n\n<details><summary>[GitLab Duo for the CLI now GA](https://docs.gitlab.com/ee/editor_extensions/gitlab_cli/index.html#gitlab-duo-for-the-cli): <code>GitLab CLI</code></summary>\n\n> GitLab Duo for the CLI is now generally available for all users. You can now `ask` GitLab Duo to help you with finding the right `git` command for your need.\n> \n> Use `glab duo ask <git question>` to have GitLab Duo provide you with formatted `git` commands to achieve your goals. The GitLab CLI then provides additional details on the commands and what they will do, including information on any flags being passed. You're then able to run the commands and get their output directly in your workflow.\n> \n> The `ask` command for the GitLab CLI is a great way to speed up your workflow with `git` commands you need a little extra help remembering.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Expanded support of custom rulesets in pipeline secret detection](https://docs.gitlab.com/ee/user/application_security/secret_detection/pipeline/index.html#customize-analyzer-rulesets): <code>Secret Detection</code></summary>\n\n> We have expanded support of custom rulesets in pipeline secret detection.\n> \n> You can use two new types of passthroughs, `git` and `url`, to configure remote rulesets. This makes it easier to manage workflows such as sharing ruleset configurations across multiple projects.\n> \n> You can also extend the default configuration with a remote ruleset by using one of those new types of passthroughs.\n> \n> The analyzer also now supports:\n> \n> * Chaining up to 20 passthroughs into a single configuration to replace predefined rules.\n> * Including environment variables in passthroughs.\n> * Setting a timeout when loading a passthrough.\n> * Validating TOML syntax in ruleset configuration.\n\n</details>\n\n<details><summary>[GitLab Advanced SAST available in Beta for Go, Java, and Python](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html): <code>SAST</code></summary>\n\n> GitLab Advanced SAST is now available [as a Beta feature](https://docs.gitlab.com/ee/policy/experiment-beta-support.html#beta) for Ultimate customers.\n> Advanced SAST uses cross-file, cross-function analysis to deliver higher-quality results.\n> It now supports Go, Java, and Python.\n> \n> During the Beta phase, we recommend running Advanced SAST in test projects, not replacing existing SAST analyzers.\n> To enable Advanced SAST, see the [instructions](https://docs.gitlab.com/ee/user/application_security/sast/gitlab_advanced_sast.html#enable-advanced-sast-scanning).\n> Starting in GitLab 17.2, Advanced SAST is included in the [`SAST.latest` CI/CD template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Jobs/SAST.latest.gitlab-ci.yml).\n> \n> This is part of our iterative [integration of Oxeye technology](https://about.gitlab.com/blog/oxeye-joins-gitlab-to-advance-application-security-capabilities/).\n> In upcoming releases, we plan to move Advanced SAST to General Availability, add support for [other languages](https://gitlab.com/groups/gitlab-org/-/epics/14312), and introduce new UI elements to trace how vulnerabilities flow.\n> We welcome any testing feedback in [issue 466322](https://gitlab.com/gitlab-org/gitlab/-/issues/466322).\n\n</details>\n\n<details><summary>[API Security Testing now supports signed authentication requests](https://docs.gitlab.com/ee/user/application_security/api_security_testing/configuration/variables.html): <code>API Security</code></summary>\n\n> API Security already has support for \"overrides\" which can modify the requests sent by the scanner. However these overrides must be set ahead of time and cannot change based on the request itself. GitLab 17.2 adds a \"per-request script\" (`APISEC_PER_REQUEST_SCRIPT`), which allows a user to provide a C# script that is called prior to sending each request. This provides support for \"signing\" the request with a secret as a form of authentication.\n\n</details>\n\n<details><summary>[Container Scanning: Continuous Vulnerability Scanning OS support](https://docs.gitlab.com/ee/user/application_security/continuous_vulnerability_scanning/#supported-package-types): <code>Software Composition Analysis</code></summary>\n\n> As a follow up to the Continuous Vulnerability Scanning for Container scanning MVC, during 17.2 we added support for APK and RPM operating system package versions.\n> \n> This enhancement allows our analyzer to fully support Continuous Vulnerability Scans for Container Scanning advisories by comparing the package versions for [APK](https://gitlab.com/gitlab-org/gitlab/-/issues/428703) and [RPM](https://gitlab.com/gitlab-org/gitlab/-/issues/428941) operating system purl types.\n> \n> As a note, RPM versions containing a caret (`^`) are not supported. Work to support these versions is being tracked in this [issue](https://gitlab.com/gitlab-org/gitlab/-/issues/459969).\n\n</details>\n\n<details><summary>[DAST analyzer updates](https://docs.gitlab.com/ee/user/application_security/dast/browser/checks/): <code>DAST</code></summary>\n\n> During the 17.2 release milestone, we published the following updates.  \n> \n> 1. We added three new checks:\n> \n> - Check 506.1 is a passive check that identifies request URLs that are likely compromised by the Polyfill.io CDN takeover. \n> - Check 384.1 is a passive check that identifies session fixation weaknesses, which could allow a valid session identifier to be reused by malicious actors. \n> - Check 16.11 is an active check that identifies when the TRACE HTTP debugging method is enabled on a production server, which could inadvertently expose sensitive information.\n> \n> 2. We addressed the following bugs to reduce false positives:\n> \n> - DAST checks 614.1 (Sensitive cookie without Secure attribute) and 1004.1 (Sensitive cookie without HttpOnly attribute) no longer create findings when a site has cleared a cookie by setting an expiry date in the past.\n> - DAST check 1336.1 (Server-Side Template Injection) no longer relies on a 500 HTTP response status code to determine attack success.\n> \n> 3. We added the following enhancements:\n> \n> - All response headers are now presented as evidence in a DAST vulnerability finding. This additional context reduces time spent on triaging findings.\n> - Sitemap.xml files are now crawled for additional URLs, leading to better coverage of target websites.\n\n</details>\n\n<details><summary>[API Fuzz Testing now supports signed authentication requests](https://docs.gitlab.com/ee/user/application_security/api_fuzzing/configuration/variables.html): <code>Fuzz Testing</code></summary>\n\n> API Fuzzing already has support for \"overrides\" which can modify the requests sent by the scanner. However these overrides must be set ahead of time and cannot change based on the request itself. GitLab 17.2 adds a \"per-request script\" (`FUZZAPI_PER_REQUEST_SCRIPT`), which allows a user to provide a C# script that is called prior to sending each request. This provides support for \"signing\" the request with a secret as a form of authentication.\n\n</details>\n\n<details><summary>[Secret push protection now available for Self-Managed, and improved warnings of potential leaks](https://docs.gitlab.com/ee/user/application_security/secret_detection/): <code>Secret Detection</code></summary>\n\n> During the 17.2 release milestone, we published the following updates:\n> \n> - Secret Push Protection beta is now available for self-managed customers. After an administrator [enables the feature instance-wide](https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection/#allow-the-use-of-secret-push-protection-in-your-gitlab-instance), follow our documentation to [enable push protection](https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection/#enable-secret-push-protection-in-a-project) on your projects.  \n> - [Warnings for potential leaks in text content](https://docs.gitlab.com/ee/user/application_security/secret_detection/client/) have been enriched with more detail, making it easier to understand which type of secret is about to be leaked in a description or comment in either an issue, epic, or MR.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Vulnerability Explanation](https://docs.gitlab.com/ee/user/application_security/vulnerabilities/#explaining-a-vulnerability): <code>Vulnerability Management</code></summary>\n\n> Vulnerability Explanation is now a part of GitLab Duo Chat and is generally available. With Vulnerability Explanation, you can open chat from any SAST vulnerability to better understand the vulnerability, see how it could be exploited, and review a potential fix.\n\n</details>\n\n<details><summary>[Pipeline execution policy type](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html): <code>Security Policy Management</code></summary>\n\n> The pipeline execution policy type is a new type of [security policy](https://docs.gitlab.com/ee/user/application_security/policies/) that allows users to support enforcement of generic CI jobs, scripts, and instructions.\n> \n> The pipeline execution policy type enables security and compliance teams to enforce customized [GitLab security scanning templates](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates/Jobs), [GitLab or partner-supported CI templates](https://gitlab.com/gitlab-org/gitlab/-/tree/master/lib/gitlab/ci/templates), 3rd party security scanning templates, custom reporting rules through CI jobs, or custom scripts/rules through GitLab CI.\n> \n> The pipeline execution policy has two modes: inject and override. The _inject_ mode injects jobs into the project's CI/CD pipeline. The _override_ mode replaces the project's CI/CD pipeline configuration.\n> \n> As with all GitLab policies, enforcement can be managed centrally by designated security and compliance team members who create and manage the policies. [Learn how to get started by creating your first pipeline execution policy](https://docs.gitlab.com/ee/user/application_security/policies/pipeline_execution_policies.html)!\n\n</details>\n\n<details><summary>[Expand \"Scan Execution Policies\" to run `latest` templates for each GitLab analyzer](https://docs.gitlab.com/ee/user/application_security/policies/scan-execution-policies.html): <code>Security Policy Management</code></summary>\n\n> [Scan execution policies](https://docs.gitlab.com/ee/user/application_security/policies/scan-execution-policies.html) have been expanded to allow you to choose between `default` and `latest` GitLab templates when defining the policy rules. While `default` reflects the current behavior, you may update your policy to `latest` to use features available only in the latest template of the given security analyzer.\n> \n> By utilizing the `latest` template, you may now ensure scans are enforced on merge request pipelines, along with any other rules enabled in the `latest` template. Previously this was limited to branch pipelines or a specified schedule.\n> \n> Note that you should review all changes between `default` and `latest` templates before modifying the policy to ensure this suits your needs.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![6 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=6&style=flat-square \"New features added to this tier in this release\")\n![644 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=644&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Gitlab Duo disabling input and output logging by default.](https://docs.gitlab.com/ee/user/gitlab_duo/data_usage.html#data-retention): <code>GitLab Duo Chat</code></summary>\n\n> GitLab is now disabling AI input and output logging for GitLab Duo by default.\n> \n> At GitLab, we aim to ensure that customers have sovereignty over their data.\n> We've now disabled input and output logging by default and will only log inputs and outputs with customers' explicit \n> consent via a GitLab Support ticket.\n\n</details>\n\n<details><summary>[Deployments and approvals to protected environments trigger an audit event](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#continuous-delivery): <code>Continuous Delivery</code></summary>\n\n> An accessible record of deployment events, like deployment approvals, is essential for compliance management. Until now, GitLab did not provide deployment-related audit events, so compliance managers had to use custom tooling or search for this data in GitLab directly. GitLab now provides three audit events:\n> \n>  - `deployment_started` records who started a deployment job, and when it was started.\n>  - `deployment_approved` records who approved a deployment job, and when it was approved.\n>  - `deployment_rejected` records who rejected a deployment job, and when it was rejected.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Block a merge request by requesting changes](https://docs.gitlab.com/ee/user/project/merge_requests/reviews/index.html#prevent-merge-when-you-request-changes): <code>Code Review Workflow</code></summary>\n\n> When you perform a review, you can complete it by choosing whether to `approve`, `comment`, or `request changes` ([released in GitLab 16.9](https://about.gitlab.com/releases/2024/02/15/gitlab-16-9-released/#request-changes-on-merge-requests)). While reviewing, you might find changes that should prevent a merge request from merging until they're resolved, and so you complete your review with `request changes`. \n> \n> When requesting changes, GitLab now adds a merge check that prevents merging until the request for changes has been resolved. The request for changes can be resolved when the original user who requested changes re-reviews the merge request and subsequently approves the merge request. If the user who originally requested changes is unable to approve, the request for changes can be **Bypassed** by anyone with merge permissions, so development can continue.\n> \n> Leave us feedback about this new feature in [issue 455339](https://gitlab.com/gitlab-org/gitlab/-/issues/455339).\n\n</details>\n\n<details><summary>[GitLab Duo Chat and Code Suggestions available in workspaces](https://docs.gitlab.com/ee/user/gitlab_duo/): <code>Workspaces</code>, <code>Duo Chat</code>, <code>Code Suggestions</code></summary>\n\n> [GitLab Duo Chat](https://docs.gitlab.com/ee/user/gitlab_duo_chat/) and [Code Suggestions](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/) are now available in workspaces! Whether you're seeking quick answers or efficient code improvements, Duo Chat and Code Suggestions are designed to boost productivity and streamline your workflow, making remote development in workspaces more efficient and effective than ever.\n\n</details>\n\n<details><summary>[New agent authorization strategy for workspaces](https://docs.gitlab.com/ee/user/workspace/gitlab_agent_configuration.html): <code>Workspaces</code></summary>\n\n> With this release, we've implemented a new authorization strategy for workspaces to address the limitations of the legacy strategy while providing group owners and administrators more control and flexibility. With the new authorization strategy, group owners and administrators can control which cluster agents to use for hosting workspaces. \n> \n> To ensure a smooth transition, users on the legacy authorization strategy are migrated automatically to the new strategy. Existing agents that support workspaces are allowed automatically in the root group where these agents are located. This migration also occurs even if these agents have been allowed in different groups in a root group.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Assigning frameworks at subgroup compliance center](https://docs.gitlab.com/ee/user/compliance/compliance_center/compliance_projects_report.html): <code>Compliance Management</code></summary>\n\n> The compliance center is the central location for compliance teams to\n> manage their compliance standards adherence reporting, violations reporting,\n> and compliance frameworks for their group.\n> \n> Previously, all of the associated features of the compliance center were only available for top-level groups.\n> This meant that for subgroups, owners didn't have access to any of the functionality provided by the compliance center on the top-level group.\n> \n> To help address these key pain points, we've added the ability to assign and unassign compliance frameworks for subgroups. Now, group owners can\n> visualize their compliance posture at the subgroup level in addition to the full top-group-level compliance center dashboard that was already available.\n\n</details>\n\n\n\n#### Core\n\n![20 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=20&style=flat-square \"New features added to this tier in this release\")\n![2233 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2233&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Improved sorting and filtering in group overview](https://docs.gitlab.com/ee/user/group/#view-a-group): <code>Groups & Projects</code></summary>\n\n> We have updated the sorting and filtering functionality of the group overview page. The search element now stretches across the whole page, allowing you to see your search strings better. We have standardized the sorting options to `Name`, `Created date`, `Updated date`, and `Stars`.\n> \n> We welcome feedback about these changes in [issue 438322](https://gitlab.com/gitlab-org/gitlab/-/issues/438322).\n\n</details>\n\n<details><summary>[List groups that a group was invited to using the Groups API](https://docs.gitlab.com/ee/api/groups.html#list-a-groups-shared-groups): <code>API</code>, <code>Groups & Projects</code></summary>\n\n> We added a new endpoint to the Groups API to list the groups a group has been invited to.\n> This functionality complements the [endpoint to list the projects that a group has been invited to](https://docs.gitlab.com/ee/api/groups.html#list-a-groups-shared-projects), so you can now get a complete overview of all the groups and projects that your group has been added to.\n> The endpoint is rate-limited to 60 requests per minute per user.\n> \n> Thank you [@imskr](https://gitlab.com/imskr) for this community contribution!\n\n</details>\n\n<details><summary>[Resolve to-do items, one discussion at a time](https://docs.gitlab.com/ee/user/todos.html): <code>Notifications</code></summary>\n\n> Discussions on GitLab issues can get busy. GitLab helps you manage these conversations by raising a to-do item for comments that are relevant to you, and automatically resolves the item when you take an action on the issue.\n> \n> Previously, when you took action on a thread in the issue, all to-do items were resolved, even if you were mentioned in several different threads. Now, GitLab resolves only the to-do item for the thread you interacted with.\n\n</details>\n\n<details><summary>[Indicate imported items in UI](https://docs.gitlab.com/ee/user/project/import/#supported-import-sources): <code>Importers</code></summary>\n\n> You can import projects to GitLab from [other SCM solutions](https://docs.gitlab.com/ee/user/project/import/#supported-import-sources). However, it was difficult to know\n> if project items were imported or created on the GitLab instance.\n> \n> With this release, we've added visual indicators to items imported from GitHub, Gitea, Bitbucket Server, and Bitbucket Cloud where the creator is identified as a specific\n> user. For example, merge requests, issues, and notes.\n\n</details>\n\n<details><summary>[Deleted branches are removed from Jira development panel](https://docs.gitlab.com/ee/integration/jira/development_panel.html#feature-availability): <code>Integrations</code></summary>\n\n> Previously, when using [GitLab for Jira Cloud app](https://docs.gitlab.com/ee/integration/jira/connect-app.html), if you deleted a branch in GitLab, that branch still\n> appeared in Jira development panel. Selecting that branch caused a `404` error on GitLab.\n> \n> From this release, branches deleted in GitLab are removed from the Jira development panel.\n\n</details>\n\n<details><summary>[Find project settings by using the command palette](https://docs.gitlab.com/ee/user/search/command_palette.html): <code>Settings</code>, <code>Global Search</code></summary>\n\n> GitLab offers many settings across projects, groups, the instance, and for yourself personally. To find the setting you're looking for, you often have to spend time clicking through many different areas of the UI.\n> \n> With this release, you can now search for project settings from the command palette. Try it out by visiting a project, selecting **Search or go to...**, entering command mode with `>`, and typing the name of a settings section, like **Protected tags**. Select a result to jump right to the setting itself.\n\n</details>\n\n<details><summary>[Log streaming for Kubernetes pods and containers](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html): <code>Environment Management</code></summary>\n\n> In GitLab 16.1, we introduced the Kubernetes pod list and detail views. However, you still had to use third-party tools for an in-depth analysis of your workloads.\n> GitLab now ships with a log streaming view for pods and containers, so you can quickly check and troubleshoot issues across your environments without leaving your application delivery tool.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Separate wiki page title and path fields](https://docs.gitlab.com/ee/user/project/wiki/): <code>Wiki</code></summary>\n\n> In GitLab 17.2, wiki page titles are separate from their paths. In previous releases, if a page title changed, the path would also change, which could cause links to the page to break. Now, if a wiki page's title changes, the path remains unchanged. Even if a wiki page path changes, an automatic redirect is set up to prevent broken links.\n\n</details>\n\n<details><summary>[Improvements to the wiki sidebar](https://docs.gitlab.com/ee/user/project/wiki/): <code>Wiki</code></summary>\n\n> GitLab 17.2 adds several enhancements to how wikis display the sidebar. Now, a wiki displays all pages in the sidebar (up to 5000 pages), displays a table of contents (TOC), and provides a search bar to quickly find pages.\n> \n> Previously, the sidebar lacked a TOC, making it challenging to navigate to sections of a page. The new TOC feature helps to see the page structure clearly, as well as navigate quickly to different sections, greatly improving usability.\n> \n> The addition of a search bar makes discovering content easier. And because the sidebar now displays all pages, you can seamlessly browse an entire wiki.\n\n</details>\n\n<details><summary>[Add type attribute to issues events webhook](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#issue-events): <code>Team Planning</code>, <code>Webhooks</code>, <code>Incident Management</code>, <code>Service Desk</code></summary>\n\n> Issues, tasks, incidents, requirements, objectives, and key results\n> all trigger payloads under the **Issues Events** webhook category. Until now, there has been no way to quickly determine the type of object that triggered the webhook within the event payload. This release introduces an `object_attributes.type` attribute available on payloads within the **Issues events**, **Comments**, **Confidential issues events**, and **Emoji events** triggers. \n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Pure SSH transfer protocol for LFS](https://docs.gitlab.com/ee/administration/lfs/#pure-ssh-transfer-protocol): <code>Source Code Management</code></summary>\n\n> Back in September 2021, [`git-lfs` 3.0.0](https://github.com/git-lfs/git-lfs/blob/main/CHANGELOG.md#300-24-sep-2021)\n> released support for using SSH as the transfer protocol instead of HTTP.\n> Prior to `git-lfs` 3.0.0, HTTP was the only supported transfer protocol\n> which meant using `git-lfs` at GitLab was not possible for some users.\n> With this release, we're very excited to offer the ability to\n> enable support for SSH over HTTP as the transfer protocol for `git-lfs`.\n> \n> Thank you to [Kyle Edwards](https://gitlab.com/KyleFromKitware) and\n> [Joe Snyder](https://gitlab.com/joe-snyder) for this contribution!\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Sort options for pipeline schedules](https://docs.gitlab.com/ee/ci/pipelines/schedules.html): <code>Continuous Integration (CI)</code></summary>\n\n> You can now sort the pipeline schedules list by description, ref, next run, created date, and updated date.\n\n</details>\n\n<details><summary>[GitLab Runner 17.2](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're releasing GitLab Runner 17.2 today! GitLab Runner is the lightweight, highly scalable agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [GitLab Runner fleeting plugin for AWS EC2 instances (GA)](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29222)\n> - [Permit configuration of Runner `livenessProbe` and `readinessProbe`](https://gitlab.com/gitlab-org/charts/gitlab-runner/-/issues/545)\n> - [Ability to enable and disable the `umask 0000` command for the Kubernetes executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/28867)\n> - [Support for Red Hat OpenShift 4.16 for the GitLab Runner Operator](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/203)\n> \n> #### Bug Fixes:\n> \n> - [Gitlab Runner upgrade removes all cache volumes](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/30876)\n> \n> For a list of all changes, see the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-2-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Document modules in the Terraform module registry](https://docs.gitlab.com/ee/user/packages/terraform_module_registry/index.html#view-terraform-modules): <code>Package Registry</code></summary>\n\n> The Terraform module registry now displays Readme files! With this highly requested feature, you can transparently document the purpose, configuration, and requirements of each module.\n> \n> Previously, you had to search other sources for this critical information, which made it difficult to properly evaluate and use modules. Now, with the module documentation readily available, you can quickly understand a module's capabilities before you use it. This accessibility empowers you to confidently share and reuse Terraform code across your organization.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[OAuth 2.0 device authorization grant support](https://docs.gitlab.com/ee/api/oauth2.html#device-authorization-grant-flow): <code>System Access</code></summary>\n\n> GitLab now supports the [OAuth 2.0 device authorization grant flow](https://datatracker.ietf.org/doc/html/rfc8628). This flow makes it possible to securely authenticate your GitLab identity from input constrained devices where browser interactions are not an option.\n> This makes the device authorization grant flow ideal for users attempting to use GitLab services from headless servers or other devices with no, or limited, UI.\n> Thank you [John Parent](https://kitware.com/) for your contribution! \n\n</details>\n\n<details><summary>[Identify dates when multiple access tokens expire](https://docs.gitlab.com/ee/security/token_overview.html#identify-dates-when-many-tokens-expire) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> Administrators can now run a script that identifies dates when multiple access tokens expire. You can use this script in combination with other scripts on the [token troubleshooting page](https://docs.gitlab.com/ee/security/token_overview.html#troubleshooting) to identify and extend large batches of tokens that might be approaching their expiration date, if token rotation has not yet been implemented.\n\n</details>\n\n<details><summary>[OAuth authorization screen improvements](https://docs.gitlab.com/ee/integration/oauth_provider.html): <code>System Access</code></summary>\n\n> The OAuth authorization screen now more clearly describes the authorization you are granting. It also includes a \"verified by GitLab\" section for applications that are provided by GitLab. Previously, the user experience was the same, regardless of whether an application was provided by GitLab or not. This new functionality provides an extra layer of trust.\n\n</details>\n\n<details><summary>[Streamlined instance administrator setup](https://docs.gitlab.com/ee/administration/) <i>(self-managed only)</i>: <code>User Management</code></summary>\n\n> The administrator setup experience for a new install of GitLab has been streamlined and made more secure. The initial administrator root email address is now randomzied, and administrators are forced to change this email address to an account that they can access. Previously, this step could have been delayed, and an administrator might forget to change the email address.\n\n</details>\n\n<details><summary>[User API added to the Snowflake Data Connector](https://docs.gitlab.com/ee/integration/snowflake.html) <i>(self-managed only)</i>: <code>Audit Events</code>, <code>Compliance Management</code></summary>\n\n> In GitLab 17.2, we've added support for the [Users API](https://docs.gitlab.com/ee/api/users.html#list-users) to the [GitLab Data Connector](https://app.snowflake.com/marketplace/listing/GZTYZXESENG/gitlab-gitlab-data-connector),\n> which is available in the Snowflake Marketplace app. You can now stream user data from self-managed GitLab instances to Snowflake using the Users API.\n\n</details>\n\n<details><summary>[`rules:changes:compare_to` now supports CI/CD variables](https://docs.gitlab.com/ee/ci/yaml/#ruleschangescompare_to): <code>Pipeline Composition</code>, <code>Variables</code></summary>\n\n> In GitLab 15.3 we introduced the [`compare_to` keyword](https://docs.gitlab.com/ee/ci/yaml/#ruleschangescompare_to) for `rules:change`. This made it possible to define the exact ref to compare against. Beginning in GitLab 17.2, you can now use CI/CD variables with this keyword, making it easier to define and reuse `compare_to` values in multiple jobs.\n\n</details>\n\n\n","released_at":"2024-07-18T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.1","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.1.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.1.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.1.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.1.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.1.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.1.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":4321131,"url":"https://about.gitlab.com/releases/2024/06/20/gitlab-17-1-released/","name":"GitLab 17.1 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/06/20/gitlab-17-1-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.1.0-ee/gitlab-v17.1.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.1.0-ee/gitlab-v17.1.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.1.0-ee/gitlab-v17.1.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.1.0-ee/gitlab-v17.1.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"b7514f9c21c09a9ed2b258f5cfdd56c88f43864a","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/b7514f9c21c09a9ed2b258f5cfdd56c88f43864a","short_id":"b7514f9c","trailers":[],"created_at":"2024-06-19T08:40:40.000+00:00","parent_ids":["0d8509c45b3e6116ca6e378fe5f37f0c26c5fd25"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-06-19T08:40:40.000+00:00","committed_date":"2024-06-19T08:40:40.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.1.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.1.0-ee","evidences":[],"created_at":"2024-06-20T15:07:51.621Z","milestones":[{"id":4423683,"iid":99,"state":"closed","title":"17.1","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/99","due_date":"2024-06-14","group_id":9970,"created_at":"2024-01-24T19:58:48.591Z","start_date":"2024-05-11","updated_at":"2025-10-22T16:22:37.079Z","description":"","issue_stats":{"total":2428,"closed":2408}}],"commit_path":"/gitlab-org/gitlab/-/commit/b7514f9c21c09a9ed2b258f5cfdd56c88f43864a","description":"![48 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=48&style=for-the-badge \"New features added in this release\")\n![3473 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3473&style=for-the-badge \"Total features\")\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Container images linked to signatures](https://docs.gitlab.com/ee/user/packages/container_registry/#container-image-signatures) <i>(SaaS only)</i>: <code>Container Registry</code></summary>\n\n> The GitLab container registry now associates signed container images with their signatures. With this improvement, users can more easily:\n> \n> - Identify which images are signed and which are not. \n> - Find and validate the signatures that are associated with a container image.\n> \n> This improvement is generally available only on GitLab.com. Self-managed support is in beta and requires users to enable the\n> [next-generation container registry](https://docs.gitlab.com/ee/administration/packages/container_registry_metadata_database.html), which is also in beta.\n\n</details>\n\n<details><summary>[Display the last published date for container images](https://docs.gitlab.com/ee/user/packages/container_registry/#view-the-container-registry) <i>(SaaS only)</i>: <code>Container Registry</code></summary>\n\n> Previously, the published timestamp was often incorrect in the container registry user interface. This meant that you couldn't rely on this important data to find and validate your container images.\n> \n> In GitLab 17.1, we've updated the UI to include accurate `last_published_at` timestamps. You can find this information by navigating to **Deploy > Container Registry** and selecting a tag to view more details. The last published date is available at the top of the page.\n> \n> This improvement is generally available only on GitLab.com. Self-managed support is in beta and available only on instances that have enabled the beta [next-generation container registry](https://docs.gitlab.com/ee/administration/packages/container_registry_metadata_database.html).\n\n</details>\n\n<details><summary>[Sort container registry tags by publish date](https://docs.gitlab.com/ee/user/packages/container_registry/#view-the-container-registry) <i>(SaaS only)</i>: <code>Container Registry</code></summary>\n\n> You use the GitLab container registry to view, push, and pull Docker or OCI images alongside your source code as well as pipelines. After a container image has been built, you often need to find and validate that it has been built correctly. For many customers, finding the correct container image using the user interface can be challenging.\n> \n> You can now sort the container registry tags list by publish date. You can use this feature to quickly find and validate the most recently published container image.\n> \n> This improvement is generally available only on GitLab.com. Self-managed support is in Beta because it requires the next-generation container registry, which is also in Beta. To learn more, see the [container registry metadata database documentation](https://docs.gitlab.com/ee/administration/packages/container_registry_metadata_database.html).\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Secret Push Protection available in beta](https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection) <i>(SaaS only)</i>: <code>Secret Detection</code></summary>\n\n> If a secret, like a key or an API token, is accidentally committed to a Git repository, anyone with repository access can impersonate the user of the secret for malicious purposes. To address this risk, most organizations require exposed secrets to be revoked and replaced, but you can save remediation time and reduce risk by preventing secrets from being pushed in the first place.\n> \n> Secret push protection checks the content of each commit pushed to GitLab. [If any secrets are detected](https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection/detected_secrets.html), the push is blocked and displays information about the commit, including:\n> \n> - The commit ID that contains the secret.\n> - The filename and line number that contains the secret.\n> - The type of secret.\n> \n> Need to bypass secret push protection for testing? When you skip secret push detection, GitLab logs an audit event so you can investigate.\n> \n> Secret push protection is available on GitLab.com and for Dedicated customers as a [Beta](https://docs.gitlab.com/ee/policy/experiment-beta-support.html#beta) feature and can be enabled on a [per project basis](https://docs.gitlab.com/ee/user/application_security/secret_detection/secret_push_protection/index.html#enable-secret-push-protection-in-a-project). You can help us improve secret push protection by providing feedback in [issue 467408](https://gitlab.com/gitlab-org/gitlab/-/issues/467408).\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![7 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=7&style=flat-square \"New features added to this tier in this release\")\n![522 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=522&style=flat-square \"Total features in this tier\")\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[New Value Stream Management report generator tool](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#schedule-value-streams-dashboard-reports): <code>Value Stream Management</code>, <code>DORA Metrics</code></summary>\n\n> With the addition of the new Reports Generation Tool for Value Stream Management, we empower decision-makers to be more efficient and effective in the software development lifecycle (SDLC) optimization.\n> \n> You can now schedule [DevSecOps comparison metrics reports](https://gitlab.com/components/vsd-reports-generator#example-for-monthly-executive-value-streams-report) or the [AI Impact analytics](https://about.gitlab.com/releases/2024/05/16/gitlab-17-0-released/#ai-impact-analytics-in-the-value-streams-dashboard) report to be delivered automatically, proactively, and with relevant information in GitLab issues. With scheduled reports, managers can focus on analyzing insights and making informed decisions, rather than spending time manually searching for the right dashboard with the required data.\n> \n> You can access the scheduled reports tool using the [CI/CD Catalog](https://gitlab.com/explore/catalog).\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Runner fleet dashboard for groups](https://docs.gitlab.com/ee/ci/runners/runner_fleet_dashboard_groups.html): <code>Fleet Visibility</code></summary>\n\n> Operators of self-managed runner fleets at the group level need observability and the ability to quickly answer critical questions about their runner fleet infrastructure at a glance. With the runner fleet dashboard for groups, you directly have runner fleet observability and actionable insights in the GitLab UI. You can now quickly determine the runner health, and gain insights into runner usage metrics as well as CI/CD job queue service capabilities, in your organization's target service-level objectives.\n> \n> Customers on GitLab.com can use all of the fleet dashboard metrics available for groups today. Self-managed customers can use most of the fleet dashboard metrics, but must configure the ClickHouse analytics database to use the **Runner usage** and **Wait time to pick a job** metrics.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[API Security Testing analyzer updates](https://docs.gitlab.com/ee/user/application_security/api_security_testing/configuration/variables.html): <code>API Security</code></summary>\n\n> GitLab 17.1 adds the following configuration variables for API Security Testing:\n> \n> 1. `APISEC_SUCCESS_STATUS_CODES` creates a comma-separated list of HTTP success status codes that define whether an API security testing scanning job has passed.\n> 1. `APISEC_TARGET_CHECK_DISABLED` disables waiting for the target API to become available before scanning begins.\n> 1. `APISEC_TARGET_CHECK_STATUS_CODE` specifies the expected status code for the API target availability check. If not provided, any non-500 status code is acceptable to the scanner.\n> \n> These new variables provide greater customization and flexibility to ensure scans run successfully.\n> \n> DAST API was renamed API Security Testing in 16.10. Variable names now begin with the prefix `APISEC`. Previously, they began with `DAST_API`. Variables prefixed with `DAST_API` will be supported until 18.0 (May 2025). To ensure your configurations work as expected, you should update your variable names as soon as possible.\n\n</details>\n\n<details><summary>[Container Scanning for Registry](https://docs.gitlab.com/ee/user/application_security/container_scanning/): <code>Software Composition Analysis</code></summary>\n\n> GitLab Composition Analysis now supports Container Scanning for Registry.\n> \n> If Container Scanning for Registry has been enabled on a project, and a container image is pushed to the container registry in your project, GitLab checks its tag and scan limit.\n> \n> If the tag is `latest`, and the number of scans is under the limit (50 scans/day), then GitLab creates a new pipeline that runs a `container_scanning` job on the image. The pipeline is associated with the user who pushed the image to the registry.\n> \n> The scan job generates a CycloneDX SBOM that is uploaded to GitLab. The Continuous Vulnerability Scanning features are activated and scan the packages detected in the SBOM.\n> \n> Note that a vulnerability scan is only perfomed when a new advisory is published. This occurs when the [package metadata is synchronized](https://docs.gitlab.com/ee/administration/settings/security_and_compliance.html).\n> \n> As always, we appreciate feedback on our newly released features. To provide feedback, please comment on this [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/466117).\n\n</details>\n\n<details><summary>[Fuzz Testing analyzer updates](https://docs.gitlab.com/ee/user/application_security/api_fuzzing/configuration/variables.html): <code>Fuzz Testing</code></summary>\n\n> GitLab 17.1 adds the following configuration variables for Fuzz Testing:\n> \n> 1. `FUZZAPI_SUCCESS_STATUS_CODES` creates a comma-separated list of HTTP success status codes that define whether a Fuzz Testing job has passed.\n> 1. `FUZZAPI_TARGET_CHECK_SKIP` disables waiting for the target API to become available before scanning begins.\n> 1. `FUZZAPI_TARGET_CHECK_STATUS_CODE` specifies the expected status code for the API target availability check. If not provided, any non-500 status code is acceptable to the scanner.\n> \n> These new variables provide greater customization and flexibility for ensuring scans run.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[New permissions for custom roles](https://docs.gitlab.com/ee/user/custom_roles.html): <code>Permissions</code></summary>\n\n> In GitLab 17.1, you can create custom roles with the following new permissions:\n> \n> - [Manage merge request settings](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#code-review-workflow)\n> - [Manage integrations](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#integrations)\n> - [Manage deploy tokens](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#continuous-delivery)\n> - [Read CRM Contacts](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#team-planning)\n> \n> With custom roles, you can reduce the number of users with the Owner role by creating users with equivalent permissions. This helps you define roles that are tailored specifically to the needs of your group, and prevents unnecessary privilege escalation.\n\n</details>\n\n<details><summary>[Merge request approval policies fail open/closed (Policy editor)](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html#fallback_behavior): <code>Security Policy Management</code></summary>\n\n> Building on the previous [iteration](https://gitlab.com/groups/gitlab-org/-/epics/10816), we are introducing a new option within the policy editor allowing users to toggle security policies to fail open or fail closed. This enhancement extends the YAML support to allow for simpler configuration within the policy editor view.\n> \n> For example, a merge request policy configured to fail open allows a merge request to merge if there is not enough evidence to evaluate the criteria. The lack of evidence might be because an analyzer is not enabled for the project, or the analyzer failed to produce results for the policy to evaluate. This approach allows for progressive rollout of policies as teams work to ensure proper scan execution and enforcement.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![8 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=8&style=flat-square \"New features added to this tier in this release\")\n![638 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=638&style=flat-square \"Total features in this tier\")\n\n<details><summary>[See multiple GitLab Duo Code Suggestions in VS Code](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/supported_extensions.html#view-multiple-code-suggestions): <code>Editor Extensions</code>, <code>Code Suggestions</code></summary>\n\n> GitLab Duo Code Suggestions in VS Code will now show you if there are multiple suggestions available. Simply hover over the suggestion and use the arrows or keyboard shortcut to cycle through the suggestions.\n\n</details>\n\n<details><summary>[New GraphQL API argument `markedForDeletionOn` for groups and projects](https://docs.gitlab.com/ee/api/graphql/reference/index.html#querygroups): <code>Groups & Projects</code></summary>\n\n> You can now use the new GraphQL API argument `markedForDeletionOn` to list the groups or projects that were marked for deletion at a specific date.\n> \n> Thank you [@imskr](https://gitlab.com/imskr) for this community contribution!\n\n</details>\n\n<details><summary>[Filter groups by `marked_for_deletion_on` date with the Groups API](https://docs.gitlab.com/ee/api/groups.html#list-groups): <code>Groups & Projects</code></summary>\n\n> You can now filter responses in the Groups API using the attribute `marked_for_deletion_on`, which returns groups that were marked for deletion at a specific date.\n> \n> Thank you [@imskr](https://gitlab.com/imskr) for this community contribution!\n\n</details>\n\n<details><summary>[Filter projects by `marked_for_deletion_on` date with the Projects API](https://docs.gitlab.com/ee/api/projects.html#list-all-projects): <code>Groups & Projects</code></summary>\n\n> You can now filter responses in the Projects API using the attribute `marked_for_deletion_on`, which returns projects that were marked for deletion at a specific date.\n> \n> Thank you [@imskr](https://gitlab.com/imskr) for this community contribution!\n\n</details>\n\n<details><summary>[Audit event on webhook creation](https://docs.gitlab.com/ee/user/compliance/audit_event_types.html#webhooks): <code>Webhooks</code>, <code>Audit Events</code></summary>\n\n> Audit events make a record of important actions that are performed in GitLab. Until now, no audit event was created when a system, group, or\n> project webhook was added by a user.\n> \n> In this release, we've added an audit event for when a user creates a system, group, or project webhook.\n\n</details>\n\n<details><summary>[Test group hooks with the REST API](https://docs.gitlab.com/ee/api/groups.html#trigger-a-test-group-hook): <code>Webhooks</code></summary>\n\n> Previously, you could test only project hooks with the REST API. With this release, you can also trigger test hooks for specified groups.\n> \n> This endpoint has a special rate limit of three requests per minute per group hook. To disable this limit on self-managed GitLab and GitLab Dedicated, an administrator can disable the `web_hook_test_api_endpoint_rate_limit` feature flag.\n> \n> Thanks to [Phawin](https://gitlab.com/lifez) for [this community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/150486)!\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Understand an epic's progress percentage](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html#view-epic-progress): <code>Portfolio Management</code></summary>\n\n> You can now easily see the overall progress of an epic based on the weight completion of its child items. This new progress rollup in the hierarchy widget makes it easier to understand the full scope of work for an epic and track progress as you go.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[GitLab connector application now available on the Snowflake Marketplace](https://docs.gitlab.com/ee/integration/snowflake.html): <code>Audit Events</code>, <code>Compliance Management</code></summary>\n\n> Audit events are created and stored in GitLab. Before this release, audit events could only be accessed from in GitLab, with results reviewed using the GitLab UI or set a streaming destination to receive all audit events as structured JSON.\n> \n> However, customers also wanted the ability to have audit events in third-party destinations (such as SIEM solutions like Snowflake) to make it easier to:\n> \n> - See, combine, manipulate, and report on all of the audit event data from an organization's multiple systems, including GitLab.\n> - Look only at specific audit events that they care about so that they can quickly answer the questions they are interested in.\n> - Have a full picture of what goes on inside GitLab, and be able to review it after the fact.\n> \n> To help customers with these tasks, we have created a GitLab connector application for the [Snowflake Marketplace](https://app.snowflake.com/marketplace/listing/GZTYZXESENG/gitlab-gitlab-data-connector), which uses the Audit events API.\n> To make use of this functionality, customers must deploy and manage the application using the Snowflake Marketplace.\n\n</details>\n\n\n\n#### Core\n\n![29 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=29&style=flat-square \"New features added to this tier in this release\")\n![2213 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2213&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Omnibus improvements](https://docs.gitlab.com/omnibus/) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> Gitlab 17.1 includes packages for supporting [Ubuntu Noble 24.04](https://docs.gitlab.com/ee/administration/package_information/supported_os.html).\n\n</details>\n\n<details><summary>[New placeholders for group and project badges](https://docs.gitlab.com/ee/user/project/badges.html#placeholders): <code>Groups & Projects</code></summary>\n\n> You can now create badge links and image URLs using four new placeholders:\n> \n> - `%{project_namespace}` - referencing the full path of a project namespace\n> - `%{group_name}` - referencing the group name\n> - `%{gitlab_server}` - referencing the group's or project's server name\n> - `%{gitlab_pages_domain}` - referencing the group's or project's domain name\n> \n> Thank you [@TamsilAmani](https://gitlab.com/TamsilAmani) for this community contribution!\n\n</details>\n\n<details><summary>[New `%{latest_tag}` placeholder for badges](https://docs.gitlab.com/ee/user/project/badges.html#placeholders): <code>Groups & Projects</code></summary>\n\n> You can now create badge links and image URLs using a `%{latest_tag}` placeholder. This placeholder references the latest tag that was published for a repository.\n> \n> Thank you [@TamsilAmani](https://gitlab.com/TamsilAmani) for this community contribution!\n\n</details>\n\n<details><summary>[List contributed projects of a user with GraphQL API](https://docs.gitlab.com/ee/api/graphql/reference/index.html#usercontributedprojects): <code>Groups & Projects</code></summary>\n\n> You can now use the new GraphQL API field `User.contributedProjects` to list the projects a user has contributed to.\n> \n> Thank you [@yasuk](https://gitlab.com/yasuk) for this community contribution!\n\n</details>\n\n<details><summary>[Add members by username with the Members API](https://docs.gitlab.com/ee/api/members.html#add-a-member-to-a-group-or-project): <code>User Management</code>, <code>Groups & Projects</code></summary>\n\n> Previously, when using the Members API, you could add members to groups and projects only by their user ID. With this release, you can now add members also by their username.\n> \n> Thank you [@imskr](https://gitlab.com/imskr) for this community contribution!\n\n</details>\n\n<details><summary>[Updated sorting and filtering functionality in Explore](https://docs.gitlab.com/ee/user/project/working_with_projects.html#search-in-projects): <code>Groups & Projects</code></summary>\n\n> We have updated the sorting and filtering functionality of the group and project Explore pages. The filtering bar is now wider for better readability. \n> \n> In the Explore page for projects, you can now use standardized sorting options that include **Name**, **Created date**, **Updated date**, and **Stars**, and a navigation element to sort in ascending or descending order. The language filter has moved to the filter menu. A new **Inactive** tab displays archived projects for a more focused search. Additionally, you can use a **Role** filter to search for projects you are the Owner of.\n> \n> In the Explore page for groups, we have standardized the sorting options to include **Name**, **Created date**, and **Updated date**, and added a navigation element to sort in ascending or descending order.\n> \n> We welcome feedback about these changes in [issue 438322](https://gitlab.com/gitlab-org/gitlab/-/issues/438322).\n\n</details>\n\n<details><summary>[Improved visibility level selection](https://docs.gitlab.com/ee/user/public_access.html#change-group-visibility): <code>Groups & Projects</code></summary>\n\n> Previously, a group's or project's general settings displayed only permitted visibility levels. This view often confused users who tried to understand why the other options were not available, and could lead to information being displayed incorrectly. The new view shows all visibility levels, greying out the options that are not available for selection. In addition, a popover gives further context about why an option is not available. For example, a visibility level could be unavailable because an administrator restricted it, or it would cause a conflict with a project's or parent group's visibility setting.\n> \n> We hope these changes help you resolve the conflicts in selecting your desired visibility option. Thank you [@gerardo-navarro](https://gitlab.com/gerardo-navarro) for this community contribution!\n\n</details>\n\n<details><summary>[Show Release RSS icon on Releases page](https://docs.gitlab.com/ee/user/project/releases/#track-releases-with-an-rss-feed): <code>Release Orchestration</code></summary>\n\n> Do you need to be notified when a new release is posted? GitLab now provides an RSS feed for releases. You can subscribe to a release feed with the RSS icon on the project release page.\n> \n> Thanks to [Martin Schurz](https://gitlab.com/schurzi) for the contribution!\n\n</details>\n\n<details><summary>[Use REST API to cancel a running direct transfer migration](https://docs.gitlab.com/ee/api/bulk_imports.html#cancel-a-migration): <code>Importers</code></summary>\n\n> Until now cancelling a running direct transfer migration\n> [required access to a Rails console](https://docs.gitlab.com/ee/user/group/import/direct_transfer_migrations.html#cancel-a-running-import).\n> \n> In this release, we've added the ability for Administrators to cancel a migration by using the REST API.\n\n</details>\n\n<details><summary>[Re-import a chosen project relation by using the API](https://docs.gitlab.com/ee/api/project_import_export#import-a-single-relation): <code>Importers</code></summary>\n\n> When importing projects from export files with many items of the same type (for example, merge requests or pipelines), sometimes some of those items aren't imported.\n> \n> In this release, we've added an API endpoint that re-imports a named relation, skipping items that have already been imported. The API requires both:\n> \n> - A project export archive.\n> - A type. Either issues, merge requests, pipelines, or milestones.\n\n</details>\n\n<details><summary>[Keep inherited membership structure when importing by direct transfer](https://docs.gitlab.com/ee/user/group/import/#memberships): <code>Importers</code></summary>\n\n> Until now, [inherited memberships](https://docs.gitlab.com/ee/user/project/members/#inherited-membership) were not imported reliably when migrating\n> by direct transfer. This meant that inherited members of projects were imported as direct members.\n> \n> From this release, GitLab now first migrates group membership before migrating project memberships. This replicates the inherited memberships on\n> the source GitLab instance.\n\n</details>\n\n<details><summary>[Use the REST API to set custom webhook headers](https://docs.gitlab.com/ee/api/projects.html#set-a-custom-header): <code>API</code>, <code>Webhooks</code></summary>\n\n> In GitLab 16.11, we introduced the ability to\n> [add custom headers when you create or edit a webhook](https://about.gitlab.com/releases/2024/04/18/gitlab-16-11-released/#custom-webhook-headers).\n> \n> With this release, you can now use the GitLab REST API to set custom webhook headers.\n> \n> Thanks to [Niklas](https://gitlab.com/Taucher2003) for [this community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/153768)!\n\n</details>\n\n<details><summary>[Backups include external merge request diffs stored on disk](https://docs.gitlab.com/ee/administration/backup_restore/backup_gitlab.html#command-line-interface) <i>(self-managed only)</i>: <code>Backup/Restore of GitLab instances</code></summary>\n\n> The `gitlab-backup` tool now supports backing up [external merge request diffs](https://docs.gitlab.com/ee/administration/merge_request_diffs.html) stored on local disk. Note, the `gitlab-backup` tool does not backup files stored on object storage. Therefore, if external merge diffs are stored on object storage they will need to be backed up manually. \n> \n> The `backup-utility` for Cloud Native Hybrid environments already supported backing up external merge request diffs and this functionality remains unchanged. \n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Improved wiki user experience](https://docs.gitlab.com/ee/user/project/wiki/): <code>Wiki</code></summary>\n\n> The wiki feature in GitLab 17.1 provides a more unified and efficient workflow:\n> \n> - [Easier and quicker cloning](https://gitlab.com/gitlab-org/gitlab/-/issues/281830) with a new repository clone button. This improves collaboration, and speeds up access to the wiki content for editing or viewing. \n> - [A more obvious delete option](https://gitlab.com/gitlab-org/gitlab/-/issues/335169) in a more discoverable location. This reduces the time spent searching for it, and minimizes potential errors or confusion when managing wiki pages. \n> - [Allowing empty pages to be valid](https://gitlab.com/gitlab-org/gitlab/-/issues/221061), improving flexibility. Create empty placeholders when you need them. Focus on better planning and organization of wiki content, and fill in the empty pages later.\n> \n> These enhancements improve ease of use, discoverability, and content management in your wiki's workflow. We want your wiki experience to be efficient and user-friendly. By making cloning repositories more accessible, relocating key options for better visibility, and allowing for the creation of empty placeholders, we're refining our platform to better meet your users' needs.\n\n</details>\n\n<details><summary>[Downscale pasted images on image upload](https://docs.gitlab.com/ee/user/markdown.html#change-the-image-or-video-dimensions): <code>Team Planning</code>, <code>Portfolio Management</code></summary>\n\n> GitLab 17.1 enhances the handling of high-resolution images, enabling them to be downscaled during upload. Previously, images displayed in their original size, resulting in suboptimal display quality. This improvement ensures large images don't break the visual flow of the pages they are included in. \n\n</details>\n\n<details><summary>[Draggable media in the rich text editor](https://docs.gitlab.com/ee/user/rich_text_editor.html): <code>Team Planning</code></summary>\n\n> Previously, moving media in the rich text editor required you to copy and paste each item manually. This often slowed down the inclusion of media in issues, epics, and wikis. In GitLab 17.1, you can now drag and drop media in the rich text editor, significantly enhancing efficiency during editing.\n\n</details>\n\n<details><summary>[Pages support for mutual TLS in GitLab API calls](https://docs.gitlab.com/ee/administration/pages/#support-mutual-tls-when-calling-the-gitlab-api) <i>(self-managed only)</i>: <code>Pages</code></summary>\n\n> GitLab can be configured to [enforce client authentication with SSL certificates](https://docs.gitlab.com/omnibus/settings/ssl/#enable-2-way-ssl-client-authentication). However, the GitLab Pages service was incompatible with that feature, because it couldn't be configured to use client certificates, and calls to the internal API were rejected.\n> \n> From GitLab 17.1, you can configure a client certificate for GitLab Pages. This allows you to enable client authentication with the GitLab API, strengthening the security of your GitLab instance.\n\n</details>\n\n<details><summary>[Redirect wiki pages to new URL when renamed](https://docs.gitlab.com/ee/user/project/wiki/): <code>Wiki</code></summary>\n\n> GitLab 17.1 introduces a significant enhancement to wiki page redirects. When you rename a wiki page, anyone trying to access the old page is automatically redirected to the new page, ensuring all existing links remain functional. This improvement streamlines the workflow for managing page name changes and enhances the overall knowledge management experience.\n\n</details>\n\n<details><summary>[Updated Pages UI](https://docs.gitlab.com/ee/user/project/pages/): <code>Pages</code></summary>\n\n> In GitLab 17.1 we've improved the Pages user interface. Improvements include more efficient use of screen space. These UI improvements are focused on improving user experience and efficiency when managing Pages.\n\n</details>\n\n<details><summary>[Real-time board updates for a smoother workflow](https://docs.gitlab.com/ee/user/project/issue_board.html): <code>Portfolio Management</code></summary>\n\n> You'll now notice a smoother experience when updating issues on [boards](https://docs.gitlab.com/ee/user/project/issue_board.html)! Changes you make in the sidebar will instantly appear on the board itself, no more refreshing required. This reactive boards experience streamlines your workflow, allowing you to quickly make updates while seeing them reflected in real-time.\n\n</details>\n\n<details><summary>[Track time on tasks](https://docs.gitlab.com/ee/user/project/time_tracking.html): <code>Team Planning</code></summary>\n\n> With this release, you can now set time estimates and record time spent on tasks with a [quick action](https://docs.gitlab.com/ee/user/project/quick_actions.html) or in the time tracking widget in the task's sidebar. Time spent on a task can be viewed with the task's time tracking report.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Disable diff previews in code review emails](https://docs.gitlab.com/ee/user/group/manage#disable-diff-previews-in-email-notifications): <code>Code Review Workflow</code></summary>\n\n> When you review code in a merge request and comment on a line of code, GitLab includes a few lines of the diff in the email notification to participants. Some organizational policies treat email as a less secure system, or might not control their own infrastructure for email. This can present risks to IP or access control of source code.\n> \n> New settings are available in groups and projects to enable organizations to remove diff previews from merge request emails. This can help ensure that sensitive information isn't available outside of GitLab.\n> \n> A gigantic thank you to [Joe Snyder](https://gitlab.com/joe-snyder) for contributing this!\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[GitLab Runner Autoscaler is generally available](https://docs.gitlab.com/runner/runner_autoscale/): <code>GitLab Runner Core</code></summary>\n\n> In earlier versions of GitLab, some customers needed an autoscaling solution for GitLab Runner on virtual machine instances on public cloud platforms. These customers had to rely on the legacy [Docker Machine executor](https://docs.gitlab.com/runner/configuration/autoscale.html) or custom solutions stitched together by using cloud provider technologies.\n> \n> Today, we're pleased to announce the general availability of the GitLab Runner Autoscaler. The GitLab Runner Autoscaler is composed of GitLab-developed taskscaler and [fleeting](https://docs.gitlab.com/runner/fleet_scaling/fleeting.html) technologies and the cloud provider plugin for Google Compute Engine.\n\n</details>\n\n<details><summary>[Require confirmation for manual jobs](https://docs.gitlab.com/ee/ci/jobs/job_control.html#add-a-confirmation-dialog-for-manual-jobs): <code>Continuous Integration (CI)</code></summary>\n\n> Manual jobs can be used to trigger highly critical operations in your CI pipeline, such as deploying to production. With this release, you can now configure a manual job to require confirmation before it runs. Use `manual_confirmation` with `when: manual` to display a confirmation dialog in the UI when a job is run manually. Requiring confirmation for manual jobs provides an additional layer of security and control.\n> \n> Special thanks to [Phawin](https://gitlab.com/lifez) for this community contribution!\n\n</details>\n\n<details><summary>[Enhanced control over who can override user-defined variables](https://docs.gitlab.com/ee/ci/variables/#restrict-who-can-override-variables-by-user-minimum-role): <code>Secrets Management</code></summary>\n\n> To better control who can override user-defined variables, we are introducing the `ci_pipeline_variables_minimum_role` project setting. This new setting provides greater flexibility than the existing [`restrict_user_defined_variables`](https://docs.gitlab.com/ee/ci/variables/#restrict-who-can-override-variables) setting. You can now restrict override permissions to no users, or only users with at least the Developer, Maintainer, or Owner roles. \n\n</details>\n\n<details><summary>[GitLab Runner 17.1 released](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> Today we're releasing GitLab Runner 17.1! GitLab Runner is the lightweight, highly scalable agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [GitLab Runner fleeting plugin for GCP Compute Engine](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29221)\n> \n> #### Bug Fixes:\n> \n> - [Runner helper images missing the entry point](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37689)\n> \n> The list of all changes is in the GitLab Runner [change log](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-1-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Administrators can search users by partial email address](https://docs.gitlab.com/ee/administration/admin_area.html#administering-users) <i>(self-managed only)</i>: <code>User Management</code></summary>\n\n> Administrators can now search users by partial email address in the User overview of the Admin Area. For instance, you can filter users by a specific email domain to find all users from a distinct institution. This feature is limited to administrators to prevent unprivileged users from accessing email addresses of other accounts.\n> \n> Thanks [@zzaakiirr](https://gitlab.com/zzaakiirr) for this community contribution!\n\n</details>\n\n<details><summary>[Project Owners receive expiring access token notifications](https://docs.gitlab.com/ee/security/token_overview.html#project-access-tokens): <code>System Access</code></summary>\n\n> Both project Owners and Maintainers with direct membership now receive email notifications when their project access tokens are close to expiring. Previously, only project Maintainers received this notification. This helps keep more people informed about upcoming token expiration.\n> \n> Thank you [Jacob Henner](https://gitlab.com/arcesium-henner) for your contribution!\n\n</details>\n\n\n\n##### [Modelops](https://about.gitlab.com/stages-devops-lifecycle/modelops/)\n\n<details><summary>[Model registry available in beta](https://docs.gitlab.com/ee/user/project/ml/model_registry/): <code>MLOps</code></summary>\n\n> GitLab now officially supports model registry in beta as a first-class concept. You can add and edit models directly via the UI, or use the MLflow integration to use GitLab as a model registry backend.\n> \n> A model registry is a hub that helps data science teams manage machine learning models and their related metadata. It serves as a centralized location for organizations to store, version, document, and discover trained machine learning models. It ensures better collaboration, reproducibility, and governance over the entire model lifecycle.\n> \n> We think of the model registry as a cornerstone concept that enables teams to collaborate, deploy, monitor, and continuously train models, and are very interested in your feedback. Please feel free to drop us a note in our [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/465405) and we'll get back in touch!\n\n</details>\n\n\n","released_at":"2024-06-20T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 17.0","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v17.0.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.0.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v17.0.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.0.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.0.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v17.0.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":4163140,"url":"https://about.gitlab.com/releases/2024/05/16/gitlab-17-0-released/","name":"GitLab 17.0 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/05/16/gitlab-17-0-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.0.0-ee/gitlab-v17.0.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.0.0-ee/gitlab-v17.0.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.0.0-ee/gitlab-v17.0.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v17.0.0-ee/gitlab-v17.0.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"8c75d0bf4a4190d94326f1a854d0a102ceca4392","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/8c75d0bf4a4190d94326f1a854d0a102ceca4392","short_id":"8c75d0bf","trailers":[],"created_at":"2024-05-15T07:57:08.000+00:00","parent_ids":["b8cda559c6f613943174b9acf572b51d8cd643b4"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-05-15T07:57:08.000+00:00","committed_date":"2024-05-15T07:57:08.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v17.0.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v17.0.0-ee","evidences":[],"created_at":"2024-05-16T14:37:14.598Z","milestones":[{"id":2947948,"iid":87,"state":"closed","title":"17.0","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/87","due_date":"2024-05-10","group_id":9970,"created_at":"2023-01-17T08:17:15.095Z","start_date":"2024-04-13","updated_at":"2025-10-22T16:20:50.656Z","description":"","issue_stats":{"total":2317,"closed":2294}}],"commit_path":"/gitlab-org/gitlab/-/commit/8c75d0bf4a4190d94326f1a854d0a102ceca4392","description":"![58 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=58&style=for-the-badge \"New features added in this release\")\n![3425 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3425&style=for-the-badge \"Total features\")\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Introducing hosted runners on Linux Arm](https://docs.gitlab.com/ee/ci/runners/hosted_runners/linux.html) <i>(SaaS only)</i>: <code>GitLab Hosted Runners</code></summary>\n\n> We are excited to introduce hosted runners on Linux Arm for GitLab.com. \n> The now available `medium` and `large` Arm machine types, equipped with 4 and 8 vCPUs respectively, and fully integrated with GitLab CI/CD, will allow you to build and test your application faster and more cost-efficient than ever before.\n> \n> We are determined to provide the industry's fastest CI/CD build speed and look forward to seeing teams achieve even shorter feedback cycles and ultimately deliver software faster.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Customize avatars for users](https://docs.gitlab.com/ee/api/users.html#upload-a-current-user-avatar) <i>(SaaS only)</i>: <code>User Management</code></summary>\n\n> You can now use the API to upload a custom avatar for any user type, including bot users. This can be especially helpful for visually distinguishing bot users, such as group and project access tokens or service accounts, from human users in the UI. \n> Thank you [Phawin](https://gitlab.com/lifez) for your contribution! \n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![18 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=18&style=flat-square \"New features added to this tier in this release\")\n![515 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=515&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Change log for configuration changes made using Switchboard](https://docs.gitlab.com/ee/administration/dedicated/configure_instance/#view-the-configuration-change-log) <i>(self-managed only)</i>: <code>GitLab Dedicated</code>, <code>Switchboard</code></summary>\n\n> You can now view the status of configuration changes made to your GitLab Dedicated instance infrastructure using the Switchboard [configuration page](https://docs.gitlab.com/ee/administration/dedicated/configure_instance/#configure-your-instance-using-switchboard).\n> \n> All users with access to view or edit your tenant in Switchboard will be able to view changes in the Configuration Change log and track their progress as they are applied to your instance.\n> \n> Currently, the Switchboard configuration page and change log are available for changes like managing access to your instance by adding an [IP to the allowlist](https://docs.gitlab.com/ee/administration/dedicated/configure_instance/network_security.html#ip-allowlist) or configuring your instance's [SAML settings](https://docs.gitlab.com/ee/administration/dedicated/configure_instance.html#saml).\n> \n> We will be extending this functionality to enable self-serve updates for additional configurations in [coming quarters](https://about.gitlab.com/releases/whats-new/#whats-coming).\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[AI Impact analytics in the Value Streams Dashboard](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#ai-impact-analytics): <code>Value Stream Management</code>, <code>Code Suggestions</code></summary>\n\n> AI Impact is a dashboard available in the Value Streams Dashboard that helps organizations understand the [impact of GitLab Duo on their productivity](https://about.gitlab.com/blog/measuring-ai-effectiveness-beyond-developer-productivity-metrics/).\n> This new month-over-month metric view compares the AI Usage trends with SDLC metrics like lead time, cycle time, DORA, and vulnerabilities. Software leaders can use the AI Impact dashboard to measure how much time is saved in their end-to-end workstream, while staying focused on business outcomes rather than developer activity.\n> \n> In this first release, the AI usage is measured as the monthly [Code Suggestions](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/) usage rate, and is calculated as the number of monthly unique Code Suggestions users divided by total monthly unique [contributors](https://docs.gitlab.com/ee/user/group/contribution_analytics/). \n> \n> The AI Impact dashboard is available to users on the Ultimate tier for a limited time. Afterwards, a GitLab Duo Enterprise license will be required to use the dashboard.\n\n</details>\n\n<details><summary>[New usage overview panel in the Value Streams Dashboard](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#overview-panel): <code>Value Stream Management</code></summary>\n\n> We enhanced the Value Streams Dashboard with an Overview panel. This new visualization addresses the need for executive-level insights into software delivery performance, and gives a clear picture of GitLab usage in the context of software development lifecycle (SDLC).\n> \n> The Overview panel displays metrics for the group level, such as number of (sub)groups, projects, users, issues, merge requests, and pipelines.\n\n</details>\n\n<details><summary>[New median time to merge metric in Value Streams Dashboard](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#dashboard-metrics-and-drill-down-reports): <code>Value Stream Management</code></summary>\n\n> We added a new metric to the Value Streams Dashboard: median time to merge. In GitLab, this metric represents the median time between when a merge request was created and when it was merged. This new metric measures DevOps health by identifying the efficiency and productivity of your merge request and code review processes.\n> \n> By analyzing how this metric evolves in the [context of other SDLC metrics](https://www.youtube.com/watch?v=yNZRac7gyYo), teams can identify low or high productivity months, understand the impact of new DevOps practices on the development speed and delivery process, reduce their overall lead time, and increase the velocity of their software delivery.\n\n</details>\n\n<details><summary>[Simplified configuration file schema for Value Streams Dashboard](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#customize-the-dashboard-panels): <code>Value Stream Management</code></summary>\n\n> You can now customize Value Streams Dashboard panels using a simplified schema-driven customizable UI framework. In the new format, the fields provide more flexibility of displaying the data and laying out the dashboard panels. With the new framework, administrators can track changes to the dashboard over time. This version history can help you revert to previous versions and compare changes between dashboard versions.\n> \n> Using this customization, decision-makers can focus on the most relevant information for their business, while teams can better organize and display key DevSecOps metrics.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[API Security Testing analyzer updates](https://docs.gitlab.com/ee/user/application_security/api_security_testing/): <code>API Security</code></summary>\n\n> We published the following API Security Testing analyzer updates during the 17.0 release milestone:\n> - System environment variables are now passed from the CI runner to the custom Python scripts used for certain advanced scenarios (like request signing). This will make implementing these scenarios easier. See [issue 457795](https://gitlab.com/gitlab-org/gitlab/-/issues/457795) for more details.\n> - API Security containers now run as a non-root user, which improves flexibility and compliance. See [issue 287702](https://gitlab.com/gitlab-org/gitlab/-/issues/287702) for more details.\n> - Support for servers that only offer TLSv1.3 ciphers, which enables more customers to adopt API Security Testing. See [issue 441470](https://gitlab.com/gitlab-org/gitlab/-/issues/441470) for more details.\n> - Upgrade to Alpine 3.19, which addresses security vulnerabilities. See [issue 456572](https://gitlab.com/gitlab-org/gitlab/-/issues/456572) for more details.\n> \n> As [previously announced](https://docs.gitlab.com/ee/update/deprecations.html#secure-analyzers-major-version-update), [we increased the major version number of API Security Testing to version 5](https://gitlab.com/gitlab-org/gitlab/-/issues/456874) in GitLab 17.0.\n\n</details>\n\n<details><summary>[Dependency Scanning support for Android](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html#enabling-dependency-scanning-by-using-cicd-components): <code>Software Composition Analysis</code></summary>\n\n> Users of Dependency Scanning can now scan Android projects. To configure Android scanning, use the [CI/CD Catalog component](https://gitlab.com/explore/catalog/components/android-dependency-scanning). Android scanning is also supported for users of the [CI/CD template](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#enabling-the-analyzer-by-using-the-cicd-template).\n\n</details>\n\n<details><summary>[Dependency Scanning default Python image](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html#supported-languages-and-package-managers): <code>Software Composition Analysis</code></summary>\n\n> Following the deprecation of Python 3.9 as the default Python image, Python 3.11 is now the default image. \n> \n> As outlined in the [deprecation notice](https://docs.gitlab.com/ee/update/deprecations.html?removal_milestone=17.0#deprecate-python-39-in-dependency-scanning-and-license-scanning), the target for the new default Python version was 3.10. The direct move to Python 3.11 was required to ensure FIPS compliance.\n\n</details>\n\n<details><summary>[DAST now supports both arm64 and amd64 architectures by default](https://docs.gitlab.com/ee/user/application_security/dast/index.html): <code>DAST</code></summary>\n\n> DAST 5 supports both arm64 and amd64 architectures by default. This enables customers to choose the Runner host architecture and optimize cost savings.\n</details>\n\n<details><summary>[Secret Detection now supports remote rulesets when overriding or disabling rules](https://docs.gitlab.com/ee/user/application_security/secret_detection/pipeline/index.html#specify-a-remote-configuration-file): <code>Secret Detection</code></summary>\n\n> We resolved a Secret Detection bug that impacted remote rulesets. It's now possible to override or disable rules via remote rulesets. Remote rulesets offer a scalable way to configure rules in a single place, which can be applied across multiple projects.\n\n</details>\n\n<details><summary>[Introducing advanced vulnerability tracking for Secret Detection](https://docs.gitlab.com/ee/user/application_security/secret_detection/pipeline/#advanced-vulnerability-tracking): <code>Secret Detection</code></summary>\n\n> Secret Detection now uses an advanced vulnerability tracking algorithm to more accurately identify when the same secret has moved within a file due to refactoring or unrelated changes. A new finding is no longer created if:\n> \n> - A leak moves within a file.\n> - A new leak of the same value appears within the same file.\n> \n> Otherwise, the existing workflow (merge request widget, pipeline report, and vulnerability report) will treat the findings the same as before. By ensuring that duplicate vulnerabilities are not reported as secrets shift locations, teams are more easily able to manage leaked secrets.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Edit a custom role and its permissions](https://docs.gitlab.com/ee/user/custom_roles.html#edit-a-custom-role): <code>Permissions</code></summary>\n\n> Previously, you could not edit an existing custom role and its permissions. Now, you can edit a custom role and its permissions without having to re-create the role to make a change.\n\n</details>\n\n<details><summary>[New permissions for custom roles](https://docs.gitlab.com/ee/user/custom_roles.html): <code>Permissions</code></summary>\n\n> There are new permissions available you can use to create custom roles:\n> \n> - [Assign security policy links](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#security-policy-management)\n> - [Manage and assign compliance frameworks](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#compliance-management)\n> - [Manage webhooks](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#webhooks)\n> - [Manage push rules](https://docs.gitlab.com/ee/user/custom_roles/abilities.html#source-code-management)\n> \n> With the release of these custom permissions, you can reduce the number of Owners needed in a group by creating a custom role with these Owner-equivalent permissions. Custom roles allow you to define granular roles that give a user only the permissions they need to do their jobs, and reduce unnecessary privilege escalation.\n\n</details>\n\n<details><summary>[Manage custom roles at self-managed instance level](https://docs.gitlab.com/ee/user/custom_roles.html) <i>(self-managed only)</i>: <code>Permissions</code></summary>\n\n> Before this release, on self-managed GitLab, custom roles had to be created at the group level. This meant administrators could not centrally manage custom roles for the instance, which resulted in duplicate roles across the instance. Now custom roles are managed at the self-managed instance level. Only administrators can create custom roles, but both administrators and group Owners can assign these custom roles. \n> \n> For more information on migrating existing custom roles, API endpoints, and workflows, see [epic 11851](https://gitlab.com/groups/gitlab-org/-/epics/11851).\n> \n> This update does not impact custom role workflows on GitLab.com.\n\n</details>\n\n<details><summary>[UX improvements to custom roles](https://docs.gitlab.com/ee/user/custom_roles.html): <code>Permissions</code></summary>\n\n> A series of improvements have been made to the user experience for custom roles, specifically:\n> \n> - [A new page opens when creating a new custom role](https://gitlab.com/gitlab-org/gitlab/-/issues/393238).\n> - [Improved design for the custom role table](https://gitlab.com/gitlab-org/gitlab/-/issues/437592).\n> - [Improved design for the delete custom role dialog](https://gitlab.com/gitlab-org/gitlab/-/issues/434431).\n> - [Precheck permissions of the base role](https://gitlab.com/gitlab-org/gitlab/-/issues/430915).\n\n</details>\n\n<details><summary>[Optional configuration for policy bot comment](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html#send_bot_message-action-type): <code>Security Policy Management</code></summary>\n\n> The security policy bot posts a comment on merge requests when they violate a policy to help users understand when policies are enforced on their project, when evaluation is completed, and if there are any violations blocking an MR, with guidance to resolve them. These comments are now optional and can be enabled or disabled within each policy. This gives organizations the flexibility and control to determine how they want to communicate about these policies to their users.\n\n</details>\n\n<details><summary>[Updated filtering on the Vulnerability Report](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/#vulnerability-report-filters): <code>Vulnerability Management</code></summary>\n\n> The old implementation of the Vulnerability Report filters wasn't scalable.\n> We were limited by horizontal space on the page. You can now use the filtered\n> search component to filter the Vulnerability Report by any combination of\n> status, severity, tool, or activity. This change allows us to add new filters,\n> like this proposed [filter by identifier](https://gitlab.com/groups/gitlab-org/-/epics/13340).\n\n</details>\n\n<details><summary>[Toggle merge request approval policies to fail open or fail closed](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html#fallback_behavior): <code>Security Policy Management</code></summary>\n\n> Compliance operates on a sliding scale for many organizations as they strike a balance between meeting requirements and ensuring developer velocity is not impacted. Merge request approval policies help to operationalize security and compliance in the heart of the DevSecOps workflow - the merge request. We're introducing a new `fail open` option for merge request approval policies to offer flexibility to teams who want to ease the transition to policy enforcement as they roll out controls in their organization.\n> \n> When a merge request approval policy is configured to fail open, MRs will now only be blocked if a policy rule is violated **and** if that project has the security analyzer properly configured. If an analyzer is not enabled for a project or if the analyzer does not successfully produce results, the policy will no longer consider this a violation for the given rule and analyzer. This approach allows for progressive rollout of policies as teams work to ensure proper scan execution and enforcement.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![12 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=12&style=flat-square \"New features added to this tier in this release\")\n![630 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=630&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Introducing deployment detail pages](https://docs.gitlab.com/ee/ci/environments/deployment_approvals.html#approve-or-reject-a-deployment): <code>Release Orchestration</code>, <code>Environment Management</code></summary>\n\n> You can now link directly to a deployment in GitLab. Previously, if you were collaborating on a deployment, you had to look up the deployment from the deployment list. Because of the number of deployments listed, finding the correct deployment was difficult and prone to error.\n> \n> From 17.0, GitLab offers a deployment details view that you can link to directly. In this first version, the deployment details page offers an overview of the deployment job and the possibility to approve, reject, or comment on a deployment in a continuous delivery setting. We are looking into further avenues to enhance the deployment details page, including by linking to it from the related pipeline job. We would love to hear your feedback in [issue 450700](https://gitlab.com/gitlab-org/gitlab/-/issues/450700).\n\n</details>\n\n<details><summary>[GitLab Duo Chat now uses Anthropic Claude 3 Sonnet](https://docs.gitlab.com/ee/user/gitlab_duo_chat/index.html): <code>Duo Chat</code></summary>\n\n> GitLab Duo Chat just got a lot better. It now uses Anthropic Claude 3 Sonnet as the base model, replacing Claude 2.1 for answering most questions.\n> \n> At GitLab, we apply a test-driven approach when choosing the best model for a set of tasks and authoring well-performing prompts. With recent adjustments to the chat prompts, we have achieved significant improvements in the correctness, comprehensiveness, and readability of chat answers based on Claude 3 Sonnet compared to the previous chat version built on Claude 2.1. Hence, we have now switched to this new model version.\n\n</details>\n\n<details><summary>[How-to questions in GitLab Duo Chat supported on self-managed deployments](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#ask-about-gitlab): <code>Duo Chat</code></summary>\n\n> A popular capability of GitLab Duo Chat is answering questions about how to use GitLab. While Chat offers various other capabilities, this particular functionality was previously only available on GitLab.com. With this release, we're making it accessible to GitLab self-managed deployments as well, aligning with our commitment to delivering a delightful experience across all types of deployments.\n> \n> Whether you're a newcomer or an expert, you can ask Chat for help with queries like \"How do I change my password in GitLab?\" or \"How do I connect a Kubernetes cluster to GitLab?\". Chat aims to provide helpful information to solve your problems more efficiently.\n\n</details>\n\n<details><summary>[View issues from multiple Jira projects in GitLab](https://docs.gitlab.com/ee/integration/jira/configure.html#view-jira-issues): <code>Integrations</code></summary>\n\n> For larger repositories, you can now view issues from multiple Jira projects in GitLab when you set up the Jira issue integration. With this release, you can:\n> \n> - Enter up to 100 Jira project keys separated by commas.\n> - Leave **Jira project keys** blank to include all available keys.\n> \n> When you view Jira issues in GitLab, you can [filter the issues](https://docs.gitlab.com/ee/integration/jira/configure.html#filter-jira-issues) by project.\n> \n> To [create Jira issues for vulnerabilities](https://docs.gitlab.com/ee/integration/jira/configure.html#create-a-jira-issue-for-a-vulnerability) in GitLab Ultimate, you can specify only one Jira project.\n\n</details>\n\n<details><summary>[Enable viewing Jira issues in GitLab with the REST API](https://docs.gitlab.com/ee/api/integrations.html#jira): <code>API</code>, <code>Integrations</code></summary>\n\n> With this release, you can use the REST API to enable [viewing Jira issues](https://docs.gitlab.com/ee/integration/jira/configure.html#view-jira-issues) in GitLab. You can also specify one or more Jira projects to view issues from.\n> \n> Thanks to [Ivan](https://gitlab.com/ivantedja) for [this community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/150209)!\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Enhanced epic deletion protection](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html#delete-an-epic): <code>Portfolio Management</code></summary>\n\n> We've updated what happens when you delete an epic to better safeguard your project's structure and data. It's all about giving you more control and peace of mind while managing your projects.\n> \n> Now, when you delete a parent epic, instead of deleting all its child records automatically, we preserve them by detaching the parent relationship first. This change provides you with a safer way to manage your epics, ensuring accidental deletions don't result in losing valuable information.\n\n</details>\n\n<details><summary>[Sort the Roadmap by created date, last updated date, and title](https://docs.gitlab.com/ee/user/group/roadmap/#sort-and-filter-the-roadmap): <code>Portfolio Management</code></summary>\n\n> We expanded the epic sorting options available in the Roadmap view, providing you more flexibility in organizing and prioritizing your projects. You can now sort epics by **created date**, **last updated date**, and **title**. This enhancement lays the groundwork for even more advanced sorting capabilities in the future to help you manage epics more dynamically.\n\n</details>\n\n<details><summary>[Guests in groups can link issues](https://docs.gitlab.com/ee/user/permissions.html): <code>Portfolio Management</code></summary>\n\n> We reduced the minimum role required to relate issues and tasks from Reporter to Guest, giving you more flexibility to organize work across your GitLab instance while maintaining [permissions](https://docs.gitlab.com/ee/user/permissions.html).\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[1Password secrets integration in GitLab Duo Plugin for JetBrains IDEs](https://docs.gitlab.com/ee/editor_extensions/jetbrains_ide/index.html#integrate-with-1password-cli): <code>Editor Extensions</code></summary>\n\n> You can now integrate 1Password secrets management with the GitLab Duo plugin for JetBrains.\n> \n> Developers can replace their personal access tokens in their JetBrains IDE settings with 1Password secrets references. This simplifies managing secrets, and enables seamless secrets rotation without manual token updates.\n\n</details>\n\n<details><summary>[Access GitLab Duo Chat faster with customizable shortcuts](https://docs.gitlab.com/ee/editor_extensions/jetbrains_ide/index.html): <code>Editor Extensions</code>, <code>Duo Chat</code></summary>\n\n> Opening Duo Chat directly from your editor in JetBrains is now even easier. \n> \n> Use the default <kbd>Alt</kbd>+<kbd>D</kbd> keyboard shortcut (or set your own) to open Duo Chat quickly and type your question. Use the same keyboard shortcut to close the window.\n\n</details>\n\n<details><summary>[Project comment templates](https://docs.gitlab.com/ee/user/profile/comment_templates.html#for-a-project): <code>Code Review Workflow</code>, <code>Team Planning</code></summary>\n\n> Following the release of [group comment templates in GitLab 16.11](https://about.gitlab.com/releases/2024/04/18/gitlab-16-11-released/#group-comment-templates), we're bringing these to projects in GitLab 17.0.\n> \n> Across an organization, it can be helpful to have the same templated response in issues, epics, and merge requests. These responses might include standard questions that need to be answered, responses to common problems, or good structure for merge request review comments. Project-level comment templates give you an additional way to scope the availability of templates, bringing organizations more control and flexibility in sharing these across users.\n> \n> To create a comment template, go to any comment box on GitLab and select **Insert comment template > Manage project comment templates**. After you create a comment template, it's available for all project members. Select the **Insert comment template** icon while making a comment, and your saved response will be applied.\n> \n> We're really excited about this iteration of comment templates and if you have any feedback, please leave it in [issue 451520](https://gitlab.com/gitlab-org/gitlab/-/issues/451520).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Improved branch protection settings for administrators and for groups](https://docs.gitlab.com/ee/user/project/repository/branches/default.html#instance-level-default-branch-protection): <code>Compliance Management</code></summary>\n\n> Previously, setting up default branch protection options did not allow for the same level of configuration that the settings for protected branches did.\n> \n> In this release, we have updated the default branch protection settings to provide the same experience that you have with protected branches.\n> This allows more flexibility in protecting your default branch and simplifies the process to match what already exists in the protected branch settings.\n\n</details>\n\n\n\n#### Core\n\n![26 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=26&style=flat-square \"New features added to this tier in this release\")\n![2184 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2184&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab chart improvements](https://docs.gitlab.com/charts/) <i>(self-managed only)</i>: <code>Cloud Native Installation</code></summary>\n\n> The [GitLab Operator](https://docs.gitlab.com/operator/) is now available for production use for cloud-native hybrid installations. See the [installation documentation](https://docs.gitlab.com/operator/installation.html) before adopting the GitLab Operator.\n> \n> Support for a fallback to BusyBox images when you specify custom BusyBox values (`global.busybox`) is removed. Support for BusyBox-based init containers was deprecated in GitLab 16.2 (Helm chart 7.2) in favor of a common GitLab-based init image.\n> \n> Support for `gitlab.kas.privateApi.tls.enabled` and `gitlab.kas.privateApi.tls.secretName` is also removed. You must use `global.kas.tls.enabled` and `global.kas.tls.secretName` instead.\n> \n> The deprecated queue selector and negate options are removed from the Sidekiq chart.\n\n</details>\n\n<details><summary>[Linux package improvements](https://docs.gitlab.com/omnibus/) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> CentOS Linux 7 will reach [end of life](https://www.redhat.com/en/topics/linux/centos-linux-eol) on June 30, 2024. This makes GitLab 17.6 the last GitLab version in which we can provide packages for CentOS 7.\n\n</details>\n\n<details><summary>[Two database mode is available in Beta](https://docs.gitlab.com/ee/administration/postgresql/multiple_databases.html#migrate-existing-installations-using-a-script) <i>(self-managed only)</i>: <code>Cell</code></summary>\n\n> Currently, most self-managed customers only utilize a single database.\n> In order to ensure that the setup between GitLab.com and self-managed is the same, we ask self-managed customers to migrate and run two databases by default.\n> In 16.0, two database connections became the default for self-managed installations.\n> In 17.0, we [release two database mode as a limited Beta](https://docs.gitlab.com/ee/administration/postgresql/multiple_databases.html), with the goal to make running decomposed generally available by 19.0.\n> Migration to two databases remains optional in 17.0, but needs to be performed before upgrading to 19.0.\n> \n> The migration requires downtime.\n> Self-managed customers can use a [tool](https://gitlab.com/gitlab-org/gitlab/-/issues/368729) that executes this migration with some downtime.\n> We introduced a new `gitlab-ctl` command that allows you to upgrade your single-database GitLab instances to a decomposed setup.\n> This setup contains commands that will work with our Linux package.\n> The [actual migration](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/135585) (copying the database) is part of a rake task in the GitLab project.\n\n</details>\n\n<details><summary>[Private shared group members are listed on Members tab for all members](https://docs.gitlab.com/ee/user/project/members/sharing_projects_groups.html): <code>Groups & Projects</code></summary>\n\n> Previously, when a public group or project invited a private group, the private group was listed only in the Groups tab of the Members page, and private members were not visible to members of the public group. To enable better collaboration between members of these groups, we are now also listing all invited group members in the Members tab, including members from private invited groups. The source of membership will be masked from members that do not have access to the private group. However, the source of membership will be visible to users who have at least the Maintainer role in the project or Owner role in the group, so that they can manage members in their project or group. If the current user viewing the Members tab is unauthenticated or not a member of the group or project, they will not see the private group members. We hope this change will make it easier for group and project members to understand at a glance who has access to a group or project.\n\n</details>\n\n<details><summary>[Members page displays members from invited groups](https://docs.gitlab.com/ee/user/project/members/#add-groups-to-a-project): <code>Groups & Projects</code></summary>\n\n> Previously, members of groups that were invited to a group or project were visible only in the Groups tab of the Members page. This meant users had to check both the Groups and Members tabs to understand who has access to a certain group or project. Now, shared members are listed also in the Members tab, giving a complete overview of all the members that are part of a group or project at a glance.\n\n</details>\n\n<details><summary>[Increase Kubernetes agent authorization limit](https://docs.gitlab.com/ee/user/clusters/agent/): <code>Continuous Delivery</code></summary>\n\n> With the GitLab agent for Kubernetes, you can share a single agent connection with a group. We aim to support a single agent across a large multi-tenant cluster. However, you might have faced a limitation on the number of connection sharing. Until now, an agent could be shared with only 100 projects and groups using [CI/CD](https://docs.gitlab.com/ee/user/clusters/agent/ci_cd_workflow.html), and 100 projects and groups using the [`user_access`](https://docs.gitlab.com/ee/user/clusters/agent/user_access.html) keyword. In GitLab 17.0, the number of projects and groups you can share with is raised to 500.\n> \n> If you need to run multiple agents in a cluster, we would like to hear your feedback in [issue 454110](https://gitlab.com/gitlab-org/gitlab/-/issues/454110).\n\n</details>\n\n<details><summary>[Support for GitLab agent for Kubernetes in FIPS mode](https://docs.gitlab.com/ee/administration/clusters/kas.html) <i>(self-managed only)</i>: <code>Continuous Delivery</code></summary>\n\n> From GitLab 17.0, you can install GitLab in FIPS mode with the agent for Kubernetes components enabled. Now, FIPS-compliant users can benefit from all the [Kubernetes integrations with GitLab](https://docs.gitlab.com/ee/user/clusters/agent/).\n\n</details>\n\n<details><summary>[Track fast-forward merge requests in deployments](https://docs.gitlab.com/ee/ci/environments/#track-newly-included-merge-requests-per-deployment): <code>Continuous Delivery</code></summary>\n\n> In past releases, merge requests were tracked in a deployment only if the project's merge method was **Merge commit** or **Merge commit with semi-linear history**. From GitLab 17.0, merge requests are tracked in deployments, including in projects with the merge method **Fast-forward merge**.\n\n</details>\n\n<details><summary>[Import from Bitbucket Cloud by using REST API](https://docs.gitlab.com/ee/api/import.html#import-repository-from-bitbucket-cloud): <code>Importers</code></summary>\n\n> In this milestone, we added the ability to import Bitbucket Cloud projects by using the REST API.\n> \n> This can be a better solution for importing a lot of projects than importing by using the UI.\n\n</details>\n\n<details><summary>[Re-import a chosen project relation by using the API](https://docs.gitlab.com/ee/api/project_import_export#import-a-single-relation): <code>Importers</code></summary>\n\n> When importing projects from export files with many items of the same type (for example, merge requests or pipelines), sometimes some of those items weren't imported.\n> \n> In this release, we added an API endpoint that re-imports a named relation, skipping items that have already been imported. The API requires both:\n> \n> - A project export archive. \n> - A type (issues, merge requests, pipelines, or milestones).\n\n</details>\n\n<details><summary>[Indicate that items were imported using direct transfer](https://docs.gitlab.com/ee/user/group/import/#review-results-of-the-import): <code>Importers</code></summary>\n\n> You can migrate GitLab groups and projects between GitLab instances [by using direct transfer](https://docs.gitlab.com/ee/user/group/import/).\n> \n> Until now, imported items were not easily identifiable. With this release, we've added visual indicators to items imported with direct transfer, where the creator is identified as a specific user:\n> \n> - Notes (system notes and user comments)\n> - Issues\n> - Merge requests\n> - Epics\n> - Designs\n> - Snippets\n> - User profile activity\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Design Management features extended to Product teams](https://docs.gitlab.com/ee/user/project/issues/design_management.html): <code>Design Management</code></summary>\n\n> GitLab is expanding collaboration by updating our permissions. Now, users with the Reporter role can access Design Management features, enabling product teams to engage more directly in the design process. This change simplifies workflows and accelerates innovation by inviting broader participation from across your organization.\n\n</details>\n\n<details><summary>[Milestones and iterations visible on issue boards](https://docs.gitlab.com/ee/user/project/issue_board.html): <code>Team Planning</code></summary>\n\n> We've improved issue boards to offer you clearer insights into your project's timeline and phases. Now, with milestone and iteration details directly visible on issue cards, you can easily track progress and adjust your team's workload on the fly. This enhancement is designed to make your planning and execution more efficient, keeping you in the loop and ahead of schedule.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Commit signing for GitLab UI commits](https://docs.gitlab.com/ee/administration/gitaly/configure_gitaly.html#configure-commit-signing-for-gitlab-ui-commits) <i>(self-managed only)</i>: <code>Source Code Management</code></summary>\n\n> Previously, web commits and automated commits made by GitLab could not be signed. Now you can configure your self-managed instance with a signing key, a committer name, and email address to sign web and automated commits.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[CI/CD Catalog with components and inputs now generally available](https://docs.gitlab.com/ee/ci/components/#cicd-catalog): <code>Pipeline Composition</code></summary>\n\n> The CI/CD Catalog is now generally available. As part of this release, we're also making [CI/CD components](https://docs.gitlab.com/ee/ci/components/) and [inputs](https://docs.gitlab.com/ee/ci/yaml/inputs.html) generally available.\n> \n> With the CI/CD Catalog, you gain access to a vast array of components created by the community and industry experts.\n> Whether you're seeking solutions for continuous integration, deployment pipelines, or automation tasks, you'll find a diverse selection of components tailored to suit your requirements.\n> You can read more about the Catalog and its features in the following [blog post](https://about.gitlab.com/blog/ci-cd-catalog-goes-ga-no-more-building-pipelines-from-scratch/).\n> \n> You're invited to contribute CI/CD components to the Catalog and help expand this new and growing part of GitLab.com!\n\n</details>\n\n<details><summary>[Add a group to the CI/CD job token allowlist](https://docs.gitlab.com/ee/ci/jobs/ci_job_token.html#control-job-token-access-to-your-project): <code>Secrets Management</code></summary>\n\n> Introduced in GitLab 15.9, the CI/CD job token allowlist prevents unauthorized access from other projects to your project. Previously, you could allow access at the project level from other specific projects only, with a maximum limit of 200 total projects. \n> \n> In GitLab 17.0, you can now add groups to a project's CI/CD job token allowlist. The maximum limit of 200 now applies to both projects and groups, meaning a project allowlist can now have up to 200 projects and groups authorized for access. This improvement makes it easier to add large numbers of projects associated with a group. \n\n</details>\n\n<details><summary>[Enhanced context control with the `rules:exists` CI/CD keyword](https://docs.gitlab.com/ee/ci/yaml/#rulesexistsproject): <code>Pipeline Composition</code></summary>\n\n> The `rules:exists` CI/CD keyword has default behaviors that vary based on where the keyword is defined, which can make it harder to use with more complex pipelines. When defined in a job, `rules:exists` searches for specified files in the project running the pipeline. However, when defined in an `include` section, `rules:exists` searches for specified files in the project hosting the configuration file containing the `include` section. If configuration is split over multiple files and projects, it can be hard to know which exact project will be searched for defined files.\n> \n> In this release, we have introduced `project` and `ref` subkeys to `rules:exists`, providing you a way to explicitly control the search context for this keyword. These new subkeys help you ensure accurate rule evaluation by precisely specifying the search context, mitigating inconsistencies, and enhancing clarity in your pipeline rule definitions.\n\n</details>\n\n<details><summary>[Semantic version ranges for published CI/CD components](https://docs.gitlab.com/ee/ci/components/#semantic-versioning): <code>Pipeline Composition</code></summary>\n\n> When using a CI/CD Catalog component, you might want to have it automatically use the latest version. For example, you don't want to have to manually monitor all the components you use and manually switch to the next version every time there is a minor update or security patch. But using `~latest` is also a bit risky because minor version updates could have undesired behavior changes, and major version updates have a higher risk of breaking changes.\n> \n> With this release, you can opt to use the latest major or minor version of a CI/CD component. For example, specify `2` for the component version, and you'll get all updates for that major version, like `2.1.1`, `2.1.2`, `2.2.0`, but not `3.0.0`. Specify `2.1` and you'll only get patch updates for that minor version, like `2.1.1`, `2.1.2`, but not `2.2.0`.\n\n</details>\n\n<details><summary>[Standardized CI/CD Catalog component publishing process](https://docs.gitlab.com/ee/ci/components/#publish-a-new-release): <code>Pipeline Composition</code></summary>\n\n> We have been hard at work on CI/CD components, including making the process of releasing components to the CI/CD Catalog a consistent experience. As part of that work, we've made releasing versions from a CI/CD job with the [`release` keyword](https://docs.gitlab.com/ee/ci/yaml/index.html#release) and the `release-cli` image the only method. All improvements to the release process will apply to this method only. To avoid breaking changes introduced by this restriction, make sure you always use the latest version of the image (`release-cli:latest`) or at least a version greater than `v0.17`. The [**Releases** option in the UI](https://docs.gitlab.com/ee/user/project/releases/#create-a-release-in-the-releases-page) is now disabled for CI/CD component projects.\n\n</details>\n\n<details><summary>[Always run `after_script` commands for canceled jobs](https://docs.gitlab.com/ee/ci/yaml/script/#run-after_script-on-cancel): <code>Continuous Integration (CI)</code></summary>\n\n> The [`after_script`](https://docs.gitlab.com/ee/ci/yaml/#after_script) CI/CD keyword is used to run additional commands after the main `script` section of a job. This is often used for cleaning up environments or other resources that were used by the job. However, `after_script` commands did not run if a job was canceled.\n> \n> As of GitLab 17.0, `after_script` commands will always run when a job is canceled. To opt out, see the [documentation](https://docs.gitlab.com/ee/ci/yaml/script/#run-after_script-on-cancel).\n\n</details>\n\n<details><summary>[GitLab Runner 17.0](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 17.0 today! GitLab Runner is the lightweight, highly-scalable agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [Documentation for installing the Runner Operator in disconnected network environments](https://gitlab.com/gitlab-org/gl-openshift/gitlab-runner-operator/-/issues/123)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/17-0-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Filter package registry UI for packages with errors](https://docs.gitlab.com/ee/user/packages/package_registry/#view-packages): <code>Package Registry</code></summary>\n\n> You can use the GitLab package registry to publish and download packages. Sometimes, packages fail to upload due to an error. Previously, there was no way to quickly view packages that failed to upload. This made it challenging to get a holistic view of your organization's package registry.\n> \n> Now you can filter the package registry UI for packages that failed to upload. This improvement makes it easier to investigate and resolve any issues you encounter.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Streamlined SAST analyzer coverage for more languages](https://docs.gitlab.com/ee/user/application_security/sast/#supported-languages-and-frameworks): <code>SAST</code></summary>\n\n> GitLab Static Application Security Testing (SAST) now scans the same [languages](https://docs.gitlab.com/ee/user/application_security/sast/#supported-languages-and-frameworks) with fewer [analyzers](https://docs.gitlab.com/ee/user/application_security/sast/analyzers/), offering a simpler, more customizable scan experience.\n> \n> In GitLab 17.0, we've replaced language-specific analyzers with [GitLab-managed rules](https://docs.gitlab.com/ee/user/application_security/sast/rules.html) in the [Semgrep-based analyzer](https://gitlab.com/gitlab-org/security-products/analyzers/semgrep) for the following languages:\n> \n> - Android\n> - C and C++\n> - iOS\n> - Kotlin\n> - Node.js\n> - PHP\n> - Ruby\n> \n> As [announced](https://docs.gitlab.com/ee/update/deprecations.html#sast-analyzer-coverage-changing-in-gitlab-170), we've updated the [SAST CI/CD template](https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Jobs/SAST.gitlab-ci.yml) to reflect the new scanning coverage and to remove language-specific analyzer jobs that are no longer used.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Identify sessions initiated by Admin Mode](https://docs.gitlab.com/ee/administration/settings/sign_in_restrictions#check-if-your-session-has-admin-mode-enabled) <i>(self-managed only)</i>: <code>User Management</code></summary>\n\n> As an instance administrator, when you use multiple browsers or different computers, it is difficult to know which sessions are in Admin Mode and which aren't. Now, administrators can go to **User Settings > Active Sessions** to identify which sessions use Admin Mode.\n> \n> Thank you [Roger Meier](https://gitlab.com/bufferoverflow) for your contribution! \n\n</details>\n\n<details><summary>[Automatic deletion of unverified secondary email addresses](https://docs.gitlab.com/ee/user/profile/#delete-emails-from-your-user-profile): <code>User Management</code></summary>\n\n> If you add a secondary email address to your user profile and do not verify it, that email address is now automatically deleted after three days. Previously, these email addresses were in a reserved state and could not be released without manual intervention. This automatic deletion reduces administrator overhead and prevents users from reserving email addresses that they do not have ownership of.\n\n</details>\n\n\n\n##### [Monitor](https://about.gitlab.com/stages-devops-lifecycle/monitor/)\n\n<details><summary>[Multiple external participants for Service Desk](https://docs.gitlab.com/ee/user/project/service_desk/external_participants.html): <code>Service Desk</code></summary>\n\n> Sometimes there is more than one person involved in resolving a support ticket or\n> the requester wants to keep colleagues up-to date on the state of the ticket.\n> \n> Now you can have a maximum of 10 external participants without a GitLab account on a\n> Service Desk ticket and regular issues.\n> \n> External participants receive Service Desk notification emails for each public comment\n> on the ticket, and their replies will appear as comments in the GitLab UI. \n> \n> Simply use the quick actions [`/add_email`](https://docs.gitlab.com/ee/user/project/service_desk/external_participants.html#add-an-external-participant)\n> and [`remove_email`](https://docs.gitlab.com/ee/user/project/service_desk/external_participants.html#add-an-external-participant)\n> to add or remove external participants with a few keystrokes.\n> \n> You can also configure GitLab to\n> [add all email addresses from the `Cc` header](https://docs.gitlab.com/ee/user/project/service_desk/external_participants.html#add-external-participants-from-the-cc-header)\n> of the initial email to the Service Desk ticket.\n> \n> You can [tailor all Service Desk email templates to your liking](https://docs.gitlab.com/ee/user/project/service_desk/configure.html#customize-emails-sent-to-external-participants),\n> using markdown, HTML, and dynamic placeholders.\n> An [unsubscribe link placeholder](https://docs.gitlab.com/ee/user/project/service_desk/external_participants.html#add-an-external-participant)\n> is available to make it easy for external participants to opt out of a conversation.\n\n</details>\n\n\n","released_at":"2024-05-16T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 16.11","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v16.11.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.11.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.11.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.11.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.11.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.11.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":4059390,"url":"https://about.gitlab.com/releases/2024/04/18/gitlab-16-11-released/","name":"GitLab 16.11 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/04/18/gitlab-16-11-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.11.0-ee/gitlab-v16.11.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.11.0-ee/gitlab-v16.11.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.11.0-ee/gitlab-v16.11.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.11.0-ee/gitlab-v16.11.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"22834294718a25956b0a859c8eed72248300eeee","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/22834294718a25956b0a859c8eed72248300eeee","short_id":"22834294","trailers":[],"created_at":"2024-04-17T11:42:22.000+00:00","parent_ids":["f840b7d191f29885d789f459c1410d1649fb30d7"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-04-17T11:42:22.000+00:00","committed_date":"2024-04-17T11:42:22.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v16.11.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v16.11.0-ee","evidences":[],"created_at":"2024-04-19T18:20:19.844Z","milestones":[{"id":3228779,"iid":98,"state":"closed","title":"16.11","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/98","due_date":"2024-04-12","group_id":9970,"created_at":"2023-08-22T21:40:29.598Z","start_date":"2024-03-16","updated_at":"2025-10-22T16:20:43.863Z","description":"","issue_stats":{"total":1715,"closed":1708}}],"commit_path":"/gitlab-org/gitlab/-/commit/22834294718a25956b0a859c8eed72248300eeee","description":"![39 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=39&style=for-the-badge \"New features added in this release\")\n![3367 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3367&style=for-the-badge \"Total features\")\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Automate the creation of Google Compute Engine Runners from GitLab - Public Beta](https://docs.gitlab.com/ee/ci/runners/provision_runners_google_cloud.html#creating-a-runner-provisioned-in-google-cloud) <i>(SaaS only)</i>: <code>GitLab Runner Core</code></summary>\n\n> Previously, creating GitLab Runners in Google Compute Engine required multiple context switches from GitLab and Google Cloud.\n> \n> Now, you can easily provision GitLab Runners in Google Compute Engine with a terraform template from the GitLab Runner Infrastructure Toolkit and GitLab to deploy a GitLab runner and provision the Google Cloud infrastructure - without having to switch between multiple systems.\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Connect Google Artifact Registry to your GitLab project](https://docs.gitlab.com/ee/user/project/integrations/google_artifact_management.html) <i>(SaaS only)</i>: <code>Container Registry</code></summary>\n\n> You use the GitLab container registry to view, push, and pull Docker and OCI images alongside your source code and pipelines. For many GitLab customers, this works great for container images during the `test` and `build` phases. But, it's common for organizations to publish their production images to a cloud provider, like Google.\n> \n> Previously, to push images from GitLab to Google Artifact Registry, you had to create and maintain custom scripts to connect and deploy to Artifact Registry. This was inefficient and error prone. In addition, there was no way easy way to get a holistic view of all of your container images. \n> \n> Now, you can leverage the new Google Artifact Management feature to easily connect your GitLab project to an Artifact Registry repository. Then you can use GitLab CI/CD pipelines to publish images to the Artifact Registry. You can also view images that have published to the Artifact Registry in GitLab by going to **Deploy > Google Artifact Registry**. To view details about an image, simply select an image.\n> \n> This feature is in Beta and is currently available only on GitLab.com.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Disable personal access tokens for Enterprise Users](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#disable-personal-access-tokens-for-enterprise-users) <i>(SaaS only)</i>: <code>User Management</code></summary>\n\n> GitLab.com group Owners can now disable the creation and use of personal access tokens for any enterprise users in their groups. Due to the powerful privileges that can be associated with personal access tokens, some Owners may want to disable these tokens for security reasons.\n> \n> This granular control gives options when it comes to balancing security and accessibility on GitLab.com.\n\n</details>\n\n<details><summary>[Authenticate to Google Cloud with workload identity federation](https://docs.gitlab.com/ee/integration/google_cloud_iam.html) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> Workload identity federation allows you to securely connect workloads between GitLab and Google Cloud without the use of service account keys. This improves security, because keys can potentially be long-lived credentials that expose a vector for attack. Keys also come with management overhead for creating, securing, and rotating. \n> \n> Workload identity federation allows you to map IAM roles between GitLab and Google Cloud.\n> \n> This feature is in Beta and is currently available only on GitLab.com.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![10 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=10&style=flat-square \"New features added to this tier in this release\")\n![497 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=497&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Email notifications for changes made using Switchboard](https://docs.gitlab.com/ee/administration/dedicated/configure_instance/users_notifications.html#manage-notification-preferences) <i>(self-managed only)</i>: <code>GitLab Dedicated</code>, <code>Switchboard</code></summary>\n\n> Configuration changes made to your GitLab Dedicated instance by tenant administrators using Switchboard will now generate email notifications when complete.\n> \n> All users with access to view or edit your tenant in Switchboard will receive a notification for each change made.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Dependency graph support for dependency scanning SBOMs](https://docs.gitlab.com/ee/user/application_security/dependency_list/): <code>Software Composition Analysis</code></summary>\n\n> Users can access dependency graph information in CycloneDX SBOMs generated as a part of their dependency scanning report. Dependency graph information is available for the following package managers:\n> \n> - NuGet\n> - Yarn 1.x\n> - sbt\n> - Conan\n\n</details>\n\n<details><summary>[Dependency Scanning support for Yarn v4](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html#supported-languages-and-package-managers): <code>Software Composition Analysis</code></summary>\n\n> Dependency Scanning supports Yarn v4. This enhancement allows our analyzer to parse Yarn v4 lockfiles.\n\n</details>\n\n<details><summary>[DAST analyzer performance updates](https://docs.gitlab.com/ee/user/application_security/dast/browser/): <code>DAST</code></summary>\n\n> During the 16.11 release milestone we completed the following DAST improvements:\n> \n> - Snip navigation paths to improve crawler performance, which reduced scan time by 20% according to our benchmark test. [See the issue](https://gitlab.com/gitlab-org/gitlab/-/issues/430815) for more details.\n> - Optimize DAST reporting to reduce memory usage, which reduced runner memory spikes during DAST scans. [See the issue](https://gitlab.com/gitlab-org/gitlab/-/issues/444180) for more details.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Security policy scopes](https://docs.gitlab.com/ee/user/application_security/policies/scan-execution-policies.html#security-policy-scopes): <code>Security Policy Management</code></summary>\n\n> Policy scoping provides granular management and enforcement of policies. Across both merge request approval (scan result) policies and scan execution policies, this new feature enables security and compliance teams to scope policy enforcement to a compliance framework or to a set of included/excluded projects in a group.\n> \n> While today all policies managed in a security policy project are enforced against all linked groups, subgroups, and projects, policy scoping will allow you to refine that enforcement policy by policy. This allows security and compliance teams to:\n> \n> - More easily manage policies centrally across their organization, while still enforcing policies granularly.\n> - Get a better sense of how the controls they are implementing and enforcing in GitLab roll up to the compliance frameworks they've defined.\n> - View and manage which policies are linked to a compliance framework through the compliance center.\n> - Better organize and understand their security and compliance posture.\n\n</details>\n\n<details><summary>[Display linked Security Policies in Compliance Frameworks](https://docs.gitlab.com/ee/user/group/compliance_frameworks.html): <code>Compliance Management</code></summary>\n\n> As the compliance center becomes the battle station for compliance managers, you can now manage compliance frameworks, and also gain insight into controls that have\n> been created through security policies and linked to a compliance framework.\n> \n> Enforce security scanners to run in projects that are in-scope for your compliance, enforce two-person approval, or enable vulnerability management workflows\n> through these extensive controls and then roll them up to a compliance framework, ensuring relevant projects within the framework are properly enforced by the control.\n\n</details>\n\n<details><summary>[Extend policy bot comment with violation data](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html): <code>Security Policy Management</code></summary>\n\n> The security policy bot gives users context to understand when policies are enforced on their project, when evaluation is completed, and if there are any violations blocking an MR, with guidance to resolve them. We have now extended support in the bot comment to supply additional insight into why an MR may be blocked by a policy, with more granular feedback on how to resolve. Details provided by the comment include:\n> \n> * Security findings that are specifically blocking the MR\n> * Out-of-policy licenses\n> * Policy errors that may default in a \"fail closed\" and blocking behavior\n> * Details regarding the pipelines that are being considered in the evaluation for security findings\n> \n> With these extra details, you can now more quickly understand the state of your MR and self-serve to troubleshoot any issues.\n\n</details>\n\n<details><summary>[Issue with duplicate security policies resolved](https://docs.gitlab.com/ee/user/application_security/policies/): <code>Security Policy Management</code></summary>\n\n> In GitLab 16.9 and earlier, it was possible for a project to both inherit security policies from a parent group or subgroup and link to the same security policies project. The result was that policies were duplicated in the policies list.\n> \n> This issue has been resolved and it is no longer possible to link to a security policies project from which policies are already inherited.\n\n</details>\n\n\n\n##### [Monitor](https://about.gitlab.com/stages-devops-lifecycle/monitor/)\n\n<details><summary>[Understand your users better with Product Analytics](https://docs.gitlab.com/ee/user/product_analytics/): <code>Product Analytics Visualization</code></summary>\n\n> It is critical to understand how your users are engaging with your application in order to make data-driven decisions about future innovations and optimizations. Are you seeing an uptick in usage for your top business critical URLs, is there an unusual dip in monthly active users, are you seeing more customers engaging with a mobile Android device? By having the answers to questions like this and making them accessible to your engineering teams from the GitLab platform, your teams can stay in sync with how their development work is affecting user outcomes. \n> \n> With GitLab new Product Analytics feature, you can instrument your applications, collect key usage and adoption data about your users, and then display it inside GitLab. You can visualize data in dashboards, report on it, and filter it in a variety of different ways to find insights about your users. Your team can now quickly identify and respond to unexpected dips or spikes in customer usage that signify an issue, as well as celebrate the success of their recent releases.\n> \n> To use Product Analytics, you will need a Kubernetes cluster to install this [helm chart](https://gitlab.com/gitlab-org/analytics-section/product-analytics/helm-charts) and\n> instrument your application to send traffic to it. GitLab will then connect to the cluster to retrieve the\n> data for visualization.\n\n</details>\n\n<details><summary>[Explore your Product Analytics data with GitLab Duo](https://docs.gitlab.com/ee/user/product_analytics/): <code>Product Analytics Visualization</code></summary>\n\n> [Product Analytics is now generally available](#understand-your-users-better-with-product-analytics), and this release includes a [custom visualization designer](https://docs.gitlab.com/ee/user/analytics/analytics_dashboards.html#visualization-designer). You can use it to explore your application event data, and build dashboards to help you understand your customers' usage and adoption patterns.\n> \n> In the visualization designer, you can now ask GitLab Duo to build visualizations for you by entering plain text requests, for example \"Show me the count of monthly active users in 2024\" or \"List the top urls this week.\n> \n> GitLab Duo in Product Analytics is available as an [Experimental](https://docs.gitlab.com/ee/policy/experiment-beta-support.html#experiment) feature.  \n> \n> You can help us mature this feature by providing feedback about your experience with GitLab Duo in the custom visualization designer in this [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/455363).\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![6 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=6&style=flat-square \"New features added to this tier in this release\")\n![618 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=618&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Duo Chat now generally available](https://docs.gitlab.com/ee/user/gitlab_duo_chat/index.html): <code>Duo Chat</code></summary>\n\n> GitLab Duo Chat is now [generally available](https://docs.gitlab.com/ee/policy/experiment-beta-support.html#generally-available-ga). As part of this release, we are also making these capabilities generally available:\n> \n> - Code explanation helps developers and less technical users understand unfamiliar code faster\n> - Code refactoring enables developers to simplify and improve existing code\n> - Test generation automates repetitive tasks and helps teams catch bugs sooner\n> \n> Users can access GitLab Duo Chat in the GitLab UI, in the Web IDE, in VS Code, or in JetBrains IDEs.\n> \n> Learn more about this release of GitLab Duo Chat from this [blog post](https://about.gitlab.com/blog/gitlab-duo-chat-now-generally-available/).\n> \n> Chat is currently freely accessible by all Ultimate and Premium users. Instance administrators, group owners, and project owners can choose to [restrict Duo features from accessing and processing their data](https://docs.gitlab.com/ee/user/gitlab_duo/turn_on_off.html).\n> \n> The GitLab Duo Chat is part of [GitLab Duo Pro](https://about.gitlab.com/gitlab-duo/#pricing). To ease the transition for Chat beta users who have yet to purchase GitLab Duo Pro, Duo Chat will remain available to existing Premium and Ultimate customers (without the add-on) for a short period of time. We will announce when access will be restricted to Duo Pro subscribers at a later date.\n> \n> Feel free to share your thoughts by clicking the feedback button in the chat or by creating an issue and mentioning GitLab Duo Chat. We’d love to hear from you!\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Visually distinguish epics using colors](https://docs.gitlab.com/ee/user/group/epics/manage_epics.html#epic-color): <code>Portfolio Management</code></summary>\n\n> To further improve the ability to use portfolio management features across the organization, you can now distinguish epics using colors on [roadmaps](https://docs.gitlab.com/ee/user/group/roadmap/) and [epic boards](https://docs.gitlab.com/ee/user/group/epics/epic_boards.html).\n> \n> Quickly distinguish between group ownership, stage in a lifecycle, development towards maturity, or a number of other categorizations with this lightweight but versatile feature.\n\n</details>\n\n<details><summary>[Value stream events can now be calculated cumulatively](https://docs.gitlab.com/ee/user/group/value_stream_analytics/#cumulative-label-event-duration): <code>Value Stream Management</code></summary>\n\n> We introduced a more robust method for calculating durations between label events. This change accommodates scenarios where events occur multiple times, such as label changes in merge requests back and forth between development to review states. Previously, the duration was calculated as the total time elapsed between the first and last label event.\n> \n> Now, the duration is calculated as cumulative time, meaning it now correctly represents only the time when an issue or merge request had a given label.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[GitLab Duo Chat available in JetBrains IDEs](https://docs.gitlab.com/ee/editor_extensions/jetbrains_ide/index.html): <code>Editor Extensions</code></summary>\n\n> We are happy to announce the availability of GitLab Duo Chat in JetBrains IDEs.\n> \n> As part of GitLab AI offerings, Duo Chat further streamlines the developer experience by directly bringing an interactive chat window into any supported JetBrains IDE and the ability to explain code, write tests, and refactor existing code.\n> \n> For a complete list of capabilities, see our [Duo Chat documentation](https://docs.gitlab.com/ee/user/gitlab_duo_chat/index.html).\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Expanded Hashicorp Vault Secrets support, including Artifactory and AWS](https://docs.gitlab.com/ee/ci/secrets/#vault-secrets-engines): <code>Secrets Management</code></summary>\n\n> The GitLab integration with HashiCorp Vault has been expanded to support more types of secrets. You can now select a `generic` type of secrets engine, introduced in GitLab Runner 16.11. This generic engine supports HashiCorp Vault [Artifactory Secrets Plugin](https://jfrog.com/help/r/jfrog-integrations-documentation/hashicorp-vault-artifactory-secrets-plugin) and [AWS secrets engine](https://developer.hashicorp.com/vault/docs/secrets/aws). Use this option to safely retrieve the secrets you need and use them in GitLab CI/CD pipelines!\n> \n> Thanks so much to [Ivo Ivanov](https://gitlab.com/urbanwax) for this great contribution!\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Webhook notifications for expiring group and project access tokens](https://docs.gitlab.com/ee/user/project/integrations/webhook_events.html#project-and-group-access-token-events): <code>System Access</code></summary>\n\n> Webhook events for project and group access tokens are now available.\n> \n> Previously, email was the only way to get notifications about expiring tokens. A webhook event, if triggered, will be triggered seven days before an access token expires.\n\n</details>\n\n\n\n#### Core\n\n![19 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=19&style=flat-square \"New features added to this tier in this release\")\n![2158 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2158&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Sidebar for metadata on the project overview page](https://docs.gitlab.com/ee/user/project/working_with_projects.html): <code>Groups & Projects</code></summary>\n\n> We've redesigned the project overview page. Now you can find all of the project information and links in one sidebar rather than multiple areas.\n\n</details>\n\n<details><summary>[Omnibus improvements](https://docs.gitlab.com/omnibus/) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> - In GitLab 17.0, the minimum-supported version of PostgreSQL will become 14. In preparation for this change, in GitLab 16.11 we have changed the\n>   `attempt_auto_pg_upgrade?` setting to `true`, which will attempt to automatically upgrade the version of PostgreSQL to 14.\n> \n>   This process is the same as for last time we bumped the minimum-supported PostgreSQL version.\n\n</details>\n\n<details><summary>[Updated project archiving functionality](https://docs.gitlab.com/ee/user/project/working_with_projects.html#archive-a-project): <code>Groups & Projects</code></summary>\n\n> Now it's easier to identify archived projects in project lists. From 16.11, archived projects display an **Archived** badge in the **Archived** tab of the group overview. This badge is also part of the project title on the project overview page.\n> \n> An alert message clarifies that archived projects are read-only. This message is visible on all project pages to ensure that this context is not lost even when working on sub-pages of the archived project.\n> \n> In addition, when deleting a group, the confirmation modal now lists the number of archived projects to prevent accidental deletions.\n\n</details>\n\n<details><summary>[Build step of Auto DevOps upgraded](https://docs.gitlab.com/ee/topics/autodevops/troubleshooting.html#builder-sunset-error): <code>Auto DevOps</code></summary>\n\n> Because the `heroku/buildpacks:20` image used by the Auto Build component of Auto DevOps was deprecated upstream, we are moving to the `heroku/builder:20` image. \n> \n> This breaking change arrives outside a GitLab major release to accommodate a breaking change upstream. The upgrade is unlikely to break your pipelines. As a temporary workaround, you can also manually configure the `heroku/builder:20` image and [skip the builder sunset errors](https://docs.gitlab.com/ee/topics/autodevops/troubleshooting.html#skipping-errors).\n> \n> Additionally, we're planning another major upgrade from `heroku/builder:20` to `heroku/builder:22` in GitLab 17.0.\n\n</details>\n\n<details><summary>[Custom webhook headers](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#custom-headers): <code>Webhooks</code></summary>\n\n> Previously, GitLab webhooks did not support custom headers. This meant you could not use them with systems that accept authentication tokens from headers with specific names.\n> \n> With this release, you can add up to 20 custom headers when you create or edit a webhook. You can use these custom headers for authentication to external services.\n> \n> With this feature and the [custom webhook template](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#custom-webhook-template) introduced in GitLab 16.10, you can now fully design custom webhooks. You can configure your webhooks to:\n> \n> - Post custom payloads.\n> - Add any required authentication headers.\n> \n> Like secret tokens and URL variables, custom headers are reset when the target URL changes.\n> \n> Thanks to [Niklas](https://gitlab.com/Taucher2003) for [this community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/146702)!\n\n</details>\n\n<details><summary>[Test project hooks with the REST API](https://docs.gitlab.com/ee/api/projects.html#trigger-a-test-project-hook): <code>Webhooks</code></summary>\n\n> Previously, you could test project hooks in the GitLab UI only. With this release, you can now trigger test hooks for specified projects by using the REST API.\n> \n> Thanks to [Phawin](https://gitlab.com/lifez) for [this community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/147656)!\n\n</details>\n\n<details><summary>[GitLab for Slack app configurable for groups and instances](https://docs.gitlab.com/ee/user/project/integrations/gitlab_slack_application.html#from-the-project-or-group-settings): <code>Integrations</code></summary>\n\n> Previously, you could configure the GitLab for Slack app for one project at a time only. With this release, it's now possible to configure the integration for groups or instances and make changes to many projects at once.\n> \n> This improvement brings the GitLab for Slack app closer to feature parity with the deprecated [Slack notifications integration](https://docs.gitlab.com/ee/user/project/integrations/slack.html).\n\n</details>\n\n<details><summary>[Configurable import jobs limit](https://docs.gitlab.com/ee/administration/settings/import_and_export_settings.html#maximum-number-of-simultaneous-import-jobs) <i>(self-managed only)</i>: <code>Importers</code></summary>\n\n> Until now, the maximum number of import jobs for:\n> \n> - GitHub importer was 1000.\n> - Bitbucket Cloud and Bitbucket Server importers was 100.\n> \n> These limits were hard-coded and couldn't be changed. These limits might have slowed down imports, because they might have been insufficient\n> to allow the import jobs to be processed at the same rate they were enqueued.\n> \n> In this release, we've moved the hard-coded limits to application settings. Although we are not increasing these limits on GitLab.com, administrators\n> of self-managed GitLab instances can now configure the number of import jobs according to their needs.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Autocomplete support for links to wiki pages](https://docs.gitlab.com/ee/user/markdown.html#gitlab-specific-references): <code>Wiki</code></summary>\n\n> We're thrilled to introduce autocomplete support for links to wiki pages in GitLab 16.11! With this new feature, linking to wiki pages from your epics and issues\n> has never been easier - it's just a matter of a few keystrokes.\n> \n> Gone are the days of having to copy and paste wiki page URLs into epic and issue comments. Now, simply navigate to any group or project with wiki pages, access an epic or\n> issue, and use the autocomplete shortcut to seamlessly link to your wiki pages from the epic or issue!\n\n</details>\n\n<details><summary>[Improved GitLab Pages visibility in sidebar](https://docs.gitlab.com/ee/user/project/pages/): <code>Pages</code></summary>\n\n> In previous releases, for projects with a GitLab Pages site, it was difficult to find the site URL.\n> \n> From GitLab 16.11, the right sidebar has a shortcut link to the site, so you can find the URL without needing to check the docs.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Group comment templates](https://docs.gitlab.com/ee/user/profile/comment_templates.html): <code>Code Review Workflow</code>, <code>Team Planning</code></summary>\n\n> Across an organization it can be helpful to have the same templated response in issues, epics, or merge requests. These responses might include standard questions that need to be answered, responses to common problems, or maybe structure for merge request review comments.\n> \n> Group comment templates enable you to create saved responses that you can apply in comment boxes around GitLab to speed up your workflow. This new addition to comment templates allows organizations to create and manage templates centrally, so all of their users benefit from the same templates.\n> \n> To create a comment template, go to any comment box on GitLab and select **Insert comment template > Manage group comment templates**. After you create a comment template, it's available for all group members. Select the **Insert comment template** icon while making a comment, and your saved response will be applied.\n> \n> We're really excited about this next iteration of comment templates and will also be adding [project-level comment templates](https://gitlab.com/gitlab-org/gitlab/-/issues/440818) soon too. If you have any feedback, please leave it in [issue 45120](https://gitlab.com/gitlab-org/gitlab/-/issues/451520).\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Option to cancel a pipeline immediately if any jobs fails](https://docs.gitlab.com/ee/ci/yaml/#workflowauto_cancelon_job_failure): <code>Continuous Integration (CI)</code></summary>\n\n> Sometimes after you notice a job fails, you might manually cancel the rest of the pipeline to save resources while you work on the issue causing the failure. With GitLab 16.11, you can now configure pipelines to be cancelled automatically when any job fails. With large pipelines that take a long time to run, especially with many long-running jobs that run in parallel, this can be an effective way to reduce resource usage and costs.\n> \n> You can even configure a pipeline to immediately [cancel if a downstream pipeline fails](https://docs.gitlab.com/ee/ci/pipelines/downstream_pipelines.html#auto-cancel-the-parent-pipeline-from-a-downstream-pipeline), which cancels the parent pipeline and all other downstream pipelines.\n> \n> Special thanks to [Marco](https://gitlab.com/zillemarco) for contributing to the feature!\n\n</details>\n\n<details><summary>[Improve automatic retry for failed CI jobs with specific exit codes](https://docs.gitlab.com/ee/ci/yaml/#retry): <code>Pipeline Composition</code></summary>\n\n> Previously, you could use `retry:when` in addition to `retry:max` to configure how many times a job is retried\n> when specific failures occur, like when a script fails.\n> \n> With this release, you can now use [`retry:exit_codes`](https://docs.gitlab.com/ee/ci/yaml/#retryexit_codes)\n> to configure automatic retries of failed jobs based on specific script exit codes.\n> You can use `retry:exit_codes` with `retry:when` and `retry:max` to fine-tune your pipeline's behavior\n> according to your specific needs and improve your pipeline execution.\n> \n> Thanks to [Baptiste Lalanne](https://gitlab.com/BaptisteLalanne) for this community contribution!\n\n</details>\n\n<details><summary>[GitLab Runner 16.11](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 16.11 today! GitLab Runner is the lightweight, highly-scalable agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### Bug Fixes:\n> \n> - [Crash: fatal error: concurrent map read and map write](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/31077)\n> - [FF_KUBERNETES_HONOR_ENTRYPOINT feature not working](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37243)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/16-11-stable/CHANGELOG.md).\n\n</details>\n\n<details><summary>[Control who can download job artifacts](https://docs.gitlab.com/ee/ci/yaml/#artifactsaccess): <code>Pipeline Composition</code></summary>\n\n> By default, all generated artifacts from CI/CD jobs in a public pipeline are available for download by all users with access to the pipeline. However, there are cases where artifacts should never be downloaded, or only be accessible for download by team members with a higher access level.\n> \n> So in this release, we've added the `artifacts:access` keyword. Now, users can control whether artifacts can be downloaded by all users with access to the pipeline, only users with the Developer role or higher, or no user at all.\n\n</details>\n\n<details><summary>[Improved pipeline details page](https://docs.gitlab.com/ee/ci/pipelines/#view-pipelines): <code>Pipeline Composition</code></summary>\n\n> The pipeline graph offers a comprehensive overview of your pipelines, showing job statuses, runtime updates, multi-project pipelines, and parent-child pipelines.\n> \n> Today, we're excited to announce the release of the redesigned pipeline graph with enhanced aesthetics, grouped jobs visualization, improved mobile expirence and expanded downstream pipeline visibility within your existing view.\n> \n> We'd greatly appreciate it if you could try it out and share your feedback through this dedicated [issue](https://gitlab.com/gitlab-org/gitlab/-/issues/450676).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Users list search and filter improvements](https://docs.gitlab.com/ee/administration/admin_area.html#administering-users) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> The Admin Area users page has been improved.\n> \n> Previously, tabs horizontally spanned across the top of the users list, making it difficult to navigate to the desired filter.\n> \n> Now, filters have been combined into the search box, making it much easier to search and filter users.\n> \n> Thank you [Ivan Shtyrliaiev](https://www.linkedin.com/in/bahek2462774/) for your contribution!\n\n</details>\n\n<details><summary>[Renew application secret with API](https://docs.gitlab.com/ee/api/applications.html#renew-an-application-secret) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> You can now use the Applications API to renew application secrets. Previously, you had to use the UI to do this. Now you can use the API to rotate secrets programatically.\n> \n> Thank you [Phawin](https://gitlab.com/lifez) for your contribution!\n\n</details>\n\n<details><summary>[More username options](https://docs.gitlab.com/ee/user/profile/#change-your-username): <code>User Management</code></summary>\n\n> Usernames can only include non-accented letters, digits, underscores (`_`), hyphens (`-`), and periods (`.`).\n> Usernames must not start with a hyphen (`-`), or end in a period (`.`), `.git`, or `.atom`.\n> \n> Username validation now more accurately states this criteria. This improved validation means that you are clearer on your options when choosing your username.\n> \n> Thank you [Justin Zeng](https://www.linkedin.com/in/jzeng88/) for your contribution!\n\n</details>\n\n\n","released_at":"2024-04-18T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 16.10","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v16.10.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.10.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.10.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.10.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.10.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.10.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":3935819,"url":"https://about.gitlab.com/releases/2024/03/21/gitlab-16-10-released/","name":"GitLab 16.10 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/03/21/gitlab-16-10-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.10.0-ee/gitlab-v16.10.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.10.0-ee/gitlab-v16.10.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.10.0-ee/gitlab-v16.10.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.10.0-ee/gitlab-v16.10.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"053df647320e7cac5c255f9e07264a0c35548409","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/053df647320e7cac5c255f9e07264a0c35548409","short_id":"053df647","trailers":[],"created_at":"2024-03-20T12:32:54.000+00:00","parent_ids":["25bc47e15dbe0d12db9f65b035f8259e90487071"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-03-20T12:32:54.000+00:00","committed_date":"2024-03-20T12:32:54.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v16.10.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v16.10.0-ee","evidences":[],"created_at":"2024-03-21T14:44:33.696Z","milestones":[{"id":3228778,"iid":97,"state":"closed","title":"16.10","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/97","due_date":"2024-03-15","group_id":9970,"created_at":"2023-08-22T21:39:40.624Z","start_date":"2024-02-10","updated_at":"2025-10-22T16:20:38.733Z","description":"","issue_stats":{"total":1974,"closed":1964}}],"commit_path":"/gitlab-org/gitlab/-/commit/053df647320e7cac5c255f9e07264a0c35548409","description":"![38 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=38&style=for-the-badge \"New features added in this release\")\n![3328 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3328&style=for-the-badge \"Total features\")\n\n<details><summary>[GitLab Pages and Advanced Search available on GitLab Dedicated](https://docs.gitlab.com/ee/subscriptions/gitlab_dedicated/#available-features) <i>(self-managed only)</i>: <code>GitLab Dedicated</code></summary>\n\n> [GitLab Pages](https://docs.gitlab.com/ee/user/project/pages/) and [Advanced Search](https://docs.gitlab.com/ee/user/search/advanced_search.html) have been enabled for all [GitLab Dedicated instances](https://about.gitlab.com/dedicated/). These features are included in your GitLab Dedicated subscription.\n> \n> Advanced Search enables faster, more efficient search across your entire GitLab Dedicated instance. All capabilities of Advanced Search can be used with GitLab Dedicated instances.\n> \n> With GitLab Pages, you can publish static websites directly from a repository in GitLab Dedicated. Some capabilities of Pages are [not yet available](https://docs.gitlab.com/ee/subscriptions/gitlab_dedicated/#gitlab-pages) for GitLab Dedicated instances.\n\n</details>\n\n<details><summary>[Filter members by Enterprise users with GraphQL API](https://docs.gitlab.com/ee/api/graphql/reference/index.html#groupgroupmembers) <i>(SaaS only)</i>: <code>Groups & Projects</code></summary>\n\n> With the GraphQL API you can now filter group members by Enterprise users.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[New ClickHouse integration for high-performance DevOps Analytics](https://docs.gitlab.com/ee/user/group/contribution_analytics/) <i>(SaaS only)</i>: <code>Value Stream Management</code></summary>\n\n> The [Contribution Analytics report](https://docs.gitlab.com/ee/user/group/contribution_analytics/) is now more performant and backed by an advanced analytics database using [ClickHouse](https://docs.gitlab.com/ee/architecture/blueprints/clickhouse_usage/#summary) on GitLab.com. This upgrade set the foundation for new extensive analytics and reporting features, allowing us to deliver high-performance analytics aggregations, filtering, and slicing across multiple dimensions. Support for self-managed customers to be able to add to this capability is proposed in [issue 441626](https://gitlab.com/gitlab-org/gitlab/-/issues/441626).  \n> \n> Although ClickHouse enhances GitLab analytics capabilities, it's not meant to replace PostgreSQL or Redis, and the existing capabilities remain unchanged. \n\n</details>\n\n<details><summary>[New contributor count metric in the Value Streams Dashboard](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#devsecops-metrics-comparison-panel) <i>(SaaS only)</i>: <code>Value Stream Management</code></summary>\n\n> To enable software leaders to gain insights into the relationship between team velocity, software stability, security exposures, and team productivity, we introduced a new [**Contributor count** metric in the Value Streams Dashboard](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#dashboard-metrics-and-drill-down-reports). The contributor count represents the number of monthly unique users with contributions in the group. This metric is designed to track adoption trends over time, and is based on [contributions calendar events](https://docs.gitlab.com/ee/user/profile/contributions_calendar.html#user-contribution-events). \n> \n> The **Contributor count** metric is available only on GitLab.com, and requires the [contribution analytics report to be configured to run through ClickHouse](https://docs.gitlab.com/ee/user/group/contribution_analytics/#contribution-analytics-with-clickhouse). [Issue 441626](https://gitlab.com/gitlab-org/gitlab/-/issues/441626) tracks efforts to make this feature available to self-managed customers as well.\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[List repository tags with the new container registry API](https://docs.gitlab.com/ee/api/container_registry.html#list-registry-repository-tags) <i>(SaaS only)</i>: <code>Container Registry</code></summary>\n\n> Previously, the container registry relied on the Docker/OCI [listing image tags registry API](https://gitlab.com/gitlab-org/container-registry/-/blob/5208a0ce1600b535e529cd857c842fda6d19ad59/docs/spec/docker/v2/api.md#listing-image-tags) to display tags in GitLab. This API had significant performance and discoverability limitations.\n> \n> This API performed slowly because the number of network requests against the registry scaled with the number of tags in the tags list. In addition, because the API didn't track publish time, the published timestamp was often incorrect. There were also limitations when displaying images based on Docker manifest lists or OCI indexes, such as for multi-architecture images.\n> \n> To address these limitations, we introduced a new registry [list repository tags API](https://gitlab.com/gitlab-org/container-registry/-/blob/5208a0ce1600b535e529cd857c842fda6d19ad59/docs/spec/gitlab/api.md#list-repository-tags). In GitLab 16.10, we've completed the migration to the new API. Now, whether you use the UI or the REST API, you can expect improved performance, accurate publication timestamps, and robust support for multi-architecture images.\n> \n> This improvement is available only on GitLab.com. Self-managed support is blocked until the next-generation container registry is generally available. To learn more, see [issue 423459](https://gitlab.com/gitlab-org/gitlab/-/issues/423459).\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![6 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=6&style=flat-square \"New features added to this tier in this release\")\n![487 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=487&style=flat-square \"Total features in this tier\")\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Continuous Vulnerability Scanning available by default for Container Scanning](https://docs.gitlab.com/ee/user/application_security/continuous_vulnerability_scanning/): <code>Software Composition Analysis</code></summary>\n\n> Continuous Vulnerability Scanning for Container Scanning is now available by default. The default availability removes the need to opt into this functionality through a feature flag. To learn more about the benefits of Continuous Vulnerability Scanning, see the documentation link.\n\n</details>\n\n<details><summary>[Improved Dependency Scanning support for sbt](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/index.html#supported-languages-and-package-managers): <code>Software Composition Analysis</code></summary>\n\n> We have updated the mechanism we use to generate the list of dependencies for projects using sbt. This change is only applicable to projects using sbt version 1.7.2 and later. To fully leverage Dependency Scanning for sbt projects, you should upgrade to sbt version 1.7.2 and later.\n\n</details>\n\n<details><summary>[DAST analyzer performance updates](https://docs.gitlab.com/ee/user/application_security/dast/browser/): <code>DAST</code></summary>\n\n> During the 16.10 release milestone, proxy-based DAST was:\n> \n> - Upgraded ZAP to version 2.14.0. For more information, see [issue 442056](https://gitlab.com/gitlab-org/gitlab/-/issues/442056).\n> \n> We also completed the following browser-based DAST crawler performance improvements:\n> \n> - Limit the number of goroutines created when crawling. For more information, see [issue 440151](https://gitlab.com/gitlab-org/gitlab/-/issues/440151).\n> - Optimize finding elements to interact with. This reduced scan time by 6%. For more information, see [issue 440295](https://gitlab.com/gitlab-org/gitlab/-/issues/440295).\n> - Optimize JSON unmarshalling of DevTools messages. This reduced scan time by 7%. For more information, see [issue 439726](https://gitlab.com/gitlab-org/gitlab/-/issues/439726).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[New permissions for custom roles](https://docs.gitlab.com/ee/user/custom_roles.html): <code>Permissions</code></summary>\n\n> To create custom roles, you can now choose two new permissions:\n> \n> - Manage CI/CD Variables\n> - Ability to delete a group\n> \n> With the release of these custom permissions, you can reduce the number of Owners needed in a group by creating a custom role with these Owner-equivalent permissions. Custom roles let you define granular roles that give a user only the permissions they need to do their job, and reduce unnecessary privilege escalation.\n\n</details>\n\n<details><summary>[Scan result policies are now \"Merge request approval policies\"](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html): <code>Security Policy Management</code></summary>\n\n> As we've expanded capabilities of the policy type to support overriding project settings and enforce approval requirements, we've updated the policy name to the more apt \"merge request approval policy\".\n> \n> Merge request approval policies do not replace or conflict with existing merge request approval rules. Instead they provide Ultimate tier customers the ability to create global enforcement across projects through policies managed by central security and compliance teams - an increasingly challenging task for large-scale organizations.\n\n</details>\n\n<details><summary>[Use merge base pipeline for merge request approval policy comparison](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html#understanding-merge-request-approval-policy-approvals): <code>Security Policy Management</code></summary>\n\n> This enhancement aligns the logic of the merge request approval policy evaluation with the security MR widget, ensuring that findings that violate a merge request approval policy align with the results displayed in the widget. By aligning the logic, security, compliance, and development teams can more consistently identify which findings violate a policy and require approval. \n> Rather than comparing to the target branch's latest completed `HEAD` pipeline, scan result policies now compare to a common ancestor's latest completed pipeline, the \"merge base\".\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![9 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=9&style=flat-square \"New features added to this tier in this release\")\n![612 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=612&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Duo access governance control](https://docs.gitlab.com/ee/user/gitlab_duo/turn_on_off.html): <code>Duo Chat</code></summary>\n\n> Generative AI is revolutionizing work processes, and you can now facilitate the adoption of these technologies without compromising privacy, compliance, or intellectual property (IP) protections.\n> \n> You can now disable GitLab Duo AI features for a project, a group, or an instance by using the API. You can then enable GitLab Duo for specific projects or groups when you're ready. These changes are part of a suite of expected work to make AI features more granular to control.\n\n</details>\n\n<details><summary>[Offload CI traffic to Geo secondaries](https://docs.gitlab.com/ee/administration/geo/secondary_proxy/runners.html) <i>(self-managed only)</i>: <code>Geo-replication</code></summary>\n\n> You can now offload CI runner traffic to Geo secondary sites. Locate runner fleets where they are more convenient and economical to operate and manage, while reducing cross-region traffic. Distribute the load across multiple secondary Geo sites. Reduce load on the primary site, reserving resources for serving developer traffic. After this setup, the developer experience is transparent and seamless. Developer workflows for the setup and configuration of jobs remain unchanged.\n\n</details>\n\n<details><summary>[Updated project deletion functionality](https://docs.gitlab.com/ee/user/project/working_with_projects.html#delayed-project-deletion): <code>Groups & Projects</code></summary>\n\n> Now it's easier to identify deleted projects in project lists. From GitLab 16.10, deleted projects display a `Pending deletion` badge next to the project title on the project overview page. An alert message clarifies that deleted projects are read-only. This message is visible on all project pages to ensure that this context is not lost even when working on sub-pages of the deleted project.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Inherited filters in Value Stream Analytics for seamless and accurate workflow analysis](https://docs.gitlab.com/ee/user/group/issues_analytics/index.html): <code>Value Stream Management</code></summary>\n\n> [Value stream analytics](https://docs.gitlab.com/ee/user/group/value_stream_analytics/) now applies the same filters when drilling down from the **Lead time** tile to the [**Issue Analytics** report](https://docs.gitlab.com/ee/user/group/issues_analytics/). The filter inheritance helps you dive deeper and seamlessly into data as you switch between analytics views.\n\n</details>\n\n<details><summary>[Add an issue to the current or next iteration with a quick action](https://docs.gitlab.com/ee/user/project/quick_actions.html#issues-merge-requests-and-epics): <code>Team Planning</code></summary>\n\n> The `/iteration` quick action now accepts a cadence reference with `--current` or `--next` arguments. If your group has a single iteration cadence, you can quickly assign an issue to the current or next iteration by using `/iteration --current|next`. If your group contains many iteration cadences, you can specify the desired cadence in the quick action by referencing the cadence name or ID. For example, `/iteration [cadence:\"<cadence name>\"|<cadence ID>] --next|current`.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Audit event `scope` attribute](https://docs.gitlab.com/ee/administration/audit_event_types.html): <code>Compliance Management</code></summary>\n\n> Audit events now include a `scope` attribute that indicates if the event is associated with an entire instance, a group, a project, or a user.\n> \n> This new attribute helps users determine where an event originated in audit event payloads. It also allows our\n> [audit event type documentation](https://docs.gitlab.com/ee/administration/audit_event_types.html) to list all available scopes for an audit event\n> type.\n> \n> You can use this new attribute to parse through external streaming destinations or to better understand context around events.\n\n</details>\n\n<details><summary>[Custom names for service accounts](https://docs.gitlab.com/ee/user/profile/service_accounts.html#create-a-service-account): <code>User Management</code></summary>\n\n> You can now customize a service account's username and display name. Previously, these were auto-generated by GitLab. With a custom name, it is easier to understand the purpose of the service account, and distinguish it from other accounts in the user list. \n\n</details>\n\n<details><summary>[Audit event for assigning a custom role](https://docs.gitlab.com/ee/administration/audit_event_types.html): <code>Permissions</code></summary>\n\n> GitLab now records an audit event when a user is assigned a different role, regardless of whether that role is a default role or a custom role. This event is important to identify if user permissions have been added or changed in case of privilege escalation.\n\n</details>\n\n<details><summary>[Smart card support for Active Directory LDAP](https://docs.gitlab.com/ee/administration/auth/smartcard.html#authentication-against-an-active-directory-ldap-server) <i>(self-managed only)</i>: <code>User Management</code></summary>\n\n> Smart card authentication against an LDAP server now supports Entra ID (formerly known as Azure Active Directory). This makes it easy to sync user identity data from Entra ID, and authenticate against LDAP with smart cards.\n\n</details>\n\n\n\n#### Core\n\n![18 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=18&style=flat-square \"New features added to this tier in this release\")\n![2139 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2139&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab chart improvements](https://docs.gitlab.com/charts/) <i>(self-managed only)</i>: <code>Cloud Native Installation</code></summary>\n\n> In GitLab 16.10, we've removed support for installing GitLab on Kubernetes 1.24 and older. Kubernetes maintenance support of Kubernetes 1.24 ended\n> in July 2023.\n> \n> GitLab 16.10 includes support for installing GitLab on Kubernetes 1.27. For more information, see our new [Kubernetes version support policy](https://handbook.gitlab.com/handbook/engineering/careers/matrix/infrastructure/core-platform/distribution/). Our goal is to support newer versions of\n> Kubernetes closer to their official release.\n\n</details>\n\n<details><summary>[Omnibus improvements](https://docs.gitlab.com/omnibus/) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> Gitlab 16.10 introduces a new major version of Patroni, version 3.0.1. This version upgrade will require downtime. For more\n> information and instructions, see the\n> [16.10 section of our GitLab 16 changes page](https://docs.gitlab.com/ee/update/versions/gitlab_16_changes.html#16100).\n> \n> GitLab 16.10 also includes a new version of Alertmanager, namely version 0.27. Most notably, this version includes the removal of API v1. For more information on this\n> release, see the [Alertmanager changelog](https://github.com/prometheus/alertmanager/blob/v0.27.0/CHANGELOG.md#0270--2024-02-28).\n> \n> GitLab 16.10 also includes [Mattermost 9.5](https://docs.mattermost.com/deploy/mattermost-changelog.html#release-v9-5-extended-support-release).\n> Mattermost 9.5 includes various security updates and the deprecation of support for MySQL 5.7. Users on this version of MySQL must update.\n\n</details>\n\n<details><summary>[Blocked users are excluded from the followers list](https://docs.gitlab.com/ee/user/profile/#follow-users): <code>User Profile</code></summary>\n\n> Previously, when a user who followed you was blocked, they still appeared in the followers list of your User Profile. From GitLab 16.10, blocked users are hidden from the followers list. If the user is unblocked, they will reappear in the followers list.\n> \n> Thank you @SethFalco for this community contribution!\n\n</details>\n\n<details><summary>[Filter groups by visibility in the REST API](https://docs.gitlab.com/ee/api/groups.html#list-groups): <code>Groups & Projects</code></summary>\n\n> You can now filter groups by visibility in the [Groups API](https://docs.gitlab.com/ee/api/groups.html). You can use filtering to focus on groups with a specific visibility level, making it easier to audit GitLab implementations.\n> \n> Thank you @imskr for this community contribution!\n\n</details>\n\n<details><summary>[Manually refresh the dashboard for Kubernetes](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html): <code>Environment Management</code></summary>\n\n> GitLab 16.10 adds a dedicated refresh feature to the dashboard for Kubernetes. Now you can manually fetch Kubernetes resource data, and ensure you have access to the most recent information about your clusters.\n\n</details>\n\n<details><summary>[Improved environment details page](https://docs.gitlab.com/ee/ci/environments/): <code>Environment Management</code></summary>\n\n> The environment details page is improved in GitLab 16.10. When you select an environment from the environment list, you can review up-to-date information about your deployments and connected Kubernetes clusters, all in one convenient layout.\n\n</details>\n\n<details><summary>[Threaded notifications supported in Google Chat](https://docs.gitlab.com/ee/user/project/integrations/hangouts_chat.html): <code>Integrations</code></summary>\n\n> Previously, notifications sent from GitLab to a space in Google Chat could not be created as replies to specified threads.\n> With this release, threaded notifications are enabled by default in Google Chat for the same GitLab object (for example, an issue or merge request).\n> \n> Thanks to [Robbie Demuth](https://gitlab.com/robbie-demuth) for [this community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/145187)!\n\n</details>\n\n<details><summary>[Custom payload template for webhooks](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#custom-webhook-template): <code>Webhooks</code></summary>\n\n> Previously, GitLab webhooks could send only specific JSON payloads, which meant the receiving endpoints had to understand the webhook format. To use those webhooks, you had to either use an app to specifically support GitLab or write your own endpoint.\n> \n> With this release, you can set a custom payload template in the webhook configuration. The request body is rendered from the template with the data for the current event.\n> \n> Thanks to [Niklas](https://gitlab.com/Taucher2003) for [this community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/142738)!\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Wiki templates](https://docs.gitlab.com/ee/user/project/wiki/index.html#wiki-page-templates): <code>Wiki</code></summary>\n\n> This version of GitLab introduces all-new templates to the Wiki. Now, you can create templates to streamline creating new pages or modifying existing ones. Templates are wiki pages that are stored in the templates directory in the wiki repository.\n> \n> With this enhancement, you can make your wiki page layouts more consistent, create or restructure pages faster, and ensure that information is presented clearly and coherently in your knowledge base.\n\n</details>\n\n<details><summary>[Support domain-level redirects for GitLab Pages](https://docs.gitlab.com/ee/user/project/pages/redirects.html#domain-level-redirects): <code>Pages</code></summary>\n\n> Previously, GitLab focused on supporting simple redirect rules. In GitLab 14.3, we [introduced](https://gitlab.com/gitlab-org/gitlab-pages/-/merge_requests/458) support for splat and placeholder redirects.\n> \n> From GitLab 16.10, GitLab Pages supports domain-level redirects. You can combine domain-level redirects with [splat rules](https://gitlab.com/gitlab-org/gitlab-pages/-/issues/601) to dynamically rewrite the URL path. This improvement helps prevent confusion and ensure that you can still find your information after a domain change, even if you use an old domain.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Automatically collapse generated files in merge requests](https://docs.gitlab.com/ee/user/project/merge_requests/changes.html#collapse-generated-files): <code>Code Review Workflow</code></summary>\n\n> Merge requests can contain changes from users and automated processes or compilers. Files like `package-lock.json`, `Gopkg.lock`, and minified `js` and `css` files increase the number of files shown in a merge request review, and distract reviewers from the human-generated changes. Merge requests now display these files collapsed by default, to help:\n> \n> - Focus reviewer attention on important changes, but enable a full review if desired.\n> - Reduce the amount of data needed to load the merge request, which might help larger merge requests perform better.\n> \n> For examples of the file types that are collapsed by default, see the [documentation](https://docs.gitlab.com/ee/user/project/merge_requests/changes.html#collapse-generated-files). To collapse more files and file types in the merge request, specify them as `gitlab-generated` in your project's `.gitattributes` file.\n> \n> You can leave feedback on this change in [issue 438727](https://gitlab.com/gitlab-org/gitlab/-/issues/438727).\n\n</details>\n\n<details><summary>[Expanded checks in merge widget](https://docs.gitlab.com/ee/user/project/merge_requests/auto_merge.html): <code>Code Review Workflow</code></summary>\n\n> The merge widget explains clearly if your merge request is not mergeable, and why. Previously, only one merge blocker was displayed at a time. This increased review cycles and forced you to resolve problems individually, without knowing if more blockers remained.\n> \n> When you view a merge request, the merge widget now gives you a comprehensive view of problems, both remaining and resolved. Now you can understand at a glance if multiple blockers exist, fix them all in a single iteration, and increase your confidence that no hidden blockers have been missed.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[GitLab Runner 16.10](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're also releasing GitLab Runner 16.10 today! GitLab Runner is the lightweight, highly-scalable agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> Bug fixes:\n> \n> - [Memory leak when jobs are cancelled in the Runner Kubernetes executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27857)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/16-10-stable/CHANGELOG.md).\n\n</details>\n\n<details><summary>[Semantic versioning in the CI/CD catalog](https://docs.gitlab.com/ee/ci/components/#component-versions): <code>Pipeline Composition</code></summary>\n\n> To enforce consistent behavior across published components, in GitLab 16.10 we will enforce Semantic versioning for components that are published to the CI/CD catalog. When publishing a component, the tag must follow the 3-digit semantic versioning standard (for example `1.0.0`).\n> \n> When using a component with the `include: component` syntax, you should use the published semantic version. Using `~latest` continues to be supported, but it will always return the latest published version, so you must use it with caution as it could include breaking changes. Shorthand syntax is not supported, but it will be in an upcoming milestone.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Improved error message for authentication rate limit](https://docs.gitlab.com/ee/security/rate_limits.html#failed-authentication-ban-for-git-and-container-registry): <code>System Access</code></summary>\n\n> When authenticating with GitLab, it is possible to hit the authentication attempt rate limit, such as when using a script. Previously, if you hit the authentication rate limit, a `403 Forbidden` message was returned, which did not explain why you are getting this error. We now return a more descriptive error message which tells you that you've hit the authentication rate limit.\n\n</details>\n\n<details><summary>[Webhooks support mutual TLS](https://docs.gitlab.com/ee/user/project/integrations/webhooks.html#configure-webhooks-to-support-mutual-tls) <i>(self-managed only)</i>: <code>System Access</code></summary>\n\n> You can now configure webhooks to support mutual TLS. This configuration establishes the authenticity of the webhook source and enhances security. You configure the client certificate in PEM format, which is presented to the server during the TLS handshake. You can also protect the certificate with a PEM passphrase.\n\n</details>\n\n<details><summary>[Sign-in page improvements](https://gitlab.com/gitlab-org/gitlab/-/issues/412845): <code>System Access</code></summary>\n\n> The GitLab sign-in page has been refreshed with improvements that fix spacing issues, broken elements, and alignment. There is also additional support for dark mode, and a button to manage cookie preferences. The combination of these improvements gives a fresh look and improved functionality on the sign-in page.\n\n</details>\n\n\n\n##### [Monitor](https://about.gitlab.com/stages-devops-lifecycle/monitor/)\n\n<details><summary>[Create Service Desk tickets from the UI and API](https://docs.gitlab.com/ee/user/project/service_desk/using_service_desk.html#create-a-service-desk-ticket-in-gitlab-ui): <code>Service Desk</code></summary>\n\n> Now you can create Service Desk tickets from the UI and the API using the `/convert_to_ticket user@example.com` quick action on a regular issue.\n> \n> Create a regular issue and add a comment with the `/convert_to_ticket user@example.com` quick action. The provided email address becomes the external author of the ticket. GitLab doesn't send the [default thank you email](https://docs.gitlab.com/ee/user/project/service_desk/configure.html#customize-emails-sent-to-the-requester). You can add a public comment on the ticket to let the external participant know that the ticket has been created.\n> \n> Adding a Service Desk ticket using the API follows the same concept: Create an issue using the [Issues API](https://docs.gitlab.com/ee/api/issues.html#new-issue) and use the `issue_iid` to add a note with the quick action using the [Notes API](https://docs.gitlab.com/ee/api/notes.html#create-new-issue-note).\n\n</details>\n\n\n","released_at":"2024-03-21T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 16.9","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v16.9.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.9.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.9.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.9.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.9.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.9.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":3789404,"url":"https://about.gitlab.com/releases/2024/02/15/gitlab-16-9-released/","name":"GitLab 16.9 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/02/15/gitlab-16-9-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.9.0-ee/gitlab-v16.9.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.9.0-ee/gitlab-v16.9.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.9.0-ee/gitlab-v16.9.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.9.0-ee/gitlab-v16.9.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"76326ae8b898b38c8217ad037ed7122be00e62f0","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/76326ae8b898b38c8217ad037ed7122be00e62f0","short_id":"76326ae8","trailers":[],"created_at":"2024-02-14T14:38:30.000+00:00","parent_ids":["affdf01607dc7d34dea32e5467f99210858e310e"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-02-14T14:38:30.000+00:00","committed_date":"2024-02-14T14:38:30.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v16.9.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v16.9.0-ee","evidences":[],"created_at":"2024-02-15T14:48:46.831Z","milestones":[{"id":3228776,"iid":96,"state":"closed","title":"16.9","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/96","due_date":"2024-02-09","group_id":9970,"created_at":"2023-08-22T21:38:25.420Z","start_date":"2024-01-13","updated_at":"2025-10-22T16:20:34.603Z","description":"","issue_stats":{"total":1917,"closed":1906}}],"commit_path":"/gitlab-org/gitlab/-/commit/76326ae8b898b38c8217ad037ed7122be00e62f0","description":"![32 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=32&style=for-the-badge \"New features added in this release\")\n![3290 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3290&style=for-the-badge \"Total features\")\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Authenticate and sign commits with SSH certificates](https://docs.gitlab.com/ee/user/group/ssh_certificates.html) <i>(SaaS only)</i>: <code>Source Code Management</code></summary>\n\n> Previously, Git access control options on GitLab.com relied on credentials set up in the user account. Now you can set up a process to make Git access possible using only SSH certificates. You can also use these certificates to sign commits.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Enterprise user email address accessible through UI and API](https://docs.gitlab.com/ee/user/enterprise_user/#get-users-email-addresses) <i>(SaaS only)</i>: <code>User Management</code></summary>\n\n> Group Owners that have [enterprise users](https://docs.gitlab.com/ee/user/enterprise_user/) can now use both the user management UI and the [group and project members API](https://docs.gitlab.com/ee/api/members.html) to see those users' email addresses. Previously, only provisioned users' email addresses were returned.\n\n</details>\n\n<details><summary>[Improved UX for expired SAML SSO sessions](https://docs.gitlab.com/ee/user/group/saml_sso/) <i>(SaaS only)</i>: <code>System Access</code></summary>\n\n> If you belong to a group that requires SAML SSO authentication, but you do not have a valid session for that group, a banner is displayed that prompts you to refresh your session. Previously, issues and merge requests were not displayed when a session had expired, but this was not clear to the user. Now, it is clear to users when they must reauthenticate to see all of their work items.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![6 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=6&style=flat-square \"New features added to this tier in this release\")\n![481 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=481&style=flat-square \"Total features in this tier\")\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Fleet Dashboard: Compute minutes used on instance runners per project metric card](https://docs.gitlab.com/ee/ci/runners/runner_fleet_dashboard.html) <i>(self-managed only)</i>: <code>Fleet Visibility</code></summary>\n\n> When managing a GitLab Runner Fleet at scale, you have told us that knowing which projects use the most compute minutes on the runners is critical. For you, this information is essential to help teams optimize CI/CD pipelines and also help you make the right decisions about fleet cost optimization. \n> \n> Now, the runner compute usage by project metric card, a complement to the previously released CI/CD compute minutes export by CSV feature, is available in the Runner Fleet Dashboard. You can see the top projects that consume instance runner minutes, and the most used instance runners in your GitLab environment.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Improvements to Operational Container Scanning](https://docs.gitlab.com/ee/user/clusters/agent/vulnerabilities.html): <code>Software Composition Analysis</code></summary>\n\n> We’ve made reporting and stability improvements to Operational Container Scanning (OCS). Notably, the Trivy report size limit has been increased, which provides a more stable experience for users. Expanding the Trivy report size from 10MB to 100MB allows customers who were constrained by the report size limit to leverage OCS in securing container images in their cluster.\n> \n> With this change to OCS, users who run `gitlab-agent` in FIPS mode cannot run Operational Container Scanning. For more details on this, see our documentation and please provide feedback in issue [#440849](https://gitlab.com/gitlab-org/gitlab/-/issues/440849).\n\n</details>\n\n<details><summary>[DAST analyzer updates](https://docs.gitlab.com/ee/user/application_security/dast/browser/): <code>DAST</code></summary>\n\n> We resolved the following bugs during the 16.9 release milestone:\n> \n> - Browser-based DAST errors when attempting to get the response body for cached resources when the browser has transitioned to a new page. [See the issue](https://gitlab.com/gitlab-org/gitlab/-/issues/435175) for more details.\n> - Browser-based DAST crawl tasks are not running in parallel, causing performance degradation. [See the issue](https://gitlab.com/gitlab-org/gitlab/-/issues/435325) for more details.\n\n</details>\n\n<details><summary>[More detailed security findings in VS Code](https://docs.gitlab.com/ee/editor_extensions/visual_studio_code/): <code>Editor Extensions</code>, <code>API Security</code>, <code>Container Scanning</code>, <code>DAST</code>, <code>Fuzz Testing</code>, <code>SAST</code>, <code>Secret Detection</code>, <code>Software Composition Analysis</code>, <code>Vulnerability Management</code></summary>\n\n> We've improved how security findings are shown in the [GitLab Workflow extension](https://marketplace.visualstudio.com/items?itemName=GitLab.gitlab-workflow#security-findings) for Visual Studio Code (VS Code).\n> You can now see more details of your security findings that weren't previously shown, including:\n> \n> - Full descriptions, with rich-text formatting.\n> - The solution to the vulnerability, if one is available.\n> - A link to the location where the problem occurs in your codebase.\n> - Links to more information about the type of vulnerability discovered.\n> \n> We've also:\n> \n> - Improved how the extension shows the status of security scans before results are ready.\n> - Made other usability improvements.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Audit event for updating or deleting a custom role](https://docs.gitlab.com/ee/administration/audit_event_types.html#permissions): <code>Permissions</code></summary>\n\n> GitLab now records an audit event when a custom role is updated or deleted. This event is important to identify if permissions have been added or changed in case of privilege escalation.\n\n</details>\n\n<details><summary>[Standards Adherence Report Improvements](https://docs.gitlab.com/ee/user/compliance/compliance_center/#standards-adherence-dashboard): <code>Compliance Management</code></summary>\n\n> The [standards adherence report](https://docs.gitlab.com/ee/user/compliance/compliance_center/#view-the-standards-adherence-dashboard), within the\n> [compliance center](https://docs.gitlab.com/ee/user/compliance/compliance_center/), is the destination for compliance teams to monitor their compliance posture.\n> \n> In GitLab 16.5, we introduced the report with the GitLab Standard - a set of common compliance requirements all compliance teams should monitor. The standard helps\n> you understand which projects meet these requirements, which ones fall short, and how to bring them into compliance. Over time, we'll be introducing more standards\n> into the reporting.\n> \n> In this milestone, we've made some improvements which will make reporting more robust and actionable. These include:\n> \n> - Grouping results by check\n> - Filtering by project, check, and standard\n> - Export to CSV (delivered via email)\n> - Improved pagination\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![8 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=8&style=flat-square \"New features added to this tier in this release\")\n![603 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=603&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Duo Chat Beta now available in Premium](https://docs.gitlab.com/ee/user/gitlab_duo_chat/index.html): <code>Duo Chat</code></summary>\n\n> In 16.8, we made GitLab Duo Chat available for self-managed instances. In 16.9, we are making Chat available to Premium customers while it is still in Beta.\n> \n> GitLab Duo Chat can:\n> \n> * Explain or summarize issues, epics, and code.\n> * Answer specific questions about these artifacts like \"Collect all the arguments raised in comments regarding the solution proposed in this issue.\"\n> * Generate code or content based on the information in these artifacts. For example, \"Can you write documentation for this code?\"\n> * Help you start a process. For example, \"Create a `.gitlab-ci.yml` configuration file for testing and building a Ruby on Rails application in a GitLab CI/CD pipeline.\"\n> * Answer all your DevSecOps related question, whether you are a beginner or an expert. For example, \"How can I set up Dynamic Application Security Testing for a REST API?\"\n> * Answer follow-up questions so you can iteratively work through all the previous scenarios.\n> \n> GitLab Duo Chat is available as a [Beta](https://docs.gitlab.com/ee/policy/experiment-beta-support.html#beta) feature. It is also integrated into our Web IDE and GitLab Workflow extension for VS Code as [Experimental](https://docs.gitlab.com/ee/policy/experiment-beta-support.html#experiment) features. In these IDEs, you can also use [predefined chat commands that help you do standard tasks more quickly](https://docs.gitlab.com/ee/user/gitlab_duo_chat/examples.html#explain-code-in-the-ide) like writing tests.\n> \n> You can help us mature these features by providing feedback about your experiences with GitLab Duo Chat, either within the product or through our [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/430124).\n\n</details>\n\n<details><summary>[Limit concurrent code-indexing jobs for advanced search](https://docs.gitlab.com/ee/integration/advanced_search/elasticsearch.html#advanced-search-configuration) <i>(self-managed only)</i>: <code>Global Search</code></summary>\n\n> As a GitLab administrator, you can now set the maximum number of Elasticsearch code-indexing background jobs that can run concurrently. Previously, you could only limit the number of concurrent jobs by creating dedicated Sidekiq processes.\n\n</details>\n\n<details><summary>[Enable Jira issues at the group level](https://docs.gitlab.com/ee/integration/jira/configure.html#view-jira-issues): <code>Integrations</code></summary>\n\n> With this release, you can enable Jira issues for all projects in a GitLab group. Previously, you could only enable Jira issues for each GitLab project individually.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Boards work in progress line](https://docs.gitlab.com/ee/user/project/issue_board.html#work-in-progress-limits): <code>Portfolio Management</code></summary>\n\n> You can now visualize your work in progress limits in a board list. When a limit has been exceeded, an indicator line will appear in the list to help you understand which items are over the limit and manage the list accordingly.\n\n</details>\n\n<details><summary>[New stage events for custom Value Stream Analytics](https://docs.gitlab.com/ee/user/group/value_stream_analytics/#value-stream-stage-events): <code>Value Stream Management</code></summary>\n\n> To improve the [tracking of development workflows in GitLab](https://about.gitlab.com/blog/value-stream-total-time-chart/), the Value Stream Analytics has been extended with a new stage event: `Issue first added to iteration`. You can use this event to detect problems caused by a lack of agility from teams planning too far ahead or execution challenges in teams that have issues rolling over from iteration to iteration. For example, you can now add a \"Planned\" stage that starts when `Issue first added to iteration` and ends when the `Issue first assigned`.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Limit workspaces per user on the GitLab agent](https://docs.gitlab.com/ee/user/workspace/gitlab_agent_configuration.html#workspaces_per_user_quota): <code>Remote Development</code></summary>\n\n> In GitLab 16.8, we introduced settings for the GitLab agent for Kubernetes to limit the CPU and memory usage per workspace.\n> \n> Now in 16.9, you can also limit the number of workspaces per user. With this new setting, you have even more control over your cloud resources and can prevent individual developers from inflating cloud spend.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Control which roles can cancel pipelines or jobs](https://docs.gitlab.com/ee/ci/pipelines/settings.html#restrict-roles-that-can-cancel-pipelines-or-jobs): <code>Continuous Integration (CI)</code></summary>\n\n> Organizations might want to control which user roles are able to cancel a pipeline. Previously, anyone who could run a pipeline could also cancel a pipeline. Now, a project Maintainer is able to update a setting which restricts pipeline and job cancellation to specific roles, or even prevents cancellation completely!\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Add or remove service accounts from groups with LDAP group sync](https://docs.gitlab.com/ee/user/group/access_and_permissions.html#manage-group-memberships-via-ldap) <i>(self-managed only)</i>: <code>User Management</code></summary>\n\n> Previously, if a group had LDAP sync enabled, administrators were not able to invite or remove any users from that group. Now, administrators can use the group and project members API to invite service account users to or remove those users from a group with LDAP sync. Administrators still cannot invite human users to or remove those users from a group with LDAP sync. This ensures that LDAP group sync is the single source of truth for human user account membership, while allowing the flexibility to use service accounts to add automations to LDAP-synced groups.\n\n</details>\n\n\n\n#### Core\n\n![15 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=15&style=flat-square \"New features added to this tier in this release\")\n![2121 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2121&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Allow users to cleanup partial resources from failed deployments](https://docs.gitlab.com/ee/ci/environments/#run-a-pipeline-job-when-environment-is-stopped): <code>Environment Management</code></summary>\n\n> The Environment [`auto_stop_in`](https://docs.gitlab.com/ee/ci/yaml/#environmentauto_stop_in) functionality was updated to run the job from the last finished pipeline, instead of the last successful pipeline. This avoids edge cases where the auto stop job can not run because of not having any successful pipelines.\n> \n> This behavior might be considered a breaking change in some situations. The new behavior is currently behind a feature flag, and will become the default in 17.0, and at the same time, we are going to deprecate the old behavior to be removed from GitLab in 18.0. We recommend everyone to start transitioning or to configure the feature flag immediately to minimize the risks of the breaking change at the first 17.x upgrade.\n\n</details>\n\n<details><summary>[Kubernetes 1.29 support](https://docs.gitlab.com/ee/user/clusters/agent/#supported-cluster-versions): <code>Deployment Management</code></summary>\n\n> This release adds full support for Kubernetes version 1.29, released in December 2023. If you deploy your apps to Kubernetes, you can now upgrade your connected clusters to the most recent version and take advantage of all its features.\n> \n> You can read more about our Kubernetes support policy and other supported Kubernetes versions.\n\n</details>\n\n<details><summary>[Custom guidelines for managing group and project members](https://docs.gitlab.com/ee/administration/appearance.html#member-guidelines) <i>(self-managed only)</i>: <code>Groups & Projects</code></summary>\n\n> Administrators can now add text guidelines that are visible to users with permissions to manage members on the **Members** page of a group or project. Administrators can access these guidelines in the **Appearance** section of the **Admin Area** settings.\n> \n> Guidelines are helpful for teams that use external tooling to manage members of groups or projects. For instance, the guideline can link to predefined groups that users should use instead of managing membership for individual members.\n> \n> Thank you @bufferoverflow for this community contribution!\n\n</details>\n\n<details><summary>[Show import stats for direct transfer](https://docs.gitlab.com/ee/user/group/import/index.html#review-results-of-the-import): <code>Importers</code></summary>\n\n> Completed migrations of GitLab groups and projects by direct transfer have displayed badges (**Complete**, **Partially completed**, and **Failed**)\n> to inform users about the general end result of the migration. Users could also access a list of items that were not imported, by clicking on the **See failures** link.\n> \n> However, for a partially-imported project, there was no quick way to understand how many items of each type were successfully imported and how many were not.\n> \n> In this release, we added import results statistics for groups and projects. To access the statistics, select the **Details** link on the direct transfer history page.\n\n</details>\n\n<details><summary>[REST API support for the GitLab for Slack app](https://docs.gitlab.com/ee/api/integrations.html#gitlab-for-slack-app): <code>Integrations</code></summary>\n\n> With this release, we've added REST API support for the GitLab for Slack app.\n> \n> You cannot create a GitLab for Slack app from the API. Instead, you must [install the app](https://docs.gitlab.com/ee/user/project/integrations/gitlab_slack_application.html#install-the-gitlab-for-slack-app) from the GitLab UI. You can then retrieve the integration settings and update or disable the app for a project.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Rich text editor broader availability](https://docs.gitlab.com/ee/user/rich_text_editor/): <code>Team Planning</code>, <code>Portfolio Management</code></summary>\n\n> In GitLab 16.2, [we released](https://about.gitlab.com/releases/2023/07/22/gitlab-16-2-released/) the rich text editor as an alternative to the plain text editor. The rich text editor provides a \"what you see is what you get\" editing interface, and an extensible foundation for additional development. Until this release, however, the rich text editor was available only in issues, epics, and merge requests.\n> \n> With GitLab 16.9, the rich text editor is now available in:\n> \n> - [Requirements descriptions](https://gitlab.com/gitlab-org/gitlab/-/issues/407493)\n> - [Vulnerability findings](https://gitlab.com/gitlab-org/gitlab/-/issues/407491)\n> - [Release descriptions](https://gitlab.com/gitlab-org/gitlab/-/issues/407494)\n> - [Design notes](https://gitlab.com/gitlab-org/gitlab/-/issues/407505)\n> \n> With improved access to the rich text editor, you can collaborate more efficiently and without previous Markdown experience.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Request changes on merge requests](https://docs.gitlab.com/ee/user/project/merge_requests/reviews/#submit-a-review): <code>Code Review Workflow</code></summary>\n\n> The last part of reviewing a merge request is communicating the outcome. While approving was unambiguous, leaving comments was not. They required the author to read your comments, then determine if the comments were purely informational, or described needed changes. Now, when you complete your review, you can select from three options:\n> \n>  - **Comment**: Submit general feedback without explicitly approving.\n>  - **Approve**: Submit feedback and approve the changes.\n>  - **Request changes**: Submit feedback that should be addressed before merging.\n> \n> The sidebar now shows the outcome of your review next to your name. Currently, ending your review with **Request changes** doesn't block the merge request from being merged, but it provides extra context to other participants in the merge request. \n> \n> You can leave feedback about the **Request changes** feature in our [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/438573).\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[GitLab Runner 16.9](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 16.9 today! GitLab Runner is the lightweight, highly-scalable agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [Make Kubernetes API retries configurable](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37349)\n> \n> #### Bug Fixes:\n> \n> - [Random warning: failed to remove ***: Directory not empty](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/3185)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/16-9-stable/CHANGELOG.md).\n\n</details>\n\n<details><summary>[Show MR link for branch based pipelines](https://docs.gitlab.com/ee/ci/pipelines/#view-pipelines): <code>Continuous Integration (CI)</code></summary>\n\n> If you use branch pipelines, you can now quickly view and access the related merge requests from the pipeline details page.\n\n</details>\n\n<details><summary>[Improvements to the CI/CD variables user interface](https://docs.gitlab.com/ee/ci/variables/): <code>Secrets Management</code></summary>\n\n> In GitLab 16.9, we have released a series of improvements to the CI/CD variables user experience. We have improved the variables creation flow through changes including:\n> \n> - [Improved validation when variable values do not meet the requirements](https://gitlab.com/gitlab-org/gitlab/-/issues/365934).\n> - [Help text during variable creation](https://gitlab.com/gitlab-org/gitlab/-/issues/410220).\n> - [Allow resizing of the value field in the variables form](https://gitlab.com/gitlab-org/gitlab/-/issues/434667).\n> \n> Other improvements include a new, [optional description field for group and project variables](https://gitlab.com/gitlab-org/gitlab/-/issues/378938) to assist with the management of variables. We have also made it easier to [add or edit multiple variables](https://gitlab.com/gitlab-org/gitlab/-/issues/434666), lowering the friction in the software development workflow and enabling developers to perform their job more efficiently.\n> \n> Your [feedback for these changes](https://gitlab.com/gitlab-org/gitlab/-/issues/441177) is always valued and appreciated.\n\n</details>\n\n<details><summary>[Expanded options for auto-canceling pipelines](https://docs.gitlab.com/ee/ci/yaml/index.html#workflowauto_cancelon_new_commit): <code>Pipeline Composition</code></summary>\n\n> Currently, to use the [auto-cancel redundant pipeline feature](https://docs.gitlab.com/ee/ci/pipelines/settings.html#auto-cancel-redundant-pipelines), you must set jobs that can be cancelled as [`interruptible: true`](https://docs.gitlab.com/ee/ci/yaml/index.html#interruptible) to determine whether or not a pipeline can be cancelled. But this only applies to jobs that are actively running when GitLab tries to cancel the pipeline. Any jobs that have not yet started (are in \"pending\" status) are also considered safe to cancel, regardless of their `interruptible` configuration.\n> \n> This lack of flexibility hinders users who want more control over which exact jobs can be cancelled by the auto-cancel pipeline feature. To address this limitation, we are pleased to announce the introduction of the `auto_cancel:on_new_commit` keywords with more granular control over job cancellation. If the legacy behavior did not work for you, you now have the option to configure the pipeline to only cancel jobs that are explicitly set with `interruptible: true`, even if they haven't started yet. You can also set jobs to never be automatically cancelled.\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Allow duplicate Terraform modules](https://docs.gitlab.com/ee/user/packages/terraform_module_registry/#allow-duplicate-terraform-modules): <code>Package Registry</code></summary>\n\n> You can use the GitLab package registry to publish and download Terraform modules. By default, you cannot publish the same module name and version more than once per project.\n> \n> However, you might want to allow duplicate uploads, especially for releases. In this release, GitLab expands the group setting for the package registry so you can allow or deny duplicate modules.\n\n</details>\n\n<details><summary>[Validate Terraform modules from your group or subgroup](https://docs.gitlab.com/ee/user/packages/package_registry/#view-packages): <code>Package Registry</code></summary>\n\n> When using the GitLab Terraform registry, it is important to have a cross-project view of all your modules. Until recently, the user interface has been available only at the project level. If your group had a complex structure, you might have had difficulty finding and validating your modules.\n> \n> From GitLab 16.9, you can view all of your group and subgroup modules in GitLab. The increased visibility provides a better understanding of your registry, and decreases the likelihood of name collisions.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Updated SAST rules for higher-quality results](https://docs.gitlab.com/ee/user/application_security/sast/rules.html#important-rule-changes): <code>SAST</code></summary>\n\n> We've updated more than 40 default GitLab SAST rules to:\n> \n> - Increase true-positive results (correctly identified vulnerabilities) and reduce false-negative results (incorrectly identified vulnerabilities) by updating the detection logic rules for C#, Go, Java, JavaScript, and Python.\n> - Add [OWASP mappings](https://gitlab.com/gitlab-org/gitlab/-/issues/438561) for C#, Go, Java, and Python rules.\n> \n> The rule changes are included in updated versions of the Semgrep-based GitLab SAST [analyzer](https://docs.gitlab.com/ee/user/application_security/sast/analyzers/).\n> This update is automatically applied on GitLab 16.0 or newer unless you've [pinned SAST analyzers to a specific version](https://docs.gitlab.com/ee/user/application_security/sast/#pinning-to-minor-image-version).\n> We're working on more SAST rule improvements in [epic 10907](https://gitlab.com/groups/gitlab-org/-/epics/10907).\n\n</details>\n\n\n\n##### [Monitor](https://about.gitlab.com/stages-devops-lifecycle/monitor/)\n\n<details><summary>[Access GitLab usage data through the REST API](https://docs.gitlab.com/ee/api/usage_data.html#export-service-ping-data) <i>(self-managed only)</i>: <code>Application Instrumentation</code></summary>\n\n> Self-managed users can now seamlessly access Service Ping data through a REST API connection, facilitating direct integration with downstream systems. This represents a significant improvement over the previous method of file download. The new approach offers self-managed users a more efficient and real-time means of conducting customized analysis and deriving specific insights from their GitLab usage data.\n\n</details>\n\n\n","released_at":"2024-02-15T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 16.8","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v16.8.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.8.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.8.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.8.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.8.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.8.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":3664893,"url":"https://about.gitlab.com/releases/2024/01/18/gitlab-16-8-released/","name":"GitLab 16.8 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2024/01/18/gitlab-16-8-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.8.0-ee/gitlab-v16.8.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.8.0-ee/gitlab-v16.8.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.8.0-ee/gitlab-v16.8.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.8.0-ee/gitlab-v16.8.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"1e912d57d5a8f1135f4d41e25469069790134d41","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/1e912d57d5a8f1135f4d41e25469069790134d41","short_id":"1e912d57","trailers":[],"created_at":"2024-01-17T10:05:54.000+00:00","parent_ids":["4d8c497fbc4518f94996ae10f813def072c92761"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2024-01-17T10:05:54.000+00:00","committed_date":"2024-01-17T10:05:54.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v16.8.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v16.8.0-ee","evidences":[],"created_at":"2024-01-18T15:22:21.696Z","milestones":[{"id":3128143,"iid":94,"state":"closed","title":"16.8","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/94","due_date":"2024-01-12","group_id":9970,"created_at":"2023-06-02T08:12:00.651Z","start_date":"2023-12-16","updated_at":"2025-10-22T16:20:32.982Z","description":"","issue_stats":{"total":1277,"closed":1268}}],"commit_path":"/gitlab-org/gitlab/-/commit/1e912d57d5a8f1135f4d41e25469069790134d41","description":"![27 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=27&style=for-the-badge \"New features added in this release\")\n![3258 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3258&style=for-the-badge \"Total features\")\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Windows 2022 support for SaaS runners on Windows](https://docs.gitlab.com/ee/ci/runners/saas/windows_saas_runner.html) <i>(SaaS only)</i>: <code>GitLab Runner SaaS</code></summary>\n\n> Teams can now build, test, and deploy applications on Windows Server 2022.\n> \n> SaaS runners on Windows allow you to increase your development teams' velocity in building and deploying applications that require Windows in a secure, on-demand GitLab Runner build environment integrated with GitLab CI/CD.\n> \n> Try it out today by using `saas-windows-medium-amd64` as the tag in your `.gitlab-ci.yml` file.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![12 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=12&style=flat-square \"New features added to this tier in this release\")\n![475 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=475&style=flat-square \"Total features in this tier\")\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Introduce group-level landing page for Analytics Dashboards](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html): <code>Value Stream Management</code></summary>\n\n> We are introducing a new landing page for the group-level analytics dashboard. This enhancement ensures a more consistent and user-friendly navigation experience. In the first phase this page includes the [Value Streams Dashboard](https://www.youtube.com/watch?v=8pLEucNUlWI), but it also sets the groundwork for future features, allowing you to personalize your dashboards. These improvements aim to streamline your experience, and provide more flexibility in managing and interpreting your data.\n\n</details>\n\n<details><summary>[View all ancestor items of a task or OKR](https://docs.gitlab.com/ee/user/tasks.html): <code>Portfolio Management</code></summary>\n\n> With this release, you can now view the entire hierarchy lineage of a work item instead of just the immediate parent.\n> \n> Work items include:\n> - Tasks, in all tiers.\n> - [Objectives and key results](https://docs.gitlab.com/ee/user/okrs.html), in the Ultimate tier and behind a feature flag.\n\n</details>\n\n<details><summary>[Deeper insights into velocity in the Issue Analytics report](https://docs.gitlab.com/ee/user/group/issues_analytics/index.html): <code>Value Stream Management</code></summary>\n\n> The **Issue Analytics** report now contains information on the number of closed issues in a month to allow for a detailed velocity analysis. With this valuable addition, GitLab users can now gain insights into trends associated with their projects, and improve the overall turn-around time and value delivered to their customers. The **Issue Analytics** visualization contains a bar chart with the number of issues for each month, with a default time span of 13 months. You can access this chart from the drill-down in the [Value Streams Dashboard](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#dashboard-metrics-and-drill-down-reports).\n</details>\n\n<details><summary>[New organization-level DevOps view with DORA-based industry benchmarks](https://docs.gitlab.com/ee/user/analytics/value_streams_dashboard.html#dora-performers-score-panel): <code>Value Stream Management</code>, <code>DORA Metrics</code></summary>\n\n> We added a new **DORA Performers score** panel to the [Value Streams Dashboard](https://www.youtube.com/watch?v=EA9Sbks27g4) to visualize the status of the organization's DevOps performance across different projects. This new visualization displays a breakdown of the DORA score (high, medium, or low) so that executives can understand the organization's DevOps health top to bottom.\n> \n> The [four DORA metrics](https://about.gitlab.com/solutions/value-stream-management/dora/#overview) are available out-of-the-box in GitLab, and now with the new DORA scores organizations can compare their DevOps performance against [industry benchmarks](https://dora.dev/) or peers. This benchmarking helps executives understand where they stand in relation to others, and identify best practices or areas where they might be lagging behind.\n> \n> To help us improve the Value Streams Dashboard, please share feedback about your experience in this [survey](https://gitlab.fra1.qualtrics.com/jfe/form/SV_50guMGNU2HhLeT4).\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Runner Fleet Dashboard: CSV export of compute minutes used by instance runners](https://docs.gitlab.com/ee/ci/runners/runner_fleet_dashboard.html#export-compute-minutes-used-by-instance-runners) <i>(self-managed only)</i>: <code>Fleet Visibility</code></summary>\n\n> You might need to run a report of CI/CD compute minutes used by projects on instance runners for various reasons. However, there wasn't a simple to use mechanism in GitLab for you to generate a CI/CD compute minutes usage report. With this feature, you can export a report of CI/CD compute minutes used by each project on shared runners as a CSV file.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Static Analysis Findings in Merge request changes view](https://docs.gitlab.com/ee/user/application_security/sast/#merge-request-changes-view): <code>SAST</code></summary>\n\n> Static Analysis now supports displaying the findings in the Merge request changes view.\n> No need to navigate elsewhere – it's all consolidated in one place. The UI is refined for a more straightforward encounter. For specifics, just open the drawer. Learn more from the linked documentation, demo video and rollout issue.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[New customizable permissions](https://docs.gitlab.com/ee/user/custom_roles.html): <code>Permissions</code></summary>\n\n> There are five new abilities available you can use to create custom roles:\n> \n> - Manage project access tokens.\n> - Manage group access tokens.\n> - Manage group members.\n> - Ability to archive a project.\n> - Ability to delete a project.\n> \n> Add these abilities, along with other pre-existing custom abilities, to any base role to create a custom role. Custom roles allow you to define granular roles that only give a user the abilities they need to do their jobs, and reduce unnecessary privilege escalation.\n\n</details>\n\n<details><summary>[Assign a custom role with SAML SSO](https://docs.gitlab.com/ee/user/group/saml_sso/#configure-gitlab): <code>Permissions</code></summary>\n\n> Users can be assigned a custom role as the default role they are created with when they are provisioned with SAML SSO. Previously, only static roles could be chosen as the default. This allows automatically provisioned users to be assigned a role that best aligns with the principle of least privilege. \n\n</details>\n\n<details><summary>[Filter streaming audit events by sub group/project at group level](https://docs.gitlab.com/ee/administration/audit_event_streaming/index.html): <code>Compliance Management</code></summary>\n\n> Streaming audit events have been extended to support filtering by sub-group or project at the group level, in addition to the existing support for event type filtering.\n> \n> This additional filter will allow you to separate out events in your streams to send to different destinations, or to exclude irrelevant sub-groups/projects, ensuring you have the most actionable events for your team to monitor.\n\n</details>\n\n<details><summary>[Instance-level audit event streaming to AWS S3](https://docs.gitlab.com/ee/administration/audit_event_streaming/#aws-s3-destinations-1): <code>Audit Events</code></summary>\n\n> Previously, you could configure only top-level group streaming audit events for AWS S3.\n> \n> With GitLab 16.8, we've extended support for AWS S3 to instance-level streaming destinations.\n\n</details>\n\n<details><summary>[Enforce policy to prevent branches being deleted or unprotected](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html): <code>Security Policy Management</code></summary>\n\n> One of several new settings added to scan result policies to aide in [compliance enforcement of security policies](https://gitlab.com/groups/gitlab-org/-/epics/9704), branch modification controls will limit the ability to circumvent policies by changing project-level settings.\n> \n> For each existing or new scan result policy, you can enable `Prevent branch modification` to take effect for the branches defined within the policy to prevent users from deleting or unprotecting those branches.\n\n</details>\n\n<details><summary>[SAML Group Sync for custom roles](https://docs.gitlab.com/ee/user/group/saml_sso/group_sync.html#configure-saml-group-links): <code>Permissions</code></summary>\n\n> You can now use SAML Group Sync to map custom roles to groups of users. Previously, you could only map SAML groups to GitLab static roles. This gives more flexibility to customers who use SAML Group Links to manage group membership and member roles.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![7 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=7&style=flat-square \"New features added to this tier in this release\")\n![595 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=595&style=flat-square \"Total features in this tier\")\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Set CPU and memory usage per workspace](https://docs.gitlab.com/ee/user/workspace/gitlab_agent_configuration.html#remote-development-settings): <code>Workspaces</code></summary>\n\n> Improved developer experience, onboarding, and security are driving more development toward cloud IDEs and on-demand development environments. However, these environments might contribute to increased infrastructure costs. You can already configure CPU and memory usage per project in your [devfile](https://docs.gitlab.com/ee/user/workspace/#devfile).\n> \n> Now you can also set CPU and memory usage per workspace. By configuring requests and limits at the GitLab agent level, you can prevent individual developers from using an excessive amount of cloud resources.\n\n</details>\n\n<details><summary>[Workspaces are now generally available](https://docs.gitlab.com/ee/user/workspace/): <code>Workspaces</code></summary>\n\n> We're thrilled to share that Workspaces are now generally available and ready to improve your developer efficiency!\n> \n> By creating secure, on-demand remote development environments, you can reduce the time you spend managing dependencies and onboarding new developers and focus on delivering value faster. With our platform-agnostic approach, you can use your existing cloud infrastructure to host your workspaces and keep your data private and secure.\n> \n> Since their introduction in GitLab 16.0, workspaces have received improvements to error handling and reconciliation, support for private projects and SSH connections, additional configuration options, and a new administrator interface. These improvements mean that workspaces are now more flexible, more resilient, and more easily managed at scale.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[CI/CD Components Catalog section for your internal components](https://docs.gitlab.com/ee/ci/components/#cicd-catalog): <code>Pipeline Composition</code></summary>\n\n> As the number of items in the CI/CD catalog continues to expand, it is increasingly challenging for you to locate the CI/CD components released by your teams and available to you. In this release, we are introducing a dedicated **Your groups** tab, empowering you to effortlessly filter and identify the components associated with your organization. This simplified search process enhances efficiency, as you can more quickly find and use released CI/CD components.\n\n</details>\n\n<details><summary>[Google Cloud Secret Manager support](https://docs.gitlab.com/ee/ci/secrets/gcp_secret_manager.html): <code>Secrets Management</code></summary>\n\n> Secrets stored in Google Cloud Secret Manager can now be easily retrieved and used in CI/CD jobs. Our new integration simplifies the process of interacting with Google Cloud Secret Manager through GitLab CI/CD, helping you streamline your build and deploy processes! This is just one of the many ways [GitLab and Google Cloud are better together](https://about.gitlab.com/blog/gitlab-google-partnership-s3c/)!\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Speed up your builds with the Maven dependency proxy](https://docs.gitlab.com/ee/user/packages/package_registry/dependency_proxy/): <code>Dependency Proxy</code>, <code>Package Registry</code></summary>\n\n> A typical software project relies on a variety of dependencies, which we call packages. Packages can be internally built and maintained, or sourced from a public repository. Based on our user research, we've learned that most projects use a 50/50 mix of public and private packages. Package installation order is very important, as using an incorrect package version can introduce breaking changes and security vulnerabilities into your pipelines.\n> \n> Now you can add one external Java repository to your GitLab project. After adding it, when you install a package using the dependency proxy, GitLab first checks for the package in the project. If it's not found, GitLab then attempts to pull the package from the external repository.\n> \n> When a package is pulled from the external repository, it's imported into the GitLab project. The next time that particular package is pulled, it's pulled from GitLab and not the external repository. Even if the external repository is having connectivity issues and the package is present in the dependency proxy, pulling the package still works, making your pipelines faster and more reliable.\n> \n> If the package changes in the external repository (for example, a user deletes a version and publishes a new one with different files) the dependency proxy detects it. It invalidates the package, so GitLab pulls the newer one. This ensures the correct packages are downloaded, and helps reduce security vulnerabilities.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Compliance framework management improvements](https://docs.gitlab.com/ee/user/group/compliance_frameworks.html): <code>Compliance Management</code></summary>\n\n> Our compliance center is becoming the central destination for understanding\n> compliance posture and managing compliance frameworks. We're moving framework\n> management into a new tab in the compliance center, as well as adding more exciting\n> capabilities:\n> \n> - View frameworks in a list view in the **Frameworks** tab.\n> - Search and filter to find specific frameworks.\n> - Use the new compliance framework sidebar to explore more details for each framework.\n> - Edit your framework to view all settings, including managing name, description, linked projects, and more.\n> - Create a quick report of your frameworks with an export to CSV.\n\n</details>\n\n<details><summary>[SAML SSO authentication for merge request approval](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/settings.html#require-user-re-authentication-to-approve): <code>Code Review Workflow</code></summary>\n\n> For those using SAML SSO and SCIM for user account management in GitLab, you can now use SSO to meet the merge request authentication requirement\n> over password-based authentication for approving merge requests.\n> \n> This method ensures only authenticated users can approve a merge request for security and compliance, without having to use a separate\n> password-based solution.\n\n</details>\n\n\n\n#### Core\n\n![7 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=7&style=flat-square \"New features added to this tier in this release\")\n![2106 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2106&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Kubernetes 1.28 support](https://docs.gitlab.com/ee/user/clusters/agent/#supported-cluster-versions): <code>Deployment Management</code></summary>\n\n> This release adds full support for Kubernetes version 1.28, released in August 2023. If you deploy your apps to Kubernetes, you can now upgrade your connected clusters to the most recent version and take advantage of all its features.\n> \n> You can read more about our Kubernetes support policy and other supported Kubernetes versions.\n\n</details>\n\n<details><summary>[Omnibus improvements](https://docs.gitlab.com/omnibus/) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> From GitLab 16.8, you can specify commands to generate configurations for the following services in the\n> `gitlab.rb` file so that plaintext passwords are not exposed:\n> \n> - GitLab Kubernetes Agent Server\n> - GitLab Workhorse\n> - GitLab Exporter\n> \n> This means plaintext passwords for Redis no longer need to be stored in `gitlab.rb`.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Smarter approval resets with `patch-id` support](https://docs.gitlab.com/ee/user/project/merge_requests/approvals/settings.html#remove-all-approvals-when-commits-are-added-to-the-source-branch): <code>Code Review Workflow</code></summary>\n\n> To ensure all changes are reviewed and approved, it's common to remove all approvals when new commits are added to a merge request. However, rebases also unnecessarily invalidated existing approvals, even if the rebase introduced no new changes, requiring authors to seek re-approval.\n> \n> Merge request approvals now align to a [`git-patch-id`](https://git-scm.com/docs/git-patch-id). It's a reasonably stable and reasonably unique identifier that enables smarter decisions about resetting approvals. By comparing the `patch-id` before and after the rebase, we can determine if new changes were introduced that should reset approvals and require a review.\n> \n> If you have feedback about your experiences with resets now, let us know in [issue #435870](https://gitlab.com/gitlab-org/gitlab/-/issues/435870).\n\n</details>\n\n<details><summary>[View blame information directly in the file page](https://docs.gitlab.com/ee/user/project/repository/git_blame.html#view-blame-for-a-file): <code>Source Code Management</code></summary>\n\n> In previous versions of GitLab, viewing file blame required you to access a different page. Now you can view the file blame information directly from the file page.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[GitLab Runner 16.8](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're also releasing GitLab Runner 16.8 today! GitLab Runner is the lightweight, highly-scalable agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [Overwrite generated Kubernetes pod specifications - Beta ](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29659)\n> \n> #### Bug Fixes:\n> \n> - [GitLab Runner authentication token exposed in the runner log file](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37224)\n> - [Registering multiple autoscaling runners results in a partial config.toml file](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/37197)\n> - [Interrupt of the restore_cache helper task corrupts the cache](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/36988)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/16-8-stable/CHANGELOG.md).\n\n</details>\n\n<details><summary>[Predefined variables for merge request description](https://docs.gitlab.com/ee/ci/variables/predefined_variables.html#predefined-variables-for-merge-request-pipelines): <code>Secrets Management</code></summary>\n\n> If you use automation to work with merge requests in CI/CD pipelines, you might have wanted an easier way to fetch a merge request's description without an API call. In GitLab 16.7 we introduced the `CI_MERGE_REQUEST_DESCRIPTION` predefined variable, making the description easily accessible in all jobs. In GitLab 16.8 we tweaked the behavior to truncate `CI_MERGE_REQUEST_DESCRIPTION` at 2700 characters, because very large descriptions can cause runner errors. You can check if the description was truncated with the newly introduced `CI_MERGE_REQUEST_DESCRIPTION_IS_TRUNCATED` predefined variable, which is set to `true` when the description was truncated.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Enforce 2FA for GitLab administrators](https://docs.gitlab.com/ee/security/two_factor_authentication.html#enforce-2fa-for-administrator-users) <i>(self-managed only)</i>: <code>User Management</code></summary>\n\n> You can now enforce whether GitLab administrators are required to use two-factor authentication (2FA) in their self-managed instance. It is good security practice to use 2FA for all accounts, especially for privileged accounts like administrators. If this setting is enforced, and an administrator does not already use 2FA, they must set up 2FA on their next sign-in.\n\n</details>\n\n\n","released_at":"2024-01-18T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 16.7","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v16.7.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.7.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.7.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.7.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.7.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.7.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":3580666,"url":"https://about.gitlab.com/releases/2023/12/21/gitlab-16-7-released/","name":"GitLab 16.7 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2023/12/21/gitlab-16-7-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.7.0-ee/gitlab-v16.7.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.7.0-ee/gitlab-v16.7.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.7.0-ee/gitlab-v16.7.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.7.0-ee/gitlab-v16.7.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"9e7d34f7ff11405ece06ec398b66965d153cee6f","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/9e7d34f7ff11405ece06ec398b66965d153cee6f","short_id":"9e7d34f7","trailers":[],"created_at":"2023-12-20T08:49:00.000+00:00","parent_ids":["d063f21eebd838a414acfb014bc9950c3161fca1"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2023-12-20T08:49:00.000+00:00","committed_date":"2023-12-20T08:49:00.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"tag_name":"v16.7.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v16.7.0-ee","evidences":[],"created_at":"2023-12-22T00:51:42.661Z","milestones":[{"id":3196804,"iid":95,"state":"closed","title":"16.7","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/95","due_date":"2023-12-15","group_id":9970,"created_at":"2023-07-26T15:55:18.497Z","start_date":"2023-11-11","updated_at":"2025-10-22T16:20:31.388Z","description":"","issue_stats":{"total":2170,"closed":2149}}],"commit_path":"/gitlab-org/gitlab/-/commit/9e7d34f7ff11405ece06ec398b66965d153cee6f","description":"![36 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=36&style=for-the-badge \"New features added in this release\")\n![3231 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3231&style=for-the-badge \"Total features\")\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[List repository tags with new Container Registry API](https://docs.gitlab.com/ee/api/container_registry.html#list-registry-repository-tags) <i>(SaaS only)</i>: <code>Container Registry</code></summary>\n\n> Previously, the Container Registry relied on the Docker/OCI [listing image tags registry API](https://gitlab.com/gitlab-org/container-registry/-/blob/5208a0ce1600b535e529cd857c842fda6d19ad59/docs/spec/docker/v2/api.md#listing-image-tags) to list and display tags in GitLab. This API had significant performance and discoverability limitations.\n> \n> This API performed slowly because the number of network requests against the registry scaled with the number of tags in the tags list. In addition, because the API didn't track publish time, the published timestamp was often incorrect. There were also limitations when displaying images based on Docker manifest lists or OCI indexes, such as for multi-architecture images.\n> \n> To address these limitations, we introduced a new registry [list repository tags API](https://gitlab.com/gitlab-org/container-registry/-/blob/5208a0ce1600b535e529cd857c842fda6d19ad59/docs/spec/gitlab/api.md#list-repository-tags). By updating the user interface to use the new API, the number of requests to the Container Registry is reduced to just one. Publish timestamps are also accurate, and there is more robust support for multi-architecture images.\n> \n> This feature is available only on GitLab.com. Self-managed support is blocked until the next-generation Container Registry is generally available. To learn more, see [issue 423459](https://gitlab.com/gitlab-org/gitlab/-/issues/423459).\n\n</details>\n\n<details><summary>[Rename projects with container images in the container registry on GitLab.com](https://docs.gitlab.com/ee/user/project/working_with_projects.html#edit-project-name-and-description) <i>(SaaS only)</i>: <code>Container Registry</code></summary>\n\n> Before this release, you could not rename a project that had a container repository with at least one tag without having first deleted all container images associated with that project. \n> \n> This was a real problem that forced users to rely on custom scripts to manually delete/move all tags before a different project name could be used, but now you can rename projects on GitLab.com, even if they have container images in the registry! \n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[SAST results in MR changes view](https://docs.gitlab.com/ee/user/application_security/sast/#merge-request-changes-view) <i>(SaaS only)</i>: <code>SAST</code></summary>\n\n> SAST findings now appear in the merge request Changes view.\n> This makes it easier to see, understand, and fix potential weaknesses during the code review process.\n> \n> Lines containing SAST issues are marked by a symbol beside the gutter.\n> Select the symbol to see the list of issues, then select an issue to see its details.\n> \n> We've enabled this feature on GitLab.com.\n> We plan to enable the [feature flag](https://gitlab.com/gitlab-org/gitlab/-/issues/410191) by default for Self-Managed instances in GitLab 16.8.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![7 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=7&style=flat-square \"New features added to this tier in this release\")\n![463 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=463&style=flat-square \"Total features in this tier\")\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[New drill-down view from Insights report charts](https://docs.gitlab.com/ee/user/group/insights/#drill-down-on-charts): <code>Value Stream Management</code></summary>\n\n> With the [Insights report](https://www.youtube.com/watch?v=OMTfPsLa98I) you can analyze patterns over time using customizable charts. The new drill-down capability added to the \"Bugs created by priority\" and \"Bugs created by severity\" Insights reports allows you to drill down on the [Issue analytics](https://docs.gitlab.com/ee/user/group/issues_analytics/) report for deeper analysis. \n> \n> We plan to include this capability in the other Insight reports as a custom option in a later version.\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Support for Continuous Vulnerability Scanning for Dependency Scanning](https://docs.gitlab.com/ee/user/application_security/continuous_vulnerability_scanning/index.html): <code>Software Composition Analysis</code></summary>\n\n> Continuous Vulnerability Scanning is now Generally Available. With CVS enabled, your projects are automatically scanned when advisories are added to the GitLab Advisory Database. If new dependency-related vulnerabilities are identified, vulnerabilities are created automatically.\n\n</details>\n\n<details><summary>[DAST vulnerability check updates](https://docs.gitlab.com/ee/user/application_security/dast/checks/): <code>DAST</code></summary>\n\n> During the 16.7 release milestone, we enabled the following active checks for browser-based DAST by default:\n> \n> - Check 89.1 replaces ZAP checks 40018, 40019, 40020, 40021, 40022, 40024, 40027, 40033, and 90018 and identifies SQL Injection.\n> - Check 918.1 replaces ZAP check 40046 and identifies Server Side Request Forgery.\n> - Check 98.1 replaces ZAP check 7 and identifies PHP Remote File Inclusion.\n> - Check 917.1 replaces ZAP check 90025 and identifies Expression Language Injection.\n> - Check 1336.1 replaces ZAP check 90035 and Server-Side Template Injection.\n\n</details>\n\n<details><summary>[DAST authentication now supports multi-step login forms](https://docs.gitlab.com/ee/user/application_security/dast/authentication.html#perform-additional-actions-after-submitting-the-username-and-password): <code>DAST</code></summary>\n\n> The new `DAST_AFTER_LOGIN_ACTIONS` variable enables you to provide a list of actions to be executed after login. This allows for multi step login interactions, for example Azure AD's \"Keep Me Signed In\" workflow.\n\n</details>\n\n<details><summary>[Updated SAST rules to reduce false-positive results](https://docs.gitlab.com/ee/user/application_security/sast/rules.html#important-rule-changes): <code>SAST</code></summary>\n\n> We've updated the default ruleset used in GitLab SAST to provide higher-quality results.\n> We analyzed each rule that was previously included by default, then removed rules that did not provide enough value in most codebases.\n> \n> The rule changes are included in updated versions of the Semgrep-based GitLab SAST [analyzer](https://docs.gitlab.com/ee/user/application_security/sast/analyzers.html).\n> This update is automatically applied on GitLab 16.0 or newer unless you've [pinned SAST analyzers to a specific version](https://docs.gitlab.com/ee/user/application_security/sast/#pinning-to-minor-image-version).\n> \n> Existing scan results from the removed rules are [automatically resolved](https://docs.gitlab.com/ee/user/application_security/sast/#automatic-vulnerability-resolution) after your pipeline runs a scan with the updated analyzer.\n> \n> We're working on more SAST rule improvements in [epic 10907](https://gitlab.com/groups/gitlab-org/-/epics/10907).\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Use the UI to assign users to custom roles](https://docs.gitlab.com/ee/user/custom_roles.html#add-a-user-to-your-group-with-a-custom-role): <code>Permissions</code></summary>\n\n> You can now use the UI to assign a custom role to a new user, or change an existing user's role to a custom role. You can do this in any part of the UI where you can currently assign or change a user's role. Previously, you could only do this through the API.\n\n</details>\n\n<details><summary>[Enforce variables in Scan Execution Policies with the highest precedence](https://docs.gitlab.com/ee/ci/variables/#cicd-variable-precedence): <code>Security Policy Management</code></summary>\n\n> CI/CD variable precedence has been improved to first prioritize variables defined in scan execution policies. \n> \n> As organizations work to meet compliance requirements, a common need is to ensure that security scanners are enabled in business critical applications. \n> \n> Scan execution policies allow teams to enforce scanners and to define default and custom CI/CD variables. With this enhancement to CI/CD variable precedence, teams can be confident that regardless of how pipelines are triggered, the variables defined with compliance in mind remain intact.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![5 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=5&style=flat-square \"New features added to this tier in this release\")\n![588 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=588&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Issues with code more discoverable in advanced search](https://docs.gitlab.com/ee/user/search/advanced_search.html): <code>Global Search</code></summary>\n\n> In GitLab 16.7, issues with code have become more discoverable. With advanced search, you can now find issues that contain code snippets and logs in their descriptions.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[GitLab Duo Code Suggestions is generally available](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/): <code>Code Suggestions</code></summary>\n\n> [GitLab Duo Code Suggestions](https://about.gitlab.com/solutions/code-suggestions/) is now generally available!\n> \n> GitLab Duo Code Suggestions helps teams create software faster and more efficiently, by completing lines of code and defining and generating logic for functions.\n> \n> Code Suggestions is built with privacy as a critical foundation. Private, non-public customer code stored in GitLab is not used as training data. Learn about [data usage](https://docs.gitlab.com/ee/user/gitlab_duo/data_usage.html) when using Code Suggestions.\n> \n> In the general release, we've made [Code Suggestions available across several IDEs](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/#supported-editor-extensions). Code Suggestions is also now more intuitive and responsive.\n> \n> GitLab Duo Code Suggestions is [free to try](https://docs.gitlab.com/ee/user/project/repository/code_suggestions/#start-using-code-suggestions) subject to the [GitLab Testing Agreement](https://handbook.gitlab.com/handbook/legal/testing-agreement/) until February 15, 2024. Starting today, you can buy Code Suggestions as an add-on to GitLab subscriptions for an introductory price of $9 USD per user/per month. Please [contact us](https://about.gitlab.com/solutions/gitlab-duo-pro/sales/) to get started with Code Suggestions.\n\n</details>\n\n<details><summary>[Define a network policy with egress rules](https://docs.gitlab.com/ee/user/workspace/gitlab_agent_configuration.html#network_policyegress): <code>Workspaces</code></summary>\n\n> In GitLab 16.7, you can now define a network policy with egress rules when you configure the GitLab agent for Kubernetes to support Workspaces. Use this feature for your self-hosted installation where the GitLab instance resolves to a private IP or when a workspace must access a cloud resource on a private IP range.\n\n</details>\n\n<details><summary>[Complex merge request dependency chains now supported](https://docs.gitlab.com/ee/user/project/merge_requests/dependencies.html#nested-dependencies): <code>Code Review Workflow</code></summary>\n\n> GitLab merge request dependencies are a great way to ensure that code changes that rely on other changes aren't merged in a way that could break the codebase. Previously, GitLab didn't allow complex dependency chains, which could result in circular references or deep nesting.\n> \n> The limitations around dependency hierarchy, and items in the chain, have been removed. Merge request dependencies can now be more complex: a single merge request can be blocked by up to 10 merge requests, and in turn, block to 10 other merge requests. Deeper dependency chains make it possible to represent more complex workflows via dependencies. We're excited to see how you continue to expand your usage of this feature.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[SAML attribute statements support Microsoft SAML attribute format](https://docs.gitlab.com/ee/integration/saml.html#configure-assertions): <code>User Management</code></summary>\n\n> SAML attribute statements now support the Microsoft SAML attribute format, which is in URL form. Previously, self-managed instance administrators had to manually configure attribute statements, and GitLab.com group owners had to add custom attributes to their SAML responses. This change allows both self-managed GitLab and GitLab.com to work with Microsoft without any manual configuration.\n\n</details>\n\n\n\n#### Core\n\n![21 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=21&style=flat-square \"New features added to this tier in this release\")\n![2099 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2099&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Add a Mastodon handle to your User Profile](https://docs.gitlab.com/ee/user/profile/#add-external-accounts-to-your-user-profile-page): <code>User Profile</code></summary>\n\n> You can now list your Mastodon handle on the User Profile. With this enhancement we are now supporting a fediverse social network, which will help in advancing [ActivityPub for GitLab](https://gitlab.com/groups/gitlab-org/-/epics/11247).\n\n</details>\n\n<details><summary>[Group descriptions extended to 500 characters](https://docs.gitlab.com/ee/user/group/#edit-group-name-and-description): <code>Groups & Projects</code></summary>\n\n> Group descriptions can now contain up to 500 characters. If you try to save a group description with more than 500 characters, a warning message appears stating that the description is too long. Thanks to @freznicek for this community contribution!\n\n</details>\n\n<details><summary>[Search bar more prominent on the search results page](https://docs.gitlab.com/ee/user/search/): <code>Global Search</code></summary>\n\n> The search bar is now more prominent on the search results page. To increase the search bar visibility, the group and project filters have been moved to the left sidebar.\n\n</details>\n\n<details><summary>[Beta support for OpenTofu](https://docs.gitlab.com/ee/user/infrastructure/iac/): <code>Infrastructure Cost Data</code></summary>\n\n> If you're switching from Terraform to OpenTofu, this release of GitLab adds preliminary support for OpenTofu. Because OpenTofu is a fork of Terraform, the MR widget integration, module registry, and GitLab-managed Terraform state work by default. We added support for OpenTofu in the `gitlab-terraform` helper image to simplify the usage of the GitLab IaC offering.\n> \n> GitLab continues to support Terraform for the MR widget, module registry, and GitLab-managed Terraform state.\n\n</details>\n\n<details><summary>[Customize time format for display](https://docs.gitlab.com/ee/user/profile/preferences.html#customize-time-format): <code>Internationalization</code></summary>\n\n> Until now, GitLab only displayed time in 12 hour format, which could not be changed.\n> \n> From this release, thanks to the community contribution, you can customize the format used to display time in places like issue lists, overview pages or when setting your status.\n> You can display times as:\n> \n>   - 12 hour format, for example `2:34 PM`.\n>   - 24 hour format, for example `14:34`.\n> \n> Thanks to [Thorben Westerhuys](https://gitlab.com/n0rdlicht) for this [community contribution](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/130789)!\n> \n> In the following milestone we will [audit all timestamps](https://gitlab.com/groups/gitlab-org/-/epics/12215) shown across the GitLab product to make them respect the setting.\n\n</details>\n\n<details><summary>[Access the Admin Area from the left sidebar](https://docs.gitlab.com/ee/administration/admin_area.html): <code>Navigation & Settings</code></summary>\n\n> Administrators can now access the Admin Area in one step, by using a link at the bottom of the left sidebar. Previously, you had to select **Search or go to** and then select **Admin Area**. This change should save you time when accessing the Admin Area.\n\n</details>\n\n<details><summary>[Remove hardcoded time limit for migrations to complete](https://docs.gitlab.com/ee/user/group/import/#limits): <code>Importers</code></summary>\n\n> GitLab groups and project migrations done by direct transfer can become stuck for various reasons. In the past, to avoid leaving these migrations in an incomplete state\n> indefinitely, GitLab periodically executed a worker to identify migrations that hadn't completed within 8 hours. GitLab marked these migrations as timed out.\n> \n> For large organizations, the migration process can take longer than 8 hours, so this amount of time was not always sufficient to properly determine if a migration was stuck.\n> As a result, this worker might have incorrectly marked a migration as stuck.\n> \n> In this milestone, instead of using an 8 hour time limit, GitLab now only marks the migration as stuck if the child workers stop working for 24 hours.\n\n</details>\n\n<details><summary>[Comprehensive results of imports by direct transfer](https://docs.gitlab.com/ee/user/group/import/#review-results-of-the-import): <code>Importers</code></summary>\n\n> Knowing how crucial for our users is to understand the results of the import process, in this milestone we further improved on information presented for imports by\n> direct transfer. We now display import status badges next to GitLab groups and projects on:\n> \n> - The [page where you can select groups and projects to import](https://docs.gitlab.com/ee/user/group/import/index.html#select-the-groups-and-projects-to-import).\n> - The [page listing imported groups and projects](https://docs.gitlab.com/ee/user/group/import/index.html#group-import-history).\n> \n> The import status badges are:\n> \n> - **Not started**\n> - **Pending**\n> - **Importing**\n> - **Failed**\n> - **Timeout**\n> - **Cancelled**\n> - **Complete**\n> - **Partially completed**\n> \n> The **Partially completed badge** was added in this release and identifies a completed import process that has some items (such as merge requests or issues) not imported.\n> \n> Groups that an import process was started for have a **View details** link that shows imported subgroups and projects for that particular group. From there, you can see\n> the list of items that couldn't be imported (if any) by clicking a **See failures** link. **See failures** was\n> [released in the last release](https://about.gitlab.com/releases/2023/11/16/gitlab-16-6-released/#comprehensive-list-of-items-that-failed-to-be-imported).\n> \n> In this milestone we also improved navigation with the breadcrumbs between those pages.\n\n</details>\n\n<details><summary>[Backups supports alternate compression libraries](https://docs.gitlab.com/ee/administration/backup_restore/backup_gitlab.html#backup-compression) <i>(self-managed only)</i>: <code>Backup/Restore of GitLab instances</code></summary>\n\n> You can now override the default single-threaded gzip compression library with an alternate compression library of your choice for backups using the `COMPRESS_CMD` and `DECOMPRESS_CMD` commands. This allows you to leverage parallel compression libraries to speed up the compression stage of the backup by using the power of modern multi-core processors. The commands include support for passing options to the compression library allowing you to adjust parameters such as compression levels and speed.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Improvements to rich text editor](https://docs.gitlab.com/ee/user/rich_text_editor/): <code>Team Planning</code>, <code>Portfolio Management</code></summary>\n\n> In GitLab 16.2 we released the rich text editor as an alternative to the existing Markdown editing experience. The rich text editor provides a “what you see is what you get” editing experience and an extensible foundation on which we can build custom editing interfaces for things like diagrams, content embeds, media management, and more.\n> \n> With GitLab 16.7, we've changed the rich text editor to match the behavior with our Markdown editing experience and fix reported bugs. We've [changed the sorting order in the labels autocomplete modal to be consistent between the Markdown and rich-text editor](https://gitlab.com/gitlab-org/gitlab/-/issues/419097), [addressed a bug in the options returned in the unassign quick action in the rich-text editor](https://gitlab.com/gitlab-org/gitlab/-/issues/420344), [added support for custom emojis](https://gitlab.com/gitlab-org/gitlab/-/issues/422958), and [updated the look and feel of the quick action selection dropdown to be consistent in the two editing experiences](https://gitlab.com/gitlab-org/gitlab/-/issues/406714), among other improvements.\n\n</details>\n\n<details><summary>[Filter by predefined date ranges in Value Stream Analytics](https://docs.gitlab.com/ee/user/group/value_stream_analytics/#data-filters): <code>Value Stream Management</code></summary>\n\n> The value stream analytics report now has a set of filter options for data in the last 30, 60, 90, or 180 days. These new filter options simplify the date selection process, making it more efficient and user-friendly to understand [where time is spent during the development lifecycle](https://about.gitlab.com/blog/value-stream-total-time-chart/).\n\n</details>\n\n<details><summary>[Use GitLab pages without a wildcard DNS](https://docs.gitlab.com/ee/administration/pages/#pages-domain-without-wildcard-dns) <i>(self-managed only)</i>: <code>Pages</code></summary>\n\n> Previously, to create a GitLab Pages project, you needed a domain formatted like name.example.io or name.pages.example.io. This requirement meant you had to set up wildcard DNS records and SSL/TLS certificates. In GitLab 16.7, you can set up a GitLab Pages project without a DNS wildcard. This feature is an experiment.\n> \n> Removing the requirement for wildcard certificates eases administrative overhead associated with GitLab pages. Some customers can't use GitLab Pages because of organizational restrictions on wildcard DNS records or certificates.\n> \n> We welcome feedback related to this feature in [issue 434372](https://gitlab.com/gitlab-org/gitlab/-/issues/434372).\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Add custom emoji to groups](https://docs.gitlab.com/ee/user/emoji_reactions.html): <code>Code Review Workflow</code>, <code>Team Planning</code></summary>\n\n> Who doesn't love a good emoji to really express yourself? When commenting on items across GitLab, you've used our default set of emoji to add reactions, but sometimes those emoji just weren't enough to express your emotions.\n> Groups can now add custom emoji to use across their projects. Custom emoji allow you to express your true feelings and communicate more clearly with the rest of your team. We can't wait to see how you'll react next.\n\n</details>\n\n<details><summary>[Notify me when any merge request needs approval](https://docs.gitlab.com/ee/user/profile/notifications.html#edit-notification-settings): <code>Code Review Workflow</code></summary>\n\n> When your approval is required for a merge request, you need to be notified to take action. Some users only want notifications when their approval is required, which is typically done by adding a user by name to review the changes. However, some users want a notification for any merge request they are eligible to approve, _even if they aren't added by name as reviewers._\n> \n> Enable the **Added as approver** custom notification level to trigger an email and to-do for each merge request you are eligible to approve. This helps you be aware of merge requests sooner in the process, and take action to get the proposal merged.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[`artifacts:public` CI/CD keyword now generally available](https://docs.gitlab.com/ee/ci/yaml/#artifactspublic): <code>Build Artifacts</code></summary>\n\n> Previously, the `artifacts:public` keyword was only available as a default disabled feature for self-managed instances. Now in GitLab 16.7 we've made the `artifacts:public` keyword generally available for all users. You can now use the `artifacts:public` keyword in CI/CD configuration files to control whether job artifacts should be publicly accessible.\n\n</details>\n\n<details><summary>[Improved ability to keep the latest job artifacts](https://docs.gitlab.com/ee/ci/jobs/job_artifacts.html#keep-artifacts-from-most-recent-successful-jobs): <code>Build Artifacts</code></summary>\n\n> In GitLab 13.0 we introduced the ability to keep the job artifacts from the most recent successful pipeline. Unfortunately, the feature also marked all [failed](https://gitlab.com/gitlab-org/gitlab/-/issues/266958) and [blocked](https://gitlab.com/gitlab-org/gitlab/-/issues/387087) pipelines as the latest pipeline regardless of whether they were the most recent or not. This led to a buildup of artifacts in storage which had to be deleted manually.\n> \n> In GitLab 16.7 the bugs causing this unintended behavior are resolved. Job artifacts from failed and blocked pipelines are only kept if they are from the most recent pipeline, otherwise they will follow the `expire_in` configuration. Affected GitLab.com customers should see artifacts which were inadvertently kept now unlocked and removed after a new pipeline run.\n> \n> The **Keep artifacts from most recent successful jobs** setting overrides the job's `artifacts: expire_in` configuration and can result in a large number of artifacts stored without expiry. If your pipelines create many large artifacts, they can fill up your project storage quota quickly. We recommend disabling this setting if this feature is not required.\n\n</details>\n\n<details><summary>[GitLab Runner 16.7](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 16.7 today! GitLab Runner is the lightweight, highly-scalable agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [Implement graceful shutdown for Docker executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/6359)\n> - [Dynamically create PVC volumes with storage classes for Kubernetes](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27835)\n> \n> #### Bug Fixes:\n> \n> - [allow_failure:exit codes unusable with custom executor because exit code is always 1](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/28658)\n> - [Add better handling of signals in the runner helper and build container for the Kubernetes executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/36996)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/16-7-stable/CHANGELOG.md).\n\n</details>\n\n<details><summary>[GitLab Runner supports SLSA v1.0 statement](https://docs.gitlab.com/ee/ci/runners/configure_runners.html#artifact-provenance-metadata): <code>GitLab Runner Core</code></summary>\n\n> Runners can now generate provenance metadata with a statement that adheres to [SLSA 1.0](https://slsa.dev/spec/v1.0/). To enable SLSA 1.0, set the `SLSA_PROVENANCE_SCHEMA_VERSION=v1` variable in the `.gitlab-ci.yml` file. The SLSA version 1.0 statement is planned to become the default version in GitLab 17.0.\n\n</details>\n\n<details><summary>[CI/CD Catalog - Beta release](https://docs.gitlab.com/ee/ci/components/#cicd-catalog): <code>Pipeline Composition</code></summary>\n\n> GitLab 16.7 sees the Beta release of the CI/CD catalog! The catalog is where you can search for [CI/CD components](https://docs.gitlab.com/ee/ci/components/) maintained by you, your organization, or the public community. This is the place where DevOps engineers come together to create, contribute, and share reusable pipeline configurations.\n> \n> Unlike other methods of reusing CI/CD configuration, CI/CD components published in the catalog have an improved experience, and are easily added to your pipeline. We invite you to start testing this new and exciting feature! You can try out components that others have created and shared in the catalog, or create your own components and share them with everyone.\n> \n> While this is our initial beta release of the feature, we continue to work on making the experience even better. Our goal is to make the CI/CD catalog a fundamental part of the GitLab CI/CD experience.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Custom time period for access tokens rotation](https://docs.gitlab.com/ee/api/personal_access_tokens.html#rotate-a-personal-access-token): <code>System Access</code></summary>\n\n> You can now optionally input a new parameter, `expires_at`, when rotating an access token. This allows you to create a custom expiry date for the token. Previously, each rotation extended the expiration one week from the previous expiry date. This new option provides flexibility in rotation interval. \n\n</details>\n\n\n\n##### [Monitor](https://about.gitlab.com/stages-devops-lifecycle/monitor/)\n\n<details><summary>[Reopen Service Desk issues when an external participant comments](https://docs.gitlab.com/ee/user/project/service_desk/configure.html#reopen-issues-when-an-external-participant-comments): <code>Service Desk</code></summary>\n\n> You can now configure GitLab to reopen closed issues when an external participant adds\n> a new comment on an issue by email. This gives you full visibility into ongoing conversations,\n> even after an issue has been resolved. \n> \n> It also adds an internal comment that mentions the assignees of the issue and creates to-do\n> items for them. This way you can make sure you never miss a follow-up email again.\n\n</details>\n\n\n","released_at":"2023-12-21T00:00:00.000Z","upcoming_release":false},{"name":"GitLab 16.6","_links":{"self":"https://gitlab.com/gitlab-org/gitlab/-/releases/v16.6.0-ee","closed_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.6.0-ee&scope=all&state=closed","opened_issues_url":"https://gitlab.com/gitlab-org/gitlab/-/issues?release_tag=v16.6.0-ee&scope=all&state=opened","closed_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.6.0-ee&scope=all&state=closed","merged_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.6.0-ee&scope=all&state=merged","opened_merge_requests_url":"https://gitlab.com/gitlab-org/gitlab/-/merge_requests?release_tag=v16.6.0-ee&scope=all&state=opened"},"assets":{"count":5,"links":[{"id":3440044,"url":"https://about.gitlab.com/releases/2023/11/16/gitlab-16-6-released/","name":"GitLab 16.6 release post","link_type":"other","direct_asset_url":"https://about.gitlab.com/releases/2023/11/16/gitlab-16-6-released/"}],"sources":[{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.6.0-ee/gitlab-v16.6.0-ee.zip","format":"zip"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.6.0-ee/gitlab-v16.6.0-ee.tar.gz","format":"tar.gz"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.6.0-ee/gitlab-v16.6.0-ee.tar.bz2","format":"tar.bz2"},{"url":"https://gitlab.com/gitlab-org/gitlab/-/archive/v16.6.0-ee/gitlab-v16.6.0-ee.tar","format":"tar"}]},"author":{"id":1786152,"name":"🤖 GitLab Bot 🤖","state":"active","locked":false,"web_url":"https://gitlab.com/gitlab-bot","username":"gitlab-bot","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1786152/avatar.png","public_email":""},"commit":{"id":"94991886af3e3820aa09fa353b29cf8557c93168","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/94991886af3e3820aa09fa353b29cf8557c93168","short_id":"94991886","trailers":[],"created_at":"2023-11-15T09:10:45.000+00:00","parent_ids":["0e5ac82768be6193f744c4038c659f098016cedf"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2023-11-15T09:10:45.000+00:00","committed_date":"2023-11-15T09:10:45.000+00:00","committer_name":"GitLab Release Tools Bot","committer_email":"delivery-team+release-tools@gitlab.com","extended_trailers":[]},"tag_name":"v16.6.0-ee","tag_path":"/gitlab-org/gitlab/-/tags/v16.6.0-ee","evidences":[],"created_at":"2023-11-22T17:55:54.953Z","milestones":[{"id":3094094,"iid":93,"state":"closed","title":"16.6","expired":true,"web_url":"https://gitlab.com/groups/gitlab-org/-/milestones/93","due_date":"2023-11-10","group_id":9970,"created_at":"2023-05-09T04:50:08.194Z","start_date":"2023-10-18","updated_at":"2025-10-22T16:20:29.740Z","description":"","issue_stats":{"total":1649,"closed":1635}}],"commit_path":"/gitlab-org/gitlab/-/commit/94991886af3e3820aa09fa353b29cf8557c93168","description":"![28 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=28&style=for-the-badge \"New features added in this release\")\n![3195 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=3195&style=for-the-badge \"Total features\")\n\n<details><summary>[GitLab Duo Chat available in Beta](https://docs.gitlab.com/ee/user/gitlab_duo_chat/index.html) <i>(SaaS only)</i>: <code>Duo Chat</code></summary>\n\n> Everyone involved in the software development process can spend a significant amount of time familiarizing themselves with code, epics, issues, and lengthy discussion threads. You can often find yourself slowed down by routine tasks like writing summaries, documentation, tests, or even code. Having an expert at your side that can answer DevSecOps questions without judgment and address follow-ups could help you accelerate the software development process.\n> \n> GitLab Duo Chat aims to actively address these pain points and accelerate your workflows. Its capabilities include:\n> \n>  - Explain or summarize issues, epics, and code.\n>  - Answer specific questions about these artifacts like \"Collect all the arguments raised in comments regarding the solution proposed in this issue.\"\n>  - Generate code or content based the information in these artifacts. For instance, \"Can you write documentation for this code?\"\n>  - Or simply get you started from scratch like \"Create a `.gitlab-ci.yml` configuration file for testing and building a Ruby on Rails application in a GitLab CI/CD pipeline.\"\n>  - Answer all your DevSecOps related question, whether you are beginner or an expert. For example, \"How can I set up Dynamic Application Security Testing for a REST API?\"\n>  - Answer follow-up questions so you can iteratively work through all the above scenarios.\n> \n>  GitLab Duo Chat is available on GitLab.com as a [Beta](https://docs.gitlab.com/ee/policy/experiment-beta-support.html#beta) feature. It is also integrated into our Web IDE and GitLab Workflow extension for VS Code as [Experimental](https://docs.gitlab.com/ee/policy/experiment-beta-support.html#experiment) features.\n> \n>  You can also help us mature these features by providing feedback about your experiences with Duo Chat, either within the product or via our [feedback issue](https://gitlab.com/gitlab-org/gitlab/-/issues/430124).\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[macOS 14 (Sonoma) and Xcode 15 image support](https://docs.gitlab.com/ee/ci/runners/saas/macos_saas_runner.html#supported-macos-images) <i>(SaaS only)</i>: <code>GitLab Runner SaaS</code></summary>\n\n> Teams can now seamlessly create, test, and deploy applications for the Apple ecosystem on macOS 14 and Xcode 15.\n> \n> SaaS runners on macOS allow you to increase your development teams’ velocity in building and deploying applications that require macOS in a secure, on-demand GitLab Runner build environment integrated with GitLab CI/CD.\n> \n> Try it out today by using `macos-14-xcode-15` as the image in your `.gitlab-ci.yml` file.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Automatic claims of enterprise users](https://docs.gitlab.com/ee/user/enterprise_user/) <i>(SaaS only)</i>: <code>User Management</code></summary>\n\n> When a GitLab.com user's primary email address matches an existing verified domain, the user is automatically claimed as an enterprise user. This gives the group Owner more user management controls and visibility into the user's account. After a user becomes an enterprise user, they can only change their primary email to an email their organization owns as per its verified domains.\n\n</details>\n\n\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![11 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=11&style=flat-square \"New features added to this tier in this release\")\n![456 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=456&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Switchboard portal for GitLab Dedicated is now generally available](https://docs.gitlab.com/ee/administration/dedicated/#onboarding-to-gitlab-dedicated-using-switchboard) <i>(self-managed only)</i>: <code>Switchboard</code>, <code>GitLab Dedicated</code></summary>\n\n> Switchboard, a new self-service portal, is now available for customers and team members to onboard, configure and maintain their [GitLab Dedicated](https://about.gitlab.com/dedicated/) instances.\n> \n> Using Switchboard, you can now make some [configuration changes](https://docs.gitlab.com/ee/administration/dedicated/#configuration-changes) to your GitLab Dedicated instance. This functionality will expand in future releases.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[Runner Fleet Dashboard - Starter metrics (Beta)](https://docs.gitlab.com/ee/development/runner_fleet_dashboard.html) <i>(self-managed only)</i>: <code>Runner Fleet</code></summary>\n\n> Operators of self-managed runner fleets need observability and the ability to quickly answer critical questions about their runner fleet infrastructure at a glance. Now, with the Runner Fleet Dashboard - Admin View (Beta), you have actionable insights to help you quickly answer critical fleet management and developer experience questions, starting with instance runners. These include answers to questions like which runners have errors, the performance of the runner queues for CI job execution, and which runners are most actively used. Ultimate customers can enable this feature independently, but are encouraged to participate in the [early adopter's program](https://gitlab.com/groups/gitlab-org/-/epics/11180).\n\n</details>\n\n\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Container Scanning: Exclude findings which won't be fixed](https://docs.gitlab.com/ee/user/application_security/container_scanning/#available-cicd-variables): <code>Software Composition Analysis</code></summary>\n\n> Container scanning results may include findings which the vendor has evaluated and decided to not fix. To allow\n> you to focus on actionable findings, you can now exclude such findings. For configuration options please refer to the GitLab documentation.\n\n</details>\n\n<details><summary>[Include CVSS Vectors in the vulnerability report export](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/#export-vulnerability-details): <code>Software Composition Analysis</code></summary>\n\n> When you export information from the vulnerability report, the CVSS Vector information is now included.\n> This additional data helps you analyze and triage vulnerabilities outside GitLab.\n\n</details>\n\n<details><summary>[Added support for SBT projects using Java 21](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/#supported-languages-and-package-managers): <code>Software Composition Analysis</code></summary>\n\n> Dependency Scanning and License Scanning now support SBT projects using Java 21.\n\n</details>\n\n<details><summary>[DAST analyzer updates](https://docs.gitlab.com/ee/user/application_security/dast/checks/): <code>DAST</code></summary>\n\n> During the 16.6 release milestone, we enabled the following active checks for browser-based DAST by default:\n> \n> - Check 94.1 replaces ZAP check 90019 and identifies server-side code injection (PHP).\n> - Check 94.2 replaces ZAP check 90019 and identifies server-side code injection (Ruby).\n> - Check 94.3 replaces ZAP check 90019 and identifies server-side code injection (Python).\n> - Check 943.1 replaces ZAP check 40033 and identifies improper neutralization of special elements in data query logic.\n> - Check 74.1 replaces ZAP check 90017 and identifies XSLT injection.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Allow users to enforce MR approvals as a compliance policy](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html#any_merge_request-rule-type): <code>Security Policy Management</code></summary>\n\n> There is an increasing scrutiny on code changes that can potentially land in production applications and open businesses up to compliance risk and security vulnerability. With scan result policies, you can ensure unilateral changes cannot be made by enforcing two person approval on all merge requests.\n> \n> Scan results policies have a new option to target `Any merge request` which can be paired with defining [role-based approvers](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html#require_approval-action-type) to ensure each MR for the defined branches require approval by two (or more) users with a given role (Owner, Maintainer, or Developer).\n> \n> Available in SaaS in 16.6. Available for Self-managed behind the feature flag `scan_result_any_merge_request` and will be enabled by default in 16.7.\n\n</details>\n\n<details><summary>[Allow compliance teams to prevent pushing and force pushing into protected branches](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html): <code>Security Policy Management</code></summary>\n\n> One of several new settings being added to scan result policies to aide in [compliance enforcement of security policies](https://gitlab.com/groups/gitlab-org/-/epics/9704), this control will limit the ability to leverage project-level settings to circumvent policies.\n> \n> For each existing or new scan result policy, you can enable `Prevent pushing and force pushing` to take effect for the branches defined within the policy to prevent users from circumventing the merge request flow to push changes directly to a branch.\n> \n> Available in SaaS in 16.6. Available for Self-managed behind the feature flag `scan_result_policies_block_force_push` and will be enabled by default in 16.7.\n\n</details>\n\n<details><summary>[Group-level audit event streaming to AWS S3](https://docs.gitlab.com/ee/administration/audit_event_streaming/#aws-s3-destinations): <code>Audit Events</code></summary>\n\n> Building on our integrations with external logging or data aggregation tools, you can now select AWS S3 as a destination for audit event streams\n> for top-level groups. This feature provides relevant information for an easier and more trouble-free integration.\n> \n> Previously, you had to use custom HTTP headers to try to build a request that AWS S3 would accept. This method was prone to errors and could be difficult to troubleshoot.\n\n</details>\n\n<details><summary>[Improved handling of unresponsive external status checks](https://docs.gitlab.com/ee/user/project/merge_requests/status_checks.html#status-checks-widget): <code>Compliance Management</code></summary>\n\n> Previously, external status checks on MRs continued to poll the external URL until they received either a successful or failed response.\n> This could result in some status checks seeming to hang in an unresponsive state.\n> \n> Now, a 2 minute timeout has been incorporated so that you can manually retry the status check after 2 minutes if you are not getting any\n> response from the external system.\n\n</details>\n\n<details><summary>[Changes to the vulnerability report's Tool filter](https://docs.gitlab.com/ee/user/application_security/vulnerability_report/#tool-filter): <code>Vulnerability Management</code></summary>\n\n> Previously, the vulnerability report allowed you to filter by a static list of GitLab-supported tool types, followed by a dynamic list of custom scanners. With this release, you can now select tool type grouped by analyzer.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![1 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=1&style=flat-square \"New features added to this tier in this release\")\n![583 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=583&style=flat-square \"Total features in this tier\")\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Service accounts have optional expiry dates](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html#service-accounts): <code>User Management</code></summary>\n\n> GitLab administrators and group Owners can choose if they want to enforce an expiry date for service accounts. Previously, service account tokens had to expire within a year, in line with personal, project, and group access token expiration limits. This allows administrators and group Owners to choose the balance between security and ease of use that best aligns with their goals.\n\n</details>\n\n\n\n#### Core\n\n![13 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=13&style=flat-square \"New features added to this tier in this release\")\n![2078 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2078&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Hide archived projects in search results by default](https://docs.gitlab.com/ee/user/search/#include-archived-projects-in-search-results): <code>Global Search</code></summary>\n\n> Previously, users saw many archived projects in their project search results. This was problematic, especially when archived projects took up many of the top results. We now filter out archived projects by default, and users can select **Include archived** to see all projects.\n\n</details>\n\n<details><summary>[Real-time Kubernetes status updates in the GitLab UI](https://docs.gitlab.com/ee/ci/environments/kubernetes_dashboard.html): <code>Deployment Management</code>, <code>Environment Management</code></summary>\n\n> In GitLab 16.6, you can use the cluster UI integration on your environment page to determine the status of currently running applications without leaving GitLab. Previously, the status was updated by a one-time request when the UI loaded, which made tracking deployment progress unwieldy. The current version of GitLab upgrades the underlying connection to use the Kubernetes watch API for the Flux reconciliation and Pod statuses, and provides near real-time updates of the cluster state in the GitLab UI.\n\n</details>\n\n<details><summary>[Connect to Kubernetes clusters with the GitLab CLI](https://docs.gitlab.com/ee/user/clusters/agent/user_access.html#access-a-cluster-with-the-kubernetes-api): <code>GitLab CLI</code>, <code>Deployment Management</code></summary>\n\n> From GitLab version 16.4, you can connect to a Kubernetes cluster from a local terminal using the agent for Kubernetes and a personal access token. In the initial version, setting up the local cluster configuration required several commands and a long lived access token. In the past month, we worked to streamline and improve the security of the set up process by extending the GitLab CLI.\n> \n> The GitLab CLI can now list the agent connections available from a GitLab project checkout directory or the specified project. You can set up the connection through a selected agent with a dedicated command. When `kubectl` or any other tool needs to authenticate with the cluster, the GitLab CLI generates a temporary, restricted token for the signed-in user.\n\n</details>\n\n<details><summary>[Private group names are hidden from unauthorized users](https://docs.gitlab.com/ee/user/group/manage.html#share-a-group-with-another-group): <code>Groups & Projects</code></summary>\n\n> Previously, the names of private groups were visible to all users when accessing the **Groups** tab of a project's or group's members page. To enhance security, we are now masking private groups' name and source from users who are not members of the shared group, shared project, or invited group. Instead, this information will be displayed as **Private**.\n\n</details>\n\n<details><summary>[Comprehensive list of items that failed to be imported](https://docs.gitlab.com/ee/user/group/import/index.html#review-results-of-the-import): <code>Importers</code></summary>\n\n> Previously, when migrating GitLab projects and groups by direct transfer had completed and some items (such as a merge requests or issues) were not\n> successfully imported, you could select a **Details** button on the\n> [page listing imported groups and projects](https://docs.gitlab.com/ee/user/group/import/index.html#group-import-history) and see related errors there.\n> \n> However, a list of errors is not helpful to understand how many items in total, and which items in particular, were not imported. Having this\n> information is crucial to understanding the results of the import process.\n> \n> In this release, we replaced the **Details** button with a **See failures** link. Selecting the **See failures** link takes you to a new page listing all items that failed\n> to import for a given group or project. For each item that wasn't imported, you can see:\n> \n> - The type of the item. For example, merge request or issue.\n> - What kind of error occurred.\n> - The correlation ID, which is useful for debugging purposes.\n> - The URL of the item on the source instance, if available (items with `iid`).\n> - The title of the item on the source instance, if available. For example, the merge request title or the issue title.\n\n</details>\n\n<details><summary>[Consistent navigation experience for all users](https://docs.gitlab.com/ee/tutorials/left_sidebar/): <code>Navigation & Settings</code></summary>\n\n> The 16.0 release introduced a new navigation experience, which became the default for all users on June 2, 2023. In subsequent milestones, many improvements were made based on a wealth of user feedback. The ability to fall back to the old navigation has now been removed. More exciting changes are planned for the navigation, but for now, all users have a consistent navigation experience.\n> \n> As a recap, with the new GitLab navigation, you can:\n> \n> - Pin menu items to save your most-used project or group items at the top\n> - Hide and \"peek\" the navigation to expose a wider screen\n> - Easily search for menu items by using keyboard shortcuts\n> - Continue to use all the themes you had with the previous navigation\n> - Use better-organized sections that align with a DevOps workflow\n\n</details>\n\n<details><summary>[GitLab Silent Mode](https://docs.gitlab.com/ee/administration/silent_mode/) <i>(self-managed only)</i>: <code>Disaster Recovery</code></summary>\n\n> When GitLab Silent Mode is enabled, it blocks all major outbound traffic such as notification emails, integrations, webhooks, and mirroring from a GitLab instance. This allows you to perform testing against a GitLab site without generating traffic towards users and other integrations. You can use Silent Mode to test a restored backup or a promoted Geo DR site without impacting your primary GitLab site or your end users.\n\n</details>\n\n\n\n##### [Create](https://about.gitlab.com/stages-devops-lifecycle/create/)\n\n<details><summary>[Minimal forking - only include the default branch](https://docs.gitlab.com/ee/user/project/repository/forking_workflow.html#create-a-fork): <code>Source Code Management</code></summary>\n\n> In previous versions of GitLab, when forking a repository, the fork always included all branches within the repository.\n> Now you can create a fork with only the default branch, reducing complexity and storage space.\n> Create minimal forks if you don't need the changes that are currently being worked on in other branches.\n> \n> The default method of forking will not change and continue to include all branches within the repository.\n> The new option shows which branch is the default, so that you are aware of exactly which branch will be included in the new fork.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[CI/CD components Beta release](https://docs.gitlab.com/ee/ci/components/): <code>Pipeline Composition</code></summary>\n\n> In GitLab 16.1, we [announced](https://about.gitlab.com/blog/introducing-ci-components/) the release of an exciting experimental feature called CI/CD components. The component is a pipeline building block that can be listed in the upcoming CI/CD catalog.\n> \n> Today we are excited to announce the Beta availability of CI/CD components. With this release, we have also improved the components folder structure from the initial experimental version. If you are already testing the experimental version of CI/CD components, it's essential to migrate to the [new folder structure](https://docs.gitlab.com/ee/ci/components/#directory-structure). You can see some examples [here](https://gitlab.com/gitlab-components/). The old folder structure is deprecated and we plan to remove it within the next couple of releases.\n> \n> If you try out CI/CD components, you are also welcome to try the new CI/CD catalog, currently available as an experimental feature. You can search the [Global CI/CD catalog](https://docs.gitlab.com/ee/ci/components/catalog.html) for components that others have created and published for public use. Additionally, if you create your own components, you can choose to publish them in the catalog too!\n\n</details>\n\n<details><summary>[Improved UI for CI/CD variable management](https://docs.gitlab.com/ee/ci/variables/#define-a-cicd-variable-in-the-ui): <code>Secrets Management</code></summary>\n\n> CI/CD variables are a fundamental part of GitLab CI/CD, and we felt that we could offer a better experience for working with variables from the settings UI. So in this release we've updated the UI to use a new drawer that improves the flow of adding and editing CI/CD variables.\n> \n> For example, the masking validation used to only happen when you tried to save the CI/CD variable, and if it failed you'd have to restart from scratch. But now with the new drawer, you get real time validation so you can adjust on the fly without needed to redo anything!\n> \n> Your [feedback for this change](https://gitlab.com/gitlab-org/gitlab/-/issues/428807) is always valued and appreciated.\n\n</details>\n\n<details><summary>[GitLab Runner 16.6](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We’re also releasing GitLab Runner 16.6 today! GitLab Runner is the lightweight, highly-scalable agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's new:\n> \n> - [GitLab Runner Fleeting plugin for GCP Compute Engine - Beta](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29409)\n> - [Implement graceful shutdown for Docker executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/6359)\n> - [Dynamically create PVC volumes with storage classes for Kubernetes](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/27835)\n> - [Override the container entrypoint through `image.entrypoint` in the Kubernetes executor](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/30713)\n> \n> #### Bug Fixes:\n> \n> - [Pods keep restarting with a Liveness probe failed error after upgrade to GitLab Runner 16.5.0](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/36959)\n> - [Debug terminal - variable contains content of file instead of file path](https://gitlab.com/gitlab-org/gitlab/-/issues/399770)\n> - [Job execution pods in Kubernetes does not handle signals](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/28162)\n> - [Services in GitLab Runner Docker executor using Podman do not start](https://gitlab.com/gitlab-org/gitlab-runner/-/issues/29480)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/16-6-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Prevent duplicate NuGet packages](https://docs.gitlab.com/ee/user/packages/nuget_repository/#do-not-allow-duplicate-nuget-packages): <code>Package Registry</code></summary>\n\n> You can use the GitLab Package Registry to publish and download your project's NuGet packages. By default, you can publish the same package name and version multiple times.\n> \n> However, you might want to prevent duplicate uploads, especially for releases. In this release, GitLab has expanded the group setting for the Package Registry so you can allow or deny duplicate package uploads.\n> \n> You can adjust this setting with the [GitLab API](https://docs.gitlab.com/ee/api/graphql/reference/index.html#packagesettings), or from the UI.\n\n</details>\n\n<details><summary>[Upload packages to the Maven repository with basic HTTP authentication](https://docs.gitlab.com/ee/user/packages/maven_repository/#basic-http-authentication): <code>Package Registry</code></summary>\n\n> The GitLab Package Registry now supports uploading Maven packages with basic HTTP authentication. Previously, you could use basic HTTP authentication only to download Maven packages. This inconsistency made it difficult for developers to configure and maintain authentication for their project.\n> \n> Publishing artifacts with `sbt` is not supported, but [issue 408479](https://gitlab.com/gitlab-org/gitlab/-/issues/408479) proposes to add this feature.\n\n</details>\n\n\n","released_at":"2023-11-16T00:00:00.000Z","upcoming_release":false}],"meta":{"timestamp":"2026-06-02T16:52:32.832Z","request_id":"a5b0dd16-e04a-478b-ac52-1798167f60eb"},"status":"ok","message":"Project releases","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/project/tags":{"get":{"operationId":"get_v1_project_tags","tags":["Project"],"summary":"Tags","description":"","parameters":[{"name":"project","in":"query","required":true,"description":"Project id or group/name path (or gitlab.com URL)","schema":{"type":"string"},"example":"gitlab-org/gitlab"},{"name":"per_page","in":"query","required":false,"description":"Page size (max 100)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":[{"name":"v18.10.7-ee","commit":{"id":"0dafa5577c4a4eea262a393392b75b43f2ea80f1","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/0dafa5577c4a4eea262a393392b75b43f2ea80f1","short_id":"0dafa557","trailers":[],"created_at":"2026-05-26T23:26:31.000+00:00","parent_ids":["108bca764cc5f02e7020869631c3e99cc1f2c8b1"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-26T23:26:31.000+00:00","committed_date":"2026-05-26T23:26:31.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"955b7b912d0fd21d54c2c7479c82bca9c31d3888","message":"Version v18.10.7-ee","protected":true,"created_at":"2026-05-26T23:31:41.000Z"},{"name":"v18.11.4-ee","commit":{"id":"78d6b913cb59e2ae115c4d7ddf4f065e654bbdd4","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/78d6b913cb59e2ae115c4d7ddf4f065e654bbdd4","short_id":"78d6b913","trailers":[],"created_at":"2026-05-26T23:20:09.000+00:00","parent_ids":["750c5bfc69ce89f409bc2522a84e8cb875722f22"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-26T23:20:09.000+00:00","committed_date":"2026-05-26T23:20:09.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"83b550382957f862c63ecb06fb3e5654b718439c","message":"Version v18.11.4-ee","protected":true,"created_at":"2026-05-26T23:23:18.000Z"},{"name":"v19.0.1-ee","commit":{"id":"52e5d1bf910581db3fb89abd1b1e7bda2b711453","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/52e5d1bf910581db3fb89abd1b1e7bda2b711453","short_id":"52e5d1bf","trailers":[],"created_at":"2026-05-26T23:13:26.000+00:00","parent_ids":["92013a9899f7521d9fa38f5a0fb43d0aa3f37d11"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-26T23:13:26.000+00:00","committed_date":"2026-05-26T23:13:26.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"ea461b26e3ebbe490113246f2f6b4ba665789fc7","message":"Version v19.0.1-ee","protected":true,"created_at":"2026-05-26T23:16:35.000Z"},{"name":"v18.5.7-ee","commit":{"id":"d43ba7b72ad2eed1649c48595e621de30a97db11","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/d43ba7b72ad2eed1649c48595e621de30a97db11","short_id":"d43ba7b7","trailers":[],"created_at":"2026-05-26T08:01:46.000+00:00","parent_ids":["c0aa9dfd5e3e5163764b0a001b4b72015532a748"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-26T08:01:46.000+00:00","committed_date":"2026-05-26T08:01:46.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"5bf4f034db2cdcd712eb1553680d8346df4b5225","message":"Version v18.5.7-ee","protected":true,"created_at":"2026-05-26T08:05:00.000Z"},{"name":"v18.6.8-ee","commit":{"id":"d1675b57ea122878c25b2cc7a1d22cb6c8ffa0f9","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/d1675b57ea122878c25b2cc7a1d22cb6c8ffa0f9","short_id":"d1675b57","trailers":[],"created_at":"2026-05-26T07:54:33.000+00:00","parent_ids":["edf98f238c6316c1e07b669c5ed9979603764673"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-26T07:54:33.000+00:00","committed_date":"2026-05-26T07:54:33.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"04cc2c1110c3eb4f5ad062d511ff58ac0d3bb0b3","message":"Version v18.6.8-ee","protected":true,"created_at":"2026-05-26T07:57:47.000Z"},{"name":"v18.5.6-ee","commit":{"id":"eaed91273b8a168b92502206f6ca2386dc11b269","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/eaed91273b8a168b92502206f6ca2386dc11b269","short_id":"eaed9127","trailers":[],"created_at":"2026-05-25T22:39:44.000+00:00","parent_ids":["0e716d71198b1ff03211614be5bf9e1a6a8c4303"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-25T22:39:44.000+00:00","committed_date":"2026-05-25T22:39:44.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"ecfd185e1e78501a40646a33ccdb687405aac57a","message":"Version v18.5.6-ee","protected":true,"created_at":"2026-05-25T22:42:57.000Z"},{"name":"v18.6.7-ee","commit":{"id":"00e98b068a66f3cb30576348809a5704491d6240","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/00e98b068a66f3cb30576348809a5704491d6240","short_id":"00e98b06","trailers":[],"created_at":"2026-05-25T22:27:42.000+00:00","parent_ids":["413fde848936ae49907b5f2ab9b7c8165e9e32a0"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-25T22:27:42.000+00:00","committed_date":"2026-05-25T22:27:42.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"0545869e78f07e8723ce56c7cdbf92f267f38e79","message":"Version v18.6.7-ee","protected":true,"created_at":"2026-05-25T22:30:55.000Z"},{"name":"v18.7.7-ee","commit":{"id":"95a04b666b5b94323ef264c32086bdf449afeb4a","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/95a04b666b5b94323ef264c32086bdf449afeb4a","short_id":"95a04b66","trailers":[],"created_at":"2026-05-25T22:14:57.000+00:00","parent_ids":["85dd678edb4a3e8f243032320236834cda673871"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-25T22:14:57.000+00:00","committed_date":"2026-05-25T22:14:57.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"270a2c9189b1edc56ed3149003f08e8c4aa24d7e","message":"Version v18.7.7-ee","protected":true,"created_at":"2026-05-25T22:18:10.000Z"},{"name":"v18.8.10-ee","commit":{"id":"45b635cbef27258b9d1be161fe062163be26239b","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/45b635cbef27258b9d1be161fe062163be26239b","short_id":"45b635cb","trailers":[],"created_at":"2026-05-25T20:55:35.000+00:00","parent_ids":["cf1fee801f3e879ccf376e4a042128ac6987cd50"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-25T20:55:35.000+00:00","committed_date":"2026-05-25T20:55:35.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"c5558a6c466ff30672dcef315c90b6c52b6db6f2","message":"Version v18.8.10-ee","protected":true,"created_at":"2026-05-25T21:04:51.000Z"},{"name":"v18.9.8-ee","commit":{"id":"03935fe95f41b1aec7e541529f64e4c5c1be4ea8","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/03935fe95f41b1aec7e541529f64e4c5c1be4ea8","short_id":"03935fe9","trailers":[],"created_at":"2026-05-25T20:33:16.000+00:00","parent_ids":["773fff5aa850de8b96321ba70bf267d2da8b724c"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-25T20:33:16.000+00:00","committed_date":"2026-05-25T20:33:16.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"74da6c53d8c41154c918f15a6811b997dee1ac6f","message":"Version v18.9.8-ee","protected":true,"created_at":"2026-05-25T20:43:32.000Z"},{"name":"v19.0.0-ee","commit":{"id":"f07e3c5b3c8128be5db112e5b2b618fe31ea1b35","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/f07e3c5b3c8128be5db112e5b2b618fe31ea1b35","short_id":"f07e3c5b","trailers":[],"created_at":"2026-05-21T00:28:28.000+00:00","parent_ids":["f9421e4adecb42c56b04b4d4defb7797b022be42"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-21T00:28:28.000+00:00","committed_date":"2026-05-21T00:28:28.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"657f68573ce32725227add433c334b83660df147","message":"Version v19.0.0-ee","protected":true,"created_at":"2026-05-21T00:32:43.000Z"},{"name":"v19.0.0-rc43-ee","commit":{"id":"8fa3ec474596c026d93bbe435ad744cd7bba4c78","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/8fa3ec474596c026d93bbe435ad744cd7bba4c78","short_id":"8fa3ec47","trailers":[],"created_at":"2026-05-20T13:38:20.000+00:00","parent_ids":["e9eb0666779429eb09f7df63b99affbf31af5c3e"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-20T13:38:20.000+00:00","committed_date":"2026-05-20T13:38:20.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"76fcc2ff345db7145c8a2f2a09601ab53817db99","message":"Version v19.0.0-rc43-ee","protected":true,"created_at":"2026-05-20T13:44:36.000Z"},{"name":"v19.0.0-rc42-ee","commit":{"id":"0850440b030f1a0a698cb4a26c01b7d45fbe5f56","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/0850440b030f1a0a698cb4a26c01b7d45fbe5f56","short_id":"0850440b","trailers":[],"created_at":"2026-05-19T02:55:01.000+00:00","parent_ids":["c65fa89a4abb0fb003c3aa12c7a3b24f61263258"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-19T02:55:01.000+00:00","committed_date":"2026-05-19T02:55:01.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"98a0e9288cacf8e7fffa3a5778d9bc434ed7e4dc","message":"Version v19.0.0-rc42-ee","protected":true,"created_at":"2026-05-19T03:07:17.000Z"},{"name":"v18.9.7-ee","commit":{"id":"d2242c5752a152db3c281d8a9d1e7f248e1654a9","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/d2242c5752a152db3c281d8a9d1e7f248e1654a9","short_id":"d2242c57","trailers":[],"created_at":"2026-05-13T10:41:30.000+00:00","parent_ids":["dbd7d4019394c6e2027aa09960714667397b2f2f"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-13T10:41:30.000+00:00","committed_date":"2026-05-13T10:41:30.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"4f1e5550786a225ece50756013d349ff759d5d25","message":"Version v18.9.7-ee","protected":true,"created_at":"2026-05-13T10:50:42.000Z"},{"name":"v18.10.6-ee","commit":{"id":"f80804c4e73fb0404af24e88ffb5246c0aeeda40","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/f80804c4e73fb0404af24e88ffb5246c0aeeda40","short_id":"f80804c4","trailers":[],"created_at":"2026-05-13T10:36:35.000+00:00","parent_ids":["4a393197551049d2efed1b98da730cb222a7689b"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-13T10:36:35.000+00:00","committed_date":"2026-05-13T10:36:35.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"c29a1ce96a68af7be5ff5a5fb45f96daff38a930","message":"Version v18.10.6-ee","protected":true,"created_at":"2026-05-13T10:38:42.000Z"},{"name":"v18.11.3-ee","commit":{"id":"daa4145c8330213081c57260b569539e3b157b87","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/daa4145c8330213081c57260b569539e3b157b87","short_id":"daa4145c","trailers":[],"created_at":"2026-05-13T10:30:07.000+00:00","parent_ids":["89fd8fbb9cedff771e992a596fdd865a119cd59f"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-05-13T10:30:07.000+00:00","committed_date":"2026-05-13T10:30:07.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"efe97b0c723b74748909ef5cc65486790528d94f","message":"Version v18.11.3-ee","protected":true,"created_at":"2026-05-13T10:33:16.000Z"},{"name":"v18.10.5-ee","commit":{"id":"d0933625228ffd38db50bc216fb5ee03e7591794","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/d0933625228ffd38db50bc216fb5ee03e7591794","short_id":"d0933625","trailers":[],"created_at":"2026-04-28T16:48:26.000+00:00","parent_ids":["a354e0c09ba083cfd40e393c2356a6635cc9869c"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-28T16:48:26.000+00:00","committed_date":"2026-04-28T16:48:26.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"a40346301d37143a2d875943a114d5131fab3071","message":"Version v18.10.5-ee","protected":true,"created_at":"2026-04-28T16:50:40.000Z"},{"name":"v18.11.2-ee","commit":{"id":"354369a0b7c480627798064211c15a6051bbc99b","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/354369a0b7c480627798064211c15a6051bbc99b","short_id":"354369a0","trailers":[],"created_at":"2026-04-28T16:29:21.000+00:00","parent_ids":["9232fb44668af01252f12b0b616e50ce093a1495"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-28T16:29:21.000+00:00","committed_date":"2026-04-28T16:29:21.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"a3188482958aacc4acef0e95606e74288213f5bd","message":"Version v18.11.2-ee","protected":true,"created_at":"2026-04-28T16:32:37.000Z"},{"name":"v18.9.6-ee","commit":{"id":"48d537ce479485ffb6aef70f62ead88ac15e78b8","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/48d537ce479485ffb6aef70f62ead88ac15e78b8","short_id":"48d537ce","trailers":[],"created_at":"2026-04-21T13:56:40.000+00:00","parent_ids":["e8a20b48669df6b7e3cdece8c0f3a6d48f62e105"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-21T13:56:40.000+00:00","committed_date":"2026-04-21T13:56:40.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"47191c2b6a84249fea4505faf53d0f29a158a70a","message":"Version v18.9.6-ee","protected":true,"created_at":"2026-04-21T13:58:49.000Z"},{"name":"v18.10.4-ee","commit":{"id":"2c4a87e00b3f5ab1eab353136020dfcab34ae6ca","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/2c4a87e00b3f5ab1eab353136020dfcab34ae6ca","short_id":"2c4a87e0","trailers":[],"created_at":"2026-04-21T13:51:03.000+00:00","parent_ids":["0234c21c8eb00de5d00cb53e2d6cfcb8eca6101a"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-21T13:51:03.000+00:00","committed_date":"2026-04-21T13:51:03.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"272fa195d73872f3d713c22f1c2b0499cc0f2c05","message":"Version v18.10.4-ee","protected":true,"created_at":"2026-04-21T13:53:12.000Z"},{"name":"v18.11.1-ee","commit":{"id":"f432cd0a5b36162f884f385489eb80b5fa1e8a07","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/f432cd0a5b36162f884f385489eb80b5fa1e8a07","short_id":"f432cd0a","trailers":[],"created_at":"2026-04-21T13:40:54.000+00:00","parent_ids":["0d312c67f4405e36b7b7eb684dbf4036cdf4f4d2"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-21T13:40:54.000+00:00","committed_date":"2026-04-21T13:40:54.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"f9205ae5fec69515f35301e8271cf0b74a1556ff","message":"Version v18.11.1-ee","protected":true,"created_at":"2026-04-21T13:48:01.000Z"},{"name":"v18.11.0-ee","commit":{"id":"1060c7b0ff78be7c8abe8fd6d23dcb1ca493fd78","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/1060c7b0ff78be7c8abe8fd6d23dcb1ca493fd78","short_id":"1060c7b0","trailers":[],"created_at":"2026-04-15T21:41:05.000+00:00","parent_ids":["3abf8afcfa9190b7400d05e3f45cd81e8e286b99"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-15T21:41:05.000+00:00","committed_date":"2026-04-15T21:41:05.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"8be8c00d95030c0b83f4a81e85b393f6a2efca6e","message":"Version v18.11.0-ee","release":{"tag_name":"v18.11.0-ee","description":"![42 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=42&style=for-the-badge \"New features added in this release\")\n![4062 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=4062&style=for-the-badge \"Total features\")\n\n#### [Ultimate](https://about.gitlab.com/pricing/ultimate/)\n\n![13 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=13&style=flat-square \"New features added to this tier in this release\")\n![737 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=737&style=flat-square \"Total features in this tier\")\n\n##### [Application security testing](https://about.gitlab.com/stages-devops-lifecycle/application_security_testing/)\n\n<details><summary>[Dependency resolution for Maven and Python SBOM scanning](https://docs.gitlab.com/user/application_security/dependency_scanning/dependency_scanning_sbom/#dependency-resolution): <code>Software Composition Analysis</code></summary>\n\n> GitLab dependency scanning using SBOM now supports generating a dependency graph automatically for Maven and Python projects.\n> Previously, dependency scanning required users to provide a lock file or a graph file to get an accurate dependency analysis.\n> Now, when a lock file or graph file is not available, the analyzer automatically attempts to generate one.\n> This improvement makes it easier for Maven and Python projects to enable dependency scanning without requiring a lock file.\n\n</details>\n\n<details><summary>[Incremental scanning for Advanced SAST](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#incremental-scanning): <code>SAST</code></summary>\n\n> You can now perform incremental scans that analyze only changed parts of the codebase with GitLab Advanced SAST, significantly reducing scan times compared to full repository scans. This feature is a further iteration of diff-based scanning, because it produces full results for codebases.\n> \n> By scanning just the code that has changed rather than the entire codebase, your teams can integrate security testing more seamlessly into their development workflow without sacrificing speed or adding friction.\n\n</details>\n\n<details><summary>[Unverified vulnerabilities (Beta)](https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/#report-unverified-vulnerabilities): <code>SAST</code></summary>\n\n> Advanced SAST can now surface unverified vulnerabilities (findings that cannot be fully traced from source to sink) directly in the vulnerability report. Enable this feature if you have a higher tolerance for false positives over false negatives.\n> \n> This feature is in beta status. Provide feedback in [issue 596512](https://gitlab.com/gitlab-org/gitlab/-/work_items/596512).\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Vulnerability resolution generally available on GitLab Duo Agent Platform](https://docs.gitlab.com/user/application_security/vulnerabilities/agentic_vulnerability_resolution/): <code>Vulnerability Management</code></summary>\n\n> Agentic SAST Vulnerability Resolution is now generally available in GitLab 18.11 on the GitLab Duo Agent Platform. It runs as part of your SAST scan, after SAST false positive detection runs, or when manually triggered for individual SAST vulnerabilities.\n> \n> Agentic SAST Vulnerability Resolution:\n> \n> - Autonomously analyzes the finding and reasons through the surrounding code context.\n> - Automatically creates a ready-to-review merge request with proposed code fixes for critical and high severity SAST vulnerabilities.\n> - Provides quality assessments so reviewers can quickly gauge confidence in the proposed remediation.\n> - Allows you to apply resolutions directly from vulnerability details pages.\n> \n> We welcome your feedback in [issue 585626](https://gitlab.com/gitlab-org/gitlab/-/issues/585626).\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Automated vulnerability severity overrides](https://docs.gitlab.com/user/application_security/policies/vulnerability_management_policy/#severity-override-policies): <code>Security Policy Management</code></summary>\n\n> Default vulnerability severities don't always reflect your organization's actual risk. A critical CVE in an internal-only service might not warrant the same urgency as one in a public-facing application, yet teams spend significant time triaging findings that don't match their risk model.\n> \n> Vulnerability management policies can now automatically adjust the severity of vulnerabilities based on conditions like CVE ID, CWE ID, file path, and directory. When applied, the policy updates the severity of any vulnerability that matches the criteria on the default branch. Manual overrides still take precedence, and all changes are logged in the vulnerability's history and audit events.\n> \n> This reduces triage work and ensures developers focus on the findings that matter most to your business.\n\n</details>\n\n<details><summary>[Top CWE chart in security dashboards](https://docs.gitlab.com/user/application_security/security_dashboard/#top-10-cwes): <code>Vulnerability Management</code></summary>\n\n> The top CWE chart is now available on the new security dashboards. Identify the most common CWEs across your project or instance to identify opportunities for training, improvement, or program optimization. Users can group the dashboard data by severity and filter the dashboard by severity, project, and report type.\n\n</details>\n\n<details><summary>[Block merge requests with high exploitability risk](https://docs.gitlab.com/user/application_security/policies/merge_request_approval_policies/#vulnerability_attributes-object): <code>Security Policy Management</code></summary>\n\n> Previously, merge request (MR) approval policies could block MRs based on vulnerability severity, but not all vulnerabilities carry the same risk. CVSS severity alone doesn't tell you whether a CVE is being exploited or how likely exploitation is. This leads to noisy approval policies and wasted time for developers and security teams.\n> \n> You can now configure MR approval policies using Known Exploited Vulnerability (KEV) and Exploit Prediction Scoring System (EPSS) data. Block or require approval when a finding is in the KEV catalog (actively exploited in the wild), or when its EPSS score is above a threshold. Policy violations in the MR include KEV and EPSS context so developers understand why the security gate was triggered.\n> \n> This gives security teams precise control over which findings block or warn, reduces alert fatigue, and keeps enforcement aligned with the current threat landscape.\n\n</details>\n\n<details><summary>[Assign CVSS 4.0 scores to vulnerabilities](https://docs.gitlab.com/user/application_security/vulnerabilities/severities/): <code>Vulnerability Management</code></summary>\n\n> CVSS 4.0 is the latest version of the industry standard used to assess and rate the severity of a vulnerability. You can now view and access CVSS 4.0 score in the UI, including the vulnerability details page and the vulnerability report. You can also query the score using the API.\n\n</details>\n\n<details><summary>[Improved row interaction in the vulnerability report](https://docs.gitlab.com/user/application_security/vulnerability_report/): <code>Vulnerability Management</code></summary>\n\n> Previously, you had to select the row description to navigate to a vulnerability details page from the vulnerability report.\n> \n> You can now select anywhere in the row to go directly to its details. Link styling for the vulnerability description and file location only appears when you hover over each link, and keyboard navigation has been improved.\n> \n> These changes make the vulnerability report more intuitive and accessible.\n\n</details>\n\n<details><summary>[Export a security dashboard as a PDF](https://docs.gitlab.com/user/application_security/security_dashboard/#export-as-pdf): <code>Vulnerability Management</code></summary>\n\n> You can export the security dashboard as a PDF for use in reports and presentations. The export captures the current state of all of the charts and panels in the dashboard, including any active filters.\n\n</details>\n\n<details><summary>[SAST scanning in security configuration profiles](https://docs.gitlab.com/user/application_security/configuration/security_configuration_profiles/): <code>Security Testing Configuration</code></summary>\n\n> In GitLab 18.9, we introduced security configuration profiles with the **Secret Detection - Default** profile. In GitLab 18.11, profiles now extend to SAST with the **Static Application Security Testing (SAST) - Default** profile, giving you a unified control surface to apply standardized static analysis coverage across all your projects without touching a single CI/CD configuration file.\n> \n> The profile activates two scan triggers:\n> \n> - **Merge Request Pipelines**: Automatically runs a SAST scan each time new commits are pushed to a branch with an open merge request. Results only include new vulnerabilities introduced by the merge request.\n> - **Branch Pipelines (default only)**: Runs automatically when changes are merged or pushed to the default branch, providing a complete view of your default branch's SAST posture.\n\n</details>\n\n<details><summary>[Security attribute filters in group security dashboards](https://docs.gitlab.com/user/application_security/security_dashboard/#filter-the-entire-dashboard): <code>Vulnerability Management</code></summary>\n\n> You can now filter the results in a group security dashboard based on the security attributes that you have applied to the projects in that group.\n> \n> The available security attributes include the following:\n> \n> - Business impact\n> - Application\n> - Business unit\n> - Internet exposure\n> - Location\n\n</details>\n\n<details><summary>[Identifier list popover in the vulnerability report](https://docs.gitlab.com/user/application_security/vulnerability_report/): <code>Vulnerability Management</code></summary>\n\n> The vulnerability report now shows the primary CVE identifier as a clickable link in each row. When multiple identifiers exist, a **\"+N more\"** popover lists all of the identifiers. Each identifier in the list links to its external reference (for example, in the CVE, CWE, or WASC databases) so you can quickly access more details without leaving the report.\n\n</details>\n\n\n\n#### [Premium](https://about.gitlab.com/pricing/premium/)\n\n![7 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=7&style=flat-square \"New features added to this tier in this release\")\n![823 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=823&style=flat-square \"Total features in this tier\")\n\n<details><summary>[Default model for GitLab Duo Agentic Chat updated from Haiku 4.5 to Sonnet 4.6](https://docs.gitlab.com/user/duo_agent_platform/model_selection/#default-models): <code>Duo Agent Platform</code></summary>\n\n> We've made an update to improve your Agentic Chat experience in GitLab. The default model for Agentic Chat was upgraded from Claude Haiku 4.5 to Claude Sonnet 4.6, hosted on Vertex AI. Claude Sonnet 4.6 offers improved reasoning and response quality but uses a higher GitLab Credit multiplier than Haiku 4.5.\n> \n> You can select an alternative model, including Haiku, using the [model selection](https://docs.gitlab.com/user/duo_agent_platform/model_selection/#select-a-model-for-a-feature) setting. If you've already selected a specific model, your choice is preserved. This update only affects the default and will not override any existing selections. For information about credit multipliers by model, see the [GitLab Credits documentation](https://docs.gitlab.com/subscriptions/gitlab_credits/).\n\n</details>\n\n<details><summary>[Mistral AI now supported as a self-hosted model in GitLab Duo Agent Platform](https://docs.gitlab.com/administration/gitlab_duo_self_hosted/supported_llm_serving_platforms/#cloud-hosted-model-deployments) <i>(self-managed only)</i>: <code>Self-Hosted Models</code></summary>\n\n> GitLab Duo Agent Platform now supports Mistral AI as an LLM platform for self-hosted model deployments. GitLab Self-Managed customers can configure Mistral AI alongside existing supported platforms, including AWS Bedrock, Google Vertex AI, Azure OpenAI, Anthropic, and OpenAI. This gives teams more choice in how they run AI-powered features.\n\n</details>\n\n<details><summary>[Enhanced GitLab Duo Agent Platform analytics on Duo and SDLC trends dashboard](https://docs.gitlab.com/user/analytics/duo_and_sdlc_trends/): <code>DevOps Reports</code></summary>\n\n> The GitLab Duo and SDLC trends dashboard delivers improved analytics capabilities to measure the impact of GitLab Duo\n> on software delivery. The dashboard now includes new single stat panels for monthly Agent Platform unique users and Agentic Chat sessions.\n> Additionally, metrics previously displayed as a % usage compared to seat assignments have been updated to strictly report usage counts.\n> This change resolves the [issue](https://gitlab.com/gitlab-org/gitlab/-/work_items/590326) where counts were missing Agent Platform usage controlled under the new usage billing model.\n\n</details>\n\n<details><summary>[View historical months in GitLab Credits dashboard](https://docs.gitlab.com/subscriptions/gitlab_credits/?tab=Customers+Portal#view-the-gitlab-credits-dashboard): <code>Consumables Cost Management</code></summary>\n\n> The GitLab Credits dashboard in Customers Portal now supports historical month navigation. Billing managers can browse past billing months to review daily usage trends, compare consumption patterns across periods, and reconcile usage with invoices. Previously, the dashboard only displayed the current billing month. With this improvement, administrators can make more informed decisions about credit allocation and forecast future needs based on historical data.\n\n</details>\n\n<details><summary>[Set subscription-level usage cap for GitLab Credits](https://docs.gitlab.com/subscriptions/gitlab_credits/#usage-controls): <code>Consumables Cost Management</code></summary>\n\n> Administrators can now set a monthly usage cap for On-Demand Credits at the subscription level. When total on-demand credit consumption reaches the configured cap, GitLab Duo Agent Platform access is automatically suspended for all users on that subscription until the next billing period begins or the admin adjusts the cap. This setting gives organizations a hard guardrail against unexpected overage bills, removing a key barrier to broader Agent Platform rollout. Caps reset automatically each billing period, and administrators receive an email notification when the cap is reached.\n\n</details>\n\n<details><summary>[Set per-user GitLab Credits cap](https://docs.gitlab.com/subscriptions/gitlab_credits/#usage-control-status): <code>Consumables Cost Management</code></summary>\n\n> Administrators can now set an optional per-user usage cap for GitLab Credits per billing period. When an individual user's total credit consumption reaches the configured limit, GitLab Duo Agent Platform access is suspended only for that user, while other users continue unaffected. This prevents any single user from consuming a disproportionate share of the organization's credit pool, and gives administrators fine-grained control over usage distribution. Per-user usage caps work alongside subscription-level usage caps, by applying the cap that is reached first.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Epic weights](https://docs.gitlab.com/user/work_items/weight/): <code>Portfolio Management</code></summary>\n\n> Epics now support weights, making it easier to estimate and prioritize large-scale\n> initiatives during planning.\n> \n> Before breaking down an epic into child issues, you can assign a preliminary weight\n> to represent your initial estimate.\n> As you decompose the epic, the weight automatically updates to reflect the rolled-up total\n> from all child issues.\n> This is consistent with how weight rollup works for issues and tasks.\n> \n> On the epic detail page, you can see both the preliminary weight and the rolled-up weight\n> from child issues, giving you the insight needed to refine estimates over time.\n\n</details>\n\n\n\n#### Core\n\n![22 new features](https://img.shields.io/static/v1?color=108548&label=new+features&labelColor=525252&message=22&style=flat-square \"New features added to this tier in this release\")\n![2502 total badges](https://img.shields.io/static/v1?color=1F75CB&label=total+features&labelColor=525252&message=2502&style=flat-square \"Total features in this tier\")\n\n<details><summary>[GitLab Data Analyst Foundational Agent now generally available](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/data_analyst/): <code>Custom Dashboards Foundation</code></summary>\n\n> The Data Analyst Agent is a specialized AI chat assistant that helps you query, visualize, and surface data across the GitLab platform.\n> \n> Backed by the [GitLab Query Language (GLQL)](https://docs.gitlab.com/user/glql), the Data Analyst can retrieve and analyze data about each of the supported [data sources](https://docs.gitlab.com/user/glql/data_sources/), and provide clear, actionable insights about your software development health and engineering efficiency.\n> \n> These insights can be visualized directly in the agent output and embedded directly into issues and epics for further evaluation.\n</details>\n\n<details><summary>[Deploy Gitaly on Kubernetes](https://docs.gitlab.com/administration/gitaly/kubernetes/) <i>(self-managed only)</i>: <code>Gitaly</code></summary>\n\n> You can now deploy Gitaly on Kubernetes as a fully supported deployment method. This gives you greater flexibility in managing your GitLab infrastructure by using Kubernetes orchestration capabilities for scaling, high availability, and resource management. Previously, Kubernetes deployments required custom configurations and weren't officially supported, making it difficult to maintain reliable Gitaly deployments in containerized environments.\n\n</details>\n\n<details><summary>[Configure tools in custom flow definitions](https://docs.gitlab.com/user/duo_agent_platform/flows/custom/#create-a-flow): <code>Duo Agent Platform</code></summary>\n\n> You can now configure tool options and parameter values directly in your custom flow definitions to supersede the LLM default values. This gives you more precise, consistent control over how tools behave within a custom flow, making it easier to enforce guardrails and specific parameter values across that flow.\n\n</details>\n\n<details><summary>[ClickHouse is generally available for Self-Managed deployments](https://docs.gitlab.com/integration/clickhouse/#set-up-clickhouse): <code>DevOps Reports</code></summary>\n\n> For GitLab Self-Managed instances, we now have improved recommendations and configuration guidance for the GitLab [ClickHouse integration](https://docs.gitlab.com/integration/clickhouse/). Customers have options to bring their own cluster, or use the ClickHouse Cloud (recommended) setup option. This integration powers multiple dashboards and unlocks access to various API endpoints within the analytics space.\n> \n> This scalable, high-performance database is part of the larger architectural improvements planned for the GitLab analytics infrastructure.\n\n</details>\n\n<details><summary>[GLQL now has access to projects, pipelines, and jobs data sources](https://docs.gitlab.com/user/glql/data_sources/): <code>Custom Dashboards Foundation</code></summary>\n\n> The [GitLab Query Language (GLQL)](https://docs.gitlab.com/user/glql/) now has access to three new data sources: projects, pipelines, and jobs. These new data sources are also available as embedded views, letting teams surface pipeline results, job statuses, and project overviews directly in wikis, issue and merge request descriptions, and repository Markdown files.\n> GLQL also powers the [Data Analyst Agent](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/data_analyst/). With these new types, the agent can inspect CI/CD job results, debug failures, and provide detailed overviews of pipeline execution, as well as provide an accurate overview of projects in a namespace.\n</details>\n\n<details><summary>[Kubernetes 1.35 support](https://docs.gitlab.com/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features): <code>Deployment Management</code></summary>\n\n> GitLab now fully supports Kubernetes version 1.35. If you want to deploy your applications to Kubernetes\n> and access all features, upgrade your connected clusters to the most recent version.\n> For more information, see [supported Kubernetes versions for GitLab features](https://docs.gitlab.com/user/clusters/agent/#supported-kubernetes-versions-for-gitlab-features).\n\n</details>\n\n<details><summary>[Linux package improvements](https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server) <i>(self-managed only)</i>: <code>Omnibus Package</code></summary>\n\n> In GitLab 19.0, the minimum-supported version of PostgreSQL will be version 17. To prepare for this change, on instances that don't use [PostgreSQL Cluster](https://docs.gitlab.com/administration/postgresql/replication_and_failover/), upgrades to GitLab 18.11 will attempt to automatically upgrade PostgreSQL to version 17.\n> \n> If you use [PostgreSQL Cluster](https://docs.gitlab.com/administration/postgresql/replication_and_failover/) or [opt out of this automated upgrade](https://docs.gitlab.com/omnibus/settings/database/#opt-out-of-automatic-postgresql-upgrades), you must [manually upgrade to PostgreSQL 17](https://docs.gitlab.com/omnibus/settings/database/#upgrade-packaged-postgresql-server) to be able to upgrade to GitLab 19.0.\n\n</details>\n\n<details><summary>[Backup and Restore Support for Container Registry Metadata Database](https://docs.gitlab.com/administration/backup_restore/#metadata-database) <i>(self-managed only)</i>: <code>Backup/Restore of GitLab instances</code></summary>\n\n> The GitLab [backup Rake task](https://docs.gitlab.com/administration/backup_restore/) for Linux package installations and the [backup-utility](https://docs.gitlab.com/charts/backup-restore/) for Cloud Native (Helm) installations now support the [container registry metadata database](https://docs.gitlab.com/administration/packages/container_registry_metadata_database/). You can now back up references to blobs, manifests, tags, and other data stored in the metadata database, enabling recovery in the event of malicious or accidental data corruption.\n\n</details>\n\n<details><summary>[New navigation experience for groups in Explore](https://docs.gitlab.com/user/group/#explore-groups): <code>Groups & Projects</code></summary>\n\n> We're excited to announce improvements to the groups list in **Explore**, making it easier to discover groups across your GitLab instance.\n> The redesigned interface introduces a tabbed layout with two views:\n> \n> - **Active** tab: Browse all accessible groups, helping you discover relevant communities and projects.\n> - **Inactive** tab: View archived groups and groups pending deletion for visibility into group lifecycle status.\n> \n> These changes streamline group discovery and provide clearer visibility into which groups are available to join.\n\n</details>\n\n<details><summary>[Asynchronous transfer of projects](https://docs.gitlab.com/user/group/manage): <code>Groups & Projects</code></summary>\n\n> In previous versions of GitLab, transfers of large groups and projects could timeout. As we move groups and projects to use a unified state model for operations such as transfer, archive, and deletion, you get more consistent behavior, better visibility into state history and audit details, and fewer timeouts, specifically, for long running transfer operations through asynchronous processing.\n\n</details>\n\n\n\n##### [Plan](https://about.gitlab.com/stages-devops-lifecycle/plan/)\n\n<details><summary>[Wiki sidebar toggle repositioned for easier access](https://docs.gitlab.com/user/project/wiki/#sidebar): <code>Wiki</code></summary>\n\n> The wiki sidebar toggle is now positioned on the left side, directly next to the sidebar\n> it controls.\n> \n> When the sidebar is collapsed, the toggle remains visible as a floating\n> control so you can reopen it without scrolling back to the top of the page.\n\n</details>\n\n<details><summary>[Sticky action bar on wiki pages](https://docs.gitlab.com/user/project/wiki/): <code>Wiki</code></summary>\n\n> The action bar on wiki pages is now sticky, so it remains visible as you scroll\n> through a page. Previously, you had to scroll back to the top to access actions\n> like editing, viewing page history, or managing templates. Now the page title\n> and key actions, including Edit, New page, Templates, Page history, and more,\n> stay within reach no matter how far down the page you are.\n\n</details>\n\n\n\n##### [Verify](https://about.gitlab.com/stages-devops-lifecycle/verify/)\n\n<details><summary>[CI Expert Agent launches in beta](https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/ci_expert_agent/): <code>Pipeline Composition</code></summary>\n\n> The AI-powered CI Expert Agent is now available in beta. This agent helps teams get from GitLab code to a first working pipeline without starting from a blank `.gitlab-ci.yml`.\n> \n> Using GitLab Duo Agent Platform, the agent inspects your repository, asks a few guided questions about your build and test process, and generates a ready-to-run pipeline you can review, edit, and commit.\n> \n> This turns pipeline creation into a conversational, context-aware experience, while still letting you take full control of the YAML after you're ready to evolve and optimize your configuration.\n\n</details>\n\n<details><summary>[Reconfigure inputs when manually running MR pipelines](https://docs.gitlab.com/ci/pipelines/merge_request_pipelines/#run-a-merge-request-pipeline-with-custom-inputs): <code>Pipeline Composition</code></summary>\n\n> A powerful aspect of CI/CD inputs is that you can manually run new pipelines with new values for runtime customization.\n> This was not available in merge request (MR) pipelines before, but in this release you can now customize inputs in MR pipelines too.\n> \n> After you configure inputs for MR pipelines, you can optionally modify those inputs and change the pipeline behavior any time you run a new pipeline for a merge request.\n\n</details>\n\n<details><summary>[GitLab Runner 18.11](https://docs.gitlab.com/runner): <code>GitLab Runner Core</code></summary>\n\n> We're also releasing GitLab Runner 18.11 today! GitLab Runner is the highly-scalable build agent that runs your CI/CD jobs and sends the results back to a GitLab instance. GitLab Runner works in conjunction with GitLab CI/CD, the open-source continuous integration service included with GitLab.\n> \n> #### What's New:\n> \n> - [Create `concrete` helper image with bundled dependencies](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39286)\n> - [Read the job router feature flag from the runner configuration instead of an environment variable](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39280)\n> \n> #### Bug Fixes:\n> \n> - [Incorrect runner binary path after refactoring](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39329)\n> - [Pipeline hangs on cache operations](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39279)\n> - [The `docker-machine` binary in GitLab Runner 18.9.0 references CVE-2025-68121](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39276)\n> - [Runner silently falls back to job payload credentials when credential helper binary is missing from `DOCKER_AUTH_CONFIG`](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/39201)\n> - [`CONCURRENT_PROJECT_ID `not unique in different jobs, which causes a conflict in the builds directory](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/38307)\n> - [Artifact upload fails with timeout awaiting response headers](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/37220)\n> - [User-defined `after_script` executes after failed `pre_build_script` and bypasses `post_build_script`](https://gitlab.com/gitlab-org/gitlab-runner/-/work_items/3116)\n> \n> The list of all changes is in the GitLab Runner [CHANGELOG](https://gitlab.com/gitlab-org/gitlab-runner/blob/18-11-stable/CHANGELOG.md).\n\n</details>\n\n\n\n##### [Package](https://about.gitlab.com/stages-devops-lifecycle/package/)\n\n<details><summary>[Prefer mode for the container registry metadata database](https://docs.gitlab.com/administration/packages/container_registry_metadata_database/#prefer-mode) <i>(self-managed only)</i>: <code>Container Registry</code></summary>\n\n> You can now set the container registry metadata database to `prefer` mode, a new configuration option alongside the existing `true` and `false` values. In prefer mode, the registry automatically detects whether it should use the metadata database or fall back to legacy storage based on the current state of your installation.\n> \n> If your registry has existing filesystem metadata that has not been imported to the database, the registry continues to use legacy storage until you complete a metadata import. If the database is already in use, or on a fresh installation, the registry uses the database directly.\n> \n> In a later release, `prefer` mode will become the default for new Linux package installations. Existing installations will not be affected. For more information, see [issue 595480](https://gitlab.com/gitlab-org/gitlab/-/work_items/595480).\n\n</details>\n\n<details><summary>[Package protection rules now support Terraform modules](https://docs.gitlab.com/user/packages/package_registry/package_protection_rules/): <code>Package Registry</code></summary>\n\n> Teams publishing Terraform modules through the built-in GitLab Terraform module registry had\n> no way to restrict who could push new module versions. Package protection rules supported\n> several package formats but did not include `terraform_module`, leaving infrastructure\n> teams without a project-level push control.\n> \n> You can now create package protection rules scoped to `terraform_module`, restricting push\n> access based on minimum role. Support is available in the UI package type dropdown, the\n> REST API, the GraphQL API, and the GitLab Terraform provider resource.\n\n</details>\n\n<details><summary>[Release evidence now includes packages](https://docs.gitlab.com/user/project/releases/release_evidence/#include-packages-as-release-evidence): <code>Package Registry</code>, <code>Release Evidence</code></summary>\n\n> When creating a GitLab Release, packages published to the package registry were not\n> automatically associated with it. Teams had to manually construct package URLs and attach\n> them as release links through the API or pipeline scripts, adding friction and risk of\n> incomplete release records.\n> \n> GitLab now automatically includes packages in release evidence when the package version\n> matches the release tag. This creates a verifiable, auditable link between your release and\n> its associated packages without any manual steps, keeping source code, artifacts, and\n> packages together in one complete release snapshot.\n\n</details>\n\n\n\n##### [Software supply chain security](https://about.gitlab.com/stages-devops-lifecycle/software_supply_chain_security/)\n\n<details><summary>[Create Service Account in subgroups and projects](https://docs.gitlab.com/user/profile/service_accounts/): <code>System Access</code></summary>\n\n> Teams can now create service accounts in subgroups and projects. Instead of broad, top-level group bots, you can attach a dedicated service account to a single subgroup or project and manage its access like any other member of that namespace. Group and subgroup service accounts can be invited to the group where they were created or to any descendant subgroups and projects. Project service accounts are limited to their own project.\n\n</details>\n\n<details><summary>[Service Accounts available on GitLab Free](https://docs.gitlab.com/user/profile/service_accounts/): <code>System Access</code></summary>\n\n> Service accounts are now available on GitLab.com in all tiers. Previously limited to\n> Premium and Ultimate, service accounts let you perform automated actions, access data, or run\n> scheduled processes without tying credentials to individual team members. They're commonly used in\n> pipelines and third-party integrations where credentials must stay stable regardless of team\n> changes. On GitLab Free, you can create up to 100 service accounts per top-level group, including those\n> created in subgroups or projects.\n\n</details>\n\n<details><summary>[Fine-grained permissions for personal access tokens now available (Beta)](https://docs.gitlab.com/auth/tokens/fine_grained_access_tokens/): <code>Permissions</code></summary>\n\n> Fine-grained personal access tokens (PATs) are now available in beta. Unlike legacy PATs, which grant access to every project and group you belong to, fine-grained PATs let you limit each token to specific resources and actions. This reduces the potential impact of a leaked or compromised token.\n> \n> Your existing PATs continue to work as before, and you can still create legacy PATs without fine-grained permissions.\n> \n> This beta release covers approximately 75% of the GitLab REST API. Full REST API coverage, GraphQL enforcement, and administrator policy controls are planned for the GA release.\n> \n> To share feedback, see [epic 18555](https://gitlab.com/groups/gitlab-org/-/epics/18555).\n\n</details>\n\n\n\n##### [Security risk management](https://about.gitlab.com/stages-devops-lifecycle/security_risk_management/)\n\n<details><summary>[Security Manager role (Beta)](https://docs.gitlab.com/user/permissions/): <code>Permissions</code></summary>\n\n> The Security Manager role is now available as a beta feature, providing a new default set of permissions designed specifically for security professionals. Security teams no longer need Developer or Maintainer roles to access security features, eliminating over-privileging concerns while maintaining separation of duties.\n> \n> Users with the Security Manager role have the following access:\n> \n> - **Vulnerability management**: View, triage, and manage vulnerabilities across groups and projects, including vulnerability reports and security dashboards.\n> - **Security inventory**: View a group's security inventory to understand scanner coverage across all projects.\n> - **Security configuration profiles**: View security configuration profiles for a group.\n> - **Compliance tools**: View audit events, compliance center, compliance frameworks, and dependency lists for a group or project.\n> - **Secret push protection**: Enable secret push protection for a group.\n> - **On-demand DAST**: Create and run on-demand DAST scans for a group.\n> \n> To get started, go to a group and select **Manage** > **Members**  to invite and assign members to the Security Manager role.\n\n</details>\n\n\n"},"protected":true,"created_at":"2026-04-15T21:44:18.000Z"},{"name":"v18.11.0-rc43-ee","commit":{"id":"29578e3227d0cde628a1f099c5eb5264790bd434","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/29578e3227d0cde628a1f099c5eb5264790bd434","short_id":"29578e32","trailers":[],"created_at":"2026-04-15T12:17:09.000+00:00","parent_ids":["06ae0bbcd1ad3d12d966b6cd53d03f12d633fbf9"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-15T12:17:09.000+00:00","committed_date":"2026-04-15T12:17:09.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"d9f625e9b5731c3215e7e9f148df04448a82cbd2","message":"Version v18.11.0-rc43-ee","protected":true,"created_at":"2026-04-15T12:23:26.000Z"},{"name":"v18.11.0-rc42-ee","commit":{"id":"06ae0bbcd1ad3d12d966b6cd53d03f12d633fbf9","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/06ae0bbcd1ad3d12d966b6cd53d03f12d633fbf9","short_id":"06ae0bbc","trailers":[],"created_at":"2026-04-14T15:48:21.000+00:00","parent_ids":["21984d789212dabc1c72a3f388f2b94c95f5329f"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-14T15:48:21.000+00:00","committed_date":"2026-04-14T15:48:21.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"d3fd37ccce7a2372880a82bee4c0c52d3b7a4209","message":"Version v18.11.0-rc42-ee","protected":true,"created_at":"2026-04-14T15:54:37.000Z"},{"name":"v18.8.9-ee","commit":{"id":"0e5855944a09654b84df0e4549c957a5d8c11c9d","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/0e5855944a09654b84df0e4549c957a5d8c11c9d","short_id":"0e585594","trailers":[],"created_at":"2026-04-07T12:48:16.000+00:00","parent_ids":["bcd17da647c6ca7259cbeed75f365dc02d2dee37"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-07T12:48:16.000+00:00","committed_date":"2026-04-07T12:48:16.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"71a9443ef725b8f57392d356af7d82d9a2ea0d5e","message":"Version v18.8.9-ee","protected":true,"created_at":"2026-04-07T12:50:25.000Z"},{"name":"v18.9.5-ee","commit":{"id":"195c0c16799d8e10e8c16f129b0719f6c48b6110","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/195c0c16799d8e10e8c16f129b0719f6c48b6110","short_id":"195c0c16","trailers":[],"created_at":"2026-04-07T12:41:16.000+00:00","parent_ids":["9b9ff440f4cb57034fa3f4a4b6ff8e865643f94f"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-07T12:41:16.000+00:00","committed_date":"2026-04-07T12:41:16.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"cddbee8adef0599753d3ced64bd9448a69eb8ef5","message":"Version v18.9.5-ee","protected":true,"created_at":"2026-04-07T12:45:25.000Z"},{"name":"v18.10.3-ee","commit":{"id":"1dcd29ee5eb310bc7572339a95188e123e83970b","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/1dcd29ee5eb310bc7572339a95188e123e83970b","short_id":"1dcd29ee","trailers":[],"created_at":"2026-04-07T12:30:23.000+00:00","parent_ids":["bc227f4eee9651fe94a424bb22ed0137adbadb22"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-04-07T12:30:23.000+00:00","committed_date":"2026-04-07T12:30:23.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"cb460e7638b15e94e71ede19fbfe3721f8024ea8","message":"Version v18.10.3-ee","protected":true,"created_at":"2026-04-07T12:37:34.000Z"},{"name":"v18.10.2-ee","commit":{"id":"a3d305183fccc49ed9b0a568ff0cc163e8c81e19","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/a3d305183fccc49ed9b0a568ff0cc163e8c81e19","short_id":"a3d30518","trailers":[],"created_at":"2026-03-31T14:17:34.000+00:00","parent_ids":["dc0d390d0178bf05d30ed80f09a4cc9724600593"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-03-31T14:17:34.000+00:00","committed_date":"2026-03-31T14:17:34.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"8c9f7f1ec4ad72693a6eb449a5c45bdbb1c439d2","message":"Version v18.10.2-ee","protected":true,"created_at":"2026-03-31T14:31:59.000Z"},{"name":"v18.9.4-ee","commit":{"id":"8db104f43204da0e8d53c38f021417ec62d85267","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/8db104f43204da0e8d53c38f021417ec62d85267","short_id":"8db104f4","trailers":[],"created_at":"2026-03-31T13:57:04.000+00:00","parent_ids":["2d816764afe817bcf14066f756b895462cb1cd7c"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-03-31T13:57:04.000+00:00","committed_date":"2026-03-31T13:57:04.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"24abf41f6b0003c44b6d554e18656edf792a18e5","message":"Version v18.9.4-ee","protected":true,"created_at":"2026-03-31T14:00:27.000Z"},{"name":"v18.8.8-ee","commit":{"id":"95ab9e03ba4f2a92c5fbc029185c95c5b2a0f09d","title":"Update VERSION files","message":"Update VERSION files\n\n[merge-train skip]","web_url":"https://gitlab.com/gitlab-org/gitlab/-/commit/95ab9e03ba4f2a92c5fbc029185c95c5b2a0f09d","short_id":"95ab9e03","trailers":[],"created_at":"2026-03-31T13:33:39.000+00:00","parent_ids":["5dc04233c2bb1f33e2f476d899b899a8a140ac42"],"author_name":"GitLab Release Tools Bot","author_email":"delivery-team+release-tools@gitlab.com","authored_date":"2026-03-31T13:33:39.000+00:00","committed_date":"2026-03-31T13:33:39.000+00:00","committer_name":"GitLab","committer_email":"noreply@gitlab.com","extended_trailers":[]},"target":"e467835f417d62eda0ec10a6a0c653554bd416f3","message":"Version v18.8.8-ee","protected":true,"created_at":"2026-03-31T13:36:57.000Z"}],"meta":{"timestamp":"2026-06-02T16:52:33.850Z","request_id":"2d589e01-8573-4155-b7f5-ae38e8de7fd2"},"status":"ok","message":"Project tags","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/user":{"get":{"operationId":"get_v1_user","tags":["Users"],"summary":"User lookup","description":"","parameters":[{"name":"user","in":"query","required":true,"description":"Username","schema":{"type":"string"},"example":"gitlab-org"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":[],"meta":{"timestamp":"2026-06-02T16:52:34.565Z","request_id":"8d03bffe-b222-4c49-9fc0-516d4ed846a6"},"status":"ok","message":"User lookup","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/user/projects":{"get":{"operationId":"get_v1_user_projects","tags":["Users"],"summary":"User projects","description":"","parameters":[{"name":"user","in":"query","required":true,"description":"Username","schema":{"type":"string"},"example":"gitlab-org"},{"name":"per_page","in":"query","required":false,"description":"Page size (max 100)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"note":"User not found.","projects":[]},"meta":{"timestamp":"2026-06-02T16:52:35.121Z","request_id":"361f477f-0f18-47e4-bec4-712145710e62"},"status":"ok","message":"User projects","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/group":{"get":{"operationId":"get_v1_group","tags":["Groups"],"summary":"Group detail","description":"","parameters":[{"name":"group","in":"query","required":true,"description":"Group id or path","schema":{"type":"string"},"example":"gitlab-org"}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"id":9970,"name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","archived":false,"projects":[{"id":82347088,"name":"Theseus","path":"theseus","_links":{"self":"https://gitlab.com/api/v4/projects/82347088","events":"https://gitlab.com/api/v4/projects/82347088/events","issues":"https://gitlab.com/api/v4/projects/82347088/issues","labels":"https://gitlab.com/api/v4/projects/82347088/labels","members":"https://gitlab.com/api/v4/projects/82347088/members","repo_branches":"https://gitlab.com/api/v4/projects/82347088/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/82347088/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/82347088/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/theseus","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2026-05-19T15:52:44.307Z","creator_id":13728016,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/theseus/-/blob/main/README.md","star_count":0,"updated_at":"2026-06-02T12:29:31.098Z","visibility":"public","description":"Documentation for the Theseus project.","forks_count":0,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/theseus.git","description_html":"<p data-sourcepos=\"1:1-1:38\" dir=\"auto\">Documentation for the Theseus project.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/theseus.git","last_activity_at":"2026-06-02T12:29:31.098Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":2,"wiki_access_level":"disabled","pages_access_level":"private","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Theseus","path_with_namespace":"gitlab-org/theseus","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["New Project"],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2026-06-02T14:05:05.561Z","name_regex_keep":"(latest.*|v.+|.*\\.sig)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":true,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/theseus","duo_secret_detection_fp_enabled":false,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":81529385,"name":"MkDocs GitLab Theme","path":"mkdocs-gitlab-theme","_links":{"self":"https://gitlab.com/api/v4/projects/81529385","events":"https://gitlab.com/api/v4/projects/81529385/events","issues":"https://gitlab.com/api/v4/projects/81529385/issues","labels":"https://gitlab.com/api/v4/projects/81529385/labels","members":"https://gitlab.com/api/v4/projects/81529385/members","repo_branches":"https://gitlab.com/api/v4/projects/81529385/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/81529385/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/81529385/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/mkdocs-gitlab-theme","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2026-04-21T23:34:02.424Z","creator_id":2683007,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/mkdocs-gitlab-theme/-/blob/main/README.md","star_count":0,"updated_at":"2026-04-23T17:30:05.870Z","visibility":"public","forks_count":0,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/mkdocs-gitlab-theme.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/mkdocs-gitlab-theme.git","last_activity_at":"2026-04-23T16:30:36.756Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"private","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / MkDocs GitLab Theme","path_with_namespace":"gitlab-org/mkdocs-gitlab-theme","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["New Project"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2026-04-22T23:34:02.440Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":true,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/mkdocs-gitlab-theme","duo_secret_detection_fp_enabled":false,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":79457252,"name":"GitLab Jira Forge","path":"gitlab-jira-forge","_links":{"self":"https://gitlab.com/api/v4/projects/79457252","events":"https://gitlab.com/api/v4/projects/79457252/events","issues":"https://gitlab.com/api/v4/projects/79457252/issues","labels":"https://gitlab.com/api/v4/projects/79457252/labels","members":"https://gitlab.com/api/v4/projects/79457252/members","repo_branches":"https://gitlab.com/api/v4/projects/79457252/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/79457252/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/79457252/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-jira-forge","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/79457252/gitlab_jira_logo_new.png","created_at":"2026-02-13T06:34:56.422Z","creator_id":26619283,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-jira-forge/-/blob/main/README.md","star_count":1,"updated_at":"2026-05-26T17:59:06.468Z","visibility":"public","description":"","forks_count":0,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"ff","wiki_enabled":true,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-jira-forge.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-jira-forge.git","last_activity_at":"2026-05-26T17:59:06.468Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":10,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Jira Forge","path_with_namespace":"gitlab-org/gitlab-jira-forge","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["New Project"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2026-02-14T06:34:56.451Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":true,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-jira-forge","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":78255993,"name":"caproni","path":"caproni","_links":{"self":"https://gitlab.com/api/v4/projects/78255993","events":"https://gitlab.com/api/v4/projects/78255993/events","issues":"https://gitlab.com/api/v4/projects/78255993/issues","labels":"https://gitlab.com/api/v4/projects/78255993/labels","members":"https://gitlab.com/api/v4/projects/78255993/members","repo_branches":"https://gitlab.com/api/v4/projects/78255993/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/78255993/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/78255993/merge_requests"},"mirror":false,"topics":["cloud-native","developer","gdk","kubernetes"],"web_url":"https://gitlab.com/gitlab-org/caproni","archived":false,"tag_list":["cloud-native","developer","gdk","kubernetes"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2026-02-05T11:06:57.522Z","creator_id":895869,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/caproni/-/blob/main/README.md","star_count":9,"updated_at":"2026-06-02T15:27:55.622Z","visibility":"public","description":"Caproni is an alternative development toolkit for developing GitLab that uses Cloud Native GitLab Charts and Kubernetes in the development process.","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/caproni.git","description_html":"<p data-sourcepos=\"1:1-1:147\" dir=\"auto\">Caproni is an alternative development toolkit for developing GitLab that uses Cloud Native GitLab Charts and Kubernetes in the development process.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/caproni.git","last_activity_at":"2026-06-02T15:27:55.523Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":57,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":126633778,"group_name":"caproni","group_full_path":"gitlab-org/maintainers/caproni","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / caproni","path_with_namespace":"gitlab-org/caproni","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","merge_request_title_regex":"","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2026-06-02T14:05:06.122Z","name_regex_keep":"(latest.*|v.+|.*\\.sig)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":true,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/caproni","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","merge_request_title_regex_description":"","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":75909580,"name":"packhorse","path":"packhorse","_links":{"self":"https://gitlab.com/api/v4/projects/75909580","events":"https://gitlab.com/api/v4/projects/75909580/events","issues":"https://gitlab.com/api/v4/projects/75909580/issues","labels":"https://gitlab.com/api/v4/projects/75909580/labels","members":"https://gitlab.com/api/v4/projects/75909580/members","repo_branches":"https://gitlab.com/api/v4/projects/75909580/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/75909580/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/75909580/merge_requests"},"mirror":false,"topics":["service"],"web_url":"https://gitlab.com/gitlab-org/packhorse","archived":false,"tag_list":["service"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2025-11-07T13:20:12.960Z","creator_id":895869,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/packhorse/-/blob/main/README.md","star_count":5,"updated_at":"2026-06-02T09:40:44.414Z","visibility":"public","description":"A horizontally scalable cache for git, for use inside or outside the application, designed to improve GitLab CI clone performance","forks_count":0,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/packhorse.git","description_html":"<p data-sourcepos=\"1:1-1:129\" dir=\"auto\">A horizontally scalable cache for git, for use inside or outside the application, designed to improve GitLab CI clone performance</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/packhorse.git","last_activity_at":"2026-06-02T08:58:43.151Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":13,"wiki_access_level":"disabled","pages_access_level":"private","shared_with_groups":[{"group_id":1413584,"group_name":"gl-gitaly","group_full_path":"gl-gitaly","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / packhorse","path_with_namespace":"gitlab-org/packhorse","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":true,"name_regex":".*","older_than":"90d","next_run_at":"2026-06-02T08:04:45.335Z","name_regex_keep":"(latest.*|v.+|.*\\.sig)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":true,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/packhorse","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":74166478,"name":"moa","path":"moa","_links":{"self":"https://gitlab.com/api/v4/projects/74166478","events":"https://gitlab.com/api/v4/projects/74166478/events","issues":"https://gitlab.com/api/v4/projects/74166478/issues","labels":"https://gitlab.com/api/v4/projects/74166478/labels","members":"https://gitlab.com/api/v4/projects/74166478/members","repo_branches":"https://gitlab.com/api/v4/projects/74166478/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/74166478/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/74166478/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/moa","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2025-09-04T07:08:52.331Z","creator_id":64248,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/moa/-/blob/main/README.md","star_count":1,"updated_at":"2026-04-27T13:28:50.609Z","visibility":"public","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/moa.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/moa.git","last_activity_at":"2026-04-27T12:49:10.174Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":5,"wiki_access_level":"enabled","pages_access_level":"private","shared_with_groups":[{"group_id":7425590,"group_name":"runner-maintainers","group_full_path":"gitlab-com/runner-maintainers","group_access_level":40},{"group_id":8810158,"group_name":"runner-docs-maintainers","group_full_path":"gitlab-com/runner-docs-maintainers","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / moa","path_with_namespace":"gitlab-org/moa","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["New Project"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2025-09-05T07:08:52.377Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":true,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/moa","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":true,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":74138654,"name":"Duo UI Next","path":"duo-ui-next","_links":{"self":"https://gitlab.com/api/v4/projects/74138654","events":"https://gitlab.com/api/v4/projects/74138654/events","issues":"https://gitlab.com/api/v4/projects/74138654/issues","labels":"https://gitlab.com/api/v4/projects/74138654/labels","members":"https://gitlab.com/api/v4/projects/74138654/members","repo_branches":"https://gitlab.com/api/v4/projects/74138654/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/74138654/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/74138654/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/duo-ui-next","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2025-09-03T09:36:37.123Z","creator_id":1149402,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/duo-ui-next/-/blob/main/README.md","star_count":1,"updated_at":"2026-04-25T00:03:27.491Z","visibility":"public","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/duo-ui-next.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/duo-ui-next.git","last_activity_at":"2026-04-25T00:03:27.491Z","packages_enabled":false,"snippets_enabled":true,"open_issues_count":4,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Duo UI Next","path_with_namespace":"gitlab-org/duo-ui-next","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["New Project"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","merge_request_title_regex":"","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2025-09-04T09:36:37.158Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"disabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"disabled","spp_repository_pipeline_access":true,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/duo-ui-next","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","merge_request_title_regex_description":"","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":71037312,"name":"Group Level Templates","path":"group-level-templates","_links":{"self":"https://gitlab.com/api/v4/projects/71037312","events":"https://gitlab.com/api/v4/projects/71037312/events","issues":"https://gitlab.com/api/v4/projects/71037312/issues","labels":"https://gitlab.com/api/v4/projects/71037312/labels","members":"https://gitlab.com/api/v4/projects/71037312/members","repo_branches":"https://gitlab.com/api/v4/projects/71037312/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/71037312/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/71037312/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/group-level-templates","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2025-06-22T18:18:50.525Z","creator_id":116,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/group-level-templates/-/blob/main/README.md","star_count":1,"updated_at":"2026-01-07T13:32:36.778Z","visibility":"public","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/group-level-templates.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/group-level-templates.git","last_activity_at":"2026-01-07T13:32:36.778Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"private","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Group Level Templates","path_with_namespace":"gitlab-org/group-level-templates","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["New Project"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2025-06-23T18:18:50.544Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/group-level-templates","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":62674588,"name":"GLQL","path":"glql","_links":{"self":"https://gitlab.com/api/v4/projects/62674588","events":"https://gitlab.com/api/v4/projects/62674588/events","issues":"https://gitlab.com/api/v4/projects/62674588/issues","labels":"https://gitlab.com/api/v4/projects/62674588/labels","members":"https://gitlab.com/api/v4/projects/62674588/members","repo_branches":"https://gitlab.com/api/v4/projects/62674588/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/62674588/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/62674588/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/glql","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2024-10-16T11:05:59.837Z","creator_id":2398164,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/glql/-/blob/main/README.md","star_count":16,"updated_at":"2026-06-02T14:29:33.112Z","visibility":"public","description":"GLQL library written in Rust: transpiles GLQL code to GraphQL and transforms the resulting output","forks_count":9,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/glql.git","description_html":"<p data-sourcepos=\"1:1-1:97\" dir=\"auto\">GLQL library written in Rust: transpiles GLQL code to GraphQL and transforms the resulting output</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/glql.git","last_activity_at":"2026-06-02T14:29:33.112Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":54,"wiki_access_level":"enabled","pages_access_level":"private","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GLQL","path_with_namespace":"gitlab-org/glql","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","merge_request_title_regex":"","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2024-10-17T11:05:59.858Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":false,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/glql","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","merge_request_title_regex_description":"","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":62039593,"name":"Duo UI","path":"duo-ui","_links":{"self":"https://gitlab.com/api/v4/projects/62039593","events":"https://gitlab.com/api/v4/projects/62039593/events","issues":"https://gitlab.com/api/v4/projects/62039593/issues","labels":"https://gitlab.com/api/v4/projects/62039593/labels","members":"https://gitlab.com/api/v4/projects/62039593/members","repo_branches":"https://gitlab.com/api/v4/projects/62039593/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/62039593/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/62039593/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/duo-ui","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/62039593/dark.png","created_at":"2024-09-26T15:50:32.701Z","creator_id":128633,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/duo-ui/-/blob/main/README.md","star_count":9,"updated_at":"2026-06-02T16:27:29.379Z","visibility":"public","description":"","forks_count":6,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"failed","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/duo-ui.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/duo-ui.git","last_activity_at":"2026-06-02T16:27:29.379Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":47,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":53991625,"group_name":"gitlab-ui","group_full_path":"gitlab-org/maintainers/gitlab-ui","group_access_level":40},{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Duo UI","path_with_namespace":"gitlab-org/duo-ui","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"issue_branch_template":"","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2024-09-27T15:50:32.723Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/duo-ui","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":58264541,"name":"gitlab-org - Security Policy project","path":"gitlab-org-security-policy-project","_links":{"self":"https://gitlab.com/api/v4/projects/58264541","events":"https://gitlab.com/api/v4/projects/58264541/events","labels":"https://gitlab.com/api/v4/projects/58264541/labels","members":"https://gitlab.com/api/v4/projects/58264541/members","repo_branches":"https://gitlab.com/api/v4/projects/58264541/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/58264541/cluster_agents"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-org-security-policy-project","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2024-05-28T07:06:41.552Z","creator_id":128633,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-org-security-policy-project/-/blob/main/README.md","star_count":1,"updated_at":"2026-04-15T05:45:44.157Z","visibility":"public","description":"Project managing Security Policies for the gitlab-org group.","forks_count":3,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"always","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-org-security-policy-project.git","description_html":"<p data-sourcepos=\"1:1-1:60\" dir=\"auto\">Project managing Security Policies for the gitlab-org group.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-org-security-policy-project.git","last_activity_at":"2026-04-15T05:45:40.280Z","packages_enabled":true,"snippets_enabled":false,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"private","name_with_namespace":"GitLab.org / gitlab-org - Security Policy project","path_with_namespace":"gitlab-org/gitlab-org-security-policy-project","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"disabled","suggestion_commit_message":"","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2024-05-29T07:06:41.597Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"private","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-org-security-policy-project","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":52469398,"name":"Step Runner","path":"step-runner","_links":{"self":"https://gitlab.com/api/v4/projects/52469398","events":"https://gitlab.com/api/v4/projects/52469398/events","issues":"https://gitlab.com/api/v4/projects/52469398/issues","labels":"https://gitlab.com/api/v4/projects/52469398/labels","members":"https://gitlab.com/api/v4/projects/52469398/members","repo_branches":"https://gitlab.com/api/v4/projects/52469398/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/52469398/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/52469398/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/step-runner","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/52469398/step-runner.png","created_at":"2023-11-23T21:18:55.196Z","creator_id":10353774,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/step-runner/-/blob/main/README.md","star_count":22,"updated_at":"2026-06-02T16:10:03.072Z","visibility":"public","description":"","forks_count":22,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/step-runner.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/step-runner.git","last_activity_at":"2026-06-02T16:10:03.072Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":205,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Step Runner","path_with_namespace":"gitlab-org/step-runner","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"issue_branch_template":"","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":false,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":true,"name_regex":"step-runner/pipeline/.*","older_than":"7d","next_run_at":"2026-06-02T18:35:19.792Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/step-runner","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":true,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":true,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":51082400,"name":"Value Stream Dashboard reports generator","path":"vsd-reports-generator","_links":{"self":"https://gitlab.com/api/v4/projects/51082400","events":"https://gitlab.com/api/v4/projects/51082400/events","issues":"https://gitlab.com/api/v4/projects/51082400/issues","labels":"https://gitlab.com/api/v4/projects/51082400/labels","members":"https://gitlab.com/api/v4/projects/51082400/members","repo_branches":"https://gitlab.com/api/v4/projects/51082400/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/51082400/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/51082400/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/vsd-reports-generator","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2023-10-09T15:02:08.011Z","creator_id":14176744,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/vsd-reports-generator/-/blob/main/README.md","star_count":1,"updated_at":"2026-01-07T11:58:37.904Z","visibility":"public","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/vsd-reports-generator.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/vsd-reports-generator.git","last_activity_at":"2026-01-07T11:58:37.904Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Value Stream Dashboard reports generator","path_with_namespace":"gitlab-org/vsd-reports-generator","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2023-10-10T15:02:08.062Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/vsd-reports-generator","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":48057007,"name":"git-test","path":"git-test","_links":{"self":"https://gitlab.com/api/v4/projects/48057007","events":"https://gitlab.com/api/v4/projects/48057007/events","issues":"https://gitlab.com/api/v4/projects/48057007/issues","labels":"https://gitlab.com/api/v4/projects/48057007/labels","members":"https://gitlab.com/api/v4/projects/48057007/members","repo_branches":"https://gitlab.com/api/v4/projects/48057007/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/48057007/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/48057007/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/git-test","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2023-07-27T11:46:17.366Z","creator_id":2187482,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/git-test/-/blob/main/README.md","star_count":1,"updated_at":"2026-04-13T01:06:07.798Z","visibility":"public","description":"This project is designed to easily test git and git-lfs against gitlab.com.","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/git-test.git","description_html":"<p data-sourcepos=\"1:1-1:75\" dir=\"auto\">This project is designed to easily test git and git-lfs against gitlab.com.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/git-test.git","last_activity_at":"2026-04-13T01:00:10.364Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / git-test","path_with_namespace":"gitlab-org/git-test","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2023-07-28T11:46:17.400Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/git-test","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":46649240,"name":"Gitlab Zoekt","path":"gitlab-zoekt-indexer","_links":{"self":"https://gitlab.com/api/v4/projects/46649240","events":"https://gitlab.com/api/v4/projects/46649240/events","issues":"https://gitlab.com/api/v4/projects/46649240/issues","labels":"https://gitlab.com/api/v4/projects/46649240/labels","members":"https://gitlab.com/api/v4/projects/46649240/members","repo_branches":"https://gitlab.com/api/v4/projects/46649240/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/46649240/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/46649240/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-zoekt-indexer","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2023-06-07T04:07:20.611Z","creator_id":4719382,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-zoekt-indexer/-/blob/main/README.md","star_count":5,"updated_at":"2026-06-02T15:25:12.062Z","visibility":"public","description":"","forks_count":6,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-zoekt-indexer.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-zoekt-indexer.git","last_activity_at":"2026-06-02T15:09:58.502Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":34,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Gitlab Zoekt","path_with_namespace":"gitlab-org/gitlab-zoekt-indexer","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2023-06-08T04:07:20.630Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-zoekt-indexer","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":45393508,"name":"Data Quality","path":"data-quality","_links":{"self":"https://gitlab.com/api/v4/projects/45393508","events":"https://gitlab.com/api/v4/projects/45393508/events","labels":"https://gitlab.com/api/v4/projects/45393508/labels","members":"https://gitlab.com/api/v4/projects/45393508/members","repo_branches":"https://gitlab.com/api/v4/projects/45393508/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/45393508/cluster_agents"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/data-quality","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2023-04-21T23:07:30.823Z","creator_id":64248,"empty_repo":false,"star_count":1,"updated_at":"2026-06-01T18:48:16.576Z","visibility":"public","lfs_enabled":true,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/data-quality.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/data-quality.git","last_activity_at":"2026-06-01T18:48:16.576Z","packages_enabled":true,"snippets_enabled":false,"wiki_access_level":"private","pages_access_level":"private","shared_with_groups":[],"builds_access_level":"private","issues_access_level":"private","name_with_namespace":"GitLab.org / Data Quality","path_with_namespace":"gitlab-org/data-quality","forking_access_level":"private","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"issue_branch_template":"","releases_access_level":"private","snippets_access_level":"private","analytics_access_level":"private","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"private","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"private","requirements_access_level":"private","container_registry_enabled":false,"feature_flags_access_level":"private","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2023-04-22T23:07:30.862Z"},"infrastructure_access_level":"private","merge_requests_access_level":"private","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"private","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/data-quality","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":44029359,"name":"public-image-archive","path":"public-image-archive","_links":{"self":"https://gitlab.com/api/v4/projects/44029359","events":"https://gitlab.com/api/v4/projects/44029359/events","issues":"https://gitlab.com/api/v4/projects/44029359/issues","labels":"https://gitlab.com/api/v4/projects/44029359/labels","members":"https://gitlab.com/api/v4/projects/44029359/members","repo_branches":"https://gitlab.com/api/v4/projects/44029359/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/44029359/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/44029359/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/public-image-archive","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2023-03-03T19:35:41.555Z","creator_id":64248,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/public-image-archive/-/blob/main/README.md","star_count":1,"updated_at":"2026-03-23T11:23:06.430Z","visibility":"public","forks_count":2,"lfs_enabled":true,"public_jobs":false,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/public-image-archive.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/public-image-archive.git","last_activity_at":"2026-03-23T11:23:06.430Z","packages_enabled":false,"snippets_enabled":false,"open_issues_count":1,"wiki_access_level":"disabled","pages_access_level":"disabled","shared_with_groups":[],"builds_access_level":"disabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / public-image-archive","path_with_namespace":"gitlab-org/public-image-archive","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"disabled","snippets_access_level":"disabled","analytics_access_level":"private","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2023-03-04T19:35:41.623Z"},"infrastructure_access_level":"disabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":true,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/public-image-archive","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":40916776,"name":"GitLab Terraform Provider","path":"terraform-provider-gitlab","_links":{"self":"https://gitlab.com/api/v4/projects/40916776","events":"https://gitlab.com/api/v4/projects/40916776/events","issues":"https://gitlab.com/api/v4/projects/40916776/issues","labels":"https://gitlab.com/api/v4/projects/40916776/labels","members":"https://gitlab.com/api/v4/projects/40916776/members","repo_branches":"https://gitlab.com/api/v4/projects/40916776/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/40916776/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/40916776/merge_requests"},"mirror":false,"topics":["hacktoberfest","infrastructure as code","terraform","terraform-provider"],"web_url":"https://gitlab.com/gitlab-org/terraform-provider-gitlab","archived":false,"tag_list":["hacktoberfest","infrastructure as code","terraform","terraform-provider"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/40916776/gitlab_configure_group_logo.png","created_at":"2022-11-09T12:12:48.760Z","creator_id":5189712,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/terraform-provider-gitlab/-/blob/main/README.md","star_count":124,"updated_at":"2026-06-02T16:23:30.815Z","visibility":"public","description":"Official GitLab Terraform Provider. ","forks_count":205,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/terraform-provider-gitlab.git","description_html":"<p data-sourcepos=\"1:1-1:36\" dir=\"auto\">Official GitLab Terraform Provider.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/terraform-provider-gitlab.git","last_activity_at":"2026-06-02T16:02:30.928Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":93,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Terraform Provider","path_with_namespace":"gitlab-org/terraform-provider-gitlab","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":1,"cadence":"1d","enabled":true,"name_regex":".*","older_than":"30d","next_run_at":"2026-06-03T02:25:21.048Z","name_regex_keep":"v.+"},"infrastructure_access_level":"disabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/terraform-provider-gitlab","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":true,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":39455850,"name":"GitLab Docs Archives","path":"gitlab-docs-archives","_links":{"self":"https://gitlab.com/api/v4/projects/39455850","events":"https://gitlab.com/api/v4/projects/39455850/events","issues":"https://gitlab.com/api/v4/projects/39455850/issues","labels":"https://gitlab.com/api/v4/projects/39455850/labels","members":"https://gitlab.com/api/v4/projects/39455850/members","repo_branches":"https://gitlab.com/api/v4/projects/39455850/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/39455850/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/39455850/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-docs-archives","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2022-09-15T20:42:50.784Z","creator_id":11222623,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-docs-archives/-/blob/main/README.md","star_count":4,"updated_at":"2026-06-01T16:19:04.070Z","visibility":"public","description":"https://archives.docs.gitlab.com/\r\n\r\nhttps://gitlab.com/groups/gitlab-org/-/epics/8937","forks_count":4,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-docs-archives.git","description_html":"<p data-sourcepos=\"1:1-1:33\" dir=\"auto\"><a href=\"https://archives.docs.gitlab.com/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://archives.docs.gitlab.com/</a></p>&#x000A;<p data-sourcepos=\"3:1-3:49\" dir=\"auto\"><a href=\"https://gitlab.com/groups/gitlab-org/-/epics/8937\" data-reference-type=\"epic\" data-original=\"https://gitlab.com/groups/gitlab-org/-/epics/8937\" data-link=\"false\" data-link-reference=\"true\" data-group=\"9970\" data-group-path=\"gitlab-org\" data-iid=\"8937\" data-epic=\"618486\" data-container=\"body\" data-placement=\"top\" title=\"Deploy an archives docs site to host old GitLab docs versions\" class=\"gfm gfm-epic\">&amp;8937</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-docs-archives.git","last_activity_at":"2026-06-01T16:19:04.070Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":1,"wiki_access_level":"disabled","max_artifacts_size":30000,"pages_access_level":"enabled","shared_with_groups":[{"group_id":1356356,"group_name":"GitLab docs team","group_full_path":"gl-docsteam","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Docs Archives","path_with_namespace":"gitlab-org/gitlab-docs-archives","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"disabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"disabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-09-16T20:42:50.816Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-docs-archives","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":true,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":37966217,"name":"GitLab VSCode Fork","path":"gitlab-web-ide-vscode-fork","_links":{"self":"https://gitlab.com/api/v4/projects/37966217","events":"https://gitlab.com/api/v4/projects/37966217/events","issues":"https://gitlab.com/api/v4/projects/37966217/issues","labels":"https://gitlab.com/api/v4/projects/37966217/labels","members":"https://gitlab.com/api/v4/projects/37966217/members","repo_branches":"https://gitlab.com/api/v4/projects/37966217/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/37966217/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/37966217/merge_requests"},"mirror":false,"topics":["remote-development","vscode","web ide","workspaces"],"web_url":"https://gitlab.com/gitlab-org/gitlab-web-ide-vscode-fork","archived":false,"tag_list":["remote-development","vscode","web ide","workspaces"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2022-07-20T11:33:27.837Z","creator_id":1646689,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-web-ide-vscode-fork/-/blob/main/README.md","star_count":12,"updated_at":"2026-06-01T17:15:15.073Z","visibility":"public","description":"A fork of the Visual Studio Code - Open Source repository used by the GitLab Web IDE and GitLab Workspaces","forks_count":15,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"ff","wiki_enabled":true,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-web-ide-vscode-fork.git","description_html":"<p data-sourcepos=\"1:1-1:106\" dir=\"auto\">A fork of the Visual Studio Code - Open Source repository used by the GitLab Web IDE and GitLab Workspaces</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-web-ide-vscode-fork.git","last_activity_at":"2026-06-01T17:15:15.073Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":24,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab VSCode Fork","path_with_namespace":"gitlab-org/gitlab-web-ide-vscode-fork","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-07-21T11:33:27.871Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-web-ide-vscode-fork","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":36791198,"name":"wg-next-prioritization-adoption","path":"wg-next-prioritization-adoption","_links":{"self":"https://gitlab.com/api/v4/projects/36791198","events":"https://gitlab.com/api/v4/projects/36791198/events","issues":"https://gitlab.com/api/v4/projects/36791198/issues","labels":"https://gitlab.com/api/v4/projects/36791198/labels","members":"https://gitlab.com/api/v4/projects/36791198/members","repo_branches":"https://gitlab.com/api/v4/projects/36791198/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/36791198/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/36791198/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/wg-next-prioritization-adoption","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2022-06-06T14:24:04.811Z","creator_id":4708570,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:47:56.017Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/wg-next-prioritization-adoption.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/wg-next-prioritization-adoption.git","last_activity_at":"2026-01-07T10:47:56.017Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / wg-next-prioritization-adoption","path_with_namespace":"gitlab-org/wg-next-prioritization-adoption","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-06-07T14:24:04.851Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/wg-next-prioritization-adoption","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":36489224,"name":"enhancements","path":"enhancements","_links":{"self":"https://gitlab.com/api/v4/projects/36489224","events":"https://gitlab.com/api/v4/projects/36489224/events","issues":"https://gitlab.com/api/v4/projects/36489224/issues","labels":"https://gitlab.com/api/v4/projects/36489224/labels","members":"https://gitlab.com/api/v4/projects/36489224/members","repo_branches":"https://gitlab.com/api/v4/projects/36489224/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/36489224/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/36489224/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/enhancements","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2022-05-25T19:15:07.245Z","creator_id":2145909,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:47:50.702Z","visibility":"public","description":"Enhancement proposal tracking for GitLab","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/enhancements.git","description_html":"<p data-sourcepos=\"1:1-1:40\" dir=\"auto\">Enhancement proposal tracking for GitLab</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/enhancements.git","last_activity_at":"2026-01-07T10:47:50.702Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / enhancements","path_with_namespace":"gitlab-org/enhancements","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-05-26T19:15:07.287Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/enhancements","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":36454318,"name":"OS License Checker","path":"os-license-checker","_links":{"self":"https://gitlab.com/api/v4/projects/36454318","events":"https://gitlab.com/api/v4/projects/36454318/events","issues":"https://gitlab.com/api/v4/projects/36454318/issues","labels":"https://gitlab.com/api/v4/projects/36454318/labels","members":"https://gitlab.com/api/v4/projects/36454318/members","repo_branches":"https://gitlab.com/api/v4/projects/36454318/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/36454318/cluster_agents"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/os-license-checker","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/36454318/detective-tanuki.png","created_at":"2022-05-24T19:12:48.568Z","creator_id":3645992,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/os-license-checker/-/blob/main/README.md","star_count":4,"updated_at":"2026-01-07T10:47:48.986Z","visibility":"public","description":"Automated OSI-approved license check for Open Source program applicants.","forks_count":9,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":false,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/os-license-checker.git","description_html":"<p data-sourcepos=\"1:1-1:72\" dir=\"auto\">Automated OSI-approved license check for Open Source program applicants.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/os-license-checker.git","last_activity_at":"2026-01-07T10:47:48.986Z","packages_enabled":false,"snippets_enabled":false,"open_issues_count":2,"wiki_access_level":"disabled","pages_access_level":"disabled","shared_with_groups":[],"builds_access_level":"private","issues_access_level":"enabled","name_with_namespace":"GitLab.org / OS License Checker","path_with_namespace":"gitlab-org/os-license-checker","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"disabled","snippets_access_level":"disabled","analytics_access_level":"disabled","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"disabled","container_registry_enabled":true,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-05-25T19:12:48.591Z"},"infrastructure_access_level":"disabled","merge_requests_access_level":"private","model_registry_access_level":"disabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"disabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/os-license-checker","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":35337613,"name":"Release Sample Projects","path":"release-sample-projects","_links":{"self":"https://gitlab.com/api/v4/projects/35337613","events":"https://gitlab.com/api/v4/projects/35337613/events","issues":"https://gitlab.com/api/v4/projects/35337613/issues","labels":"https://gitlab.com/api/v4/projects/35337613/labels","members":"https://gitlab.com/api/v4/projects/35337613/members","repo_branches":"https://gitlab.com/api/v4/projects/35337613/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/35337613/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/35337613/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/release-sample-projects","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2022-04-13T19:44:48.003Z","creator_id":3079878,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:47:41.934Z","visibility":"public","description":"This group consists of a collection of Release related scenarios for user testing and research purpose.","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/release-sample-projects.git","description_html":"<p data-sourcepos=\"1:1-1:103\" dir=\"auto\">This group consists of a collection of Release related scenarios for user testing and research purpose.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/release-sample-projects.git","last_activity_at":"2026-01-07T10:47:41.934Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Release Sample Projects","path_with_namespace":"gitlab-org/release-sample-projects","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-04-14T19:44:48.049Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/release-sample-projects","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":35104827,"name":"gitlab-web-ide","path":"gitlab-web-ide","_links":{"self":"https://gitlab.com/api/v4/projects/35104827","events":"https://gitlab.com/api/v4/projects/35104827/events","issues":"https://gitlab.com/api/v4/projects/35104827/issues","labels":"https://gitlab.com/api/v4/projects/35104827/labels","members":"https://gitlab.com/api/v4/projects/35104827/members","repo_branches":"https://gitlab.com/api/v4/projects/35104827/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/35104827/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/35104827/merge_requests"},"mirror":false,"topics":["gitlab","hacktoberfest","vscode","web ide"],"web_url":"https://gitlab.com/gitlab-org/gitlab-web-ide","archived":false,"tag_list":["gitlab","hacktoberfest","vscode","web ide"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2022-04-05T13:51:02.599Z","creator_id":1646689,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-web-ide/-/blob/main/README.md","star_count":45,"updated_at":"2026-06-01T17:15:14.681Z","visibility":"public","description":"A package for bootstrapping GitLab's context-aware Web IDE.\r\n\r\nThe VS Code extension for GitLab is available at https://gitlab.com/gitlab-org/gitlab-vscode-extension ","forks_count":60,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-web-ide.git","description_html":"<p data-sourcepos=\"1:1-1:59\" dir=\"auto\">A package for bootstrapping GitLab's context-aware Web IDE.</p>&#x000A;<p data-sourcepos=\"3:1-3:103\" dir=\"auto\">The VS Code extension for GitLab is available at <a href=\"https://gitlab.com/gitlab-org/gitlab-vscode-extension\">https://gitlab.com/gitlab-org/gitlab-vscode-extension</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-web-ide.git","last_activity_at":"2026-06-01T17:15:14.681Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":142,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / gitlab-web-ide","path_with_namespace":"gitlab-org/gitlab-web-ide","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"squash_commit_template":"%{first_multiline_commit}","merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"chore: Code review feedback\r\n\r\nApply MR reviewer suggestions to the following files:\r\n\r\n%{file_paths}\r\n\r\n%{co_authored_by}","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-04-06T13:51:02.659Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-web-ide","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":34936209,"name":"labkit-python","path":"labkit-python","_links":{"self":"https://gitlab.com/api/v4/projects/34936209","events":"https://gitlab.com/api/v4/projects/34936209/events","issues":"https://gitlab.com/api/v4/projects/34936209/issues","labels":"https://gitlab.com/api/v4/projects/34936209/labels","members":"https://gitlab.com/api/v4/projects/34936209/members","repo_branches":"https://gitlab.com/api/v4/projects/34936209/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/34936209/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/34936209/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/labkit-python","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/34936209/Tanuki.png","created_at":"2022-03-30T13:59:14.023Z","creator_id":4489949,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/labkit-python/-/blob/main/README.md","star_count":2,"updated_at":"2026-04-22T10:37:45.031Z","visibility":"public","description":"A Python implemention of the [LabKit](https://gitlab.com/gitlab-org/labkit) library.","forks_count":4,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/labkit-python.git","description_html":"<p data-sourcepos=\"1:1-1:84\" dir=\"auto\">A Python implemention of the <a data-sourcepos=\"1:30-1:75\" href=\"https://gitlab.com/gitlab-org/labkit\">LabKit</a> library.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/labkit-python.git","last_activity_at":"2026-04-22T10:37:45.031Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":5,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / labkit-python","path_with_namespace":"gitlab-org/labkit-python","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-03-31T13:59:14.066Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/labkit-python","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":34770409,"name":"GitLab Metrics Exporter","path":"gitlab-metrics-exporter","_links":{"self":"https://gitlab.com/api/v4/projects/34770409","events":"https://gitlab.com/api/v4/projects/34770409/events","issues":"https://gitlab.com/api/v4/projects/34770409/issues","labels":"https://gitlab.com/api/v4/projects/34770409/labels","members":"https://gitlab.com/api/v4/projects/34770409/members","repo_branches":"https://gitlab.com/api/v4/projects/34770409/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/34770409/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/34770409/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-metrics-exporter","archived":true,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2022-03-24T12:37:20.811Z","creator_id":116,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-metrics-exporter/-/blob/main/README.md","star_count":7,"updated_at":"2026-01-07T10:47:28.960Z","visibility":"public","description":"**RETIRED.** A Prometheus exporter for the GitLab application written in Go.","forks_count":3,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-metrics-exporter.git","description_html":"<p data-sourcepos=\"1:1-1:76\" dir=\"auto\"><strong data-sourcepos=\"1:1-1:12\">RETIRED.</strong> A Prometheus exporter for the GitLab application written in Go.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-metrics-exporter.git","last_activity_at":"2026-01-07T10:47:28.960Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":7,"wiki_access_level":"disabled","pages_access_level":"disabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Metrics Exporter","path_with_namespace":"gitlab-org/gitlab-metrics-exporter","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-03-25T12:37:20.859Z"},"infrastructure_access_level":"disabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-metrics-exporter","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":34675721,"name":"cli","path":"cli","_links":{"self":"https://gitlab.com/api/v4/projects/34675721","events":"https://gitlab.com/api/v4/projects/34675721/events","issues":"https://gitlab.com/api/v4/projects/34675721/issues","labels":"https://gitlab.com/api/v4/projects/34675721/labels","members":"https://gitlab.com/api/v4/projects/34675721/members","repo_branches":"https://gitlab.com/api/v4/projects/34675721/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/34675721/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/34675721/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/cli","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/34675721/cli-logo.png","created_at":"2022-03-21T18:49:22.691Z","creator_id":40375,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/cli/-/blob/main/README.md","star_count":1006,"updated_at":"2026-06-02T15:31:03.314Z","visibility":"public","description":"A GitLab CLI tool bringing GitLab to your command line","forks_count":388,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"Please select the appropriate template for submitting your issue from the dropdown above.\r\n\r\n/label ~\"devops::create\" ~\"group::code review\" ~\"Category:GitLab CLI\" ~\"cli\"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/cli.git","description_html":"<p data-sourcepos=\"1:1-1:54\" dir=\"auto\">A GitLab CLI tool bringing GitLab to your command line</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/cli.git","last_activity_at":"2026-06-02T15:20:39.464Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":402,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / cli","path_with_namespace":"gitlab-org/cli","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","merge_request_title_regex":"^(feat|fix|docs|style|refactor|perf|test|chore|build|ci|revert)(\\([a-z0-9- ]+\\))?!?: .+","requirements_access_level":"disabled","suggestion_commit_message":"chore: Apply %{suggestions_count} suggestion(s) to %{files_count} file(s)\r\n\r\n%{co_authored_by}","container_registry_enabled":true,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-03-22T18:49:22.734Z"},"infrastructure_access_level":"disabled","merge_requests_access_level":"enabled","model_registry_access_level":"disabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"disabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/cli","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","merge_request_title_regex_description":"Titles must match conventional commits format.","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":33180782,"name":"golang-crypto","path":"golang-crypto","_links":{"self":"https://gitlab.com/api/v4/projects/33180782","events":"https://gitlab.com/api/v4/projects/33180782/events","issues":"https://gitlab.com/api/v4/projects/33180782/issues","labels":"https://gitlab.com/api/v4/projects/33180782/labels","members":"https://gitlab.com/api/v4/projects/33180782/members","repo_branches":"https://gitlab.com/api/v4/projects/33180782/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/33180782/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/33180782/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/golang-crypto","archived":true,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2022-01-27T09:03:33.247Z","creator_id":1161495,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/golang-crypto/-/blob/master/README.md","star_count":1,"updated_at":"2026-01-07T10:47:21.247Z","visibility":"public","description":"","forks_count":3,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/golang-crypto.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/golang-crypto.git","last_activity_at":"2026-01-07T10:47:21.247Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / golang-crypto","path_with_namespace":"gitlab-org/golang-crypto","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-01-28T09:03:33.273Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/golang-crypto","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":32987018,"name":"config-audit-tool","path":"config-audit-tool","_links":{"self":"https://gitlab.com/api/v4/projects/32987018","events":"https://gitlab.com/api/v4/projects/32987018/events","issues":"https://gitlab.com/api/v4/projects/32987018/issues","labels":"https://gitlab.com/api/v4/projects/32987018/labels","members":"https://gitlab.com/api/v4/projects/32987018/members","repo_branches":"https://gitlab.com/api/v4/projects/32987018/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/32987018/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/32987018/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/config-audit-tool","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2022-01-20T11:15:33.336Z","creator_id":722076,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/config-audit-tool/-/blob/main/README.md","star_count":2,"updated_at":"2026-03-25T13:59:57.735Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/config-audit-tool.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/config-audit-tool.git","last_activity_at":"2026-03-25T13:23:22.117Z","packages_enabled":false,"snippets_enabled":false,"open_issues_count":1,"wiki_access_level":"disabled","pages_access_level":"disabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / config-audit-tool","path_with_namespace":"gitlab-org/config-audit-tool","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"disabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"disabled","suggestion_commit_message":"","container_registry_enabled":false,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-01-21T11:15:33.365Z"},"infrastructure_access_level":"disabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/config-audit-tool","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"disabled","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":30677483,"name":"App Modernization 2021","path":"app-modernization-2021","_links":{"self":"https://gitlab.com/api/v4/projects/30677483","events":"https://gitlab.com/api/v4/projects/30677483/events","issues":"https://gitlab.com/api/v4/projects/30677483/issues","labels":"https://gitlab.com/api/v4/projects/30677483/labels","members":"https://gitlab.com/api/v4/projects/30677483/members","repo_branches":"https://gitlab.com/api/v4/projects/30677483/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/30677483/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/30677483/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/app-modernization-2021","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-10-22T10:44:54.366Z","creator_id":5749302,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/app-modernization-2021/-/blob/master/README.md","star_count":1,"updated_at":"2026-01-07T10:47:10.233Z","visibility":"public","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/app-modernization-2021.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/app-modernization-2021.git","last_activity_at":"2026-01-07T10:47:10.233Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"private","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / App Modernization 2021","path_with_namespace":"gitlab-org/app-modernization-2021","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":false,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-10-23T10:44:57.762Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/app-modernization-2021","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":30677418,"name":"App Modernization","path":"app-modernization","_links":{"self":"https://gitlab.com/api/v4/projects/30677418","events":"https://gitlab.com/api/v4/projects/30677418/events","issues":"https://gitlab.com/api/v4/projects/30677418/issues","labels":"https://gitlab.com/api/v4/projects/30677418/labels","members":"https://gitlab.com/api/v4/projects/30677418/members","repo_branches":"https://gitlab.com/api/v4/projects/30677418/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/30677418/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/30677418/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/app-modernization","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-10-22T10:41:27.868Z","creator_id":5749302,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:47:07.656Z","visibility":"public","description":"","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/app-modernization.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/app-modernization.git","last_activity_at":"2026-01-07T10:47:07.656Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / App Modernization","path_with_namespace":"gitlab-org/app-modernization","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-10-23T10:41:27.912Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/app-modernization","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":30587963,"name":"golang-archive-zip","path":"golang-archive-zip","_links":{"self":"https://gitlab.com/api/v4/projects/30587963","events":"https://gitlab.com/api/v4/projects/30587963/events","issues":"https://gitlab.com/api/v4/projects/30587963/issues","labels":"https://gitlab.com/api/v4/projects/30587963/labels","members":"https://gitlab.com/api/v4/projects/30587963/members","repo_branches":"https://gitlab.com/api/v4/projects/30587963/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/30587963/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/30587963/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/golang-archive-zip","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-10-19T16:46:52.826Z","creator_id":5878538,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/golang-archive-zip/-/blob/main/README.md","star_count":1,"updated_at":"2026-01-07T10:47:02.893Z","visibility":"public","description":"","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/golang-archive-zip.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/golang-archive-zip.git","last_activity_at":"2026-01-07T10:47:02.893Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / golang-archive-zip","path_with_namespace":"gitlab-org/golang-archive-zip","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-10-20T16:46:52.844Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/golang-archive-zip","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":30153714,"name":"error-budget-reports","path":"error-budget-reports","_links":{"self":"https://gitlab.com/api/v4/projects/30153714","events":"https://gitlab.com/api/v4/projects/30153714/events","issues":"https://gitlab.com/api/v4/projects/30153714/issues","labels":"https://gitlab.com/api/v4/projects/30153714/labels","members":"https://gitlab.com/api/v4/projects/30153714/members","repo_branches":"https://gitlab.com/api/v4/projects/30153714/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/30153714/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/30153714/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/error-budget-reports","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-10-04T10:05:33.583Z","creator_id":2722370,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/error-budget-reports/-/blob/main/README.md","star_count":2,"updated_at":"2026-06-02T05:39:10.347Z","visibility":"public","description":"This project collects all reports created regarding Error Budget usage: https://about.gitlab.com/handbook/engineering/error-budgets/. Report comes out on the 2nd of the month.\n","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/error-budget-reports.git","description_html":"<p data-sourcepos=\"1:1-1:175\" dir=\"auto\">This project collects all reports created regarding Error Budget usage: <a href=\"https://about.gitlab.com/handbook/engineering/error-budgets/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://about.gitlab.com/handbook/engineering/error-budgets/</a>. Report comes out on the 2nd of the month.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/error-budget-reports.git","last_activity_at":"2026-06-02T05:39:10.347Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":7,"wiki_access_level":"disabled","pages_access_level":"private","shared_with_groups":[{"group_id":54077923,"group_name":"GitLab Production Engineering","group_full_path":"gitlab-org/production-engineering","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / error-budget-reports","path_with_namespace":"gitlab-org/error-budget-reports","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"merge_commit_template":"","releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"squash_commit_template":"","merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2026-06-02T14:05:05.718Z","name_regex_keep":"(latest.*|v.+|.*\\.sig)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"private","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/error-budget-reports","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":29969475,"name":"rb-ipynbdiff","path":"rb-ipynbdiff","_links":{"self":"https://gitlab.com/api/v4/projects/29969475","events":"https://gitlab.com/api/v4/projects/29969475/events","issues":"https://gitlab.com/api/v4/projects/29969475/issues","labels":"https://gitlab.com/api/v4/projects/29969475/labels","members":"https://gitlab.com/api/v4/projects/29969475/members","repo_branches":"https://gitlab.com/api/v4/projects/29969475/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/29969475/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/29969475/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/rb-ipynbdiff","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-09-28T12:28:51.763Z","creator_id":9426861,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:46:54.546Z","visibility":"public","description":"Gem that implements a better diffing experience for Jupyter Notebooks by first converting them into markdown","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/rb-ipynbdiff.git","description_html":"<p data-sourcepos=\"1:1-1:108\" dir=\"auto\">Gem that implements a better diffing experience for Jupyter Notebooks by first converting them into markdown</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/rb-ipynbdiff.git","last_activity_at":"2026-01-07T10:46:54.546Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / rb-ipynbdiff","path_with_namespace":"gitlab-org/rb-ipynbdiff","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-09-29T12:28:51.820Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/rb-ipynbdiff","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":29930187,"name":"docker-build-test","path":"docker-build-test","_links":{"self":"https://gitlab.com/api/v4/projects/29930187","events":"https://gitlab.com/api/v4/projects/29930187/events","issues":"https://gitlab.com/api/v4/projects/29930187/issues","labels":"https://gitlab.com/api/v4/projects/29930187/labels","members":"https://gitlab.com/api/v4/projects/29930187/members","repo_branches":"https://gitlab.com/api/v4/projects/29930187/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/29930187/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/29930187/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/docker-build-test","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-09-27T09:15:41.807Z","creator_id":4411649,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/docker-build-test/-/blob/main/README.md","star_count":3,"updated_at":"2026-06-01T20:02:30.522Z","visibility":"public","description":"A copy of https://gitlab.com/stanhu/docker-build-test","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/docker-build-test.git","description_html":"<p data-sourcepos=\"1:1-1:53\" dir=\"auto\">A copy of <a href=\"https://gitlab.com/stanhu/docker-build-test\">https://gitlab.com/stanhu/docker-build-test</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/docker-build-test.git","last_activity_at":"2026-06-01T20:02:30.522Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / docker-build-test","path_with_namespace":"gitlab-org/docker-build-test","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-09-28T09:15:41.850Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/docker-build-test","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":28636453,"name":"jh-upstream-report","path":"jh-upstream-report","_links":{"self":"https://gitlab.com/api/v4/projects/28636453","events":"https://gitlab.com/api/v4/projects/28636453/events","issues":"https://gitlab.com/api/v4/projects/28636453/issues","labels":"https://gitlab.com/api/v4/projects/28636453/labels","members":"https://gitlab.com/api/v4/projects/28636453/members","repo_branches":"https://gitlab.com/api/v4/projects/28636453/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/28636453/cluster_agents"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/jh-upstream-report","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-08-04T22:38:25.142Z","creator_id":4226366,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/jh-upstream-report/-/blob/main/README.md","star_count":1,"updated_at":"2026-01-07T10:46:44.223Z","visibility":"public","description":"A place for release certification reports","forks_count":0,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/jh-upstream-report.git","description_html":"<p data-sourcepos=\"1:1-1:41\" dir=\"auto\">A place for release certification reports</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/jh-upstream-report.git","last_activity_at":"2026-01-07T10:46:44.223Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"private","issues_access_level":"enabled","name_with_namespace":"GitLab.org / jh-upstream-report","path_with_namespace":"gitlab-org/jh-upstream-report","forking_access_level":"private","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-08-05T22:38:25.173Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"private","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/jh-upstream-report","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":27686541,"name":"gitlab-rdoc","path":"gitlab-rdoc","_links":{"self":"https://gitlab.com/api/v4/projects/27686541","events":"https://gitlab.com/api/v4/projects/27686541/events","issues":"https://gitlab.com/api/v4/projects/27686541/issues","labels":"https://gitlab.com/api/v4/projects/27686541/labels","members":"https://gitlab.com/api/v4/projects/27686541/members","repo_branches":"https://gitlab.com/api/v4/projects/27686541/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/27686541/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/27686541/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-rdoc","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-06-24T20:42:34.736Z","creator_id":4373269,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-rdoc/-/blob/6-3-1-stable/README.rdoc","star_count":1,"updated_at":"2026-01-07T10:46:39.960Z","visibility":"public","description":"Fork of https://github.com/ruby/rdoc","forks_count":0,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"6-3-1-stable","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-rdoc.git","description_html":"<p data-sourcepos=\"1:1-1:36\" dir=\"auto\">Fork of <a href=\"https://github.com/ruby/rdoc\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/ruby/rdoc</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-rdoc.git","last_activity_at":"2026-01-07T10:46:39.960Z","packages_enabled":false,"snippets_enabled":false,"open_issues_count":0,"wiki_access_level":"disabled","pages_access_level":"disabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / gitlab-rdoc","path_with_namespace":"gitlab-org/gitlab-rdoc","forking_access_level":"disabled","merge_trains_enabled":false,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"disabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"disabled","container_registry_enabled":false,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":false,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-06-25T20:42:34.796Z"},"infrastructure_access_level":"disabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-rdoc","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":27681689,"name":"Mnohr Permissions Test","path":"mnohr-permissions-test","_links":{"self":"https://gitlab.com/api/v4/projects/27681689","events":"https://gitlab.com/api/v4/projects/27681689/events","issues":"https://gitlab.com/api/v4/projects/27681689/issues","labels":"https://gitlab.com/api/v4/projects/27681689/labels","members":"https://gitlab.com/api/v4/projects/27681689/members","repo_branches":"https://gitlab.com/api/v4/projects/27681689/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/27681689/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/27681689/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/mnohr-permissions-test","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-06-24T16:20:01.681Z","creator_id":4058309,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:46:37.962Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/mnohr-permissions-test.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/mnohr-permissions-test.git","last_activity_at":"2026-01-07T10:46:37.962Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Mnohr Permissions Test","path_with_namespace":"gitlab-org/mnohr-permissions-test","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-06-25T16:20:01.715Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/mnohr-permissions-test","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":27490309,"name":"developer.gitlab.com","path":"developer.gitlab.com","_links":{"self":"https://gitlab.com/api/v4/projects/27490309","events":"https://gitlab.com/api/v4/projects/27490309/events","issues":"https://gitlab.com/api/v4/projects/27490309/issues","labels":"https://gitlab.com/api/v4/projects/27490309/labels","members":"https://gitlab.com/api/v4/projects/27490309/members","repo_branches":"https://gitlab.com/api/v4/projects/27490309/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/27490309/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/27490309/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/developer.gitlab.com","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-06-16T15:40:22.988Z","creator_id":3646819,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/developer.gitlab.com/-/blob/main/README.md","star_count":10,"updated_at":"2026-06-01T22:00:00.676Z","visibility":"public","description":"Everyone can contribute!","forks_count":11,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/developer.gitlab.com.git","description_html":"<p data-sourcepos=\"1:1-1:24\" dir=\"auto\">Everyone can contribute!</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/developer.gitlab.com.git","last_activity_at":"2026-06-01T22:00:00.676Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":6,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / developer.gitlab.com","path_with_namespace":"gitlab-org/developer.gitlab.com","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-06-17T15:40:23.015Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/developer.gitlab.com","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":27244047,"name":"test-cveid-btn","path":"test-cveid-btn","_links":{"self":"https://gitlab.com/api/v4/projects/27244047","events":"https://gitlab.com/api/v4/projects/27244047/events","issues":"https://gitlab.com/api/v4/projects/27244047/issues","labels":"https://gitlab.com/api/v4/projects/27244047/labels","members":"https://gitlab.com/api/v4/projects/27244047/members","repo_branches":"https://gitlab.com/api/v4/projects/27244047/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/27244047/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/27244047/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/test-cveid-btn","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-06-08T08:18:08.714Z","creator_id":6003637,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:46:34.903Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/test-cveid-btn.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/test-cveid-btn.git","last_activity_at":"2026-01-07T10:46:34.903Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / test-cveid-btn","path_with_namespace":"gitlab-org/test-cveid-btn","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-06-09T08:18:08.753Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/test-cveid-btn","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":25981420,"name":"agg-test1","path":"agg-test1","_links":{"self":"https://gitlab.com/api/v4/projects/25981420","events":"https://gitlab.com/api/v4/projects/25981420/events","issues":"https://gitlab.com/api/v4/projects/25981420/issues","labels":"https://gitlab.com/api/v4/projects/25981420/labels","members":"https://gitlab.com/api/v4/projects/25981420/members","repo_branches":"https://gitlab.com/api/v4/projects/25981420/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/25981420/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/25981420/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/agg-test1","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-04-19T00:15:31.133Z","creator_id":5344211,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:46:23.879Z","visibility":"public","description":"","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/agg-test1.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/agg-test1.git","last_activity_at":"2026-01-07T10:46:23.879Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / agg-test1","path_with_namespace":"gitlab-org/agg-test1","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-04-20T00:15:31.148Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/agg-test1","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":25861038,"name":"samtest","path":"samtest","_links":{"self":"https://gitlab.com/api/v4/projects/25861038","events":"https://gitlab.com/api/v4/projects/25861038/events","issues":"https://gitlab.com/api/v4/projects/25861038/issues","labels":"https://gitlab.com/api/v4/projects/25861038/labels","members":"https://gitlab.com/api/v4/projects/25861038/members","repo_branches":"https://gitlab.com/api/v4/projects/25861038/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/25861038/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/25861038/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/samtest","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-04-13T14:14:28.679Z","creator_id":4376883,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:46:22.068Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/samtest.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/samtest.git","last_activity_at":"2026-01-07T10:46:22.068Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / samtest","path_with_namespace":"gitlab-org/samtest","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-04-14T14:14:28.723Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/samtest","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":25847700,"name":"GitLab Advisory Database Open Source Edition","path":"advisories-community","_links":{"self":"https://gitlab.com/api/v4/projects/25847700","events":"https://gitlab.com/api/v4/projects/25847700/events","labels":"https://gitlab.com/api/v4/projects/25847700/labels","members":"https://gitlab.com/api/v4/projects/25847700/members","repo_branches":"https://gitlab.com/api/v4/projects/25847700/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/25847700/cluster_agents"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/advisories-community","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-04-13T06:10:33.497Z","creator_id":3558825,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/advisories-community/-/blob/main/README.md","star_count":9,"updated_at":"2026-06-02T14:31:45.123Z","visibility":"public","description":"GitLab Advisory Database (Open Source Edition)","forks_count":9,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/advisories-community.git","description_html":"<p data-sourcepos=\"1:1-1:46\" dir=\"auto\">GitLab Advisory Database (Open Source Edition)</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/advisories-community.git","last_activity_at":"2026-06-02T14:31:45.123Z","packages_enabled":false,"snippets_enabled":true,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"private","issues_access_level":"private","name_with_namespace":"GitLab.org / GitLab Advisory Database Open Source Edition","path_with_namespace":"gitlab-org/advisories-community","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-04-14T06:10:33.514Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"private","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/advisories-community","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":25418438,"name":"file-mirror","path":"file-mirror","_links":{"self":"https://gitlab.com/api/v4/projects/25418438","events":"https://gitlab.com/api/v4/projects/25418438/events","issues":"https://gitlab.com/api/v4/projects/25418438/issues","labels":"https://gitlab.com/api/v4/projects/25418438/labels","members":"https://gitlab.com/api/v4/projects/25418438/members","repo_branches":"https://gitlab.com/api/v4/projects/25418438/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/25418438/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/25418438/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/file-mirror","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-03-25T12:41:52.481Z","creator_id":2167502,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/file-mirror/-/blob/master/README.md","star_count":2,"updated_at":"2026-01-07T10:46:17.087Z","visibility":"public","description":"","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/file-mirror.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/file-mirror.git","last_activity_at":"2026-01-07T10:46:17.087Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / file-mirror","path_with_namespace":"gitlab-org/file-mirror","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-03-26T12:41:52.513Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/file-mirror","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":25416006,"name":"file","path":"file","_links":{"self":"https://gitlab.com/api/v4/projects/25416006","events":"https://gitlab.com/api/v4/projects/25416006/events","issues":"https://gitlab.com/api/v4/projects/25416006/issues","labels":"https://gitlab.com/api/v4/projects/25416006/labels","members":"https://gitlab.com/api/v4/projects/25416006/members","repo_branches":"https://gitlab.com/api/v4/projects/25416006/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/25416006/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/25416006/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/file","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-03-25T10:59:55.664Z","creator_id":2167502,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/file/-/blob/master/README","star_count":2,"updated_at":"2026-01-07T10:46:15.646Z","visibility":"public","description":"Mirror of https://github.com/file/file","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/file.git","description_html":"<p data-sourcepos=\"1:1-1:38\" dir=\"auto\">Mirror of <a href=\"https://github.com/file/file\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/file/file</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/file.git","last_activity_at":"2026-01-07T10:46:15.646Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / file","path_with_namespace":"gitlab-org/file","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-03-26T10:59:55.743Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/file","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":25402115,"name":"ruby-magic","path":"ruby-magic","_links":{"self":"https://gitlab.com/api/v4/projects/25402115","events":"https://gitlab.com/api/v4/projects/25402115/events","issues":"https://gitlab.com/api/v4/projects/25402115/issues","labels":"https://gitlab.com/api/v4/projects/25402115/labels","members":"https://gitlab.com/api/v4/projects/25402115/members","repo_branches":"https://gitlab.com/api/v4/projects/25402115/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/25402115/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/25402115/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/ruby-magic","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-03-24T21:35:33.595Z","creator_id":64248,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/ruby-magic/-/blob/main/README.md","star_count":1,"updated_at":"2026-01-07T10:46:13.598Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/ruby-magic.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/ruby-magic.git","last_activity_at":"2026-01-07T10:46:13.598Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / ruby-magic","path_with_namespace":"gitlab-org/ruby-magic","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-03-25T21:35:33.633Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/ruby-magic","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":25205782,"name":"mail-smtp_pool","path":"mail-smtp_pool","_links":{"self":"https://gitlab.com/api/v4/projects/25205782","events":"https://gitlab.com/api/v4/projects/25205782/events","issues":"https://gitlab.com/api/v4/projects/25205782/issues","labels":"https://gitlab.com/api/v4/projects/25205782/labels","members":"https://gitlab.com/api/v4/projects/25205782/members","repo_branches":"https://gitlab.com/api/v4/projects/25205782/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/25205782/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/25205782/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/mail-smtp_pool","archived":true,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-03-17T07:27:49.813Z","creator_id":2880930,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/mail-smtp_pool/-/blob/master/README.md","star_count":1,"updated_at":"2026-01-07T10:46:10.262Z","visibility":"public","description":"Extension of the Mail gem that allows reusing of SMTP connections from a pool","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/mail-smtp_pool.git","description_html":"<p data-sourcepos=\"1:1-1:77\" dir=\"auto\">Extension of the Mail gem that allows reusing of SMTP connections from a pool</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/mail-smtp_pool.git","last_activity_at":"2026-01-07T10:46:10.262Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / mail-smtp_pool","path_with_namespace":"gitlab-org/mail-smtp_pool","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-03-18T07:27:49.883Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/mail-smtp_pool","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":25033712,"name":"Jschafer Test Blank Proj","path":"jschafer-test-blank-proj","_links":{"self":"https://gitlab.com/api/v4/projects/25033712","events":"https://gitlab.com/api/v4/projects/25033712/events","issues":"https://gitlab.com/api/v4/projects/25033712/issues","labels":"https://gitlab.com/api/v4/projects/25033712/labels","members":"https://gitlab.com/api/v4/projects/25033712/members","repo_branches":"https://gitlab.com/api/v4/projects/25033712/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/25033712/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/25033712/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/jschafer-test-blank-proj","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-03-10T18:12:41.623Z","creator_id":4473655,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:46:08.756Z","visibility":"public","description":"This is a temporary project to look at the security dashboard at the group level","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/jschafer-test-blank-proj.git","description_html":"<p data-sourcepos=\"1:1-1:80\" dir=\"auto\">This is a temporary project to look at the security dashboard at the group level</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/jschafer-test-blank-proj.git","last_activity_at":"2026-01-07T10:46:08.756Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Jschafer Test Blank Proj","path_with_namespace":"gitlab-org/jschafer-test-blank-proj","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-03-11T18:12:41.654Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/jschafer-test-blank-proj","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":25031023,"name":"GitLab fork of fog-google","path":"gitlab-fog-google","_links":{"self":"https://gitlab.com/api/v4/projects/25031023","events":"https://gitlab.com/api/v4/projects/25031023/events","issues":"https://gitlab.com/api/v4/projects/25031023/issues","labels":"https://gitlab.com/api/v4/projects/25031023/labels","members":"https://gitlab.com/api/v4/projects/25031023/members","repo_branches":"https://gitlab.com/api/v4/projects/25031023/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/25031023/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/25031023/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-fog-google","archived":true,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-03-10T16:18:53.198Z","creator_id":64248,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-fog-google/-/blob/master/README.md","star_count":1,"updated_at":"2026-01-07T10:46:06.821Z","visibility":"public","description":"Fork of https://github.com/fog/fog-google.git","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-fog-google.git","description_html":"<p data-sourcepos=\"1:1-1:45\" dir=\"auto\">Fork of <a href=\"https://github.com/fog/fog-google.git\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/fog/fog-google.git</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-fog-google.git","last_activity_at":"2026-01-07T10:46:06.821Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab fork of fog-google","path_with_namespace":"gitlab-org/gitlab-fog-google","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-03-11T16:18:53.238Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-fog-google","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":23617987,"name":"Gitlab Pry Byebug","path":"gitlab-pry-byebug","_links":{"self":"https://gitlab.com/api/v4/projects/23617987","events":"https://gitlab.com/api/v4/projects/23617987/events","issues":"https://gitlab.com/api/v4/projects/23617987/issues","labels":"https://gitlab.com/api/v4/projects/23617987/labels","members":"https://gitlab.com/api/v4/projects/23617987/members","repo_branches":"https://gitlab.com/api/v4/projects/23617987/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/23617987/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/23617987/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-pry-byebug","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-01-12T16:01:00.930Z","creator_id":5721376,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-pry-byebug/-/blob/master/README.md","star_count":1,"updated_at":"2026-01-07T10:45:53.324Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-pry-byebug.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-pry-byebug.git","last_activity_at":"2026-01-07T10:45:53.324Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Gitlab Pry Byebug","path_with_namespace":"gitlab-org/gitlab-pry-byebug","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-01-13T16:01:00.953Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-pry-byebug","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":23156104,"name":"GitLab Codesandbox Client","path":"gitlab-codesandbox-client","_links":{"self":"https://gitlab.com/api/v4/projects/23156104","events":"https://gitlab.com/api/v4/projects/23156104/events","issues":"https://gitlab.com/api/v4/projects/23156104/issues","labels":"https://gitlab.com/api/v4/projects/23156104/labels","members":"https://gitlab.com/api/v4/projects/23156104/members","repo_branches":"https://gitlab.com/api/v4/projects/23156104/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/23156104/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/23156104/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-codesandbox-client","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-12-17T03:17:40.294Z","creator_id":2233420,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:45:48.186Z","visibility":"public","description":"Temporary fork of https://github.com/codesandbox/codesandbox-client for GitLab Live Preview","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-codesandbox-client.git","description_html":"<p data-sourcepos=\"1:1-1:91\" dir=\"auto\">Temporary fork of <a href=\"https://github.com/codesandbox/codesandbox-client\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/codesandbox/codesandbox-client</a> for GitLab Live Preview</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-codesandbox-client.git","last_activity_at":"2026-01-07T10:45:48.186Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Codesandbox Client","path_with_namespace":"gitlab-org/gitlab-codesandbox-client","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2020-12-18T03:17:40.337Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-codesandbox-client","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":23105702,"name":"Gitlab feature flag alert","path":"gitlab-feature-flag-alert","_links":{"self":"https://gitlab.com/api/v4/projects/23105702","events":"https://gitlab.com/api/v4/projects/23105702/events","issues":"https://gitlab.com/api/v4/projects/23105702/issues","labels":"https://gitlab.com/api/v4/projects/23105702/labels","members":"https://gitlab.com/api/v4/projects/23105702/members","repo_branches":"https://gitlab.com/api/v4/projects/23105702/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/23105702/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/23105702/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-feature-flag-alert","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-12-14T22:24:19.816Z","creator_id":695467,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-feature-flag-alert/-/blob/master/README.md","star_count":1,"updated_at":"2026-03-20T11:42:18.502Z","visibility":"public","description":"","forks_count":6,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-feature-flag-alert.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-feature-flag-alert.git","last_activity_at":"2026-03-20T11:08:48.970Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":16947798,"group_name":"Engineering Productivity","group_full_path":"gitlab-org/quality/engineering-productivity","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Gitlab feature flag alert","path_with_namespace":"gitlab-org/gitlab-feature-flag-alert","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2020-12-15T22:24:19.833Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-feature-flag-alert","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":22874770,"name":"GitLab Docs Shell","path":"docs-shell","_links":{"self":"https://gitlab.com/api/v4/projects/22874770","events":"https://gitlab.com/api/v4/projects/22874770/events","issues":"https://gitlab.com/api/v4/projects/22874770/issues","labels":"https://gitlab.com/api/v4/projects/22874770/labels","members":"https://gitlab.com/api/v4/projects/22874770/members","repo_branches":"https://gitlab.com/api/v4/projects/22874770/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/22874770/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/22874770/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/docs-shell","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/22874770/docs_shell_avatar.png","created_at":"2020-12-03T18:17:02.466Z","creator_id":236961,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/docs-shell/-/blob/master/README.md","star_count":3,"updated_at":"2026-01-07T10:45:44.818Z","visibility":"public","description":"A command line interface for GitLab Docs","forks_count":6,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/docs-shell.git","description_html":"<p data-sourcepos=\"1:1-1:40\" dir=\"auto\">A command line interface for GitLab Docs</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/docs-shell.git","last_activity_at":"2026-01-07T10:45:44.818Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":8,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Docs Shell","path_with_namespace":"gitlab-org/docs-shell","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2020-12-04T18:17:02.482Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/docs-shell","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":true,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":22057235,"name":"Reference Architectures","path":"reference-architectures","_links":{"self":"https://gitlab.com/api/v4/projects/22057235","events":"https://gitlab.com/api/v4/projects/22057235/events","issues":"https://gitlab.com/api/v4/projects/22057235/issues","labels":"https://gitlab.com/api/v4/projects/22057235/labels","members":"https://gitlab.com/api/v4/projects/22057235/members","repo_branches":"https://gitlab.com/api/v4/projects/22057235/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/22057235/cluster_agents"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/reference-architectures","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/22057235/gitlab-icon-rgb__1_.jpeg","created_at":"2020-10-27T14:51:52.511Z","creator_id":3769272,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/reference-architectures/-/blob/main/README.md","star_count":9,"updated_at":"2026-06-02T06:46:11.885Z","visibility":"public","description":"Project for tracking all work related to the GitLab [Reference Architectures](https://docs.gitlab.com/ee/administration/reference_architectures/)\r\n\r\nOwners: [GitLab Delivery - Operate](https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/gitlab-delivery)\r\n","forks_count":0,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"always","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/reference-architectures.git","description_html":"<p data-sourcepos=\"1:1-1:145\" dir=\"auto\">Project for tracking all work related to the GitLab <a data-sourcepos=\"1:53-1:145\" href=\"https://docs.gitlab.com/ee/administration/reference_architectures/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">Reference Architectures</a></p>&#x000A;<p data-sourcepos=\"3:1-3:126\" dir=\"auto\">Owners: <a data-sourcepos=\"3:9-3:126\" href=\"https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/gitlab-delivery\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">GitLab Delivery - Operate</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/reference-architectures.git","last_activity_at":"2026-06-02T06:46:11.885Z","packages_enabled":false,"snippets_enabled":false,"open_issues_count":16,"wiki_access_level":"enabled","pages_access_level":"disabled","shared_with_groups":[],"builds_access_level":"disabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Reference Architectures","path_with_namespace":"gitlab-org/reference-architectures","forking_access_level":"disabled","merge_trains_enabled":false,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"disabled","snippets_access_level":"disabled","analytics_access_level":"disabled","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"disabled","suggestion_commit_message":"","container_registry_enabled":false,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-28T14:51:52.533Z"},"infrastructure_access_level":"disabled","merge_requests_access_level":"private","model_registry_access_level":"disabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"disabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/reference-architectures","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"disabled","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":21967100,"name":"pg_query","path":"pg_query","_links":{"self":"https://gitlab.com/api/v4/projects/21967100","events":"https://gitlab.com/api/v4/projects/21967100/events","issues":"https://gitlab.com/api/v4/projects/21967100/issues","labels":"https://gitlab.com/api/v4/projects/21967100/labels","members":"https://gitlab.com/api/v4/projects/21967100/members","repo_branches":"https://gitlab.com/api/v4/projects/21967100/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/21967100/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/21967100/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/pg_query","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-10-23T05:18:33.939Z","creator_id":64248,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/pg_query/-/blob/main/README.md","star_count":1,"updated_at":"2026-01-07T10:45:37.172Z","visibility":"public","description":"No longer needed as of GitLab 13.8. Switched back to upstream: https://github.com/lfittl/pg_query","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/pg_query.git","description_html":"<p data-sourcepos=\"1:1-1:97\" dir=\"auto\">No longer needed as of GitLab 13.8. Switched back to upstream: <a href=\"https://github.com/lfittl/pg_query\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/lfittl/pg_query</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/pg_query.git","last_activity_at":"2026-01-07T10:45:37.172Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / pg_query","path_with_namespace":"gitlab-org/pg_query","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-24T05:18:33.962Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/pg_query","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":21967079,"name":"libpg_query","path":"libpg_query","_links":{"self":"https://gitlab.com/api/v4/projects/21967079","events":"https://gitlab.com/api/v4/projects/21967079/events","issues":"https://gitlab.com/api/v4/projects/21967079/issues","labels":"https://gitlab.com/api/v4/projects/21967079/labels","members":"https://gitlab.com/api/v4/projects/21967079/members","repo_branches":"https://gitlab.com/api/v4/projects/21967079/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/21967079/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/21967079/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/libpg_query","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-10-23T05:16:41.977Z","creator_id":64248,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/libpg_query/-/blob/gitlab-10-latest/README.md","star_count":1,"updated_at":"2026-01-07T10:45:35.434Z","visibility":"public","description":"Fork of https://github.com/lfittl/libpg_query\r\n\r\nThis is no longer needed now that we have https://github.com/lfittl/libpg_query/commit/0ce345469fac1f8cfa8b3d9f6a9af68d4550a5d1.","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"gitlab-10-latest","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/libpg_query.git","description_html":"<p data-sourcepos=\"1:1-1:45\" dir=\"auto\">Fork of <a href=\"https://github.com/lfittl/libpg_query\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/lfittl/libpg_query</a></p>&#x000A;<p data-sourcepos=\"3:1-3:128\" dir=\"auto\">This is no longer needed now that we have <a href=\"https://github.com/lfittl/libpg_query/commit/0ce345469fac1f8cfa8b3d9f6a9af68d4550a5d1\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/lfittl/libpg_query/commit/0ce345469fac1f8cfa8b3d9f6a9af68d4550a5d1</a>.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/libpg_query.git","last_activity_at":"2026-01-07T10:45:35.434Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / libpg_query","path_with_namespace":"gitlab-org/libpg_query","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-24T05:16:42.017Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/libpg_query","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":21808150,"name":"Waypoint Images","path":"waypoint-images","_links":{"self":"https://gitlab.com/api/v4/projects/21808150","events":"https://gitlab.com/api/v4/projects/21808150/events","issues":"https://gitlab.com/api/v4/projects/21808150/issues","labels":"https://gitlab.com/api/v4/projects/21808150/labels","members":"https://gitlab.com/api/v4/projects/21808150/members","repo_branches":"https://gitlab.com/api/v4/projects/21808150/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/21808150/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/21808150/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/waypoint-images","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-10-15T18:30:28.158Z","creator_id":260236,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/waypoint-images/-/blob/master/README.md","star_count":2,"updated_at":"2026-01-07T10:45:32.178Z","visibility":"public","description":"Images of Hashicorps Waypoint","forks_count":3,"lfs_enabled":true,"public_jobs":false,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/waypoint-images.git","description_html":"<p data-sourcepos=\"1:1-1:29\" dir=\"auto\">Images of Hashicorps Waypoint</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/waypoint-images.git","last_activity_at":"2026-01-07T10:45:32.178Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Waypoint Images","path_with_namespace":"gitlab-org/waypoint-images","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-29T19:10:55.804Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/waypoint-images","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":21751817,"name":"Snowplow Micro Configuration","path":"snowplow-micro-configuration","_links":{"self":"https://gitlab.com/api/v4/projects/21751817","events":"https://gitlab.com/api/v4/projects/21751817/events","issues":"https://gitlab.com/api/v4/projects/21751817/issues","labels":"https://gitlab.com/api/v4/projects/21751817/labels","members":"https://gitlab.com/api/v4/projects/21751817/members","repo_branches":"https://gitlab.com/api/v4/projects/21751817/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/21751817/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/21751817/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/snowplow-micro-configuration","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-10-13T12:50:01.696Z","creator_id":4409816,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/snowplow-micro-configuration/-/blob/master/README.md","star_count":1,"updated_at":"2026-06-01T14:09:58.684Z","visibility":"public","description":"Snowplow Micro Testing configuration","forks_count":3,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_on","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/snowplow-micro-configuration.git","description_html":"<p data-sourcepos=\"1:1-1:36\" dir=\"auto\">Snowplow Micro Testing configuration</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/snowplow-micro-configuration.git","last_activity_at":"2026-06-01T14:09:58.684Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Snowplow Micro Configuration","path_with_namespace":"gitlab-org/snowplow-micro-configuration","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-20T07:37:19.490Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/snowplow-micro-configuration","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":21751536,"name":"Snowplow Micro","path":"snowplow-micro","_links":{"self":"https://gitlab.com/api/v4/projects/21751536","events":"https://gitlab.com/api/v4/projects/21751536/events","issues":"https://gitlab.com/api/v4/projects/21751536/issues","labels":"https://gitlab.com/api/v4/projects/21751536/labels","members":"https://gitlab.com/api/v4/projects/21751536/members","repo_branches":"https://gitlab.com/api/v4/projects/21751536/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/21751536/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/21751536/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/snowplow-micro","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-10-13T12:41:13.263Z","creator_id":4409816,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:45:27.010Z","visibility":"public","description":"Snowplow Micro testing configuration for GitLab project","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"failed","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/snowplow-micro.git","description_html":"<p data-sourcepos=\"1:1-1:55\" dir=\"auto\">Snowplow Micro testing configuration for GitLab project</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/snowplow-micro.git","last_activity_at":"2026-01-07T10:45:27.010Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Snowplow Micro","path_with_namespace":"gitlab-org/snowplow-micro","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-20T07:37:13.269Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/snowplow-micro","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":21565866,"name":"partial-clone-demo","path":"partial-clone-demo","_links":{"self":"https://gitlab.com/api/v4/projects/21565866","events":"https://gitlab.com/api/v4/projects/21565866/events","issues":"https://gitlab.com/api/v4/projects/21565866/issues","labels":"https://gitlab.com/api/v4/projects/21565866/labels","members":"https://gitlab.com/api/v4/projects/21565866/members","repo_branches":"https://gitlab.com/api/v4/projects/21565866/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/21565866/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/21565866/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/partial-clone-demo","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-10-05T07:30:54.010Z","creator_id":138401,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:18:51.907Z","visibility":"public","description":"Scripts for partial clone demos.","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/partial-clone-demo.git","description_html":"<p data-sourcepos=\"1:1-1:32\" dir=\"auto\">Scripts for partial clone demos.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/partial-clone-demo.git","last_activity_at":"2026-01-07T10:18:51.907Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / partial-clone-demo","path_with_namespace":"gitlab-org/partial-clone-demo","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-20T06:21:54.055Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/partial-clone-demo","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":21479995,"name":"Terraform AWS RDS Aurora","path":"gitlab-terraform-aws-rds-aurora","_links":{"self":"https://gitlab.com/api/v4/projects/21479995","events":"https://gitlab.com/api/v4/projects/21479995/events","issues":"https://gitlab.com/api/v4/projects/21479995/issues","labels":"https://gitlab.com/api/v4/projects/21479995/labels","members":"https://gitlab.com/api/v4/projects/21479995/members","repo_branches":"https://gitlab.com/api/v4/projects/21479995/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/21479995/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/21479995/merge_requests"},"mirror":false,"topics":["gitlab","rds","terraform"],"web_url":"https://gitlab.com/gitlab-org/gitlab-terraform-aws-rds-aurora","archived":false,"tag_list":["gitlab","rds","terraform"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-09-30T15:07:31.212Z","creator_id":444,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-terraform-aws-rds-aurora/-/blob/master/README.md","star_count":2,"updated_at":"2026-01-07T10:18:50.623Z","visibility":"public","description":"This project is a working example for managing a database in Amazon RDS Aurora with GitLab and Terraform","forks_count":10,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-terraform-aws-rds-aurora.git","description_html":"<p data-sourcepos=\"1:1-1:104\" dir=\"auto\">This project is a working example for managing a database in Amazon RDS Aurora with GitLab and Terraform</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-terraform-aws-rds-aurora.git","last_activity_at":"2026-01-07T10:18:50.623Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Terraform AWS RDS Aurora","path_with_namespace":"gitlab-org/gitlab-terraform-aws-rds-aurora","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-20T05:54:29.793Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-terraform-aws-rds-aurora","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":21439066,"name":"Go MimeDB","path":"go-mimedb","_links":{"self":"https://gitlab.com/api/v4/projects/21439066","events":"https://gitlab.com/api/v4/projects/21439066/events","issues":"https://gitlab.com/api/v4/projects/21439066/issues","labels":"https://gitlab.com/api/v4/projects/21439066/labels","members":"https://gitlab.com/api/v4/projects/21439066/members","repo_branches":"https://gitlab.com/api/v4/projects/21439066/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/21439066/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/21439066/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/go-mimedb","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-09-29T04:24:11.506Z","creator_id":4082686,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/go-mimedb/-/blob/main/README.md","star_count":2,"updated_at":"2026-01-07T10:18:49.701Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/go-mimedb.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/go-mimedb.git","last_activity_at":"2026-01-07T10:18:49.701Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Go MimeDB","path_with_namespace":"gitlab-org/go-mimedb","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-21T07:21:10.845Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/go-mimedb","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":20904766,"name":"licensee","path":"licensee","_links":{"self":"https://gitlab.com/api/v4/projects/20904766","events":"https://gitlab.com/api/v4/projects/20904766/events","issues":"https://gitlab.com/api/v4/projects/20904766/issues","labels":"https://gitlab.com/api/v4/projects/20904766/labels","members":"https://gitlab.com/api/v4/projects/20904766/members","repo_branches":"https://gitlab.com/api/v4/projects/20904766/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/20904766/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/20904766/merge_requests"},"mirror":true,"topics":[],"web_url":"https://gitlab.com/gitlab-org/licensee","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-09-03T06:01:35.281Z","creator_id":1902115,"empty_repo":false,"star_count":1,"updated_at":"2026-06-01T02:09:40.029Z","visibility":"public","description":"Read-only mirror of https://github.com/licensee/licensee","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"mirror_user_id":1902115,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/licensee.git","description_html":"<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Read-only mirror of <a href=\"https://github.com/licensee/licensee\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/licensee/licensee</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/licensee.git","last_activity_at":"2026-06-01T02:09:40.029Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / licensee","path_with_namespace":"gitlab-org/licensee","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"mirror_trigger_builds":false,"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-20T23:30:33.465Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","only_mirror_protected_branches":false,"spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/licensee","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"mirror_overwrites_diverged_branches":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":20510065,"name":"ci-cd-testing-ux","path":"ci-cd-testing-ux","_links":{"self":"https://gitlab.com/api/v4/projects/20510065","events":"https://gitlab.com/api/v4/projects/20510065/events","issues":"https://gitlab.com/api/v4/projects/20510065/issues","labels":"https://gitlab.com/api/v4/projects/20510065/labels","members":"https://gitlab.com/api/v4/projects/20510065/members","repo_branches":"https://gitlab.com/api/v4/projects/20510065/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/20510065/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/20510065/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/ci-cd-testing-ux","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-08-13T14:53:47.137Z","creator_id":4554255,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/ci-cd-testing-ux/-/blob/master/README.md","star_count":1,"updated_at":"2026-01-07T10:18:47.307Z","visibility":"public","description":"This is a project for keeping demo or test files for learning GitLab's CI/CD functionality.","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/ci-cd-testing-ux.git","description_html":"<p data-sourcepos=\"1:1-1:91\" dir=\"auto\">This is a project for keeping demo or test files for learning GitLab's CI/CD functionality.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/ci-cd-testing-ux.git","last_activity_at":"2026-01-07T10:18:47.307Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / ci-cd-testing-ux","path_with_namespace":"gitlab-org/ci-cd-testing-ux","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-20T21:23:36.778Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/ci-cd-testing-ux","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":20468480,"name":"Security Rewards Program Leaderboard","path":"security-rewards","_links":{"self":"https://gitlab.com/api/v4/projects/20468480","events":"https://gitlab.com/api/v4/projects/20468480/events","issues":"https://gitlab.com/api/v4/projects/20468480/issues","labels":"https://gitlab.com/api/v4/projects/20468480/labels","members":"https://gitlab.com/api/v4/projects/20468480/members","repo_branches":"https://gitlab.com/api/v4/projects/20468480/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/20468480/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/20468480/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/security-rewards","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-08-11T14:08:38.394Z","creator_id":30915,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:18:46.227Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/security-rewards.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/security-rewards.git","last_activity_at":"2026-01-07T10:18:46.227Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Security Rewards Program Leaderboard","path_with_namespace":"gitlab-org/security-rewards","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-20T21:11:25.824Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/security-rewards","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":20059805,"name":"gitlab-snippet-test","path":"gitlab-snippet-test","_links":{"self":"https://gitlab.com/api/v4/projects/20059805","events":"https://gitlab.com/api/v4/projects/20059805/events","issues":"https://gitlab.com/api/v4/projects/20059805/issues","labels":"https://gitlab.com/api/v4/projects/20059805/labels","members":"https://gitlab.com/api/v4/projects/20059805/members","repo_branches":"https://gitlab.com/api/v4/projects/20059805/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/20059805/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/20059805/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-snippet-test","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-07-20T16:13:55.355Z","creator_id":955795,"empty_repo":false,"star_count":1,"updated_at":"2026-01-07T10:18:44.989Z","visibility":"public","description":"Test snippet repository used to populate gdk fixtures","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-snippet-test.git","description_html":"<p data-sourcepos=\"1:1-1:53\" dir=\"auto\">Test snippet repository used to populate gdk fixtures</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-snippet-test.git","last_activity_at":"2026-01-07T10:18:44.989Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / gitlab-snippet-test","path_with_namespace":"gitlab-org/gitlab-snippet-test","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-21T05:14:32.921Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-snippet-test","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":19657914,"name":"rspec_profiling_stats","path":"rspec_profiling_stats","_links":{"self":"https://gitlab.com/api/v4/projects/19657914","events":"https://gitlab.com/api/v4/projects/19657914/events","issues":"https://gitlab.com/api/v4/projects/19657914/issues","labels":"https://gitlab.com/api/v4/projects/19657914/labels","members":"https://gitlab.com/api/v4/projects/19657914/members","repo_branches":"https://gitlab.com/api/v4/projects/19657914/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/19657914/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/19657914/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/rspec_profiling_stats","archived":true,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-06-29T11:25:33.213Z","creator_id":1642716,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/rspec_profiling_stats/-/blob/master/README.md","star_count":6,"updated_at":"2026-06-01T20:02:30.335Z","visibility":"public","description":"Statistics about GitLab Rails RSpec test suite. Identifying slowest / most expensive tests can help with optimizing our code and our specs. Statistics are generated every day and published at https://gitlab-org.gitlab.io/rspec_profiling_stats/.","forks_count":0,"lfs_enabled":true,"public_jobs":false,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/rspec_profiling_stats.git","description_html":"<p data-sourcepos=\"1:1-1:244\" dir=\"auto\">Statistics about GitLab Rails RSpec test suite. Identifying slowest / most expensive tests can help with optimizing our code and our specs. Statistics are generated every day and published at <a href=\"https://gitlab-org.gitlab.io/rspec_profiling_stats/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://gitlab-org.gitlab.io/rspec_profiling_stats/</a>.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/rspec_profiling_stats.git","last_activity_at":"2026-06-01T20:02:30.335Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":10,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":16947798,"group_name":"Engineering Productivity","group_full_path":"gitlab-org/quality/engineering-productivity","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / rspec_profiling_stats","path_with_namespace":"gitlab-org/rspec_profiling_stats","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-21T06:04:03.357Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/rspec_profiling_stats","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":19461377,"name":"pubsubbeat","path":"pubsubbeat","_links":{"self":"https://gitlab.com/api/v4/projects/19461377","events":"https://gitlab.com/api/v4/projects/19461377/events","issues":"https://gitlab.com/api/v4/projects/19461377/issues","labels":"https://gitlab.com/api/v4/projects/19461377/labels","members":"https://gitlab.com/api/v4/projects/19461377/members","repo_branches":"https://gitlab.com/api/v4/projects/19461377/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/19461377/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/19461377/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/pubsubbeat","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-06-18T16:12:18.133Z","creator_id":928230,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/pubsubbeat/-/blob/master/README.md","star_count":1,"updated_at":"2026-06-01T20:02:30.143Z","visibility":"public","description":"An Elastic Beat to ingest data from Google Pub/Sub","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/pubsubbeat.git","description_html":"<p data-sourcepos=\"1:1-1:50\" dir=\"auto\">An Elastic Beat to ingest data from Google Pub/Sub</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/pubsubbeat.git","last_activity_at":"2026-06-01T20:02:30.143Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":2,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / pubsubbeat","path_with_namespace":"gitlab-org/pubsubbeat","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-06-23T06:51:20.591Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/pubsubbeat","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":18943607,"name":"Terraform Images","path":"terraform-images","_links":{"self":"https://gitlab.com/api/v4/projects/18943607","events":"https://gitlab.com/api/v4/projects/18943607/events","issues":"https://gitlab.com/api/v4/projects/18943607/issues","labels":"https://gitlab.com/api/v4/projects/18943607/labels","members":"https://gitlab.com/api/v4/projects/18943607/members","repo_branches":"https://gitlab.com/api/v4/projects/18943607/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/18943607/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/18943607/merge_requests"},"mirror":false,"topics":["hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/terraform-images","archived":false,"tag_list":["hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-05-22T20:10:05.491Z","creator_id":3916059,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/terraform-images/-/blob/master/README.md","star_count":168,"updated_at":"2026-05-19T19:03:40.676Z","visibility":"public","description":"Terraform images for GitLab CI","forks_count":250,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/terraform-images.git","description_html":"<p data-sourcepos=\"1:1-1:30\" dir=\"auto\">Terraform images for GitLab CI</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/terraform-images.git","last_activity_at":"2026-05-19T19:03:40.676Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":30,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Terraform Images","path_with_namespace":"gitlab-org/terraform-images","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"\r\n/label ~\"group::environments\" ~backend","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-11-07T18:50:16.587Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/terraform-images","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":18863350,"name":"gitlab-sketch-plugin","path":"gitlab-sketch-plugin","_links":{"self":"https://gitlab.com/api/v4/projects/18863350","events":"https://gitlab.com/api/v4/projects/18863350/events","issues":"https://gitlab.com/api/v4/projects/18863350/issues","labels":"https://gitlab.com/api/v4/projects/18863350/labels","members":"https://gitlab.com/api/v4/projects/18863350/members","repo_branches":"https://gitlab.com/api/v4/projects/18863350/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/18863350/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/18863350/merge_requests"},"mirror":false,"topics":["design","design management","plugin","sketch"],"web_url":"https://gitlab.com/gitlab-org/gitlab-sketch-plugin","archived":false,"tag_list":["design","design management","plugin","sketch"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/18863350/SketchGitLab.png","created_at":"2020-05-19T05:01:35.687Z","creator_id":259327,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-sketch-plugin/-/blob/master/README.md","star_count":2,"updated_at":"2026-04-20T13:30:04.546Z","visibility":"public","description":"Official *GitLab Sketch Plugin* by the [Create:Knowledge Team](https://about.gitlab.com/handbook/product/categories/#knowledge-group) - Contact @cdybenko with questions","forks_count":4,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"\r\n\r\n/label ~\"devops::create\" ~\"group::knowledge\" ~\"Category:Design Management\"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-sketch-plugin.git","description_html":"<p data-sourcepos=\"1:1-1:168\" dir=\"auto\">Official <em data-sourcepos=\"1:10-1:31\">GitLab Sketch Plugin</em> by the <a data-sourcepos=\"1:40-1:133\" href=\"https://about.gitlab.com/handbook/product/categories/#knowledge-group\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">Create:Knowledge Team</a> - Contact <a href=\"/cdybenko\" data-reference-type=\"user\" data-user=\"18480421\" data-container=\"body\" data-placement=\"top\" class=\"gfm gfm-project_member js-user-link\" title=\"Christen Dybenko\">@cdybenko</a> with questions</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-sketch-plugin.git","last_activity_at":"2026-04-20T13:30:04.546Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":2,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / gitlab-sketch-plugin","path_with_namespace":"gitlab-org/gitlab-sketch-plugin","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"## What does this MR do?\r\n\r\n## Checklist\r\n\r\n- [ ] If this is a tagged release, updated `package.json` and `.appcast.xml` with appropriate download links/version numbers\r\n\r\n/label ~\"devops::create\" ~\"group::knowledge\" ~\"Category:Design Management\"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-10-21T02:55:52.590Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-sketch-plugin","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":18860383,"name":"gitlab-figma-plugin","path":"gitlab-figma-plugin","_links":{"self":"https://gitlab.com/api/v4/projects/18860383","events":"https://gitlab.com/api/v4/projects/18860383/events","issues":"https://gitlab.com/api/v4/projects/18860383/issues","labels":"https://gitlab.com/api/v4/projects/18860383/labels","members":"https://gitlab.com/api/v4/projects/18860383/members","repo_branches":"https://gitlab.com/api/v4/projects/18860383/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/18860383/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/18860383/merge_requests"},"mirror":false,"topics":["design","design management","figma","plugin"],"web_url":"https://gitlab.com/gitlab-org/gitlab-figma-plugin","archived":false,"tag_list":["design","design management","figma","plugin"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/18860383/FigmaGitLab.png","created_at":"2020-05-19T00:00:58.448Z","creator_id":259327,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-figma-plugin/-/blob/main/README.md","star_count":43,"updated_at":"2026-05-31T22:16:45.028Z","visibility":"public","description":"Official *GitLab Figma Plugin* \r\n\r\n👉 Get the plugin: https://www.figma.com/community/plugin/860845891704482356/GitLab\r\n\r\n\r\n📈 [Leave feedback](https://gitlab.com/gitlab-org/gitlab-figma-plugin/-/issues/44)","forks_count":18,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"## Issue description\r\n\r\n/label ~\"devops::create\" ~\"group::ecosystem\" ~\"frontend\" ~\"Figma\"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-figma-plugin.git","description_html":"<p data-sourcepos=\"1:1-1:31\" dir=\"auto\">Official <em data-sourcepos=\"1:10-1:30\">GitLab Figma Plugin</em></p>&#x000A;<p data-sourcepos=\"3:1-3:85\" dir=\"auto\"><gl-emoji title=\"white right pointing backhand index\" data-name=\"point_right\" data-unicode-version=\"6.0\">👉</gl-emoji> Get the plugin: <a href=\"https://www.figma.com/community/plugin/860845891704482356/GitLab\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://www.figma.com/community/plugin/860845891704482356/GitLab</a></p>&#x000A;<p data-sourcepos=\"6:1-6:84\" dir=\"auto\"><gl-emoji title=\"chart with upwards trend\" data-name=\"chart_with_upwards_trend\" data-unicode-version=\"6.0\">📈</gl-emoji> <a href=\"https://gitlab.com/gitlab-org/gitlab-figma-plugin/-/issues/44\" data-reference-type=\"issue\" data-original=\"Leave feedback\" data-link=\"true\" data-link-reference=\"true\" data-project=\"18860383\" data-issue=\"55639550\" data-project-path=\"gitlab-org/gitlab-figma-plugin\" data-iid=\"44\" data-issue-type=\"issue\" data-container=\"body\" data-placement=\"top\" title=\"GitLab Figma Plugin Feedback Issue\" class=\"gfm gfm-issue\">Leave feedback</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-figma-plugin.git","last_activity_at":"2026-05-31T22:16:45.028Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":33,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / gitlab-figma-plugin","path_with_namespace":"gitlab-org/gitlab-figma-plugin","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"merge_commit_template":"","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"## What does this MR do?\r\n\r\n## Does this MR meet the acceptance criteria?\r\n\r\n### Conformity\r\n- [ ] [Code review guidelines](https://docs.gitlab.com/ee/development/code_review.html) (`@mention` any [CODEOWNER](CODEOWNERS) to request a review)\r\n- [ ] Added tests for new functionality\r\n\r\n/label ~\"devops::ecosystem\" ~\"group::integrations\" ~\"frontend\" ~\"figma\"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-10-20T16:36:25.984Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-figma-plugin","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":18741849,"name":"GitLab CVE assignments","path":"cves","_links":{"self":"https://gitlab.com/api/v4/projects/18741849","events":"https://gitlab.com/api/v4/projects/18741849/events","issues":"https://gitlab.com/api/v4/projects/18741849/issues","labels":"https://gitlab.com/api/v4/projects/18741849/labels","members":"https://gitlab.com/api/v4/projects/18741849/members","repo_branches":"https://gitlab.com/api/v4/projects/18741849/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/18741849/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/18741849/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/cves","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/18741849/aefbf883-9cc7-40ac-bd20-5d4e2cfcd647.png","created_at":"2020-05-12T19:29:29.615Z","creator_id":1197909,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/cves/-/blob/master/README.md","star_count":22,"updated_at":"2026-06-02T04:14:59.278Z","visibility":"public","description":"This project hosts the CVEs that have been assigned by GitLab in its role as a CNA. See https://about.gitlab.com/security/cve/ for more information","forks_count":23,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/cves.git","description_html":"<p data-sourcepos=\"1:1-1:147\" dir=\"auto\">This project hosts the CVEs that have been assigned by GitLab in its role as a CNA. See <a href=\"https://about.gitlab.com/security/cve/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://about.gitlab.com/security/cve/</a> for more information</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/cves.git","last_activity_at":"2026-06-02T04:14:59.278Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab CVE assignments","path_with_namespace":"gitlab-org/cves","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-10-21T12:33:30.382Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/cves","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":18629149,"name":"Auto Devops v12.10","path":"auto-devops-v12-10","_links":{"self":"https://gitlab.com/api/v4/projects/18629149","events":"https://gitlab.com/api/v4/projects/18629149/events","labels":"https://gitlab.com/api/v4/projects/18629149/labels","members":"https://gitlab.com/api/v4/projects/18629149/members","repo_branches":"https://gitlab.com/api/v4/projects/18629149/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/18629149/cluster_agents"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/auto-devops-v12-10","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-05-06T23:41:23.409Z","creator_id":30915,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/auto-devops-v12-10/-/blob/master/README.md","star_count":6,"updated_at":"2026-01-07T10:18:31.576Z","visibility":"public","description":"A copy of the Auto DevOps CI templates as they were in GitLab 12.10, prior to the breaking changes that were made in 13.0 in moving the templates from only/except to rules syntax","forks_count":4,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/auto-devops-v12-10.git","description_html":"<p data-sourcepos=\"1:1-1:178\" dir=\"auto\">A copy of the Auto DevOps CI templates as they were in GitLab 12.10, prior to the breaking changes that were made in 13.0 in moving the templates from only/except to rules syntax</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/auto-devops-v12-10.git","last_activity_at":"2026-01-07T10:18:31.576Z","packages_enabled":false,"snippets_enabled":false,"wiki_access_level":"disabled","pages_access_level":"disabled","shared_with_groups":[],"builds_access_level":"disabled","issues_access_level":"disabled","name_with_namespace":"GitLab.org / Auto Devops v12.10","path_with_namespace":"gitlab-org/auto-devops-v12-10","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-10-22T17:54:55.898Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"disabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/auto-devops-v12-10","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":18594390,"name":"test_codeowners","path":"test_codeowners","_links":{"self":"https://gitlab.com/api/v4/projects/18594390","events":"https://gitlab.com/api/v4/projects/18594390/events","issues":"https://gitlab.com/api/v4/projects/18594390/issues","labels":"https://gitlab.com/api/v4/projects/18594390/labels","members":"https://gitlab.com/api/v4/projects/18594390/members","repo_branches":"https://gitlab.com/api/v4/projects/18594390/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/18594390/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/18594390/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/test_codeowners","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-05-05T13:57:38.839Z","creator_id":4787364,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:18:30.618Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/test_codeowners.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/test_codeowners.git","last_activity_at":"2026-01-07T10:18:30.618Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / test_codeowners","path_with_namespace":"gitlab-org/test_codeowners","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-10-21T09:51:09.306Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/test_codeowners","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":18331927,"name":"Sitespeed Journeys","path":"sitespeed-journeys","_links":{"self":"https://gitlab.com/api/v4/projects/18331927","events":"https://gitlab.com/api/v4/projects/18331927/events","issues":"https://gitlab.com/api/v4/projects/18331927/issues","labels":"https://gitlab.com/api/v4/projects/18331927/labels","members":"https://gitlab.com/api/v4/projects/18331927/members","repo_branches":"https://gitlab.com/api/v4/projects/18331927/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/18331927/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/18331927/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/sitespeed-journeys","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-04-23T15:31:43.182Z","creator_id":926632,"empty_repo":true,"star_count":2,"updated_at":"2026-01-07T10:18:28.761Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/sitespeed-journeys.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/sitespeed-journeys.git","last_activity_at":"2026-01-07T10:18:28.761Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Sitespeed Journeys","path_with_namespace":"gitlab-org/sitespeed-journeys","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-10-23T11:52:31.288Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/sitespeed-journeys","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":18307889,"name":"version-app-codeclimate-rubocop","path":"version-app-codeclimate-rubocop","_links":{"self":"https://gitlab.com/api/v4/projects/18307889","events":"https://gitlab.com/api/v4/projects/18307889/events","issues":"https://gitlab.com/api/v4/projects/18307889/issues","labels":"https://gitlab.com/api/v4/projects/18307889/labels","members":"https://gitlab.com/api/v4/projects/18307889/members","repo_branches":"https://gitlab.com/api/v4/projects/18307889/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/18307889/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/18307889/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/version-app-codeclimate-rubocop","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-04-22T19:21:57.490Z","creator_id":3841241,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/version-app-codeclimate-rubocop/-/blob/gitlab/rubocop-0-82/README.md","star_count":1,"updated_at":"2026-01-07T10:18:27.352Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","default_branch":"gitlab/rubocop-0-82","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/version-app-codeclimate-rubocop.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/version-app-codeclimate-rubocop.git","last_activity_at":"2026-01-07T10:18:27.352Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / version-app-codeclimate-rubocop","path_with_namespace":"gitlab-org/version-app-codeclimate-rubocop","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-11-05T19:50:58.754Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/version-app-codeclimate-rubocop","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":18307741,"name":"version-app-codeclimate","path":"version-app-codeclimate","_links":{"self":"https://gitlab.com/api/v4/projects/18307741","events":"https://gitlab.com/api/v4/projects/18307741/events","issues":"https://gitlab.com/api/v4/projects/18307741/issues","labels":"https://gitlab.com/api/v4/projects/18307741/labels","members":"https://gitlab.com/api/v4/projects/18307741/members","repo_branches":"https://gitlab.com/api/v4/projects/18307741/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/18307741/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/18307741/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/version-app-codeclimate","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-04-22T19:18:06.512Z","creator_id":3841241,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/version-app-codeclimate/-/blob/master-gitlab/README.md","star_count":1,"updated_at":"2026-01-07T10:18:26.497Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"master-gitlab","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/version-app-codeclimate.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/version-app-codeclimate.git","last_activity_at":"2026-01-07T10:18:26.497Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / version-app-codeclimate","path_with_namespace":"gitlab-org/version-app-codeclimate","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-11-05T19:50:58.745Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/version-app-codeclimate","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":18060348,"name":"CI-CD UX Team","path":"ci-cd-ux","_links":{"self":"https://gitlab.com/api/v4/projects/18060348","events":"https://gitlab.com/api/v4/projects/18060348/events","issues":"https://gitlab.com/api/v4/projects/18060348/issues","labels":"https://gitlab.com/api/v4/projects/18060348/labels","members":"https://gitlab.com/api/v4/projects/18060348/members","repo_branches":"https://gitlab.com/api/v4/projects/18060348/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/18060348/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/18060348/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/ci-cd-ux","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/18060348/ux-icon.png","created_at":"2020-04-10T20:37:18.294Z","creator_id":4554255,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/ci-cd-ux/-/blob/master/README.md","star_count":2,"updated_at":"2026-06-01T18:24:11.658Z","visibility":"public","description":"This project is designed to hold team process discussions, efforts towards team continuity and productivity. Generally a place to have more structured discussions around things we want to do.","forks_count":3,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"failed","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/ci-cd-ux.git","description_html":"<p data-sourcepos=\"1:1-1:191\" dir=\"auto\">This project is designed to hold team process discussions, efforts towards team continuity and productivity. Generally a place to have more structured discussions around things we want to do.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/ci-cd-ux.git","last_activity_at":"2026-06-01T18:24:11.658Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":13,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / CI-CD UX Team","path_with_namespace":"gitlab-org/ci-cd-ux","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-10-24T18:28:00.269Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/ci-cd-ux","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":17930014,"name":"Snowplow Go Collector","path":"snowplow-go-collector","_links":{"self":"https://gitlab.com/api/v4/projects/17930014","events":"https://gitlab.com/api/v4/projects/17930014/events","issues":"https://gitlab.com/api/v4/projects/17930014/issues","labels":"https://gitlab.com/api/v4/projects/17930014/labels","members":"https://gitlab.com/api/v4/projects/17930014/members","repo_branches":"https://gitlab.com/api/v4/projects/17930014/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/17930014/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/17930014/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/snowplow-go-collector","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-04-04T19:32:41.259Z","creator_id":1,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/snowplow-go-collector/-/blob/master/README.md","star_count":2,"updated_at":"2026-01-07T10:18:24.251Z","visibility":"public","description":"","forks_count":3,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/snowplow-go-collector.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/snowplow-go-collector.git","last_activity_at":"2026-01-07T10:18:24.251Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Snowplow Go Collector","path_with_namespace":"gitlab-org/snowplow-go-collector","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-04-11T19:32:41.273Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/snowplow-go-collector","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":17661412,"name":"jfr-container-builder","path":"jfr-container-builder","_links":{"self":"https://gitlab.com/api/v4/projects/17661412","events":"https://gitlab.com/api/v4/projects/17661412/events","issues":"https://gitlab.com/api/v4/projects/17661412/issues","labels":"https://gitlab.com/api/v4/projects/17661412/labels","members":"https://gitlab.com/api/v4/projects/17661412/members","repo_branches":"https://gitlab.com/api/v4/projects/17661412/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/17661412/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/17661412/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/jfr-container-builder","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-03-23T12:46:22.202Z","creator_id":572018,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/jfr-container-builder/-/blob/master/README.md","star_count":11,"updated_at":"2026-04-20T14:04:56.222Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"failed","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/jfr-container-builder.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/jfr-container-builder.git","last_activity_at":"2026-04-20T14:04:56.222Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":4,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / jfr-container-builder","path_with_namespace":"gitlab-org/jfr-container-builder","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-03-30T12:46:51.397Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/jfr-container-builder","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":17522813,"name":"expand-unchanged-file","path":"expand-unchanged-file","_links":{"self":"https://gitlab.com/api/v4/projects/17522813","events":"https://gitlab.com/api/v4/projects/17522813/events","issues":"https://gitlab.com/api/v4/projects/17522813/issues","labels":"https://gitlab.com/api/v4/projects/17522813/labels","members":"https://gitlab.com/api/v4/projects/17522813/members","repo_branches":"https://gitlab.com/api/v4/projects/17522813/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/17522813/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/17522813/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/expand-unchanged-file","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-03-16T19:22:39.695Z","creator_id":1187333,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:18:22.459Z","visibility":"public","description":"","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/expand-unchanged-file.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/expand-unchanged-file.git","last_activity_at":"2026-01-07T10:18:22.459Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / expand-unchanged-file","path_with_namespace":"gitlab-org/expand-unchanged-file","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-03-23T19:22:39.747Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/expand-unchanged-file","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":17345914,"name":"libgit2","path":"libgit2","_links":{"self":"https://gitlab.com/api/v4/projects/17345914","events":"https://gitlab.com/api/v4/projects/17345914/events","issues":"https://gitlab.com/api/v4/projects/17345914/issues","labels":"https://gitlab.com/api/v4/projects/17345914/labels","members":"https://gitlab.com/api/v4/projects/17345914/members","repo_branches":"https://gitlab.com/api/v4/projects/17345914/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/17345914/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/17345914/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/libgit2","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-03-07T15:22:22.781Z","creator_id":101578,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/libgit2/-/blob/master/README.md","star_count":2,"updated_at":"2026-01-07T10:18:19.708Z","visibility":"public","description":"Libgit2 Source Code Mirror. This is a publish-only repository. ","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/libgit2.git","description_html":"<p data-sourcepos=\"1:1-1:63\" dir=\"auto\">Libgit2 Source Code Mirror. This is a publish-only repository.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/libgit2.git","last_activity_at":"2026-01-07T10:18:19.708Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":3,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / libgit2","path_with_namespace":"gitlab-org/libgit2","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-03-14T15:22:22.842Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/libgit2","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":17334694,"name":"Jira Issue Generator","path":"jira-issue-generator","_links":{"self":"https://gitlab.com/api/v4/projects/17334694","events":"https://gitlab.com/api/v4/projects/17334694/events","issues":"https://gitlab.com/api/v4/projects/17334694/issues","labels":"https://gitlab.com/api/v4/projects/17334694/labels","members":"https://gitlab.com/api/v4/projects/17334694/members","repo_branches":"https://gitlab.com/api/v4/projects/17334694/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/17334694/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/17334694/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/jira-issue-generator","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-03-06T19:32:26.674Z","creator_id":4303289,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/jira-issue-generator/-/blob/master/README.md","star_count":1,"updated_at":"2026-01-07T10:18:18.776Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/jira-issue-generator.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/jira-issue-generator.git","last_activity_at":"2026-01-07T10:18:18.776Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":2,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Jira Issue Generator","path_with_namespace":"gitlab-org/jira-issue-generator","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-03-13T19:32:26.724Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/jira-issue-generator","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":17318793,"name":"GitLab Derailed Benchmarks","path":"gitlab-derailed_benchmarks","_links":{"self":"https://gitlab.com/api/v4/projects/17318793","events":"https://gitlab.com/api/v4/projects/17318793/events","issues":"https://gitlab.com/api/v4/projects/17318793/issues","labels":"https://gitlab.com/api/v4/projects/17318793/labels","members":"https://gitlab.com/api/v4/projects/17318793/members","repo_branches":"https://gitlab.com/api/v4/projects/17318793/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/17318793/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/17318793/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-derailed_benchmarks","archived":true,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-03-06T05:26:47.642Z","creator_id":2880930,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-derailed_benchmarks/-/blob/master/README.md","star_count":1,"updated_at":"2026-01-07T10:18:17.173Z","visibility":"public","description":"Temporary fork of https://github.com/schneems/derailed_benchmarks to fix compatibility with Bootsnap and Zeitwerk","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-derailed_benchmarks.git","description_html":"<p data-sourcepos=\"1:1-1:113\" dir=\"auto\">Temporary fork of <a href=\"https://github.com/schneems/derailed_benchmarks\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/schneems/derailed_benchmarks</a> to fix compatibility with Bootsnap and Zeitwerk</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-derailed_benchmarks.git","last_activity_at":"2026-01-07T10:18:17.173Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Derailed Benchmarks","path_with_namespace":"gitlab-org/gitlab-derailed_benchmarks","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-03-13T05:26:47.709Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-derailed_benchmarks","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":16842968,"name":"GitLab Status Page","path":"status-page","_links":{"self":"https://gitlab.com/api/v4/projects/16842968","events":"https://gitlab.com/api/v4/projects/16842968/events","issues":"https://gitlab.com/api/v4/projects/16842968/issues","labels":"https://gitlab.com/api/v4/projects/16842968/labels","members":"https://gitlab.com/api/v4/projects/16842968/members","repo_branches":"https://gitlab.com/api/v4/projects/16842968/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/16842968/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/16842968/merge_requests"},"mirror":false,"topics":["aws","hacktoberfest","incident","static site","vue"],"web_url":"https://gitlab.com/gitlab-org/status-page","archived":false,"tag_list":["aws","hacktoberfest","incident","static site","vue"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/16842968/gitlab-icon-rgb.png","created_at":"2020-02-11T14:57:07.134Z","creator_id":408677,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/status-page/-/blob/master/README.md","star_count":20,"updated_at":"2026-06-02T14:49:13.603Z","visibility":"public","description":"With the GitLab Status page, you can create and deploy a static website to communicate efficiently with users during an incident.","forks_count":32,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/status-page.git","description_html":"<p data-sourcepos=\"1:1-1:129\" dir=\"auto\">With the GitLab Status page, you can create and deploy a static website to communicate efficiently with users during an incident.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/status-page.git","last_activity_at":"2026-06-02T14:39:20.778Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":21,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":6150316,"group_name":"frontend","group_full_path":"gitlab-org/maintainers/frontend","group_access_level":40},{"group_id":3887968,"group_name":"rails-backend","group_full_path":"gitlab-org/maintainers/rails-backend","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Status Page","path_with_namespace":"gitlab-org/status-page","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-02-18T14:57:07.152Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/status-page","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":16603968,"name":"cloudflare_exporter","path":"cloudflare_exporter","_links":{"self":"https://gitlab.com/api/v4/projects/16603968","events":"https://gitlab.com/api/v4/projects/16603968/events","issues":"https://gitlab.com/api/v4/projects/16603968/issues","labels":"https://gitlab.com/api/v4/projects/16603968/labels","members":"https://gitlab.com/api/v4/projects/16603968/members","repo_branches":"https://gitlab.com/api/v4/projects/16603968/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/16603968/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/16603968/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/cloudflare_exporter","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-01-30T09:38:20.437Z","creator_id":928230,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/cloudflare_exporter/-/blob/master/README.md","star_count":19,"updated_at":"2026-03-03T09:50:59.570Z","visibility":"public","description":"A Prometheus exporter for Cloudflare metrics via GraphQL","forks_count":11,"lfs_enabled":true,"public_jobs":false,"jobs_enabled":true,"merge_method":"rebase_merge","wiki_enabled":true,"import_status":"none","squash_option":"never","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/cloudflare_exporter.git","description_html":"<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">A Prometheus exporter for Cloudflare metrics via GraphQL</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/cloudflare_exporter.git","last_activity_at":"2026-03-03T09:50:59.570Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":4,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":1112072,"group_name":"GitLab Infrastructure Team","group_full_path":"gitlab-com/gl-infra","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / cloudflare_exporter","path_with_namespace":"gitlab-org/cloudflare_exporter","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-02-06T09:38:20.464Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/cloudflare_exporter","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":16573099,"name":"release-cli","path":"release-cli","_links":{"self":"https://gitlab.com/api/v4/projects/16573099","events":"https://gitlab.com/api/v4/projects/16573099/events","issues":"https://gitlab.com/api/v4/projects/16573099/issues","labels":"https://gitlab.com/api/v4/projects/16573099/labels","members":"https://gitlab.com/api/v4/projects/16573099/members","repo_branches":"https://gitlab.com/api/v4/projects/16573099/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/16573099/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/16573099/merge_requests"},"mirror":false,"topics":["hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/release-cli","archived":false,"tag_list":["hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-01-28T20:08:19.792Z","creator_id":3031775,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/release-cli/-/blob/master/README.md","star_count":127,"updated_at":"2026-05-26T11:05:19.362Z","visibility":"public","description":"(Deprecated, use the GitLab CLI instead, https://gitlab.com/gitlab-org/cli) Release CLI ","forks_count":64,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"<!---\r\nPlease read this!\r\n\r\nBefore opening a new issue, make sure to search for keywords in the issues (including closed ones)\r\n- https://gitlab.com/gitlab-org/release-cli/issues\r\n\r\nand verify the issue you're about to submit isn't a duplicate.\r\n--->\r\n\r\n\r\n### Summary\r\n\r\n<!-- Summarize the bug encountered concisely. -->\r\n\r\n### Steps to reproduce\r\n\r\n<!-- Describe how one can reproduce the issue - this is very important. Please use an ordered list. -->\r\n\r\n### Example Project\r\n\r\n<!-- If possible, please create an example project here on GitLab.com that exhibits the problematic \r\nbehavior, and link to it here in the bug report. If you are using an older version of GitLab, this \r\nwill also determine whether the bug is fixed in a more recent version. -->\r\n\r\n### What is the current *bug* behavior?\r\n\r\n<!-- Describe what actually happens. -->\r\n\r\n### What is the expected *correct* behavior?\r\n\r\n<!-- Describe what you should see instead. -->\r\n\r\n### Relevant logs and/or screenshots\r\n\r\n<!-- Paste any relevant logs - please use code blocks (```) to format console output, logs, and code\r\n as it's tough to read otherwise. -->\r\n\r\n### Output of checks\r\n\r\n<!-- If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com -->\r\n\r\n### Possible fixes\r\n\r\n<!-- If you can, link to the line of code that might be responsible for the problem. -->\r\n\r\n<!-- DO NOT CHANGE -->\r\n \r\n~\"devops::release\" ~\"group::release\" ~\"GitLab Release CLI\" ~\"Category:Release Orchestration\" \r\n\r\n\r\n/label ~\"devops::release\" ~\"group::release\" ~\"GitLab Release CLI\" ~\"Category:Release Orchestration\"  ~golang\r\n\r\n","ssh_url_to_repo":"git@gitlab.com:gitlab-org/release-cli.git","description_html":"<p data-sourcepos=\"1:1-1:88\" dir=\"auto\">(Deprecated, use the GitLab CLI instead, <a data-sourcepos=\"1:42-1:74\" href=\"https://gitlab.com/gitlab-org/cli\">https://gitlab.com/gitlab-org/cli</a>) Release CLI</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/release-cli.git","last_activity_at":"2026-05-26T11:05:19.362Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":45,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / release-cli","path_with_namespace":"gitlab-org/release-cli","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"## What does this MR do and why?\r\n\r\n### Checklist\r\n\r\n- [ ] I added tests\r\n- [ ] Green pipeline\r\n- [ ] Assign to reviewer\r\n\r\n/label ~\"devops::deploy\" ~\"group::environments\"  ~\"GitLab Release CLI\" ~\"Category:Release Orchestration\"  ~golang","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":true,"name_regex":"mr-.*","older_than":"7d","next_run_at":"2026-06-06T22:19:21.821Z","name_regex_keep":"(?:v.+|latest|edge)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/release-cli","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":16110032,"name":"version-app-buildpack","path":"version-app-buildpack","_links":{"self":"https://gitlab.com/api/v4/projects/16110032","events":"https://gitlab.com/api/v4/projects/16110032/events","issues":"https://gitlab.com/api/v4/projects/16110032/issues","labels":"https://gitlab.com/api/v4/projects/16110032/labels","members":"https://gitlab.com/api/v4/projects/16110032/members","repo_branches":"https://gitlab.com/api/v4/projects/16110032/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/16110032/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/16110032/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/version-app-buildpack","archived":true,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2020-01-01T13:44:58.670Z","creator_id":443319,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/version-app-buildpack/-/blob/master/README.md","star_count":1,"updated_at":"2026-01-07T10:18:09.183Z","visibility":"public","description":"","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"failed","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/version-app-buildpack.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/version-app-buildpack.git","last_activity_at":"2026-01-07T10:18:09.183Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / version-app-buildpack","path_with_namespace":"gitlab-org/version-app-buildpack","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/version-app-buildpack","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":15815706,"name":"GitLab Puma","path":"gitlab-puma","_links":{"self":"https://gitlab.com/api/v4/projects/15815706","events":"https://gitlab.com/api/v4/projects/15815706/events","issues":"https://gitlab.com/api/v4/projects/15815706/issues","labels":"https://gitlab.com/api/v4/projects/15815706/labels","members":"https://gitlab.com/api/v4/projects/15815706/members","repo_branches":"https://gitlab.com/api/v4/projects/15815706/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/15815706/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/15815706/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-puma","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2019-12-11T10:16:00.461Z","creator_id":12452,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-puma/-/blob/gitlab-latency/README.md","star_count":1,"updated_at":"2026-01-07T10:18:05.802Z","visibility":"public","description":"TEMPORARY: Forked repository with the changes we made to the https://github.com/puma/puma/ gem to add a better scheduling algorithm\r\n","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"gitlab-latency","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-puma.git","description_html":"<p data-sourcepos=\"1:1-1:131\" dir=\"auto\">TEMPORARY: Forked repository with the changes we made to the <a href=\"https://github.com/puma/puma/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://github.com/puma/puma/</a> gem to add a better scheduling algorithm</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-puma.git","last_activity_at":"2026-01-07T10:18:05.802Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":2,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Puma","path_with_namespace":"gitlab-org/gitlab-puma","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-puma","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":15687385,"name":"releasepost","path":"releasepost","_links":{"self":"https://gitlab.com/api/v4/projects/15687385","events":"https://gitlab.com/api/v4/projects/15687385/events","issues":"https://gitlab.com/api/v4/projects/15687385/issues","labels":"https://gitlab.com/api/v4/projects/15687385/labels","members":"https://gitlab.com/api/v4/projects/15687385/members","repo_branches":"https://gitlab.com/api/v4/projects/15687385/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/15687385/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/15687385/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/releasepost","archived":true,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2019-12-04T22:30:28.312Z","creator_id":2737706,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/releasepost/-/blob/master/README.md","star_count":3,"updated_at":"2026-01-07T10:18:03.617Z","visibility":"public","description":"","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"failed","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/releasepost.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/releasepost.git","last_activity_at":"2026-01-07T10:18:03.617Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / releasepost","path_with_namespace":"gitlab-org/releasepost","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/releasepost","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":15445353,"name":"Dev Test Project","path":"dev-test-project","_links":{"self":"https://gitlab.com/api/v4/projects/15445353","events":"https://gitlab.com/api/v4/projects/15445353/events","issues":"https://gitlab.com/api/v4/projects/15445353/issues","labels":"https://gitlab.com/api/v4/projects/15445353/labels","members":"https://gitlab.com/api/v4/projects/15445353/members","repo_branches":"https://gitlab.com/api/v4/projects/15445353/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/15445353/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/15445353/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/dev-test-project","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2019-11-20T16:52:29.065Z","creator_id":3225050,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:18:01.085Z","visibility":"public","description":"","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/dev-test-project.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/dev-test-project.git","last_activity_at":"2026-01-07T10:18:01.085Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Dev Test Project","path_with_namespace":"gitlab-org/dev-test-project","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/dev-test-project","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":15363819,"name":"cloud-deploy","path":"cloud-deploy","_links":{"self":"https://gitlab.com/api/v4/projects/15363819","events":"https://gitlab.com/api/v4/projects/15363819/events","issues":"https://gitlab.com/api/v4/projects/15363819/issues","labels":"https://gitlab.com/api/v4/projects/15363819/labels","members":"https://gitlab.com/api/v4/projects/15363819/members","repo_branches":"https://gitlab.com/api/v4/projects/15363819/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/15363819/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/15363819/merge_requests"},"mirror":false,"topics":["hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/cloud-deploy","archived":false,"tag_list":["hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2019-11-15T13:06:35.713Z","creator_id":4192493,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/cloud-deploy/-/blob/master/README.md","star_count":56,"updated_at":"2026-05-13T00:43:41.773Z","visibility":"public","description":"Docker images for deployments on major cloud platforms (GCP, Azure, AWS)","forks_count":51,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/cloud-deploy.git","description_html":"<p data-sourcepos=\"1:1-1:72\" dir=\"auto\">Docker images for deployments on major cloud platforms (GCP, Azure, AWS)</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/cloud-deploy.git","last_activity_at":"2026-05-13T00:43:41.773Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":15,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / cloud-deploy","path_with_namespace":"gitlab-org/cloud-deploy","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/cloud-deploy","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":15297693,"name":"GraphQL Sandbox","path":"graphql-sandbox","_links":{"self":"https://gitlab.com/api/v4/projects/15297693","events":"https://gitlab.com/api/v4/projects/15297693/events","issues":"https://gitlab.com/api/v4/projects/15297693/issues","labels":"https://gitlab.com/api/v4/projects/15297693/labels","members":"https://gitlab.com/api/v4/projects/15297693/members","repo_branches":"https://gitlab.com/api/v4/projects/15297693/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/15297693/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/15297693/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/graphql-sandbox","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2019-11-12T05:16:45.085Z","creator_id":3717078,"empty_repo":true,"star_count":1,"updated_at":"2026-04-21T20:28:20.484Z","visibility":"public","description":"This project only exists as a testbed for trying out GraphQL queries without affecting production.","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"main","emails_enabled":false,"issues_enabled":true,"emails_disabled":true,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/graphql-sandbox.git","description_html":"<p data-sourcepos=\"1:1-1:98\" dir=\"auto\">This project only exists as a testbed for trying out GraphQL queries without affecting production.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/graphql-sandbox.git","last_activity_at":"2026-04-21T20:28:20.484Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":15,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GraphQL Sandbox","path_with_namespace":"gitlab-org/graphql-sandbox","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/graphql-sandbox","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":15158038,"name":"dylangriffith-security-test","path":"dylangriffith-security-test","_links":{"self":"https://gitlab.com/api/v4/projects/15158038","events":"https://gitlab.com/api/v4/projects/15158038/events","labels":"https://gitlab.com/api/v4/projects/15158038/labels","members":"https://gitlab.com/api/v4/projects/15158038/members","repo_branches":"https://gitlab.com/api/v4/projects/15158038/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/15158038/cluster_agents"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/dylangriffith-security-test","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2019-11-04T05:52:36.175Z","creator_id":120073,"empty_repo":false,"star_count":1,"updated_at":"2026-03-06T07:46:09.302Z","visibility":"public","description":"This should be deleted once I've confirmed we've fixed something","lfs_enabled":true,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/dylangriffith-security-test.git","description_html":"<p data-sourcepos=\"1:1-1:64\" dir=\"auto\">This should be deleted once I've confirmed we've fixed something</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/dylangriffith-security-test.git","last_activity_at":"2026-03-06T07:46:09.302Z","packages_enabled":true,"snippets_enabled":false,"wiki_access_level":"private","pages_access_level":"private","shared_with_groups":[],"builds_access_level":"private","issues_access_level":"private","name_with_namespace":"GitLab.org / dylangriffith-security-test","path_with_namespace":"gitlab-org/dylangriffith-security-test","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"private","snippets_access_level":"private","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"private","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"private","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/dylangriffith-security-test","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":14771920,"name":"GitLab-Git","path":"gitlab-git","_links":{"self":"https://gitlab.com/api/v4/projects/14771920","events":"https://gitlab.com/api/v4/projects/14771920/events","issues":"https://gitlab.com/api/v4/projects/14771920/issues","labels":"https://gitlab.com/api/v4/projects/14771920/labels","members":"https://gitlab.com/api/v4/projects/14771920/members","repo_branches":"https://gitlab.com/api/v4/projects/14771920/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/14771920/cluster_agents"},"mirror":true,"topics":["git"],"web_url":"https://gitlab.com/gitlab-org/gitlab-git","archived":false,"tag_list":["git"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2019-10-11T13:41:11.853Z","creator_id":138401,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-git/-/blob/master/README.md","star_count":4,"updated_at":"2026-01-28T00:07:23.375Z","visibility":"public","description":"GitLab version of Git. (deprecated)\r\n\r\nNOTE: https://gitlab.com/gitlab-org/git will be used for git development at GitLab","forks_count":2,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":false,"import_status":"failed","squash_option":"default_off","ci_config_path":"https://gitlab.com/gitlab-org/gitlab-git/-/raw/gl-custom/.gitlab-ci.yml","default_branch":"master","emails_enabled":true,"issues_enabled":true,"mirror_user_id":1902115,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-git.git","description_html":"<p data-sourcepos=\"1:1-1:35\" dir=\"auto\">GitLab version of Git. (deprecated)</p>&#x000A;<p data-sourcepos=\"3:1-3:82\" dir=\"auto\">NOTE: <a href=\"https://gitlab.com/gitlab-org/git\">https://gitlab.com/gitlab-org/git</a> will be used for git development at GitLab</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-git.git","last_activity_at":"2026-01-28T00:07:23.375Z","packages_enabled":false,"snippets_enabled":false,"open_issues_count":1,"wiki_access_level":"disabled","pages_access_level":"disabled","shared_with_groups":[],"builds_access_level":"disabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab-Git","path_with_namespace":"gitlab-org/gitlab-git","forking_access_level":"disabled","merge_trains_enabled":false,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"mirror_trigger_builds":true,"releases_access_level":"disabled","snippets_access_level":"disabled","analytics_access_level":"disabled","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"disabled","container_registry_enabled":false,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":false,"can_create_merge_request_in":false,"infrastructure_access_level":"disabled","merge_requests_access_level":"disabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","only_mirror_protected_branches":false,"spp_repository_pipeline_access":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-git","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"resolve_outdated_diff_discussions":false,"mirror_overwrites_diverged_branches":true,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"disabled","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":14694517,"name":"iglu","path":"iglu","_links":{"self":"https://gitlab.com/api/v4/projects/14694517","events":"https://gitlab.com/api/v4/projects/14694517/events","labels":"https://gitlab.com/api/v4/projects/14694517/labels","members":"https://gitlab.com/api/v4/projects/14694517/members","repo_branches":"https://gitlab.com/api/v4/projects/14694517/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/14694517/cluster_agents"},"mirror":false,"topics":["hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/iglu","archived":false,"tag_list":["hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/14694517/iglu-gitlab.png","created_at":"2019-10-07T15:15:45.396Z","creator_id":4409816,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/iglu/-/blob/master/README.md","star_count":4,"updated_at":"2026-06-02T15:27:56.562Z","visibility":"public","description":"Iglu Schema Registry for https://gitlab-org.gitlab.io/iglu","forks_count":7,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"failed","squash_option":"default_on","default_branch":"master","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/iglu.git","description_html":"<p data-sourcepos=\"1:1-1:58\" dir=\"auto\">Iglu Schema Registry for <a href=\"https://gitlab-org.gitlab.io/iglu\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://gitlab-org.gitlab.io/iglu</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/iglu.git","last_activity_at":"2026-06-02T15:17:42.966Z","packages_enabled":true,"snippets_enabled":true,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"private","name_with_namespace":"GitLab.org / iglu","path_with_namespace":"gitlab-org/iglu","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":1,"merge_requests_enabled":false,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"disabled","suggestion_commit_message":"","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"private","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/iglu","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":14520336,"name":"test-transfer-project","path":"test-transfer-project","_links":{"self":"https://gitlab.com/api/v4/projects/14520336","events":"https://gitlab.com/api/v4/projects/14520336/events","issues":"https://gitlab.com/api/v4/projects/14520336/issues","labels":"https://gitlab.com/api/v4/projects/14520336/labels","members":"https://gitlab.com/api/v4/projects/14520336/members","repo_branches":"https://gitlab.com/api/v4/projects/14520336/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/14520336/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/14520336/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/test-transfer-project","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2019-09-26T18:06:44.025Z","creator_id":3385446,"empty_repo":true,"star_count":1,"updated_at":"2026-01-07T10:17:51.265Z","visibility":"public","description":"Testing transferring a project.","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/test-transfer-project.git","description_html":"<p data-sourcepos=\"1:1-1:31\" dir=\"auto\">Testing transferring a project.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/test-transfer-project.git","last_activity_at":"2026-01-07T10:17:51.265Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / test-transfer-project","path_with_namespace":"gitlab-org/test-transfer-project","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/test-transfer-project","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":14378900,"name":"gitlab-orchestrator","path":"gitlab-orchestrator","_links":{"self":"https://gitlab.com/api/v4/projects/14378900","events":"https://gitlab.com/api/v4/projects/14378900/events","issues":"https://gitlab.com/api/v4/projects/14378900/issues","labels":"https://gitlab.com/api/v4/projects/14378900/labels","members":"https://gitlab.com/api/v4/projects/14378900/members","repo_branches":"https://gitlab.com/api/v4/projects/14378900/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/14378900/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/14378900/merge_requests"},"mirror":false,"topics":["hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/gitlab-orchestrator","archived":true,"tag_list":["hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2019-09-18T20:29:01.725Z","creator_id":2602134,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-orchestrator/-/blob/master/README.md","star_count":18,"updated_at":"2026-01-07T10:17:49.857Z","visibility":"public","description":"A project to orchestrate installations of GitLab for internal testing, customer sites, and any other applicable use cases.","forks_count":3,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-orchestrator.git","description_html":"<p data-sourcepos=\"1:1-1:122\" dir=\"auto\">A project to orchestrate installations of GitLab for internal testing, customer sites, and any other applicable use cases.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-orchestrator.git","last_activity_at":"2026-01-07T10:17:49.857Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":68,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"private","issues_access_level":"enabled","name_with_namespace":"GitLab.org / gitlab-orchestrator","path_with_namespace":"gitlab-org/gitlab-orchestrator","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-orchestrator","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":14292404,"name":"GitLab Environment Toolkit","path":"gitlab-environment-toolkit","_links":{"self":"https://gitlab.com/api/v4/projects/14292404","events":"https://gitlab.com/api/v4/projects/14292404/events","issues":"https://gitlab.com/api/v4/projects/14292404/issues","labels":"https://gitlab.com/api/v4/projects/14292404/labels","members":"https://gitlab.com/api/v4/projects/14292404/members","repo_branches":"https://gitlab.com/api/v4/projects/14292404/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/14292404/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/14292404/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-environment-toolkit","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/14292404/tanuki-blueprint.png","created_at":"2019-09-13T12:52:36.365Z","creator_id":3769272,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-environment-toolkit/-/blob/main/README.md","star_count":274,"updated_at":"2026-06-02T16:07:39.836Z","visibility":"public","description":"The GitLab Environment Toolkit (`GET`) is a set of opinionated [Terraform](https://www.terraform.io/) and [Ansible](https://www.ansible.com/) scripts to assist with deploying scaled GitLab environments following the [Reference Architectures](https://docs.gitlab.com/ee/administration/reference_architectures).\r\n\r\nOwners: [GitLab Delivery - Operate](https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/gitlab-delivery/)","forks_count":221,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-environment-toolkit.git","description_html":"<p data-sourcepos=\"1:1-1:309\" dir=\"auto\">The GitLab Environment Toolkit (GET) is a set of opinionated <a data-sourcepos=\"1:64-1:101\" href=\"https://www.terraform.io/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">Terraform</a> and <a data-sourcepos=\"1:107-1:141\" href=\"https://www.ansible.com/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">Ansible</a> scripts to assist with deploying scaled GitLab environments following the <a data-sourcepos=\"1:217-1:308\" href=\"https://docs.gitlab.com/ee/administration/reference_architectures\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">Reference Architectures</a>.</p>&#x000A;<p data-sourcepos=\"3:1-3:127\" dir=\"auto\">Owners: <a data-sourcepos=\"3:9-3:127\" href=\"https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/gitlab-delivery/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">GitLab Delivery - Operate</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-environment-toolkit.git","last_activity_at":"2026-06-02T16:07:39.836Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":59,"wiki_access_level":"private","pages_access_level":"disabled","shared_with_groups":[],"builds_access_level":"private","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Environment Toolkit","path_with_namespace":"gitlab-org/gitlab-environment-toolkit","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"private","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"disabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"disabled","merge_requests_access_level":"enabled","model_registry_access_level":"disabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"disabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-environment-toolkit","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false}],"full_name":"GitLab.org","full_path":"gitlab-org","avatar_url":"https://gitlab.com/uploads/-/system/group/avatar/9970/project_avatar.png","created_at":"2013-09-26T06:02:04.000Z","visibility":"public","description":"Open source software to collaborate on code","lfs_enabled":true,"emails_enabled":true,"emails_disabled":false,"membership_lock":false,"organization_id":1,"shared_projects":[{"id":75577641,"name":"Duo Agent Platform Feature Matrix","path":"duo-agent-platform-feature-matrix","_links":{"self":"https://gitlab.com/api/v4/projects/75577641","events":"https://gitlab.com/api/v4/projects/75577641/events","issues":"https://gitlab.com/api/v4/projects/75577641/issues","labels":"https://gitlab.com/api/v4/projects/75577641/labels","members":"https://gitlab.com/api/v4/projects/75577641/members","repo_branches":"https://gitlab.com/api/v4/projects/75577641/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/75577641/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/75577641/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-com/cs-tools/gitlab-cs-tools/duo-agent-platform-feature-matrix","archived":false,"tag_list":[],"namespace":{"id":4475074,"kind":"group","name":"gitlab-cs-tools","path":"gitlab-cs-tools","web_url":"https://gitlab.com/groups/gitlab-com/cs-tools/gitlab-cs-tools","full_path":"gitlab-com/cs-tools/gitlab-cs-tools","parent_id":10575238},"created_at":"2025-10-24T17:31:12.789Z","creator_id":21348127,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-com/cs-tools/gitlab-cs-tools/duo-agent-platform-feature-matrix/-/blob/main/README.md","star_count":2,"updated_at":"2026-03-17T17:25:21.927Z","visibility":"public","forks_count":3,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-com/cs-tools/gitlab-cs-tools/duo-agent-platform-feature-matrix.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-com/cs-tools/gitlab-cs-tools/duo-agent-platform-feature-matrix.git","last_activity_at":"2026-03-17T17:25:21.927Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":2,"wiki_access_level":"enabled","pages_access_level":"private","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":20}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.com / cs-tools / gitlab-cs-tools / Duo Agent Platform Feature Matrix","path_with_namespace":"gitlab-com/cs-tools/gitlab-cs-tools/duo-agent-platform-feature-matrix","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2025-10-25T17:31:12.821Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":true,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-com/cs-tools/gitlab-cs-tools/duo-agent-platform-feature-matrix","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":43186173,"name":"gitlab-org-gitlab-issue-390084","path":"gitlab-org-gitlab-issue-390084","owner":{"id":12734622,"name":"Erran Carey","state":"active","locked":false,"web_url":"https://gitlab.com/erran","username":"erran","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/12734622/avatar.png","public_email":"ecarey@gitlab.com"},"_links":{"self":"https://gitlab.com/api/v4/projects/43186173","events":"https://gitlab.com/api/v4/projects/43186173/events","issues":"https://gitlab.com/api/v4/projects/43186173/issues","labels":"https://gitlab.com/api/v4/projects/43186173/labels","members":"https://gitlab.com/api/v4/projects/43186173/members","repo_branches":"https://gitlab.com/api/v4/projects/43186173/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/43186173/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/43186173/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/erran/gitlab-org-gitlab-issue-390084","archived":false,"tag_list":[],"namespace":{"id":58824017,"kind":"user","name":"Erran Carey","path":"erran","web_url":"https://gitlab.com/erran","full_path":"erran","avatar_url":"/uploads/-/system/user/avatar/12734622/avatar.png"},"created_at":"2023-02-03T16:26:07.997Z","creator_id":12734622,"empty_repo":false,"readme_url":"https://gitlab.com/erran/gitlab-org-gitlab-issue-390084/-/blob/main/README.md","star_count":2,"updated_at":"2025-01-14T12:44:21.790Z","visibility":"public","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:erran/gitlab-org-gitlab-issue-390084.git","description_html":"","http_url_to_repo":"https://gitlab.com/erran/gitlab-org-gitlab-issue-390084.git","last_activity_at":"2023-02-11T00:11:21.913Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"Erran Carey / gitlab-org-gitlab-issue-390084","path_with_namespace":"erran/gitlab-org-gitlab-issue-390084","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2023-02-04T16:26:08.052Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/erran/gitlab-org-gitlab-issue-390084","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":31742899,"name":"CI Template File","path":"ci-template-file","owner":{"id":4310743,"name":"Seth Berger","state":"active","locked":false,"web_url":"https://gitlab.com/sethgitlab","username":"sethgitlab","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/4310743/avatar.png","public_email":""},"_links":{"self":"https://gitlab.com/api/v4/projects/31742899","events":"https://gitlab.com/api/v4/projects/31742899/events","issues":"https://gitlab.com/api/v4/projects/31742899/issues","labels":"https://gitlab.com/api/v4/projects/31742899/labels","members":"https://gitlab.com/api/v4/projects/31742899/members","repo_branches":"https://gitlab.com/api/v4/projects/31742899/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/31742899/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/31742899/merge_requests"},"topics":[],"web_url":"https://gitlab.com/sethgitlab/ci-template-file","archived":false,"tag_list":[],"namespace":{"id":5648599,"kind":"user","name":"Seth Berger","path":"sethgitlab","web_url":"https://gitlab.com/sethgitlab","full_path":"sethgitlab","avatar_url":"/uploads/-/system/user/avatar/4310743/avatar.png"},"created_at":"2021-11-30T23:14:01.352Z","creator_id":4310743,"empty_repo":false,"readme_url":"https://gitlab.com/sethgitlab/ci-template-file/-/blob/main/README.md","star_count":1,"updated_at":"2024-01-21T06:51:47.478Z","visibility":"public","description":"","forks_count":3,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:sethgitlab/ci-template-file.git","description_html":"","http_url_to_repo":"https://gitlab.com/sethgitlab/ci-template-file.git","last_activity_at":"2021-12-02T00:36:06.149Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"Seth Berger / CI Template File","path_with_namespace":"sethgitlab/ci-template-file","forking_access_level":"enabled","monitor_access_level":"enabled","requirements_enabled":false,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"repository_access_level":"enabled","repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-12-01T23:14:01.371Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","package_registry_access_level":"public","enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/sethgitlab/ci-template-file","security_and_compliance_enabled":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_discussions_are_resolved":false},{"id":26761713,"name":"Feature Flags","path":"feature-flags","owner":{"id":1125848,"name":"Sam Beckham","state":"active","locked":false,"web_url":"https://gitlab.com/samdbeckham","username":"samdbeckham","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1125848/avatar.png","public_email":"sbeckham@gitlab.com"},"_links":{"self":"https://gitlab.com/api/v4/projects/26761713","events":"https://gitlab.com/api/v4/projects/26761713/events","issues":"https://gitlab.com/api/v4/projects/26761713/issues","labels":"https://gitlab.com/api/v4/projects/26761713/labels","members":"https://gitlab.com/api/v4/projects/26761713/members","repo_branches":"https://gitlab.com/api/v4/projects/26761713/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/26761713/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/26761713/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/samdbeckham/feature-flags","archived":false,"tag_list":[],"namespace":{"id":1337771,"kind":"user","name":"Sam Beckham","path":"samdbeckham","web_url":"https://gitlab.com/samdbeckham","full_path":"samdbeckham","avatar_url":"/uploads/-/system/user/avatar/1125848/avatar.png"},"created_at":"2021-05-19T09:06:14.963Z","creator_id":1125848,"empty_repo":false,"readme_url":"https://gitlab.com/samdbeckham/feature-flags/-/blob/main/README.md","star_count":4,"updated_at":"2026-01-09T15:13:25.602Z","visibility":"public","description":"App: https://samdbeckham.gitlab.io/feature-flags/","forks_count":7,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:samdbeckham/feature-flags.git","description_html":"<p data-sourcepos=\"1:1-1:49\" dir=\"auto\">App: <a href=\"https://samdbeckham.gitlab.io/feature-flags/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://samdbeckham.gitlab.io/feature-flags/</a></p>","http_url_to_repo":"https://gitlab.com/samdbeckham/feature-flags.git","last_activity_at":"2026-01-09T15:13:25.602Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":6,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"Sam Beckham / Feature Flags","path_with_namespace":"samdbeckham/feature-flags","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-05-20T09:06:15.048Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/samdbeckham/feature-flags","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":25347179,"name":"security-report-tests","path":"security-report-tests","_links":{"self":"https://gitlab.com/api/v4/projects/25347179","events":"https://gitlab.com/api/v4/projects/25347179/events","issues":"https://gitlab.com/api/v4/projects/25347179/issues","labels":"https://gitlab.com/api/v4/projects/25347179/labels","members":"https://gitlab.com/api/v4/projects/25347179/members","repo_branches":"https://gitlab.com/api/v4/projects/25347179/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/25347179/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/25347179/merge_requests"},"topics":[],"web_url":"https://gitlab.com/group-thiagocsf/demo/security-report-tests","archived":false,"tag_list":[],"namespace":{"id":8334378,"kind":"group","name":"Demo","path":"demo","web_url":"https://gitlab.com/groups/group-thiagocsf/demo","full_path":"group-thiagocsf/demo","parent_id":7977151},"created_at":"2021-03-22T22:19:38.334Z","creator_id":480804,"empty_repo":false,"readme_url":"https://gitlab.com/group-thiagocsf/demo/security-report-tests/-/blob/master/README.md","star_count":3,"updated_at":"2024-11-30T20:19:24.662Z","visibility":"public","description":"","forks_count":4,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":true,"ssh_url_to_repo":"git@gitlab.com:group-thiagocsf/demo/security-report-tests.git","description_html":"","http_url_to_repo":"https://gitlab.com/group-thiagocsf/demo/security-report-tests.git","last_activity_at":"2024-11-30T20:19:24.662Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"group-thiagocsf / Demo / security-report-tests","path_with_namespace":"group-thiagocsf/demo/security-report-tests","forking_access_level":"enabled","monitor_access_level":"enabled","requirements_enabled":false,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"repository_access_level":"enabled","repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":false,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-03-23T22:19:38.383Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","package_registry_access_level":"public","enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/group-thiagocsf/demo/security-report-tests","security_and_compliance_enabled":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_discussions_are_resolved":false},{"id":21597602,"name":"🧪 Test","path":"test","owner":{"id":1125848,"name":"Sam Beckham","state":"active","locked":false,"web_url":"https://gitlab.com/samdbeckham","username":"samdbeckham","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/1125848/avatar.png","public_email":"sbeckham@gitlab.com"},"_links":{"self":"https://gitlab.com/api/v4/projects/21597602","events":"https://gitlab.com/api/v4/projects/21597602/events","issues":"https://gitlab.com/api/v4/projects/21597602/issues","labels":"https://gitlab.com/api/v4/projects/21597602/labels","members":"https://gitlab.com/api/v4/projects/21597602/members","repo_branches":"https://gitlab.com/api/v4/projects/21597602/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/21597602/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/21597602/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/samdbeckham/test","archived":false,"tag_list":[],"namespace":{"id":1337771,"kind":"user","name":"Sam Beckham","path":"samdbeckham","web_url":"https://gitlab.com/samdbeckham","full_path":"samdbeckham","avatar_url":"/uploads/-/system/user/avatar/1125848/avatar.png"},"created_at":"2020-10-06T10:21:01.258Z","creator_id":1125848,"empty_repo":false,"readme_url":"https://gitlab.com/samdbeckham/test/-/blob/master/README.md","star_count":4,"updated_at":"2025-10-07T14:39:02.433Z","visibility":"public","description":"<img src=\"https://picsum.photos/200/300\" />","forks_count":13,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:samdbeckham/test.git","description_html":"","http_url_to_repo":"https://gitlab.com/samdbeckham/test.git","last_activity_at":"2025-10-07T14:39:02.371Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":14,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"Sam Beckham / 🧪 Test","path_with_namespace":"samdbeckham/test","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-20T06:33:44.338Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/samdbeckham/test","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":20428564,"name":"GitOps Test Manifest","path":"gitops-test-manifest","owner":{"id":4545061,"name":"Viktor Nagy  (GitLab)","state":"blocked","locked":false,"web_url":"https://gitlab.com/nagyv-gitlab","username":"nagyv-gitlab","avatar_url":"https://secure.gravatar.com/avatar/3aa854d27ca43a2804b3c3e9483518ee968fafcf71173c3c8e4ef20fb510691d?s=80&d=identicon","public_email":"vnagy@gitlab.com"},"_links":{"self":"https://gitlab.com/api/v4/projects/20428564","events":"https://gitlab.com/api/v4/projects/20428564/events","issues":"https://gitlab.com/api/v4/projects/20428564/issues","labels":"https://gitlab.com/api/v4/projects/20428564/labels","members":"https://gitlab.com/api/v4/projects/20428564/members","repo_branches":"https://gitlab.com/api/v4/projects/20428564/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/20428564/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/20428564/merge_requests"},"topics":[],"web_url":"https://gitlab.com/nagyv-gitlab/gitops-test-manifest","archived":false,"tag_list":[],"namespace":{"id":5968652,"kind":"user","name":"Viktor Nagy  (GitLab)","path":"nagyv-gitlab","web_url":"https://gitlab.com/nagyv-gitlab","full_path":"nagyv-gitlab","avatar_url":"https://secure.gravatar.com/avatar/3aa854d27ca43a2804b3c3e9483518ee968fafcf71173c3c8e4ef20fb510691d?s=80&d=identicon"},"created_at":"2020-08-09T10:26:00.118Z","creator_id":4545061,"empty_repo":false,"readme_url":"https://gitlab.com/nagyv-gitlab/gitops-test-manifest/-/blob/master/README.md","star_count":1,"updated_at":"2023-12-08T11:05:44.895Z","visibility":"public","description":"","forks_count":4,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:nagyv-gitlab/gitops-test-manifest.git","description_html":"","http_url_to_repo":"https://gitlab.com/nagyv-gitlab/gitops-test-manifest.git","last_activity_at":"2023-02-05T01:51:32.235Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"Viktor Nagy  (GitLab) / GitOps Test Manifest","path_with_namespace":"nagyv-gitlab/gitops-test-manifest","forking_access_level":"enabled","monitor_access_level":"enabled","requirements_enabled":false,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"repository_access_level":"enabled","repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-20T20:58:56.100Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","package_registry_access_level":"public","enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/nagyv-gitlab/gitops-test-manifest","security_and_compliance_enabled":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_discussions_are_resolved":false},{"id":19080884,"name":"gitops-test","path":"gitops-test","owner":{"id":4545061,"name":"Viktor Nagy  (GitLab)","state":"blocked","locked":false,"web_url":"https://gitlab.com/nagyv-gitlab","username":"nagyv-gitlab","avatar_url":"https://secure.gravatar.com/avatar/3aa854d27ca43a2804b3c3e9483518ee968fafcf71173c3c8e4ef20fb510691d?s=80&d=identicon","public_email":"vnagy@gitlab.com"},"_links":{"self":"https://gitlab.com/api/v4/projects/19080884","events":"https://gitlab.com/api/v4/projects/19080884/events","issues":"https://gitlab.com/api/v4/projects/19080884/issues","labels":"https://gitlab.com/api/v4/projects/19080884/labels","members":"https://gitlab.com/api/v4/projects/19080884/members","repo_branches":"https://gitlab.com/api/v4/projects/19080884/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/19080884/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/19080884/merge_requests"},"topics":[],"web_url":"https://gitlab.com/nagyv-gitlab/gitops-test","archived":false,"tag_list":[],"namespace":{"id":5968652,"kind":"user","name":"Viktor Nagy  (GitLab)","path":"nagyv-gitlab","web_url":"https://gitlab.com/nagyv-gitlab","full_path":"nagyv-gitlab","avatar_url":"https://secure.gravatar.com/avatar/3aa854d27ca43a2804b3c3e9483518ee968fafcf71173c3c8e4ef20fb510691d?s=80&d=identicon"},"created_at":"2020-05-29T22:01:33.331Z","creator_id":4545061,"empty_repo":false,"readme_url":"https://gitlab.com/nagyv-gitlab/gitops-test/-/blob/master/README.md","star_count":1,"updated_at":"2023-12-12T03:39:29.335Z","visibility":"public","description":"","forks_count":5,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:nagyv-gitlab/gitops-test.git","description_html":"","http_url_to_repo":"https://gitlab.com/nagyv-gitlab/gitops-test.git","last_activity_at":"2020-10-31T12:37:25.836Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"Viktor Nagy  (GitLab) / gitops-test","path_with_namespace":"nagyv-gitlab/gitops-test","forking_access_level":"enabled","monitor_access_level":"enabled","requirements_enabled":false,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"repository_access_level":"enabled","repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"older_than":"90d","next_run_at":"2020-10-29T18:53:22.647Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","package_registry_access_level":"public","enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/nagyv-gitlab/gitops-test","security_and_compliance_enabled":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_discussions_are_resolved":false},{"id":18505515,"name":"gitlab-cloud-native-operator-configuration","path":"gitlab-cloud-native-operator-configuration","owner":{"id":4545061,"name":"Viktor Nagy  (GitLab)","state":"blocked","locked":false,"web_url":"https://gitlab.com/nagyv-gitlab","username":"nagyv-gitlab","avatar_url":"https://secure.gravatar.com/avatar/3aa854d27ca43a2804b3c3e9483518ee968fafcf71173c3c8e4ef20fb510691d?s=80&d=identicon","public_email":"vnagy@gitlab.com"},"_links":{"self":"https://gitlab.com/api/v4/projects/18505515","events":"https://gitlab.com/api/v4/projects/18505515/events","issues":"https://gitlab.com/api/v4/projects/18505515/issues","labels":"https://gitlab.com/api/v4/projects/18505515/labels","members":"https://gitlab.com/api/v4/projects/18505515/members","repo_branches":"https://gitlab.com/api/v4/projects/18505515/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/18505515/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/18505515/merge_requests"},"topics":[],"web_url":"https://gitlab.com/nagyv-gitlab/gitlab-cloud-native-operator-configuration","archived":false,"tag_list":[],"namespace":{"id":5968652,"kind":"user","name":"Viktor Nagy  (GitLab)","path":"nagyv-gitlab","web_url":"https://gitlab.com/nagyv-gitlab","full_path":"nagyv-gitlab","avatar_url":"https://secure.gravatar.com/avatar/3aa854d27ca43a2804b3c3e9483518ee968fafcf71173c3c8e4ef20fb510691d?s=80&d=identicon"},"created_at":"2020-04-30T14:34:44.291Z","creator_id":4545061,"empty_repo":false,"readme_url":"https://gitlab.com/nagyv-gitlab/gitlab-cloud-native-operator-configuration/-/blob/master/README.md","star_count":1,"updated_at":"2025-01-03T08:02:04.671Z","visibility":"public","description":"","forks_count":7,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:nagyv-gitlab/gitlab-cloud-native-operator-configuration.git","description_html":"","http_url_to_repo":"https://gitlab.com/nagyv-gitlab/gitlab-cloud-native-operator-configuration.git","last_activity_at":"2025-01-03T08:02:04.671Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"Viktor Nagy  (GitLab) / gitlab-cloud-native-operator-configuration","path_with_namespace":"nagyv-gitlab/gitlab-cloud-native-operator-configuration","forking_access_level":"enabled","monitor_access_level":"enabled","requirements_enabled":false,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"repository_access_level":"enabled","repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-10-23T10:30:45.560Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","package_registry_access_level":"public","enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/nagyv-gitlab/gitlab-cloud-native-operator-configuration","security_and_compliance_enabled":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_discussions_are_resolved":false},{"id":15904902,"name":"Managers","path":"managers","_links":{"self":"https://gitlab.com/api/v4/projects/15904902","events":"https://gitlab.com/api/v4/projects/15904902/events","issues":"https://gitlab.com/api/v4/projects/15904902/issues","labels":"https://gitlab.com/api/v4/projects/15904902/labels","members":"https://gitlab.com/api/v4/projects/15904902/members","repo_branches":"https://gitlab.com/api/v4/projects/15904902/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/15904902/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/15904902/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-data/managers","archived":false,"tag_list":[],"namespace":{"id":4347861,"kind":"group","name":"GitLab Data","path":"gitlab-data","web_url":"https://gitlab.com/groups/gitlab-data","full_path":"gitlab-data","avatar_url":"/uploads/-/system/group/avatar/4347861/data.png"},"created_at":"2019-12-16T19:38:30.029Z","creator_id":1942272,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-data/managers/-/blob/master/README.md","star_count":4,"updated_at":"2026-03-25T09:11:43.120Z","visibility":"public","description":"Primarily an issue tracker for Data Team Managers","forks_count":7,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-data/managers.git","description_html":"<p data-sourcepos=\"1:1-1:49\" dir=\"auto\">Primarily an issue tracker for Data Team Managers</p>","http_url_to_repo":"https://gitlab.com/gitlab-data/managers.git","last_activity_at":"2026-03-25T09:11:43.120Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":20}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab Data / Managers","path_with_namespace":"gitlab-data/managers","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-data/managers","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":12466351,"name":"GitLab Enterprise Edition","path":"gitlab-ee","owner":{"id":3614858,"name":"Alex Kalderimis","state":"active","locked":false,"web_url":"https://gitlab.com/alexkalderimis","username":"alexkalderimis","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/3614858/avatar.png","public_email":""},"_links":{"self":"https://gitlab.com/api/v4/projects/12466351","events":"https://gitlab.com/api/v4/projects/12466351/events","issues":"https://gitlab.com/api/v4/projects/12466351/issues","labels":"https://gitlab.com/api/v4/projects/12466351/labels","members":"https://gitlab.com/api/v4/projects/12466351/members","repo_branches":"https://gitlab.com/api/v4/projects/12466351/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/12466351/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/12466351/merge_requests"},"topics":[],"web_url":"https://gitlab.com/alexkalderimis/gitlab-ee","archived":false,"tag_list":[],"namespace":{"id":4700782,"kind":"user","name":"Alex Kalderimis","path":"alexkalderimis","web_url":"https://gitlab.com/alexkalderimis","full_path":"alexkalderimis","avatar_url":"/uploads/-/system/user/avatar/3614858/avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/12466351/ee_repo_logo.png","created_at":"2019-05-22T15:45:33.842Z","creator_id":3614858,"empty_repo":false,"readme_url":"https://gitlab.com/alexkalderimis/gitlab-ee/-/blob/master/README.md","star_count":3,"updated_at":"2024-11-05T04:50:45.588Z","visibility":"public","description":"GitLab Enterprise Edition","forks_count":7,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:alexkalderimis/gitlab-ee.git","description_html":"<p data-sourcepos=\"1:1-1:25\" dir=\"auto\">GitLab Enterprise Edition</p>","http_url_to_repo":"https://gitlab.com/alexkalderimis/gitlab-ee.git","last_activity_at":"2024-11-05T04:50:45.588Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","forked_from_project":{"id":278964,"name":"GitLab","path":"gitlab","topics":["hacktoberfest","javascript","ruby","vue.js"],"web_url":"https://gitlab.com/gitlab-org/gitlab","tag_list":["hacktoberfest","javascript","ruby","vue.js"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/278964/project_avatar.png","created_at":"2015-05-20T10:47:11.949Z","readme_url":"https://gitlab.com/gitlab-org/gitlab/-/blob/master/README.md","star_count":6031,"visibility":"public","description":"GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider.","forks_count":12141,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab.git","last_activity_at":"2026-06-02T16:25:33.058Z","name_with_namespace":"GitLab.org / GitLab","path_with_namespace":"gitlab-org/gitlab"},"issues_access_level":"enabled","name_with_namespace":"Alex Kalderimis / GitLab Enterprise Edition","path_with_namespace":"alexkalderimis/gitlab-ee","forking_access_level":"enabled","monitor_access_level":"enabled","requirements_enabled":false,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","merge_requests_enabled":true,"mr_default_target_self":false,"request_access_enabled":false,"shared_runners_enabled":true,"repository_access_level":"enabled","repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","package_registry_access_level":"public","enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/alexkalderimis/gitlab-ee","security_and_compliance_enabled":false,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_discussions_are_resolved":false},{"id":6329546,"name":"auto-deploy-app - Archived","path":"auto-deploy-app","_links":{"self":"https://gitlab.com/api/v4/projects/6329546","events":"https://gitlab.com/api/v4/projects/6329546/events","issues":"https://gitlab.com/api/v4/projects/6329546/issues","labels":"https://gitlab.com/api/v4/projects/6329546/labels","members":"https://gitlab.com/api/v4/projects/6329546/members","repo_branches":"https://gitlab.com/api/v4/projects/6329546/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/6329546/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/6329546/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/charts/auto-deploy-app","archived":true,"tag_list":[],"namespace":{"id":1400979,"kind":"group","name":"charts","path":"charts","web_url":"https://gitlab.com/groups/charts","full_path":"charts"},"created_at":"2018-05-09T17:40:44.718Z","creator_id":42196,"empty_repo":false,"readme_url":"https://gitlab.com/charts/auto-deploy-app/-/blob/master/README.md","star_count":18,"updated_at":"2024-01-19T07:47:49.927Z","visibility":"public","description":"Archived: This project has moved to https://gitlab.com/gitlab-org/charts/auto-deploy-app","forks_count":56,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:charts/auto-deploy-app.git","description_html":"<p data-sourcepos=\"1:1-1:88\" dir=\"auto\">Archived: This project has moved to <a href=\"https://gitlab.com/gitlab-org/charts/auto-deploy-app\">https://gitlab.com/gitlab-org/charts/auto-deploy-app</a></p>","http_url_to_repo":"https://gitlab.com/charts/auto-deploy-app.git","last_activity_at":"2019-04-18T05:11:00.918Z","snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"charts / auto-deploy-app - Archived","path_with_namespace":"charts/auto-deploy-app","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/charts/auto-deploy-app","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":6102100,"name":"security-reports","path":"security-reports","_links":{"self":"https://gitlab.com/api/v4/projects/6102100","events":"https://gitlab.com/api/v4/projects/6102100/events","issues":"https://gitlab.com/api/v4/projects/6102100/issues","labels":"https://gitlab.com/api/v4/projects/6102100/labels","members":"https://gitlab.com/api/v4/projects/6102100/members","repo_branches":"https://gitlab.com/api/v4/projects/6102100/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/6102100/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/6102100/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-examples/security/security-reports","archived":false,"tag_list":[],"namespace":{"id":2370953,"kind":"group","name":"security","path":"security","web_url":"https://gitlab.com/groups/gitlab-examples/security","full_path":"gitlab-examples/security","parent_id":349181},"created_at":"2018-04-17T10:03:53.438Z","creator_id":1273957,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-examples/security/security-reports/-/blob/main/README.md","star_count":28,"updated_at":"2026-05-12T21:15:44.216Z","visibility":"public","description":"","forks_count":109,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-examples/security/security-reports.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-examples/security/security-reports.git","last_activity_at":"2026-05-12T21:15:44.216Z","packages_enabled":false,"snippets_enabled":true,"open_issues_count":18,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30},{"group_id":3455548,"group_name":"Application Security Testing Stage","group_full_path":"gitlab-org/secure","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab-examples / security / security-reports","path_with_namespace":"gitlab-examples/security/security-reports","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"issue_branch_template":"","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-examples/security/security-reports","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":false,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":true,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":5776166,"name":"GitLab Enterprise Edition","path":"gitlab-ee","owner":{"id":171554,"name":"Bob Van Landuyt","state":"active","locked":false,"web_url":"https://gitlab.com/reprazent","username":"reprazent","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/171554/avatar.png","public_email":"bob@gitlab.com"},"_links":{"self":"https://gitlab.com/api/v4/projects/5776166","events":"https://gitlab.com/api/v4/projects/5776166/events","issues":"https://gitlab.com/api/v4/projects/5776166/issues","labels":"https://gitlab.com/api/v4/projects/5776166/labels","members":"https://gitlab.com/api/v4/projects/5776166/members","repo_branches":"https://gitlab.com/api/v4/projects/5776166/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/5776166/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/5776166/merge_requests"},"topics":[],"web_url":"https://gitlab.com/reprazent/gitlab-ee","archived":false,"tag_list":[],"namespace":{"id":202326,"kind":"user","name":"Bob Van Landuyt","path":"reprazent","web_url":"https://gitlab.com/reprazent","full_path":"reprazent","avatar_url":"/uploads/-/system/user/avatar/171554/avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/5776166/ee_repo_logo.png","created_at":"2018-03-16T13:51:16.612Z","creator_id":171554,"empty_repo":false,"readme_url":"https://gitlab.com/reprazent/gitlab-ee/-/blob/master/README.md","star_count":0,"updated_at":"2024-08-08T01:43:18.017Z","visibility":"public","description":"GitLab Enterprise Edition","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"failed","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:reprazent/gitlab-ee.git","description_html":"<p data-sourcepos=\"1:1-1:25\" dir=\"auto\">GitLab Enterprise Edition</p>","http_url_to_repo":"https://gitlab.com/reprazent/gitlab-ee.git","last_activity_at":"2024-08-08T01:43:18.017Z","snippets_enabled":true,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","forked_from_project":{"id":278964,"name":"GitLab","path":"gitlab","topics":["hacktoberfest","javascript","ruby","vue.js"],"web_url":"https://gitlab.com/gitlab-org/gitlab","tag_list":["hacktoberfest","javascript","ruby","vue.js"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/278964/project_avatar.png","created_at":"2015-05-20T10:47:11.949Z","readme_url":"https://gitlab.com/gitlab-org/gitlab/-/blob/master/README.md","star_count":6031,"visibility":"public","description":"GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider.","forks_count":12141,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab.git","last_activity_at":"2026-06-02T16:25:33.058Z","name_with_namespace":"GitLab.org / GitLab","path_with_namespace":"gitlab-org/gitlab"},"issues_access_level":"enabled","name_with_namespace":"Bob Van Landuyt / GitLab Enterprise Edition","path_with_namespace":"reprazent/gitlab-ee","forking_access_level":"enabled","monitor_access_level":"enabled","requirements_enabled":false,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","merge_requests_enabled":true,"mr_default_target_self":false,"request_access_enabled":false,"shared_runners_enabled":true,"repository_access_level":"enabled","repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","package_registry_access_level":"disabled","enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/reprazent/gitlab-ee","security_and_compliance_enabled":false,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_discussions_are_resolved":false},{"id":4456656,"name":"Pajamas Design System","path":"design.gitlab.com","_links":{"self":"https://gitlab.com/api/v4/projects/4456656","events":"https://gitlab.com/api/v4/projects/4456656/events","issues":"https://gitlab.com/api/v4/projects/4456656/issues","labels":"https://gitlab.com/api/v4/projects/4456656/labels","members":"https://gitlab.com/api/v4/projects/4456656/members","repo_branches":"https://gitlab.com/api/v4/projects/4456656/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/4456656/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/4456656/merge_requests"},"mirror":false,"topics":["hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com","archived":false,"tag_list":["hacktoberfest"],"namespace":{"id":5387503,"kind":"group","name":"gitlab-services","path":"gitlab-services","web_url":"https://gitlab.com/groups/gitlab-org/gitlab-services","full_path":"gitlab-org/gitlab-services","parent_id":9970,"avatar_url":"/uploads/-/system/group/avatar/5387503/images.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/4456656/pjdavatar.png","created_at":"2017-10-23T07:42:02.608Z","creator_id":1212235,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/blob/main/README.md","star_count":212,"updated_at":"2026-06-02T16:32:38.056Z","visibility":"public","description":"GitLab's open source Design System. Contains brand and product design guidelines and UI components for all things GitLab. Constant work in progress.\r\nhttps://design.gitlab.com","forks_count":159,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-services/design.gitlab.com.git","description_html":"<p data-sourcepos=\"1:1-2:25\" dir=\"auto\">GitLab's open source Design System. Contains brand and product design guidelines and UI components for all things GitLab. Constant work in progress.&#x000A;<a href=\"https://design.gitlab.com\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://design.gitlab.com</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com.git","last_activity_at":"2026-06-02T16:12:17.455Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1046,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30},{"group_id":6150316,"group_name":"frontend","group_full_path":"gitlab-org/maintainers/frontend","group_access_level":30},{"group_id":54485028,"group_name":"Technical Writing","group_full_path":"gitlab-org/technical-writing","group_access_level":30},{"group_id":7032427,"group_name":"designers","group_full_path":"gitlab-com/gitlab-ux/designers","group_access_level":30},{"group_id":53991625,"group_name":"gitlab-ui","group_full_path":"gitlab-org/maintainers/gitlab-ui","group_access_level":40},{"group_id":90514461,"group_name":"Design System","group_full_path":"gitlab-org/foundations/design-system","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / gitlab-services / Pajamas Design System","path_with_namespace":"gitlab-org/gitlab-services/design.gitlab.com","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"issue_branch_template":"","merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":1,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":false,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":5,"cadence":"7d","enabled":false,"name_regex":".*","older_than":"30d","next_run_at":"2025-02-03T00:51:49.211Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-services/design.gitlab.com","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":3547210,"name":"todo-backend-client","path":"todo-backend-client","owner":{"id":424775,"name":"Mark Pundsack","state":"active","locked":false,"web_url":"https://gitlab.com/markpundsack","username":"markpundsack","avatar_url":"https://secure.gravatar.com/avatar/52acdc151be7597b74bf3cea868e759ea246cbfc23eda534790285530aa3ff28?s=80&d=identicon","public_email":""},"_links":{"self":"https://gitlab.com/api/v4/projects/3547210","events":"https://gitlab.com/api/v4/projects/3547210/events","issues":"https://gitlab.com/api/v4/projects/3547210/issues","labels":"https://gitlab.com/api/v4/projects/3547210/labels","members":"https://gitlab.com/api/v4/projects/3547210/members","repo_branches":"https://gitlab.com/api/v4/projects/3547210/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/3547210/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/3547210/merge_requests"},"topics":[],"web_url":"https://gitlab.com/markpundsack/todo-backend-client","archived":false,"tag_list":[],"namespace":{"id":498636,"kind":"user","name":"Mark Pundsack","path":"markpundsack","web_url":"https://gitlab.com/markpundsack","full_path":"markpundsack","avatar_url":"https://secure.gravatar.com/avatar/52acdc151be7597b74bf3cea868e759ea246cbfc23eda534790285530aa3ff28?s=80&d=identicon"},"created_at":"2017-06-21T01:01:55.827Z","creator_id":424775,"empty_repo":false,"readme_url":"https://gitlab.com/markpundsack/todo-backend-client/-/blob/master/readme.md","star_count":1,"updated_at":"2024-10-09T10:02:42.928Z","visibility":"public","description":"","forks_count":4,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:markpundsack/todo-backend-client.git","description_html":"","http_url_to_repo":"https://gitlab.com/markpundsack/todo-backend-client.git","last_activity_at":"2024-10-09T10:02:42.928Z","snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"Mark Pundsack / todo-backend-client","path_with_namespace":"markpundsack/todo-backend-client","forking_access_level":"enabled","monitor_access_level":"enabled","requirements_enabled":false,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"repository_access_level":"enabled","repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","package_registry_access_level":"disabled","enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/markpundsack/todo-backend-client","security_and_compliance_enabled":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_discussions_are_resolved":false},{"id":2860651,"name":"charts.gitlab.io","path":"charts.gitlab.io","_links":{"self":"https://gitlab.com/api/v4/projects/2860651","events":"https://gitlab.com/api/v4/projects/2860651/events","labels":"https://gitlab.com/api/v4/projects/2860651/labels","members":"https://gitlab.com/api/v4/projects/2860651/members","repo_branches":"https://gitlab.com/api/v4/projects/2860651/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/2860651/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/2860651/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/charts/charts.gitlab.io","archived":false,"tag_list":[],"namespace":{"id":1400979,"kind":"group","name":"charts","path":"charts","web_url":"https://gitlab.com/groups/charts","full_path":"charts"},"created_at":"2017-03-09T04:57:17.843Z","creator_id":424775,"empty_repo":false,"readme_url":"https://gitlab.com/charts/charts.gitlab.io/-/blob/master/README.md","star_count":52,"updated_at":"2026-03-30T13:43:58.455Z","visibility":"public","description":"GitLab Helm Charts","forks_count":82,"lfs_enabled":true,"public_jobs":false,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:charts/charts.gitlab.io.git","description_html":"<p data-sourcepos=\"1:1-1:18\" dir=\"auto\">GitLab Helm Charts</p>","http_url_to_repo":"https://gitlab.com/charts/charts.gitlab.io.git","last_activity_at":"2026-03-30T13:43:58.455Z","packages_enabled":false,"snippets_enabled":false,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30},{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40},{"group_id":5700593,"group_name":"Configure","group_full_path":"gitlab-org/configure","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"disabled","name_with_namespace":"charts / charts.gitlab.io","path_with_namespace":"charts/charts.gitlab.io","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/charts/charts.gitlab.io","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":false,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":2748732,"name":"GitLab Enterprise Edition","path":"gitlab-ee","owner":{"id":443319,"name":"Sean McGivern","state":"active","locked":false,"web_url":"https://gitlab.com/smcgivern","username":"smcgivern","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/443319/avatar.png","public_email":""},"_links":{"self":"https://gitlab.com/api/v4/projects/2748732","events":"https://gitlab.com/api/v4/projects/2748732/events","issues":"https://gitlab.com/api/v4/projects/2748732/issues","labels":"https://gitlab.com/api/v4/projects/2748732/labels","members":"https://gitlab.com/api/v4/projects/2748732/members","repo_branches":"https://gitlab.com/api/v4/projects/2748732/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/2748732/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/2748732/merge_requests"},"topics":[],"web_url":"https://gitlab.com/smcgivern/gitlab-ee","archived":false,"tag_list":[],"namespace":{"id":521009,"kind":"user","name":"Sean McGivern","path":"smcgivern","web_url":"https://gitlab.com/smcgivern","full_path":"smcgivern","avatar_url":"/uploads/-/system/user/avatar/443319/avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/2748732/ee_repo_logo.png","created_at":"2017-02-21T10:19:21.090Z","creator_id":443319,"empty_repo":false,"readme_url":"https://gitlab.com/smcgivern/gitlab-ee/-/blob/master/README.md","star_count":3,"updated_at":"2024-01-20T10:00:04.886Z","visibility":"public","description":"GitLab Enterprise Edition","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:smcgivern/gitlab-ee.git","description_html":"<p data-sourcepos=\"1:1-1:25\" dir=\"auto\">GitLab Enterprise Edition</p>","http_url_to_repo":"https://gitlab.com/smcgivern/gitlab-ee.git","last_activity_at":"2023-03-13T19:20:05.424Z","snippets_enabled":false,"open_issues_count":1,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","forked_from_project":{"id":278964,"name":"GitLab","path":"gitlab","topics":["hacktoberfest","javascript","ruby","vue.js"],"web_url":"https://gitlab.com/gitlab-org/gitlab","tag_list":["hacktoberfest","javascript","ruby","vue.js"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/278964/project_avatar.png","created_at":"2015-05-20T10:47:11.949Z","readme_url":"https://gitlab.com/gitlab-org/gitlab/-/blob/master/README.md","star_count":6031,"visibility":"public","description":"GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider.","forks_count":12141,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab.git","last_activity_at":"2026-06-02T16:25:33.058Z","name_with_namespace":"GitLab.org / GitLab","path_with_namespace":"gitlab-org/gitlab"},"issues_access_level":"enabled","name_with_namespace":"Sean McGivern / GitLab Enterprise Edition","path_with_namespace":"smcgivern/gitlab-ee","forking_access_level":"enabled","monitor_access_level":"enabled","requirements_enabled":false,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","merge_requests_enabled":true,"mr_default_target_self":false,"request_access_enabled":false,"shared_runners_enabled":true,"repository_access_level":"enabled","repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","package_registry_access_level":"disabled","enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/smcgivern/gitlab-ee","security_and_compliance_enabled":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_discussions_are_resolved":false},{"id":992757,"name":"GitLab Community Edition","path":"gitlab-ce","owner":{"id":423915,"name":"Lin Jen-Shin","state":"active","locked":false,"web_url":"https://gitlab.com/godfat","username":"godfat","avatar_url":"https://secure.gravatar.com/avatar/8e53ed89bb9ed607c0b1bff04934276eac6a0eeaba197f4d9f82ed7e5e114578?s=80&d=identicon","public_email":""},"_links":{"self":"https://gitlab.com/api/v4/projects/992757","events":"https://gitlab.com/api/v4/projects/992757/events","labels":"https://gitlab.com/api/v4/projects/992757/labels","members":"https://gitlab.com/api/v4/projects/992757/members","repo_branches":"https://gitlab.com/api/v4/projects/992757/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/992757/cluster_agents"},"topics":[],"web_url":"https://gitlab.com/godfat/gitlab-ce","archived":true,"tag_list":[],"namespace":{"id":497585,"kind":"user","name":"Lin Jen-Shin","path":"godfat","web_url":"https://gitlab.com/godfat","full_path":"godfat","avatar_url":"https://secure.gravatar.com/avatar/8e53ed89bb9ed607c0b1bff04934276eac6a0eeaba197f4d9f82ed7e5e114578?s=80&d=identicon"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/992757/gitlab-logo-square.png","created_at":"2016-03-23T12:09:43.518Z","creator_id":423915,"empty_repo":false,"readme_url":"https://gitlab.com/godfat/gitlab-ce/-/blob/master/README.md","star_count":6,"updated_at":"2024-01-20T03:50:59.438Z","visibility":"public","description":"Version Control on your Server. See http://gitlab.org/gitlab-ce/ and the README for more information","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"finished","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:godfat/gitlab-ce.git","description_html":"<p data-sourcepos=\"1:1-1:100\" dir=\"auto\">Version Control on your Server. See <a href=\"http://gitlab.org/gitlab-ce/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">http://gitlab.org/gitlab-ce/</a> and the README for more information</p>","http_url_to_repo":"https://gitlab.com/godfat/gitlab-ce.git","last_activity_at":"2021-06-18T19:57:29.052Z","snippets_enabled":false,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30},{"group_id":6543,"group_name":"GitLab.com","group_full_path":"gitlab-com","group_access_level":30}],"builds_access_level":"enabled","forked_from_project":{"id":13083,"name":"GitLab FOSS","path":"gitlab-foss","topics":["Canonical","hacktoberfest","infra-mgmt Managed"],"web_url":"https://gitlab.com/gitlab-org/gitlab-foss","tag_list":["Canonical","hacktoberfest","infra-mgmt Managed"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/13083/project_avatar.png","created_at":"2013-09-26T06:02:36.000Z","readme_url":"https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/README.md","star_count":7157,"visibility":"public","description":"GitLab FOSS is a read-only mirror of GitLab, with all proprietary code removed.\n\nThis project was previously used to host GitLab Community Edition, but all development has now moved to https://gitlab.com/gitlab-org/gitlab.\n","forks_count":8273,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-foss.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-foss.git","last_activity_at":"2026-06-02T16:10:10.672Z","name_with_namespace":"GitLab.org / GitLab FOSS","path_with_namespace":"gitlab-org/gitlab-foss"},"issues_access_level":"disabled","name_with_namespace":"Lin Jen-Shin (godfat) / GitLab Community Edition","path_with_namespace":"godfat/gitlab-ce","forking_access_level":"enabled","monitor_access_level":"enabled","requirements_enabled":false,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","merge_requests_enabled":false,"mr_default_target_self":false,"request_access_enabled":true,"shared_runners_enabled":true,"repository_access_level":"enabled","repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"disabled","model_registry_access_level":"enabled","package_registry_access_level":"disabled","enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/godfat/gitlab-ce","security_and_compliance_enabled":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":""},{"id":516522,"name":"GitLab","path":"gitlab","owner":{"id":13356,"name":"Drew Blessing","state":"active","locked":false,"web_url":"https://gitlab.com/dblessing","username":"dblessing","avatar_url":"https://secure.gravatar.com/avatar/f7a7e6e32e9c5482907025642135eb9546fae343ec42347aba492ba32575e603?s=80&d=identicon","public_email":""},"_links":{"self":"https://gitlab.com/api/v4/projects/516522","events":"https://gitlab.com/api/v4/projects/516522/events","issues":"https://gitlab.com/api/v4/projects/516522/issues","labels":"https://gitlab.com/api/v4/projects/516522/labels","members":"https://gitlab.com/api/v4/projects/516522/members","repo_branches":"https://gitlab.com/api/v4/projects/516522/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/516522/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/516522/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/dblessing/gitlab","archived":false,"tag_list":[],"namespace":{"id":14832,"kind":"user","name":"Drew Blessing","path":"dblessing","web_url":"https://gitlab.com/dblessing","full_path":"dblessing","avatar_url":"https://secure.gravatar.com/avatar/f7a7e6e32e9c5482907025642135eb9546fae343ec42347aba492ba32575e603?s=80&d=identicon"},"created_at":"2015-10-08T14:31:33.299Z","creator_id":13356,"empty_repo":false,"readme_url":"https://gitlab.com/dblessing/gitlab/-/blob/master/README.md","star_count":0,"updated_at":"2024-01-20T04:02:01.560Z","visibility":"public","description":"GitLab Enterprise Edition","forks_count":6,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"failed","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:dblessing/gitlab.git","description_html":"<p data-sourcepos=\"1:1-1:25\" dir=\"auto\">GitLab Enterprise Edition</p>","http_url_to_repo":"https://gitlab.com/dblessing/gitlab.git","last_activity_at":"2023-04-20T00:42:00.590Z","snippets_enabled":false,"open_issues_count":0,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","forked_from_project":{"id":278964,"name":"GitLab","path":"gitlab","topics":["hacktoberfest","javascript","ruby","vue.js"],"web_url":"https://gitlab.com/gitlab-org/gitlab","tag_list":["hacktoberfest","javascript","ruby","vue.js"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/278964/project_avatar.png","created_at":"2015-05-20T10:47:11.949Z","readme_url":"https://gitlab.com/gitlab-org/gitlab/-/blob/master/README.md","star_count":6031,"visibility":"public","description":"GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider.","forks_count":12141,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab.git","last_activity_at":"2026-06-02T16:25:33.058Z","name_with_namespace":"GitLab.org / GitLab","path_with_namespace":"gitlab-org/gitlab"},"issues_access_level":"enabled","name_with_namespace":"Drew Blessing / GitLab","path_with_namespace":"dblessing/gitlab","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"mr_default_target_self":false,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/dblessing/gitlab","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false},{"id":469501,"name":"GitLab Community Edition","path":"gitlab-ce","owner":{"id":101578,"name":"Zeger-Jan van de Weg","state":"active","locked":false,"web_url":"https://gitlab.com/zj-gitlab","username":"zj-gitlab","avatar_url":"https://gitlab.com/uploads/-/system/user/avatar/101578/avatar.png","public_email":""},"_links":{"self":"https://gitlab.com/api/v4/projects/469501","events":"https://gitlab.com/api/v4/projects/469501/events","labels":"https://gitlab.com/api/v4/projects/469501/labels","members":"https://gitlab.com/api/v4/projects/469501/members","repo_branches":"https://gitlab.com/api/v4/projects/469501/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/469501/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/469501/merge_requests"},"topics":[],"web_url":"https://gitlab.com/zj-gitlab/gitlab-ce","archived":false,"tag_list":[],"namespace":{"id":116271,"kind":"user","name":"Zeger-Jan van de Weg","path":"zj-gitlab","web_url":"https://gitlab.com/zj-gitlab","full_path":"zj-gitlab","avatar_url":"/uploads/-/system/user/avatar/101578/avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/469501/gitlab-logo-square.png","created_at":"2015-09-17T07:30:02.456Z","creator_id":101578,"empty_repo":false,"readme_url":"https://gitlab.com/zj-gitlab/gitlab-ce/-/blob/master/README.md","star_count":6,"updated_at":"2024-07-16T02:36:12.716Z","visibility":"public","description":"Version Control on your Server. See http://gitlab.org/gitlab-ce/ and the README for more information","forks_count":7,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:zj-gitlab/gitlab-ce.git","description_html":"<p data-sourcepos=\"1:1-1:100\" dir=\"auto\">Version Control on your Server. See <a href=\"http://gitlab.org/gitlab-ce/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">http://gitlab.org/gitlab-ce/</a> and the README for more information</p>","http_url_to_repo":"https://gitlab.com/zj-gitlab/gitlab-ce.git","last_activity_at":"2024-07-16T02:36:12.716Z","snippets_enabled":true,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","forked_from_project":{"id":13083,"name":"GitLab FOSS","path":"gitlab-foss","topics":["Canonical","hacktoberfest","infra-mgmt Managed"],"web_url":"https://gitlab.com/gitlab-org/gitlab-foss","tag_list":["Canonical","hacktoberfest","infra-mgmt Managed"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/13083/project_avatar.png","created_at":"2013-09-26T06:02:36.000Z","readme_url":"https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/README.md","star_count":7157,"visibility":"public","description":"GitLab FOSS is a read-only mirror of GitLab, with all proprietary code removed.\n\nThis project was previously used to host GitLab Community Edition, but all development has now moved to https://gitlab.com/gitlab-org/gitlab.\n","forks_count":8273,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-foss.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-foss.git","last_activity_at":"2026-06-02T16:10:10.672Z","name_with_namespace":"GitLab.org / GitLab FOSS","path_with_namespace":"gitlab-org/gitlab-foss"},"issues_access_level":"disabled","name_with_namespace":"Zeger-Jan van de Weg / GitLab Community Edition","path_with_namespace":"zj-gitlab/gitlab-ce","forking_access_level":"enabled","monitor_access_level":"enabled","requirements_enabled":false,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","merge_requests_enabled":true,"mr_default_target_self":false,"request_access_enabled":true,"shared_runners_enabled":true,"repository_access_level":"enabled","repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","package_registry_access_level":"disabled","enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/zj-gitlab/gitlab-ce","security_and_compliance_enabled":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":""},{"id":63904,"name":"GitLab.com Support Tracker","path":"support-forum","_links":{"self":"https://gitlab.com/api/v4/projects/63904","events":"https://gitlab.com/api/v4/projects/63904/events","labels":"https://gitlab.com/api/v4/projects/63904/labels","members":"https://gitlab.com/api/v4/projects/63904/members","repo_branches":"https://gitlab.com/api/v4/projects/63904/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/63904/cluster_agents"},"mirror":false,"topics":["bug","confirmed","critical","discussion","documentation","enhancement","feature","suggestion","support"],"web_url":"https://gitlab.com/gitlab-com/support-forum","archived":true,"tag_list":["bug","confirmed","critical","discussion","documentation","enhancement","feature","suggestion","support"],"namespace":{"id":6543,"kind":"group","name":"GitLab.com","path":"gitlab-com","web_url":"https://gitlab.com/groups/gitlab-com","full_path":"gitlab-com","avatar_url":"/uploads/-/system/group/avatar/6543/gitlab_logo_192x192.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/63904/support_forum_logo.png","created_at":"2014-07-01T06:55:14.880Z","creator_id":1,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-com/support-forum/-/blob/master/README.md","star_count":168,"updated_at":"2026-06-01T17:36:43.442Z","visibility":"public","description":"**Support for GitLab.com issues only.** See [Getting Help](https://about.gitlab.com/getting-help/) for support with self-hosted installations and report GitLab bugs in the [GitLab Issue Tracker](https://gitlab.com/gitlab-org/gitlab/issues)","forks_count":24,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-com/support-forum.git","description_html":"<p data-sourcepos=\"1:1-1:239\" dir=\"auto\"><strong data-sourcepos=\"1:1-1:39\">Support for GitLab.com issues only.</strong> See <a data-sourcepos=\"1:45-1:98\" href=\"https://about.gitlab.com/getting-help/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">Getting Help</a> for support with self-hosted installations and report GitLab bugs in the <a data-sourcepos=\"1:173-1:239\" href=\"https://gitlab.com/gitlab-org/gitlab/issues\">GitLab Issue Tracker</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-com/support-forum.git","last_activity_at":"2026-06-01T17:36:43.442Z","packages_enabled":false,"snippets_enabled":false,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"private","name_with_namespace":"GitLab.com / GitLab.com Support Tracker","path_with_namespace":"gitlab-com/support-forum","forking_access_level":"disabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"private","model_registry_access_level":"enabled","auto_duo_code_review_enabled":false,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-com/support-forum","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":42984,"name":"GitLab Community Edition","path":"gitlab-ce","owner":{"id":13356,"name":"Drew Blessing","state":"active","locked":false,"web_url":"https://gitlab.com/dblessing","username":"dblessing","avatar_url":"https://secure.gravatar.com/avatar/f7a7e6e32e9c5482907025642135eb9546fae343ec42347aba492ba32575e603?s=80&d=identicon","public_email":""},"_links":{"self":"https://gitlab.com/api/v4/projects/42984","events":"https://gitlab.com/api/v4/projects/42984/events","labels":"https://gitlab.com/api/v4/projects/42984/labels","members":"https://gitlab.com/api/v4/projects/42984/members","repo_branches":"https://gitlab.com/api/v4/projects/42984/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/42984/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/42984/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/dblessing/gitlab-ce","archived":true,"tag_list":[],"namespace":{"id":14832,"kind":"user","name":"Drew Blessing","path":"dblessing","web_url":"https://gitlab.com/dblessing","full_path":"dblessing","avatar_url":"https://secure.gravatar.com/avatar/f7a7e6e32e9c5482907025642135eb9546fae343ec42347aba492ba32575e603?s=80&d=identicon"},"created_at":"2014-04-14T16:21:40.000Z","creator_id":13356,"empty_repo":false,"readme_url":"https://gitlab.com/dblessing/gitlab-ce/-/blob/master/README.md","star_count":0,"updated_at":"2024-04-02T16:43:05.740Z","visibility":"public","description":"See http://gitlab.org/gitlab-ce/ and the README for more information","forks_count":1,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"ff","wiki_enabled":false,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:dblessing/gitlab-ce.git","description_html":"<p data-sourcepos=\"1:1-1:68\" dir=\"auto\">See <a href=\"http://gitlab.org/gitlab-ce/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">http://gitlab.org/gitlab-ce/</a> and the README for more information</p>","http_url_to_repo":"https://gitlab.com/dblessing/gitlab-ce.git","last_activity_at":"2024-03-21T07:16:04.459Z","packages_enabled":false,"snippets_enabled":false,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30}],"builds_access_level":"enabled","forked_from_project":{"id":13083,"name":"GitLab FOSS","path":"gitlab-foss","topics":["Canonical","hacktoberfest","infra-mgmt Managed"],"web_url":"https://gitlab.com/gitlab-org/gitlab-foss","tag_list":["Canonical","hacktoberfest","infra-mgmt Managed"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/13083/project_avatar.png","created_at":"2013-09-26T06:02:36.000Z","readme_url":"https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/README.md","star_count":7157,"visibility":"public","description":"GitLab FOSS is a read-only mirror of GitLab, with all proprietary code removed.\n\nThis project was previously used to host GitLab Community Edition, but all development has now moved to https://gitlab.com/gitlab-org/gitlab.\n","forks_count":8273,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-foss.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-foss.git","last_activity_at":"2026-06-02T16:10:10.672Z","name_with_namespace":"GitLab.org / GitLab FOSS","path_with_namespace":"gitlab-org/gitlab-foss"},"issues_access_level":"disabled","name_with_namespace":"Drew Blessing / GitLab Community Edition","path_with_namespace":"dblessing/gitlab-ce","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"mr_default_target_self":false,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/dblessing/gitlab-ce","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false}],"mentions_disabled":true,"wiki_access_level":"private","shared_with_groups":[{"group_id":85524268,"group_name":"Application Security","member_role_id":1001964,"group_full_path":"gitlab-com/gl-security/product-security/appsec","group_access_level":30}],"share_with_group_lock":false,"project_creation_level":"maintainer","request_access_enabled":false,"shared_runners_setting":"enabled","subgroup_creation_level":"owner","two_factor_grace_period":120,"file_template_project_id":71037312,"default_branch_protection":2,"show_diff_preview_in_email":true,"shared_runners_minutes_limit":0,"math_rendering_limits_enabled":true,"prevent_forking_outside_group":false,"allow_merge_on_skipped_pipeline":false,"require_two_factor_authentication":true,"default_branch_protection_defaults":{"allowed_to_push":[{"access_level":40}],"allow_force_push":false,"allowed_to_merge":[{"access_level":40}]},"extra_shared_runners_minutes_limit":0,"lock_math_rendering_limits_enabled":false,"only_allow_merge_if_pipeline_succeeds":false,"prevent_sharing_groups_outside_hierarchy":false,"service_access_tokens_expiration_enforced":true,"only_allow_merge_if_all_discussions_are_resolved":false},"meta":{"timestamp":"2026-06-02T16:52:48.828Z","request_id":"ca8fb2ac-810d-41d0-9f41-6a238a0759d6"},"status":"ok","message":"Group detail","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/group/projects":{"get":{"operationId":"get_v1_group_projects","tags":["Groups"],"summary":"Group projects","description":"","parameters":[{"name":"group","in":"query","required":true,"description":"Group id or path","schema":{"type":"string"},"example":"gitlab-org"},{"name":"per_page","in":"query","required":false,"description":"Page size (max 100)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":[{"id":62039593,"name":"Duo UI","path":"duo-ui","_links":{"self":"https://gitlab.com/api/v4/projects/62039593","events":"https://gitlab.com/api/v4/projects/62039593/events","issues":"https://gitlab.com/api/v4/projects/62039593/issues","labels":"https://gitlab.com/api/v4/projects/62039593/labels","members":"https://gitlab.com/api/v4/projects/62039593/members","repo_branches":"https://gitlab.com/api/v4/projects/62039593/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/62039593/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/62039593/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/duo-ui","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/62039593/dark.png","created_at":"2024-09-26T15:50:32.701Z","creator_id":128633,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/duo-ui/-/blob/main/README.md","star_count":9,"updated_at":"2026-06-02T16:27:29.379Z","visibility":"public","description":"","forks_count":6,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"failed","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/duo-ui.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/duo-ui.git","last_activity_at":"2026-06-02T16:27:29.379Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":47,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":53991625,"group_name":"gitlab-ui","group_full_path":"gitlab-org/maintainers/gitlab-ui","group_access_level":40},{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Duo UI","path_with_namespace":"gitlab-org/duo-ui","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"issue_branch_template":"","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2024-09-27T15:50:32.723Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/duo-ui","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":278964,"name":"GitLab","path":"gitlab","_links":{"self":"https://gitlab.com/api/v4/projects/278964","events":"https://gitlab.com/api/v4/projects/278964/events","issues":"https://gitlab.com/api/v4/projects/278964/issues","labels":"https://gitlab.com/api/v4/projects/278964/labels","members":"https://gitlab.com/api/v4/projects/278964/members","repo_branches":"https://gitlab.com/api/v4/projects/278964/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/278964/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/278964/merge_requests"},"mirror":false,"topics":["hacktoberfest","javascript","ruby","vue.js"],"web_url":"https://gitlab.com/gitlab-org/gitlab","archived":false,"tag_list":["hacktoberfest","javascript","ruby","vue.js"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/278964/project_avatar.png","created_at":"2015-05-20T10:47:11.949Z","creator_id":5497,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab/-/blob/master/README.md","star_count":6031,"updated_at":"2026-06-02T16:51:03.220Z","visibility":"public","description":"GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider.","forks_count":12141,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"finished","squash_option":"default_on","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab.git","description_html":"<p data-sourcepos=\"1:1-1:220\" dir=\"auto\">GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab.git","last_activity_at":"2026-06-02T16:25:33.058Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":47871,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":3887968,"group_name":"rails-backend","group_full_path":"gitlab-org/maintainers/rails-backend","group_access_level":40},{"group_id":5747833,"group_name":"eng-prod","group_full_path":"gl-dx/eng-prod","group_access_level":30},{"group_id":5924764,"group_name":"database","group_full_path":"gitlab-org/maintainers/database","group_access_level":40},{"group_id":3205033,"group_name":"Developer Experience","group_full_path":"gl-dx","group_access_level":30},{"group_id":1356356,"group_name":"GitLab docs team","group_full_path":"gl-docsteam","group_access_level":30},{"group_id":7196368,"group_name":"analytics-instrumentation","group_full_path":"gitlab-org/analytics-section/analytics-instrumentation","group_access_level":30},{"group_id":8435172,"group_name":"Engineering","group_full_path":"gitlab-org/software-supply-chain-security/compliance/engineering","group_access_level":30},{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40},{"group_id":6150316,"group_name":"frontend","group_full_path":"gitlab-org/maintainers/frontend","group_access_level":40},{"group_id":13279104,"group_name":"maintainers","group_full_path":"gl-dx/maintainers","group_access_level":40},{"group_id":84273238,"group_name":"Secret Detection Team","group_full_path":"gitlab-org/secure/secret-detection","group_access_level":30},{"group_id":59455638,"group_name":"Engineering","group_full_path":"gitlab-org/foundations/engineering","group_access_level":30},{"group_id":4654006,"group_name":"Application Security","group_full_path":"gitlab-com/gl-security/appsec","group_access_level":30},{"group_id":8306194,"group_name":"Authentication Group","group_full_path":"gitlab-org/software-supply-chain-security/authentication","group_access_level":30},{"group_id":10589162,"group_name":"cicd-templates","group_full_path":"gitlab-org/maintainers/cicd-templates","group_access_level":40},{"group_id":58054119,"group_name":"tw-leadership","group_full_path":"gitlab-org/tw-leadership","group_access_level":30},{"group_id":55739553,"group_name":"approvers","group_full_path":"gitlab-org/software-supply-chain-security/authentication/approvers","group_access_level":30},{"group_id":8306188,"group_name":"Compliance Group","group_full_path":"gitlab-org/software-supply-chain-security/compliance","group_access_level":30},{"group_id":58138550,"group_name":"Development Leaders","group_full_path":"gitlab-org/development-leaders","group_access_level":30},{"group_id":60317720,"group_name":"tooling-maintainers","group_full_path":"gl-dx/tooling-maintainers","group_access_level":40},{"group_id":53590082,"group_name":"cicd-verify","group_full_path":"gitlab-org/maintainers/cicd-verify","group_access_level":30},{"group_id":69408690,"group_name":"Backend","group_full_path":"gitlab-org/maintainers/workspaces/backend","group_access_level":30},{"group_id":126142168,"group_name":"advanced-framework","group_full_path":"gitlab-org/search-team/maintainers/advanced-framework","group_access_level":30},{"group_id":126141938,"group_name":"advanced-migrations","group_full_path":"gitlab-org/search-team/maintainers/advanced-migrations","group_access_level":30},{"group_id":57857366,"group_name":"Verify Frontend Engineers","group_full_path":"gitlab-org/ci-cd/verify/frontend","group_access_level":30},{"group_id":75871867,"group_name":"kas-version-maintainers","group_full_path":"gitlab-org/maintainers/kas-version-maintainers","group_access_level":40},{"group_id":54485028,"group_name":"Technical Writing","group_full_path":"gitlab-org/technical-writing","group_access_level":30},{"group_id":67749417,"group_name":"migration maintainers","group_full_path":"gitlab-org/search-team/migration-maintainers","group_access_level":30},{"group_id":65846816,"group_name":"Backend Approvers","group_full_path":"gitlab-org/ci-cd/runner-fleet-team/backend-approvers","group_access_level":30},{"group_id":72508290,"group_name":"clickhouse","group_full_path":"gitlab-org/maintainers/clickhouse","group_access_level":30},{"group_id":77671062,"group_name":"approvers","group_full_path":"gitlab-org/software-supply-chain-security/authorization/approvers","group_access_level":30},{"group_id":5927426,"group_name":"Static Analysis Group","group_full_path":"gitlab-org/secure/static-analysis","group_access_level":30},{"group_id":57696361,"group_name":"FE","group_full_path":"gitlab-org/fulfillment/utilization/fe","group_access_level":30},{"group_id":57696357,"group_name":"BE","group_full_path":"gitlab-org/fulfillment/utilization/be","group_access_level":30},{"group_id":57706471,"group_name":"Engineers","group_full_path":"gitlab-org/fulfillment/utilization/engineers","group_access_level":30},{"group_id":1413584,"group_name":"gl-gitaly","group_full_path":"gl-gitaly","group_access_level":30},{"group_id":100008112,"group_name":"frontend","group_full_path":"gitlab-org/security-risk-management/security-insights/frontend","group_access_level":30},{"group_id":2639717,"group_name":"Distribution","group_full_path":"gitlab-org/distribution","group_access_level":30},{"group_id":76961745,"group_name":"pipeline-maintainers","group_full_path":"gl-dx/pipeline-maintainers","group_access_level":40},{"group_id":104212404,"group_name":"Maintainers","group_full_path":"gitlab-com/localization/maintainers","group_access_level":30},{"group_id":100005601,"group_name":"backend","group_full_path":"gitlab-org/security-risk-management/security-insights/backend","group_access_level":30},{"group_id":11789105,"group_name":"Security Policies Backend Team","group_full_path":"gitlab-org/security-risk-management/security-policies/backend","group_access_level":30},{"group_id":97172638,"group_name":"Security Policies Frontend Team","group_full_path":"gitlab-org/security-risk-management/security-policies/frontend","group_access_level":30},{"group_id":90522359,"group_name":"Engineering","group_full_path":"gitlab-org/growth/engagement/engineering","group_access_level":30},{"group_id":59044719,"group_name":"Container Registry Group","group_full_path":"gitlab-org/ci-cd/package-stage/container-registry-group","group_access_level":30},{"group_id":57770824,"group_name":"experiment-devs","group_full_path":"gitlab-org/growth/experiment-devs","group_access_level":30},{"group_id":6908664,"group_name":"engineers","group_full_path":"gitlab-org/growth/engineers","group_access_level":30},{"group_id":93802704,"group_name":"cis-deletion_scheduled-93802704","group_full_path":"gitlab-org/software-supply-chain-security/compliance/engineering/cis-deletion_scheduled-93802704","group_access_level":30},{"group_id":97485282,"group_name":"backend","group_full_path":"gitlab-org/analytics-section/platform-insights/engineers/backend","group_access_level":30},{"group_id":108868662,"group_name":"Engineers","group_full_path":"gitlab-org/code-creation/engineers","group_access_level":30},{"group_id":5927369,"group_name":"Dynamic Analysis Engineering Team","group_full_path":"gitlab-org/secure/dynamic-analysis","group_access_level":30},{"group_id":7964541,"group_name":"Fuzzing Backend Team","group_full_path":"gitlab-org/secure/fuzzing-be","group_access_level":30},{"group_id":5769520,"group_name":"Composition Analysis Backend Team","group_full_path":"gitlab-org/secure/composition-analysis-be","group_access_level":30},{"group_id":108007673,"group_name":"Organizations team - Backend Engineers","group_full_path":"gitlab-com/gl-infra/tenant-scale/organizations/backend-engineers","group_access_level":30},{"group_id":97485358,"group_name":"frontend","group_full_path":"gitlab-org/analytics-section/platform-insights/engineers/frontend","group_access_level":30},{"group_id":68520095,"group_name":"gitlab-workhorse","group_full_path":"gitlab-org/maintainers/gitlab-workhorse","group_access_level":30},{"group_id":10510117,"group_name":"legal-reviewers","group_full_path":"gitlab-org/legal-reviewers","group_access_level":30},{"group_id":74288765,"group_name":"AI Powered","group_full_path":"gitlab-org/ai-powered","group_access_level":30},{"group_id":59994337,"group_name":"frontend","group_full_path":"gitlab-org/analytics-section/product-analytics/engineers/frontend","group_access_level":30},{"group_id":90514548,"group_name":"Engineering","group_full_path":"gitlab-org/foundations/design-system/engineering","group_access_level":30},{"group_id":85746271,"group_name":"engineers","group_full_path":"code-review-be/engineers","group_access_level":30},{"group_id":107573599,"group_name":"tw-docops","group_full_path":"gitlab-org/technical-writing/tw-docops","group_access_level":30},{"group_id":69408699,"group_name":"Frontend","group_full_path":"gitlab-org/maintainers/workspaces/frontend","group_access_level":30},{"group_id":117865463,"group_name":"Japanese Content","group_full_path":"gitlab-com/localization/maintainers/japanese","group_access_level":30},{"group_id":123409328,"group_name":"Tech Docs Engineers","group_full_path":"gitlab-com/localization/maintainers/tech-docs","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab","path_with_namespace":"gitlab-org/gitlab","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}' \r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":1,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"squash_commit_template":"%{first_commit}","merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","merge_request_title_regex":"","mr_default_title_template":"","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":false,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":100,"cadence":"1d","enabled":true,"name_regex":".*","older_than":"14d","next_run_at":"2026-06-02T18:00:31.895Z","name_regex_keep":"(?:v.+|master|main|\\d+\\.\\d+\\.\\d+(-rc\\d+)?(-ee)?)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","merge_request_title_regex_description":"","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":14022,"name":"gitlab-shell","path":"gitlab-shell","_links":{"self":"https://gitlab.com/api/v4/projects/14022","events":"https://gitlab.com/api/v4/projects/14022/events","issues":"https://gitlab.com/api/v4/projects/14022/issues","labels":"https://gitlab.com/api/v4/projects/14022/labels","members":"https://gitlab.com/api/v4/projects/14022/members","repo_branches":"https://gitlab.com/api/v4/projects/14022/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/14022/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/14022/merge_requests"},"mirror":false,"topics":["Canonical","golang","hacktoberfest","infra-mgmt Managed","ssh"],"web_url":"https://gitlab.com/gitlab-org/gitlab-shell","archived":false,"tag_list":["Canonical","golang","hacktoberfest","infra-mgmt Managed","ssh"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/14022/Green_Shell_Artwork_-_Mario_Kart_Wii.png","created_at":"2013-10-07T16:48:29.000Z","creator_id":444,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-shell/-/blob/main/README.md","star_count":232,"updated_at":"2026-06-02T16:28:47.672Z","visibility":"public","description":"SSH access for GitLab","forks_count":308,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"finished","squash_option":"default_off","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-shell.git","description_html":"<p data-sourcepos=\"1:1-1:21\" dir=\"auto\">SSH access for GitLab</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-shell.git","last_activity_at":"2026-06-02T16:25:26.759Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":73,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":68520411,"group_name":"gitlab-shell","group_full_path":"gitlab-org/maintainers/gitlab-shell","group_access_level":40},{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / gitlab-shell","path_with_namespace":"gitlab-org/gitlab-shell","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}\n","releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":2,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-shell","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":4456656,"name":"Pajamas Design System","path":"design.gitlab.com","_links":{"self":"https://gitlab.com/api/v4/projects/4456656","events":"https://gitlab.com/api/v4/projects/4456656/events","issues":"https://gitlab.com/api/v4/projects/4456656/issues","labels":"https://gitlab.com/api/v4/projects/4456656/labels","members":"https://gitlab.com/api/v4/projects/4456656/members","repo_branches":"https://gitlab.com/api/v4/projects/4456656/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/4456656/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/4456656/merge_requests"},"mirror":false,"topics":["hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com","archived":false,"tag_list":["hacktoberfest"],"namespace":{"id":5387503,"kind":"group","name":"gitlab-services","path":"gitlab-services","web_url":"https://gitlab.com/groups/gitlab-org/gitlab-services","full_path":"gitlab-org/gitlab-services","parent_id":9970,"avatar_url":"/uploads/-/system/group/avatar/5387503/images.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/4456656/pjdavatar.png","created_at":"2017-10-23T07:42:02.608Z","creator_id":1212235,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com/-/blob/main/README.md","star_count":212,"updated_at":"2026-06-02T16:32:38.056Z","visibility":"public","description":"GitLab's open source Design System. Contains brand and product design guidelines and UI components for all things GitLab. Constant work in progress.\r\nhttps://design.gitlab.com","forks_count":159,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-services/design.gitlab.com.git","description_html":"<p data-sourcepos=\"1:1-2:25\" dir=\"auto\">GitLab's open source Design System. Contains brand and product design guidelines and UI components for all things GitLab. Constant work in progress.&#x000A;<a href=\"https://design.gitlab.com\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://design.gitlab.com</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-services/design.gitlab.com.git","last_activity_at":"2026-06-02T16:12:17.455Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":1046,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":9970,"group_name":"GitLab.org","group_full_path":"gitlab-org","group_access_level":30},{"group_id":6150316,"group_name":"frontend","group_full_path":"gitlab-org/maintainers/frontend","group_access_level":30},{"group_id":54485028,"group_name":"Technical Writing","group_full_path":"gitlab-org/technical-writing","group_access_level":30},{"group_id":7032427,"group_name":"designers","group_full_path":"gitlab-com/gitlab-ux/designers","group_access_level":30},{"group_id":53991625,"group_name":"gitlab-ui","group_full_path":"gitlab-org/maintainers/gitlab-ui","group_access_level":40},{"group_id":90514461,"group_name":"Design System","group_full_path":"gitlab-org/foundations/design-system","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / gitlab-services / Pajamas Design System","path_with_namespace":"gitlab-org/gitlab-services/design.gitlab.com","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"issue_branch_template":"","merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":1,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":false,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":5,"cadence":"7d","enabled":false,"name_regex":".*","older_than":"30d","next_run_at":"2025-02-03T00:51:49.211Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-services/design.gitlab.com","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":13083,"name":"GitLab FOSS","path":"gitlab-foss","_links":{"self":"https://gitlab.com/api/v4/projects/13083","events":"https://gitlab.com/api/v4/projects/13083/events","issues":"https://gitlab.com/api/v4/projects/13083/issues","labels":"https://gitlab.com/api/v4/projects/13083/labels","members":"https://gitlab.com/api/v4/projects/13083/members","repo_branches":"https://gitlab.com/api/v4/projects/13083/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/13083/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/13083/merge_requests"},"mirror":false,"topics":["Canonical","hacktoberfest","infra-mgmt Managed"],"web_url":"https://gitlab.com/gitlab-org/gitlab-foss","archived":false,"tag_list":["Canonical","hacktoberfest","infra-mgmt Managed"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/13083/project_avatar.png","created_at":"2013-09-26T06:02:36.000Z","creator_id":1,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/README.md","star_count":7157,"updated_at":"2026-06-02T16:46:11.280Z","visibility":"public","description":"GitLab FOSS is a read-only mirror of GitLab, with all proprietary code removed.\n\nThis project was previously used to host GitLab Community Edition, but all development has now moved to https://gitlab.com/gitlab-org/gitlab.\n","forks_count":8273,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"GitLab has moved to a single codebase for GitLab CE and GitLab EE.\n\nPlease do not create issues here, instead create them at https://gitlab.com/gitlab-org/gitlab/issues.\n","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-foss.git","description_html":"<p data-sourcepos=\"1:1-1:79\" dir=\"auto\">GitLab FOSS is a read-only mirror of GitLab, with all proprietary code removed.</p>&#x000A;<p data-sourcepos=\"3:1-3:141\" dir=\"auto\">This project was previously used to host GitLab Community Edition, but all development has now moved to <a data-sourcepos=\"3:105-3:140\" href=\"https://gitlab.com/gitlab-org/gitlab\">https://gitlab.com/gitlab-org/gitlab</a>.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-foss.git","last_activity_at":"2026-06-02T16:10:10.672Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":0,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":6543,"group_name":"GitLab.com","group_full_path":"gitlab-com","group_access_level":20},{"group_id":3887968,"group_name":"rails-backend","group_full_path":"gitlab-org/maintainers/rails-backend","group_access_level":40},{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40},{"group_id":16947798,"group_name":"Engineering Productivity","group_full_path":"gitlab-org/quality/engineering-productivity","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab FOSS","path_with_namespace":"gitlab-org/gitlab-foss","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":false,"compliance_frameworks":[],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}\n","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":2,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"GitLab has moved to a single codebase for GitLab CE and GitLab EE.\n\nPlease do not create merge requests here, instead create them at https://gitlab.com/gitlab-org/gitlab/merge_requests.\n","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":100,"cadence":"1d","enabled":true,"name_regex":".*","older_than":"14d","next_run_at":"2026-06-03T00:45:39.515Z","name_regex_keep":"(?:v.+|master|main)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-foss","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":2670515,"name":"customers-gitlab-com","path":"customers-gitlab-com","_links":{"self":"https://gitlab.com/api/v4/projects/2670515","events":"https://gitlab.com/api/v4/projects/2670515/events","issues":"https://gitlab.com/api/v4/projects/2670515/issues","labels":"https://gitlab.com/api/v4/projects/2670515/labels","members":"https://gitlab.com/api/v4/projects/2670515/members","repo_branches":"https://gitlab.com/api/v4/projects/2670515/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/2670515/cluster_agents"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/customers-gitlab-com","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/2670515/Shopping_and_Commerce_-_Outline_21-512.png","created_at":"2017-02-09T18:59:13.690Z","creator_id":280339,"empty_repo":false,"star_count":64,"updated_at":"2026-06-02T16:46:37.424Z","visibility":"public","description":"","lfs_enabled":true,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":false,"import_status":"failed","squash_option":"default_on","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"<!-- Please complete the template below as best as you can. Make sure to check if this issue has already been raised by someone else first to avoid duplication. \r\n\r\nFor each section below, please add screenshots or links or anything that may help visual learners understand the problem better, even if this takes you an extra minute or two this is a great help to some folks.\r\n\r\nhttps://www.learning-styles-online.com/style/visual-spatial/\r\n\r\n-->\r\n\r\n### Problem\r\n\r\n### Proposal\r\n\r\n<!-- Consult with `@gitlab-com/business-technology/enterprise-apps/zuora-architects` on the ~\"Enterprise Applications\" team if Zuora business logic is involved. -->\r\n\r\n/label ~\"devops::fulfillment\" ~\"section::fulfillment\" ~\"group::billing and subscription management\" ~\"Category:Billing & Payments\" ~\"feature::addition\" ~frontend ~backend","ssh_url_to_repo":"git@gitlab.com:gitlab-org/customers-gitlab-com.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/customers-gitlab-com.git","last_activity_at":"2026-06-02T16:10:05.358Z","packages_enabled":false,"snippets_enabled":false,"open_issues_count":954,"wiki_access_level":"disabled","pages_access_level":"private","shared_with_groups":[{"group_id":90583427,"group_name":"Cloud Connector","group_full_path":"gitlab-org/cloud-connector","group_access_level":30}],"builds_access_level":"private","issues_access_level":"enabled","name_with_namespace":"GitLab.org / customers-gitlab-com","path_with_namespace":"gitlab-org/customers-gitlab-com","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"private","snippets_access_level":"private","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":false,"shared_runners_enabled":false,"squash_commit_template":"%{title}\r\n\r\nSee merge request %{url}","merge_pipelines_enabled":true,"repository_access_level":"private","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":false,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":5,"cadence":"7d","enabled":true,"name_regex":".*","older_than":"30d","next_run_at":"2026-06-07T19:42:39.087Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"private","model_registry_access_level":"disabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"disabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"private","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/customers-gitlab-com","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":52469398,"name":"Step Runner","path":"step-runner","_links":{"self":"https://gitlab.com/api/v4/projects/52469398","events":"https://gitlab.com/api/v4/projects/52469398/events","issues":"https://gitlab.com/api/v4/projects/52469398/issues","labels":"https://gitlab.com/api/v4/projects/52469398/labels","members":"https://gitlab.com/api/v4/projects/52469398/members","repo_branches":"https://gitlab.com/api/v4/projects/52469398/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/52469398/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/52469398/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/step-runner","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/52469398/step-runner.png","created_at":"2023-11-23T21:18:55.196Z","creator_id":10353774,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/step-runner/-/blob/main/README.md","star_count":22,"updated_at":"2026-06-02T16:10:03.072Z","visibility":"public","description":"","forks_count":22,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/step-runner.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/step-runner.git","last_activity_at":"2026-06-02T16:10:03.072Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":205,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Step Runner","path_with_namespace":"gitlab-org/step-runner","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"issue_branch_template":"","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":false,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":true,"name_regex":"step-runner/pipeline/.*","older_than":"7d","next_run_at":"2026-06-02T18:35:19.792Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/step-runner","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":true,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":true,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":443787,"name":"GitLab Design","path":"gitlab-design","_links":{"self":"https://gitlab.com/api/v4/projects/443787","events":"https://gitlab.com/api/v4/projects/443787/events","issues":"https://gitlab.com/api/v4/projects/443787/issues","labels":"https://gitlab.com/api/v4/projects/443787/labels","members":"https://gitlab.com/api/v4/projects/443787/members","repo_branches":"https://gitlab.com/api/v4/projects/443787/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/443787/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/443787/merge_requests"},"mirror":false,"topics":["hacktoberfest","ui","ux"],"web_url":"https://gitlab.com/gitlab-org/gitlab-design","archived":false,"tag_list":["hacktoberfest","ui","ux"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/443787/gitlab-account.png","created_at":"2015-09-03T08:29:27.093Z","creator_id":444,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-design/-/blob/master/README.md","star_count":351,"updated_at":"2026-06-02T16:08:09.644Z","visibility":"public","description":"GitLab’s open source design library, prototypes, design specs, and work-in-progress files.","forks_count":182,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"ff","wiki_enabled":false,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"This project is primarily used by GitLab’s UX team to host design files and hand them off for implementation.\r\n\r\nBefore raising an issue to any of GitLab’s issue trackers, please read through our guide for finding help to determine the best place to post:\r\n\r\n* https://about.gitlab.com/getting-help/\r\n\r\nThank you for helping to make GitLab a better product.","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-design.git","description_html":"<p data-sourcepos=\"1:1-1:92\" dir=\"auto\">GitLab’s open source design library, prototypes, design specs, and work-in-progress files.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-design.git","last_activity_at":"2026-06-02T16:08:09.644Z","packages_enabled":false,"snippets_enabled":true,"open_issues_count":102,"wiki_access_level":"private","pages_access_level":"disabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Design","path_with_namespace":"gitlab-org/gitlab-design","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":false,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}","releases_access_level":"disabled","snippets_access_level":"enabled","analytics_access_level":"disabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"disabled","container_registry_enabled":false,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"disabled","merge_requests_access_level":"enabled","model_registry_access_level":"disabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"disabled","spp_repository_pipeline_access":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-design","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"disabled","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":14292404,"name":"GitLab Environment Toolkit","path":"gitlab-environment-toolkit","_links":{"self":"https://gitlab.com/api/v4/projects/14292404","events":"https://gitlab.com/api/v4/projects/14292404/events","issues":"https://gitlab.com/api/v4/projects/14292404/issues","labels":"https://gitlab.com/api/v4/projects/14292404/labels","members":"https://gitlab.com/api/v4/projects/14292404/members","repo_branches":"https://gitlab.com/api/v4/projects/14292404/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/14292404/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/14292404/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-environment-toolkit","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/14292404/tanuki-blueprint.png","created_at":"2019-09-13T12:52:36.365Z","creator_id":3769272,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-environment-toolkit/-/blob/main/README.md","star_count":274,"updated_at":"2026-06-02T16:07:39.836Z","visibility":"public","description":"The GitLab Environment Toolkit (`GET`) is a set of opinionated [Terraform](https://www.terraform.io/) and [Ansible](https://www.ansible.com/) scripts to assist with deploying scaled GitLab environments following the [Reference Architectures](https://docs.gitlab.com/ee/administration/reference_architectures).\r\n\r\nOwners: [GitLab Delivery - Operate](https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/gitlab-delivery/)","forks_count":221,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-environment-toolkit.git","description_html":"<p data-sourcepos=\"1:1-1:309\" dir=\"auto\">The GitLab Environment Toolkit (GET) is a set of opinionated <a data-sourcepos=\"1:64-1:101\" href=\"https://www.terraform.io/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">Terraform</a> and <a data-sourcepos=\"1:107-1:141\" href=\"https://www.ansible.com/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">Ansible</a> scripts to assist with deploying scaled GitLab environments following the <a data-sourcepos=\"1:217-1:308\" href=\"https://docs.gitlab.com/ee/administration/reference_architectures\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">Reference Architectures</a>.</p>&#x000A;<p data-sourcepos=\"3:1-3:127\" dir=\"auto\">Owners: <a data-sourcepos=\"3:9-3:127\" href=\"https://handbook.gitlab.com/handbook/engineering/infrastructure-platforms/gitlab-delivery/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">GitLab Delivery - Operate</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-environment-toolkit.git","last_activity_at":"2026-06-02T16:07:39.836Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":59,"wiki_access_level":"private","pages_access_level":"disabled","shared_with_groups":[],"builds_access_level":"private","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Environment Toolkit","path_with_namespace":"gitlab-org/gitlab-environment-toolkit","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"private","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"disabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"disabled","merge_requests_access_level":"enabled","model_registry_access_level":"disabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"disabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-environment-toolkit","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":40916776,"name":"GitLab Terraform Provider","path":"terraform-provider-gitlab","_links":{"self":"https://gitlab.com/api/v4/projects/40916776","events":"https://gitlab.com/api/v4/projects/40916776/events","issues":"https://gitlab.com/api/v4/projects/40916776/issues","labels":"https://gitlab.com/api/v4/projects/40916776/labels","members":"https://gitlab.com/api/v4/projects/40916776/members","repo_branches":"https://gitlab.com/api/v4/projects/40916776/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/40916776/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/40916776/merge_requests"},"mirror":false,"topics":["hacktoberfest","infrastructure as code","terraform","terraform-provider"],"web_url":"https://gitlab.com/gitlab-org/terraform-provider-gitlab","archived":false,"tag_list":["hacktoberfest","infrastructure as code","terraform","terraform-provider"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/40916776/gitlab_configure_group_logo.png","created_at":"2022-11-09T12:12:48.760Z","creator_id":5189712,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/terraform-provider-gitlab/-/blob/main/README.md","star_count":124,"updated_at":"2026-06-02T16:23:30.815Z","visibility":"public","description":"Official GitLab Terraform Provider. ","forks_count":205,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/terraform-provider-gitlab.git","description_html":"<p data-sourcepos=\"1:1-1:36\" dir=\"auto\">Official GitLab Terraform Provider.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/terraform-provider-gitlab.git","last_activity_at":"2026-06-02T16:02:30.928Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":93,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Terraform Provider","path_with_namespace":"gitlab-org/terraform-provider-gitlab","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"disabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":1,"cadence":"1d","enabled":true,"name_regex":".*","older_than":"30d","next_run_at":"2026-06-03T02:25:21.048Z","name_regex_keep":"v.+"},"infrastructure_access_level":"disabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/terraform-provider-gitlab","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":true,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":20699,"name":"omnibus-gitlab","path":"omnibus-gitlab","_links":{"self":"https://gitlab.com/api/v4/projects/20699","events":"https://gitlab.com/api/v4/projects/20699/events","issues":"https://gitlab.com/api/v4/projects/20699/issues","labels":"https://gitlab.com/api/v4/projects/20699/labels","members":"https://gitlab.com/api/v4/projects/20699/members","repo_branches":"https://gitlab.com/api/v4/projects/20699/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/20699/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/20699/merge_requests"},"mirror":false,"topics":["bug","confirmed","critical","discussion","documentation","enhancement","feature","hacktoberfest","suggestion","support"],"web_url":"https://gitlab.com/gitlab-org/omnibus-gitlab","archived":false,"tag_list":["bug","confirmed","critical","discussion","documentation","enhancement","feature","hacktoberfest","suggestion","support"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/20699/Omnibus-refresh2.png","created_at":"2013-12-02T12:36:52.000Z","creator_id":1,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/master/README.md","star_count":694,"updated_at":"2026-06-02T16:03:35.422Z","visibility":"public","description":"This project creates full-stack platform-specific downloadable packages for GitLab. ","forks_count":1348,"lfs_enabled":true,"public_jobs":false,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/omnibus-gitlab.git","description_html":"<p data-sourcepos=\"1:1-1:84\" dir=\"auto\">This project creates full-stack platform-specific downloadable packages for GitLab.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/omnibus-gitlab.git","last_activity_at":"2026-06-02T15:56:43.618Z","packages_enabled":false,"snippets_enabled":false,"open_issues_count":1127,"wiki_access_level":"disabled","max_artifacts_size":2000,"pages_access_level":"enabled","shared_with_groups":[{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40},{"group_id":58054119,"group_name":"tw-leadership","group_full_path":"gitlab-org/tw-leadership","group_access_level":30},{"group_id":72507027,"group_name":"container-registry","group_full_path":"gitlab-org/maintainers/container-registry","group_access_level":40},{"group_id":10510117,"group_name":"legal-reviewers","group_full_path":"gitlab-org/legal-reviewers","group_access_level":30},{"group_id":73925400,"group_name":"distribution-build","group_full_path":"gitlab-org/maintainers/distribution-build","group_access_level":40},{"group_id":73925420,"group_name":"distribution-package-configuration","group_full_path":"gitlab-org/maintainers/distribution-package-configuration","group_access_level":40},{"group_id":104212404,"group_name":"Maintainers","group_full_path":"gitlab-com/localization/maintainers","group_access_level":30},{"group_id":123409328,"group_name":"Tech Docs Engineers","group_full_path":"gitlab-com/localization/maintainers/tech-docs","group_access_level":30},{"group_id":117865463,"group_name":"Japanese Content","group_full_path":"gitlab-com/localization/maintainers/japanese","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / omnibus-gitlab","path_with_namespace":"gitlab-org/omnibus-gitlab","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":1,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"squash_commit_template":"%{first_commit}","merge_pipelines_enabled":true,"merge_requests_template":"<!-- After merging changes to this template, update the `Default description template for merge requests` -->\r\n<!-- found under Settings - General Merge Requests -->\r\n## What does this MR do?\r\n\r\n<!-- Briefly describe what this MR is about. -->\r\n\r\n%{first_multiline_commit}\r\n\r\n## Related issues\r\n\r\n<!-- Link related issues below. Insert the issue link or reference after the word \"Closes\" if merging this should automatically close it. -->\r\n\r\n## Checklist\r\n\r\nSee [Definition of done](https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/CONTRIBUTING.md#definition-of-done).\r\n\r\nFor anything in this list which will not be completed, please provide a reason in the MR discussion.\r\n\r\n### Required\r\n\r\n- [ ] MR title and description are up to date, accurate, and descriptive.\r\n- [ ] MR targeting the appropriate branch.\r\n- [ ] Latest Merge Result pipeline is green.\r\n- [ ] When ready for review, MR is labeled ~\"workflow::ready for review\" per the [Distribution MR workflow](https://about.gitlab.com/handbook/engineering/development/enablement/systems/distribution/merge_requests.html).\r\n\r\n#### For GitLab team members\r\n\r\nIf you don't have access to this, the reviewer should trigger these jobs for you during the review process.\r\n\r\n- [ ] The manual `Trigger:ee-package` jobs have a green pipeline running against latest commit.\r\n- [ ] If `config/software` or `config/patches` directories are changed, make sure the `build-package-on-all-os` job within the `Trigger:ee-package` downstream pipeline succeeded.\r\n- [ ] If you are changing anything SSL related, then the `Trigger:package:fips` manual job within the `Trigger:ee-package` downstream pipeline must succeed.\r\n- [ ] If CI configuration is changed, the branch must be pushed to [`dev.gitlab.org`](https://dev.gitlab.org/gitlab/omnibus-gitlab) to confirm regular branch builds aren't broken.\r\n\r\n### Expected (please provide an explanation if not completing)\r\n\r\n- [ ] Test plan indicating conditions for success has been posted and passes.\r\n- [ ] Documentation created/updated.\r\n- [ ] Tests added.\r\n- [ ] Integration tests added to [GitLab QA](https://gitlab.com/gitlab-org/gitlab-qa).\r\n- [ ] Equivalent MR/issue for the [GitLab Chart](https://gitlab.com/gitlab-org/charts/gitlab) opened.\r\n- [ ] Validate potential values for new configuration settings. Formats such as integer `10`, duration `10s`, URI `scheme://user:passwd@host:port` may require quotation or other special handling when rendered in a template and written to a configuration file.\r\n\r\n/label ~\"devops::gitlab delivery\" ~\"department::infrastructure platforms\"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/omnibus-gitlab","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":9438583,"name":"labkit","path":"labkit","_links":{"self":"https://gitlab.com/api/v4/projects/9438583","events":"https://gitlab.com/api/v4/projects/9438583/events","issues":"https://gitlab.com/api/v4/projects/9438583/issues","labels":"https://gitlab.com/api/v4/projects/9438583/labels","members":"https://gitlab.com/api/v4/projects/9438583/members","repo_branches":"https://gitlab.com/api/v4/projects/9438583/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/9438583/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/9438583/merge_requests"},"mirror":false,"topics":["hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/labkit","archived":false,"tag_list":["hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/9438583/labkit.png","created_at":"2018-11-16T15:07:08.713Z","creator_id":895869,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/labkit/-/blob/master/README.md","star_count":37,"updated_at":"2026-06-02T15:29:43.933Z","visibility":"public","description":"LabKit is minimalist library to provide functionality for Go services at GitLab.","forks_count":20,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/labkit.git","description_html":"<p data-sourcepos=\"1:1-1:80\" dir=\"auto\">LabKit is minimalist library to provide functionality for Go services at GitLab.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/labkit.git","last_activity_at":"2026-06-02T15:29:43.933Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":40,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / labkit","path_with_namespace":"gitlab-org/labkit","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}\n","releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":1,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":false,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/labkit","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":78255993,"name":"caproni","path":"caproni","_links":{"self":"https://gitlab.com/api/v4/projects/78255993","events":"https://gitlab.com/api/v4/projects/78255993/events","issues":"https://gitlab.com/api/v4/projects/78255993/issues","labels":"https://gitlab.com/api/v4/projects/78255993/labels","members":"https://gitlab.com/api/v4/projects/78255993/members","repo_branches":"https://gitlab.com/api/v4/projects/78255993/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/78255993/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/78255993/merge_requests"},"mirror":false,"topics":["cloud-native","developer","gdk","kubernetes"],"web_url":"https://gitlab.com/gitlab-org/caproni","archived":false,"tag_list":["cloud-native","developer","gdk","kubernetes"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2026-02-05T11:06:57.522Z","creator_id":895869,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/caproni/-/blob/main/README.md","star_count":9,"updated_at":"2026-06-02T15:27:55.622Z","visibility":"public","description":"Caproni is an alternative development toolkit for developing GitLab that uses Cloud Native GitLab Charts and Kubernetes in the development process.","forks_count":2,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/caproni.git","description_html":"<p data-sourcepos=\"1:1-1:147\" dir=\"auto\">Caproni is an alternative development toolkit for developing GitLab that uses Cloud Native GitLab Charts and Kubernetes in the development process.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/caproni.git","last_activity_at":"2026-06-02T15:27:55.523Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":57,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":126633778,"group_name":"caproni","group_full_path":"gitlab-org/maintainers/caproni","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / caproni","path_with_namespace":"gitlab-org/caproni","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","merge_request_title_regex":"","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2026-06-02T14:05:06.122Z","name_regex_keep":"(latest.*|v.+|.*\\.sig)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":true,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/caproni","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","merge_request_title_regex_description":"","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":34675721,"name":"cli","path":"cli","_links":{"self":"https://gitlab.com/api/v4/projects/34675721","events":"https://gitlab.com/api/v4/projects/34675721/events","issues":"https://gitlab.com/api/v4/projects/34675721/issues","labels":"https://gitlab.com/api/v4/projects/34675721/labels","members":"https://gitlab.com/api/v4/projects/34675721/members","repo_branches":"https://gitlab.com/api/v4/projects/34675721/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/34675721/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/34675721/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/cli","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/34675721/cli-logo.png","created_at":"2022-03-21T18:49:22.691Z","creator_id":40375,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/cli/-/blob/main/README.md","star_count":1006,"updated_at":"2026-06-02T15:31:03.314Z","visibility":"public","description":"A GitLab CLI tool bringing GitLab to your command line","forks_count":388,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"Please select the appropriate template for submitting your issue from the dropdown above.\r\n\r\n/label ~\"devops::create\" ~\"group::code review\" ~\"Category:GitLab CLI\" ~\"cli\"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/cli.git","description_html":"<p data-sourcepos=\"1:1-1:54\" dir=\"auto\">A GitLab CLI tool bringing GitLab to your command line</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/cli.git","last_activity_at":"2026-06-02T15:20:39.464Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":402,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / cli","path_with_namespace":"gitlab-org/cli","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"disabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","merge_request_title_regex":"^(feat|fix|docs|style|refactor|perf|test|chore|build|ci|revert)(\\([a-z0-9- ]+\\))?!?: .+","requirements_access_level":"disabled","suggestion_commit_message":"chore: Apply %{suggestions_count} suggestion(s) to %{files_count} file(s)\r\n\r\n%{co_authored_by}","container_registry_enabled":true,"feature_flags_access_level":"disabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2022-03-22T18:49:22.734Z"},"infrastructure_access_level":"disabled","merge_requests_access_level":"enabled","model_registry_access_level":"disabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"disabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/cli","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","merge_request_title_regex_description":"Titles must match conventional commits format.","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":14694517,"name":"iglu","path":"iglu","_links":{"self":"https://gitlab.com/api/v4/projects/14694517","events":"https://gitlab.com/api/v4/projects/14694517/events","labels":"https://gitlab.com/api/v4/projects/14694517/labels","members":"https://gitlab.com/api/v4/projects/14694517/members","repo_branches":"https://gitlab.com/api/v4/projects/14694517/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/14694517/cluster_agents"},"mirror":false,"topics":["hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/iglu","archived":false,"tag_list":["hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/14694517/iglu-gitlab.png","created_at":"2019-10-07T15:15:45.396Z","creator_id":4409816,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/iglu/-/blob/master/README.md","star_count":4,"updated_at":"2026-06-02T15:27:56.562Z","visibility":"public","description":"Iglu Schema Registry for https://gitlab-org.gitlab.io/iglu","forks_count":7,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"failed","squash_option":"default_on","default_branch":"master","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/iglu.git","description_html":"<p data-sourcepos=\"1:1-1:58\" dir=\"auto\">Iglu Schema Registry for <a href=\"https://gitlab-org.gitlab.io/iglu\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://gitlab-org.gitlab.io/iglu</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/iglu.git","last_activity_at":"2026-06-02T15:17:42.966Z","packages_enabled":true,"snippets_enabled":true,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"private","name_with_namespace":"GitLab.org / iglu","path_with_namespace":"gitlab-org/iglu","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":1,"merge_requests_enabled":false,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"disabled","suggestion_commit_message":"","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"private","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/iglu","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":2009901,"name":"Gitaly","path":"gitaly","_links":{"self":"https://gitlab.com/api/v4/projects/2009901","events":"https://gitlab.com/api/v4/projects/2009901/events","issues":"https://gitlab.com/api/v4/projects/2009901/issues","labels":"https://gitlab.com/api/v4/projects/2009901/labels","members":"https://gitlab.com/api/v4/projects/2009901/members","repo_branches":"https://gitlab.com/api/v4/projects/2009901/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/2009901/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/2009901/merge_requests"},"mirror":false,"topics":["Canonical","git","gitlab","infra-mgmt Managed","rpc"],"web_url":"https://gitlab.com/gitlab-org/gitaly","archived":false,"tag_list":["Canonical","git","gitlab","infra-mgmt Managed","rpc"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/2009901/gitaly7.png","created_at":"2016-11-14T21:07:35.543Z","creator_id":274314,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitaly/-/blob/master/README.md","star_count":435,"updated_at":"2026-06-02T15:48:12.267Z","visibility":"public","description":"Gitaly is a Git RPC service for handling all the git calls made by GitLab","forks_count":381,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitaly.git","description_html":"<p data-sourcepos=\"1:1-1:73\" dir=\"auto\">Gitaly is a Git RPC service for handling all the git calls made by GitLab</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitaly.git","last_activity_at":"2026-06-02T15:14:51.366Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":745,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40},{"group_id":1413584,"group_name":"gl-gitaly","group_full_path":"gl-gitaly","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Gitaly","path_with_namespace":"gitlab-org/gitaly","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}\n","releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":2,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitaly","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":46649240,"name":"Gitlab Zoekt","path":"gitlab-zoekt-indexer","_links":{"self":"https://gitlab.com/api/v4/projects/46649240","events":"https://gitlab.com/api/v4/projects/46649240/events","issues":"https://gitlab.com/api/v4/projects/46649240/issues","labels":"https://gitlab.com/api/v4/projects/46649240/labels","members":"https://gitlab.com/api/v4/projects/46649240/members","repo_branches":"https://gitlab.com/api/v4/projects/46649240/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/46649240/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/46649240/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-zoekt-indexer","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2023-06-07T04:07:20.611Z","creator_id":4719382,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-zoekt-indexer/-/blob/main/README.md","star_count":5,"updated_at":"2026-06-02T15:25:12.062Z","visibility":"public","description":"","forks_count":6,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-zoekt-indexer.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-zoekt-indexer.git","last_activity_at":"2026-06-02T15:09:58.502Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":34,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Gitlab Zoekt","path_with_namespace":"gitlab-org/gitlab-zoekt-indexer","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2023-06-08T04:07:20.630Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-zoekt-indexer","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":250833,"name":"gitlab-runner","path":"gitlab-runner","_links":{"self":"https://gitlab.com/api/v4/projects/250833","events":"https://gitlab.com/api/v4/projects/250833/events","issues":"https://gitlab.com/api/v4/projects/250833/issues","labels":"https://gitlab.com/api/v4/projects/250833/labels","members":"https://gitlab.com/api/v4/projects/250833/members","repo_branches":"https://gitlab.com/api/v4/projects/250833/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/250833/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/250833/merge_requests"},"mirror":false,"topics":["golang","hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/gitlab-runner","archived":false,"tag_list":["golang","hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/250833/runner.png","created_at":"2015-04-27T21:10:25.322Z","creator_id":12452,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-runner/-/blob/main/README.md","star_count":2558,"updated_at":"2026-06-02T14:55:49.959Z","visibility":"public","description":"GitLab Runner is the open source project that is used to run your CI/CD jobs and send the results back to GitLab","forks_count":2596,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-runner.git","description_html":"<p data-sourcepos=\"1:1-1:112\" dir=\"auto\">GitLab Runner is the open source project that is used to run your CI/CD jobs and send the results back to GitLab</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-runner.git","last_activity_at":"2026-06-02T14:55:49.959Z","packages_enabled":false,"snippets_enabled":false,"open_issues_count":2555,"wiki_access_level":"enabled","max_artifacts_size":4096,"pages_access_level":"enabled","shared_with_groups":[{"group_id":7425590,"group_name":"runner-maintainers","group_full_path":"gitlab-com/runner-maintainers","group_access_level":40},{"group_id":8810158,"group_name":"runner-docs-maintainers","group_full_path":"gitlab-com/runner-docs-maintainers","group_access_level":40},{"group_id":104212404,"group_name":"Maintainers","group_full_path":"gitlab-com/localization/maintainers","group_access_level":30},{"group_id":117865463,"group_name":"Japanese Content","group_full_path":"gitlab-com/localization/maintainers/japanese","group_access_level":30},{"group_id":123409328,"group_name":"Tech Docs Engineers","group_full_path":"gitlab-com/localization/maintainers/tech-docs","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / gitlab-runner","path_with_namespace":"gitlab-org/gitlab-runner","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":1,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"squash_commit_template":"%{first_commit}","merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-runner","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":true,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":5261717,"name":"gitlab-vscode-extension","path":"gitlab-vscode-extension","_links":{"self":"https://gitlab.com/api/v4/projects/5261717","events":"https://gitlab.com/api/v4/projects/5261717/events","issues":"https://gitlab.com/api/v4/projects/5261717/issues","labels":"https://gitlab.com/api/v4/projects/5261717/labels","members":"https://gitlab.com/api/v4/projects/5261717/members","repo_branches":"https://gitlab.com/api/v4/projects/5261717/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/5261717/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/5261717/merge_requests"},"mirror":false,"topics":["gitlab","hacktoberfest","vscode","vscode-extension"],"web_url":"https://gitlab.com/gitlab-org/gitlab-vscode-extension","archived":false,"tag_list":["gitlab","hacktoberfest","vscode","vscode-extension"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/5261717/logo.png","created_at":"2018-01-25T00:56:33.005Z","creator_id":502136,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/README.md","star_count":547,"updated_at":"2026-06-02T14:51:23.263Z","visibility":"public","description":"","forks_count":366,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_on","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-vscode-extension.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-vscode-extension.git","last_activity_at":"2026-06-02T14:51:22.531Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":496,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":58054119,"group_name":"tw-leadership","group_full_path":"gitlab-org/tw-leadership","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / gitlab-vscode-extension","path_with_namespace":"gitlab-org/gitlab-vscode-extension","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"issue_branch_template":"","merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","merge_request_title_regex":"^(feat|fix|docs|style|refactor|perf|test|chore|build|ci|revert)(\\([a-z0-9- ]+\\))?!?: .+","requirements_access_level":"enabled","suggestion_commit_message":"chore: Apply %{suggestions_count} suggestion(s) to %{files_count} file(s)","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-vscode-extension","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","merge_request_title_regex_description":"Title must be a valid conventional commit message like `feat: new feature`.","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":16842968,"name":"GitLab Status Page","path":"status-page","_links":{"self":"https://gitlab.com/api/v4/projects/16842968","events":"https://gitlab.com/api/v4/projects/16842968/events","issues":"https://gitlab.com/api/v4/projects/16842968/issues","labels":"https://gitlab.com/api/v4/projects/16842968/labels","members":"https://gitlab.com/api/v4/projects/16842968/members","repo_branches":"https://gitlab.com/api/v4/projects/16842968/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/16842968/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/16842968/merge_requests"},"mirror":false,"topics":["aws","hacktoberfest","incident","static site","vue"],"web_url":"https://gitlab.com/gitlab-org/status-page","archived":false,"tag_list":["aws","hacktoberfest","incident","static site","vue"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/16842968/gitlab-icon-rgb.png","created_at":"2020-02-11T14:57:07.134Z","creator_id":408677,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/status-page/-/blob/master/README.md","star_count":20,"updated_at":"2026-06-02T14:49:13.603Z","visibility":"public","description":"With the GitLab Status page, you can create and deploy a static website to communicate efficiently with users during an incident.","forks_count":32,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/status-page.git","description_html":"<p data-sourcepos=\"1:1-1:129\" dir=\"auto\">With the GitLab Status page, you can create and deploy a static website to communicate efficiently with users during an incident.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/status-page.git","last_activity_at":"2026-06-02T14:39:20.778Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":21,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":6150316,"group_name":"frontend","group_full_path":"gitlab-org/maintainers/frontend","group_access_level":40},{"group_id":3887968,"group_name":"rails-backend","group_full_path":"gitlab-org/maintainers/rails-backend","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Status Page","path_with_namespace":"gitlab-org/status-page","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"cadence":"7d","enabled":false,"next_run_at":"2020-02-18T14:57:07.152Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/status-page","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":25847700,"name":"GitLab Advisory Database Open Source Edition","path":"advisories-community","_links":{"self":"https://gitlab.com/api/v4/projects/25847700","events":"https://gitlab.com/api/v4/projects/25847700/events","labels":"https://gitlab.com/api/v4/projects/25847700/labels","members":"https://gitlab.com/api/v4/projects/25847700/members","repo_branches":"https://gitlab.com/api/v4/projects/25847700/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/25847700/cluster_agents"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/advisories-community","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2021-04-13T06:10:33.497Z","creator_id":3558825,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/advisories-community/-/blob/main/README.md","star_count":9,"updated_at":"2026-06-02T14:31:45.123Z","visibility":"public","description":"GitLab Advisory Database (Open Source Edition)","forks_count":9,"lfs_enabled":false,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/advisories-community.git","description_html":"<p data-sourcepos=\"1:1-1:46\" dir=\"auto\">GitLab Advisory Database (Open Source Edition)</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/advisories-community.git","last_activity_at":"2026-06-02T14:31:45.123Z","packages_enabled":false,"snippets_enabled":true,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"private","issues_access_level":"private","name_with_namespace":"GitLab.org / GitLab Advisory Database Open Source Edition","path_with_namespace":"gitlab-org/advisories-community","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":false,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2021-04-14T06:10:33.514Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"private","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/advisories-community","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":62674588,"name":"GLQL","path":"glql","_links":{"self":"https://gitlab.com/api/v4/projects/62674588","events":"https://gitlab.com/api/v4/projects/62674588/events","issues":"https://gitlab.com/api/v4/projects/62674588/issues","labels":"https://gitlab.com/api/v4/projects/62674588/labels","members":"https://gitlab.com/api/v4/projects/62674588/members","repo_branches":"https://gitlab.com/api/v4/projects/62674588/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/62674588/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/62674588/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/glql","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2024-10-16T11:05:59.837Z","creator_id":2398164,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/glql/-/blob/main/README.md","star_count":16,"updated_at":"2026-06-02T14:29:33.112Z","visibility":"public","description":"GLQL library written in Rust: transpiles GLQL code to GraphQL and transforms the resulting output","forks_count":9,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/glql.git","description_html":"<p data-sourcepos=\"1:1-1:97\" dir=\"auto\">GLQL library written in Rust: transpiles GLQL code to GraphQL and transforms the resulting output</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/glql.git","last_activity_at":"2026-06-02T14:29:33.112Z","packages_enabled":true,"snippets_enabled":true,"open_issues_count":54,"wiki_access_level":"enabled","pages_access_level":"private","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GLQL","path_with_namespace":"gitlab-org/glql","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":true,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","merge_request_title_regex":"","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2024-10-17T11:05:59.858Z"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":false,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/glql","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","merge_request_title_regex_description":"","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":13284652,"name":"Git","path":"git","_links":{"self":"https://gitlab.com/api/v4/projects/13284652","events":"https://gitlab.com/api/v4/projects/13284652/events","issues":"https://gitlab.com/api/v4/projects/13284652/issues","labels":"https://gitlab.com/api/v4/projects/13284652/labels","members":"https://gitlab.com/api/v4/projects/13284652/members","repo_branches":"https://gitlab.com/api/v4/projects/13284652/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/13284652/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/13284652/merge_requests"},"mirror":true,"topics":["Canonical","git","infra-mgmt Managed"],"web_url":"https://gitlab.com/gitlab-org/git","archived":false,"tag_list":["Canonical","git","infra-mgmt Managed"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/13284652/logomark-orange_2x.png","created_at":"2019-07-12T07:53:47.855Z","creator_id":101578,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/git/-/blob/master/README.md","star_count":21,"updated_at":"2026-06-02T14:21:56.504Z","visibility":"public","description":"Used to develop GitLab's version of Git. Branches mirrored from  https://git.kernel.org/pub/scm/git/git.git are protected.","forks_count":26,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":true,"import_status":"finished","squash_option":"never","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"mirror_user_id":13728016,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/git.git","description_html":"<p data-sourcepos=\"1:1-1:122\" dir=\"auto\">Used to develop GitLab's version of Git. Branches mirrored from  <a data-sourcepos=\"1:66-1:107\" href=\"https://git.kernel.org/pub/scm/git/git.git\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://git.kernel.org/pub/scm/git/git.git</a> are protected.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/git.git","last_activity_at":"2026-06-02T14:21:56.504Z","packages_enabled":false,"snippets_enabled":true,"open_issues_count":168,"wiki_access_level":"enabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40},{"group_id":97627443,"group_name":"Git team","group_full_path":"gitlab-org/data-access/git","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Git","path_with_namespace":"gitlab-org/git","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"issue_branch_template":"","mirror_trigger_builds":false,"releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":false,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","only_mirror_protected_branches":true,"spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/git","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":true,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":false,"resolve_outdated_diff_discussions":false,"mirror_overwrites_diverged_branches":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"enabled","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":false},{"id":2890326,"name":"GitLab UX Research","path":"ux-research","_links":{"self":"https://gitlab.com/api/v4/projects/2890326","events":"https://gitlab.com/api/v4/projects/2890326/events","issues":"https://gitlab.com/api/v4/projects/2890326/issues","labels":"https://gitlab.com/api/v4/projects/2890326/labels","members":"https://gitlab.com/api/v4/projects/2890326/members","repo_branches":"https://gitlab.com/api/v4/projects/2890326/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/2890326/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/2890326/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/ux-research","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/2890326/gitlab-account.png","created_at":"2017-03-13T19:29:05.277Z","creator_id":15139,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/ux-research/-/blob/master/README.md","star_count":84,"updated_at":"2026-06-02T14:03:41.679Z","visibility":"public","description":"This project is used to propose UX research, prioritise and track UX research in progress at GitLab.","forks_count":13,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":true,"import_status":"none","squash_option":"default_off","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"Select a template from the dropdown above: \r\n- Research Issue: for all new research requests.\r\n- Recruiting Request Issue: for all recruitment requests of existing research issues.\r\n- Incentive Request Issue: for all incentive requests of existing research issues where recruitment issue does not cover incentive processing.\r\n\r\n/confidential","ssh_url_to_repo":"git@gitlab.com:gitlab-org/ux-research.git","description_html":"<p data-sourcepos=\"1:1-1:100\" dir=\"auto\">This project is used to propose UX research, prioritise and track UX research in progress at GitLab.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/ux-research.git","last_activity_at":"2026-06-02T14:03:41.679Z","packages_enabled":false,"snippets_enabled":false,"open_issues_count":222,"wiki_access_level":"enabled","pages_access_level":"disabled","shared_with_groups":[{"group_id":6543,"group_name":"GitLab.com","group_full_path":"gitlab-com","group_access_level":30}],"builds_access_level":"disabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab UX Research","path_with_namespace":"gitlab-org/ux-research","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":false,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":false,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"container_registry_access_level":"disabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/ux-research","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":false,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":13831684,"name":"container-registry","path":"container-registry","_links":{"self":"https://gitlab.com/api/v4/projects/13831684","events":"https://gitlab.com/api/v4/projects/13831684/events","issues":"https://gitlab.com/api/v4/projects/13831684/issues","labels":"https://gitlab.com/api/v4/projects/13831684/labels","members":"https://gitlab.com/api/v4/projects/13831684/members","repo_branches":"https://gitlab.com/api/v4/projects/13831684/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/13831684/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/13831684/merge_requests"},"mirror":false,"topics":["golang","hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/container-registry","archived":false,"tag_list":["golang","hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2019-08-15T15:33:17.563Z","creator_id":116,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/container-registry/-/blob/master/README.md","star_count":48,"updated_at":"2026-06-02T14:01:59.224Z","visibility":"public","description":"","forks_count":127,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"finished","squash_option":"default_on","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"/label ~\"section::ops\" ~\"devops::package\" ~\"group::container-registry\" ~\"Category:Container Registry\" ~backend ~golang\n","ssh_url_to_repo":"git@gitlab.com:gitlab-org/container-registry.git","description_html":"","http_url_to_repo":"https://gitlab.com/gitlab-org/container-registry.git","last_activity_at":"2026-06-02T13:54:23.743Z","packages_enabled":false,"snippets_enabled":false,"open_issues_count":357,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / container-registry","path_with_namespace":"gitlab-org/container-registry","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["Product"],"issue_branch_template":"","merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}\n","releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","merge_request_title_regex":"","mr_default_title_template":"","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/container-registry","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","merge_request_title_regex_description":"","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":430285,"name":"release-tools","path":"release-tools","_links":{"self":"https://gitlab.com/api/v4/projects/430285","events":"https://gitlab.com/api/v4/projects/430285/events","labels":"https://gitlab.com/api/v4/projects/430285/labels","members":"https://gitlab.com/api/v4/projects/430285/members","repo_branches":"https://gitlab.com/api/v4/projects/430285/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/430285/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/430285/merge_requests"},"mirror":false,"topics":["hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/release-tools","archived":false,"tag_list":["hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/430285/ship-it-squirrel.png","created_at":"2015-08-26T23:35:56.146Z","creator_id":15139,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/release-tools/-/blob/master/README.md","star_count":101,"updated_at":"2026-06-02T13:21:59.852Z","visibility":"public","description":"Instructions and tools for releasing GitLab.","forks_count":158,"lfs_enabled":false,"public_jobs":false,"jobs_enabled":false,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":false,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/release-tools.git","description_html":"<p data-sourcepos=\"1:1-1:44\" dir=\"auto\">Instructions and tools for releasing GitLab.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/release-tools.git","last_activity_at":"2026-06-02T13:21:59.852Z","packages_enabled":false,"snippets_enabled":true,"wiki_access_level":"disabled","pages_access_level":"disabled","shared_with_groups":[{"group_id":3910297,"group_name":"GitLab Release and Deploy","group_full_path":"gitlab-org/delivery","group_access_level":40},{"group_id":116548814,"group_name":"release-supervisors","group_full_path":"gitlab-org/release-supervisors","group_access_level":30}],"builds_access_level":"private","issues_access_level":"disabled","name_with_namespace":"GitLab.org / release-tools","path_with_namespace":"gitlab-org/release-tools","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\n\n%{title}\n\n%{issues}\n\nSee merge request %{url}\n\nMerged-by: %{merged_by}\n%{approved_by}\n%{reviewed_by}\n%{co_authored_by}\n","releases_access_level":"enabled","snippets_access_level":"enabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"disabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":false,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":5,"cadence":"1d","enabled":true,"name_regex":".*","older_than":"7d","next_run_at":"2026-06-02T23:44:24.032Z","name_regex_keep":"(master|master-.*|rpereira-auto-deploy-view-poc)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/release-tools","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":82347088,"name":"Theseus","path":"theseus","_links":{"self":"https://gitlab.com/api/v4/projects/82347088","events":"https://gitlab.com/api/v4/projects/82347088/events","issues":"https://gitlab.com/api/v4/projects/82347088/issues","labels":"https://gitlab.com/api/v4/projects/82347088/labels","members":"https://gitlab.com/api/v4/projects/82347088/members","repo_branches":"https://gitlab.com/api/v4/projects/82347088/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/82347088/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/82347088/merge_requests"},"mirror":false,"topics":[],"web_url":"https://gitlab.com/gitlab-org/theseus","archived":false,"tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2026-05-19T15:52:44.307Z","creator_id":13728016,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/theseus/-/blob/main/README.md","star_count":0,"updated_at":"2026-06-02T12:29:31.098Z","visibility":"public","description":"Documentation for the Theseus project.","forks_count":0,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/theseus.git","description_html":"<p data-sourcepos=\"1:1-1:38\" dir=\"auto\">Documentation for the Theseus project.</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/theseus.git","last_activity_at":"2026-06-02T12:29:31.098Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":2,"wiki_access_level":"disabled","pages_access_level":"private","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / Theseus","path_with_namespace":"gitlab-org/theseus","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":["New Project"],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":false,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":false,"name_regex":".*","older_than":"90d","next_run_at":"2026-06-02T14:05:05.561Z","name_regex_keep":"(latest.*|v.+|.*\\.sig)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":false,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":true,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/theseus","duo_secret_detection_fp_enabled":false,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":145205,"name":"GitLab Omnibus Builder","path":"gitlab-omnibus-builder","_links":{"self":"https://gitlab.com/api/v4/projects/145205","events":"https://gitlab.com/api/v4/projects/145205/events","issues":"https://gitlab.com/api/v4/projects/145205/issues","labels":"https://gitlab.com/api/v4/projects/145205/labels","members":"https://gitlab.com/api/v4/projects/145205/members","repo_branches":"https://gitlab.com/api/v4/projects/145205/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/145205/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/145205/merge_requests"},"mirror":false,"topics":["hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/gitlab-omnibus-builder","archived":false,"tag_list":["hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2015-01-15T16:25:30.695Z","creator_id":5302,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-omnibus-builder/-/blob/master/README.md","star_count":13,"updated_at":"2026-06-02T12:28:43.575Z","visibility":"public","description":"Cookbook to set up omnibus builders for omnibus-gitlab and omnibus-gitlab-runner","forks_count":22,"lfs_enabled":true,"public_jobs":false,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"master","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-omnibus-builder.git","description_html":"<p data-sourcepos=\"1:1-1:80\" dir=\"auto\">Cookbook to set up omnibus builders for omnibus-gitlab and omnibus-gitlab-runner</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-omnibus-builder.git","last_activity_at":"2026-06-02T12:22:09.652Z","snippets_enabled":false,"open_issues_count":32,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Omnibus Builder","path_with_namespace":"gitlab-org/gitlab-omnibus-builder","forking_access_level":"enabled","merge_trains_enabled":false,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":1,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":false,"squash_commit_template":"%{first_multiline_commit}","merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"disabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-omnibus-builder","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":74823,"name":"GitLab Development Kit","path":"gitlab-development-kit","_links":{"self":"https://gitlab.com/api/v4/projects/74823","events":"https://gitlab.com/api/v4/projects/74823/events","issues":"https://gitlab.com/api/v4/projects/74823/issues","labels":"https://gitlab.com/api/v4/projects/74823/labels","members":"https://gitlab.com/api/v4/projects/74823/members","repo_branches":"https://gitlab.com/api/v4/projects/74823/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/74823/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/74823/merge_requests"},"mirror":false,"topics":["development","hacktoberfest","rails","ruby"],"web_url":"https://gitlab.com/gitlab-org/gitlab-development-kit","archived":false,"tag_list":["development","hacktoberfest","rails","ruby"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/74823/GDK-refresh-120.png","created_at":"2014-08-07T07:26:32.822Z","creator_id":5302,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/README.md","star_count":778,"updated_at":"2026-06-02T09:11:48.480Z","visibility":"public","description":"Get started with GitLab Rails development using the GDK.\r\n\r\nhttps://gitlab-org.gitlab.io/gitlab-development-kit/","forks_count":914,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_on","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"issues_template":"","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-development-kit.git","description_html":"<p data-sourcepos=\"1:1-1:56\" dir=\"auto\">Get started with GitLab Rails development using the GDK.</p>&#x000A;<p data-sourcepos=\"3:1-3:52\" dir=\"auto\"><a data-sourcepos=\"3:1-3:52\" href=\"https://gitlab-org.gitlab.io/gitlab-development-kit/\" rel=\"nofollow noreferrer noopener\" target=\"_blank\">https://gitlab-org.gitlab.io/gitlab-development-kit/</a></p>","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-development-kit.git","last_activity_at":"2026-06-02T09:11:48.480Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":506,"wiki_access_level":"disabled","pages_access_level":"enabled","shared_with_groups":[{"group_id":53051354,"group_name":"gitlab-development-kit","group_full_path":"gitlab-org/maintainers/gitlab-development-kit","group_access_level":40},{"group_id":1356356,"group_name":"GitLab docs team","group_full_path":"gl-docsteam","group_access_level":40},{"group_id":92017971,"group_name":"Documentation","group_full_path":"gitlab-org/maintainers/gitlab-development-kit/documentation","group_access_level":40},{"group_id":98545975,"group_name":"Cells Infrastructure team","group_full_path":"gitlab-com/gl-infra/tenant-scale/cells-infrastructure","group_access_level":30}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / GitLab Development Kit","path_with_namespace":"gitlab-org/gitlab-development-kit","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"compliance_frameworks":["Product"],"merge_commit_template":"Merge branch '%{source_branch}' into '%{target_branch}'\r\n\r\n%{title}\r\n\r\n%{issues}\r\n\r\nSee merge request %{url}\r\n\r\nMerged-by: %{merged_by}\r\n%{approved_by}\r\n%{reviewed_by}\r\n%{co_authored_by}","releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":1,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"merge_requests_template":"","repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","suggestion_commit_message":"","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":5,"cadence":"7d","enabled":true,"name_regex":".*","older_than":"90d","next_run_at":"2026-06-08T04:12:14.690Z","name_regex_keep":"(main|stable-.*)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"public","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":false,"allow_merge_on_skipped_pipeline":false,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/gitlab-development-kit","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":false,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true},{"id":75909580,"name":"packhorse","path":"packhorse","_links":{"self":"https://gitlab.com/api/v4/projects/75909580","events":"https://gitlab.com/api/v4/projects/75909580/events","issues":"https://gitlab.com/api/v4/projects/75909580/issues","labels":"https://gitlab.com/api/v4/projects/75909580/labels","members":"https://gitlab.com/api/v4/projects/75909580/members","repo_branches":"https://gitlab.com/api/v4/projects/75909580/repository/branches","cluster_agents":"https://gitlab.com/api/v4/projects/75909580/cluster_agents","merge_requests":"https://gitlab.com/api/v4/projects/75909580/merge_requests"},"mirror":false,"topics":["service"],"web_url":"https://gitlab.com/gitlab-org/packhorse","archived":false,"tag_list":["service"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"created_at":"2025-11-07T13:20:12.960Z","creator_id":895869,"empty_repo":false,"readme_url":"https://gitlab.com/gitlab-org/packhorse/-/blob/main/README.md","star_count":5,"updated_at":"2026-06-02T09:40:44.414Z","visibility":"public","description":"A horizontally scalable cache for git, for use inside or outside the application, designed to improve GitLab CI clone performance","forks_count":0,"lfs_enabled":true,"public_jobs":true,"jobs_enabled":true,"merge_method":"merge","wiki_enabled":false,"import_status":"none","squash_option":"default_off","ci_config_path":"","default_branch":"main","emails_enabled":true,"issues_enabled":true,"emails_disabled":false,"ssh_url_to_repo":"git@gitlab.com:gitlab-org/packhorse.git","description_html":"<p data-sourcepos=\"1:1-1:129\" dir=\"auto\">A horizontally scalable cache for git, for use inside or outside the application, designed to improve GitLab CI clone performance</p>","http_url_to_repo":"https://gitlab.com/gitlab-org/packhorse.git","last_activity_at":"2026-06-02T08:58:43.151Z","packages_enabled":true,"snippets_enabled":false,"open_issues_count":13,"wiki_access_level":"disabled","pages_access_level":"private","shared_with_groups":[{"group_id":1413584,"group_name":"gl-gitaly","group_full_path":"gl-gitaly","group_access_level":40}],"builds_access_level":"enabled","issues_access_level":"enabled","name_with_namespace":"GitLab.org / packhorse","path_with_namespace":"gitlab-org/packhorse","forking_access_level":"enabled","merge_trains_enabled":true,"monitor_access_level":"enabled","requirements_enabled":true,"service_desk_enabled":true,"compliance_frameworks":[],"releases_access_level":"enabled","snippets_access_level":"disabled","analytics_access_level":"enabled","approvals_before_merge":0,"merge_requests_enabled":true,"request_access_enabled":false,"shared_runners_enabled":true,"merge_pipelines_enabled":true,"repository_access_level":"enabled","duo_remote_flows_enabled":true,"repository_object_format":"sha1","environments_access_level":"enabled","requirements_access_level":"enabled","container_registry_enabled":true,"feature_flags_access_level":"enabled","show_diff_preview_in_email":true,"autoclose_referenced_issues":true,"can_create_merge_request_in":false,"container_expiration_policy":{"keep_n":10,"cadence":"1d","enabled":true,"name_regex":".*","older_than":"90d","next_run_at":"2026-06-02T08:04:45.335Z","name_regex_keep":"(latest.*|v.+|.*\\.sig)"},"infrastructure_access_level":"enabled","merge_requests_access_level":"enabled","model_registry_access_level":"enabled","auto_duo_code_review_enabled":true,"duo_sast_vr_workflow_enabled":false,"duo_sast_fp_detection_enabled":true,"package_registry_access_level":"enabled","duo_foundational_flows_enabled":true,"enforce_auth_checks_on_uploads":true,"model_experiments_access_level":"enabled","spp_repository_pipeline_access":true,"container_registry_access_level":"enabled","container_registry_image_prefix":"registry.gitlab.com/gitlab-org/packhorse","duo_secret_detection_fp_enabled":true,"merge_trains_skip_train_allowed":false,"security_and_compliance_enabled":false,"prevent_merge_without_jira_issue":false,"remove_source_branch_after_merge":true,"resolve_outdated_diff_discussions":false,"printing_merge_request_link_enabled":true,"security_and_compliance_access_level":"private","only_allow_merge_if_pipeline_succeeds":true,"security_policy_pipeline_must_succeed":false,"allow_pipeline_trigger_approve_deployment":false,"warn_about_potentially_unwanted_characters":true,"external_authorization_classification_label":"","only_allow_merge_if_all_status_checks_passed":false,"only_allow_merge_if_all_discussions_are_resolved":true}],"meta":{"timestamp":"2026-06-02T16:52:51.485Z","request_id":"45e8ee62-418d-46be-865d-c2e20c8e3f80"},"status":"ok","message":"Group projects","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/search/projects":{"get":{"operationId":"get_v1_search_projects","tags":["Search"],"summary":"Search projects","description":"","parameters":[{"name":"q","in":"query","required":true,"description":"Query","schema":{"type":"string"},"example":"gitlab"},{"name":"per_page","in":"query","required":false,"description":"Page size (max 100)","schema":{"type":"string"}}],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":[{"id":13083,"name":"GitLab FOSS","path":"gitlab-foss","topics":["Canonical","hacktoberfest","infra-mgmt Managed"],"web_url":"https://gitlab.com/gitlab-org/gitlab-foss","tag_list":["Canonical","hacktoberfest","infra-mgmt Managed"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/13083/project_avatar.png","created_at":"2013-09-26T06:02:36.000Z","readme_url":"https://gitlab.com/gitlab-org/gitlab-foss/-/blob/master/README.md","star_count":7157,"visibility":"public","description":"GitLab FOSS is a read-only mirror of GitLab, with all proprietary code removed.\n\nThis project was previously used to host GitLab Community Edition, but all development has now moved to https://gitlab.com/gitlab-org/gitlab.\n","forks_count":8273,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-foss.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-foss.git","last_activity_at":"2026-06-02T16:10:10.672Z","name_with_namespace":"GitLab.org / GitLab FOSS","path_with_namespace":"gitlab-org/gitlab-foss"},{"id":278964,"name":"GitLab","path":"gitlab","topics":["hacktoberfest","javascript","ruby","vue.js"],"web_url":"https://gitlab.com/gitlab-org/gitlab","tag_list":["hacktoberfest","javascript","ruby","vue.js"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/278964/project_avatar.png","created_at":"2015-05-20T10:47:11.949Z","readme_url":"https://gitlab.com/gitlab-org/gitlab/-/blob/master/README.md","star_count":6031,"visibility":"public","description":"GitLab is an open source end-to-end software development platform with built-in version control, issue tracking, code review, CI/CD, and more. Self-host GitLab on your own servers, in a container, or on a cloud provider.","forks_count":12141,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab.git","last_activity_at":"2026-06-02T16:25:33.058Z","name_with_namespace":"GitLab.org / GitLab","path_with_namespace":"gitlab-org/gitlab"},{"id":250833,"name":"gitlab-runner","path":"gitlab-runner","topics":["golang","hacktoberfest"],"web_url":"https://gitlab.com/gitlab-org/gitlab-runner","tag_list":["golang","hacktoberfest"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/250833/runner.png","created_at":"2015-04-27T21:10:25.322Z","readme_url":"https://gitlab.com/gitlab-org/gitlab-runner/-/blob/main/README.md","star_count":2558,"visibility":"public","description":"GitLab Runner is the open source project that is used to run your CI/CD jobs and send the results back to GitLab","forks_count":2596,"default_branch":"main","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-runner.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-runner.git","last_activity_at":"2026-06-02T14:55:49.959Z","name_with_namespace":"GitLab.org / gitlab-runner","path_with_namespace":"gitlab-org/gitlab-runner"},{"id":48832236,"name":"ClashMeta-SUB-Gitlab","path":"clashmeta-sub-gitlab","topics":["Hysteria","clash","clash-meta","reality","subscription","trojan","tuic","vmess","xray"],"web_url":"https://gitlab.com/rwkgyg/clashmeta-sub-gitlab","tag_list":["Hysteria","clash","clash-meta","reality","subscription","trojan","tuic","vmess","xray"],"namespace":{"id":54208965,"kind":"user","name":"甬哥侃侃侃ygkkk","path":"rwkgyg","web_url":"https://gitlab.com/rwkgyg","full_path":"rwkgyg","avatar_url":"/uploads/-/system/user/avatar/11788907/avatar.png"},"created_at":"2023-08-27T02:26:44.094Z","readme_url":"https://gitlab.com/rwkgyg/clashmeta-sub-gitlab/-/blob/main/README.md","star_count":1215,"visibility":"public","description":"Clash-Meta精简配置文件，支持多协议代理的订阅链接生成（已更新至15个协议节点），此订阅链接是不公开的、彻彻底底属于你自己的哦","forks_count":2896,"default_branch":"main","ssh_url_to_repo":"git@gitlab.com:rwkgyg/clashmeta-sub-gitlab.git","http_url_to_repo":"https://gitlab.com/rwkgyg/clashmeta-sub-gitlab.git","last_activity_at":"2025-07-29T06:24:32.896Z","name_with_namespace":"甬哥侃侃侃ygkkk / ClashMeta-SUB-Gitlab","path_with_namespace":"rwkgyg/clashmeta-sub-gitlab"},{"id":7764,"name":"www-gitlab-com","path":"www-gitlab-com","topics":["gitlab","hacktoberfest","handbook"],"web_url":"https://gitlab.com/gitlab-com/www-gitlab-com","tag_list":["gitlab","hacktoberfest","handbook"],"namespace":{"id":6543,"kind":"group","name":"GitLab.com","path":"gitlab-com","web_url":"https://gitlab.com/groups/gitlab-com","full_path":"gitlab-com","avatar_url":"/uploads/-/system/group/avatar/6543/gitlab_logo_192x192.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/7764/gitlab-logo-500.png","created_at":"2013-07-05T12:48:06.000Z","readme_url":"https://gitlab.com/gitlab-com/www-gitlab-com/-/blob/master/README.md","star_count":1068,"visibility":"public","description":"Source for a portion of https://about.gitlab.com/ \r\n\r\nThis repo/project is for the public-facing website of GitLab that's not part of Marketing CMS, which lives https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com\r\n\r\nPlease file product improvement suggestions at https://gitlab.com/gitlab-org/gitlab\r\n\r\n","forks_count":3329,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-com/www-gitlab-com.git","http_url_to_repo":"https://gitlab.com/gitlab-com/www-gitlab-com.git","last_activity_at":"2026-06-02T15:44:54.257Z","name_with_namespace":"GitLab.com / www-gitlab-com","path_with_namespace":"gitlab-com/www-gitlab-com"},{"id":10993694,"name":"goldberg_emulator","path":"goldberg_emulator","topics":[],"web_url":"https://gitlab.com/Mr_Goldberg/goldberg_emulator","tag_list":[],"namespace":{"id":4672301,"kind":"user","name":"Goldberg","path":"Mr_Goldberg","web_url":"https://gitlab.com/Mr_Goldberg","full_path":"Mr_Goldberg","avatar_url":"https://secure.gravatar.com/avatar/8ff75dc37840588899805787dfc7a928adc3d312f35cdf47a4640aa858be50d1?s=80&d=identicon"},"created_at":"2019-02-23T13:50:09.041Z","readme_url":"https://gitlab.com/Mr_Goldberg/goldberg_emulator/-/blob/master/README.md","star_count":1045,"visibility":"public","description":"Steam emulator that emulates steam online features. Lets you play games that use the steam multiplayer apis on a LAN without steam or an internet connection. [Latest Builds](https://mr_goldberg.gitlab.io/goldberg_emulator/)","forks_count":310,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:Mr_Goldberg/goldberg_emulator.git","http_url_to_repo":"https://gitlab.com/Mr_Goldberg/goldberg_emulator.git","last_activity_at":"2026-05-31T13:24:46.634Z","name_with_namespace":"Goldberg / goldberg_emulator","path_with_namespace":"Mr_Goldberg/goldberg_emulator"},{"id":34675721,"name":"cli","path":"cli","topics":[],"web_url":"https://gitlab.com/gitlab-org/cli","tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/34675721/cli-logo.png","created_at":"2022-03-21T18:49:22.691Z","readme_url":"https://gitlab.com/gitlab-org/cli/-/blob/main/README.md","star_count":1006,"visibility":"public","description":"A GitLab CLI tool bringing GitLab to your command line","forks_count":388,"default_branch":"main","ssh_url_to_repo":"git@gitlab.com:gitlab-org/cli.git","http_url_to_repo":"https://gitlab.com/gitlab-org/cli.git","last_activity_at":"2026-06-02T15:20:39.464Z","name_with_namespace":"GitLab.org / cli","path_with_namespace":"gitlab-org/cli"},{"id":473568,"name":"LabCoat","path":"LabCoat","topics":["Jetpack Compose","android","gitlab","ios","kotlin","kotlin-multiplatform"],"web_url":"https://gitlab.com/Commit451/LabCoat","tag_list":["Jetpack Compose","android","gitlab","ios","kotlin","kotlin-multiplatform"],"namespace":{"id":238854,"kind":"group","name":"Commit451","path":"Commit451","web_url":"https://gitlab.com/groups/Commit451","full_path":"Commit451","avatar_url":"/uploads/-/system/group/avatar/238854/512Logo.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/473568/ic_launcher.png","created_at":"2015-09-19T03:17:14.065Z","readme_url":"https://gitlab.com/Commit451/LabCoat/-/blob/main/README.md","star_count":873,"visibility":"public","description":"Manage your GitLab projects on the go! GitLab app for Android and iOS","forks_count":183,"default_branch":"main","ssh_url_to_repo":"git@gitlab.com:Commit451/LabCoat.git","http_url_to_repo":"https://gitlab.com/Commit451/LabCoat.git","last_activity_at":"2026-05-16T20:12:00.905Z","name_with_namespace":"Commit451 / LabCoat","path_with_namespace":"Commit451/LabCoat"},{"id":74823,"name":"GitLab Development Kit","path":"gitlab-development-kit","topics":["development","hacktoberfest","rails","ruby"],"web_url":"https://gitlab.com/gitlab-org/gitlab-development-kit","tag_list":["development","hacktoberfest","rails","ruby"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/74823/GDK-refresh-120.png","created_at":"2014-08-07T07:26:32.822Z","readme_url":"https://gitlab.com/gitlab-org/gitlab-development-kit/-/blob/main/README.md","star_count":778,"visibility":"public","description":"Get started with GitLab Rails development using the GDK.\r\n\r\nhttps://gitlab-org.gitlab.io/gitlab-development-kit/","forks_count":914,"default_branch":"main","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-development-kit.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-development-kit.git","last_activity_at":"2026-06-02T09:11:48.480Z","name_with_namespace":"GitLab.org / GitLab Development Kit","path_with_namespace":"gitlab-org/gitlab-development-kit"},{"id":20699,"name":"omnibus-gitlab","path":"omnibus-gitlab","topics":["bug","confirmed","critical","discussion","documentation","enhancement","feature","hacktoberfest","suggestion","support"],"web_url":"https://gitlab.com/gitlab-org/omnibus-gitlab","tag_list":["bug","confirmed","critical","discussion","documentation","enhancement","feature","hacktoberfest","suggestion","support"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/20699/Omnibus-refresh2.png","created_at":"2013-12-02T12:36:52.000Z","readme_url":"https://gitlab.com/gitlab-org/omnibus-gitlab/-/blob/master/README.md","star_count":694,"visibility":"public","description":"This project creates full-stack platform-specific downloadable packages for GitLab. ","forks_count":1348,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/omnibus-gitlab.git","http_url_to_repo":"https://gitlab.com/gitlab-org/omnibus-gitlab.git","last_activity_at":"2026-06-02T15:56:43.618Z","name_with_namespace":"GitLab.org / omnibus-gitlab","path_with_namespace":"gitlab-org/omnibus-gitlab"},{"id":1148549,"name":"Runbooks","path":"runbooks","topics":[],"web_url":"https://gitlab.com/gitlab-com/runbooks","tag_list":[],"namespace":{"id":6543,"kind":"group","name":"GitLab.com","path":"gitlab-com","web_url":"https://gitlab.com/groups/gitlab-com","full_path":"gitlab-com","avatar_url":"/uploads/-/system/group/avatar/6543/gitlab_logo_192x192.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/1148549/dont_panic_towel.jpg","created_at":"2016-05-04T16:13:45.440Z","readme_url":"https://gitlab.com/gitlab-com/runbooks/-/blob/master/README.md","star_count":611,"visibility":"public","description":"Runbooks for the stressed on-call\n\nhttps://runbooks.gitlab.com\n\nMirrored to https://ops.gitlab.net/gitlab-com/runbooks\n","forks_count":290,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-com/runbooks.git","http_url_to_repo":"https://gitlab.com/gitlab-com/runbooks.git","last_activity_at":"2026-06-02T16:10:55.660Z","name_with_namespace":"GitLab.com / Runbooks","path_with_namespace":"gitlab-com/runbooks"},{"id":1061379,"name":"interview-questions","path":"interview-questions","topics":[],"web_url":"https://gitlab.com/doctorj/interview-questions","tag_list":[],"namespace":{"id":517799,"kind":"user","name":"Doctor J","path":"doctorj","web_url":"https://gitlab.com/doctorj","full_path":"doctorj","avatar_url":"https://secure.gravatar.com/avatar/c8110abef1f8716b11ca1c192df966474916d2cc02f4c0dd5b059c9868c3388f?s=80&d=identicon"},"created_at":"2016-04-11T19:39:53.583Z","readme_url":"https://gitlab.com/doctorj/interview-questions/-/blob/master/README.md","star_count":609,"visibility":"public","description":"Questions to ask a potential tech employer.\r\nhttps://doctorj.gitlab.io/interview-questions/","forks_count":88,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:doctorj/interview-questions.git","http_url_to_repo":"https://gitlab.com/doctorj/interview-questions.git","last_activity_at":"2023-09-28T13:51:25.366Z","name_with_namespace":"Doctor J / interview-questions","path_with_namespace":"doctorj/interview-questions"},{"id":10956869,"name":"next.gitlab.com","path":"next.gitlab.com","topics":[],"web_url":"https://gitlab.com/gitlab-com/gl-infra/next.gitlab.com","tag_list":[],"namespace":{"id":1112072,"kind":"group","name":"GitLab Infrastructure Team","path":"gl-infra","web_url":"https://gitlab.com/groups/gitlab-com/gl-infra","full_path":"gitlab-com/gl-infra","parent_id":6543,"avatar_url":"/uploads/-/system/group/avatar/1112072/infrastructure-avatar.png"},"created_at":"2019-02-21T10:09:37.209Z","readme_url":"https://gitlab.com/gitlab-com/gl-infra/next.gitlab.com/-/blob/master/README.md","star_count":592,"visibility":"public","description":"","forks_count":426,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-com/gl-infra/next.gitlab.com.git","http_url_to_repo":"https://gitlab.com/gitlab-com/gl-infra/next.gitlab.com.git","last_activity_at":"2026-05-29T15:24:32.624Z","name_with_namespace":"GitLab.com / GitLab Infrastructure Team / next.gitlab.com","path_with_namespace":"gitlab-com/gl-infra/next.gitlab.com"},{"id":5261717,"name":"gitlab-vscode-extension","path":"gitlab-vscode-extension","topics":["gitlab","hacktoberfest","vscode","vscode-extension"],"web_url":"https://gitlab.com/gitlab-org/gitlab-vscode-extension","tag_list":["gitlab","hacktoberfest","vscode","vscode-extension"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/5261717/logo.png","created_at":"2018-01-25T00:56:33.005Z","readme_url":"https://gitlab.com/gitlab-org/gitlab-vscode-extension/-/blob/main/README.md","star_count":547,"visibility":"public","description":"","forks_count":366,"default_branch":"main","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-vscode-extension.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-vscode-extension.git","last_activity_at":"2026-06-02T14:51:22.531Z","name_with_namespace":"GitLab.org / gitlab-vscode-extension","path_with_namespace":"gitlab-org/gitlab-vscode-extension"},{"id":2977308,"name":"GitFox","path":"gitlab-client","topics":["android","clean architecture","gitlab","ios","javascript","kotlin"],"web_url":"https://gitlab.com/terrakok/gitlab-client","tag_list":["android","clean architecture","gitlab","ios","javascript","kotlin"],"namespace":{"id":71981,"kind":"user","name":"Konstantin Tskhovrebov","path":"terrakok","web_url":"https://gitlab.com/terrakok","full_path":"terrakok","avatar_url":"/uploads/-/system/user/avatar/62974/avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/2977308/dd.png","created_at":"2017-03-25T22:42:14.054Z","readme_url":"https://gitlab.com/terrakok/gitlab-client/-/blob/develop/Readme.md","star_count":509,"visibility":"public","description":"Multiplatform SDK for creating clients on various platforms (Android, iOS and browser)","forks_count":243,"default_branch":"develop","ssh_url_to_repo":"git@gitlab.com:terrakok/gitlab-client.git","http_url_to_repo":"https://gitlab.com/terrakok/gitlab-client.git","last_activity_at":"2025-12-13T00:13:36.327Z","name_with_namespace":"Konstantin Tskhovrebov / GitFox","path_with_namespace":"terrakok/gitlab-client"},{"id":26144633,"name":"Descomplicando o Gitlab","path":"descomplicando-o-gitlab","topics":[],"web_url":"https://gitlab.com/toskao/descomplicando-o-gitlab","tag_list":[],"namespace":{"id":11840598,"kind":"group","name":"Toskao","path":"toskao","web_url":"https://gitlab.com/groups/toskao","full_path":"toskao"},"created_at":"2021-04-24T20:34:21.036Z","readme_url":"https://gitlab.com/toskao/descomplicando-o-gitlab/-/blob/main/README.md","star_count":475,"visibility":"public","description":"Treinamento ao vivo na Twitch  - Descomplicando o Gitlab","forks_count":198,"default_branch":"main","ssh_url_to_repo":"git@gitlab.com:toskao/descomplicando-o-gitlab.git","http_url_to_repo":"https://gitlab.com/toskao/descomplicando-o-gitlab.git","last_activity_at":"2022-01-10T19:21:50.736Z","name_with_namespace":"Toskao / Descomplicando o Gitlab","path_with_namespace":"toskao/descomplicando-o-gitlab"},{"id":7904989,"name":"dark-gitlab","path":"dark-gitlab","topics":["dark gitlab","dark theme","gitlab dark theme","stylus","stylus-lang","usercss","userstyle","userstyles"],"web_url":"https://gitlab.com/vednoc/dark-gitlab","tag_list":["dark gitlab","dark theme","gitlab dark theme","stylus","stylus-lang","usercss","userstyle","userstyles"],"namespace":{"id":2955616,"kind":"user","name":"vednoc","path":"vednoc","web_url":"https://gitlab.com/vednoc","full_path":"vednoc","avatar_url":"/uploads/-/system/user/avatar/2365443/avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/7904989/gitlab.png","created_at":"2018-08-11T17:36:58.408Z","readme_url":"https://gitlab.com/vednoc/dark-gitlab/-/blob/master/readme.org","star_count":452,"visibility":"public","description":"Customizable Stylus theme for Gitlab and self-hosted GitLab instances.\r\n","forks_count":46,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:vednoc/dark-gitlab.git","http_url_to_repo":"https://gitlab.com/vednoc/dark-gitlab.git","last_activity_at":"2024-03-31T22:23:01.332Z","name_with_namespace":"vednoc / dark-gitlab","path_with_namespace":"vednoc/dark-gitlab"},{"id":3828396,"name":"GitLab Chart","path":"gitlab","topics":["gitlab","hacktoberfest","helm","k8s","kubernetes"],"web_url":"https://gitlab.com/gitlab-org/charts/gitlab","tag_list":["gitlab","hacktoberfest","helm","k8s","kubernetes"],"namespace":{"id":5032027,"kind":"group","name":"charts","path":"charts","web_url":"https://gitlab.com/groups/gitlab-org/charts","full_path":"gitlab-org/charts","parent_id":9970},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/3828396/docs-charts.png","created_at":"2017-08-01T13:53:49.114Z","readme_url":"https://gitlab.com/gitlab-org/charts/gitlab/-/blob/master/README.md","star_count":448,"visibility":"public","description":"Cloud Native GitLab Helm Chart","forks_count":752,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/charts/gitlab.git","http_url_to_repo":"https://gitlab.com/gitlab-org/charts/gitlab.git","last_activity_at":"2026-06-02T13:19:38.719Z","name_with_namespace":"GitLab.org / charts / GitLab Chart","path_with_namespace":"gitlab-org/charts/gitlab"},{"id":2009901,"name":"Gitaly","path":"gitaly","topics":["Canonical","git","gitlab","infra-mgmt Managed","rpc"],"web_url":"https://gitlab.com/gitlab-org/gitaly","tag_list":["Canonical","git","gitlab","infra-mgmt Managed","rpc"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/2009901/gitaly7.png","created_at":"2016-11-14T21:07:35.543Z","readme_url":"https://gitlab.com/gitlab-org/gitaly/-/blob/master/README.md","star_count":435,"visibility":"public","description":"Gitaly is a Git RPC service for handling all the git calls made by GitLab","forks_count":381,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitaly.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitaly.git","last_activity_at":"2026-06-02T15:14:51.366Z","name_with_namespace":"GitLab.org / Gitaly","path_with_namespace":"gitlab-org/gitaly"},{"id":3846621,"name":"unity3d-gitlab-ci-example","path":"unity3d-gitlab-ci-example","topics":["docker","gitlab-ci","gitlab-pages","unity3d"],"web_url":"https://gitlab.com/game-ci/unity3d-gitlab-ci-example","tag_list":["docker","gitlab-ci","gitlab-pages","unity3d"],"namespace":{"id":16164429,"kind":"group","name":"GameCI","path":"game-ci","web_url":"https://gitlab.com/groups/game-ci","full_path":"game-ci","avatar_url":"/uploads/-/system/group/avatar/16164429/game-ci.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/3846621/1PbQpCce_400x400.jpg","created_at":"2017-08-03T17:00:29.844Z","readme_url":"https://gitlab.com/game-ci/unity3d-gitlab-ci-example/-/blob/main/README.md","star_count":427,"visibility":"public","description":"This project runs tests and creates builds using gitlab-ci in a unity3d project. https://game-ci.gitlab.io/unity3d-gitlab-ci-example/","forks_count":465,"default_branch":"main","ssh_url_to_repo":"git@gitlab.com:game-ci/unity3d-gitlab-ci-example.git","http_url_to_repo":"https://gitlab.com/game-ci/unity3d-gitlab-ci-example.git","last_activity_at":"2026-05-10T18:23:12.636Z","name_with_namespace":"GameCI / unity3d-gitlab-ci-example","path_with_namespace":"game-ci/unity3d-gitlab-ci-example"},{"id":912096,"name":"hugo","path":"hugo","topics":[],"web_url":"https://gitlab.com/pages/hugo","tag_list":[],"namespace":{"id":500013,"kind":"group","name":"GitLab Pages examples","path":"pages","web_url":"https://gitlab.com/groups/pages","full_path":"pages","avatar_url":"/uploads/-/system/group/avatar/500013/pages_group_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/912096/hugo.png","created_at":"2016-02-26T10:43:41.967Z","readme_url":"https://gitlab.com/pages/hugo/-/blob/main/README.md","star_count":417,"visibility":"public","description":"Example Hugo site using GitLab Pages: https://pages.gitlab.io/hugo","forks_count":1221,"default_branch":"main","ssh_url_to_repo":"git@gitlab.com:pages/hugo.git","http_url_to_repo":"https://gitlab.com/pages/hugo.git","last_activity_at":"2026-04-09T12:15:26.506Z","name_with_namespace":"GitLab Pages examples / hugo","path_with_namespace":"pages/hugo"},{"id":1209837,"name":"GitLab CI Yml - Deprecated","path":"gitlab-ci-yml","topics":[],"web_url":"https://gitlab.com/gitlab-org/gitlab-ci-yml","tag_list":[],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/gitlab-org/gitlab-ci-yml/-/avatar","created_at":"2016-05-20T21:02:35.623Z","readme_url":"https://gitlab.com/gitlab-org/gitlab-ci-yml/-/blob/master/README.md","star_count":399,"visibility":"public","description":"This project has been deprecated and the templates have been moved to https://gitlab.com/gitlab-org/gitlab-ce/tree/master/lib/gitlab/ci/templates","forks_count":145,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-ci-yml.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-ci-yml.git","last_activity_at":"2026-01-07T10:09:06.889Z","name_with_namespace":"GitLab.org / GitLab CI Yml - Deprecated","path_with_namespace":"gitlab-org/gitlab-ci-yml"},{"id":17993652,"name":"dependabot","path":"dependabot","topics":["dependabot","dependency updates"],"web_url":"https://gitlab.com/dependabot-gitlab/dependabot","tag_list":["dependabot","dependency updates"],"namespace":{"id":8840856,"kind":"group","name":"dependabot-gitlab","path":"dependabot-gitlab","web_url":"https://gitlab.com/groups/dependabot-gitlab","full_path":"dependabot-gitlab","avatar_url":"/uploads/-/system/group/avatar/8840856/robot_icon_135245.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/17993652/robot_1f916.png","created_at":"2020-04-07T20:10:09.097Z","readme_url":"https://gitlab.com/dependabot-gitlab/dependabot/-/blob/main/README.md","star_count":380,"visibility":"public","description":"[dependabot](https://github.com/dependabot/dependabot-core) dependency updates with gitlab integration","forks_count":85,"default_branch":"main","ssh_url_to_repo":"git@gitlab.com:dependabot-gitlab/dependabot.git","http_url_to_repo":"https://gitlab.com/dependabot-gitlab/dependabot.git","last_activity_at":"2026-06-02T12:24:21.611Z","name_with_namespace":"dependabot-gitlab / dependabot","path_with_namespace":"dependabot-gitlab/dependabot"},{"id":443787,"name":"GitLab Design","path":"gitlab-design","topics":["hacktoberfest","ui","ux"],"web_url":"https://gitlab.com/gitlab-org/gitlab-design","tag_list":["hacktoberfest","ui","ux"],"namespace":{"id":9970,"kind":"group","name":"GitLab.org","path":"gitlab-org","web_url":"https://gitlab.com/groups/gitlab-org","full_path":"gitlab-org","avatar_url":"/uploads/-/system/group/avatar/9970/project_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/443787/gitlab-account.png","created_at":"2015-09-03T08:29:27.093Z","readme_url":"https://gitlab.com/gitlab-org/gitlab-design/-/blob/master/README.md","star_count":351,"visibility":"public","description":"GitLab’s open source design library, prototypes, design specs, and work-in-progress files.","forks_count":182,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:gitlab-org/gitlab-design.git","http_url_to_repo":"https://gitlab.com/gitlab-org/gitlab-design.git","last_activity_at":"2026-06-02T16:08:09.644Z","name_with_namespace":"GitLab.org / GitLab Design","path_with_namespace":"gitlab-org/gitlab-design"},{"id":17473241,"name":"libphonenumber-js","path":"libphonenumber-js","topics":[],"web_url":"https://gitlab.com/catamphetamine/libphonenumber-js","tag_list":[],"namespace":{"id":7389908,"kind":"user","name":"Nikolay Kuchumov","path":"catamphetamine","web_url":"https://gitlab.com/catamphetamine","full_path":"catamphetamine","avatar_url":"/uploads/-/system/user/avatar/5596906/avatar.png"},"created_at":"2020-03-13T18:43:19.440Z","readme_url":"https://gitlab.com/catamphetamine/libphonenumber-js/-/blob/master/README.md","star_count":340,"visibility":"public","description":"A simpler (and smaller) rewrite of Google Android's libphonenumber library in javascript.\r\nhttps://catamphetamine.gitlab.io/libphonenumber-js","forks_count":64,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:catamphetamine/libphonenumber-js.git","http_url_to_repo":"https://gitlab.com/catamphetamine/libphonenumber-js.git","last_activity_at":"2026-05-29T16:35:19.973Z","name_with_namespace":"Nikolay Kuchumov / libphonenumber-js","path_with_namespace":"catamphetamine/libphonenumber-js"},{"id":4406244,"name":"Modern CMake","path":"modern-cmake","topics":["cmake","tutorials"],"web_url":"https://gitlab.com/CLIUtils/modern-cmake","tag_list":["cmake","tutorials"],"namespace":{"id":2083216,"kind":"group","name":"CLIUtils","path":"CLIUtils","web_url":"https://gitlab.com/groups/CLIUtils","full_path":"CLIUtils"},"avatar_url":"https://gitlab.com/CLIUtils/modern-cmake/-/avatar","created_at":"2017-10-17T02:09:04.087Z","readme_url":"https://gitlab.com/CLIUtils/modern-cmake/-/blob/master/README.md","star_count":326,"visibility":"public","description":"A book about using CMake for your projects: [website](https://CLIUtils.gitlab.io/modern-cmake)","forks_count":119,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:CLIUtils/modern-cmake.git","http_url_to_repo":"https://gitlab.com/CLIUtils/modern-cmake.git","last_activity_at":"2026-05-27T23:04:07.614Z","name_with_namespace":"CLIUtils / Modern CMake","path_with_namespace":"CLIUtils/modern-cmake"},{"id":694920,"name":"plain-html","path":"plain-html","topics":[],"web_url":"https://gitlab.com/pages/plain-html","tag_list":[],"namespace":{"id":500013,"kind":"group","name":"GitLab Pages examples","path":"pages","web_url":"https://gitlab.com/groups/pages","full_path":"pages","avatar_url":"/uploads/-/system/group/avatar/500013/pages_group_avatar.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/694920/HTML5_Logo_512.png","created_at":"2015-12-22T10:55:02.955Z","readme_url":"https://gitlab.com/pages/plain-html/-/blob/main/README.md","star_count":326,"visibility":"public","description":"Example plain HTML site using GitLab Pages: https://pages.gitlab.io/plain-html","forks_count":2534,"default_branch":"main","ssh_url_to_repo":"git@gitlab.com:pages/plain-html.git","http_url_to_repo":"https://gitlab.com/pages/plain-html.git","last_activity_at":"2026-05-19T18:22:21.348Z","name_with_namespace":"GitLab Pages examples / plain-html","path_with_namespace":"pages/plain-html"},{"id":1916374,"name":"GitLab 中文社区版","path":"gitlab","topics":["gitlab","中文版","汉化"],"web_url":"https://gitlab.com/xhang/gitlab","tag_list":["gitlab","中文版","汉化"],"namespace":{"id":956647,"kind":"user","name":"xhang","path":"xhang","web_url":"https://gitlab.com/xhang","full_path":"xhang","avatar_url":"https://secure.gravatar.com/avatar/c9fddf6f07f5a669c871ba0f1449c8842b5390d1e87ba3863334b1602a8602ed?s=80&d=identicon"},"created_at":"2016-10-28T00:56:23.179Z","readme_url":"https://gitlab.com/xhang/gitlab/-/blob/12-3-stable-zh/README.md","star_count":316,"visibility":"public","description":"(延续Larry Li的8-8-zh中文版本 gitlab.com/larryli/gitlab 进行更新)","forks_count":192,"default_branch":"12-3-stable-zh","ssh_url_to_repo":"git@gitlab.com:xhang/gitlab.git","http_url_to_repo":"https://gitlab.com/xhang/gitlab.git","last_activity_at":"2022-12-13T06:57:04.507Z","name_with_namespace":"xhang / GitLab 中文社区版","path_with_namespace":"xhang/gitlab"},{"id":7301016,"name":"pmbootstrap","path":"pmbootstrap","topics":[],"web_url":"https://gitlab.com/postmarketOS/pmbootstrap","tag_list":[],"namespace":{"id":2182527,"kind":"group","name":"postmarketOS","path":"postmarketOS","web_url":"https://gitlab.com/groups/postmarketOS","full_path":"postmarketOS","avatar_url":"/uploads/-/system/group/avatar/2182527/logo_outline.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/7301016/icon_mobile.png","created_at":"2018-06-30T05:21:44.745Z","readme_url":"https://gitlab.com/postmarketOS/pmbootstrap/-/blob/master/README.md","star_count":309,"visibility":"public","description":"**Moved to https://gitlab.postmarketos.org/postmarketOS/pmbootstrap** :truck: :truck:","forks_count":174,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:postmarketOS/pmbootstrap.git","http_url_to_repo":"https://gitlab.com/postmarketOS/pmbootstrap.git","last_activity_at":"2026-03-23T18:50:20.133Z","name_with_namespace":"postmarketOS / pmbootstrap","path_with_namespace":"postmarketOS/pmbootstrap"},{"id":174910,"name":"kanban","path":"kanban","topics":["gitlab kanban. kanban board","kanban"],"web_url":"https://gitlab.com/leanlabsio/kanban","tag_list":["gitlab kanban. kanban board","kanban"],"namespace":{"id":111549,"kind":"user","name":"leanlabsio","path":"leanlabsio","web_url":"https://gitlab.com/leanlabsio","full_path":"leanlabsio","avatar_url":"/uploads/-/system/user/avatar/97531/small-logo.png"},"avatar_url":"https://gitlab.com/uploads/-/system/project/avatar/174910/kanban_logo.png","created_at":"2015-02-27T08:05:08.481Z","readme_url":"https://gitlab.com/leanlabsio/kanban/-/blob/master/README.md","star_count":299,"visibility":"public","description":"Kanban board for GitLab issues  http://kanban.leanlabs.io","forks_count":65,"default_branch":"master","ssh_url_to_repo":"git@gitlab.com:leanlabsio/kanban.git","http_url_to_repo":"https://gitlab.com/leanlabsio/kanban.git","last_activity_at":"2024-09-11T11:54:47.889Z","name_with_namespace":"leanlabsio / kanban","path_with_namespace":"leanlabsio/kanban"}],"meta":{"timestamp":"2026-06-02T16:52:53.199Z","request_id":"3798b902-d78f-4f69-a009-a770b5c01d90"},"status":"ok","message":"Search projects","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}},"/v1/meta":{"get":{"operationId":"get_v1_meta","tags":["Meta"],"summary":"Spec","description":"","parameters":[],"security":[{"oanorKey":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"example":{"data":{"auth":"none upstream (no token); this gateway requires x-api-key","name":"GitLab API","note":"Projects (detail, commits, branches, tags, releases, issues, merge requests, languages, README), users, groups and project search. Pass project as a numeric id or 'group/name' path (or a gitlab.com URL). Live, no cache; paginated with page + per_page (max 100). (Member lists require authentication on GitLab and are not exposed.)","source":"GitLab.com REST API v4 (api/v4), unauthenticated public read — via rotating proxy","endpoints":15},"meta":{"timestamp":"2026-06-02T16:52:53.300Z","request_id":"266ad027-83bf-4d66-ac31-55d124b21431"},"status":"ok","message":"Meta","success":true}}}},"401":{"description":"Missing or invalid x-oanor-key header"},"402":{"description":"Active subscription required"},"429":{"description":"Rate-limit or monthly quota reached"},"502":{"description":"Upstream did not respond"}}}}},"x-oanor-pricing":[{"slug":"free","name":"Free","price_cents_month":0,"monthly_call_quota":1900,"rps_limit":2,"hard_limit":true},{"slug":"starter","name":"Starter","price_cents_month":1000,"monthly_call_quota":53000,"rps_limit":8,"hard_limit":true},{"slug":"pro","name":"Pro","price_cents_month":2900,"monthly_call_quota":265000,"rps_limit":20,"hard_limit":true},{"slug":"mega","name":"Mega","price_cents_month":6700,"monthly_call_quota":1280000,"rps_limit":50,"hard_limit":true}],"x-oanor-marketplace-url":"https://www.oanor.com/api/gitlab-api"}