Skip to content

feat(repo): add workflow to track beginning-contributor PRs needing maintainer action #38196

Description

@pahud

Problem

There are currently 100 open PRs from beginning contributors that need maintainer attention. Many have been waiting weeks with no feedback. The oldest has been pending 53 days since its last commit.

There's no single dashboard or alert for maintainers to track this backlog.

Proposal

Add a scheduled GitHub Actions workflow (daily) that collects PRs from beginning contributors into two priority categories and posts them to a tracking issue:

1. CI Pending Approval

  • approve-test-pipeline is in action_required / waiting state
  • CI has not run at all — maintainer hasn't clicked "Approve"
  • Blocked on: maintainer
  • Action: approve the workflow run

2. CI Pending Build Result

  • CI was approved and triggered, but build result has not been reported back
  • Pipeline may be stuck, queued, or infra issue preventing completion
  • Blocked on: CI infrastructure / maintainer to investigate
  • Action: check pipeline status, retrigger if stuck

Why these two?

Both categories represent PRs where the contributor has done their part (code written, tests added, commit pushed) but is blocked waiting for the CI system to give them feedback. The contributor cannot proceed without a build result — whether pass or fail.

Expected Tracking Issue Format

The workflow updates a tracking issue daily:


📊 Beginning Contributor CI Report (2026-06-24)

🔒 Pending Approval: 42 PRs (oldest: 53 days)
⏳ Pending Build Result: 18 PRs (oldest: 30 days)

🔒 Pending Approval (42)

PR Title Author Last Commit Pending
#37738 fix(stepfunctions-tasks): CallApiGatewayRestApiEndpoint does not support JsonATA @NaveenKumar-Marupalli 2026-05-02 53d
#37763 docs(lambda-nodejs): document disabling bundling in tests @paulkagiri 2026-05-05 50d
#37759 fix(core): preserve unresolved Tags property tokens @tejakusireddy 2026-05-05 50d
#37787 fix(backup): use Conditions instead of ListOfTags in BackupSelection @emfrab 2026-05-07 48d
#37817 feat(rds): add IAM master user authentication support to DatabaseCluster @abhishektang 2026-05-10 45d
#37872 fix(cloudfront-origins): validate httpPort/httpsPort range in HttpOrigin @kawaaaas 2026-05-14 41d
#37890 feat(sns-subscriptions): support cross-region delivery from opt-in regions @DavidA94 2026-05-15 40d
... (remaining PRs)

⏳ Pending Build Result (18)

PR Title Author Last Commit Pending
#37885 docs(ec2): clarify default network ACL rule 100 @MukundaKatta 2026-05-15 40d
#37884 fix(events): serialize EventBusPolicy statements @MukundaKatta 2026-05-15 40d
#37881 fix(eks-v2): expose access entry groups and username @MukundaKatta 2026-05-15 40d
... (remaining PRs)

Motivation

  • Contributor experience: first-time contributors shouldn't wait weeks with zero CI feedback
  • Visibility: the backlog grows silently without active monitoring
  • Retention: contributors who wait too long rarely come back
  • Quick wins: approving CI takes seconds, but the impact on contributor trust is huge

Current Backlog (as of 2026-06-24)

100 PRs from beginning contributors — sorted by days since last commit
PR Title Author Last Commit Pending
#37738 fix(stepfunctions-tasks): call-rest-api CallApiGatewayRestApiEndpoint does not @NaveenKumar-Marupalli 2026-05-02 53d
#37763 docs(lambda-nodejs): document disabling bundling in tests @paulkagiri 2026-05-05 50d
#37759 fix(core): preserve unresolved Tags property tokens @tejakusireddy 2026-05-05 50d
#37787 fix(backup): use Conditions instead of ListOfTags in BackupSelection @emfrab 2026-05-07 48d
#37817 feat(rds): add IAM master user authentication support to DatabaseCluster @abhishektang 2026-05-10 45d
#37872 fix(cloudfront-origins): validate httpPort and httpsPort range in HttpOrigin @kawaaaas 2026-05-14 41d
#37890 feat(sns-subscriptions): support cross-region delivery from opt-in regions @DavidA94 2026-05-15 40d
#37885 docs(ec2): clarify default network ACL rule 100 @MukundaKatta 2026-05-15 40d
#37884 fix(events): serialize EventBusPolicy statements @MukundaKatta 2026-05-15 40d
#37881 fix(eks-v2): expose access entry groups and username @MukundaKatta 2026-05-15 40d
#37879 fix(logs): use account root ARN principals @MukundaKatta 2026-05-15 40d
#37918 feat(opensearchservice): inline access policies via feature flag @AndreKurait 2026-05-19 36d
#37965 fix(stepfunctions-tasks): mapFromJsonPath produces invalid M.$.$ key for tokeniz @Khangdang1690 2026-05-21 34d
#37963 fix(custom-resource-handler): remove hardcoded partition in s3 auto-delete-objec @Khangdang1690 2026-05-21 34d
#37954 fix(logs): emit root ARN in resource policy to prevent CloudFormation drift @nithinnnv 2026-05-21 34d
#37792 feat(lambda-nodejs): add rolldown bundler support for NodejsFunction @zbrydon 2026-05-21 34d
#37968 fix(bedrockagentcore): fromAsset, fromS3, fromEcrRepository, fromCodeAsset - Age @NaveenKumar-Marupalli 2026-05-22 33d
#37991 docs(sns): expand grant* JSDoc with granted actions @MukundaKatta 2026-05-24 31d
#37990 fix(rds): propagate RemovalPolicy.RETAIN_ON_UPDATE_OR_DELETE to helper resources @suhas38222 2026-05-24 31d
#37988 feat(glue-alpha): support Apache Iceberg tables @ksco92 2026-05-24 31d
#37985 feat(pipelines): support removalPolicy and autoDeleteObjects for artifact bucket @masamaru0513 2026-05-24 31d
#37994 fix(events): cannot specify a custom id on rule targets @tskawada 2026-05-25 30d
#38008 fix(glue-alpha): omit comments from struct type strings @sjh9714 2026-05-26 29d
#38001 fix(opensearchservice): allow gp3 ebs throughput up to 2000 MiB/s @adisembiringle 2026-05-26 29d
#37858 feat(lambda-python-alpha): opt-in local (docker-less) bundling for PythonFunctio @CoreOxide 2026-05-27 28d
#38032 fix(batch): use uppercase MANAGED/UNMANAGED for ComputeEnvironment type to avoid @1mwataru 2026-05-28 27d
#38040 fix(glue-alpha): strip COMMENT from nested struct inputString @AnnasMazhar 2026-05-29 26d
#38024 docs(stepfunctions-tasks): fix duplicated "to" in EMR task descriptions @dcsid 2026-05-29 26d
#37958 feat(synthetics): added additional synthetics python selenium runtimes @acehlis 2026-05-29 26d
#38023 feat(servicecatalogappregistry-alpha): retrieve attributes from an attribute gro @dcsid 2026-05-30 25d
#38018 feat(ssm): support region option for valueFromLookup @dcsid 2026-05-30 25d
#37998 fix(stepfunctions): grant KMS permissions for distributed map S3 IO @dcsid 2026-05-30 25d
#37941 fix(lambda-nodejs): add support for propagating devEngines field @zbrydon 2026-05-30 25d
#38028 fix(iam): grantAssumeRole/grantPassRole param name mismatch breaks Python type c @dcsid 2026-05-30 24d
#38012 fix(lambda): exclude unattached stack layers from function version hash @arieleli01212 2026-05-31 24d
#37742 feat(aws-cdk-lib): add s3FilesVolumeConfiguration to Volume @kench 2026-06-01 23d
#37864 fix(lambda-python-alpha): python function build args not being respected @Don-Burns 2026-06-03 21d
#38085 fix(eks-v2): emit empty PublicAccessCidrs when endpoint access is PRIVATE @sam-intigriti 2026-06-04 20d
#38083 fix(bedrockagentcore): make GatewayTarget assignable to IMcpGatewayTarget under @laazyj 2026-06-04 20d
#38078 fix(bedrock-alpha): grant foundation-model permissions in destination regions fo @chaodu-agent 2026-06-04 20d
#38046 fix(lambda-nodejs): bundling fails in pnpm workspaces using catalogs @ymulenll 2026-06-04 20d
#38098 docs(s3): enableEventBridgeNotification() emits object created S3 events @2dukes 2026-06-05 19d
#38096 feat(acm): add DnsValidatedCertificateV2 @garysassano 2026-06-05 19d
#38106 fix(apigatewayv2): make HttpApi assignable to IHttpApi under exactOptionalProper @laazyj 2026-06-06 18d
#38105 fix(dynamodb): make Table and TableV2 assignable to their interfaces under exact @laazyj 2026-06-06 18d
#38104 fix(s3): make Bucket assignable to IBucket under exactOptionalPropertyTypes @laazyj 2026-06-06 18d
#38097 fix(ecs): make Cluster and task definitions assignable to their interfaces under @laazyj 2026-06-06 18d
#38093 fix(apigateway): make RestApiBase assignable to IRestApi under exactOptionalProp @laazyj 2026-06-06 18d
#38091 fix(codedeploy): make ServerDeploymentGroup assignable to IServerDeploymentGroup @laazyj 2026-06-06 18d
#38084 fix(secretsmanager): make SecretBase and SecretTargetAttachment assignable to th @laazyj 2026-06-06 18d
#38082 fix(lambda): make Alias and Version assignable to IAlias/IVersion under exactOpt @laazyj 2026-06-06 18d
#38081 fix(appconfig): make ConfigurationBase assignable to IConfiguration under exactO @laazyj 2026-06-06 18d
#38066 fix(events): make EventBus and ApiDestination assignable to their interfaces und @laazyj 2026-06-06 18d
#38051 fix(iam): make InstanceProfile assignable to IInstanceProfile under exactOptiona @laazyj 2026-06-06 18d
#38036 fix(ec2): make VpcBase assignable to IVpc under exactOptionalPropertyTypes @laazyj 2026-06-06 18d
#37880 fix(codepipeline): clean up cross-region replication buckets @nanookclaw 2026-06-06 18d
#38108 fix(pipelines): make Step subclasses assignable to IFileSetProducer under exactO @laazyj 2026-06-07 17d
#38107 fix(batch): make ComputeEnvironments and JobQueue assignable to their interfaces @laazyj 2026-06-07 17d
#38123 docs(dynamodb): fix typo in TableV2MultiAccountReplica docs @engjonah 2026-06-10 14d
#37900 feat(ec2): add ipAddressType and dnsRecordIpType to GatewayVpcEndpoint @Zelys-DFKH 2026-06-10 14d
#37896 fix(ec2): wrap L1 CfnSubnet in selectSubnetObjects so SubnetIds resolve in templ @Zelys-DFKH 2026-06-10 14d
#37893 fix(ec2): add DependsOn VPCGatewayAttachment to IPv6 default route @Zelys-DFKH 2026-06-10 14d
#37874 fix(stepfunctions): Choice.afterwards() excludes the otherwise branch from end @Zelys-DFKH 2026-06-10 14d
#37868 fix(ecs): support digest references in TagParameterContainerImage via imageDiges @Zelys-DFKH 2026-06-10 14d
#37865 fix(events): omit KmsKeyIdentifier from Archive when no KMS key is configured @Zelys-DFKH 2026-06-10 14d
#37838 fix(dynamodb): TableV2MultiAccountReplica omits top-level SSESpecification for @Zelys-DFKH 2026-06-10 14d
#37837 fix(logs): emit account root ARN in resource policy to prevent CloudFormation dr @Zelys-DFKH 2026-06-10 14d
#38054 fix(s3): enabling EventBridge on many buckets exceeds IAM policy size limit @vishwakt 2026-06-11 13d
#38045 fix(bedrockagentcore): Memory no longer creates an unused execution role @vishwakt 2026-06-11 13d
#37892 fix(dynamodb): TableV2.grants.*Data does not include index resources @vishwakt 2026-06-11 13d
#37891 feat(core): add sshForwarding option to DockerRunOptions @vishwakt 2026-06-11 13d
#38110 fix(awslint): use a default import for chalk @laazyj 2026-06-12 12d
#38061 feat(fsx): l2 construct for NetApp ONTAP file system, storage virtual machine, a @ahadjiat 2026-06-14 10d
#38141 feat(fsx): add L2 construct for DataRepositoryAssociation @gingeekrishna 2026-06-16 8d
#38140 fix(ecs): suppress shouldUseCircuitBreaker warning for DAEMON scheduling strateg @gingeekrishna 2026-06-16 8d
#38079 fix(cloudwatch): composite alarm uses a stack-static name that collides on repea @vishwakt 2026-06-16 8d
#37912 feat(ec2): add g7e and p6-b200 instance types @kevntao 2026-06-16 8d
#38143 fix(s3): cannot create ACCOUNT_REGIONAL bucket with specified bucketName in L @NaveenKumar-Marupalli 2026-06-17 7d
#37971 chore(ec2): add g7e instance class (NVIDIA Blackwell B200) @camiloaz 2026-06-17 7d
#37836 fix(autoscaling): StepScalingPolicy emits spurious cooldown deprecation warnin @Zelys-DFKH 2026-06-17 7d
#38173 feat(codebuild): add Node.js 24 Lambda build images @andredcoliveira 2026-06-18 6d
#38170 fix(logs): emit canonical root ARN in resource policy to prevent drif… @Ris345 2026-06-18 6d
#38160 chore(rds): add postgres engine 18.3 @merlinorg 2026-06-18 6d
#37899 fix(lambda-nodejs): run beforeInstall hook after workspace files are written @Zelys-DFKH 2026-06-18 6d
#37878 fix(custom-resource-handlers): retry on AccessDeniedException to handle IAM prop @Zelys-DFKH 2026-06-18 6d
#37877 fix(cognito): skip domainPrefix validation when value contains embedded token ma @Zelys-DFKH 2026-06-18 6d
#38176 fix(bedrock-agentcore-alpha): lambda gateway targets accept unsupported credenti @vishwakt 2026-06-19 5d
#38162 docs(events): clarify that RuleTargetInput.fromText JSON-encodes its input @vishwakt 2026-06-19 5d
#38154 fix(apigatewayv2): missing WebSocket Lambda permissions for routes sharing one i @vishwakt 2026-06-19 5d
#37997 feat(bedrock-agentcore-alpha): allow tagging service-created runtime application @gingeekrishna 2026-06-19 5d
#37984 fix(bedrock-agentcore-alpha): add tracing resource policy opt-out @gingeekrishna 2026-06-19 5d
#37982 fix(cdk): resolve #37783 by fixing missing top-level sseSpecification… @gingeekrishna 2026-06-19 5d
#38184 fix(dynamodb): remove deprecated tablegrants props from tablev2 @josemfche 2026-06-20 4d
#38185 feat(neptune-alpha): add engine version v1.5.0.0 @vaibhavm99 2026-06-21 3d
#38183 feat(lambda): add logGroup and systemLogLevel to CapacityProvider @vicheey 2026-06-22 2d
#38180 feat(lambda): add PropagateTags to CapacityProvider for tag propagation @vicheey 2026-06-22 2d
#38193 feat(ec2): support CpuOptions on LaunchTemplate @emi111y 2026-06-23 1d
#38122 fix(iam): ensure attachToRole honors role mutability @joerino96 2026-06-23 1d
#38035 feat(stepfunctions-tasks): add configurable timeout @lvthillo 2026-06-23 1d
#38195 fix(logs): emit account root ARN in resource policies to avoid drift false posit @UTKARSH698 2026-06-24 0d

Metadata

Metadata

Assignees

No one assigned

    Labels

    @aws-cdk/aws-iamRelated to AWS Identity and Access Managementops-excellenceOperational Excellencep1

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions