Skip to content

Commit a751796

Browse files
authored
ci: faz o Dependabot cobrir dependencias transitivas do Cargo (#15)
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.
1 parent cfd515f commit a751796

1 file changed

Lines changed: 23 additions & 0 deletions

File tree

‎.github/dependabot.yml‎

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,36 @@ updates:
2121
open-pull-requests-limit: 5
2222
commit-message:
2323
prefix: "chore(deps)"
24+
# Transitive dependencies too, not just what Cargo.toml declares.
25+
#
26+
# By default Dependabot only tracks the manifest, and most of what the
27+
# lockfile pins arrives through other crates rather than from here. A
28+
# fixed version of one of those never shows up on its own: nothing is
29+
# watching it, so `cargo audit` only reports the problem once someone
30+
# happens to open a pull request - and then it fails that pull request,
31+
# which did not cause it.
32+
#
33+
# With `all`, the weekly run refreshes transitive crates as well, so a
34+
# patched version arrives as an ordinary lockfile bump and goes through
35+
# `cargo audit` in CI like any other change. Supported for cargo:
36+
# https://docs.github.com/en/code-security/reference/supply-chain-security/dependabot-options-reference
37+
allow:
38+
- dependency-type: "all"
2439
groups:
40+
# One pull request per week for the lot, rather than one per crate.
2541
cargo:
2642
patterns:
2743
- "*"
2844
update-types:
2945
- "minor"
3046
- "patch"
47+
# Security updates are not grouped by the block above: a group applies
48+
# to version updates unless it says otherwise. Without this, several
49+
# advisories at once would mean several pull requests.
50+
cargo-security:
51+
applies-to: security-updates
52+
patterns:
53+
- "*"
3154
- package-ecosystem: "pip"
3255
directory: "/docs"
3356
schedule:

0 commit comments

Comments
 (0)