Skip to content

Latest commit

 

History

History
36 lines (29 loc) · 1.94 KB

分支保护规则.md

File metadata and controls

36 lines (29 loc) · 1.94 KB

分支保护规则

分支保护规则 (Branch protection rules) 是 github 提供的、避免重要分支被轻易地污染、删除的重要功能。它位于 Settings-Branches 面板中。

对于可以设置保护规则(目前已知非付费团队的私有库无法设置)的代码库,我们必须进行设置,以减少重要分支被误操作的可能性。

受保护分支

当一个分支符合“长期维护的协作分支”这样的定义时,我们就应当将其设定为受保护分支,具体来说:

  • 维护周期比较长(延续数个 Sprint 、延续一个版本、延续一个 Milestore)
  • 接受来自不同时段、不同开发者的合并请求

在实践中,我们通常将以下分支列为受保护分支:

  • 一般意义上的主分支,如 masterdevelop 等。绝大多数的变动都会汇聚到此类分支上。
  • 针对特定版本的分支,如 release-branch.go1.18release/v1.15 等。该版本从预备发布到结束维护,生命周期内的变动都会汇聚到此类分支上。
  • 其他满足定义的分支

保护规则清单

必须启用以下规则:

  • Require a pull request before merging 即必须通过 pull request 的形式将变动提交到目标分支

    • Require approvals & Required number of approvals before merging: 1 即必须经过至少一位 reviewer 的认可
    • Dismiss stale pull request approvals when new commits are pushed 即新提交会重置 review 状态
  • Require status checks to pass before merging 即合并前必须通过所有已设置的检查项

  • Require conversation resolution before merging 即合并前必须将所有对话标记为“解决”

必须禁用以下规则:

  • Rules applied to everyone including administrators 中的
    • Allow force pushes 即允许所有具备 push 权限的用户强制推送到受保护分支上
    • Allow deletions 即允许所有具备 push 权限的用户删除受保护分支