Spec: Promote CKV_AZUREPIPELINES_* severity from note to warning
Assessment
This issue has not been assessed yet.
Description
Tracking issue split out from the diagnostic discussion in #163 so this can be assigned and worked independently. See #163 for the full investigation history.
Spec: Promote CKV_AZUREPIPELINES_* severity from note → warning
The implementation lives in Microsoft's internal Guardian severity-policy, but the acceptance criteria below are verifiable against the public MSDO task's output, so completion can be validated end-to-end without any internal artifacts.
Background
From #163:
- Checkov 3.2.497 produces
CKV_AZUREPIPELINES_1/_2findings againstazure-pipelines.yml. - Guardian's Checkov severity-mapping policy maps these rule IDs to SARIF
level: "note"in the publishedmsdo.sarif. - The SARIF Scans Tab extension's default filter hides
note-level findings, so the results land in the published artifact but are invisible to users by default. - The same mechanism downgrades
CKV_AZURE_177towarning(still visible). The asymmetry betweenwarning(visible) andnote(hidden) is the user-visible bug.
Change
In Guardian's Checkov severity-mapping policy:
- Map every rule whose ID matches
^CKV_AZUREPIPELINES_to SARIFlevel: "warning". - Prefer a prefix/wildcard rule over per-rule entries, so future additions to Checkov's
azure_pipelinesframework inherit the promotion without policy churn. - Place the rule in the same policy file used for the existing
CKV_AZURE_177downgrade, for locality and consistency.
Out of scope
- Upstream Checkov default severities (owned by Prisma Cloud).
- SARIF Scans Tab's default filter — separate UX concern; will be filed as a follow-up.
- Exposing per-rule severity overrides in
.gdnconfig— separate feature.
Acceptance criteria
Each criterion is a hard requirement and must have an automated check or a documented manual verification step.
AC1 — Severity in published SARIF. Running MicrosoftSecurityDevOps@1 (Checkov enabled, default policy: 'azuredevops') against a fixture repo whose azure-pipelines.yml triggers CKV_AZUREPIPELINES_2 (e.g., a step referencing a container image tagged :latest) MUST yield a msdo.sarif where every CKV_AZUREPIPELINES_* result has level == "warning". Verified by:
jq '[.runs[]
| select(.tool.driver.name == "checkov")
| .results[]
| select(.ruleId | startswith("CKV_AZUREPIPELINES_"))
| .level] | unique' /home/vsts/work/1/a/.gdn/msdo.sarif
# Expected: ["warning"]
AC2 — Scans Tab visibility. With the SARIF Scans Tab extension at its default severity filter, CKV_AZUREPIPELINES_* findings MUST appear under the checkov tool collapse without the user enabling "Notes." Verified by screenshot of a build run against the fixture from AC1 attached to the PR.
AC3 — No regression for other Checkov rules. The severity mapping for every rule that is not CKV_AZUREPIPELINES_* MUST be unchanged. Verified by capturing baseline (pre-change) and post-change severity histograms over the fixture from AC1:
jq '[.runs[]
| select(.tool.driver.name == "checkov")
| .results[]
| {ruleId, level}]
| group_by(.ruleId)
| map({ruleId: .[0].ruleId, level: .[0].level})' /home/vsts/work/1/a/.gdn/msdo.sarif
The diff MUST contain only CKV_AZUREPIPELINES_* rows changing from note → warning.
AC4 — Build break unchanged. With MicrosoftSecurityDevOps@1 configured break: true and the default --min-severity Error, AZUREPIPELINES warnings MUST NOT break the build. Verified by running the fixture pipeline twice — once with break: true, once with break: false — both completing with succeeded status.
AC5 — Test coverage. A unit test in Guardian's severity-mapping suite MUST assert the new mapping for at least CKV_AZUREPIPELINES_1 and CKV_AZUREPIPELINES_2. Test placement and framework conventions to follow the existing tests for CKV_AZURE_177.
Deliverables
- Policy change in Guardian (one file).
- Unit test covering AC5.
- Integration fixture under
samples/in this repo (microsoft/security-devops-azdevops) containing a minimalazure-pipelines.ymlthat triggersCKV_AZUREPIPELINES_2, with a shortREADME.mddescribing the expected Scans Tab output. Submit as a separate PR against this repo so the fixture is reusable. - Wiki update on the Home page Checkov section noting that
CKV_AZUREPIPELINES_*surface aswarning-level findings.
Verification commands (paste-ready)
A reviewer should be able to copy these and verify a built artifact:
# All AZUREPIPELINES rules should be warning, none note:
jq '[.runs[] | select(.tool.driver.name=="checkov") | .results[]
| select(.ruleId | startswith("CKV_AZUREPIPELINES_")) | .level] | unique' msdo.sarif
# Verify no rule other than AZUREPIPELINES has flipped:
jq '[.runs[] | select(.tool.driver.name=="checkov") | .results[]
| {ruleId, level}] | unique' msdo.sarif
Definition of done
- AC1–AC5 all pass on a real CI run of the fixture pipeline.
- PR description includes the AC1/AC3 jq outputs and the AC2 screenshot.
- Linked back to #163 and closes it on merge.
Original ask: #163
- Dominant language
- TypeScript
- Stars
- 86
- Forks
- 22
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from microsoft/security-devops-azdevops
-
Difficulty 1/5 Under an hour Newbie friendliness 68/100
-
area:task area:tools status:waiting-on-author type:docs type:question
microsoft/security-devops-azdevops#169 · 1 comment · 1 assignee ·
-
Which Defender CLI binary should be used in CI/CD pipelines — `aka.ms` or the DevOps CDN endpoint? Open
Difficulty 5/5 Over a week Newbie friendliness 35/100
microsoft/security-devops-azdevops#166 · 2 comments · 1 reaction ·
-
area:task area:tools status:team-review type:docs type:feature
microsoft/security-devops-azdevops#163 · 17 comments · 1 assignee ·
-
enhancement
Difficulty 4/5 3-5 days Newbie friendliness 35/100
microsoft/security-devops-azdevops#152 · 2 comments ·
All issues in microsoft/security-devops-azdevops
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Eynzof/Hermes-CN-Desktop#610 ·
-
bug clawsweeper:linked-pr-open clawsweeper:needs-live-repro clawsweeper:no-new-fix-pr impact:message-loss issue-rating: 🐚 platinum hermit P2 regression
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
calcite-components needs triage refactor
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Esri/calcite-design-system#15203 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
danielmiessler/LifeOS#2218 ·