在GitHub上,评审人和被指派者有什么区别?

347
2016年12月新增了一个功能,GitHub博客上宣布,引入了添加审核者到Pull Request的选项

GitHub Review Option

现在你可以明确地从协作者那里请求审查,这使得指定谁来审查您的拉取请求变得更加容易。您还可以在拉取请求页面侧边栏中看到正在等待审查的人员列表,以及已经离开审查的人员的审查状态。
然而,通过分配人员(assignees选项)已经明确设置了PR的审核者。
由于两个选项都具有相同的最终目标,那么每个选项的作用是什么呢?

1
“assignee feature” 什么时候首次发布?有没有介绍它的文章? - babeyh
6个回答

251

编辑:

经过与多个OSS维护者的讨论,“reviewer”被定义为所应该具有的含义:对代码进行审核,而“assignee”的定义较为宽泛,解释如下。

对于“reviewer”:指的是你希望审核代码的人员。并不一定是那个领域的负责人或合并提交的责任人。可以是之前曾经处理过这部分代码的人员,就像GitHub自动建议的那样。

对于“assignee”:具体含义由项目的团队/维护者来决定,没有严格的定义。它可以是PR提出者,也可以是负责该领域的人员(在审核完成后接受PR或关闭PR的人员)。GitHub不会定义它的含义,而是让项目维护者自行决定哪种方式最适合他们的项目。

先前的回答:

好的,我将回答自己的问题。

对于具有写入访问权限的用户的PR:Assignee将是开PR的人,而Reviewer将替换旧的Assignee功能(审核代码),由Assignee选择审核人员。

对于没有写入访问权限的用户的PR:具有写入访问权限的人员将自行分配(或由其他具有写入权限的成员分配)以审核PR(Reviewer),而Assignee为空白。

对于未完成的来自外部贡献者的PR:具有写入访问权限的成员将接管未完成的工作并为其分配。她将负责完成任务,并择选其他人员审核更改,成为Assignee。由于PR的主要目的是审核更改,她将选择其他人员审核更改。


56
对于每个新团队成员,我应该发送一个链接到这个答案,以解释如何处理被分配者和评审人。这让我想到这里有些根本性的问题 :( - Andrey Kuleshov
被分配人必须具有写入权限吗? - Emre
这两者之间的电子邮件通知行为有区别吗? - jxramos
电子邮件通知类似,但一个说你被“分配”,另一个说有人“请求你的审查”。这些电子邮件还有不同的“收件人”字段(例如to:review_requested@noreply.github.com),您可以使用它来在Gmail中创建过滤器,自动应用标签,例如。 - davegaeddert

49
在GitHub中,评审人是指审核拉取请求的人。项目所有者可以向任何维护者请求审核,他们甚至可以设置选项,只有在受到具有写入权限的维护者之一的审核后才能合并拉取请求。
根据官方GitHub文档,被指派者是指正在处理特定问题和拉取请求的人。有时会与评审人混淆。实际上,它通常用于问题而不是拉取请求,以便在收到问题时我们可以指定某人来解决它。在拉取请求中,被指派者指的是负责在得到其他维护者的评论和更改请求后合并该拉取请求的人。

3
谢谢回答,但我认为它没有完全回答我的问题。你可以指定一个问题给某个人(这样她就成为问题的受让人),但是当PR被发送时,某个人将成为审查者(PR受让人),此时,我仍然不清楚受让人和审查者之间的区别。 - Cezar Augusto

42
根据已接受的答案。是的,“assignee”有一个更宽松的定义,可以根据团队的需要进行不同的使用。
在我们的8名开发人员团队中,在大多数PR中,我们有1个评审人员,他提出建议并最终批准PR。在审核阶段,“assignee”是打开PR的人;稍后如果其他开发人员接手PR,则会添加新的“assignee”。一旦PR获得批准并准备好进行QA或直接合并,就会添加一个新的QA“assignee”。这样,“assignee”列表就会增长。
我们使用“assignee”来共同指定以下人员:
1. Pull Request作者 2. 作者正在处理PR更改建议(通常与1相同) 3. 参与的QA人员 4. 负责合并的人员(通常与2或3相同)
使用“assignee”有助于未来轻松定位PR。我的一个项目有>3000个PR。 is:open is:pr author:raya-dumas is:closed is:pr assignee:raya-dumas 或者只需author:raya-dumas查找作者创建的所有项目(问题、PR等)
和其他类似的查询以简化搜索过程。使用“里程碑”也很有帮助,以便于PR搜索。

Screenshot Github, Q4 2017


讲解得非常清楚。 - Nitin Gaur
1
值得一提的是,您可以通过搜索 author:my-github-handle 来查找某个人创建的 PR。 - Wisienkas
为什么不将质量保证工程师加入审查人员呢?毕竟他们也在审查代码,并且这样做可以通知他们相关的事实。 - maninak

12
"reviewers"和"assignees"之间最大的区别在于,GitHub实际上会跟踪记录审阅者的状态--他们是否已经审阅了PR?
当您添加一个审阅者时,它实际上是创建了一个"审阅请求"GitHub review request pending 审阅者将会被通知(就像"assignee"一样),但现在他们实际上有了一个可以完成的任务,那就是对拉取请求提供一个"审阅"GitHub review changes dialog box 在审阅者留下审阅(批准或请求更改)后,该信息将在GitHub API和界面中进行跟踪记录。"

GitHub reviewer approved

GitHub review required PR list

使用“assignees”,您可以将人与PR相关联,但除此之外,GitHub并不真正关心这意味着什么或那些人需要做什么。对于审阅者,您可以使用新的搜索查询, “保护”分支, 使用CODEOWNERS指定审阅者,并且构建更深入的API集成,手动或通过PullApprove等工具进行审查分配和工作流程

2
在GitHub之前,只有一个指派人(assignee)字段,没有审核人(reviewer)字段。当时没有区别,所以指派人字段最常用作审核人字段。
但是,可以根据项目需要自由使用它们。

1
另一个不同之处是:创建PR的人可以将自己指定为负责人,但不能要求自己成为审阅者。

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