Group Deploy Keys - API
Everyone can contribute. Help move this issue forward while earning points, leveling up and collecting rewards.
Problem to solve
Once backend work is done as part of #14729 (closed), we have all we need to develop new API endpoints for group deploy keys.
The Group Deploy Keys API will sit along side of the existing Deploy Keys API. It will allow all (CRUD) operations available on that existing API + the "Enabling key" operation (Adding deploy keys to multiple projects won't be made available, as it's out of context at group level).
documentation will be created accordingly.
Intended users
User experience goal
Following the created documentation, users should be able to perform CRUD operations on Group Deploy Keys vi API.
Proposed endpoints
- List group deploy keys:
GET /groups/:id/group_deploy_keys - Single group deploy key:
GET /groups/:id/group_deploy_keys/:key_id - Add group deploy key:
POST /groups/:id/group_deploy_keys - Update group deploy key:
PUT /groups/:id/group_deploy_keys/:key_id - Delete group deploy key:
DELETE /groups/:id/group_deploy_keys/:key_id - Enable group deploy key:
POST /groups/:id/group_deploy_keys/:key_id/enable
Technical background
- For performance reasons, the
keystable could not be reused for group deploy keys. So as part of #215160 (closed), a newgroup_deploy_keystable with an almost-similar structure askeyswas created. - As part of the same issue, a
group_deploy_keys_groupsintermediate table betweengroupsandgroup_deploy_keystables was created. It'll be used to save which group deploy key is enabled for a given group, and whether it has write-access to it. - Other backend considerations (addition of a model, serializers, policies) were added as part of this MR.
With all of the above set up, the development of the Group Deploy Keys API should be ready to go. In addition to creating the endpoints listed above, the backend piece to add is to extend a group deploy key permission from a given group onto all children projects of this group.
Permissions and Security
Documentation
Availability & Testing
What does success look like, and how can we measure that?
What is the type of buyer?
Is this a cross-stage feature?
Links / references
This page may contain information related to upcoming products, features and functionality. It is important to note that the information presented is for informational purposes only, so please do not rely on the information for purchasing or planning purposes. Just like with all projects, the items mentioned on the page are subject to change or delay, and the development, release, and timing of any products, features, or functionality remain at the sole discretion of GitLab Inc.