GitLab API 如何批准合并请求?

How does the GitLab API approve merge requests?

我尝试使用 POST /projects/xx/merge_requests/xx/approve 请求。请求请求后,返回"message": "401 Unauthorized",我还添加了请求头PRIVATE-TOKEN

首先,确保(如 GitLab Merge Requests Approvals 中所述):

  • 您有“开发人员”或更高级别permissions批准合并请求
  • 该项目没有定义特定规则,例如充当特定文件代码所有者的用户列表:只有该列表的成员才有权批准 PR。
  • 你检查过the project require password to approve,这意味着你需要传递approval_password参数

其次,curl 调用的形式为 (GitLab API)

curl -XPOST "https://gitlab.com/api/v4/projects/$CI_MERGE_REQUEST_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/notes" \
      -H "PRIVATE-TOKEN: $MR_TOKEN" \
      -H "Content-Type: application/x-www-form-urlencoded" \
      --data-urlencode 'sha=<sha>&approval_password=<password>'
                                  ^^^^^^^^^^^^^^^^^
                          (only if the project requires it)

sha 与要添加的合并请求的当前 HEAD 相匹配。