

A Amazon não CodeCatalyst está mais aberta a novos clientes. Os clientes atuais podem continuar usando o serviço normalmente. Para obter mais informações, consulte [Como migrar do CodeCatalyst](migration.md).

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

# Diretrizes para o uso de gatilhos e ramificações
<a name="workflows-add-trigger-considerations"></a>

Esta seção descreve algumas das principais diretrizes ao configurar CodeCatalyst gatilhos da Amazon que incluem filiais.

Para ter mais informações sobre gatilhos, consulte [Início da execução automática de um fluxo de trabalho usando gatilhos](workflows-add-trigger.md).
+ **Diretriz 1:** para os gatilhos de envio e solicitação pull, se você for especificar uma ramificação, deverá especificar a ramificação de destino (ou “para”) na configuração do gatilho. Nunca especifique a ramificação de origem (ou “de”).

  No exemplo a seguir, um envio de qualquer ramificação para `main` ativa o fluxo de trabalho.

  ```
  Triggers:
    - Type: PUSH
      Branches:
        - main
  ```

  No exemplo a seguir, uma solicitação pull de qualquer ramificação para `main` ativa o fluxo de trabalho.

  ```
  Triggers:
    - Type: PULLREQUEST
      Branches:
        - main
      Events:
        - OPEN
        - REVISION
  ```
+ **Diretriz 2:** para gatilhos de envio, depois que o fluxo de trabalho for ativado, ele será executado usando o arquivo de definição do fluxo de trabalho e os arquivos de origem na ramificação de *destino*.
+ **Diretriz 3:** para gatilhos de solicitação pull, depois que o fluxo de trabalho for ativado, ele será executado usando o arquivo de definição de fluxo de trabalho e os arquivos de origem na ramificação de *origem* (mesmo que você tenha especificado a ramificação de destino na configuração do gatilho).
+ **Diretriz 4:** o mesmo gatilho em uma ramificação pode não ser executado em outra ramificação.

  Considere o gatilho de envio a seguir:

  ```
  Triggers:
    - Type: PUSH
      Branches:
        - main
  ```

  Se o arquivo de definição do fluxo de trabalho que contém esse gatilho existir em `main` e for clonado para `test`, o fluxo de trabalho nunca começará a usar automaticamente os arquivos em `test` (embora você possa iniciar o fluxo de trabalho *manualmente* para que ele use os arquivos em `test`). Revise a **Diretriz 2** para entender por que o fluxo de trabalho nunca será executado automaticamente usando os arquivos em `test`.

  Considere também o seguinte gatilho de solicitação pull:

  ```
  Triggers:
    - Type: PULLREQUEST
      Branches:
        - main
      Events:
        - OPEN
        - REVISION
  ```

  Se o arquivo de definição do fluxo de trabalho contendo esse gatilho existir em `main`, o fluxo de trabalho nunca será executado usando os arquivos em `main`. (No entanto, se você criar uma ramificação `test` a partir de `main`, o fluxo de trabalho será executado usando os arquivos em `test`.) Revise a **Diretriz 3** para entender o porquê.