Sobre eventos que acionam fluxos de trabalho
Os acionadores de fluxo de trabalho são eventos que fazem com que um fluxo de trabalho seja executado. Para obter mais informações sobre como usar gatilhos de fluxo de trabalho, confira "Acionando um fluxo de trabalho."
Alguns eventos têm vários tipos de atividades. Para esses eventos, você pode especificar quais tipos de atividade ativarão a execução de um fluxo de trabalho. Para obter mais informações sobre o que significa cada tipo de atividade, confira "Eventos e cargas de webhook."
Observação: nem todos os eventos de webhook disparam fluxos de trabalho.
branch_protection_rule
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
branch_protection_rule | - created - edited - deleted | Último commit no branch padrão | Branch padrão |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando as regras de proteção de branch no repositório do fluxo de trabalho são alteradas. Para obter mais informações sobre as regras de proteção do branch, confira "Sobre branches protegidos." Para obter informações sobre as APIs da regra de proteção de ramificação, confira "Objetos" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para ramificações e suas configurações."
Por exemplo, você poderá executar um fluxo de trabalho quando uma regra de proteção de branch for created
ou deleted
:
on:
branch_protection_rule:
types: [created, deleted]
check_run
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
check_run | - created - rerequested - completed - requested_action | Último commit no branch padrão | Branch padrão |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando ocorre a atividade relacionada a uma execução de verificação. Uma execução de verificação é um teste individual que faz parte de um conjunto de verificações. Para obter mais informações, confira "Como usar a API REST para interagir com verificações". Para obter informações sobre as APIs de execução de verificação, confira "Objetos" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para execuções de verificação."
Por exemplo, você poderá executar um fluxo de trabalho quando uma execução de verificação for rerequested
ou completed
.
on:
check_run:
types: [rerequested, completed]
check_suite
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
check_suite | - completed | Último commit no branch padrão | Branch padrão |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Embora apenas o tipo de atividade completed
seja compatível, a especificação do tipo de atividade manterá o fluxo de trabalho específico se mais tipos de atividade forem adicionados no futuro. Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Observação: para evitar fluxos de trabalho recursivos, esse evento não dispara fluxos de trabalho se o conjunto de verificações foi criado pelo GitHub Actions.
Executa o fluxo de trabalho quando ocorre a atividade do conjunto de verificações. Um conjunto de verificações é uma coleção das execuções de verificação criadas para um commit específico. O conjunto de verificações resumem o status e a conclusão das execuções de verificação que estão no conjunto. Para obter mais informações, confira "Como usar a API REST para interagir com verificações". Para obter informações sobre as APIs de pacote de verificação, confira "Objetos" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para pacotes de verificação."
Por exemplo, você poderá executar um fluxo de trabalho quando um conjunto de verificações for completed
.
on:
check_suite:
types: [completed]
create
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
create | Não aplicável | Último commit no branch ou tag criado | Branch ou tag criado |
Observação: um evento não será criado quando você criar mais de três marcas de uma só vez.
Executa o fluxo de trabalho quando alguém cria uma referência Git (branch ou tag) no repositório do fluxo de trabalho. Para obter informações sobre as APIs usadas para criar uma referência do Git, confira "Mutações" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para referências Git."
Por exemplo, você poderá executar um fluxo de trabalho quando o evento create
ocorrer.
on:
create
delete
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
delete | Não aplicável | Último commit no branch padrão | Branch padrão |
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Observação: um evento não será criado quando você excluir mais de três marcas de uma só vez.
Executa o fluxo de trabalho quando alguém exclui uma referência Git (branch ou tag) no repositório do fluxo de trabalho. Para obter informações sobre as APIs usadas para excluir uma referência do Git, confira "Mutações" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para referências Git."
Por exemplo, você poderá executar um fluxo de trabalho quando o evento delete
ocorrer.
on:
delete
deployment
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
deployment | Não aplicável | Commit a ser implantado | Branch ou tag a ser implantado (vazio, se criado com o SHA de um commit) |
Executa o fluxo de trabalho quando alguém cria uma implantação no repositório do fluxo de trabalho. As implantações criadas com um SHA de commit podem não ter uma referência do Git. Para obter informações sobre as APIs usadas para criar uma implantação, confira "Mutações" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para repositórios".
Por exemplo, você poderá executar um fluxo de trabalho quando o evento deployment
ocorrer.
on:
deployment
deployment_status
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
deployment_status | Não aplicável | Commit a ser implantado | Branch ou tag a ser implantado (vazio se commit) |
Observação: quando o estado de um status de implantação for definido como inactive
, uma execução de fluxo de trabalho não será disparada.
Executa o fluxo de trabalho quando uma terceira parte fornece um status de implantação. As implantações criadas com um SHA de commit podem não ter uma referência do Git. Para obter informações sobre as APIs usadas para criar um status de implantação, confira "Mutações" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para implantações".
Por exemplo, você poderá executar um fluxo de trabalho quando o evento deployment_status
ocorrer.
on:
deployment_status
discussion
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
discussion | - created - edited - deleted - transferred - pinned - unpinned - labeled - unlabeled - locked - unlocked - category_changed - answered - unanswered | Último commit no branch padrão | Branch padrão |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Observação: atualmente, os eventos de webhook do GitHub Discussions estão em versão prévia pública e sujeitos a alterações.
Executa o fluxo de trabalho quando uma discussão no repositório do fluxo de trabalho é criada ou modificada. Para as atividades relacionadas a comentários sobre uma discussão, use o evento discussion_comment
. Para obter mais informações sobre discussões, confira "Sobre discussões". Para obter informações sobre a API do GraphQL, confira "Objetos."
Por exemplo, você poderá executar um fluxo de trabalho quando uma discussão for created
, edited
ou answered
.
on:
discussion:
types: [created, edited, answered]
discussion_comment
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
discussion_comment | - created - edited - deleted | Último commit no branch padrão | Branch padrão |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Observação: atualmente, os eventos de webhook do GitHub Discussions estão em versão prévia pública e sujeitos a alterações.
Executa o fluxo de trabalho quando um comentário em uma discussão no repositório do fluxo de trabalho é criado ou modificado. Para as atividades relacionadas a uma discussão em vez de comentários sobre uma discussão, use o evento discussion
. Para obter mais informações sobre discussões, confira "Sobre discussões". Para obter informações sobre a API do GraphQL, confira "Objetos."
Por exemplo, você poderá executar um fluxo de trabalho quando um comentário de discussão for created
ou deleted
.
on:
discussion_comment:
types: [created, deleted]
fork
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
fork | Não aplicável | Último commit no branch padrão | Branch padrão |
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando alguém bifurca um repositório. Para obter informações sobre a API REST, confira "Pontos de extremidade de API REST para forks."
Por exemplo, você poderá executar um fluxo de trabalho quando o evento fork
ocorrer.
on:
fork
gollum
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
gollum | Não aplicável | Último commit no branch padrão | Branch padrão |
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando alguém cria ou atualiza uma página wiki. Para obter mais informações, confira "Sobre wikis".
Por exemplo, você poderá executar um fluxo de trabalho quando o evento gollum
ocorrer.
on:
gollum
issue_comment
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
issue_comment | - created - edited - deleted | Último commit no branch padrão | Branch padrão |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando um problema ou comentário de pull request é criado, editado ou excluído. Para obter informações sobre as APIs de comentários de problemas, confira "Objetos" na documentação da API do GraphQL ou "Eventos e cargas de webhook" na documentação da API REST.
Por exemplo, você poderá executar um fluxo de trabalho quando um comentário ou um problema de uma solicitação de pull for created
ou deleted
.
on:
issue_comment:
types: [created, deleted]
issue_comment
apenas em problemas ou em solicitações de pull
O evento issue_comment
ocorre em comentários sobre problemas e solicitações de pull. Você pode usar a propriedade github.event.issue.pull_request
em um condicional para realizar uma ação diferente, dependendo se o objeto de gatilho foi um problema ou uma solicitação de pull.
Por exemplo, esse fluxo de trabalho executará o trabalho pr_commented
somente se o evento issue_comment
for originado de uma solicitação de pull. Ele executará o trabalho issue_commented
somente se o evento issue_comment
tiver se originado de um problema.
on: issue_comment
jobs:
pr_commented:
# This job only runs for pull request comments
name: PR comment
if: ${{ github.event.issue.pull_request }}
runs-on: ubuntu-latest
steps:
- run: |
echo A comment on PR $NUMBER
env:
NUMBER: ${{ github.event.issue.number }}
issue_commented:
# This job only runs for issue comments
name: Issue comment
if: ${{ !github.event.issue.pull_request }}
runs-on: ubuntu-latest
steps:
- run: |
echo A comment on issue $NUMBER
env:
NUMBER: ${{ github.event.issue.number }}
issues
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
issues | - opened - edited - deleted - transferred - pinned - unpinned - closed - reopened - assigned - unassigned - labeled - unlabeled - locked - unlocked - milestoned - demilestoned | Último commit no branch padrão | Branch padrão |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando um problema no repositório do fluxo de trabalho é criado ou modificado. Para as atividades relacionadas a comentários em um problema, use o evento issue_comment
. Para obter mais informações sobre problemas, confira "Sobre issues." Para obter informações sobre as APIs de problemas, consulte "Objetos" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para issues."
Por exemplo, você poderá executar um fluxo de trabalho quando um problema for opened
, edited
ou milestoned
.
on:
issues:
types: [opened, edited, milestoned]
label
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
label | - created - edited - deleted | Último commit no branch padrão | Branch padrão |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando uma etiqueta no repositório do fluxo de trabalho é criada ou modificada. Para saber mais sobre rótulos, confira "Gerenciar etiquetas". Para obter informações sobre as APIs de rótulo, consulte "Objetos" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para rótulos."
Caso deseje executar seu fluxo de trabalho quando um rótulo for adicionado ou removido de um problema, uma solicitação de pull ou uma discussão, use os tipos de atividades labeled
ou unlabeled
para os eventos issues
, pull_request
, pull_request_target
ou discussion
.
Por exemplo, você poderá executar um fluxo de trabalho quando um rótulo for created
ou deleted
.
on:
label:
types: [created, deleted]
merge_group
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
merge_group | checks_requested | SHA do grupo de mesclagem | Referência do grupo de mesclagem |
Observações:
- Mais de um tipo de atividade aciona este evento. Embora apenas o tipo de atividade
checks_requested
tenha suporte, a especificação do tipo de atividade manterá seu fluxo de trabalho específico se mais tipos de atividade forem adicionados posteriormente. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chavetypes
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions". - Se o seu repositório usa o GitHub Actions para realizar verificações necessárias ou se você exige fluxos de trabalho por meio de conjuntos de regras da organização em solicitações pull em seu repositório, é necessário atualizar os fluxos de trabalho para incluir o evento
merge_group
como um gatilho adicional. Caso contrário, as verificações de status não serão disparadas quando você adicionar uma solicitação de pull a uma fila de mesclagem. A mesclagem falhará, pois o verificação de status obrigatória não será relatada. O eventomerge_group
é separado dos eventospull_request
epush
.
Executa o fluxo de trabalho quando uma solicitação de pull é adicionada a uma fila de mesclagem, o que adiciona a solicitação de pull a um grupo de mesclagem. Para obter mais informações, confira "Como mesclar uma solicitação de pull com uma fila de mesclagem".
Por exemplo, você poderá executar um fluxo de trabalho quando a atividade checks_requested
tiver ocorrido.
on:
pull_request:
branches: [ "main" ]
merge_group:
types: [checks_requested]
milestone
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
milestone | - created - closed - opened - edited - deleted | Último commit no branch padrão | Branch padrão |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando um marco no repositório do fluxo de trabalho é criado ou modificado. Para obter mais informações sobre marcos, confira "Sobre marcos." Para obter informações sobre as APIs de etapas, consulte "Objetos" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para marcos."
Caso deseje executar seu fluxo de trabalho quando um problema for adicionado ou removido de um marco, use os tipos de atividades milestoned
ou demilestoned
para o evento issues
.
Por exemplo, você poderá executar um fluxo de trabalho quando um marco for opened
ou deleted
.
on:
milestone:
types: [opened, deleted]
page_build
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
page_build | Não aplicável | Último commit no branch padrão | Não aplicável |
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando alguém faz push em um branch que é a fonte de publicação para GitHub Pages, se o GitHub Pages estiver habilitado no repositório. Para obter mais informações sobre as fontes de publicação do GitHub Pages, confira "Configurar uma fonte de publicação para o site do GitHub Pages." Para obter informações sobre a API REST, confira "Pontos de extremidade da API REST para repositórios."
Por exemplo, você poderá executar um fluxo de trabalho quando o evento page_build
ocorrer.
on:
page_build
public
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
public | Não aplicável | Último commit no branch padrão | Branch padrão |
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando o repositório do fluxo de trabalho é alterado de privado para público. Para obter informações sobre a API REST, confira "Pontos de extremidade da API REST para repositórios."
Por exemplo, você poderá executar um fluxo de trabalho quando o evento public
ocorrer.
on:
public
pull_request
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
pull_request | - assigned - unassigned - labeled - unlabeled - opened - edited - closed - reopened - synchronize - converted_to_draft - locked - unlocked - enqueued - dequeued - milestoned - demilestoned - ready_for_review - review_requested - review_request_removed - auto_merge_enabled - auto_merge_disabled | Último commit de mesclagem no branch GITHUB_REF | Branch de mesclagem de PR refs/pull/PULL_REQUEST_NUMBER/merge |
Observações:
-
Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, um fluxo de trabalho só é executado quando o tipo de atividade de um evento
pull_request
éopened
,synchronize
oureopened
. Para disparar fluxos de trabalho em diferentes tipos de atividades, use a palavra-chavetypes
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions". -
Os fluxos de trabalho não serão executados na atividade
pull_request
se a solicitação de pull tiver um conflito de mesclagem. O conflito de merge tem de ser resolvido primeiro.Inversamente, os fluxos de trabalho com o evento
pull_request_target
serão executados mesmo que a solicitação de pull tenha um conflito de mesclagem. Antes de usar o gatilhopull_request_target
, você deve estar ciente dos riscos de segurança. Para obter mais informações, consultepull_request_target
. -
A carga do evento do webhook
pull_request
está vazia para solicitações pull mescladas e solicitações pull provenientes de repositórios bifurcados. -
O valor de
GITHUB_REF
varia em uma solicitação de pull fechada, dependendo de se a solicitação de pull foi mesclada ou não. Se uma solicitação de pull foi fechada, mas não mesclada, ela serárefs/pull/PULL_REQUEST_NUMBER/merge
. Se uma solicitação de pull foi fechada como resultado de ter sido mesclada, ela será totalmente qualificada comoref
da ramificação em que foi mesclada, por exemplo,/refs/heads/main
.
Executa o fluxo de trabalho quando ocorre uma atividade em uma pull request no repositório do fluxo de trabalho. Por exemplo, se nenhum tipo de atividade for especificado, o fluxo de trabalho será executado quando uma pull request é aberta ou reaberta, ou quando o branch principal da pull request é atualizado. Para as atividades relacionadas a revisões de solicitação de pull, a comentários de revisão de uma solicitação de pull ou a comentários de uma pull request, use os eventos pull_request_review
, pull_request_review_comment
ou issue_comment
. Para obter informações sobre as APIs de solicitação de pull, confira "Objetos" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para pull requests."
Observe que o GITHUB_SHA
desse evento é o último commit de mesclagem do branch de mesclagem da pull request. Caso deseje obter a ID de commit do último commit no branch principal da pull request, use github.event.pull_request.head.sha
.
Por exemplo, você pode executar um fluxo de trabalho quando uma pull request for aberta ou reaberta.
on:
pull_request:
types: [opened, reopened]
Você pode usar o contexto do evento para controlar ainda mais quando os trabalhos no seu fluxo de trabalho serão executados. Por exemplo, esse fluxo de trabalho será executado quando uma revisão for solicitada em uma pull request, mas o trabalho specific_review_requested
só será executado quando uma revisão por octo-team
for solicitada.
on:
pull_request:
types: [review_requested]
jobs:
specific_review_requested:
runs-on: ubuntu-latest
if: ${{ github.event.requested_team.name == 'octo-team'}}
steps:
- run: echo 'A review from octo-team was requested'
Executar o fluxo de trabalho de pull_request
com base no branch de cabeçalho ou no branch base de uma pull request
Você pode usar o filtro branches
ou branches-ignore
para configurar seu fluxo de trabalho para que ele seja executado somente em solicitações de pull direcionadas a branches específicos. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Por exemplo, este fluxo de trabalho será executado quando alguém abrir uma solicitação de pull direcionada a um branch cujo nome começa com releases/
:
on:
pull_request:
types:
- opened
branches:
- 'releases/**'
Observação: Se você usar os filtros branches
e paths
, o fluxo de trabalho só será executado quando os dois filtros forem atendidos. Por exemplo, o seguinte fluxo de trabalho só será executado quando uma solicitação de pull que inclui uma alteração em um arquivo JavaScript (.js
) for aberta em um branch cujo nome começa com releases/
:
on:
pull_request:
types:
- opened
branches:
- 'releases/**'
paths:
- '**.js'
Para executar um trabalho com base no nome do branch de cabeçalho da solicitação de pull (em vez do nome do branch base da solicitação de pull), use o contexto github.head_ref
em um condicional. Por exemplo, este fluxo de trabalho será executado sempre que uma solicitação de pull for aberta, mas o trabalho run_if
só será executado se o cabeçalho da solicitação de pull for um branch cujo nome começa com releases/
:
on:
pull_request:
types:
- opened
jobs:
run_if:
if: startsWith(github.head_ref, 'releases/')
runs-on: ubuntu-latest
steps:
- run: echo "The head of this PR starts with 'releases/'"
Executar o fluxo de trabalho de pull_request
com base em arquivos alterados em uma solicitação de pull
Também é possível configurar o fluxo de trabalho para ser executado quando uma pull request alterar arquivos específicos. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Por exemplo, este fluxo de trabalho será executado quando uma solicitação de pull incluir uma alteração em um arquivo JavaScript (.js
):
on:
pull_request:
paths:
- '**.js'
Observação: Se você usar os filtros branches
e paths
, o fluxo de trabalho só será executado quando os dois filtros forem atendidos. Por exemplo, o seguinte fluxo de trabalho só será executado quando uma solicitação de pull que inclui uma alteração em um arquivo JavaScript (.js
) for aberta em um branch cujo nome começa com releases/
:
on:
pull_request:
types:
- opened
branches:
- 'releases/**'
paths:
- '**.js'
Executar o fluxo de trabalho de pull_request
quando ocorrer uma mesclagem de solicitação de pull
Quando uma pull request faz merge, a pull request é automaticamente fechada. Para executar um fluxo de trabalho quando uma pull request é mesclada, use o tipo de evento pull_request
closed
com um condicional que verifica o valor merged
do evento. Por exemplo, o fluxo de trabalho a seguir será executado sempre que uma pull request for fechada. O trabalho if_merged
só será executado se a pull request também tiver sido mesclada.
on:
pull_request:
types:
- closed
jobs:
if_merged:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- run: |
echo The PR was merged
Fluxos de trabalho em repositórios com fork
Por padrão, os fluxos de trabalho não são executados em repositórios com fork. É preciso habilitar o GitHub Actions na guia Actions do repositório com fork.
Com exceção do GITHUB_TOKEN
, os segredos não são transmitidos para o executor quando um fluxo de trabalho é disparado de um repositório com fork. O GITHUB_TOKEN
tem permissões somente leitura em solicitações de pull de repositórios com forks. Para obter mais informações, confira "Autenticação automática de token".
Eventos de pull request para repositórios bifurcados
Para solicitações de pull de um repositório com fork para o repositório base, o GitHub Enterprise Cloud envia os eventos pull_request
, issue_comment
, pull_request_review_comment
, pull_request_review
e pull_request_target
para o repositório base. Nenhum evento de solicitação de pull ocorre no repositório com fork.
Quando um colaborador envia uma solicitação de pull para um repositório público pela primeira vez, um mantenedor com acesso de gravação pode precisar aprovar a execução de fluxos de trabalho na solicitação de pull. Para obter mais informações, confira "Aprovando execuções de fluxo de trabalho das bifurcações públicas".
Para solicitações de pull de um repositório com forks para um repositório privado, os fluxos de trabalho só são executados quando eles são habilitados, confira "Gerenciando as configurações do GitHub Actions para um repositório".
Observação: os fluxos de trabalho disparados pelas solicitações de pull do Dependabot são tratados como se fossem de um repositório com fork, também estando sujeitos a essas restrições.
pull_request_comment
(use issue_comment
)
Para executar o fluxo de trabalho quando um comentário em uma solicitação de pull (não na comparação de uma solicitação de pull) é criado, editado ou excluído, use o evento issue_comment
. Para as atividades relacionadas a revisões de solicitação de pull ou a comentários de revisão de uma solicitação de pull, use os eventos pull_request_review
ou pull_request_review_comment
.
pull_request_review
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
pull_request_review | - submitted - edited - dismissed | Último commit de mesclagem no branch GITHUB_REF | Branch de mesclagem de PR refs/pull/PULL_REQUEST_NUMBER/merge |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Executa o fluxo de trabalho quando uma revisão de pull request é enviada, editada ou ignorada. Uma revisão de pull request é um grupo de comentários de revisão de pull request, além de um comentário e estado de texto. Para as atividades relacionadas a comentários de revisão de uma solicitação de pull ou a comentários de uma solicitação de pull, use os eventos pull_request_review_comment
ou issue_comment
. Para obter informações sobre as APIs de revisão de solicitação de pull, confira "Objetos" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para pull requests."
Por exemplo, você poderá executar um fluxo de trabalho quando uma revisão de solicitação de pull for edited
ou dismissed
.
on:
pull_request_review:
types: [edited, dismissed]
Executando um fluxo de trabalho quando uma pull request é aprovada
Para executar o fluxo de trabalho quando uma solicitação de pull tiver sido aprovada, dispare o fluxo de trabalho com o tipo submitted
de evento pull_request_review
e verifique o estado de revisão com a propriedade github.event.review.state
. Por exemplo, este fluxo de trabalho será executado sempre que uma revisão de solicitação de pull for enviada, mas o trabalho approved
só será executado se a revisão enviada for uma revisão de aprovação:
on:
pull_request_review:
types: [submitted]
jobs:
approved:
if: github.event.review.state == 'approved'
runs-on: ubuntu-latest
steps:
- run: echo "This PR was approved"
Fluxos de trabalho em repositórios com fork
Por padrão, os fluxos de trabalho não são executados em repositórios com fork. É preciso habilitar o GitHub Actions na guia Actions do repositório com fork.
Com exceção do GITHUB_TOKEN
, os segredos não são transmitidos para o executor quando um fluxo de trabalho é disparado de um repositório com fork. O GITHUB_TOKEN
tem permissões somente leitura em solicitações de pull de repositórios com forks. Para obter mais informações, confira "Autenticação automática de token".
Eventos de pull request para repositórios bifurcados
Para solicitações de pull de um repositório com fork para o repositório base, o GitHub Enterprise Cloud envia os eventos pull_request
, issue_comment
, pull_request_review_comment
, pull_request_review
e pull_request_target
para o repositório base. Nenhum evento de solicitação de pull ocorre no repositório com fork.
Quando um colaborador envia uma solicitação de pull para um repositório público pela primeira vez, um mantenedor com acesso de gravação pode precisar aprovar a execução de fluxos de trabalho na solicitação de pull. Para obter mais informações, confira "Aprovando execuções de fluxo de trabalho das bifurcações públicas".
Para solicitações de pull de um repositório com forks para um repositório privado, os fluxos de trabalho só são executados quando eles são habilitados, confira "Gerenciando as configurações do GitHub Actions para um repositório".
Observação: os fluxos de trabalho disparados pelas solicitações de pull do Dependabot são tratados como se fossem de um repositório com fork, também estando sujeitos a essas restrições.
pull_request_review_comment
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
pull_request_review_comment | - created - edited - deleted | Último commit de mesclagem no branch GITHUB_REF | Branch de mesclagem de PR refs/pull/PULL_REQUEST_NUMBER/merge |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Executa o fluxo de trabalho quando um comentário de revisão de pull request é modificado. Um comentário de revisão de pull request é um comentário no diff de uma pull request. Para as atividades relacionadas a revisões de solicitação de pull ou a comentários de uma solicitação de pull, use os eventos pull_request_review
ou issue_comment
. Para obter informações sobre as APIs dos comentários da revisão de solicitação de pull, consulte "Objetos" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para pull requests."
Por exemplo, você poderá executar um fluxo de trabalho quando um comentário de revisão de uma solicitação de pull for created
ou deleted
.
on:
pull_request_review_comment:
types: [created, deleted]
Fluxos de trabalho em repositórios com fork
Por padrão, os fluxos de trabalho não são executados em repositórios com fork. É preciso habilitar o GitHub Actions na guia Actions do repositório com fork.
Com exceção do GITHUB_TOKEN
, os segredos não são transmitidos para o executor quando um fluxo de trabalho é disparado de um repositório com fork. O GITHUB_TOKEN
tem permissões somente leitura em solicitações de pull de repositórios com forks. Para obter mais informações, confira "Autenticação automática de token".
Eventos de pull request para repositórios bifurcados
Para solicitações de pull de um repositório com fork para o repositório base, o GitHub Enterprise Cloud envia os eventos pull_request
, issue_comment
, pull_request_review_comment
, pull_request_review
e pull_request_target
para o repositório base. Nenhum evento de solicitação de pull ocorre no repositório com fork.
Quando um colaborador envia uma solicitação de pull para um repositório público pela primeira vez, um mantenedor com acesso de gravação pode precisar aprovar a execução de fluxos de trabalho na solicitação de pull. Para obter mais informações, confira "Aprovando execuções de fluxo de trabalho das bifurcações públicas".
Para solicitações de pull de um repositório com forks para um repositório privado, os fluxos de trabalho só são executados quando eles são habilitados, confira "Gerenciando as configurações do GitHub Actions para um repositório".
Observação: os fluxos de trabalho disparados pelas solicitações de pull do Dependabot são tratados como se fossem de um repositório com fork, também estando sujeitos a essas restrições.
pull_request_target
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
pull_request | - assigned - unassigned - labeled - unlabeled - opened - edited - closed - reopened - synchronize - converted_to_draft - ready_for_review - locked - unlocked - review_requested - review_request_removed - auto_merge_enabled - auto_merge_disabled | Último commit no branch de base do PR | Branch-base da pull request |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, um fluxo de trabalho só é executado quando o tipo de atividade de um evento pull_request_target
é opened
, synchronize
ou reopened
. Para disparar fluxos de trabalho em diferentes tipos de atividades, use a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Executa o fluxo de trabalho quando ocorre uma atividade em uma pull request no repositório do fluxo de trabalho. Por exemplo, se nenhum tipo de atividade for especificado, o fluxo de trabalho será executado quando uma pull request é aberta ou reaberta, ou quando o branch principal da pull request é atualizado.
Esse evento é executado no contexto da base da pull request, em vez de no contexto do commit de mesclagem, como o evento pull_request
faz. Isso impede a execução de código inseguro do cabeçalho da pull request que poderia alterar seu repositório ou roubar quaisquer segredos que você usa no fluxo de trabalho. Este evento permite que seu fluxo de trabalho faça coisas como etiquetar ou comentar nas pull requests a partir das bifurcações. Evite usar este evento se você precisar criar ou executar o código a partir da pull request.
Para garantir a segurança do repositório, branches com nomes que correspondem a determinados padrões (como aqueles que se parecem com SHAs) podem não disparar fluxos de trabalho com o evento pull_request_target
.
Aviso: para os fluxos de trabalho que são disparados pelo evento pull_request_target
, o GITHUB_TOKEN
recebe a permissão de leitura/gravação no repositório, a menos que a chave permissions
seja especificada e o fluxo de trabalho possa acessar segredos, mesmo quando ela for disparada em um fork. Embora o fluxo de trabalho seja executado no contexto da base da pull request, você deve certificar-se de que você não irá fazer checkout, construir ou executar o código não confiável da pull request com este evento. Além disso, qualquer cache compartilha o mesmo escopo do ramo de base. Para evitar envenenamento do cache, você não deve salvar o cache se houver a possibilidade de que o conteúdo do cache tenha sido alterado. Para obter mais informações, confira "Como manter o GitHub Actions e seus fluxos de trabalho seguros: impedir solicitações pwn" no site do GitHub Security Lab.
Por exemplo, você poderá executar um fluxo de trabalho quando uma solicitação de pull for assigned
, opened
, synchronize
ou reopened
.
on:
pull_request_target:
types: [assigned, opened, synchronize, reopened]
Executar o fluxo de trabalho de pull_request_target
com base no branch de cabeçalho ou no branch base de uma solicitação de pull
Você pode usar o filtro branches
ou branches-ignore
para configurar seu fluxo de trabalho para que ele seja executado somente em solicitações de pull direcionadas a branches específicos. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Por exemplo, este fluxo de trabalho será executado quando alguém abrir uma solicitação de pull direcionada a um branch cujo nome começa com releases/
:
on:
pull_request_target:
types:
- opened
branches:
- 'releases/**'
Observação: Se você usar os filtros branches
e paths
, o fluxo de trabalho só será executado quando os dois filtros forem atendidos. Por exemplo, o seguinte fluxo de trabalho só será executado quando uma solicitação de pull que inclui uma alteração em um arquivo JavaScript (.js
) for aberta em um branch cujo nome começa com releases/
:
on:
pull_request_target:
types:
- opened
branches:
- 'releases/**'
paths:
- '**.js'
Para executar um trabalho com base no nome do branch de cabeçalho da solicitação de pull (em vez do nome do branch base da solicitação de pull), use o contexto github.head_ref
em um condicional. Por exemplo, este fluxo de trabalho será executado sempre que uma solicitação de pull for aberta, mas o trabalho run_if
só será executado se o cabeçalho da solicitação de pull for um branch cujo nome começa com releases/
:
on:
pull_request_target:
types:
- opened
jobs:
run_if:
if: startsWith(github.head_ref, 'releases/')
runs-on: ubuntu-latest
steps:
- run: echo "The head of this PR starts with 'releases/'"
Executar o fluxo de trabalho de pull_request_target
com base em arquivos alterados em uma solicitação de pull
Você pode usar o filtro paths
ou paths-ignore
para configurar o fluxo de trabalho para ser executado quando uma solicitação de pull alterar arquivos específicos. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Por exemplo, este fluxo de trabalho será executado quando uma solicitação de pull incluir uma alteração em um arquivo JavaScript (.js
):
on:
pull_request_target:
paths:
- '**.js'
Observação: Se você usar os filtros branches
e paths
, o fluxo de trabalho só será executado quando os dois filtros forem atendidos. Por exemplo, o seguinte fluxo de trabalho só será executado quando uma solicitação de pull que inclui uma alteração em um arquivo JavaScript (.js
) for aberta em um branch cujo nome começa com releases/
:
on:
pull_request_target:
types:
- opened
branches:
- 'releases/**'
paths:
- '**.js'
Executar o fluxo de trabalho de pull_request_target
quando ocorrer uma mesclagem de solicitação de pull
Quando uma pull request faz merge, a pull request é automaticamente fechada. Para executar um fluxo de trabalho quando uma pull request é mesclada, use o tipo de evento pull_request_target
closed
com um condicional que verifica o valor merged
do evento. Por exemplo, o fluxo de trabalho a seguir será executado sempre que uma pull request for fechada. O trabalho if_merged
só será executado se a pull request também tiver sido mesclada.
on:
pull_request_target:
types:
- closed
jobs:
if_merged:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- run: |
echo The PR was merged
push
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
push | Não aplicável | O commit de ponta foi enviado para a referência. Quando você exclui um branch, o SHA na execução do fluxo de trabalho (e os refs associados) é revertido para o branch padrão do repositório. | ref atualizado |
Observação: a carga do webhook disponível para o GitHub Actions não inclui os atributos added
, removed
e modified
no objeto commit
. Você pode recuperar o objeto de commit completo usando a API. Para obter mais informações, consulte "Objetos" na documentação da API do GraphQL ou Pontos de extremidade da API REST para commits".
Nota: Os eventos não serão criados para tags quando mais de três tags forem transmitidas ao mesmo tempo.
Executa o fluxo de trabalho quando você efetua push em um commit ou tag ou quando cria um repositório a partir de um modelo.
Por exemplo, você poderá executar um fluxo de trabalho quando o evento push
ocorrer.
on:
push
Observação: quando um evento de webhook push
aciona uma execução de fluxo de trabalho, o campo "enviado por" da interface do usuário de ações mostra a conta do pusher e não o autor ou o committer. No entanto, se as alterações forem enviadas para um repositório usando autenticação SSH com uma chave de implantação, o campo "enviado por" será o administrador do repositório que verificou a chave de implantação quando ela foi adicionada a um repositório.
Executando o fluxo de trabalho apenas quando um push para branches específicos ocorre
Você pode usar o filtro branches
ou branches-ignore
para configurar seu fluxo de trabalho para ser executado somente quando branches específicos forem enviados por push. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Por exemplo, este fluxo de trabalho será executado quando alguém efetuar push para main
ou para um branch que começa com releases/
.
on:
push:
branches:
- 'main'
- 'releases/**'
Observação: Se você usar os filtros branches
e paths
, o fluxo de trabalho só será executado quando os dois filtros forem atendidos. Por exemplo, o seguinte fluxo de trabalho só será executado quando um push que inclui uma alteração em um arquivo JavaScript (.js
) for feito em um branch cujo nome começa com releases/
:
on:
push:
branches:
- 'releases/**'
paths:
- '**.js'
Executando o fluxo de trabalho somente quando ocorre um push de tags específicas
Você pode usar o filtro tags
ou tags-ignore
para configurar seu fluxo de trabalho para ser executado somente quando marcas específicas forem enviadas por push. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Por exemplo, este fluxo de trabalho será executado quando alguém efetuar push de uma marca que começa com v1.
.
on:
push:
tags:
- v1.**
Executando seu fluxo de trabalho apenas quando um push afeta arquivos específicos
Você pode usar o filtro paths
ou paths-ignore
para configurar o fluxo de trabalho para ser executado quando ocorrer um push para arquivos específicos. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Por exemplo, este fluxo de trabalho será executado quando alguém efetuar push de uma alteração para um arquivo JavaScript (.js
):
on:
push:
paths:
- '**.js'
Observação: Se você usar os filtros branches
e paths
, o fluxo de trabalho só será executado quando os dois filtros forem atendidos. Por exemplo, o seguinte fluxo de trabalho só será executado quando um push que inclui uma alteração em um arquivo JavaScript (.js
) for feito em um branch cujo nome começa com releases/
:
on:
push:
branches:
- 'releases/**'
paths:
- '**.js'
registry_package
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
registry_package | - published - updated | Commit do pacote publicado | Branch ou tag do pacote publicado |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Observação: ao enviar imagens de contêiner de várias arquiteturas, esse evento ocorre uma vez por manifesto, portanto, você pode observar o fluxo de trabalho disparando várias vezes. Para atenuar isso e executar apenas o trabalho de fluxo de trabalho para o evento que contém as informações reais da marca de imagem, use um condicional:
jobs:
job_name:
if: ${{ github.event.registry_package.package_version.container_metadata.tag.name != '' }}
Executa o fluxo de trabalho quando uma atividade relacionada ao GitHub Packages ocorre no seu repositório. Para obter mais informações, confira "Documentação do GitHub Packages".
Por exemplo, você pode executar um fluxo de trabalho quando uma nova versão do pacote foi published
.
on:
registry_package:
types: [published]
release
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
release | - published - unpublished - created - edited - deleted - prereleased - released | Último commit na versão com tag | Referência de marca da versão refs/tags/<tag_name> |
Observação: Mais de um tipo de atividade aciona este evento. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: os fluxos de trabalho não são disparados para os tipos de atividades created
, edited
ou deleted
em versões de rascunho. Ao criar a sua versão por meio da interface de usuário do navegador de GitHub Enterprise Cloud, a sua versão poderá ser automaticamente salva como rascunho.
Observação: o tipo prereleased
não será disparado em pré-lançamentos publicados das versões de rascunho, mas o tipo published
será disparado. Caso deseje que um fluxo de trabalho seja executado quando as versões estáveis e de pré-lançamento forem publicadas, assine published
em vez de released
e prereleased
.
Executa o fluxo de trabalho quando a atividade de da versão no repositório ocorre. Para obter informações sobre as APIs de lançamento, confira "Objetos" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para lançamentos e ativos de lançamento" na documentação da API REST.
Por exemplo, você poderá executar um fluxo de trabalho quando uma versão for published
.
on:
release:
types: [published]
repository_dispatch
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
repository_dispatch | Personalizado | Último commit no branch padrão | Branch padrão |
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Você pode usar a API do GitHub Enterprise Cloud para disparar um evento de webhook chamado repository_dispatch
quando você deseja disparar um fluxo de trabalho para a atividade que ocorre fora do GitHub Enterprise Cloud. Para obter mais informações, confira "Pontos de extremidade da API REST para repositórios".
Ao fazer uma solicitação para criar um evento repository_dispatch
, você precisa especificar um event_type
para descrever o tipo de atividade. Por padrão, todos os tipos de atividade repository_dispatch
disparam a execução de um fluxo de trabalho. Você pode usar a palavra-chave types
para limitar o fluxo de trabalho a ser executado quando um valor event_type
específico é enviado na carga do webhook repository_dispatch
.
on:
repository_dispatch:
types: [test_result]
Observação: o valor event_type
é limitado a 100 caracteres.
Todos os dados enviados por meio do parâmetro client_payload
ficarão disponíveis no contexto github.event
no seu fluxo de trabalho. Por exemplo, se você enviar esse texto de solicitação quando criar um evento de despacho de repositório:
{
"event_type": "test_result",
"client_payload": {
"passed": false,
"message": "Error: timeout"
}
}
então você poderá acessar a carga em um fluxo de trabalho assim:
on:
repository_dispatch:
types: [test_result]
jobs:
run_if_failure:
if: ${{ !github.event.client_payload.passed }}
runs-on: ubuntu-latest
steps:
- env:
MESSAGE: ${{ github.event.client_payload.message }}
run: echo $MESSAGE
Observações:
- O número máximo de propriedades de nível superior em
client_payload
é 10. - O payload pode conter no máximo 65.535 caracteres.
schedule
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
Não aplicável | Não aplicável | Último commit no branch padrão | Branch padrão |
Observações:
-
O evento
schedule
pode ser atrasado durante períodos de cargas altas de execuções de fluxo de trabalho do GitHub Actions. Os tempos de carregamento altos incluem o início de cada hora. Se a carga for suficientemente alta o suficiente, alguns trabalhos enfileirados talvez sejam descartados. Para diminuir a probabilidade de atraso, agende o fluxo de trabalho para ser executado em uma parte diferente da hora. -
Este evento irá disparar uma execução de fluxo de trabalho somente se o arquivo de fluxo de trabalho estiver no branch padrão.
-
Os fluxos de trabalho agendados só serão executados no branch padrão.
-
Em um repositório público, os fluxos de trabalho agendados são automaticamente desabilitados quando nenhuma atividade do repositório ocorreu em 60 dias. Para obter informações sobre como reabilitar fluxos de trabalho desabilitados, confira "Desabilitar e habilitar um fluxo de trabalho".
-
Quando o último usuário a fazer commit de um fluxo de trabalho na agenda cron é removido da organização, o fluxo de trabalho agendado é desabilitado. Se um usuário com permissões de
write
no repositório fizer um commit que altere a agenda cron, o fluxo de trabalho agendado será reativado. Observe que, nessa situação, o fluxo de trabalho não é reativado por nenhuma alteração no arquivo de fluxo de trabalho; você deve alterar o valor decron
e confirmar essa alteração.Exemplo:
on: schedule: - cron: "15 4,5 * * *" # <=== Change this value
O evento schedule
permite disparar um fluxo de trabalho em um horário agendado.
Você pode agendar um fluxo de trabalho para ser executado em horários UTC específicos usando a sintaxe cron POSIX. Fluxos de trabalho agendados executados no último commit no branch padrão ou branch de base. O intervalo mais curto que você pode executar fluxos de trabalho agendados é a cada 5 minutos.
Este exemplo aciona o fluxo de trabalho todos os dias às 17:30 e 17:30 UTC:
on:
schedule:
# * is a special character in YAML so you have to quote this string
- cron: '30 5,17 * * *'
Um fluxo de trabalho individual pode ser disparado por vários eventos schedule
. Você pode acessar o evento de agendamento que disparou o fluxo de trabalho por meio do contexto github.event.schedule
. Este exemplo dispara o fluxo de trabalho a ser executado às 5h30 UTC todas as segundas e quintas, mas ignora a etapa Not on Monday or Wednesday
às segundas e quartas.
on:
schedule:
- cron: '30 5 * * 1,3'
- cron: '30 5 * * 2,4'
jobs:
test_schedule:
runs-on: ubuntu-latest
steps:
- name: Not on Monday or Wednesday
if: github.event.schedule != '30 5 * * 1,3'
run: echo "This step will be skipped on Monday and Wednesday"
- name: Every time
run: echo "This step will always run"
A sintaxe cron tem cinco campos separados por um espaço, e cada campo representa uma unidade de tempo.
┌───────────── minute (0 - 59)
│ ┌───────────── hour (0 - 23)
│ │ ┌───────────── day of the month (1 - 31)
│ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
│ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
│ │ │ │ │
│ │ │ │ │
│ │ │ │ │
* * * * *
Você pode usar estes operadores em qualquer um dos cinco campos:
Operador | Descrição | Exemplo |
---|---|---|
* | Qualquer valor | 15 * * * * é executado a cada quarto de hora todos os dias. |
, | Separador de lista de valor | 2,10 4,5 * * * é executado nos minutos 2 e 10 da quarta e da quinta hora todos os dias. |
- | Intervalo de valores | 30 4-6 * * * é executado a cada meia hora da quarta, da quinta e da sexta hora. |
/ | Valores de etapa | 20/15 * * * * é executado a cada 15 minutos, começando do minuto 20 ao 59 (minutos 20, 35 e 50). |
Observação: O GitHub Actions não dá suporte à sintaxe não padrão @yearly
, @monthly
, @weekly
, @daily
, @hourly
e @reboot
.
Você pode usar o crontab guru para ajudar a gerar a sintaxe cron e confirmar a hora em que ela será executada. Para ajudar você a começar, há também uma lista de exemplos do crontab guru.
As notificações de fluxos de trabalho agendados são enviadas ao usuário que modificou a sintaxe cron no arquivo do fluxo de trabalho. Para obter mais informações, confira "Notificações para execução de fluxo de trabalho".
status
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
status | Não aplicável | Último commit no branch padrão | Não aplicável |
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando o status do commit de Git é alterado. Por exemplo, os commits podem ser marcados como error
, failure
, pending
ou success
. Caso deseje fornecer mais detalhes sobre a alteração de status, o ideal é usar o evento check_run
. Para obter informações sobre as APIs de status do commit, consulte "Objetos" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para commits".
Por exemplo, você poderá executar um fluxo de trabalho quando o evento status
ocorrer.
on:
status
Caso deseje executar um trabalho no seu fluxo de trabalho com base no novo estado de commit, use o contexto github.event.state
. Por exemplo, o fluxo de trabalho a seguir é disparado quando um status de commit é alterado, mas o trabalho if_error_or_failure
só é executado se o novo estado de commit é error
ou failure
.
on:
status
jobs:
if_error_or_failure:
runs-on: ubuntu-latest
if: >-
github.event.state == 'error' ||
github.event.state == 'failure'
steps:
- env:
DESCRIPTION: ${{ github.event.description }}
run: |
echo The status is error or failed: $DESCRIPTION
watch
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
watch | - started | Último commit no branch padrão | Branch padrão |
Observação: Mais de um tipo de atividade aciona este evento. Embora apenas o tipo de atividade started
tenha suporte, a especificação do tipo de atividade manterá seu fluxo de trabalho específico se mais tipos de atividade forem adicionados posteriormente. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Executa o fluxo de trabalho quando o repositório do fluxo de trabalho é favoritado. Para obter informações sobre as APIs de solicitação de pull, confira "Mutações" na documentação da API do GraphQL ou "Pontos de extremidade da API REST para estrela."
Por exemplo, você poderá executar um fluxo de trabalho quando alguém adiciona um repositório aos favoritos, que é o tipo de atividade started
para um evento de inspeção.
on:
watch:
types: [started]
workflow_call
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
Igual ao fluxo de trabalho de chamadas | Não aplicável | Igual ao fluxo de trabalho de chamadas | Igual ao fluxo de trabalho de chamadas |
workflow_call
é usado para indicar que um fluxo de trabalho pode ser chamado por outro fluxo de trabalho. Quando um fluxo de trabalho é disparado com o evento workflow_call
, a carga do evento no fluxo de trabalho chamado é a mesma carga do evento do fluxo de trabalho de chamada. Para obter mais informações, confira "Reutilizar fluxos de trabalho".
O exemplo abaixo só executa o fluxo de trabalho quando é chamado a partir de outro fluxo de trabalho:
on: workflow_call
workflow_dispatch
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
workflow_dispatch | Não aplicável | Último commit no branch GITHUB_REF ou na marcação | Branch ou marcação que recebeu expedição |
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Para permitir que um fluxo de trabalho seja disparado manualmente, configure o evento workflow_dispatch
. Você pode acionar manualmente uma execução de fluxo de trabalho usando a API do GitHub Enterprise Cloud, GitHub CLI ou a interface do nevegador de GitHub Enterprise Cloud. Para obter mais informações, confira "Executar um fluxo de trabalho manualmente".
on: workflow_dispatch
Fornecendo entradas
É possível configurar as propriedades de entrada definidas por personalização, os valores-padrão de entrada e as entradas obrigatórias para o evento diretamente no seu fluxo de trabalho. Ao disparar o evento, você pode fornecer a ref
e qualquer inputs
. Quando o fluxo de trabalho é executado, você pode acessar os valores de entrada no contexto inputs
. Para obter mais informações, confira "Acessar informações contextuais sobre execuções de fluxo de trabalho".
Observações:
- O fluxo de trabalho também receberá as entradas no contexto de
github.event.inputs
. As informações no contextoinputs
e no contextogithub.event.inputs
são idênticas, exceto que o contextoinputs
preserva valores boolianos como boolianos em vez de convertê-los em cadeias de caracteres. O tipochoice
é resolvido para uma cadeia de caracteres e é uma única opção selecionável. - O número máximo de propriedades de nível superior para
inputs
é 10. - O conteúdo máximo para
inputs
é de 65.535 caracteres.
Esse exemplo define entradas chamadas logLevel
, tags
e environment
. Você passa os valores destas entradas para o fluxo de trabalho quando o executa. Em seguida, esse fluxo de trabalho imprime os valores no log usando as propriedades do contexto inputs.logLevel
, inputs.tags
e inputs.environment
.
on:
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
type: choice
options:
- info
- warning
- debug
tags:
description: 'Test scenario tags'
required: false
type: boolean
environment:
description: 'Environment to run tests against'
type: environment
required: true
jobs:
log-the-inputs:
runs-on: ubuntu-latest
steps:
- run: |
echo "Log level: $LEVEL"
echo "Tags: $TAGS"
echo "Environment: $ENVIRONMENT"
env:
LEVEL: ${{ inputs.logLevel }}
TAGS: ${{ inputs.tags }}
ENVIRONMENT: ${{ inputs.environment }}
Se você executar este fluxo de trabalho em um navegador, você deverá inserir valores para as entradas necessárias manualmente antes de o fluxo de trabalho ser executado.
Você também pode passar entradas quando executar um fluxo de trabalho a partir de um script ou usando GitHub CLI. Por exemplo:
gh workflow run run-tests.yml -f logLevel=warning -f tags=false -f environment=staging
Para saber mais, confira as informações sobre o GitHub CLI em "Executar um fluxo de trabalho manualmente."
workflow_run
Carga de evento webhook | Tipos de atividade | GITHUB_SHA | GITHUB_REF |
---|---|---|---|
workflow_run | - completed - requested - in_progress | Último commit no branch padrão | Branch padrão |
Observação: Mais de um tipo de atividade aciona este evento. O tipo de atividade requested
não ocorre quando um fluxo de trabalho é executado novamente. Para obter informações sobre cada tipo de atividade, confira "Eventos e cargas de webhook". Por padrão, todos os tipos de atividade disparam fluxos de trabalho que são executados nesse evento. Você pode limitar suas execuções de fluxo de trabalho a tipos de atividades específicos usando a palavra-chave types
. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions".
Observação: esse evento vai disparar apenas um fluxo de trabalho executado se o arquivo de fluxo de trabalho estiver no branch padrão.
Observação: não é possível usar a workflow_run
para encadear mais de três níveis de fluxos de trabalho. Por exemplo, se você tentar disparar cinco fluxos de trabalho (chamados de B
para F
) para serem executados sequencialmente após a execução de um fluxo de trabalho A
inicial (ou seja: A
→ B
→ C
→ D
→ E
→F
), os fluxos de trabalho E
e F
não serão executados.
Este evento ocorre quando uma execução do fluxo de trabalho é solicitada ou concluída. Ele permite que você execute um fluxo de trabalho baseado na execução ou conclusão de outro fluxo de trabalho. O fluxo de trabalho iniciado pelo evento workflow_run
pode acessar segredos e gravar tokens, mesmo que o fluxo de trabalho anterior não tenha essa permissão. Isso é útil em casos em que o fluxo de trabalho anterior não é intencionalmente privilegiado, mas você precisa tomar uma ação privilegiada em um fluxo de trabalho posterior.
Neste exemplo, um fluxo de trabalho está configurado para ser executado após o fluxo de trabalho "Executar Testes" separado ser concluído.
on:
workflow_run:
workflows: [Run Tests]
types:
- completed
Se você especificar vários workflows
para o evento workflow_run
, apenas um dos fluxos de trabalho precisará ser executado. Por exemplo, um fluxo de trabalho com o seguinte gatilho será executado sempre que o fluxo de trabalho "Staging" ou "Lab" forem concluídos.
on:
workflow_run:
workflows: [Staging, Lab]
types:
- completed
Executando um fluxo de trabalho com base na conclusão de outro fluxo de trabalho
A execução de um fluxo de trabalho é acionada independentemente da conclusão do fluxo de trabalho anterior. Caso deseje executar um trabalho ou uma etapa com base no resultado do fluxo de trabalho disparado, use uma condição com a propriedade github.event.workflow_run.conclusion
. Por exemplo, este fluxo de trabalho será executado sempre que um fluxo de trabalho chamado "Build" for concluído, mas o trabalho on-success
só será executado se o fluxo de trabalho "Build" for bem-sucedido, e o trabalho on-failure
só será executado se o fluxo de trabalho "Build" falhar:
on:
workflow_run:
workflows: [Build]
types: [completed]
jobs:
on-success:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- run: echo 'The triggering workflow passed'
on-failure:
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'failure' }}
steps:
- run: echo 'The triggering workflow failed'
Limitando seu fluxo de trabalho para ser executado com base em branches
Você pode usar o filtro branches
ou branches-ignore
para especificar os branches em que o fluxo de trabalho de gatilho precisa ser executado para disparar o fluxo de trabalho. Para obter mais informações, confira "Sintaxe de fluxo de trabalho para o GitHub Actions". Por exemplo, um fluxo de trabalho com o gatilho a seguir só será executado quando o fluxo de trabalho chamado Build
for executado em um branch chamado canary
.
on:
workflow_run:
workflows: [Build]
types: [requested]
branches: [canary]
Usando dados do fluxo de trabalho acionador
Você pode acessar a carga do evento workflow_run
que corresponde ao fluxo de trabalho que disparou seu fluxo de trabalho. Por exemplo, se o fluxo de trabalho de disparo gerar artefatos, um fluxo de trabalho disparado com o evento workflow_run
poderá acessar esses artefatos.
O seguinte fluxo de trabalho faz o upload de dados como um artefato. (Neste exemplo simplificado, os dados são o número da pull request.)
name: Upload data
on:
pull_request:
jobs:
upload:
runs-on: ubuntu-latest
steps:
- name: Save PR number
env:
PR_NUMBER: ${{ github.event.number }}
run: |
mkdir -p ./pr
echo $PR_NUMBER > ./pr/pr_number
- uses: actions/upload-artifact@v4
with:
name: pr_number
path: pr/
Quando uma execução do fluxo de trabalho acima é concluída, ela aciona a execução de um fluxo de trabalho seguinte. O fluxo de trabalho a seguir usa o contexto github.event.workflow_run
e a API REST do GitHub Enterprise Cloud para baixar o artefato que foi carregado pelo fluxo de trabalho acima, descompacta o zip do artefato baixado e adiciona comentários à solicitação de pull cujo número foi carregado como um artefato.
name: Use the data
on:
workflow_run:
workflows: [Upload data]
types:
- completed
jobs:
download:
runs-on: ubuntu-latest
steps:
- name: 'Download artifact'
uses: actions/github-script@v6
with:
script: |
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
owner: context.repo.owner,
repo: context.repo.repo,
run_id: context.payload.workflow_run.id,
});
let matchArtifact = allArtifacts.data.artifacts.filter((artifact) => {
return artifact.name == "pr_number"
})[0];
let download = await github.rest.actions.downloadArtifact({
owner: context.repo.owner,
repo: context.repo.repo,
artifact_id: matchArtifact.id,
archive_format: 'zip',
});
let fs = require('fs');
fs.writeFileSync(`${process.env.GITHUB_WORKSPACE}/pr_number.zip`, Buffer.from(download.data));
- name: 'Unzip artifact'
run: unzip pr_number.zip
- name: 'Comment on PR'
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
let fs = require('fs');
let issue_number = Number(fs.readFileSync('./pr_number'));
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: issue_number,
body: 'Thank you for the PR!'
});