Safeguard
Developer Tools•

Local or shared suppressions: why an IDE ignore does not travel

A finding you ignore in your editor may still fail CI for everyone else. Local versus shared suppressions, why they diverge, and how to keep them in sync.

Safeguard Security Team
3 min read

A finding ignored in your editor usually stays visible in CI and for teammates, because many editor ignores are stored locally and are not shared. To make a decision apply everywhere, record it in a shared suppression file in the repository, reviewed like code, and have the editor read that file.

Where suppressions can live

LocationWho sees itRisk
Editor or IDE local settingOnly youCI and teammates still see the finding
Local scanner cache or user configOnly that machineDecisions are lost on a new laptop
Shared file in the repositoryEveryone, through version controlNeeds review rules
Central server or platform settingEveryone using itNeeds access control and an audit log
Ticket or chatWhoever finds itNothing enforces it

The right home is one that is shared, versioned, reviewable and enforced in CI.

Symptoms of divergence

  • "It passes on my machine" for a security gate.
  • A teammate sees a finding you already triaged last week.
  • A new hire sees a wall of old findings that were all reviewed.
  • CI fails on a finding the editor hides.

These are all signs that a decision exists but is not recorded where the gate reads.

Fix it in four steps

  1. Pick a shared source of truth. A file in the repository is the simplest.
  2. Make CI and editors read it. Check that your scanner plugin loads the same file, or at least the same rules, as the pipeline.
  3. Treat local ignores as scratch. They are fine for a quick look while debugging. Do not count them as decisions.
  4. Copy decisions into the shared file with a reason, evidence and an end date, via a pull request.

Why review matters

A shared file lets a second person see and approve. Our post on reviewing suppression diffs lists what to check. A local ignore has no reviewer and no expiry, so it quietly becomes a private exception.

For teams with many repositories

A central policy with per repository overrides keeps common decisions consistent, such as a withdrawn advisory that applies everywhere. Keep overrides narrow. See where exceptions should live.

A note on laptops and onboarding

Document how a new developer sets up the editor plugin so it matches CI. Put it in the contributing guide. A mismatch on day one teaches people to distrust the tool.

What good looks like

A healthy setup has one file, one reviewer group and one answer. A developer sees the same findings in the editor, in the pull request and in the release gate. When a decision changes, it changes in one place, with a commit message that says why, and everyone sees the effect on the next scan.

Where Safeguard fits

Safeguard offers VS Code, JetBrains and Open VSX extensions alongside the CLI and pipeline checks, so editor and CI views can come from the same policies and gates. Try a free scan at gold.safeguard.sh/scan.

Quick check

Is a local ignore ever acceptable?

For exploring a finding while you work, yes. It should never be the record of a decision.

How do I tell where my tool stores ignores?

Read its docs, then test: ignore a finding, clone the repository elsewhere, and see if it is still hidden.

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.