Para usar um modelo do AWS CloudFormation para filtrar eventos de webhook, use a propriedade FilterGroups
do projeto do AWS CodeBuild. Para obter mais informações sobre os eventos de webhook do GitLab, consulte Eventos de webhook do GitLab.
A seguinte parte formatada em YAML de um modelo do AWS CloudFormation cria dois grupos de filtros. Juntos, eles acionarão uma compilação quando um ou ambos forem avaliados como verdadeiro:
-
O primeiro grupo de filtros especifica que as solicitações pull sejam criadas ou atualizadas nas ramificações com nomes de referência do Git que correspondem à expressão regular
^refs/heads/main$
por um usuário do GitLab que não tem o ID de conta12345
. -
O segundo grupo de filtros especifica solicitações push que são criadas em ramificações com nomes de referência do Git que correspondam à expressão regular
^refs/heads/.*
. -
O terceiro grupo de filtros especifica uma solicitação push com uma mensagem de confirmação head correspondente à expressão regular
\[CodeBuild\]
. -
O quarto grupo de filtros especifica uma solicitação de trabalho do fluxo de trabalho do GitHub Actions com um nome de fluxo de trabalho correspondente à expressão regular
\[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\]