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),您可以返回设置为您的受保护分支配置该状态.
我对设置 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),您可以返回设置为您的受保护分支配置该状态.