Safeguard
Security Guides•

One person maintains our shared library: what is the plan?

If one engineer maintains a shared internal library, you have a bus factor of one. A four step plan to add maintainers, docs and a release path.

Safeguard Security Team
3 min read

When one engineer maintains a shared internal library, add a second maintainer within a quarter, write down the release steps, and give the owning team the repository permissions. The goal is that any security fix can ship while that person is on leave or gone.

What bus factor means here

Bus factor is the number of people who could leave before a project stalls. For a shared library the stall is concrete: a vulnerable dependency is flagged, and nobody else knows how to cut a release, who has publish rights, or why the build has a special flag.

The risk is not only departure. Holidays, illness and a move to another team produce the same gap.

Four steps

  1. Name the owning team. The library should belong to a team, with the person as a maintainer. See the roles in who owns a shared internal library.
  2. Add a second and third maintainer. Pick engineers who already consume the library. Pair them on the next two releases, with the original maintainer watching rather than driving.
  3. Write the release runbook. Where the version lives, how to tag, who can publish, how to verify the package after publishing, and how to roll back or deprecate.
  4. Move permissions to groups. Repository admin, registry publish rights and CI secrets should be held by a team or role, not one account.

Signals that you are already at risk

SignalWhat to check
All commits from one authorLook at the last twelve months of history
Only one reviewer on pull requestsBranch rules may be allowing self approval
Releases always done from a laptopThe process is not reproducible
Publish token belongs to one userRevocation on exit breaks releases
No tests for the release pathNobody dares touch it

Do not wait for a crisis

Offboarding is a bad time to learn that a token is personal. GitHub documents that code owners must have write permission and teams must be visible with write access, so assign a team in CODEOWNERS now and confirm it works by opening a test pull request.

If you cannot staff it

Be honest with the consumers. Decide whether the library should be adopted by a team with capacity, frozen with a published end date, or replaced by a maintained alternative. An unstaffed library that is "still fine" tends to become the unpatched one. The guide on orphaned libraries covers that choice.

Safeguard can help with the inventory side: its SBOM and dependency scanning shows which services pull in a given internal library, and you can run a free scan at gold.safeguard.sh/scan.

Try it yourself

Click through it at your own pace, or open it full screen.

Click through the inventory and look for which components appear in many services, since those are the libraries that most need a second maintainer.

Quick check

How many maintainers are enough?

At least two for any shared library, three for one that handles authentication, cryptography or logging. The aim is that one absence never blocks a release.

Can a bot count as a second maintainer?

No. Automation can open update pull requests, but a human must review and release them.

Sources

  1. GitHub: About code owners

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.