

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

# Filtrar eventos de webhook do Bitbucket
<a name="bitbucket-webhook"></a>

Você pode usar grupos de filtros de webhook para especificar quais eventos de webhook do Bitbucket 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 o Bitbucket, é possível escolher um ou mais dos seguintes eventos:  
+ `PUSH`
+ `PULL_REQUEST_CREATED`
+ `PULL_REQUEST_UPDATED`
+ `PULL_REQUEST_MERGED`
+ `PULL_REQUEST_CLOSED`
O tipo de evento do webhook está em seu cabeçalho no campos `X-Event-Key`. A tabela a seguir mostra como valores de cabeçalho `X-Event-Key` são mapeados para os tipos de eventos.  
Você deve habilitar o evento `merged` em sua configuração de webhook do Bitbucket caso você crie um grupo de filtros de webhook que use o tipo de evento `PULL_REQUEST_MERGED`. Você também deve habilitar o evento `declined` em sua configuração de webhook do Bitbucket caso você crie um grupo de filtros do webhook que usa o tipo de evento `PULL_REQUEST_CLOSED`.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/bitbucket-webhook.html)
Para `PULL_REQUEST_MERGED`, se uma solicitação pull for mesclada com a estratégia squash e a ramificação da solicitação pull for fechada, a confirmação original da solicitação pull deixará de existir. Nesse caso, a variável de ambiente `CODEBUILD_WEBHOOK_MERGE_COMMIT` contém o identificador da confirmação de mesclagem comprimida.

**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 um ID de conta do Bitbucket corresponde ao padrão da expressão regular. Esse valor é exibido na propriedade `account_id` do objeto `actor` na carga de filtro 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` e `refs/tags/tag-name`). Um filtro `HEAD_REF` avalia o nome de referência do Git para a ramificação ou tag. O nome de ramificação ou de tag é exibido no campo `name` do objeto `new` no objeto `push` da carga webhook. Para eventos de solicitação pull, o nome da ramificação é exibido no campo `name` no objeto `branch` do objeto `source` 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. Um filtro `BASE_REF` funciona apenas com eventos de solicitação pull (por exemplo, `refs/heads/branch-name`). Um filtro `BASE_REF` avalia o nome de referência do Git para a ramificação. O nome da ramificação é exibido no campo `name` do objeto `branch` no objeto `destination` na carga webhook.  
`FILE_PATH`  
Um evento de webhook aciona uma compilação quando o caminho de um arquivo alterado corresponde ao padrão da expressão regular.  
`COMMIT_MESSAGE`  
Um webhook aciona uma compilação quando a mensagem de confirmação head corresponde à expressão padrão.  
`WORKFLOW_NAME`  
Um webhook aciona uma compilação quando o nome do fluxo de trabalho corresponde ao padrão da expressão regular.

**nota**  
Você pode encontrar a carga webhook nas configurações de webhook no seu repositório do Bitbucket. 

**Topics**
+ [Filtrar eventos de webhook do Bitbucket (console)](bitbucket-webhook-events-console.md)
+ [Filtrar eventos de webhook do Bitbucket (SDK)](bitbucket-webhook-events-sdk.md)
+ [Filtrar eventos de webhook do Bitbucket (CloudFormation)](bitbucket-webhook-events-cfn.md)

# Filtrar eventos de webhook do Bitbucket (console)
<a name="bitbucket-webhook-events-console"></a>

 Para usar o Console de gerenciamento da AWS para filtrar eventos de webhook: 

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 **Add filter group (Adicionar grupo de filtros)** para adicionar outro grupo de filtros. 

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


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 ou atualizadas 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-bitbucket.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-bitbucket.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 do Bitbucket que não tem um ID da conta que corresponda à expressão regular `actor-account-id`. 

**nota**  
 Para obter informações sobre como encontrar o ID da sua conta do Bitbucket, consulte https://api.bitbucket.org/2.0/users/*user-name*, onde *user-name* está seu nome de usuário do Bitbucket. 

![\[Um grupo de filtros do webhook que aciona uma compilação somente quando uma alteração é feita por um usuário do Bitbucket que não tem um ID da conta.\]](http://docs.aws.amazon.com/pt_br/codebuild/latest/userguide/images/pull-request-webhook-filter-actor-bitbucket.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)


# Filtrar eventos de webhook do Bitbucket (SDK)
<a name="bitbucket-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 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_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 ou atualizadas 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_CLOSED"
    },
    {
      "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. Neste 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_MERGED, PULL_REQUEST_CLOSED"
    },
    {
      "type": "HEAD_REF",
      "pattern": "^refs/tags/.*",
      "excludeMatchedPattern": true
    }
  ]
]
```

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

**nota**  
 Para obter informações sobre como encontrar o ID da sua conta do Bitbucket, consulte https://api.bitbucket.org/2.0/users/*user-name*, onde *user-name* está seu nome de usuário do Bitbucket. 

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

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

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

# Filtrar eventos de webhook do Bitbucket (CloudFormation)
<a name="bitbucket-webhook-events-cfn"></a>

 Para usar um CloudFormation modelo para filtrar eventos de webhook, use a `FilterGroups` propriedade do AWS CodeBuild projeto. 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 as solicitações pull que são criadas ou atualizadas nas ramificações com nomes de referência do Git que correspondam à expressão regular `^refs/heads/main$` por um usuário do Bitbucket que não tem o ID de conta `12345`. 
+  O segundo grupo de filtros especifica solicitações push que são criadas em ramificações com nomes de referência do Git que correspondam à 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\]`.

```
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: BITBUCKET
      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/.+
```