

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 eventos de webhook
<a name="github-webhook"></a>

Você pode usar grupos de filtros de webhook para especificar quais eventos de GitHub webhook acionam uma compilação. Por exemplo, é possível especificar que uma compilação seja acionada somente para alterações em ramificações especificadas. 

Você pode criar um ou mais grupos de filtros de webhook para especificar quais eventos de webhook acionam uma compilação. Uma compilação será acionada se algum grupo de filtros for avaliado como verdadeiro, o que ocorre quando todos os filtros no grupo são avaliados como verdadeiros. Ao criar um grupo de filtros, é necessário especificar: 

**Um evento**  
Para GitHub, você pode escolher um ou mais dos seguintes eventos: `PUSH``PULL_REQUEST_CREATED`,`PULL_REQUEST_UPDATED`,`PULL_REQUEST_REOPENED`,`PULL_REQUEST_MERGED`, `PULL_REQUEST_CLOSED``RELEASED`,`PRERELEASED`,, `WORKFLOW_JOB_QUEUED` e. O tipo de evento webhook está no cabeçalho `X-GitHub-Event` na carga webhook. No cabeçalho `X-GitHub-Event`, você pode ver `pull_request` ou `push`. Para obter uma solicitação pull, o tipo de evento está no campo `action` da carga do evento webhook. A tabela a seguir mostra como valores de cabeçalho `X-GitHub-Event` e os valores do campo `action` da carga da solicitação pull webhook são mapeados para os tipos de eventos disponíveis.      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/github-webhook.html)
 O tipo de `PULL_REQUEST_REOPENED` evento pode ser usado somente com GitHub um GitHub Enterprise Server. O tipo de `PRERELEASED` evento `RELEASED` e GitHub só pode ser usado com. Para obter mais informações sobre `WORKFLOW_JOB_QUEUED`, consulte [Tutorial: Configurar um CodeBuild executor de GitHub ações hospedado](action-runner.md). 

**Um ou mais filtros opcionais**  
Use uma expressão regular para especificar um filtro. Para um evento acionar uma compilação, cada filtro do grupo associado a ele deve ser avaliado como verdadeiro.    
`ACTOR_ACCOUNT_ID` (`ACTOR_ID` no console)  
Um evento de webhook aciona uma compilação quando uma ID de conta GitHub ou do GitHub Enterprise Server corresponde ao padrão de expressão regular. Esse valor é encontrado na propriedade `id` do objeto `sender` na carga webhook.  
`HEAD_REF`  
Um evento de webhook aciona uma compilação quando a referência head corresponde ao padrão da expressão regular (por exemplo, `refs/heads/branch-name` ou `refs/tags/tag-name`). Para um evento push, o nome de referência é encontrado na propriedade `ref` da carga webhook. Para eventos de solicitações pull, o nome da ramificação é encontrado na propriedade `ref` do objeto `head` na carga webhook.   
`BASE_REF`  
Um evento de webhook aciona uma compilação quando a referência base corresponde ao padrão da expressão regular (por exemplo, `refs/heads/branch-name`). Um filtro `BASE_REF` pode ser usado apenas com eventos de solicitação pull. O nome da ramificação é encontrado na propriedade `ref` do objeto `base` na carga webhook.  
`FILE_PATH`  
Um evento de webhook aciona uma compilação quando o caminho de um arquivo alterado corresponde ao padrão das expressões regulares. Um `FILE_PATH` filtro pode ser usado com eventos GitHub push e pull request e eventos push do GitHub Enterprise Server. Ele não pode ser usado com eventos de pull request do GitHub Enterprise Server.   
`COMMIT_MESSAGE`  
Um webhook aciona uma compilação quando a mensagem de confirmação head corresponde à expressão padrão. Um `COMMIT_MESSAGE` filtro pode ser usado com eventos GitHub push e pull request e eventos push do GitHub Enterprise Server. Ele não pode ser usado com eventos de pull request do GitHub Enterprise Server.  
`TAG_NAME`  
Um webhook aciona uma compilação quando o nome da tag da versão corresponde ao padrão de expressão regular. Um `TAG_NAME` filtro pode ser usado com eventos de GitHub solicitação lançados e pré-lançados.  
`RELEASE_NAME`  
Um webhook aciona uma compilação quando o nome da versão corresponde ao padrão da expressão regular. Um `RELEASE_NAME` filtro pode ser usado com eventos de GitHub solicitação lançados e pré-lançados.  
`REPOSITORY_NAME`  
Um webhook aciona uma compilação quando o nome do repositório corresponde ao padrão da expressão regular. Um `REPOSITORY_NAME` filtro só pode ser usado com GitHub webhooks globais ou organizacionais.  
`ORGANIZATION_NAME`  
Um webhook aciona uma compilação quando o nome da organização corresponde ao padrão da expressão regular. Um `ORGANIZATION_NAME` filtro só pode ser usado com GitHub webhooks globais.  
`WORKFLOW_NAME`  
Um webhook aciona uma compilação quando o nome do fluxo de trabalho corresponde ao padrão da expressão regular. Um `WORKFLOW_NAME` filtro pode ser usado com eventos de solicitação em fila de tarefas do fluxo de trabalho do GitHub Actions.

**nota**  
Você pode encontrar a carga útil do webhook nas configurações do webhook do seu repositório. GitHub 

**Topics**
+ [

# Filtrar eventos de GitHub webhook (console)
](github-webhook-events-console.md)
+ [

# Filtrar eventos de GitHub webhook (SDK)
](github-webhook-events-sdk.md)
+ [

# Filtrar eventos de GitHub webhook ()CloudFormation
](github-webhook-events-cfn.md)

# Filtrar eventos de GitHub webhook (console)
<a name="github-webhook-events-console"></a>

Use as instruções a seguir para filtrar eventos de GitHub webhook usando o. Console de gerenciamento da AWS Para obter mais informações sobre eventos de GitHub webhook, consulte[GitHub eventos de webhook](github-webhook.md).

Em **Eventos de webhook da origem principal**, selecione o seguinte. Essa seção só está disponível quando você escolhe **Repositório em minha GitHub conta** para o repositório de origem.

1. Selecione **Rebuild every time a code change is pushed to this repository (Recompilar toda vez que uma alteração de código for enviada para este repositório)** ao criar seu projeto. 

1. Em **Event type (Tipo de evento)**, escolha um ou mais eventos. 

1. Para filtrar quando um evento aciona uma compilação, em **Start a build under these conditions (Iniciar uma compilação sob estas condições)**, adicione um ou mais filtros opcionais. 

1. Para filtrar quando um evento não é acionado, em **Don't start a build under these conditions (Não iniciar uma compilação sob estas condições)**, adicione um ou mais filtros opcionais. 

1. Escolha **Adicionar grupo de filtros** para adicionar outro grupo de filtros, se necessário. 

 Para obter mais informações, consulte [Criar um projeto de compilação (console)](create-project.md#create-project-console) e [WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html) na *Referência da API do AWS CodeBuild *. 

Neste exemplo, um grupo de filtros de webhook aciona uma compilação apenas para solicitações pull:

![\[Um grupo de filtros do webhook que aciona uma compilação apenas para solicitações pull.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/pull-request-webhook-filter.png)


Usando um exemplo de dois grupos de filtros de webhook, uma compilação será acionada quando um ou ambos forem avaliados como verdadeiro:
+ O primeiro grupo de filtros especifica as solicitações pull que são criadas, atualizadas ou reabertas nas ramificações com nomes de referência do Git que correspondam à expressão regular `^refs/heads/main$` e referências head que correspondam a `^refs/heads/branch1$`. 
+ O segundo grupo de filtros especifica solicitações push em ramificações com nomes de referência do Git que correspondam à expressão regular `^refs/heads/branch1$`. 

![\[Um exemplo de dois grupos de filtros.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/pull-request-webhook-filter-head-base-regexes.png)


Neste exemplo, um grupo de filtros de webhook aciona uma compilação para todas as solicitações, com exceção de eventos de tag. 

![\[Um grupo de filtros do webhook aciona uma compilação para todas as solicitações, com exceção de eventos de tag.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/pull-request-webhook-filter-exclude.png)


Neste exemplo, um grupo de filtros de webhook acionará uma compilação apenas quando arquivos com nomes que correspondam à expressão regular `^buildspec.*` forem alterados. 

![\[Um grupo de filtros do webhook que aciona uma compilação apenas quando arquivos com nomes que correspondem à expressão regular especificada.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-regex.png)


Neste exemplo, um grupo de filtros de webhook aciona uma compilação somente quando os arquivos são alterados nas pastas `src` ou `test`.

![\[Um grupo de filtros do webhook que aciona uma compilação somente quando os arquivos são alterados nas pastas especificadas.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/pull-request-webhook-filter-file-name-combined-regex.png)


Neste exemplo, um grupo de filtros de webhook aciona uma compilação somente quando uma alteração é feita por um usuário especificado GitHub ou do GitHub Enterprise Server com uma ID de conta que corresponda à expressão regular. `actor-account-id` 

**nota**  
 Para obter informações sobre como encontrar o ID GitHub da sua conta https://api.github.com/users/*user-name*, consulte Onde *user-name* está seu nome de GitHub usuário. 

![\[Um grupo de filtros de webhook que aciona uma compilação somente quando uma alteração é feita por um GitHub usuário especificado com um ID de conta que corresponde à expressão regular.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/pull-request-webhook-filter-actor.png)


Neste exemplo, um grupo de filtros de webhook aciona uma compilação para um evento de push quando a mensagem de confirmação head corresponde à expressão regular `\[CodeBuild\]`. 

![\[Um grupo de filtros do webhook que aciona uma compilação para um evento de push quando a mensagem de confirmação head corresponde à expressão regular.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/pull-request-webhook-filter-commit-message.png)


Neste exemplo, um grupo de filtros de webhook aciona uma compilação somente para eventos de trabalho do fluxo de trabalho do GitHub Actions.

**nota**  
CodeBuild só processará trabalhos do fluxo de trabalho do GitHub Actions se um webhook tiver grupos de filtros contendo o filtro de eventos **WORKFLOW\$1JOB\$1QUEUED**.

![\[Um grupo de filtros de webhook aciona uma compilação somente para eventos de trabalho do fluxo de trabalho do GitHub Actions.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/github-actions-workflow-job-queued-no-highlight.png)


Neste exemplo, um grupo de filtros do webhook aciona uma compilação para um nome de fluxo de trabalho corresponde à expressão regular `CI-CodeBuild`. 

![\[Um grupo de filtros do webhook aciona uma compilação para um nome de fluxo de trabalho que corresponde à expressão regular.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/github-actions-workflow-job-specific.png)


# Filtrar eventos de GitHub webhook (SDK)
<a name="github-webhook-events-sdk"></a>

Para usar o AWS CodeBuild SDK para filtrar eventos de webhook, use o `filterGroups` campo na sintaxe de solicitação dos métodos da API `CreateWebhook` ou`UpdateWebhook`. Para obter mais informações, consulte [WebhookFilter](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_WebhookFilter.html) na *Referência de APIs do CodeBuild *. 

Para obter mais informações sobre eventos de GitHub webhook, consulte[GitHub eventos de webhook](github-webhook.md).

 Para criar um filtro de webhook que acione uma compilação apenas para solicitações pull, insira o seguinte na sintaxe de solicitação: 

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

 Para criar um filtro de webhook que acione uma compilação apenas para ramificações especificadas, use o parâmetro `pattern` para especificar uma expressão regular a fim de filtrar os nomes da ramificação. Usando um exemplo de dois grupos de filtros, uma compilação será acionada quando um ou ambos forem avaliados como verdadeiro:
+ O primeiro grupo de filtros especifica as solicitações pull que são criadas, atualizadas ou reabertas nas ramificações com nomes de referência do Git que correspondam à expressão regular `^refs/heads/main$` e referências head que correspondam a `^refs/heads/myBranch$`. 
+ O segundo grupo de filtros especifica solicitações push em ramificações com nomes de referência do Git que correspondam à expressão 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$"
        }
    ]
]
```

 Você pode usar o parâmetro `excludeMatchedPattern` para especificar quais eventos não acionam uma compilação. Por exemplo, um compilação é acionada para todas as solicitações, com exceção de eventos de tag. 

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

Você pode criar um filtro que acionará uma compilação apenas quando arquivos com nomes que correspondam à expressão regular no argumento `pattern` forem alterados. Neste exemplo, o grupo de filtros especifica que uma compilação será acionada apenas quando arquivos com um nome que corresponda à expressão regular `^buildspec.*` forem alterados. 

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

Neste exemplo, um grupo de filtros especifica que uma compilação seja acionada somente quando os arquivos são alterados nas pastas `src` ou `test`.

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

Você pode criar um filtro que aciona uma compilação somente quando uma alteração é feita por um usuário especificado GitHub ou do GitHub Enterprise Server com ID da conta. `actor-account-id` 

**nota**  
 Para obter informações sobre como encontrar o ID GitHub da sua conta https://api.github.com/users/*user-name*, consulte Onde *user-name* está seu nome de GitHub usuário. 

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

É possível criar um filtro que aciona uma compilação somente quando a mensagem de confirmação head corresponde à expressão regular no argumento padrão. Neste exemplo, o grupo de filtros especifica que uma compilação é acionada somente quando a mensagem de confirmação head do evento de push corresponde à expressão regular `\[CodeBuild\]`. 

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

Para criar um filtro de webhook que acione uma compilação somente para trabalhos de fluxo de trabalho do GitHub Actions, insira o seguinte na sintaxe da solicitação:

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

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

 Para usar um CloudFormation modelo para filtrar eventos de webhook, use a `FilterGroups` propriedade do AWS CodeBuild projeto.

Para obter mais informações sobre eventos de GitHub webhook, consulte[GitHub eventos de webhook](github-webhook.md).

A seguinte parte formatada em YAML de um modelo do CloudFormation cria dois grupos de filtros. Juntos, eles acionarão uma compilação quando um ou ambos 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
      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\]
```