Protected packages: Add minimum_access_level_for_delete to GRAPHQL API
-
Please check this box if this contribution uses AI-generated content (including content generated by GitLab Duo features) as outlined in the GitLab DCO & CLA. As a benefit of being a GitLab Community Contributor, you receive complimentary access to GitLab Duo.
What does this MR do and why?
Protected packages: Add minimum_access_level_for_delete to GRAPHQL API
The attribute minimum_access_level_for_delete
that was introduced in the MR: !179739 (merged) .
This commit includes the attribute minimum_access_level_for_delete
in the GRAPHQL API and also updates the documentation.
This MR is also relevant for integrating the GraphQL field minimumAccessLevelForDelete
also in the frontend, see follow-up MR Protected packages: Add minimumAccessLevelForDe... (!180416 - merged).
Changelog: added
References
Please include cross links to any resources that are relevant to this MR This will give reviewers and future readers helpful context to give an efficient review of the changes introduced.
MR acceptance checklist
Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.
MR Checklist (@gerardo-navarro)
-
Changelog entry added, if necessary -
Documentation created/updated via this MR -
Documentation reviewed by technical writer or follow-up review issue created -
Tests added for this feature/bug -
Tested in all supported browsers -
Conforms to the code review guidelines -
Conforms to the style guides -
Conforms to the javascript style guides -
Conforms to the database guides -
Conforms to the merge request performance guidelines -
Wait for Protected packages: Add basics for package dele... (!179739 - merged)
Screenshots or screen recordings
Before | After |
---|---|
![]() |
![]() |
How to set up and validate locally
- Checkout the branch and start the rails server
- Play around with the GraphQL explorer: http://gdk.test:3000/-/graphql-explorer
- Execute a mutation for creating the package protection rule
mutation {
createPackagesProtectionRule(input: {
projectPath: "flightjs/Flight"
packageNamePattern: "@my-new-scope/my-package-2-*"
packageType: NPM
minimumAccessLevelForPush: MAINTAINER
minimumAccessLevelForDelete: OWNER
}) {
packageProtectionRule {
id
packageNamePattern
packageType
minimumAccessLevelForPush
minimumAccessLevelForDelete
}
errors
}
}
- Update only the field
minimumAccessLevelForDelete
of the newly created package protection rule
mutation {
updatePackagesProtectionRule(
input: {
id: "{{lastCreatedProtectionRuleId}}"
minimumAccessLevelForDelete: null
}
){
packageProtectionRule {
id
packageNamePattern
packageType
minimumAccessLevelForPush
minimumAccessLevelForDelete
}
errors
}
}
Related to #416381 (closed)