如何使用访问令牌批准 Github 拉取请求?

How to approve Github pull request using access token?

根据 API 文档 https://docs.github.com/en/rest/reference/pulls#create-a-review-for-a-pull-request

我们可以使用 CURL 来批准拉取请求,即

curl -s -H "Authorization: token ghp_TOKEN" \
 -X POST -d '{"event": "APPROVE"}' \
 "https://api.github.com/repos/{owner}/{repo}/pulls/{pull_number}/reviews"

但我收到此错误:

{
  "message": "Not Found",
  "documentation_url": "https://docs.github.com/rest"
}

尽管如此,CURL 对于其他 API 也能正常工作,例如:

curl -s -H "Authorization: token ghp_TOKEN" \
 -X POST -d '{"body": "some message"}' \
 "https://api.github.com/repos/{owner}/{repo}/issues/{pull_number}/reviews"

我已尽一切努力使这项工作成功。有人可以帮我解决这个问题吗?

经过一些实验,它已经与 API /repos/{owner}/{repo}/pulls/{pull_number}/reviews

一起工作

我必须说 Github 文档非常糟糕,我不得不花费将近 3 个小时来解决这个问题。一个小而合适的 CURL 会在几秒钟内提供帮助,并且会节省我的时间。

无论如何,将此解决方案留在 Whosebug 上,这样可以帮助其他人并节省他们宝贵的时间。

卷曲:

curl -s -H "Authorization: token ghp_BWuQzbiDANEvrQP9vZbqa5LHBAxxIzwi2gM7" \
 -X POST -d '{"event":"APPROVE"}' \
 "https://api.github.com/repos/tech-security/chatbot/pulls/4/reviews"

Python代码:

import requests

headers = {
    'Authorization': 'token ghp_BWuQzbiDANEvrQP9vZbqa5LHBAxxIzwi2gM7',
}

data = '{"event":"APPROVE"}'

response = requests.post('https://api.github.com/repos/tech-security/chatbot/pulls/4/reviews', headers=headers, data=data)

print (response.json())

注意:上面的 github 令牌是虚拟的,所以请不要惊慌失措! :D