Safeguard
Supply Chain•

Should a new component in the SBOM fail the release gate?

A new component should block a release only when it breaks a written rule: denied package, bad license, serious known flaw. Otherwise warn and review.

Safeguard Security Team
3 min read

Not by itself. A new component should fail the gate only when it breaks a written rule, such as a denied package, a license outside policy, or a known serious vulnerability in a runtime dependency. Everything else should warn and be reviewed, or the gate gets bypassed and loses its value.

Why a blanket block backfires

Modern projects add transitive dependencies constantly. If every new entry stops the release, engineers learn that the gate is noise and look for ways around it. A gate people route around protects nothing. The aim is a small set of rules that are almost always right.

Rules worth blocking on

RuleWhy it earns a blockScope
Package on a deny listSomeone already decided it is unacceptableAny scope
License not on the allow listLegal and distribution risk is hard to undo laterRuntime components
Known vulnerability at or above an agreed severityClear, measurable, and fixableRuntime components
Component with no identifiable name or versionYou cannot assess what you cannot identifyAny scope

GitHub's dependency review action is a concrete example of this shape. It can fail a pull request on a severity threshold, on licenses via an allow list, or on denied packages given as package URLs, and by default it checks runtime scope only. Those are the same four ideas, applied at pull request time.

Rules better as warnings

A brand new direct dependency deserves a human look: who maintains it, how active it is, why it was needed. That is a review task, not an automatic stop. The same goes for a large jump in transitive count, a new maintainer on an existing package, and development scope components. Post them as a comment or ticket with an owner.

How to roll it out

  1. Start in report only mode for two weeks and read what would have failed.
  2. Remove rules that would have blocked legitimate releases.
  3. Turn the remaining rules to blocking, one at a time.
  4. Give every block a documented exception path with an owner and an expiry date.
  5. Review the exception list monthly.

An exception without an expiry becomes a permanent hole, so require a date.

Gate once or twice

Gating at pull request time catches problems early, when they are cheap. Gating again at release catches anything merged in a way that skipped the earlier check. The second gate should use the same rules, so results never disagree.

Safeguard offers policies, gates and guardrails over component and vulnerability data, with the SBOM and dependency scanning behind them. You can see how a project scores on the free scan.

Try it yourself

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

Notice which condition fails the check and which only produces a note.

Quick check

Should development dependencies block a release?

Usually not. Check runtime scope for blocking rules and treat development scope as a warning.

How long should an exception last?

Set a short expiry, then renew it deliberately. An open ended exception is a permanent hole.

Sources

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.