Safeguard
Supply Chain•

How do you find every repository a target company really has?

Do not rely on the seller's list. Enumerate repositories from the source host, CI, registries and deployed workloads, then reconcile the four lists.

Safeguard Security Team
3 min read

Enumerate repositories from four independent sources: the source host, the CI system, the package and image registries, and what is deployed. Compare the four lists. A repository that appears in one source and not the others is where an inventory gap usually starts.

Why the seller's list is incomplete

The seller's list is whatever someone remembers. Teams change, tools get abandoned, and scripts live in personal accounts. Nobody lies, the list just ages.

The four sources

SourceWhat it showsBlind spot
Source host (organization view)Every repository in the organization, including archivedRepos in personal or other accounts
CI systemRepositories that have pipelinesRepos with no automation
Registries (packages and images)What was actually publishedPrivate artifacts built elsewhere
Deployed workloadsWhat runs in productionAnything built long ago and never redeployed from source

Steps

  1. Ask for read access to the organization on the source host and export the full repository list with last commit date and archived flag.
  2. Export pipeline definitions and note which repositories they build.
  3. List package and image names in each registry and map them back to repositories.
  4. List running workloads and the image each uses.
  5. Join the lists by name. Mark each repository as seen in one, two, three or four sources.

Reading the result

  • Seen in all four: the normal case. Check it has an inventory.
  • Seen in registries and workloads but not on the source host: the source may be elsewhere or lost. High priority.
  • Seen on the source host only, no commits for years: probably dead. Confirm and archive.
  • Seen in CI only: a build with no clear product. Ask what it produces.

Edge cases

Forks of open source projects sit in the same list as original work. Mark them separately, since a fork carries upstream code plus local changes. Personal accounts are a known gap: ask whether any employee or contractor published company code outside the organization and how that is handled.

What to record

For each repository: owner, language and package manager, whether it ships or runs, last deployment, and whether an inventory exists. This table becomes the coverage baseline for the rest of the review, and the denominator for a statement like "we have inventories for 40 of 55 repositories."

Safeguard's asset discovery is built for finding what is in an estate that nobody listed, and the SBOM and dependency scanning then cover each repository found. A free scan is at gold.safeguard.sh/scan.

Quick check

Should archived repositories be included?

List them, but mark them archived. Confirm nothing still deployed depends on them.

What if the target will not give organization level access?

Ask for an exported list produced by their admin, with dates, and spot check by asking for a few specific repositories you found through registries.

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.