You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取AWS CodeCommit中Pull Request审批人列表并生成报告

生成包含AWS CodeCommit Pull Request及审批人信息的报告

因为CodeCommit控制台的PR列表默认不展示审批人列,你可以通过以下几种方式生成所需报告:

方法一:使用AWS CLI批量获取信息

  1. 先列出目标仓库中所有的Pull Request:
aws codecommit list-pull-requests --repository-name YOUR_REPO_NAME
  1. 遍历每个PR的ID,获取包含审批人在内的详细信息:
for pr_id in $(aws codecommit list-pull-requests --repository-name YOUR_REPO_NAME --query 'pullRequestIds' --output text); do
  aws codecommit describe-pull-request --pull-request-id $pr_id --query '{pullRequestId: pullRequestId, title: title, approvers: approvalRules[].approvalRuleContent}'
done

如果需要输出为易读的CSV格式,可以结合jq工具处理:

echo "PR ID,标题,审批人" > pr_approvers.csv
for pr_id in $(aws codecommit list-pull-requests --repository-name YOUR_REPO_NAME --query 'pullRequestIds' --output text); do
  aws codecommit describe-pull-request --pull-request-id $pr_id | jq -r '"'\(.pullRequestId)','\(.title)','\(.approvalRules[0].approvalRuleContent | fromJson.approvers)"' >> pr_approvers.csv
done

方法二:使用AWS SDK编写自定义脚本

如果需要更灵活的格式或批量处理多个仓库,可以用Python结合Boto3 SDK编写脚本:

import boto3
import csv

client = boto3.client('codecommit')
repo_name = "YOUR_REPO_NAME"

# 获取仓库内所有PR
pr_response = client.list_pull_requests(repositoryName=repo_name)
pr_ids = pr_response['pullRequestIds']

# 生成CSV报告
with open('pr_approvers_report.csv', 'w', newline='', encoding='utf-8') as csvfile:
    fieldnames = ['PR ID', '标题', '状态', '审批人']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()

    for pr_id in pr_ids:
        pr_details = client.describe_pull_request(pullRequestId=pr_id)['pullRequest']
        title = pr_details['title']
        status = pr_details['pullRequestStatus']
        # 提取审批人列表
        approvers = []
        for rule in pr_details.get('approvalRules', []):
            rule_content = eval(rule['approvalRuleContent'])
            approvers.extend(rule_content.get('approvers', []))
        writer.writerow({
            'PR ID': pr_id,
            '标题': title,
            '状态': status,
            '审批人': ', '.join(approvers)
        })

运行前需配置好AWS凭证(比如通过aws configure),并安装依赖包:pip install boto3

方法三:利用AWS Lambda自动化生成报告

如果需要定期生成报告,可以创建Lambda函数,复用上述Python逻辑,添加CloudWatch Events定时触发规则,将生成的报告上传到S3存储桶,或通过邮件推送,实现自动化的报告生成流程。


内容的提问来源于stack exchange,提问作者Toshi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 21:45:50