Filter GitLab webhook events (AWS CloudFormation) (original) (raw)
To use an AWS CloudFormation template to filter webhook events, use the AWS CodeBuild project'sFilterGroups
property. For more information about GitLab webhook events, see GitLab webhook events.
The following YAML-formatted portion of an AWS CloudFormation template creates two filter groups. Together, they trigger a build when one or both evaluate to true:
- The first filter group specifies pull requests are created or updated on branches with Git reference names that match the regular expression
^refs/heads/main$
by a GitLab user who does not have account ID12345
. - The second filter group specifies push requests are created on branches with Git reference names that match the regular expression
^refs/heads/.*
. - The third filter group specifies a push request with a head commit message matching the regular expression
\[CodeBuild\]
. - The fourth filter group specifies a GitHub Actions workflow job request with a workflow name matching the regular expression
\[CI-CodeBuild\]
.
CodeBuildProject:
Type: AWS::CodeBuild::Project
Properties:
Name: MyProject
ServiceRole: service-role
Artifacts:
Type: NO_ARTIFACTS
Environment:
Type: LINUX_CONTAINER
ComputeType: BUILD_GENERAL1_SMALL
Image: aws/codebuild/standard:5.0
Source:
Type: GITLAB
Location: source-location
Triggers:
Webhook: true
FilterGroups:
- - Type: EVENT
Pattern: PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED
- Type: BASE_REF
Pattern: ^refs/heads/main$
ExcludeMatchedPattern: false
- Type: ACTOR_ACCOUNT_ID
Pattern: 12345
ExcludeMatchedPattern: true
- - Type: EVENT
Pattern: PUSH
- Type: HEAD_REF
Pattern: ^refs/heads/.*
- - Type: EVENT
Pattern: PUSH
- Type: COMMIT_MESSAGE
Pattern: \[CodeBuild\]
- - Type: EVENT
Pattern: WORKFLOW_JOB_QUEUED
- Type: WORKFLOW_NAME
Pattern: \[CI-CodeBuild\]
Filter GitLab webhook events (SDK)
Buildkite manual webhooks
Did this page help you? - Yes
Thanks for letting us know we're doing a good job!
If you've got a moment, please tell us what we did right so we can do more of it.
Did this page help you? - No
Thanks for letting us know this page needs work. We're sorry we let you down.
If you've got a moment, please tell us how we can make the documentation better.