ci: faz o Dependabot cobrir dependências transitivas do Cargo - #15
Merged
Merged
Conversation
Por padrao o Dependabot so acompanha o que esta no manifesto, e a maior parte do que o lockfile fixa nao vem daqui: vem atraves de outras crates. Uma versao corrigida de uma dessas nunca aparece sozinha - ninguem esta olhando para ela -, entao o `cargo audit` so reporta o problema quando alguem abre um PR qualquer, e reprova esse PR, que nao causou nada. Foi exatamente o que aconteceu no mysql_samp com o RUSTSEC-2026-0285: o `rustls` corrigido estava publicado havia dias, chegava via `mysql` e nao estava no Cargo.toml, entao nada o trouxe ate o audit reprovar um PR que so subia versoes de actions. `allow: dependency-type: all` e suportado para cargo e inclui as dependencias das dependencias diretas. Com ele, a rodada semanal renova tambem as transitivas: uma versao corrigida chega como bump de lockfile comum e passa pelo `cargo audit` do CI como qualquer outra mudanca. Como o grupo `cargo` casa `*`, tudo continua vindo num PR unico por semana. O grupo novo `cargo-security` existe porque grupo so vale para version updates a menos que diga o contrario: sem `applies-to: security-updates`, varios advisories de uma vez virariam varios PRs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Mesma mudança que entrou no mysql_samp#43, replicada aqui. Só o
.github/dependabot.ymlmuda.O problema
Por padrão o Dependabot só acompanha o que está no manifesto, e a maior parte do que o
Cargo.lockfixa não vem doCargo.toml— vem através de outras crates. Uma versão corrigida de uma dessas nunca aparece sozinha: ninguém está olhando para ela. O resultado é que ocargo auditsó reporta o problema quando alguém abre um PR qualquer — e reprova esse PR, que não causou nada.Foi exatamente o que aconteceu no mysql_samp com o RUSTSEC-2026-0285: o
rustlscorrigido estava publicado havia dias, chegava viamysql, não estava noCargo.toml, e nada o trouxe até o audit reprovar um PR do Dependabot que só subia versões de actions.Vale notar que o Dependabot também não teria alertado: o GHSA correspondente não existe no banco de advisories do GitHub (404 na API até hoje). O
cargo auditlê o RustSec; o Dependabot lê o GHSA. São bancos diferentes.A correção
allow: dependency-type: "all", que a referência oficial lista como suportado para cargo:Com isso a rodada semanal renova também as transitivas: uma versão corrigida chega como bump de lockfile comum e passa pelo
cargo auditdo CI como qualquer outra mudança. Como o grupocargocasa*, tudo continua vindo em um PR por semana, não um por crate.O grupo novo
cargo-securityexiste porque um grupo vale só para version updates a menos que diga o contrário (applies-to: security-updates). Sem ele, vários advisories de uma vez virariam vários PRs.O que esperar
O primeiro PR do Dependabot depois disto tende a ser maior que o normal — é o primeiro refresh do lockfile inteiro, não só das diretas. Os seguintes voltam ao tamanho de sempre.
Este repositório já roda
cargo auditno CI, então a rede de proteção na entrada continua a mesma.