GitHub eventos de webhook - AWS CodeBuild

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.

GitHub eventos de webhook

Puedes usar grupos de filtros de webhook para especificar qué eventos de GitHub 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 GitHub ello, puedes elegir uno o más de los siguientes eventos:PUSH,PULL_REQUEST_CREATED,PULL_REQUEST_UPDATED,PULL_REQUEST_REOPENED,PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED RELEASEDPRERELEASED, y. WORKFLOW_JOB_QUEUED El tipo de evento de webhook está en el encabezado X-GitHub-Event de la carga de webhook. En el encabezado X-GitHub-Event, es posible que vea pull_request o push. Para un evento de solicitud de extracción, el tipo está en el campo action de la carga del evento de webhook. En la siguiente tabla se muestra cómo los valores del encabezado X-GitHub-Event y los valores del campo action de la carga de solicitud de extracción de webhook se asignan a los tipos de eventos disponibles.

Valor del encabezado X-GitHub-Event Valor action de la carga del evento de webhook Tipo de evento
pull_request opened PULL_REQUEST_CREATED
pull_request reopened PULL_REQUEST_REOPENED
pull_request synchronize PULL_REQUEST_UPDATED
pull_request closed y el campo merged es true PULL_REQUEST_MERGED
pull_request closed y el campo merged es false PULL_REQUEST_CLOSED
push n/a PUSH
release publicado RELEASED
release preeditado PRERELEASED
workflow_job queued WORKFLOW_JOB_QUEUED
nota

El tipo de PULL_REQUEST_REOPENED evento solo se puede usar con GitHub GitHub Enterprise Server. El tipo de WORKFLOW_JOB_QUEUED evento RELEASEDPRERELEASED, y GitHub solo se puede utilizar con. Para obtener más información sobre WORKFLOW_JOB_QUEUED, consulte Tutorial: Configurar un ejecutor de acciones CodeBuild autohospedado GitHub .

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 un identificador de cuenta de GitHub Enterprise Server GitHub o Enterprise Server coincide con el patrón de expresiones regulares. Este valor se encuentra en la propiedad id del objeto sender en la carga 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 o refs/tags/tag-name). Para un evento, el nombre de referencia se encuentra en la propiedad ref de la carga de webhook. Para los eventos de solicitud de extracción, el nombre de la ramificación se encuentra en la propiedad ref del objeto head de la carga de 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 (por ejemplo, refs/heads/branch-name). Un filtro BASE_REF solo se puede utilizar con eventos de solicitud de extracción. El nombre de la ramificación se encuentra en la propiedad ref del objeto base de la carga de webhook.

FILE_PATH

Un evento de webhook desencadena una compilación cuando la ruta de un archivo modificado coincide con el patrón de la expresión regular. Se puede usar un FILE_PATH filtro con los eventos de solicitudes de GitHub inserción y extracción y con los eventos de inserción de GitHub Enterprise Server. No se puede usar con los eventos de solicitudes de extracción de GitHub Enterprise Server.

COMMIT_MESSAGE

Un webhook desencadena una compilación cuando el mensaje de confirmación del encabezado coincide con la expresión regular. Se puede usar un COMMIT_MESSAGE filtro con los eventos de solicitudes de GitHub inserción y extracción y con los eventos de inserción de GitHub Enterprise Server. No se puede usar con los eventos de solicitudes de extracción de GitHub Enterprise Server.

TAG_NAME

Un webhook activa una compilación cuando el nombre de la etiqueta de la publicación coincide con el patrón de expresiones regulares. Se puede usar un TAG_NAME filtro con los eventos de GitHub solicitud publicados y prepublicados.

RELEASE_NAME

Un webhook activa una compilación cuando el nombre de la versión coincide con el patrón de expresiones regulares. Se puede usar un RELEASE_NAME filtro con los eventos de GitHub solicitud publicados y prepublicados.

WORKFLOW_NAME

Un webhook activa una compilación cuando el nombre del flujo de trabajo coincide con el patrón de expresión regular. Se puede usar un WORKFLOW_NAME filtro con los eventos de solicitud de trabajos en cola del flujo de trabajo de GitHub Actions.

nota

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

Filtra los eventos de GitHub webhook (consola)

En Eventos de webhook de origen principal, seleccione lo siguiente. Esta sección solo está disponible si seleccionas Repositorio en mi GitHub cuenta como repositorio de origen.

  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).

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

  3. 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.

  4. 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.

  5. Seleccione Añadir grupo de filtros para añadir otro grupo de filtros.

Para obtener más información, consulta Creación de un proyecto de compilación (consola) y WebhookFilteren la referencia de la AWS CodeBuild API.

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

Si utilizamos un ejemplo con dos grupos de filtros de webhooks, la compilación se desencadenará 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, actualizan o vuelven a abrirse 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$.

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

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.*.

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

En este ejemplo, un grupo de filtros webhook activa una compilación solo cuando un usuario específico GitHub o de GitHub Enterprise Server con un identificador de cuenta que coincide con la expresión actor-account-id normal realiza un cambio.

nota

Para obtener información sobre cómo encontrar el ID de su GitHub cuenta, consulte https://api.github.com/users/ user-name, donde user-name es su GitHub nombre de usuario.

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\].

En este ejemplo, un grupo de filtros de webhook activa únicamente una compilación para eventos de trabajo del flujo de trabajo de GitHub Actions.

nota

CodeBuild solo procesará los trabajos del flujo de trabajo de GitHub Actions si un webhook tiene grupos de filtros que contengan el filtro de eventos WORKFLOW_JOB_QUEUED.

En este ejemplo, un grupo de filtros de webhooks activa la creación de un nombre de flujo de trabajo que coincide con la expresión regular. CI-CodeBuild

Filtra los eventos de GitHub webhook (SDK)

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 WebhookFilterla referencia de la CodeBuild API.

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_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED" } ] ]

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, actualizan o vuelven a abrirse 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, PULL_REQUEST_REOPENED" }, { "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. Por ejemplo, en este caso, 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_REOPENED, PULL_REQUEST_MERGED, PULL_REQUEST_CLOSED" }, { "type": "HEAD_REF", "pattern": "^refs/tags/.*", "excludeMatchedPattern": true } ] ]

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/.+" } ] ]

Puedes crear un filtro que active una compilación solo cuando un usuario específico GitHub o de GitHub Enterprise Server con un ID de cuenta realice un cambioactor-account-id.

nota

Para obtener información sobre cómo encontrar el ID de su GitHub cuenta, consulte https://api.github.com/users/ user-name, donde user-name es su nombre de GitHub usuario.

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

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\]" } ] ]

Para crear un filtro de webhook que active únicamente trabajos de flujo de trabajo de creación para GitHub Actions, inserta lo siguiente en la sintaxis de la solicitud:

"filterGroups": [ [ { "type": "EVENT", "pattern": "WORKFLOW_JOB_QUEUED" } ] ]

Filtra los eventos de GitHub webhook ()AWS CloudFormation

Para usar una AWS CloudFormation plantilla para filtrar los eventos de webhook, usa la propiedad del AWS CodeBuild FilterGroups proyecto. 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 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 GitHub usuario que no tiene un ID de cuenta12345.

  • El segundo grupo de filtros especifica las solicitudes de inserción que se crean en archivos cuyos nombres coinciden con la expresión regular READ_ME en las ramificaciones que tienen un nombre de referencia de Git que coincide 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: GITHUB 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: FILE_PATH Pattern: READ_ME ExcludeMatchedPattern: true - - Type: EVENT Pattern: PUSH - Type: COMMIT_MESSAGE Pattern: \[CodeBuild\] - Type: FILE_PATH Pattern: ^src/.+|^test/.+ - - Type: EVENT Pattern: WORKFLOW_JOB_QUEUED - Type: WORKFLOW_NAME Pattern: \[CI-CodeBuild\]