是的,您可以在没有Webhooks的情况下完成所有这些操作!
审批组
对于设置“审批组”的问题,您可以使用CODEOWNERS
文件进行设置。
从Github文档中(重点在我):
使用CODEOWNERS
文件定义负责存储库中代码的个人或团队。
当有人打开修改他们拥有的代码的拉取请求时,将自动请求代码所有者进行审核。 当具有管理员权限的人启用必需的审核时,他们可以选择要求代码所有者的批准。
CODEOWNERS
文件的格式类似于.gitignore
文件,但是在每个作用域旁边使用Github用户名。 作用域使用与.gitignore
文件相同的规则进行定义。
(请参见本答案末尾的示例CODEOWNERS
文件。)
必需审核
如果您在Github存储库中
设置受保护的分支, 您还可以启用
必需审查。
来自
Github文档(再次强调:):
引用:
存储库管理员可以要求所有拉取请求在合并到受保护的分支之前至少获得一位具有写入或管理员权限或指定代码所有者的批准审查。启用必需审查时,具有对存储库访问权限的任何人都可以批准拉取请求中的更改。但是,要合并您的拉取请求,您需要拥有对存储库具有写入或管理员权限的人在其审查中批准您的拉取请求的更改。如果指定了代码所有者并且拉取请求影响具有指定所有者的代码,则需要该所有者的批准。
示例 CODEOWNERS 文件(来自Github文档):
# This is a comment.
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
* @global-owner1 @global-owner2
# Order is important; the last matching pattern takes the most
# precedence. When someone opens a pull request that only
# modifies JS files, only @js-owner and not the global
# owner(s) will be requested for a review.
*.js @js-owner
# You can also use email addresses if you prefer. They'll be
# used to look up users just like we do for commit author
# emails.
*.go docs@example.com
# In this example, @doctocat owns any files in the build/logs
# directory at the root of the repository and any of its
# subdirectories.
/build/logs/ @doctocat
# The `docs/*` pattern will match files like
# `docs/getting-started.md` but not further nested files like
# `docs/build-app/troubleshooting.md`.
docs/* docs@example.com
# In this example, @octocat owns any file in an apps directory
# anywhere in your repository.
apps/ @octocat
# In this example, @doctocat owns any file in the `/docs`
# directory in the root of your repository.
/docs/ @doctocat
CODEOWNERS
文件那样精细地配置自动审核请求,但是您仍然可以使用受保护的分支进行“必需审核”,这在Github Enterprise 2.8+中可用。它比CODEOWNERS
能做的要少一些,但它可能会对您有所帮助。有关更多信息,请参见下面我的回答中的评论。 - Zachary Espiritu