Dependabot no longer needs a PAT for GitHub Packages
Dependabot now reads private GitHub Packages with its built-in GITHUB_TOKEN. Delete the personal access token you wired into dependabot.yml years ago.
If your dependabot.yml contains a personal access token so the bot can read your private packages, you can delete it today. GitHub made automatic Dependabot access to GitHub-hosted registries generally available on September 8, 2026. Dependabot now authenticates with its own GITHUB_TOKEN and packages: read permission. No PAT, no rotation reminder, no long-lived credential sitting in a repo secret with more scope than it needed.
What actually happened
Per the GitHub Changelog, the change covers every GitHub Packages ecosystem Dependabot supports, across both *.pkg.github.com and ghcr.io. It first shipped in June 2026, got rolled back over an npm routing conflict, and is now back as a fallback that still respects explicit registry credentials when you set them.
The migration is two steps, and the first one is the one people skip:
- On each private package's settings page, grant the consuming repository Read access under Manage Actions access
- Remove the PAT-based
registries:block from.github/dependabot.yml
Order matters. Drop the PAT before granting package access and Dependabot goes quiet — it will stop opening update PRs for anything it can no longer resolve, and a bot that fails silently looks exactly like a bot with nothing to do.
Why killing that PAT matters for your business
A personal access token in a Dependabot config is one of the most under-examined credentials in a small shop's stack. Ours usually turn out to belong to whoever set up CI in 2023. It reads packages across the whole org because scoping it per-repo was fiddly. It has no expiry, because an expiry meant a broken build at 2am. And it survives that person leaving the company, which is the part that should bother you.
Replacing it with a scoped, ephemeral GITHUB_TOKEN removes a standing credential and replaces implicit org-wide reach with per-package grants you can actually see. That is the same direction the rest of the ecosystem moved this year — npm trusted publishing and agent identity work at NIST are the same idea applied to different plumbing: stop handing automation a password that outlives the job.
Do the audit while you're in there. Run through your org's PATs and fine-grained tokens and ask which ones exist only because some tool could not authenticate itself two years ago. Most shops we open up have three to five. GitHub has been removing the reasons for them one at a time; the tokens do not remove themselves.
One caveat: this covers GitHub-hosted registries. Private Artifactory, a self-hosted Nexus, or a third-party npm proxy still need real credentials in registries:. Those are the ones worth putting on a rotation schedule, because nothing is coming to retire them for you.
Key takeaways
- Dependabot reads private GitHub Packages with its own
GITHUB_TOKENandpackages: readas of September 8, 2026 — GA - Grant the repo Read access under the package's "Manage Actions access" before removing the PAT, or updates stop silently
- Explicit credentials in
registries:still win, so the change is safe to adopt incrementally - Only GitHub-hosted registries are covered; Artifactory, Nexus and third-party proxies still need managed secrets
Every long-lived token in your repo is a decision someone made once and never revisited. We audit small teams' CI credentials, cut the standing tokens down to scoped and ephemeral ones, and leave you a list of what actually still needs a secret. Start a conversation.
Sources: GitHub Changelog, Dependabot options reference.
- #dependabot
- #github-packages
- #supply-chain
- #secrets
- #developer-tools
Tommy Rush — Founder, Rush Commerce
Operator turned builder. 15+ years running operations — now shipping the systems businesses run on. More
Get The Rush Report weekly — one email, zero fluff.
Keep reading
Sol-H3 generates video faster than it plays back
NVIDIA's Sol-H3 stack renders 5 seconds of 1344x768 video with stereo audio in 1.653 seconds on 8x B300. AI video generation just crossed real time. Here is what changes.
Read itToolHive sandboxes every MCP server in a container
Stacklok's ToolHive is Apache 2.0 tooling that boots every MCP server in its own container with a permission profile and no local credentials. Here is the operator's read.
Read it