问题
fork 提交的 PR 即使目标分支已经是 dev,enforce 检查仍会失败。
失败点在目标分支检查 workflow:当 baseBranch === "dev" 时,它会直接调用删除 wrong-target-branch 标签的接口。对于来自 fork 的 PR,GITHUB_TOKEN 没有修改上游仓库标签的权限,GitHub API 返回 403:Resource not accessible by integration。
影响
合法的 fork PR 会被错误标记为检查失败,维护者需要手动判断该失败是否可以忽略。这会影响外部贡献者提交 PR。
复现
PR #21 的目标分支是 dev,但 enforce job 失败:
RequestError [HttpError]: Resource not accessible by integration
url: https://api.github.com/repos/zqbxdev/webchat2api/issues/21/labels/wrong-target-branch
method: DELETE
status: 403
同一个 PR 的 review 检查已经通过,失败只来自目标分支检查里删除标签的权限问题。
建议
在 baseBranch === "dev" 时不要无条件删除标签。可以先读取当前 PR 标签,只有标签确实存在时再尝试删除;或者在删除标签返回 403 时仅记录警告并通过检查,因为此时目标分支已经满足要求。
问题
fork 提交的 PR 即使目标分支已经是
dev,enforce检查仍会失败。失败点在目标分支检查 workflow:当
baseBranch === "dev"时,它会直接调用删除wrong-target-branch标签的接口。对于来自 fork 的 PR,GITHUB_TOKEN没有修改上游仓库标签的权限,GitHub API 返回 403:Resource not accessible by integration。影响
合法的 fork PR 会被错误标记为检查失败,维护者需要手动判断该失败是否可以忽略。这会影响外部贡献者提交 PR。
复现
PR #21 的目标分支是
dev,但enforcejob 失败:同一个 PR 的 review 检查已经通过,失败只来自目标分支检查里删除标签的权限问题。
建议
在
baseBranch === "dev"时不要无条件删除标签。可以先读取当前 PR 标签,只有标签确实存在时再尝试删除;或者在删除标签返回 403 时仅记录警告并通过检查,因为此时目标分支已经满足要求。