Si desea usar una plantilla de AWS CloudFormation para filtrar eventos de webhooks, utilice la propiedad FilterGroups
del proyecto de AWS CodeBuild. Para obtener más información sobre los eventos de webhook de GitLab, consulte Eventos de webhook de GitLab.
El siguiente fragmento con formato YAML de una plantilla AWS CloudFormation crea dos grupos de filtros. Juntos, desencadenan una compilación cuando uno de los grupos o los dos se evalúan como true:
-
El primer grupo de filtros especifica las solicitudes de extracción creadas o actualizadas en ramificaciones con nombres de referencia de Git que coinciden con la expresión regular
^refs/heads/main$
por un usuario de GitLab que no tiene el ID de cuenta12345
. -
El segundo grupo de filtros especifica solicitudes de inserción que se crean en ramificaciones con nombres de referencia de Git que coinciden con la expresión regular
^refs/heads/.*
. -
El tercer grupo de filtros especifica una solicitud de inserción con un mensaje de confirmación del encabezado que coincida con la expresión regular
\[CodeBuild\]
. -
El cuarto grupo de filtros especifica una solicitud de trabajo de flujo de trabajo de GitHub Actions con un nombre de flujo de trabajo que coincide con la expresión 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\]