New Blocker / Critical / High Issues

Quality Gate Quality Gates

A Blocker issue cannot move to production. A Critical issue shouldn't (it can for business imperatives) but must be fixed during the next iterations. A High issue should be fixed quickly, but can wait until the next scheduled interval.

Severity is defined in the rule source code or inferred from the issue annual interest and thresholds in Project Properties > Issue and Debt.

CQLinq source

This quality gate is written in CQLinq, C# LINQ over the NDepend code model. It ships with every new NDepend project: you can read it, adapt it, or use it as a starting point for your own custom rules.

// <QualityGate Name="New Blocker / Critical / High Issues" Unit="issues" />
failif count > 0 issues
from i in Issues
where i.Severity.EqualsAny(Severity.Blocker, Severity.Critical, Severity.High) &&  
      // Count both the new issues and the issues that became at least Critical
      (i.WasAdded() || i.OlderVersion().Severity < Severity.High)
select new { i, i.Severity, i.Debt, i.AnnualInterest }


//<Desc>
// A **Blocker** issue cannot move to production. A **Critical** issue
// shouldn't (it can for business imperatives) but must be fixed during the
// next iterations. A **High** issue should be fixed quickly, but can wait
// until the next scheduled interval.
//
// Severity is defined in the rule source code or inferred from the issue
// *annual interest* and thresholds in Project Properties > Issue and Debt.
//</Desc>

Quality Gates: all 19 items