Skip to main content
A suppression tells Iris Code to ignore a particular finding that you have reviewed and accepted. It is useful when a reported pattern is intentional, such as a test credential that is not a real secret. Keep suppressions narrow so other problems in the same file are still reported.

Writing one

Put the comment on the line directly above:
Python uses #:
For a whole file, put iris-ignore-file anywhere in it:
The shape is the same either way:
One or more rule ids, then --, then a reason.

The reason isn’t optional

Leave the reason out, misspell the rule id, or name no rule at all, and the directive suppresses nothing. It gets reported as a Bare Ignore with its own score penalty instead.
This is deliberate. A suppression that costs nothing and explains nothing becomes a mute button rather than a decision, and months later there is no way to tell whether the any was reasoned about or simply inconvenient. Penalising an undocumented one keeps the mechanism meaningful.

What you can suppress

Eighteen rules, which is every finding that points at a specific line: Findings that aren’t about a line can’t be suppressed: file too long, too many functions, too many imports, and parse errors. Those always count.

What it does to your score

A suppressed finding stops costing points, since the score is recalculated after suppressions are applied. It does not disappear, though: it stays counted and listed in both the sidebar and CLI output, so a project accumulating suppressions is visibly doing so. A bare ignore does the opposite: it suppresses nothing and takes points off, 2 by default, adjustable in Scoring Weights.

Where you see them

File tab has a collapsible Suppressed section under Code Smells, with each rule, line and reason. Bare ignores show up as their own smell row. Workspace and Folder tabs show suppressed and bare counts plus the worst offending files. See all opens the full table for the last scan, filterable, with click-to-open. The CLI always prints the count. --show-suppressed lists them:
--format json includes a per-file suppressed array with the rule, line and reason.

Keeping a lid on it (Pro)

Two fields in .irisconfig.json:
The strict and security presets already set a cap (5 and 3 per file) and a heavier bare-ignore penalty (3 and 4). The other presets leave it unset, so there’s no limit until you set one.
Commit .irisconfig.json with gateMaxSuppressions set and the cap applies to everyone. Without it, a file can be brought under the gate by suppression rather than by fixing anything. See Gate thresholds.