概述

在将代码合并到Master分支之前,Pull requests 可以让您的团队提供有关feature branches 代码更改的反馈。代码评审人员可以根据提交的变更逐步提供建议、发表评论、通过投票批准或拒绝代码合并。Azure DevOps为创建,评审和批准 Pull requests 提供了丰富功能和良好的体验。

在开始本实验之前,您需要完成先前的练习: Git lab

先决条件

练习1:使用 pull requests

在前面的 Git lab 练习中,我们创建了一个新的分支并对一些代码进行了更改。现在我们需要提交并推送一些代码到服务器中。这样我们才能够创建一个 pull requests,以便将我们的分支合并到Master。

任务1:创建新的 pull requests

  1. 返回 Visual Studio Code

  2. 选择 Source Control , Visual Studio Code 会自动识别未提交的文件 Category.cs. 输入一个注释: “Category change” 然后键入 Ctrl+Enter 以提交变更到 release branch.

  3. 点击 Synchronize Changes 按钮,将变更推送至服务器。

  4. 键入 Ctrl|Shift+P 打开命令行面板 Command Palette.

  5. 输入 “Team” 然后选择 Team: Create Pull Request ,这将会在浏览器中打开一个新建 pull Request 的页面。

  6. New Pull Request 应该已经包含了评审人员需要的关键信息,以及这些评审人员应该是谁(如果有的话)。

  7. 您可能需要根据分支策略中的某些内容,调整 Pull Request 设置. 当然,你还可以关联工作项. 点击 Create 完成创建。

Task 2: 管理 pull requests

  1. 返回 Visual Studio Code.

  2. 点击 Browse your pull requests

  3. 打开你刚才创建的 pull request

  4. Overview 包含pull request 的所有关键信息,批准和完成的选项。

  5. 点击 Files ,可以评审提交的的源代码。

  6. 您还可以从下拉列表中选择某一个具体的更新进行查看。

  7. 在源码文件中的某一行处,点击 Add comment,输入一些注释,然后点击 Comment 保存.

  8. 现在,刚才添加的注释已经显示在了源代码中的某一行中,这使代码评审非常容易、方便的进行。

  9. 新注释也作为Pull Request的一部分进行跟踪。在完成Pull Request之前,每个注释都将被处理、解决,所以这个方便的标记让您知道是否还有其他需要评审的内容。

  10. 更新注释状态为 Resolved.

  11. 所以注释都解决后,可以看到此处也会更新.

  12. 选择 Updates,这里显示了此分支所有的更新。

  13. 选择 Commits ,可以查看所有的Git Commit。

  14. 似乎所有策略都已满足, 点 Approve 审核 这个pull request.

  15. 审核通过后, 点击 Complete 完成 Pull request.

  16. 您可以在完成 pull request 对话框中看到默认信息。第一个选项是分支关联的工作项。注意,您还可以选择在合并后删除目标分支,以及在marge期间 squash changes ,这是一个合并选项,允许您在完成一个pull request 时压缩Master分支的Git历史。squash changes 并不是将主题分支上的每个提交添加到Master分支的历史记录中,而是将所有文件更改添加到默认分支上的单个新提交中。squash changes 使您的 Master 分支历史保持干净,易于遵循,不会影响团队现有的工作流程。点击 Complete merge 完成合并。

  17. 合并完成后,Pull Requests 应标记为 Completed

  18. 返回 Pull Requests 主页。

  19. 选择 Completed 页, 点击 其中一个pull request

  20. 您可以查看Pull Request,还可以 选择 chery-pickRevertchery-pick 是指从一个分支挑拣一些Commit到另一个分支的过程,在概念上类似于复制/粘贴操作。

  21. Work Items 处, 点击任意一个工作项链接以打开。

  22. 可以看到工作项状态已经变为 Done 了。

  23. Development 页面, 可以看到关联的pull request.

Task 3: 管理Git分支和 pull request 策略

随着项目和团队的复杂性不断扩大,自动化更多的流程以确保质量变得有所帮助。

  1. 打开 Project settings

  2. 选择 Repos 下的 Repositories

  3. 选择 PartsUnlimited 存储库。与Azure DevOps中的其他功能一样,您可以配置存储库的权限。选择 Options 选项卡。这允许您设置一些有用的策略。

  4. 选择 master 分支,您可以像配置存储库一样配置分支的权限。 还可以配置各种各样的分支策略, 点击 Branch Policies,进行设置。

  5. Azure DevOps分支策略在存储库中执行一定级别的质量控制非常有效。例如,您可以通过要求最少数量的评审人员、检查链接的工作项、要求所有注释都已解析等等来控制拉请求。您甚至可以要求通过成功的构建和配置外部批准服务进行验证。如果代码的某些部分需要包含它们自己的审批者,您也可以在这里包含它们。

  6. 选项 Require a minimum number of reviewers,默认情况下,这需要至少两个评审人员批准一个Pull Request,并且(默认情况下)还需要原作者不在其中。

  7. 点击 Add automatic reviewers

  8. 将您自己添加为 Reviewer,并将 Path filter 设置为 “/PartsUnlimited-aspnet45/src/PartsUnlimitedWebsite/Controllers/”。为满足 Required 的要求,确保您将被要求在web应用程序中对源码的任何变更上评审。单击 Save

  9. 点击 Save changes 保存策略.