news 2026/9/16 11:01:09

使用 aws-cli 的 codeguru-reviewer list-recommendation-feedback 查询代码评审推荐反馈

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
使用 aws-cli 的 codeguru-reviewer list-recommendation-feedback 查询代码评审推荐反馈

使用 aws-cli 的 codeguru-reviewer list-recommendation-feedback 查询代码评审推荐反馈

【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli

aws codeguru-reviewer list-recommendation-feedback是 aws-cli 中用于批量查询 Amazon CodeGuru Reviewer 代码评审(Code Review)推荐反馈的核心命令。本指南以仓库中的官方示例 list-recommendation-feedback.rst 为主体,结合服务模型 service-2.json 的底层定义,带你掌握该命令的参数语义、输出结构、筛选与分页能力,并与put-recommendation-feedbackdescribe-recommendation-feedback串联成完整的"提建议—收反馈—查反馈"闭环。

命令概览与适用场景

Amazon CodeGuru Reviewer 通过程序分析与机器学习,对 Java、Python 代码中的潜在缺陷和最佳实践给出推荐(Recommendation)。为了让开发者对每一条推荐表达意见,服务提供了"反馈(Feedback)"机制——你可以对某条推荐点"👍(ThumbsUp)"或"👎(ThumbsDown)"。

list-recommendation-feedback对应 CodeGuru Reviewer API 中的ListRecommendationFeedback操作,其作用是:

返回包含所有 CodeGuru Reviewer 用户针对某次代码评审的推荐反馈的RecommendationFeedbackSummary对象列表。

典型场景包括:

  • 评审完成后,汇总团队对每条推荐的赞成/反对意见,判断推荐质量;
  • 结合--user-ids查看特定用户的反馈偏好,用于培训或审计;
  • 结合--recommendation-ids单独核验某几条关键推荐(尤其是安全类推荐)是否被采纳。

从服务模型看,该操作对应的 HTTP 请求为GET /feedback/{CodeReviewArn}/RecommendationFeedback(见 service-2.json),CodeReviewArn直接拼入 URL 路径,其余参数以 query string 传递。

前置条件:先拿到 CodeReviewArn

CodeReviewArn是该命令唯一必填参数,它标识一次具体的代码评审。实际使用中,评审 ARN 通常通过以下方式获取:

  • 调用aws codeguru-reviewer list-code-reviews列出 90 天内创建的评审;
  • 调用aws codeguru-reviewer describe-code-review查看指定评审详情;
  • 在评审完成后从创建命令create-code-review的返回值中取得。

从模型中的Arn形状(service-2.json)可以推断其结构:arn:aws:codeguru-reviewer:<region>:<12位账号ID>:<资源类型>:<资源ID>,长度限制为 1–1600 字符。官方示例中的 ARN 是一个典型的基于仓库分析的评审

arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678

其中association:后是仓库关联 ID(UUID 格式),code-review:后是评审名称,形如RepositoryAnalysis-<仓库名>-<分支名>-<哈希>

基本用法:列出评审的全部推荐反馈

官方示例(list-recommendation-feedback.rst)给出了最直接的调用方式:只传--code-review-arn,列出该评审下所有推荐上的客户反馈:

aws codeguru-reviewer list-recommendation-feedback \ --code-review-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678

示例输出(该评审下有一条反馈,来自某位客户的一条ThumbsUp):

{ "RecommendationFeedbackSummaries": [ { "RecommendationId": "3be1b2e5d7ef6e298a06499379ee290c9c596cf688fdcadb08285ddb0dd390eb", "Reactions": [ "ThumbsUp" ], "UserId": "aws-user-id" } ] }

输出字段逐项解读

根据RecommendationFeedbackSummary形状定义(service-2.json),返回数组中的每个对象包含三个字段:

字段类型说明
RecommendationIdstring推荐 ID,用于追踪推荐并收集反馈,长度 1–64 字符
Reactionslist反馈表情列表,当前枚举值为ThumbsUp/ThumbsDown,列表容量最多 1 个(max:1
UserIdstring给出反馈的用户标识,是 IAM 主体,可为 AWS 账号 ID 或 IAM 角色的 ARN,长度 1–256 字符

需要注意两点细节:

  1. 一条反馈只对应一种表情Reactions形状(service-2.json)的约束是max:1, min:0,即单条反馈要么有一个表情,要么为空列表(表示已清除反馈)。
  2. UserId是 IAM 主体:模型文档明确说明它可以是指定的 IAM principal(AWS 账号 ID 或 ARN)。示例中的"aws-user-id"只是示意值,真实输出中会是你配置的凭证对应的账号标识。

响应中的分页字段

除了RecommendationFeedbackSummariesListRecommendationFeedbackResponse(service-2.json)还包含NextToken

  • 如果响应中返回了nextToken,说明还有更多结果;
  • nextToken是每页唯一的透明分页令牌,仅用于取下一页,不应被解析或用于其他目的;
  • 把返回的 token 原样传给下一次调用的--next-token,其余参数保持不变。

进阶用法:筛选与分页控制

list-recommendation-feedback除必填的--code-review-arn外,还支持三个可选参数(见 service-2.json 的请求定义)。

--user-ids:只看某个用户的反馈

aws codeguru-reviewer list-recommendation-feedback \ --code-review-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678 \ --user-ids 111122223333

UserIds列表最多可传 100 个值,每个值为 AWS 账号 ID 或 IAM 主体 ARN。适用于"查询某位开发者对本次评审的反馈"。

--recommendation-ids:只看特定推荐的反馈

aws codeguru-reviewer list-recommendation-feedback \ --code-review-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678 \ --recommendation-ids 3be1b2e5d7ef6e298a06499379ee290c9c596cf688fdcadb08285ddb0dd390eb

RecommendationIds列表同样最多 100 个,每个推荐 ID 长度 1–64 字符。推荐 ID 的来源是先调用aws codeguru-reviewer list-recommendations获取——该命令的示例输出(见 list-recommendations.rst)中,每条RecommendationSummary都带有RecommendationIdStartLineEndLineFilePathDescription,你可以据此定位某条具体推荐。

--max-results 与 --next-token:控制分页

aws codeguru-reviewer list-recommendation-feedback \ --code-review-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678 \ --max-results 50 \ --next-token <上次返回的token>

参数语义(依据模型文档):

  • --max-results:单次调用最多返回的结果数,取值 1–100,默认值为 100MaxResults形状见 service-2.json);
  • --next-token:上一页返回的NextToken(长度 1–2048),用于翻页;无更多结果时响应中不带该字段。

反馈闭环:put / describe / list 三个命令配合使用

list-recommendation-feedback只是"读"的一环,完整的工作流通常由以下命令协同完成:

命令对应操作作用
put-recommendation-feedbackPutRecommendationFeedbackPUT /feedback写入反馈,同一推荐再次调用会覆盖之前的反馈
describe-recommendation-feedbackDescribeRecommendationFeedback查看单条推荐的反馈详情(含创建/更新时间戳)
list-recommendation-feedbackListRecommendationFeedback批量汇总所有用户对所有推荐的反馈

1. 写入反馈:put-recommendation-feedback

官方示例 put-recommendation-feedback.rst 展示了给某条推荐点"赞":

aws codeguru-reviewer put-recommendation-feedback \ --code-review-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678 \ --recommendation-id 3be1b2e5d7ef6e298a06499379ee290c9c596cf688fdcadb08285ddb0dd390eb \ --reactions ThumbsUp

该命令不产生输出。其请求定义(service-2.json)要求CodeReviewArnRecommendationIdReactions三个参数均为必填,且服务端文档明确指出:"当该 API 以不同的 reactions 再次调用时,之前的反馈会被覆盖。" 如果想清除反馈,可以发送空列表--reactions []

2. 查看单条详情:describe-recommendation-feedback

aws codeguru-reviewer describe-recommendation-feedback \ --code-review-arn arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678 \ --recommendation-id 3be1b2e5d7ef6e298a06499379ee290c9c596cf688fdcadb08285ddb0dd390eb

示例输出(describe-recommendation-feedback.rst)比list更详细,额外包含CodeReviewArnCreatedTimeStampLastUpdatedTimeStamp

{ "RecommendationFeedback": { "CodeReviewArn": "arn:aws:codeguru-reviewer:us-west-2:123456789012:association:a1b2c3d4-5678-90ab-cdef-EXAMPLE11111:code-review:RepositoryAnalysis-my-repository-name-branch-abcdefgh12345678", "RecommendationId": "3be1b2e5d7ef6e298a06499379ee290c9c596cf688fdcadb08285ddb0dd390eb", "Reactions": [ "ThumbsUp" ], "UserId": "aws-user-id", "CreatedTimeStamp": 1618877070.313, "LastUpdatedTimeStamp": 1618877948.881 } }

对应到模型中的RecommendationFeedback形状(service-2.json),CreatedTimeStampLastUpdatedTimeStamp分别表示反馈创建和最后更新时间。如果你需要追踪"某条反馈是什么时候提交/修改的",用describe而不是list

3. 组合工作流示例

一个典型的反馈审查流程是:

# 第一步:获取某条推荐的 ID aws codeguru-reviewer list-recommendations \ --code-review-arn <code-review-arn> # 第二步:针对推荐写反馈(👍 或 👎) aws codeguru-reviewer put-recommendation-feedback \ --code-review-arn <code-review-arn> \ --recommendation-id <recommendation-id> \ --reactions ThumbsDown # 第三步:汇总查看所有反馈 aws codeguru-reviewer list-recommendation-feedback \ --code-review-arn <code-review-arn> # 第四步(可选):核查单条反馈的提交时间 aws codeguru-reviewer describe-recommendation-feedback \ --code-review-arn <code-review-arn> \ --recommendation-id <recommendation-id>

异常与排错

ListRecommendationFeedback可能抛出的异常类型定义在 service-2.json,可据此推断常见报错原因:

异常含义排查建议
ResourceNotFoundException指定的CodeReviewArn不存在list-code-reviews确认评审 ARN 是否真实存在、是否属于当前账号
ValidationException输入不满足约束检查 ARN 格式(含 12 位账号 ID)、--max-results是否在 1–100、--recommendation-ids数量是否超过 100
AccessDeniedException权限不足确认 IAM 凭证具备codeguru-reviewer:ListRecommendationFeedback权限
ThrottlingException请求被限流适当退避重试
InternalServerException服务端内部错误稍后重试,若持续失败可联系 AWS 支持

一个值得注意的坑:示例 ARN 中的账号123456789012、关联 IDa1b2c3d4-...和推荐 ID 均为文档占位符。直接把示例命令原样执行会得到ResourceNotFoundExceptionValidationException,务必替换为你账号下真实存在的评审 ARN。

源码依据

本文涉及的命令定义与参数约束均可从以下仓库文件直接验证:

  • 官方 CLI 示例:list-recommendation-feedback.rst
  • 配套写反馈示例:put-recommendation-feedback.rst
  • 配套详情示例:describe-recommendation-feedback.rst
  • 推荐 ID 来源示例:list-recommendations.rst
  • CodeGuru Reviewer 服务模型(API 定义、参数约束、异常、返回形状):awscli/botocore/data/codeguru-reviewer/2019-09-19/service-2.json

aws-cli 会依据该 JSON 服务模型自动生成list-recommendation-feedback子命令的参数校验与序列化逻辑,因此模型中的min/max约束、枚举值与查询参数位置(querystringuri)即是你实际执行命令时的行为边界。

【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/16 11:00:53

Electron开发轻量级桌面天气应用实战

1. 项目概述与核心价值去年夏天帮朋友搬家时遇到突发暴雨&#xff0c;让我意识到实时天气信息对日常生活决策的重要性。市面上虽然有不少天气应用&#xff0c;但要么功能臃肿&#xff0c;要么广告太多&#xff0c;于是决定自己开发一个轻量级的桌面天气工具。这个用Electron构建…

作者头像 李华
网站建设 2026/9/16 11:00:53

OpenChat开源聊天模型实战:从C-RLFT训练到私有化部署与微调

前阵子有朋友问我&#xff0c;公司想在内网搭一个私有化的聊天机器人&#xff0c;数据不出服务器&#xff0c;预算又有限&#xff0c;问我有没有合适的开源模型可以选。我想了想&#xff0c;直接推荐了OpenChat。这个项目在开源社区里一直挺低调&#xff0c;但实测下来&#xf…

作者头像 李华
网站建设 2026/9/16 11:00:32

数据库专题25:备份与恢复演练——没有做过恢复,就不算有备份

数据库专题25&#xff1a;备份与恢复演练——没有做过恢复&#xff0c;就不算有备份 备份文件存在磁盘上&#xff0c;只能说明“复制成功”&#xff0c;不能说明系统能恢复。真正的目标是给博客项目定义 RPO&#xff08;最多丢多少数据&#xff09;和 RTO&#xff08;多久恢复服…

作者头像 李华
网站建设 2026/9/16 10:59:18

新型2T增益单元存储器技术:低刷新能耗与高可靠性突破

1. 新型低刷新能耗增益单元存储器技术解析在半导体存储器领域&#xff0c;功耗与性能的平衡一直是工程师们面临的重大挑战。最近斯坦福大学与台积电联合研发的新型2T增益单元存储器技术&#xff0c;通过创新的界面偶极子调控方法&#xff0c;实现了刷新能耗的大幅降低。这项技术…

作者头像 李华