Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
FREEDOM251

Freedom251 › Blog › Dependabot

Give Dependabot Package-Level Read Rights Without a PAT

By Freedom251 Team · · 7 min read

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

To let Dependabot download a private package hosted by GitHub without a personal access token, grant the repository that runs Dependabot Read access in that package’s Manage Actions access settings. Repeat the grant for every private package Dependabot must read. GitHub then lets Dependabot use its built-in GITHUB_TOKEN for supported GitHub Packages and Container registry images.

This package-level permission replaces the usual token setup for GitHub-hosted registries. It does not automatically authenticate Dependabot to third-party registries such as Artifactory, Azure Artifacts or Nexus; those require the registry configuration supported by dependabot.yml or organization settings.

As an Amazon Associate I earn from qualifying purchases.

What automatic Dependabot access does

Dependabot runs dependency update jobs on a specific repository. When an update requires downloading a private package, the job needs permission to read that package. GitHub’s automatic access feature connects the repository to each private package through the package’s Actions access list instead of requiring you to create and rotate a separate personal access token.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The permission is granted to the repository, not to every repository in the organization and not globally to Dependabot. If three private packages are involved, each package must list the Dependabot repository with Read access. A grant on one package does not authorize access to another.

GitHub documents that Dependabot uses its GITHUB_TOKEN to request packages: read when pulling from *.pkg.github.com and ghcr.io. See GitHub’s automatic Dependabot access documentation.

What you need before changing settings

  • The repository where the Dependabot configuration and update jobs run.
  • Access to change settings for each private GitHub package or container image.
  • The exact list of private packages Dependabot must download.
  • A supported GitHub-hosted package ecosystem, including packages served through GitHub Packages or images in GitHub Container registry.

Identify the repository that actually runs Dependabot. A package may be owned by one repository while Dependabot operates in another. Add the operating repository to the package’s access list, not merely the repository that publishes the package.

GitHub describes this capability as available across every GitHub Packages ecosystem supported by Dependabot, including Container registry images. The current support and interface are documented in GitHub’s private-registry configuration guide.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Grant Read access to a private package

  1. Open the private package. In GitHub, navigate to the package that Dependabot needs to pull. Use the package’s own settings rather than the settings of the repository that consumes it.
  2. Find Manage Actions access. In the package settings, open the section labeled Manage Actions access. This is the package-specific list of repositories allowed to use GitHub Actions credentials with the package.
  3. Add the Dependabot repository. Select or enter the repository where Dependabot runs. Check the owner and repository name carefully if several repositories have similar names.
  4. Choose Read. Assign the repository the Read permission and save the change. Dependabot needs to pull package contents; the documented setup does not require Write access.
  5. Repeat for every private package. Perform the same operation for each package or container image referenced by dependencies. Access is not inherited automatically between packages.

For a container image, apply the grant to the private image package in GitHub Container registry. For a package published through another GitHub Packages endpoint, apply it to that package’s settings. The relevant package must recognize the repository’s GITHUB_TOKEN after the grant is saved.

How the authentication flow works

Dependabot receives a repository token

Dependabot’s update job runs with the repository’s GITHUB_TOKEN. When it needs a GitHub-hosted private dependency, GitHub requests the packages: read permission for that token. The package service then checks whether the repository running the job appears in the package’s Manage Actions access list.

The package grant authorizes the request

If the repository has Read access, the package accepts the token and Dependabot can download the dependency. The authorization is evaluated per package, so a successful pull from one private package does not prove that all other private packages are configured correctly.

Automatic credentials are fallback credentials

Automatic GitHub-hosted credentials are a fallback authentication path. GitHub states that explicit registry credentials and normal registry routing take precedence. If the repository or organization already supplies registry credentials, Dependabot may continue using that configured route even after a package access grant is added. This explains why adding Read access does not always change the credential path you observe.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Which packages this covers

Registry or source Automatic access Required action
GitHub Packages supported by Dependabot Yes Add the Dependabot repository with Read access in the package’s Manage Actions access settings.
GitHub Container registry images at ghcr.io Yes Apply the same package-level Read grant to the private container image.
Third-party private registries such as Artifactory, Azure Artifacts or Nexus No, not through this automatic GitHub-hosted path Use supported organization-level private-registry settings or the top-level registries configuration in dependabot.yml.

The third row is an important boundary. GitHub Docs says that third-party registries can only use the dependabot.yml registry configuration or organization-level private-registry settings. See GitHub’s organization private-registry access guidance for that model.

Removing older personal access token entries

If you previously configured a personal access token solely to let Dependabot read a supported GitHub-hosted package, GitHub says you can remove that token-based registry entry after the package-level Read grant is working. Do not delete credentials first without verifying the new path.

  1. Grant Read access to the consuming repository on every required private GitHub package.
  2. Trigger or wait for a Dependabot update that needs one of those packages.
  3. Confirm that the update job can resolve and download the dependency.
  4. Only then remove the obsolete personal access token registry entry and any secret that existed exclusively for it.

Keep credentials that serve a third-party registry or another workflow. The automatic feature replaces token configuration for the covered GitHub-hosted packages; it does not make unrelated registry credentials unnecessary.

Automatic access versus manual registry configuration

Decision point Automatic GitHub-hosted access Manual private-registry setup
Registry ownership GitHub Packages or GitHub Container registry Third-party service, or a case that requires explicit credentials
Credential method Repository GITHUB_TOKEN requesting packages: read Configured token, username and password, or a supported OIDC method, depending on the registry
Configuration surface Each package’s Manage Actions access settings Top-level registries entries in dependabot.yml or organization-level private-registry settings
Maintenance No separate personal access token to create, rotate or expire for this path You are responsible for the configured secret or identity and its lifecycle
Permission needed for pulling Read Whatever read/authentication scope the registry requires

This is a routing decision as much as an authentication decision. If a registry is not hosted by GitHub, adding a GitHub package access grant cannot authorize it.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Troubleshooting failed private-package pulls

Dependabot reports that a private package cannot be found or downloaded

  • Confirm that the package is the one referenced by the dependency and that it is hosted in GitHub Packages or GitHub Container registry.
  • Open that package’s settings and verify the exact Dependabot repository appears under Manage Actions access.
  • Verify the permission is Read, not an unsaved or differently scoped entry.
  • Check every private package in the dependency graph; access to one package does not cover another.

The package grant exists, but Dependabot still uses another credential

Review repository and organization configuration for explicit registry credentials. GitHub’s automatic credentials are fallback credentials, so explicit credentials and normal registry routing take precedence. A job may therefore continue using an existing configured secret even though the package now grants Actions access.

The dependency is in a third-party registry

Do not troubleshoot this as a GitHub package permission problem. Configure the registry through the supported dependabot.yml registry settings or organization-level private-registry settings, using the authentication method required by that service. GitHub’s documentation covers token, username/password and OIDC options where applicable.

Dependabot runs from a different repository than expected

Check the repository shown in the Dependabot job and compare it with the repository listed in Manage Actions access. The authorization follows the repository running the job. Granting the publishing repository access is insufficient when Dependabot executes elsewhere.

A personal access token was removed too soon

Restore the previous working credential temporarily if your change process allows it, then verify package-level Read access and run another update. Remove the old entry only after a successful pull confirms that the automatic path works. If explicit credentials remain configured, remember that they may still take precedence.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Security and maintenance considerations

Use the narrowest package-level grant that satisfies the dependency graph. Adding one consuming repository with Read access to one package is more limited than distributing a personal access token that can potentially reach multiple packages or repositories. Do not grant Write merely because the job needs to download a dependency.

Review the list when repositories are archived, renamed or replaced. Remove repositories that no longer need a package, and repeat the grant when a new repository becomes the Dependabot consumer. Because the setting is package-specific, an access review must cover every private package rather than one central Dependabot configuration.

Document which packages rely on automatic access and which still use explicit third-party registry credentials. This prevents a later cleanup from removing a secret that serves a different registry or workflow.

Version and documentation caveat

GitHub’s official pages retrieved for this feature did not display a publication date. The interface labels and behavior can change, so verify the live documentation and the current package settings before applying a large-scale migration. The primary references are Automatic Dependabot access to GitHub-hosted registries and Configuring access to private registries for Dependabot.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Dependabotdependency managementDevOpsGitHubGitHub Container RegistryGitHub Packages

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.