GitHub Actions未将无评审者PR转为草稿问题排查
问题原因及解决方案
你的核心问题是使用了错误的GitHub API端点来将PR转为草稿。
为什么原代码无效?
你当前用PATCH /repos/{owner}/{repo}/pulls/{pull_number}并设置{"draft": true}的方式,只适用于两种场景:
- 创建PR时指定为草稿状态
- 将已有的草稿PR转为就绪状态(设置
draft: false)
对于已经处于「就绪」状态的PR(包括直接创建的非草稿PR、或从草稿转为就绪的PR),这个API参数不会生效——虽然会返回200 OK,但实际不会修改PR的状态。
正确的解决方法
要将已就绪的PR转回草稿,需要调用GitHub专门的convert_to_draft API端点,使用POST请求,无需请求体:
替换原代码中的curl部分为:
curl -X POST \ -H "Authorization: token $GITHUB_TOKEN" \ -H "Accept: application/vnd.github+json" \ "https://api.github.com/repos/$REPO_NAME/pulls/$PR_NUMBER/convert_to_draft"
完整修正后的步骤代码
if [ "$REVIEWERS_COUNT" -eq 0 ]; then echo "No reviewers assigned. Converting PR to draft..." # 正确的API调用:将PR转为草稿 curl -X POST \ -H "Authorization: token $GITHUB_TOKEN" \ -H "Accept: application/vnd.github+json" \ "https://api.github.com/repos/$REPO_NAME/pulls/$PR_NUMBER/convert_to_draft" # 添加评论提醒 gh pr comment "https://github.com/$REPO_NAME/pull/$PR_NUMBER" \ --body ":warning: @${AUTHOR} please assign at least one reviewer before marking this PR as ready for review." fi
额外验证点
- 你当前设置的
pull-requests: write权限足够执行convert_to_draft操作,无需调整 - 评论能正常发布说明认证、仓库/PR编号信息都是正确的,无需修改
内容的提问来源于stack exchange,提问作者Zoltan Toth
相关产品推荐
相关产品推荐

