Note
No momento, não há suporte para executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.
Introdução
Este tutorial demonstra como usar a ação actions/stale
para adicionar um comentário aos problemas inativos por determinado período e fechá-los. Por exemplo, você pode comentar se um problema está inativo por 30 dias para incentivar os participantes a agir. Em seguida, se nenhuma atividade adicional ocorrer após 14 dias, você poderá fechar o problema.
No tutorial, primeiro, você criará um arquivo de fluxo de trabalho que usa a ação actions/stale
. Então, você personalizará o fluxo de trabalho para atender às suas necessidades.
Criar o fluxo de trabalho
-
Escolha um repositório onde você deseja aplicar este fluxo de trabalho de gerenciamento de projetos. Você pode usar um repositório existente ao qual você tem acesso de gravação ou criar um novo repositório. Para obter mais informações sobre como criar um repositório, confira "Criar um repositório".
-
No repositório, crie um arquivo chamado
.github/workflows/YOUR_WORKFLOW.yml
, substituindoYOUR_WORKFLOW
por um nome de sua escolha. Este é um arquivo do fluxo de trabaho. Para obter mais informações sobre como criar arquivos no GitHub, confira "Criar arquivos". -
Copie o seguinte conteúdo YAML para o arquivo do fluxo de trabalho.
YAML name: Close inactive issues on: schedule: - cron: "30 1 * * *" jobs: close-issues: runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/stale@v5 with: days-before-issue-stale: 30 days-before-issue-close: 14 stale-issue-label: "stale" stale-issue-message: "This issue is stale because it has been open for 30 days with no activity." close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." days-before-pr-stale: -1 days-before-pr-close: -1 repo-token: ${{ secrets.GITHUB_TOKEN }}
name: Close inactive issues on: schedule: - cron: "30 1 * * *" jobs: close-issues: runs-on: ubuntu-latest permissions: issues: write pull-requests: write steps: - uses: actions/stale@v5 with: days-before-issue-stale: 30 days-before-issue-close: 14 stale-issue-label: "stale" stale-issue-message: "This issue is stale because it has been open for 30 days with no activity." close-issue-message: "This issue was closed because it has been inactive for 14 days since being marked as stale." days-before-pr-stale: -1 days-before-pr-close: -1 repo-token: ${{ secrets.GITHUB_TOKEN }}
-
Personalize os parâmetros no seu arquivo do fluxo de trabalho:
- Altere o valor de
on.schedule
para determinar quando deseja executar esse fluxo de trabalho. No exemplo acima, o fluxo de trabalho será executado todos os dias à 1:30 UTC. Para saber mais sobre fluxos de trabalho agendados, confira Eventos que disparam fluxos de trabalho. - Altere o valor de
days-before-issue-stale
para o número de dias sem atividade antes que a açãoactions/stale
rotule um problema. Se você nunca quiser que essa ação rotule problemas, defina esse valor como-1
. - Altere o valor de
days-before-issue-close
para o número de dias sem atividade antes que a açãoactions/stale
feche um problema. Se você nunca quiser que essa ação feche problemas, defina esse valor como-1
. - Altere o valor de
stale-issue-label
para o rótulo que deseja aplicar aos problemas inativos durante o tempo especificado pordays-before-issue-stale
. - Altere o valor de
stale-issue-message
para o comentário que deseja adicionar aos problemas rotulados pela açãoactions/stale
. - Altere o valor de
close-issue-message
para o comentário que deseja adicionar aos problemas fechados pela açãoactions/stale
.
- Altere o valor de
-
Faça o commit do arquivo de fluxo de trabalho para o branch padrão do seu repositório. Para obter mais informações, confira "Criar arquivos".
Resultados esperados
Com base no parâmetro schedule
(por exemplo, todos os dias à 1h30 UTC), o fluxo de trabalho encontrará os problemas inativos durante o período de tempo especificado e adicionará o comentário e o rótulo especificados. Além disso, o seu fluxo de trabalho fechará quaisquer problemas etiquetados anteriormente se nenhuma atividade adicional tiver ocorrido pelo período de tempo especificado.
Note
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.
Você pode visualizar o histórico de execução do fluxo de trabalho para ver a execução deste fluxo de trabalho periodicamente. Para saber mais, confira Visualizar o histórico de execução do fluxo de trabalho.
Este fluxo de trabalho só irá etiquetar e/ou fechar 30 problemas de cada vez para evitar exceder um limite de taxa. Você pode definir isso com a configuração operations-per-run
. Para obter mais informações, confira a documentação da ação actions/stale
.
Próximas etapas
- Para descobrir outras coisas que você pode fazer com a ação
actions/stale
, como fechar solicitações de pull inativas, ignorar problemas com determinados rótulos ou marcos ou verificar apenas problemas com determinados rótulos, confira a documentação da açãoactions/stale
. - Pesquise o GitHub para ver exemplos de fluxos de trabalho que usam essa ação.