

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# GitHub webhooks globais e organizacionais
<a name="github-global-organization-webhook"></a>

Você pode usar webhooks CodeBuild GitHub globais ou organizacionais para iniciar compilações em eventos de webhook de qualquer repositório dentro de uma organização ou empresa. GitHub Os webhooks globais e organizacionais funcionam com qualquer um dos tipos de eventos de GitHub webhook existentes e podem ser configurados adicionando uma configuração de escopo ao criar um webhook. CodeBuild Você também pode usar webhooks globais e organizacionais para [configurar executores de GitHub ação auto-hospedados a fim de receber `WORKFLOW_JOB_QUEUED` eventos de vários repositórios CodeBuild em](action-runner.md) um único projeto.

**Topics**
+ [Configure um GitHub webhook global ou organizacional](github-global-organization-webhook-setup.md)
+ [Filtrar eventos de webhook GitHub globais ou organizacionais (console)](github-global-organization-webhook-events-console.md)
+ [Filtrar eventos de webhook da GitHub organização ()CloudFormation](github-organization-webhook-events-cfn.md)

# Configure um GitHub webhook global ou organizacional
<a name="github-global-organization-webhook-setup"></a>

As etapas de alto nível para configurar um GitHub webhook global ou organizacional são as seguintes. Para obter mais informações sobre GitHub webhooks globais e organizacionais, consulte. [GitHub webhooks globais e organizacionais](github-global-organization-webhook.md)

1. Defina o local de origem do seu projeto como `CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`.

1. Na configuração do escopo do webhook, defina o escopo como `GITHUB_ORGANIZATION` ou `GITHUB_GLOBAL`, dependendo se ele deve ser uma organização ou um [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). Para obter mais informações, consulte [Tipos de webhooks](https://docs.github.com/en/webhooks/types-of-webhooks).

1. Especifique um nome como parte da configuração do escopo do webhook. Para webhooks organizacionais, esse é o nome da organização e, para webhooks globais, esse é o nome da empresa.
**nota**  
Se o tipo de origem do projeto for `GITHUB_ENTERPRISE`, você também precisará especificar um domínio como parte da configuração do escopo do webhook.

1. (Opcional) Se você quiser receber apenas eventos de webhook para repositórios específicos em sua organização ou empresa, você pode especificar `REPOSITORY_NAME` como filtro ao criar o webhook.

1. Se você estiver criando um webhook organizacional, certifique-se de que ele CodeBuild tenha permissões para criar webhooks no nível da organização. GitHub Você pode criar um token de acesso GitHub pessoal com permissões de webhook da organização ou usar CodeBuild OAuth. Para obter mais informações, consulte [GitHub e token de acesso do GitHub Enterprise Server](access-tokens-github.md).

   Observe que os webhooks da organização funcionam com qualquer um dos tipos de eventos de GitHub webhook existentes.

1. Se você estiver criando um webhook global, o webhook precisará ser criado manualmente. Para obter mais informações sobre como criar manualmente um webhook em GitHub, consulte[GitHub webhooks manuais](github-manual-webhook.md).

   Observe que os webhooks globais são compatíveis apenas com o tipo de evento `WORKFLOW_JOB_QUEUED`. Para obter mais informações, consulte [Tutorial: Configurar um CodeBuild executor de GitHub ações hospedado](action-runner.md).

# Filtrar eventos de webhook GitHub globais ou organizacionais (console)
<a name="github-global-organization-webhook-events-console"></a>

Ao criar um GitHub projeto por meio do console, selecione as seguintes opções para criar um webhook GitHub global ou organizacional dentro do projeto. Para obter mais informações sobre GitHub webhooks globais e organizacionais, consulte. [GitHub webhooks globais e organizacionais](github-global-organization-webhook.md)

1. Abra o AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

1. Crie um projeto de compilação. Para obter informações, consulte [Criar um projeto de compilação (console)](create-project.md#create-project-console) e [Executar uma compilação (console)](run-build-console.md).
   +  Em **Origem**: 
     +  Em **Source provider**, escolha **GitHubGitHub****Enterprise**.
     +  Em **Repositório**, escolha webhook com **GitHubescopo definido**. 

        O GitHub repositório será automaticamente definido como`CODEBUILD_DEFAULT_WEBHOOK_SOURCE_LOCATION`, que é o local de origem necessário para webhooks globais e organizacionais. 
**nota**  
Se você estiver usando webhooks da organização, verifique se ele CodeBuild tem permissões para criar webhooks no nível da organização. GitHub Se você estiver usando uma [ OAuthconexão existente](oauth-app-github.md), talvez seja necessário regenerar a conexão para conceder CodeBuild essa permissão. Como alternativa, você pode criar o webhook manualmente usando o recurso de [webhooks CodeBuild manuais](github-manual-webhook.md). Observe que, se você tiver um GitHub OAuth token existente e quiser adicionar permissões adicionais à organização, poderá [revogar a permissão do OAuth token](https://docs.github.com/en/apps/oauth-apps/using-oauth-apps/reviewing-your-authorized-oauth-apps) e reconectá-lo por meio do CodeBuild console.  
![\[A configuração do webhook com GitHub escopo definido.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/github-organization-webhook-source.png)
   +  Em **Eventos de webhook da origem principal**: 
     +  Em **Tipo de escopo**, escolha **Nível da organização** se você estiver criando um webhook organizacional ou **Nível corporativo** se estiver criando um webhook global.
     +  Em **Nome**, insira o nome da empresa ou da organização, dependendo se o webhook é global ou organizacional.

       Se o tipo de origem do projeto for `GITHUB_ENTERPRISE`, você também precisará especificar um domínio como parte da configuração da organização do webhook. Por exemplo, se o URL da organização for **https://domain.com/orgs/org-name**, o domínio será **https://domain.com**.
**nota**  
 Não é possível alterar o nome depois que o webhook é criado. Para alterar o nome, você pode excluir e recriar o webhook. Se quiser remover completamente o webhook, você também pode atualizar o local de origem do projeto em um GitHub repositório.   
![\[A configuração de webhooks globais ou organizacionais.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/github-organization-webhook-primary-events.png)
     +  (Opcional) Nos **grupos de filtros de eventos de Webhook**, você pode especificar quais [eventos você gostaria de acionar uma nova compilação](github-webhook.md). Você também pode especificar `REPOSITORY_NAME` como filtro para acionar somente compilações em eventos de webhook de repositórios específicos.  
![\[Um filtro que só aciona compilações em eventos de webhook de repositórios específicos.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/github-organization-webhook-filter-groups.png)

       Você também pode definir o tipo de evento `WORKFLOW_JOB_QUEUED` para configurar executores de GitHub ações auto-hospedados. Para obter mais informações, consulte [Tutorial: Configurar um CodeBuild executor de GitHub ações hospedado](action-runner.md).

1. Continue com os valores padrão e escolha **Criar projeto de compilação**.

# Filtrar eventos de webhook da GitHub organização ()CloudFormation
<a name="github-organization-webhook-events-cfn"></a>

 Para usar um CloudFormation modelo para filtrar eventos de webhook da organização, use a `ScopeConfiguration` propriedade do AWS CodeBuild projeto. Para obter mais informações sobre GitHub webhooks globais e organizacionais, consulte. [GitHub webhooks globais e organizacionais](github-global-organization-webhook.md)

**nota**  
Webhooks globais e webhooks GitHub corporativos não são suportados pelo. CloudFormation

 A seguinte parte formatada em YAML de um CloudFormation modelo cria quatro grupos de filtros. Juntos, eles acionarão uma compilação quando um ou todos forem avaliados como verdadeiro: 
+  O primeiro grupo de filtros especifica que as pull requests são criadas ou atualizadas em ramificações com nomes de referência do Git que correspondem à `^refs/heads/main$` expressão regular de GitHub um usuário que não tem ID de conta. `12345` 
+  O segundo grupo de filtros especifica que as solicitações push sejam criadas em arquivos com nomes que correspondem à expressão regular `READ_ME`, em ramificações com nomes de referência do Git que correspondem à 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 `\[CI-CodeBuild\]` regular.

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