From 37d6f769fb7c796691fccff56f0492e9ae68dc99 Mon Sep 17 00:00:00 2001 From: Michael Sambol Date: Sun, 5 May 2024 15:58:03 -0600 Subject: [PATCH 1/3] feat(codebuild): add missing types for webhook filters --- packages/aws-cdk-lib/aws-codebuild/README.md | 5 ++++ .../aws-cdk-lib/aws-codebuild/lib/source.ts | 23 +++++++++++++++++++ .../aws-codebuild/test/codebuild.test.ts | 18 ++++++++++++++- 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/packages/aws-cdk-lib/aws-codebuild/README.md b/packages/aws-cdk-lib/aws-codebuild/README.md index 9f96d90097cd0..a659f670620cd 100644 --- a/packages/aws-cdk-lib/aws-codebuild/README.md +++ b/packages/aws-cdk-lib/aws-codebuild/README.md @@ -70,6 +70,11 @@ const gitHubSource = codebuild.Source.gitHub({ .andBranchIs('main') .andCommitMessageIs('the commit message'), ], // optional, by default all pushes and Pull Requests will trigger a build + [ + codebuild.FilterGroup + .inEventOf(codebuild.EventAction.RELEASED) + .andBranchIs('main') + ], }); ``` diff --git a/packages/aws-cdk-lib/aws-codebuild/lib/source.ts b/packages/aws-cdk-lib/aws-codebuild/lib/source.ts index 42a231bdacd06..5e2250fdafe3e 100644 --- a/packages/aws-cdk-lib/aws-codebuild/lib/source.ts +++ b/packages/aws-cdk-lib/aws-codebuild/lib/source.ts @@ -178,6 +178,11 @@ export enum EventAction { */ PULL_REQUEST_UPDATED = 'PULL_REQUEST_UPDATED', + /** + * Closing a Pull Request. + */ + PULL_REQUEST_CLOSED = 'PULL_REQUEST_CLOSED', + /** * Merging a Pull Request. */ @@ -188,6 +193,24 @@ export enum EventAction { * Note that this event is only supported for GitHub and GitHubEnterprise sources. */ PULL_REQUEST_REOPENED = 'PULL_REQUEST_REOPENED', + + /** + * A release is created in the repository. + * Works with GitHub only. + */ + RELEASED = 'RELEASED', + + /** + * A prerelease is created in the repository. + * Works with GitHub only. + */ + PRERELEASED = 'PRERELEASED', + + /** + * A workflow job is queued in the repository. + * Works with GitHub only. + */ + WORKFLOW_JOB_QUEUED = 'WORKFLOW_JOB_QUEUED', } enum WebhookFilterTypes { diff --git a/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts b/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts index b9d2c4cb8de7c..e632bd6ba1f60 100644 --- a/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts +++ b/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts @@ -567,6 +567,9 @@ describe('default properties', () => { webhookFilters: [ codebuild.FilterGroup.inEventOf(codebuild.EventAction.PUSH).andTagIsNot('stable'), codebuild.FilterGroup.inEventOf(codebuild.EventAction.PULL_REQUEST_REOPENED).andBaseBranchIs('main'), + codebuild.FilterGroup.inEventOf(codebuild.EventAction.RELEASED).andBaseBranchIs('main'), + codebuild.FilterGroup.inEventOf(codebuild.EventAction.PRERELEASED).andBaseBranchIs('main'), + codebuild.FilterGroup.inEventOf(codebuild.EventAction.WORKFLOW_JOB_QUEUED).andBaseBranchIs('main'), ], }), }); @@ -595,6 +598,18 @@ describe('default properties', () => { { Type: 'EVENT', Pattern: 'PULL_REQUEST_REOPENED' }, { Type: 'BASE_REF', Pattern: 'refs/heads/main' }, ], + [ + { Type: 'EVENT', Pattern: 'RELEASED' }, + { Type: 'BASE_REF', Pattern: 'refs/heads/main' }, + ], + [ + { Type: 'EVENT', Pattern: 'PRERELEASED' }, + { Type: 'BASE_REF', Pattern: 'refs/heads/main' }, + ], + [ + { Type: 'EVENT', Pattern: 'WORKFLOW_JOB_QUEUED' }, + { Type: 'BASE_REF', Pattern: 'refs/heads/main' }, + ], ], }, }); @@ -664,6 +679,7 @@ describe('default properties', () => { codebuild.EventAction.PULL_REQUEST_CREATED, codebuild.EventAction.PULL_REQUEST_UPDATED, codebuild.EventAction.PULL_REQUEST_MERGED, + codebuild.EventAction.PULL_REQUEST_CLOSED, ).andTagIs('v.*'), // duplicate event actions are fine codebuild.FilterGroup.inEventOf(codebuild.EventAction.PUSH, codebuild.EventAction.PUSH).andActorAccountIsNot('aws-cdk-dev'), @@ -685,7 +701,7 @@ describe('default properties', () => { Webhook: true, FilterGroups: [ [ - { Type: 'EVENT', Pattern: 'PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED' }, + { Type: 'EVENT', Pattern: 'PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED' }, { Type: 'HEAD_REF', Pattern: 'refs/tags/v.*' }, ], [ From f805ef8cca86f63d0ff3b964079c4b339ae7563f Mon Sep 17 00:00:00 2001 From: Michael Sambol Date: Sun, 5 May 2024 16:44:45 -0600 Subject: [PATCH 2/3] Fix readme --- packages/aws-cdk-lib/aws-codebuild/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/aws-cdk-lib/aws-codebuild/README.md b/packages/aws-cdk-lib/aws-codebuild/README.md index a659f670620cd..81dd0e161c18e 100644 --- a/packages/aws-cdk-lib/aws-codebuild/README.md +++ b/packages/aws-cdk-lib/aws-codebuild/README.md @@ -69,12 +69,10 @@ const gitHubSource = codebuild.Source.gitHub({ .inEventOf(codebuild.EventAction.PUSH) .andBranchIs('main') .andCommitMessageIs('the commit message'), - ], // optional, by default all pushes and Pull Requests will trigger a build - [ codebuild.FilterGroup .inEventOf(codebuild.EventAction.RELEASED) .andBranchIs('main') - ], + ], // optional, by default all pushes and Pull Requests will trigger a build }); ``` From 21da62ffe7b64e6522bd236102b3a69a5dcdda86 Mon Sep 17 00:00:00 2001 From: Michael Sambol Date: Mon, 20 May 2024 14:08:57 -0600 Subject: [PATCH 3/3] Add PULL_REQUEST_CLOSED to unit test --- packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts b/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts index e632bd6ba1f60..3eb3ac3fe6894 100644 --- a/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts +++ b/packages/aws-cdk-lib/aws-codebuild/test/codebuild.test.ts @@ -570,6 +570,7 @@ describe('default properties', () => { codebuild.FilterGroup.inEventOf(codebuild.EventAction.RELEASED).andBaseBranchIs('main'), codebuild.FilterGroup.inEventOf(codebuild.EventAction.PRERELEASED).andBaseBranchIs('main'), codebuild.FilterGroup.inEventOf(codebuild.EventAction.WORKFLOW_JOB_QUEUED).andBaseBranchIs('main'), + codebuild.FilterGroup.inEventOf(codebuild.EventAction.PULL_REQUEST_CLOSED).andBaseBranchIs('main'), ], }), }); @@ -610,6 +611,10 @@ describe('default properties', () => { { Type: 'EVENT', Pattern: 'WORKFLOW_JOB_QUEUED' }, { Type: 'BASE_REF', Pattern: 'refs/heads/main' }, ], + [ + { Type: 'EVENT', Pattern: 'PULL_REQUEST_CLOSED' }, + { Type: 'BASE_REF', Pattern: 'refs/heads/main' }, + ], ], }, });