使用新的 github 令牌列出拉取请求并创建评论

Using new github tokens to list and create comments on pull requests

在我切换到新的 Github 令牌格式后,我无法再为此执行调用 github API:

https://docs.github.com/en/rest/issues/comments#list-issue-comments

我的脚本执行以下操作:

[[ -z "$GITHUB_REPO_SLUG" ]] && export GITHUB_REPO_SLUG="$TRAVIS_REPO_SLUG"
GITHUB_API_BASE_URL="https://api.github.com/repos/${GITHUB_REPO_SLUG}"
GITHUB_AUTH_HEADER="Authorization: token $GITHUB_TOKEN"

comment_ids=$(curl -s -H "$GITHUB_AUTH_HEADER" "$GITHUB_API_BASE_URL/issues/$pull_request_id/comments" \
        | jq --arg USER "$GITHUB_USER" -r '. | map(select(.user.login==$USER)) | map(.id) | .[]')

for comment_id in $(echo $comment_ids); do
        jq -n -r --arg message "$message" '{ body: $message }' \
            | curl -s -H "$GITHUB_AUTH_HEADER" "$GITHUB_API_BASE_URL/issues/comments/$comment_id" -X PATCH --data @- > /dev/null
        echo "Edited comment with id $comment_id of PR $pull_request_id"
done

列出评论ids的api调用响应:

{
  "message": "Not Found",
  "documentation_url": "https://docs.github.com/rest/reference/issues#list-issue-comments"
}

这仍然适用于旧格式的令牌,但不适用于新格式的令牌。

有什么方法可以使用 GHP 调用那个 api?

必须向与 github 令牌关联的 github 用户提供对存储库的写入权限。

由于缺少 API 响应 404(为 Github API 设置的默认行为)。