Github状态API

Github Status API

我对设置 Github 的复杂功能相当陌生,但我想确保在合并请求可以通过我的分支(即功能 -> 开发、开发 - > 发布,发布 -> 主控等)。

我找到了一个部分,可以让我在合并 PR 之前确保状态为 "success",但我的问题是:

为什么在 Github 中必须先定义一个状态才能从所需的状态上下文列表中 select 它?这不是先有鸡还是先有蛋的情况吗?

基本上,我转到我的存储库的 "settings" 选项卡,单击 "branches",然后在 "Protected Branches" 下,我 select 我的分支并单击 "Edit".从那里我 select 说 "Require status checks to pass before merging" 的部分。从那里如果该分支的任何 SHA 没有状态更新,它会告诉我上周有 none。为什么我不能在实际必须 select 之前输入我的状态更新的上下文?如果这是第一次有人推送到我的分支怎么办?该代码理论上可以一直通过吗?

一个先有鸡还是先有蛋的问题,但不是很难解决的问题。让自己成为一个 github 访问令牌并跟随 curl:

$ curl -XPOST -H "Authorization: token $GITHUB_API_TOKEN" \
       -d '{"state":"success"}' \
       https://api.github.com/repos/<your_username>/<your_repo>/statuses/<latest_sha>

这将创建一个 default 状态(您可以用 context 覆盖,请参阅 the docs),您可以返回设置为您的受保护分支配置该状态.