Projects and MRs Approvers API
TODO
-
Approvals::UpdateMergeRequestApproversService(enhanceMergeRequests::UpdateService
instead) -
Authorization for all ProjectApprovals endpoints -
Authorization for new MergeRequestApprovals endpoints -
Write specs for failure cases for ProjectApprovals -
Specs for MergeRequestApprovals -
Documentation
What does this MR do?
Adds API endpoints to control Project and MergeRequests approvers and related configuration. Also moved the two endpoints to approve/unapprove an MR to the MergeRequestApprovals
class
New endpoints
Projects
-
GET /api/v4/projects/:id/approvals
- retrieves approval-related config for a project (approvals_before_merge
,reset_approvals_on_push
,disable_overriding_approvers_per_merge_request
) as well as the currently-set explicit approvers and approver groups. -
POST /api/v4/projects/:id/approvals
- sets approval-related config, but not approvers/approver groups -
PUT /api/v4/projects/:id/approvals
- sets approvers and approver groups. Accepts arrays of IDs. Any approver or group not in the list will be deleted from the explicit approvers/approver_groups
Merge Requests
These endpoints will only allow editing if disable_overriding_approvers_per_merge_request
is false for the Project
-
GET /api/v4/projects/:id/merge_requests/:merge_request_iid/approvals
- retrievesapprovals_required
for an MR as well as approvers, who has approved, and whether the current user has approved -
POST /api/v4/projects/:id/merge_requests/:merge_request_iid/approvals
- setsapprovals_required
. Must be higher than the project-levelapprovals_before_merge
setting -
PUT /api/v4/projects/:id/merge_requests/:merge_request_iid/approvals
- sets approvers and approver groups. Accepts arrays of IDs. Any approver or group not in the list will be deleted from the explicit approvers/approver_groups
Closes #183 (closed)
Edited by Coung Ngo