Skip to content

feat: submit the dependency graph so Dependabot alerts work again - #119

Merged
samidalouche merged 1 commit into
mainfrom
feat/uv-dependency-submission
Sep 9, 2026
Merged

samidalouche merged 1 commit into
mainfrom
feat/uv-dependency-submission

Conversation

@samidalouche

Copy link
Copy Markdown
Member

This repository's dependency graph has been empty since the poetry → uv migration on
2026-08-12 — its SBOM contained exactly one package, the repository itself. GitHub's graph does
not parse uv.lock.

Alerts are generated from the graph and security updates are triggered by alerts, so both
have been silently off, and the orphaned poetry.lock alerts could never resolve. (Those were
dismissed as inaccurate after confirming each package is still present in uv.lock at or past
its patched version — they were genuinely fixed, not unused.)

package-ecosystem: "uv" did not cover this, which is why nothing looked wrong: it configures
Dependabot updates, and with open-pull-requests-limit: 0 the only path it leaves open is
security updates, which run through alerts.

Calls the shared workflow from iglootools/common#32 (v1.7.0).

Why this is a workflow of its own

The shared job runs a third-party action with contents: write, and that grant cannot be
narrowed — there is no dependency-graph permission scope, and the snapshot API sits behind
contents: write. So:

  • permissions: {} at workflow level; contents: write on the single job that needs it
  • this file contains nothing else, so no other step shares the token
  • the action is pinned by commit SHA in common-guidelines, reviewed once there
  • triggers are uv.lock changes + a weekly floor + manual; deliberately not pull_request,
    so nothing from a fork influences a run holding that grant

A Renovate PR bumping that pin is not a routine dependency update. The shared workflow's
header says what to check before approving one.

actionlint clean.

GitHub's dependency graph does not parse uv.lock, so this repository's graph has
been empty since the poetry -> uv migration on 2026-08-12 — its SBOM contained
exactly one package, the repository itself. Alerts are generated from the graph
and security updates are triggered by alerts, so both have been silently off,
and the poetry.lock alerts left behind could never resolve. They were dismissed
as inaccurate once each package was confirmed present in uv.lock at or past its
patched version.

package-ecosystem: "uv" in dependabot.yml did not cover this, which is why
nothing looked wrong. That entry configures Dependabot updates, which read the
manifest directly; with open-pull-requests-limit: 0 it leaves only the security
path, and that runs through alerts.

Calls the shared workflow from common-guidelines v1.7.0. It gets a workflow of
its own containing nothing else, because the shared job runs a third-party
action with contents: write and that grant cannot be narrowed — there is no
dependency-graph permission scope. permissions: {} at workflow level keeps the
grant on the single job that needs it.

Triggers on uv.lock changes rather than every push, with a weekly floor so a
broken submission surfaces on its own instead of waiting for the next
dependency bump. Deliberately not on pull_request, so nothing from a fork
influences a run holding that grant.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@samidalouche
samidalouche merged commit d6bb7fb into main Sep 9, 2026
1 check passed
@samidalouche
samidalouche deleted the feat/uv-dependency-submission branch September 9, 2026 01:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant