Dependabot validation
Revisa (read-only) os PRs do Dependabot e os alertas de segurança de um repositório GitHub, classifica cada atualização por risco aplicando guardrails de versão configuráveis (ex.: travar o Spring Boot em 3.x), cruza PRs com alertas de segurança e entrega um relatório priorizado de o que pode subir com segurança e o que precisa de revisão ou deve ser segurado. Use quando precisar verificar as dependências de um repositório. Informe o repositório como owner/repo.From its SKILL.md
npx -y skills add flaviomilan/skills --skill dependabot-validationAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.4 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
Dependabot Validation
Poupa o trabalho manual de auditar dependências: junta os PRs abertos do Dependabot, o status de CI de cada um, os alertas de segurança do repositório, e aplica regras de "até onde pode atualizar" para te dizer, por PR, o que subir, o que revisar e o que segurar. É somente leitura — nunca faz merge, approve, comentário ou label.
Pré-requisitos
gh(GitHub CLI) autenticado (gh auth status) ejqinstalados.- Acesso de leitura ao repositório. Os alertas de segurança exigem permissão extra (admin/security); sem ela, a skill segue só com os PRs e avisa.
Como usar
-
Descobrir o repositório. Use o
owner/repoque o usuário informar. Se não vier nenhum e você estiver dentro de um repo git, descubra comgh repo view --json nameWithOwner -q .nameWithOwner. Em caso de dúvida, pergunte — não invente. -
Coletar os dados (read-only):
bash "$SKILL_DIR/scripts/fetch.sh" <owner/repo>(
$SKILL_DIR= a pasta desta skill.) Isso imprime um JSON compull_requests[](cada um comecosystem,dependency,from_version,to_version,grouped,ci,labels,body_excerpt) esecurity_alerts[](comseverity,package,ecosystem,vulnerable_range,patched). Sesecurity_alerts_errornão for nulo, mencione isso no relatório. -
Ler os guardrails em
constraints.yml(mesma pasta da skill) com a ferramenta Read. Cada regra temecosystem,match,max_major,reason. -
Classificar cada PR (regras abaixo) e cruzar com os alertas.
-
Emitir o relatório no formato abaixo. Sem ações de escrita.
Como classificar cada PR
Determine o tipo de salto comparando from_version → to_version:
muda o major = major; muda o minor = minor; senão = patch.
(Para PRs com grouped: true, não há um único par de versões — use o
body_excerpt para listar os pacotes do grupo e trate como revisar.)
Aplique os guardrails: para cada regra de constraints.yml cujo
ecosystem bate com o do PR e cujo match é substring (case-insensitive) de
dependency, se o major de to_version > max_major, o PR é ⛔ HOLD
(cite a reason da regra).
Buckets, em ordem de prioridade:
- 🔴 Corrige alerta de segurança — o
package/ecosystemdo PR casa com algumsecurity_alerts[]aberto e oto_version≥patched. Prioridade máxima. (Se também cruzar um guardrail, sinalize o conflito explicitamente: "corrige falha MAS cruzaria o teto — avaliar backport/exceção".) - ⛔ Hold (guardrail) — cruza um teto de versão. Não subir; explicar o porquê.
- 🟡 Revisar — major bump (sem guardrail), OU
ci= FAILURE, OUgrouped, OUci= PENDING/NONE. Explique o motivo (build vermelho? salto grande?). - 🟢 Seguro para subir — patch/minor,
ci= SUCCESS, sem guardrail e sem alerta pendente.
Mostre sempre, por PR: número (link), ecossistema, dependência,
from → to com o tipo de salto, estado do CI e o motivo da classificação.
Formato do relatório
## Dependabot — <owner/repo> · <data>
PRs abertos: <N> · Alertas de segurança abertos: <M>
<se houver security_alerts_error: linha de aviso sobre alertas indisponíveis>
### 🔴 Corrigem alertas de segurança (subir primeiro)
- #<n> <eco>: <dep> <from> → <to> (<salto>) · CI <✅/❌/⏳> · <severidade> — <recomendação>
### ⛔ Hold — guardrail
- #<n> <eco>: <dep> <from> → <to> (major) — BLOQUEADO: <reason do constraints.yml>
### 🟡 Revisar
- #<n> <eco>: <dep> <from> → <to> (<salto>) · CI <...> — <motivo: build vermelho / major / grupo>
### 🟢 Seguro para subir
- #<n> <eco>: <dep> <from> → <to> (<salto>) · CI ✅
### ⚠️ Alertas de segurança sem PR correspondente
- <severidade> <package> (<eco>) — vulnerável <vulnerable_range>, corrigido em <patched> — <url>
---
**Resumo:** <X seguros, Y a revisar, Z em hold, W alertas sem correção>. Próximo passo sugerido: <ex.: subir os 🟢 e o 🔴, fechar o PR de Spring 4, investigar o CI do #18>.
Omita seções vazias. Seja direto: o objetivo é o usuário bater o olho e saber o que fazer.
Notas e limitações
- Read-only por design. Nunca rode
gh pr merge/review/comment, nemgh pr edit/label. Se o usuário quiser agir, ele decide e executa. - O ecossistema vem do branch do Dependabot (
dependabot/maven/...,dependabot/npm_and_yarn/...). Ecossistemas fora de Maven/npm aparecem comounknownmas ainda são listados. - A correspondência PR↔alerta é por nome de pacote; pode haver pequenas diferenças de nomenclatura entre ecossistemas — na dúvida, sinalize em vez de afirmar com certeza.
- Para checar risco de quebra além da versão, vale ler o
body_excerpt(o Dependabot inclui release notes e um "compatibility score").
What ships with it: 2 files
5.6 KB alongside SKILL.md, 1 of them executable
scripts/
- fetch.shruns4.3 KB
- constraints.yml1.3 KB