GitHub分支保护是确保代码质量和维护项目稳定性的重要工具。以下是如何在GitHub上设置分支保护的详细步骤和规则:

  1. 找到设置界面:首先,打开你的GitHub仓库,然后依次点击SettingsBranchesBranch protection
  2. 创建规则:点击Add rule来创建一个新的分支保护规则。你需要为规则命名,并选择要保护的分支。
  3. 启用规则:在Enforcement status中选择Active来启用规则。
  4. 设置Bypass权限:在Bypass部分,你可以选择哪些角色或GitHub应用可以绕过这些规则,例如Repository admin
  5. 选择目标分支:你可以选择保护所有分支,或者只保护特定的分支。点击Include all branches来保护所有分支。
  6. 细分规则

    • 限制创建:只有拥有Bypass权限的人才能创建与正则表达式匹配的分支/标签。
    • 限制更新:只有拥有Bypass权限的人才能修改与正则表达式匹配的分支/标签。
    • 限制删除:只有拥有Bypass权限的人才能删除与正则表达式匹配的分支/标签。
    • 要求线性历史:防止协作者向受保护的分支推送合并提交,只允许提交变基合并或压缩合并,以保持提交历史记录的简洁。
    • 要求部署成功:要求每次合并必须先验证其在指定环境中部署成功。
    • 要求签名提交:所有合并必须使用GPG或S/MIME签名,以确保提交确实来源于开发者。
    • 要求拉取请求:合并前需要先提交一个PR。
    • 要求状态检查:确保代码在合并前必须通过一系列自动化检查,如GitHub Actions/CI/CD等。
    • 阻止强制推送:防止未经审核的代码直接推送到受保护的分支。
  7. 附加设置

    • 所需批准:设置需要多少个人批准合并之后才可合并。
    • 忽略过期的拉取请求批准:保证对于旧快照的批准不会延续到新的提交中。
    • 要求Code Owners审查:只有被明确列为“Code Owner”的人(或团队)点了Approve,PR才能合并到受保护分支。
    • 要求最近的审查推送批准:确保在代码合并前,最后一次推送的更改也必须经过代码审查和批准。
    • 要求对话解决:在审阅时,评审者可以提出Comment,这个选项确保在合并PR之前,所有代码审查中的Comment都已被解决。
    • 自动请求Copilot代码审查:如果作者有权限访问Copilot代码审查,那么就会自动进行代码审查。
    • 允许的合并方式:设置允许的合并方式。
    • 要求分支更新:主干永远只接受“已经在最新状态上验证过”的代码。
    • 不要求创建时的状态检查:允许PR在刚创建、还没有任何CI报告回来之前就能被合并。
    • 设置CI/CD检查:设置需要的CI/CD等自动化检查。

通过以上步骤,你可以有效地保护你的GitHub仓库,确保代码质量和项目的稳定性。

标签: none

评论已关闭