agentsclimarketplace

Dependabot validation

Skill flaviomilan/skills/skills/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

Install
npx -y skills add flaviomilan/skills --skill dependabot-validation

Assembled 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) e jq instalados.
  • 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

  1. Descobrir o repositório. Use o owner/repo que o usuário informar. Se não vier nenhum e você estiver dentro de um repo git, descubra com gh repo view --json nameWithOwner -q .nameWithOwner. Em caso de dúvida, pergunte — não invente.

  2. Coletar os dados (read-only):

    bash "$SKILL_DIR/scripts/fetch.sh" <owner/repo>
    

    ($SKILL_DIR = a pasta desta skill.) Isso imprime um JSON com pull_requests[] (cada um com ecosystem, dependency, from_version, to_version, grouped, ci, labels, body_excerpt) e security_alerts[] (com severity, package, ecosystem, vulnerable_range, patched). Se security_alerts_error não for nulo, mencione isso no relatório.

  3. Ler os guardrails em constraints.yml (mesma pasta da skill) com a ferramenta Read. Cada regra tem ecosystem, match, max_major, reason.

  4. Classificar cada PR (regras abaixo) e cruzar com os alertas.

  5. Emitir o relatório no formato abaixo. Sem ações de escrita.

Como classificar cada PR

Determine o tipo de salto comparando from_versionto_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:

  1. 🔴 Corrige alerta de segurança — o package/ecosystem do PR casa com algum security_alerts[] aberto e o to_versionpatched. Prioridade máxima. (Se também cruzar um guardrail, sinalize o conflito explicitamente: "corrige falha MAS cruzaria o teto — avaliar backport/exceção".)
  2. ⛔ Hold (guardrail) — cruza um teto de versão. Não subir; explicar o porquê.
  3. 🟡 Revisar — major bump (sem guardrail), OU ci = FAILURE, OU grouped, OU ci = PENDING/NONE. Explique o motivo (build vermelho? salto grande?).
  4. 🟢 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, nem gh 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 como unknown mas 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/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.