Github团队审查

5
我能否让Github在创建审核时自动添加一组人?
理想情况下,我想创建一个人员组,并且只有在该组中至少有一个人接受更改后才能合并。
该人员组将是该领域的主管专家。其他评论者可以进行评论和接受,但只有在至少有一个SME接受更改后,PR才能合并。
在Github中是否可以实现此功能而不使用钩子?

所提出的解决方案(CODEOWERS)在GitHub上运行良好,但截至本文撰写时,它目前不适用于GitHub企业版。 - Alexandre Santos
抱歉!虽然您可能无法像CODEOWNERS文件那样精细地配置自动审核请求,但是您仍然可以使用受保护的分支进行“必需审核”,这在Github Enterprise 2.8+中可用。它比CODEOWNERS能做的要少一些,但它可能会对您有所帮助。有关更多信息,请参见下面我的回答中的评论。 - Zachary Espiritu
2个回答

2

是的,您可以在没有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

1
CODEOWNERS 只在 GitHub 上起作用。不幸的是,它在我正在使用的 GitHub Enterprise 上无法正常工作。 - Alexandre Santos
@AlexandreSantos 啊,那真是不幸。虽然您可能无法像CODEOWNERS文件那样对它们进行精细配置,但仍可以使用受保护的分支来实现“必需审核”,这在Github Enterprise 2.8+中可用。 - Zachary Espiritu
请参阅Github Enterprise中有关所需审核的文档以获取更多信息: "存储库管理员可以要求所有拉取请求在合并到受保护分支之前至少获得一位具有写入或管理权限的人员的批准审核。" - Zachary Espiritu
很遗憾,这并不能自动请求用户进行审核 - 它只能防止拉取请求在至少有一个具有存储库上的写入管理员权限的人批准审核之前合并。 - Zachary Espiritu

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接