Protected packages: GraphQL api for querying package protection rules
requested to merge gitlab-community/gitlab:416381-protected-packages-graphql-query-package-protection-rules into master
What does this MR do and why?
- This MR adds a new graphql endpoint for querying package protection rules of a specific project.
- This MR is part of the EPIC &5574 and is planned to be included in the 1st version of this feature, see &5574 (comment 1437348728)
- This MR is based on the Protected packages: GraphQL api for creating pa... (!125915 - merged)
Screenshots or screen recordings
With this MR it is possible to send graphql request in order to query package protection rules.
The body of the graphql request looks like this. Note: Including the field packagesCleanupPolicy
is only for testing purpose.
query {
project(fullPath: "flightjs/Flight") {
packagesProtectionRules {
nodes {
packageNamePattern
packageType
pushProtectedUpToAccessLevel
}
}
}
}
How to set up and validate locally
rails db:migrate
- Enable feature flag via
rails c
Feature.enable(:packages_protected_packages)
- Now, you should be able to send mutation requests via the graphql api
curl --request POST \
--url http://gdk.test:3000/api/graphql \
--header 'Authorization: Bearer ypCa3Dzb23o5nvsixwPA' \
--header 'Content-Type: application/json' \
--cookie 'perf_bar_enabled=true; BetterErrors-2.10.1-CSRF-Token=0b882179-5e4a-431b-a420-2be3701cece8' \
--data '{"query":"query {\n\tproject(fullPath: \"flightjs/Flight\") {\n\t\tpackagesProtectionRules {\n\t\t\tnodes {\n\t\t\t\tpackageNamePattern\n\t\t\t\tpackageType\n\t\t\t\tpushProtectedUpToAccessLevel\n\t\t\t}\n\t\t}\n\t\tpackagesCleanupPolicy {\n\t\t\tkeepNDuplicatedPackageFiles\n\t\t}\t\t\n\t}\n}\n"}'
Todos
-
Integrate feature flag (incl. tests) -
Add more tests regarding authorization -
Think about integrating a rails enum for the field push_protected_up_to_access_level
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR. -
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 merge request performance guidelines -
Conforms to the style guides -
Conforms to the javascript style guides -
Conforms to the database guides -
Wait for Protected packages: GraphQL api for creating pa... (!125915 - merged)
-
Related to #416381 (closed)
Edited by Gerardo Navarro