Safeguard
Security Guides•

What belongs in a fork register, and who should own each fork?

A fork register is a short list of every fork you run: upstream, base version, patches, owner, sync date and exit condition. Fields and a review routine.

Safeguard Security Team
4 min read

A fork register is a table with one row per fork you ship or depend on. Record the upstream project, base version, carried patches, owner, last sync date, and the condition for retiring the fork. Review it quarterly. It turns forks from hidden liabilities into managed assets.

Why a register

Most organizations cannot list their forks. They live in private repositories, in replace lines, in Git URL dependencies and in copied directories. When an advisory arrives, the first question is whether you run the affected code, and without a register the answer takes days. With one, it takes minutes.

The fields

FieldMeaningExample
Fork name and locationWhere it livesinternal repo or directory
Upstream project and URLOriginal sourceproject and address
Base version and commitWhere you forked or last syncedtag plus full hash
Carried patchesCount and short list3, one security backport
ReasonWhy the fork existsneeded a fix upstream rejected
OwnerA named team and a backupplatform team
Last syncDate2026-09-30
DivergenceBehind and ahead counts14 behind, 3 ahead
Advisory feedHow you hear about issuesproject security list
Exit conditionWhen you stopupstream releases the fix
Review dateNext check2027-01-15

You can fill divergence with the method in how to measure fork divergence.

Who should own a fork

The owner is the team that depends on the fork most, not the person who created it. Give each fork one accountable team and a named backup. The owner has four duties: watch the upstream advisory feed, sync on the agreed cadence, review upstream diffs, and keep the register row current. See what security responsibilities come with maintaining a fork.

Where a fork has no willing owner, that is information. Either assign one or plan to retire it. An unowned fork is the riskiest kind.

How to find forks you forgot

  1. Search manifests for Git URLs, replace and override lines, and patch sections. See Go replace directives and pinning forks in pip and npm.
  2. Search your repositories for third party directories and vendored folders.
  3. Search your package registry account for packages you published that wrap an upstream project.
  4. Ask each team what they patched and never sent upstream.
  5. Compare your SBOM with the register, and investigate components that look modified.

Review routine

Each quarter, the register owner walks the rows with the fork owners. For each, answer: is the reason still valid, are we within our sync cadence, did any advisory land, and can we shrink the patch list? Close forks that fail the first question. See exit criteria for forks.

Why auditors like it

A register is evidence of control over third party code. It supports vendor and supply chain questions in security reviews and questionnaires, where answers should be specific and true.

Where Safeguard fits

Safeguard's asset discovery and SBOM and dependency scanning can help build the list of components, and its compliance and evidence automation can hold the records. Try a free scan at gold.safeguard.sh/scan.

Try it yourself

Click through it at your own pace, or open it full screen. Check how many components could be forks or copies, and which would need a register row.

Quick check

Who should own a fork?

The team that depends on it most, with a named backup. An unowned fork should be assigned or retired.

How often should the register be reviewed?

Quarterly is a reasonable default, plus whenever an advisory touches an upstream project in it.

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.