Dependabot validation
🧩 my AI agent skills — write once in SKILL.md, synced to Claude Code, Cursor & Copilot
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.
What its author says it does
Copied from the file, not written here
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.
SKILL.md
5.4 KB, 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").