Atualizador de GitHub Actions
Mantenha arquivos .github/workflows/*.yml e .github/workflows/*.yaml atualizados, escaneando ações, resolvendo as versões mais recentes e sugerindo upgrades.
Início rápido
Quando o usuário perguntar algo como:
"Atualizar minhas GitHub Actions" "Quais ações estão desatualizadas?" "Atualizar ações nos meus workflows"
Siga o workflow abaixo e retorne um relatório em Markdown com sugestões em estilo diff.
Workflow
-
Escanear workflows
- Encontre todos os arquivos
.github/workflows/*.ymle.github/workflows/*.yaml. - Se nenhum existir, informe o usuário e pare.
- Encontre todos os arquivos
-
Extrair referências
uses:- Analise cada workflow em busca de linhas
uses:. - Pule:
- Caminhos locais:
./... - Referências Docker:
docker://... - Commits SHA completos: qualquer coisa que pareça um SHA hex de 40 caracteres
- Caminhos locais:
- Registre:
action,current_version,workflow_file,line_number.
- Analise cada workflow em busca de linhas
-
Resolver versão mais recente
- Separe cada ação em
owner/repo. - Tente ferramentas nesta ordem:
gh api repos/{owner}/{repo}/tags --jq '.[].name'seghestiver disponível.fetchemhttps://api.github.com/repos/{owner}/{repo}/tags.- Brave Search / Google Search MCP para
"{owner}/{repo} latest release tag".
- Filtre tags para semver válido.
- Prefira tags major (
v5) sobre semver completo (v5.3.1) por padrão. - Se nenhuma tag major existir, use a tag semver mais alta.
- Separe cada ação em
-
Detectar mudanças de quebra (breaking changes)
- Se a versão mais recente for uma major maior que a versão atual, marque como mudança de quebra.
- Verifique no registro embutido abaixo por avisos conhecidos.
-
Gerar relatório de sugestões
- Produza um relatório em Markdown com:
- Tabela de resumo: action | current | latest | breaking? | file
- Blocos de diff por ação
- Avisos de mudanças de quebra com
⚠
- Não edite arquivos de workflow a menos que o usuário peça explicitamente.
- Produza um relatório em Markdown com:
Registro de mudanças de quebra
- action: actions/checkout
from_major: 3
to_major: 4
warning: "Runtime Node atualizado de 16 para 20. Verifique runners personalizados e configuração self-hosted."
- action: actions/setup-node
from_major: 3
to_major: 4
warning: "Runtime Node 16 obsoleto; Node 20 agora é usado."
- action: actions/setup-go
from_major: 4
to_major: 5
warning: "Runtime Node 20. Verifique chaves de cache personalizadas ou efeitos colaterais."
Modelo de saída
## Relatório de atualização do GitHub Actions
| Action | Atual | Mais recente | Quebra? | Arquivo |
|--------|-------|-------------|---------|---------|
| actions/checkout | v3 | v4 | ⚠ sim | .github/workflows/ci.yml |
### Mudanças sugeridas
`.github/workflows/ci.yml`:
```diff
- uses: actions/checkout@v3
+ uses: actions/checkout@v4
Avisos de mudanças de quebra
- actions/checkout@v3 → v4: Runtime Node atualizado de 16 para 20. Verifique runners personalizados e configuração self-hosted.
## Regras
- Nunca grave arquivos de workflow silenciosamente.
- Sempre mostre uma visualização em estilo diff antes de qualquer edição.
- Se os limites de taxa da API do GitHub forem atingidos, recorra a MCPs de busca ou orientação manual.
- Se uma ação não tiver tags semver, indique como "não foi possível determinar a versão mais recente".