使用新的 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 设置的默认行为)。
在我切换到新的 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 设置的默认行为)。