使用机器学习

通过 Amazon CodeGuru Reviewer 评估源代码

在本教程中,您将学习如何使用机器学习通过 Amazon CodeGuru Reviewer 对云中的源代码进行评估。

Amazon CodeGuru Reviewer 是一项服务,可通过程序分析和机器学习来检测开发人员难以发现的潜在缺陷,并可提供改进 Java 和 Python 代码的建议。通过主动检测代码缺陷,CodeGuru Reviewer 可以提供解决这些缺陷和实施最佳实践的指南,从而提高代码审查阶段代码库的整体质量和可维护性。

在本教程中,您将学习如何完成以下各项:

  1. 使用 AWS CloudShell 在 AWS CodeCommit 中创建示例存储库
  2. 将示例存储库与 CodeGuru Reviewer 关联起来
  3. 在 AWS CodeCommit 中创建新的代码提交
  4. 在 AWS CodeCommit 中创建拉取请求
  5. 查看 CodeGuru Reviewer 的推荐并向其提供反馈
  6. 清除教程资源

本教程适用于 AWS Free Tier

关于本教程
时间 10 分钟                                  
费用 AWS 免费套餐资格
使用案例 Machine Learning
产品 Amazon CodeGuruAWS CodeCommit
受众 开发人员
级别 新手
上次更新日期 2021 年 2 月 18 日

开始之前

您必须拥有一个 AWS 账户才能完成本教程。如果您还没有账户,请选择 Sign up for AWS(注册 AWS)并创建一个新账户。

已拥有账户?
登录您的账户

步骤 1.创建样本存储库

要在 AWS CodeCommit 中创建示例存储库,可执行以下步骤。使用 AWS CloudShell(一种基于浏览器的 Shell)来运行创建并克隆示例存储库的命令。后续步骤为将此存储库与 CodeGuru Reviewer 关联并生成源代码建议。

注意:有关更多信息,请参阅 Amazon CodeGuru 文档中的为您的源代码创建存储库


a.登录 AWS CloudShell

AWS CloudShell

b.运行以下命令以在 AWS CodeCommit 中创建新的示例存储库。

aws codecommit create-repository --repository-name CodeGuruReviewerRepo --repository-description "CodeGuru Reviewer demonstration repository"

c.运行以下命令以克隆 CodeGuru Reviewer 示例存储库。
git clone --mirror https://github.com/aws-samples/amazon-codeguru-reviewer-sample-app

d.运行以下命令以将目录更改为进行克隆的目录。
cd amazon-codeguru-reviewer-sample-app.git

e.运行以下命令以将克隆推送到您的 AWS CodeCommit 存储库。

注意:此命令使用的是默认安装在 AWS CloudShell 上的 git-remote-commit有关此实用程序的详细信息,请参阅使用 git-remote-codecommit 进行 HTTPS 连接到 AWS CodeCommit 的设置步骤

git push codecommit://CodeGuruReviewerRepo --all

第 2 步:将示例存储库与 CodeGuru Reviewer 关联起来

在此步骤中,您将创建 CodeGuru Reviewer 与上一步中创建的示例代码存储库的关联。由于 CodeGuru 现已订阅来自该存储库的拉取请求通知,因此创建的任何新拉取请求都会通知 CodeGuru 并触发代码审查扫描。

完成以下步骤以关联示例存储库。

注意:有关更多信息,请参阅 Amazon CodeGuru Reviewer 文档中的使用 Amazon CodeGuru Reviewer 中的存储库关联


a.打开 Amazon CodeGuru 控制台。在 Getting started(开始使用)框中,选择 CodeGuru Reviewer,然后选择 Get started(开始使用)

b.在 关联存储库页面上,对于 选择源提供商,选择 AWS CodeCommit。对于存储库位置,选择 CodeGuruReviewerRepo。选择 Associate(关联)。
CodeGuru Reviewer 开始关联存储库并显示 Associating(正在关联) Status(状态)。
等待 Status(状态)从 Associating(正在关联)更改为 Associated(已关联),然后继续执行下一步骤。

第 3 步:创建新的代码提交

在此步骤中,您将使用基于 AWS CloudShell 浏览器的 Shell 创建新分支并提交代码。

完成以下步骤以创建分支和代码提交。

注意:有关更多信息,请参阅 AWS CloudShell 文档中的教程:在 AWS CloudShell 中使用 CodeCommit


a.打开 AWS CloudShell

AWS CloudShell

b.运行以下命令将目录更改为默认目录。
cd ~

c.运行以下命令克隆示例存储库并创建新分支。
git clone codecommit://CodeGuruReviewerRepo 

d.运行以下命令更改目录。
cd CodeGuruReviewerRepo

e.运行以下命令来查看 dev 分支。
git checkout -b dev

f.运行以下命令将 src/main/java/com/shipmentEvents/handlers/EventHandler.java 上的 Java 类复制到 src/main/java/com/shipmentEvents/demo
cp src/main/java/com/shipmentEvents/handlers/EventHandler.java src/main/java/com/shipmentEvents/demo/

g.将您的文件暂存到存储库中。
git add --all

h.将文件的暂存版本提交到存储库。
git commit -m "new demo file"

注意:如果系统提示您输入配置信息以完成提交,请使用以下格式。

git config --global user.name "Jane Doe"
git config --global user.email janedoe@example.com

i.将您的更改推送到 CodeCommit 存储库。
git push --set-upstream origin dev

第 4 步:创建拉取请求

在此步骤中,您将在 AWS CodeCommit 控制台中创建拉取请求。创建拉取请求后,Amazon CodeGuru Reviewer 会自动评估源代码更改。当您从关联的存储库创建拉取请求时,将自动创建拉取请求代码评审。这些代码评审会扫描拉取请求中更改的代码。

完成以下步骤以创建拉取请求并启动 CodeGuru Reviewer 作业。

注意:有关更多信息,请参阅 Amazon CodeGuru Reviewer 文档中的关于存储库分析和拉取请求代码审查的内容。


a.打开 AWS CodeCommit 控制台,然后在 存储库列表中选择 CodeGuruReviewerRepo

b.在 存储库详细信息页面上,选择 创建拉取请求

c.在 创建拉取请求页面上,为 目标选择 master 。对于 Source(源),选择 dev。然后选择 Compare(比较)。

d.在 详细信息项下的 标题中,输入 CodeGuru Reviewer Demo。然后,选择 创建拉取请求

e.在 拉取请求详细信息页面上,选择 活动选项卡以查看 Amazon CodeGuru Reviewer 任务状态。任务状态从 进行中变为 已完成后,您可以查看建议。

第 5 步:查看建议并提供反馈

在此步骤中,您将查看 Amazon CodeGuru Reviewer 作业生成的建议。您可以提供有关建议的反馈、纳入建议和回复建议。这些建议可通过 Amazon CodeGuru Reviewer 控制台和 AWS CodeCommit 控制台获得。此步骤会引导您在 AWS CodeCommit 控制台中查看建议并提供反馈。 

完成以下步骤,便可查看来自 CodeGuru Reviewer 作业的建议并提供反馈。

注意:有关更多信息,请参阅 AWS CodeCommit 文档中的查看拉取请求和在 Amazon CodeGuru Reviewer 文档中查看建议和提供反馈


a.拉取请求详情页面上,等待 Amazon CodeGuru Reviewer 任务状态显示已完成。然后,向下滚动到活动历史记录以查看推荐。

每项建议都重点介绍了存在风险的代码行,并说明了检测到的问题、建议的修复方法以及任何其他可供参考的示例。


b.(可选)选择表情符号反应下拉列表以指明该建议是否有用。


c.(可选)选择 回复 并提供文本反馈

注意:反馈和评论将与 Amazon CodeGuru Reviewer 共享,并可能用于改进服务。

第 6 步:清除

在这一步中,您将终止在本实验中使用的资源。

重要说明:终止当前未在使用的资源可降低成本,是最佳做法。未终止资源的话则可能会在您的账户下产生费用。


取消样本存储库与 CodeGuru Reviewer 的关联:

  1. 打开 Amazon CodeGuru 控制台
  2. 从左侧导航窗格中选择 Repositories(存储库)。
  3. 选择 CodeGuruReviewerRepo,然后选择取消关联存储库

删除 CodeCommit 文件和存储库:

  1. 打开 AWS CloudShell
  2. 运行以下命令:
cd ~
rm -rf amazon-codeguru-reviewer-sample-app.git
rm -rf CodeGuruReviewerRepo
aws codecommit delete-repository --repository-name CodeGuruReviewerRepo

恭喜

您已使用 Amazon CodeGuru Reviewer 在云端使用机器学习对源代码更改进行了评估! 您通过关联 AWS CodeCommit 存储库、创建拉取请求,然后查看 Amazon CodeGuru Reviewer 创建的建议来完成此任务。这些建议可以补充现有的同行评审流程,提高应用程序的代码质量。

此页内容对您是否有帮助?

了解更多

参阅 Amazon CodeGuru Reviewer 用户指南,了解有关 Amazon CodeGuru Reviewer 的更多信息。

了解有关 Amazon CodeGuru Profiler 的更多信息

Amazon CodeGuru Profiler 会收集正在运行的应用程序中的运行时系统性能数据,并提供帮助您调优应用程序性能的建议。