External MR Approval API to accept callbacks from Approval Services
Why are we doing this work
Once #267511 (closed) and #267517 (closed) are complete, the external approval service needs a way to communicate to a GitLab MR that an MR has been approved by the external service.
Relevant links
Implementation plan
- [-] Extend the functionality of the POST /projects/:id/merge_requests/:merge_request_iid/approve endpoint to allow approvals from external services.
- Create a new API endpoint
POST /projects/:id/merge_requests/:merge_request_iid/external_approveendpoint to allow approvals from external services.- This is no longer planned to be coupled to merge request approvals.
- Add new parameter to the endpoint
external_approval_rule_idused to determine which approval rule we're approving via. - Require authentication by API token; specifically encourage users to use project access tokens (PATs).
- Ensure everything is in place to allow frontend to interface with new approvals.
Edited by Dan Jensen