

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 webhooks globales y organizativos
<a name="github-global-organization-webhook"></a>

Puedes usar webhooks CodeBuild GitHub globales u organizacionales para iniciar compilaciones a partir de eventos de webhook desde cualquier repositorio de una GitHub organización o empresa. Los webhooks globales y organizacionales funcionan con cualquiera de los tipos de eventos de GitHub webhook existentes y se pueden configurar añadiendo una configuración de alcance al crear un webhook. CodeBuild También puedes usar webhooks globales y organizativos para [configurar GitHub Action Runners autohospedados y recibir `WORKFLOW_JOB_QUEUED` eventos CodeBuild de varios repositorios dentro](action-runner.md) de un mismo proyecto.

**Topics**
+ [Configura un webhook global u organizacional GitHub](github-global-organization-webhook-setup.md)
+ [Filtrar eventos de webhook GitHub globales u organizacionales (consola)](github-global-organization-webhook-events-console.md)
+ [Filtra GitHub la organización de eventos de webhook ()CloudFormation](github-organization-webhook-events-cfn.md)

# Configura un webhook global u organizacional GitHub
<a name="github-global-organization-webhook-setup"></a>

Los pasos generales para configurar un GitHub webhook global u organizacional son los siguientes. Para obtener más información sobre los GitHub webhooks globales y organizativos, consulte. [GitHub webhooks globales y organizativos](github-global-organization-webhook.md)

1. Establezca la ubicación de origen del proyecto en `CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`.

1. En la configuración de ámbito del webhook, establezca el ámbito en `GITHUB_ORGANIZATION` o `GITHUB_GLOBAL`, en función de si debe ser un [webhook global](https://docs.github.com/en/enterprise-cloud@latest/admin/monitoring-activity-in-your-enterprise/exploring-user-activity-in-your-enterprise/managing-global-webhooks) o de organización. Para obtener más información, consulte [Tipos de webhooks](https://docs.github.com/en/webhooks/types-of-webhooks).

1. Especifique un nombre como parte de la configuración del ámbito del webhook. En el caso de los webhooks de organización, este es el nombre de la organización y, para los webhooks globales, es el nombre de la empresa.
**nota**  
Si el tipo de origen del proyecto es `GITHUB_ENTERPRISE`, también debe especificar un dominio como parte de la configuración del ámbito del webhook.

1. (Opcional) Si solo quiere recibir eventos de webhook para repositorios específicos de su organización o empresa, puede especificar `REPOSITORY_NAME` como filtro al crear el webhook.

1. Si vas a crear un webhook para una organización, asegúrate de que CodeBuild dispone de los permisos necesarios para crear webhooks a nivel de organización. GitHub Puedes crear un token de acceso GitHub personal con los permisos de webhook de la organización o usarlo. CodeBuild OAuth Para obtener más información, consulte [GitHub y un token de acceso a GitHub Enterprise Server](access-tokens-github.md).

   Ten en cuenta que los webhooks de la organización funcionan con cualquiera de los tipos de eventos de GitHub webhook existentes.

1. Si va a crear un webhook global, deberá crearlo de forma manual. Para obtener más información sobre cómo crear manualmente un webhook en GitHub él, consulte. [GitHub webhooks manuales](github-manual-webhook.md)

   Tenga en cuenta que los webhooks globales solo admiten el tipo de evento `WORKFLOW_JOB_QUEUED`. Para obtener más información, consulte [Tutorial: Configurar un ejecutor de CodeBuild Actions alojado GitHub](action-runner.md).

# Filtrar eventos de webhook GitHub globales u organizacionales (consola)
<a name="github-global-organization-webhook-events-console"></a>

Al crear un GitHub proyecto a través de la consola, selecciona las siguientes opciones para crear un webhook GitHub global u organizacional dentro del proyecto. Para obtener más información sobre los GitHub webhooks globales y organizativos, consulte. [GitHub webhooks globales y organizativos](github-global-organization-webhook.md)

1. Abre la AWS CodeBuild consola en [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Cree un proyecto de compilación. Para obtener más información, consulte [Creación de un proyecto de compilación (consola)](create-project.md#create-project-console) y [Ejecutar una compilación (consola)](run-build-console.md).
   +  En **Source (Código fuente)**: 
     +  **Para el **proveedor de código fuente**, elige **GitHub**Enterprise. GitHub**
     +  En **Repositorio**, elige **GitHubwebhook con alcance**. 

        El GitHub repositorio se configurará automáticamente en`CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`, que es la ubicación de origen requerida para los webhooks globales y organizativos. 
**nota**  
Si utilizas webhooks de una organización, asegúrate de que CodeBuild tiene permisos para crear webhooks a nivel de organización. GitHub Si utilizas una [ OAuthconexión existente](oauth-app-github.md), es posible que tengas que volver a generarla para conceder CodeBuild este permiso. Como alternativa, puedes crear el webhook manualmente mediante la función de [webhooks CodeBuild manuales](github-manual-webhook.md). Ten en cuenta que si ya tienes un GitHub OAuth token y deseas añadir permisos organizativos adicionales, puedes [revocar el permiso del OAuth token](https://docs.github.com/en/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps) y volver a conectarlo a través de la consola. CodeBuild   
![\[La configuración del webhook con GitHub ámbito específico.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/github-organization-webhook-source.png)
   +  En **Eventos de webhook de origen principal**: 
     +  En **Tipo de ámbito**, elija **Nivel de organización** si va a crear un webhook de organización o **Nivel empresarial** si va a crear un webhook global.
     +  En **Nombre**, especifique el nombre de la empresa o de la organización en función de si el webhook es global o de organización.

       Si el tipo de origen del proyecto es `GITHUB_ENTERPRISE`, también debe especificar un dominio como parte de la configuración de la organización del webhook. Por ejemplo, si la URL de su organización es **https://domain.com/orgs/org-name**, el dominio es **https://domain.com**.
**nota**  
 Este nombre no puede modificarse una vez que se haya creado el webhook. Para cambiar el nombre, puede eliminar el webhook y volver a crearlo. Si quieres eliminar el webhook por completo, también puedes actualizar la ubicación de origen del proyecto a un repositorio. GitHub   
![\[La configuración de los webhooks de organización o globales.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/github-organization-webhook-primary-events.png)
     +  (Opcional) En **Grupos de filtros de eventos de webhook**, puede especificar qué [eventos quiere que desencadenen una nueva compilación](github-webhook.md). También puede especificar `REPOSITORY_NAME` como filtro para que solo se desencadenen compilaciones a partir de eventos de webhook de repositorios específicos.  
![\[Un filtro que solo desencadena compilaciones a partir de eventos de webhook de repositorios específicos.\]](http://docs.aws.amazon.com/es_es/codebuild/latest/userguide/images/github-organization-webhook-filter-groups.png)

       También puedes configurar el tipo de evento como `WORKFLOW_JOB_QUEUED` para configurar ejecutores de GitHub Actions autohospedados. Para obtener más información, consulte [Tutorial: Configurar un ejecutor de CodeBuild Actions alojado GitHub](action-runner.md).

1. Continúe con los valores predeterminados y, a continuación, elija **Crear el proyecto de compilación**.

# Filtra GitHub la organización de eventos de webhook ()CloudFormation
<a name="github-organization-webhook-events-cfn"></a>

 Para usar una CloudFormation plantilla para filtrar los eventos de webhook de la organización, usa la propiedad del AWS CodeBuild `ScopeConfiguration` proyecto. Para obtener más información sobre los GitHub webhooks globales y organizativos, consulte. [GitHub webhooks globales y organizativos](github-global-organization-webhook.md)

**nota**  
Los webhooks globales y los webhooks GitHub empresariales no son compatibles con. CloudFormation

 La siguiente parte de una CloudFormation plantilla con formato YAML crea cuatro grupos de filtros. Juntos, desencadenan una compilación cuando uno o todos 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 cuenta`12345`. 
+  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
      ScopeConfiguration:
        Name: organization-name
        Scope: GITHUB_ORGANIZATION
      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\]
```