github - 启用分支锁

Sau*_*wal 17 github github-api

作为 GitHub 管理员,我想为所有用户锁定 GitHub 中的特定分支。例如,如果我不希望任何人推送到主/生产或项目分支,我该怎么做。

有没有办法直接锁定 GitHub 服务器上的分支,而不是使用任何客户端挂钩?是否有任何第三方工具/API/脚本可以帮助实现这一目标?

Cra*_*007 12

@Saurabh,我根据你在 GitHub 上的要求做了类似的事情:

  • 导航至“设置”
  • 导航至分支机构
  • 点击“分支保护规则”附近的添加规则
  • 勾选合并之前需要拉取请求评论复选框

这些步骤对 等应用锁定master,以便任何协作者都无法将代码推送到此分支。代码只能使用拉取请求合并。

文档链接

截图:

在此输入图像描述

在此输入图像描述

在此输入图像描述

注意:受保护的分支可供 Pro、Team 和 Enterprise 用户使用

仅注意专业版功能


Von*_*onC 6

自 2022 年 10 月起,有一个更简单的选项:

新分支保护:最后推动者和锁定分支(2022 年 10 月)

推送保护已启用。

这允许锁定分支,禁止更改。
您可以锁定分支,以便拥有维护窗口并防止更改,或者保护分支,使其仅接收来自其上游存储库的更改。

要在分支保护规则中使用此功能,请启用“锁定分支”

https://i0.wp.com/user-images.githubusercontent.com/7575792/196246562-59b7b156-a180-4830-ae67-d202ec49f172.png?ssl=1 -- 启用分叉同步的锁定分支的屏幕截图

有关更多信息,请阅读GitHub 文档中的关于受保护分支。

我们感谢 GitHub公共反馈讨论中对此主题和其他主题的反馈。

  • @Marko 好问题,我还没有测试过。[官方文档](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches#lock-branch)状态:“锁定分支可确保无法对该分支进行任何提交。”。所以我会说:“不”。 (2认同)
  • 我今天测试了这个。无法将 PR 合并到锁定的分支中。 (2认同)

Von*_*onC 2

最简单的解决方案是将该分支放在自己的存储库中(没有声明任何协作者)。

\n\n

否则,GitHub 不提供任何原生的“分支保护”功能,如“如何保护 github 中的 \xe2\x80\x9cmaster\xe2\x80\x9d? ”中所述。

\n\n

可以设置一个 Webhook,如果分支具有给定名称,则该 Webhook 在推送事件上可以拒绝推送。

\n\n

一个例子是terite/pull-to-master保护master

\n\n\n\n
if (json.ref != \'refs/heads/master\')\n  return cb([200, \'Skipping, not master\']);\n
Run Code Online (Sandbox Code Playgroud)\n\n

这不是客户端挂钩,但它确实需要客户端侦听推送事件的 JSON 有效负载才能对其做出反应。

\n