

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# GitLab eventos de webhook
<a name="gitlab-webhook"></a>

Puedes usar grupos de filtros de webhook para especificar qué eventos de GitLab webhook activan una compilación. Por ejemplo, es posible especificar que se desencadene una compilación solo con cambios en ramificaciones específicas. 

Puede crear uno o varios grupos de filtros de webhooks para especificar qué eventos de webhooks van a desencadenar una compilación. Se activa una compilación si algún grupo de filtros da true como resultado, lo que ocurre cuando todos los filtros del grupo dan este resultado. Cuando cree un grupo de filtros, deberá especificar: 

**Un evento**  
Para GitLab ello, puedes elegir uno o más de los siguientes eventos:`PUSH`,`PULL_REQUEST_CREATED`,`PULL_REQUEST_UPDATED`,`PULL_REQUEST_MERGED`, `PULL_REQUEST_REOPENED` `PULL_REQUEST_CLOSED``RELEASED`, y. `WORKFLOW_JOB_QUEUED`  
El tipo de evento de webhook está en su encabezado en el campo `X-GitLab-Event`. En la siguiente tabla se muestra cómo los valores del encabezado `X-GitLab-Event` se asignan a los tipos de eventos. En el evento de webhook `Merge Request Hook`, el valor `object_atttributes.action` de la carga útil contendrá información adicional sobre el tipo de solicitud de combinación.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/gitlab-webhook.html)
Para `PULL_REQUEST_MERGED`, si una solicitud de extracción se fusiona con la estrategia de compresión y la rama de solicitudes de extracción se cierra, la confirmación original de la solicitud de extracción deja de existir. En este caso, la variable de entorno `CODEBUILD_WEBHOOK_MERGE_COMMIT` contiene el identificador de la confirmación de fusión anulada.

**Uno o más filtros opcionales**  
Utilice una expresión regular para especificar los filtros. En el caso de los eventos que desencadenan una compilación, todos los filtros de un grupo asociados con ellos deben dar true como resultado.    
`ACTOR_ACCOUNT_ID` (`ACTOR_ID` en la consola)  
Un evento de webhook desencadena una compilación cuando el ID de una GitLab cuenta coincide con el patrón de expresión regular. Este valor se encuentra en la propiedad `account_id` del objeto `actor` de la carga del filtro de webhook.  
`HEAD_REF`  
Un evento de webhook desencadena una compilación cuando la referencia del encabezado coincide con el patrón de la expresión regular (por ejemplo, `refs/heads/branch-name` y `refs/tags/tag-name`). Un filtro `HEAD_REF` evalúa el nombre de referencia de Git de la ramificación o etiqueta. El nombre de la ramificación o la etiqueta se encuentra en el campo `name` del objeto `new` incluido en el objeto `push` de la carga del webhook. En el caso de los eventos de las solicitudes de extracción, el nombre de la ramificación se encuentra en el campo `name` del objeto `branch` incluido en el objeto `source` de la carga del webhook.  
`BASE_REF`  
Un evento de webhook desencadena una compilación cuando la referencia de base coincide con el patrón de la expresión regular. Un filtro `BASE_REF` solamente funciona con eventos de solicitudes de extracción (por ejemplo, `refs/heads/branch-name`). Un filtro `BASE_REF` evalúa el nombre de referencia de Git de la ramificación. El nombre de la ramificación se encuentra en el campo `name` del objeto `branch` incluido en el objeto `destination` de la carga del webhook.  
`FILE_PATH`  
Un webhook desencadena una compilación cuando la ruta de un archivo modificado coincide con el patrón de la expresión regular.  
`COMMIT_MESSAGE`  
Un webhook desencadena una compilación cuando el mensaje de confirmación del encabezado coincide con la expresión regular.  
`WORKFLOW_NAME`  
Un webhook desencadena una compilación cuando el nombre del flujo de trabajo coincide con el patrón de expresión regular.

**nota**  
Puedes encontrar la carga útil del webhook en la configuración del webhook de tu repositorio. GitLab 

**Topics**
+ [Filtra los eventos de GitLab webhook (consola)](gitlab-webhook-events-console.md)
+ [Filtra los eventos de GitLab webhook (SDK)](gitlab-webhook-events-sdk.md)
+ [Filtrar eventos de GitLab webhook ()CloudFormation](gitlab-webhook-events-cfn.md)

# Filtra los eventos de GitLab webhook (consola)
<a name="gitlab-webhook-events-console"></a>

Usa las siguientes instrucciones para filtrar los eventos Consola de administración de AWS de webhook. Para obtener más información sobre los eventos de GitLab webhook, consulte. [GitLab eventos de webhook](gitlab-webhook.md)

1.  Cuando cree el proyecto, seleccione **Rebuild every time a code change is pushed to this repository (Volver a compilar cada vez que se inserte un cambio de código en este repositorio)**. 

1.  En **Event type (Tipo de evento)**, seleccione uno o varios eventos. 

1.  Para filtrar en función de cuándo un evento va a desencadenar una compilación, en **Start a build under these conditions (Iniciar una compilación en estas condiciones)**, añada uno o varios filtros opcionales. 

1.  Para filtrar en función de cuándo no se va a desencadenar un evento, en **Don't start a build under these conditions (No iniciar una compilación en estas condiciones)**, añada uno o varios filtros opcionales. 

1.  Seleccione **Add filter group (Añadir grupo de filtros)** para añadir otro grupo de filtros. 

 Para obtener más información consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console) y [WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html) en la *Referencia de la API de AWS CodeBuild *. 

En este ejemplo, un grupo de filtros de webhooks desencadena una compilación únicamente con solicitudes de extracción:

![\[Un grupo de filtros de webhook que desencadena una compilación solo para las solicitudes de extracción.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/pull-request-webhook-filter-gitlab.png)


Si utilizamos un ejemplo con dos grupos de filtros, la compilación se desencadenaría cuando uno de los grupos o los dos se evalúen como true:
+ El primer grupo de filtros especifica las solicitudes de extracción que se crean o actualizan en ramificaciones con nombres de referencia de Git que coinciden con la expresión regular `^refs/heads/main$` y las referencias de encabezado que coinciden con `^refs/heads/branch1!`. 
+ El segundo grupo de filtros especifica solicitudes de inserción en ramificaciones con nombres de referencia de Git que coinciden con la expresión regular `^refs/heads/branch1$`. 

![\[Un ejemplo de dos grupos de filtros\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/pull-request-webhook-filter-head-base-regexes-gitlab.png)


En este ejemplo, un grupo de filtros de webhooks desencadena una compilación de todas las solicitudes excepto los eventos de etiquetas. 

![\[Un grupo de filtros de webhook que desencadena una compilación para todas las solicitudes excepto los eventos de etiquetas.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/pull-request-webhook-filter-exclude-gitlab.png)


En este ejemplo, un grupo de filtros de webhooks desencadena una compilación solo cuando se modifican los archivos cuyos nombres coinciden con la expresión regular `^buildspec.*`. 

![\[Un grupo de filtros de webhook que desencadena una compilación solo cuando se modifican archivos cuyos nombres coinciden con la expresión regular especificada.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-regex-gitlab.png)


En este ejemplo, un grupo de filtros de webhook activa una compilación solo cuando se cambian archivos en las carpetas `src` o `test`.

![\[Un grupo de filtros de webhook que desencadena una compilación solo cuando se cambian archivos en carpetas especificadas.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-combined-regex-gitlab.png)


En este ejemplo, un grupo de filtros de webhook activa una compilación solo cuando un GitLab usuario que no tiene un identificador de cuenta que coincida con la expresión normal realiza un cambio. `actor-account-id` 

**nota**  
 Para obtener información sobre cómo encontrar tu ID de GitLab cuenta https://api.github.com/users/*user-name*, consulta ¿Dónde *user-name* está tu nombre GitLab de usuario? 

![\[Un grupo de filtros de webhook que activa una compilación solo cuando un GitLab usuario que no tiene un ID de cuenta realiza un cambio.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/pull-request-webhook-filter-actor-gitlab.png)


En este ejemplo, un grupo de filtros de webhook desencadena una compilación para un evento de inserción cuando el mensaje de confirmación de la cabeza coincide con la expresión regular `\[CodeBuild\]`. 

![\[Un grupo de filtros de webhook que desencadena una compilación para un evento de inserción cuando el mensaje de confirmación del encabezado coincide con la expresión regular.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/pull-request-webhook-filter-commit-message-gitlab.png)


# Filtra los eventos de GitLab webhook (SDK)
<a name="gitlab-webhook-events-sdk"></a>

 Para usar el AWS CodeBuild SDK para filtrar los eventos de webhook, usa el `filterGroups` campo de la sintaxis de solicitud de los métodos `CreateWebhook` o de la `UpdateWebhook` API. Para obtener más información, consulta [WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html) en la *CodeBuild Referencia de la API de *. 

Para obtener más información sobre los eventos de GitLab webhook, consulte. [GitLab eventos de webhook](gitlab-webhook.md)

 Si desea crear un filtro de webhook que desencadene una compilación únicamente con las solicitudes de extracción, inserte lo siguiente en la sintaxis de la solicitud: 

```
"filterGroups": [
  [
    {
      "type": "EVENT",
      "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED"
    }
  ]
]
```

 Si desea crear un filtro de webhooks que desencadene una compilación únicamente con las ramificaciones especificadas, utilice el parámetro `pattern` para especificar una expresión regular que filtre los nombres de las ramificaciones. Si utilizamos un ejemplo con dos grupos de filtros, la compilación se desencadenaría cuando uno de los grupos o los dos se evalúen como true:
+ El primer grupo de filtros especifica las solicitudes de extracción que se crean o actualizan en ramificaciones con nombres de referencia de Git que coinciden con la expresión regular `^refs/heads/main$` y las referencias de encabezado que coinciden con `^refs/heads/myBranch$`. 
+ El segundo grupo de filtros especifica solicitudes de inserción en ramificaciones con nombres de referencia de Git que coinciden con la expresión regular `^refs/heads/myBranch$`. 

```
"filterGroups": [
  [
    {
      "type": "EVENT",
      "pattern": "PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED"
    },
    {
      "type": "HEAD_REF",
      "pattern": "^refs/heads/myBranch$"
    },
    {
      "type": "BASE_REF",
      "pattern": "^refs/heads/main$"
    }
  ],
  [
    {
      "type": "EVENT",
      "pattern": "PUSH"
    },
    {
      "type": "HEAD_REF",
      "pattern": "^refs/heads/myBranch$"
    }
  ]
]
```

 Puede utilizar el parámetro `excludeMatchedPattern` para especificar qué eventos no desencadenan una compilación. En este ejemplo, se desencadena una compilación con todas las solicitudes, excepto los eventos de etiquetas. 

```
"filterGroups": [
  [
    {
      "type": "EVENT",
      "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED"
    },
    {
      "type": "HEAD_REF",
      "pattern": "^refs/tags/.*",
      "excludeMatchedPattern": true
    }
  ]
]
```

Puedes crear un filtro que active una compilación solo cuando un GitLab usuario con un ID `actor-account-id` de cuenta realice un cambio. 

**nota**  
 Para obtener información sobre cómo encontrar tu ID de GitLab cuenta https://api.github.com/users/*user-name*, consulta ¿Dónde *user-name* está tu nombre GitLab de usuario? 

```
"filterGroups": [
  [
    {
      "type": "EVENT",
      "pattern": "PUSH, PULL_REQUEST_CREATED, PULL_REQUEST_UPDATED, PULL_REQUEST_MERGED"
    },
    {
      "type": "ACTOR_ACCOUNT_ID",
      "pattern": "actor-account-id"
    }
  ]
]
```

Puede crear un filtro que desencadene una compilación solo cuando se modifiquen los archivos cuyos nombres coincidan con la expresión regular del argumento `pattern`. En este ejemplo, el grupo de filtros especifica que la compilación solo debe desencadenarse cuando se modifiquen los archivos cuyos nombres coincidan con la expresión regular `^buildspec.*`. 

```
"filterGroups": [
  [
    {
      "type": "EVENT",
      "pattern": "PUSH"
    },
    {
      "type": "FILE_PATH",
      "pattern": "^buildspec.*"
    }
  ]
]
```

En este ejemplo, el grupo de filtros especifica que solo se activa una compilación cuando se cambian archivos en las carpetas `src` o `test`.

```
"filterGroups": [
    [
        {
            "type": "EVENT", 
            "pattern": "PUSH"
        },
        {
            "type": "FILE_PATH", 
            "pattern": "^src/.+|^test/.+"
        }
    ]
]
```

Puede crear un filtro que desencadene una compilación solo cuando el mensaje de confirmación del encabezado coincida con la expresión regular en el argumento pattern. En este ejemplo, el grupo de filtros especifica que una compilación se desencadena solo cuando el mensaje de confirmación del encabezado del evento de inserción coincide con la expresión regular `\[CodeBuild\]`. 

```
  "filterGroups": [
    [
      {
        "type": "EVENT",
        "pattern": "PUSH"
      },
      {
        "type": "COMMIT_MESSAGE",
        "pattern": "\[CodeBuild\]"
      }
    ]
  ]
```

# Filtrar eventos de GitLab webhook ()CloudFormation
<a name="gitlab-webhook-events-cfn"></a>

 Para usar una CloudFormation plantilla para filtrar los eventos de webhook, usa la propiedad del AWS CodeBuild `FilterGroups` proyecto. Para obtener más información sobre los eventos de GitLab webhook, consulte. [GitLab eventos de webhook](gitlab-webhook.md)

El siguiente fragmento con formato YAML de una plantilla 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 que las solicitudes de cambios se crean o actualizan en las sucursales con nombres de referencia de Git que coinciden con la expresión regular `^refs/heads/main$` por parte de un GitLab usuario que no tiene un ID de cuenta`12345`. 
+  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\]
```