GitHub API:为分支机构启用推送限制

时间:2018-06-25 09:39:06

标签: git github github-api

我试图使用GitHub API(版本2.11)在Python脚本中禁用和启用GitHub项目的分支保护。更具体地说,我想从分支中删除所有推送限制,然后在特定团队中启用它们。

通过以下方式替换/添加现有的团队限制

PUT/POST /repos/:owner/:repo/branches/:branch/protection/restrictions/teams

并且取消推送限制也可以像使用

一样使之魅力
DELETE /repos/:owner/:repo/branches/:branch/protection/restrictions

但是,如果我取消了推送限制,我将无法重新启用它以添加特定的团队。如果我尝试添加或替换团队,则会显示“未启用推送限制”

那么如何启用复选框限制谁可以推送到该分支来在脚本中添加团队?请参见屏幕截图以获取所需的结果:Push Restrictions

API文档仅向我介绍了选项 Get restrictions of protected branch Remove restrictions of protected branch

到目前为止我尝试过的:

  • 仅删除所有团队而不删除限制是行不通的,因为那样没人能推动。
  • 将PUT / POST发送到 / repos /:owner /:repo / branches /:branch / protection / restrictions 会得到404。
  • 现在,除了手动单击复选框,然后通过API添加和替换作品外,我别无选择。

1 个答案:

答案 0 :(得分:0)

检查Github API Rest的Update branch protection部分:

dart:mirror

使用

PUT /repos/:owner/:repo/branches/:branch/protection

请注意,将ownerWithRepo="MyOrg/my-repo" branch="master" curl -X PUT \ -H 'Accept: application/vnd.github.luke-cage-preview+json' \ -H 'Authorization: Token YourToken' \ -d '{ "restrictions": { "users": [ "bertrandmartel" ], "teams": [ "my-team" ] }, "required_status_checks": null, "enforce_admins": null, "required_pull_request_reviews": null }' "https://api.github.com/repos/$ownerWithRepo/branches/$branch/protection" 设置为这些字段之一将禁用(取消选中)该功能

中:

null