Contexto
Atualmente, o repositório não possui uma automação para lidar com PRs inativos. Isso pode causar acúmulo de contribuições abandonadas, dificultando o gerenciamento do projeto e a priorização de mudanças importantes.
Para resolver isso, será utilizada a ação Stale do GitHub Actions documentação oficial com as configurações padrão:
- Adiciona um rótulo "Stale" em PRs após 60 dias de inatividade e adiciona um comentário.
- Fecha automaticamente PRs após 7 dias de inatividade adicional (após a adição do rótulo).
- Remove o rótulo "Stale" caso haja qualquer atualização (comentários ou commits), reiniciando o cronômetro.
Motivação
Automatizar o gerenciamento de PRs inativos ajuda a:
- Manter o repositório organizado.
- Melhorar a comunicação com contribuidores, destacando os PRs ativos e inativos.
- Reduzir o esforço manual dos mantenedores ao fechar PRs abandonados automaticamente.
Solução Proposta
Configuração
- Criar um arquivo no diretório
.github/workflows chamado stale.yml.
- Adicionar algo como o seguinte conteúdo (não o testei para ver se funciona de fato. Serve mais para dar uma direção. Fique à vontade para adaptar como preferir):
name: 'Mark stale pull requests'
on:
schedule:
- cron: '0 0 * * *' # runs daily
permissions:
pull-requests: write
jobs:
stale:
runs-on: ubuntu-latest
steps:
- uses: actions/stale@v9
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
stale-pr-message: >
[PT-BR] Este PR está inativo há muito tempo. Caso não seja atualizado, será fechado em 7 dias.
[EN] This PR has been inactive for a long time. If no updates are made, it will be closed in 7 days.
days-before-stale: 60
days-before-close: 7
stale-label: 'Stale'
remove-stale-when-updated: true
close-pr-message: >
[PT-BR] Este PR foi fechado devido à inatividade. Caso ainda seja relevante, por favor, reabra ou crie um novo PR.
[EN] This PR has been closed due to inactivity. If it is still relevant, please reopen or create a new PR.
Como Testar
Testar em um branch separado
- Crie um branch de teste no repositório e adicione o arquivo
stale.yml.
- Para testar sem esperar os dias configurados, altere os valores
days-before-stale e days-before-close para valores menores (por exemplo, 1 e 1):
days-before-stale: 1
days-before-close: 1
- Certifique-se de criar ou identificar um PR que possa ser usado para o teste.
- Aguarde o período configurado para verificar se o workflow está funcionando como esperado.
- Lembre-se de restaurar os valores corretos (
60 e 7) antes de abrir o PR para a branch principal.
Testar manualmente com workflow_dispatch
- No arquivo
.yml, adicione o evento de disparo manual:
- Execute manualmente o workflow através da interface do GitHub Actions. Consulte a documentação do GitHub sobre
workflow_dispatch para instruções detalhadas.
- Observe os logs e os resultados para garantir que a ação está funcionando como esperado.
Links úteis
Contexto
Atualmente, o repositório não possui uma automação para lidar com PRs inativos. Isso pode causar acúmulo de contribuições abandonadas, dificultando o gerenciamento do projeto e a priorização de mudanças importantes.
Para resolver isso, será utilizada a ação Stale do GitHub Actions documentação oficial com as configurações padrão:
Motivação
Automatizar o gerenciamento de PRs inativos ajuda a:
Solução Proposta
Configuração
.github/workflowschamadostale.yml.Como Testar
Testar em um branch separado
stale.yml.days-before-staleedays-before-closepara valores menores (por exemplo,1e1):60e7) antes de abrir o PR para a branch principal.Testar manualmente com
workflow_dispatch.yml, adicione o evento de disparo manual:workflow_dispatchpara instruções detalhadas.Links úteis