3

我正在尝试为 PR 添加自定义代码检查。在做了一些研究后,我发现可以使用下面提到的 API 来完成。

POST /repos/{owner}/{repo}/check-runs

最初,它给了我这个错误:

{
    "message": "You must authenticate via a GitHub App.",
    "documentation_url": "https://docs.github.com/rest/reference/checks#create-a-check-run"
}

我遵循了此链接中提供的指南。

  1. 我创建了一个 GitHub 应用程序。
  2. 授予它所需的权限。
  3. 生成了一个私钥。
  4. 使用私钥生成 JWT 令牌。
  5. 也在 repo 中安装了 Github 应用程序

我创建了一个 curl 请求:

curl --location --request POST 'https://api.github.com/repos/X/X-app/check-runs' \
--header 'Accept: application/vnd.github.v3+json' \
--header 'Authorization: Bearer eyJhbGciOiJSUzI1NiJ9.X.X-X-SAFvDnSkaJDjMI2T_BAC2iLlRZ7uNyFSe-X-UgFBFjoFrwsbcYFKfDM8f3FNPYpA6afhr18DLZ6rzu35klA' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "loremipsum"
}'

但是,现在我收到了这个错误

{
    "message": "Bad credentials",
    "documentation_url": "https://docs.github.com/rest"
}

我不确定我在这里缺少什么。

4

1 回答 1

5

我想通了。GH 文档具有误导性。以下是完成这项工作的步骤:

  • 使用 JWT 不记名令牌,列出您的安装并记下您的应用的安装 ID
$ curl -i -X POST \
-H "Authorization: Bearer YOUR_JWT" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/app/installations
  • 然后获取上述 id 的安装访问令牌
$ curl -i -X POST \
-H "Authorization: Bearer YOUR_JWT" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/app/installations/:installation_id/access_tokens
  • 然后使用该令牌创建检查运行,但使用“授权:令牌”标头 curl -i -H "Authorization: token YOUR_INSTALLATION_ACCESS_TOKEN"
于 2021-08-02T19:59:34.000 回答