GitHub,审稿人和受让人有什么区别?

On GitHub, what's the difference between reviewer and assignee?

2016 年 12 月 7 日添加的一项功能,在 GitHub 博客上宣布,引入了选项 to add reviewers to a Pull Request

You can now request a review explicitly from collaborators, making it easier to specify who you'd like to review your pull request.

You can also see a list of people who you are awaiting review from in the pull request page sidebar, as well as the status of reviews from those who have already left them.

但是,已经通过分配人员(assignees 选项)为 PR 明确设置审阅者。

现在这两个选项都可用,每个选项的作用是什么,因为它们都有相同的最终目标?

在 GitHub 中,审阅者是审阅拉取请求的人。项目所有者可以请求任何维护者的审查,他们甚至可以设置一个选项,以便只有在其中一位具有写入权限的维护者审查时才能合并拉取请求。

根据官方github documentation,Assignee 是处理特定问题和拉取请求的人。作为审稿人有时会混淆。它实际上是为了与问题一起使用而不是拉取请求,这样当我们收到问题时,我们可以指派某人来解决它。在拉取请求中,受让人指的是在收到来自其他维护者的评论和更改请求后负责合并该拉取请求的人。

编辑:

After discussing with several OSS maintainers, reviewers is defined as what the word supposed to be: to review (someone's code) and "assignee" has a looser definiton explained below.

对于"reviewer":你想审查代码的人。不一定是负责该区域或负责合并提交的人。正如 GitHub 自动建议的那样,可以是之前处理过该代码块的人。

对于"assignee": 到项目的team/maintainer是什么意思,并没有严格的定义。它可以是 PR 开启者,或负责该领域的人(在审查完成后将接受 PR 或只是关闭它)。 GitHub 不能定义它对项目维护者开放的是什么最适合他们的项目。

上一个回答:

好的,我会继续回答我自己的问题。

对于有写权限用户的PR: Assignee 将是打开PR 的同一个人,reviewer 将替换旧的assignee 功能(审查代码),即这是受让人选择的人。

对于没有写入权限的用户(外部贡献者)的 PR: 具有写入权限的人会指派自己(或其他具有写入权限的成员)来审查 PR(审稿人)。受让人为空。

对于外部贡献者未完成的PR:write-access member 将未完成的工作分配给她。作为受让人,她将负责完成任务。由于 PR 的主要原因是审查更改,她会 select 一些其他人来审查更改。

根据已接受的答案。是的,"assignee" 有一个更宽松的定义,可以以不同的方式使用以满足团队的需要。

在我们的 8 名开发人员团队中,在大多数 PR 中,我们有 1 名审阅者,他们提出更改建议并最终批准 PR。在review阶段,"assignee"是打开PR的人;稍后,如果 PR 被其他开发人员获取,则会添加一个新的 "assignee"。一旦 PR 获得批准并准备好进行 QA 或直接合并,就会添加一个新的 QA "assignee"。这样 "assignee" 列表就会增长。

我们使用"assignee"来统称以下人员:

  1. 拉取请求作者
  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)

和其他类似的查询,以简化搜索过程。 "milestones" 对使用以及简化 PR 搜索非常有帮助。

之前GitHub只有受让人字段而没有审稿人字段。当时没有区别,所以 assignee 字段最常用作 reviewer 字段。

但是请根据您的项目以任何方式使用它们。

“审稿人”和“受让人”之间的最大区别是审稿人实际上根据 GitHub 有一个跟踪状态——他们是否审阅了 PR?

当您添加审阅者时,它实际上所做的是创建一个 "review request":

审阅者会收到通知(就像“受让人”一样),但现在他们实际上有一项任务可以完成,即提供 "review"拉取请求:

审阅者留下审阅(批准或请求更改)后,将在 GitHub API 和界面中跟踪该信息:

对于受让人,您可以将人员与 PR 相关联,但除此之外 GitHub 并不真正关心这意味着什么或这些人需要做什么。对于审稿人,您可以使用 new search queries, "protect" branches, assign reviewers with CODEOWNERS, and build deeper API integrations around review assignment and workflows manually or through tools like PullApprove.

另一个区别:创建 PR 的人可以指定 himself/herself 作为受让人,但不能请求 himself/herself 作为审阅者之一。