Skip to content

chore: standardize codecov coverage config#1593

Merged
dirgim merged 2 commits into
konflux-ci:mainfrom
eedri:fix-codecov-compliance-v2
Jun 15, 2026
Merged

chore: standardize codecov coverage config#1593
dirgim merged 2 commits into
konflux-ci:mainfrom
eedri:fix-codecov-compliance-v2

Conversation

@eedri

@eedri eedri commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Updates codecov configuration to Konflux standard:

  • CI gate disabled (require_ci_to_pass: false)
  • Patch coverage target: 80% (informational - won't block CI)
  • Project coverage target: auto with 1% threshold (informational)
  • Comment only on coverage changes

Why 80% patch target?

The 80% patch coverage target is an org-wide standard being rolled out across all konflux-ci repositories as part of KFLUXDP-1020. It is set to informational: true, meaning it will never block CI or prevent merging — it only provides visibility into coverage trends on new/changed code. Teams can adjust the target in future PRs if needed.

🤖 Generated with Claude Code

Updates codecov configuration to Konflux standard:
- Set require_ci_to_pass: false
- Set patch target: 80% (informational)
- Set project target: auto with 1% threshold (informational)
- Preserve ignore list for generated/mock/vendor files
- Add comment section with require_changes: true

Signed-off-by: Eyal Edri <eedri@redhat.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@qodo-app-for-konflux-ci

qodo-app-for-konflux-ci Bot commented Jun 11, 2026

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (1) 📘 Rule violations (0) 📎 Requirement gaps (0)

Context used
✅ Tickets: KFLUXDP-1020
✅ Compliance rules (platform): 10 rules

Grey Divider


Remediation recommended

1. Outdated coverage docs 🐞 Bug ⚙ Maintainability
Description
codecov.yml now sets project threshold to 1% and marks both project and patch coverage statuses as
informational, but contributor docs still claim a 3% allowed drop and that CI fails when coverage
drops >3%. This mismatch will mislead contributors about expected coverage behavior and why Codecov
checks do/don’t block merges.
Code

codecov.yml[R14-24]

coverage:
-    status:
-        # Allows coverage to drop by a 3% when compared against the base commit.
-        project:
-            default:
-                target: auto
-                # this allows a 3% drop from the previous base commit coverage
-                threshold: 3%
-        # Sets the expected status for `codecov/patch` check.
-        # We set this to be only informational hence it does not cause the check to fail.
-        patch:
-            default:
-                informational: true
+  status:
+    project:
+      default:
+        target: auto
+        threshold: 1%
+        informational: true
+    patch:
+      default:
+        target: 80%
+        informational: true
Relevance

⭐⭐⭐ High

Team has accepted fixing misleading/stale contributor docs (e.g., updating skills docs in PR #1568).

PR-#1568

ⓘ Recommendations generated based on similar findings in past PRs

Evidence
The PR changes the configured threshold to 1% and sets coverage statuses to informational, while
multiple in-repo docs still state the old 3% threshold and that coverage drops fail CI.

codecov.yml[14-24]
skills/pr-definition-of-done/SKILL.md[33-63]
skills/ci-cd-quirks/SKILL.md[72-78]
skills/running-unit-tests/SKILL.md[73-77]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

## Issue description
This PR updates `codecov.yml` to use a 1% project threshold and makes both project and patch statuses informational. Several contributor-facing docs still describe the old 3% threshold and imply coverage drops will fail CI, which is no longer accurate.

## Issue Context
These docs are used as checklists/CI explanations, so they should reflect the actual Codecov configuration in this repo.

## Fix Focus Areas
- skills/pr-definition-of-done/SKILL.md[37-63]
- skills/ci-cd-quirks/SKILL.md[72-78]
- skills/running-unit-tests/SKILL.md[73-77]

## Expected change
- Replace 3% references with 1% where describing the Codecov threshold.
- Update wording that implies CI “fails” on coverage drops to clarify the Codecov status is informational/non-blocking (if that’s the intended behavior).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the codecov.yml configuration file, adjusting coverage thresholds, formatting, and adding comment layout settings. A review comment correctly points out that the require_ci_to_pass setting is misplaced directly under codecov and should instead be nested under codecov.notify to be recognized by Codecov's parser.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread codecov.yml
@qodo-app-for-konflux-ci

Copy link
Copy Markdown

PR Summary by Qodo

Standardize Codecov coverage configuration to Konflux defaults
⚙️ Configuration changes 🕐 Less than 10 minutes

Grey Divider

Walkthroughs

Description
• Align codecov.yml with Konflux standard coverage gating and reporting defaults.
• Make project/patch coverage checks informational (non-blocking) with updated targets.
• Limit Codecov PR comments to only when coverage meaningfully changes.
High-Level Assessment

The PR’s approach is the most straightforward way to comply with Konflux’s Codecov rollout: update the repo-local codecov.yml to the prescribed defaults while preserving the existing ignore patterns. No materially better architectural alternative is needed for this scope.

Grey Divider

File Changes

Other (1)
codecov.yml Adopt Konflux-standard Codecov thresholds and comment behavior +25/-21

Adopt Konflux-standard Codecov thresholds and comment behavior

• Adds top-level 'codecov.require_ci_to_pass: false', standardizes project and patch coverage status targets (project: auto with 1% threshold, patch: 80%), and marks both statuses informational. Preserves the existing ignore list (generated/mock/vendor/e2e paths) and configures Codecov comments to post only when coverage changes ('require_changes: true').

codecov.yml


Grey Divider

Qodo Logo

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 11, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 2:29 PM UTC · Completed 2:36 PM UTC
Commit: ffde3b2 · View workflow run →

@codecov-commenter

codecov-commenter commented Jun 11, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 73.04%. Comparing base (f8ebf94) to head (b1e416d).

Additional details and impacted files

Impacted file tree graph

@@            Coverage Diff             @@
##             main    #1593      +/-   ##
==========================================
+ Coverage   65.76%   73.04%   +7.28%     
==========================================
  Files          63       63              
  Lines        8423     8423              
==========================================
+ Hits         5539     6153     +614     
+ Misses       2244     1647     -597     
+ Partials      640      623      -17     
Flag Coverage Δ
e2e-tests 48.68% <ø> (?)
unit-tests 65.71% <ø> (-0.05%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.
see 37 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f8ebf94...b1e416d. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 11, 2026

Copy link
Copy Markdown

Review

Findings

Medium

  • [behavioral change / coverage gate relaxation] codecov.yml:21 — The project coverage status check previously could block PRs (no informational: true was set, and threshold: 3% was enforced). This change adds informational: true to the project status, making coverage regressions advisory-only — a net relaxation of the coverage gate, not a tightening despite the lower 1% threshold number. If any branch protection rules or merge policies rely on the codecov/project status check being required, those guards are now silently bypassed.
    Remediation: Confirm with maintainers whether branch protection rules depend on the codecov/project status check. If so, document the deliberate decision to make it informational.

Low

  • [comment-accuracy] codecov.yml:16 — The retained comment says "Allows coverage to drop by a 3%" but the threshold has been changed to 1%. The comment is now stale and misleading.
    Remediation: Update the comment to say "1%" or remove it, since the informational: true flag means the threshold no longer blocks anything.

  • [architectural-misalignment] codecov.yml — Three repository skill files (skills/ci-cd-quirks/SKILL.md, skills/pr-definition-of-done/SKILL.md, skills/running-unit-tests/SKILL.md) reference a "3% drop" threshold as the project standard. This PR changes the threshold to 1% and makes it informational, creating divergence between configuration and documentation.
    Remediation: Update all three skill documentation files to reflect the new 1% informational threshold.

Previous run

Review

Findings

Medium

  • [scope-documentation-mismatch] codecov.yml — The PR changes coverage enforcement from blocking (3% threshold) to informational (1% threshold, non-blocking). The skills/pr-definition-of-done/SKILL.md line 62 documents Coverage as ">3% coverage drop from base" in the CI checks table. This documentation will become stale after the PR merges.
    Remediation: Update skills/pr-definition-of-done/SKILL.md line 62 and line 37 to reflect the new non-blocking, 1% threshold coverage policy.

Low

  • [missing-authorization] codecov.yml — The PR references a Jira ticket (KFLUXDP-1020) that is not publicly accessible. CONTRIBUTING.md line 52 advises that descriptions should not be replaced by private links. The PR body does include a substantive description of all changes alongside the Jira link, so this is a minor documentation completeness concern rather than an authorization gap.
    Remediation: Consider adding a sentence in the PR description explaining the broader Konflux-wide standardization rationale, since the Jira ticket is private.

  • [documentation-comment-format] codecov.yml — Inline comments explaining ignored paths and coverage threshold rationale are removed. While the path names are mostly self-documenting, the comments explaining the coverage threshold design choice provided useful context.
    Remediation: Consider preserving the comment explaining why the coverage threshold was chosen and why patch checks are informational.

Info

  • [policy-change] codecov.yml — The addition of require_ci_to_pass: false and informational: true on both project and patch status represents a shift from coverage-as-quality-gate to coverage-as-information. The PR description documents this as intentional standardization.

@fullsend-ai-review fullsend-ai-review Bot added the requires-manual-review Review requires human judgment label Jun 11, 2026
Preserve inline comments and documentation links that were
inadvertently stripped during standardization.

Signed-off-by: Eyal Edri <eedri@redhat.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@fullsend-ai-review

fullsend-ai-review Bot commented Jun 11, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 4:02 PM UTC · Completed 4:09 PM UTC
Commit: ffde3b2 · View workflow run →

@fullsend-ai-review fullsend-ai-review Bot added requires-manual-review Review requires human judgment and removed requires-manual-review Review requires human judgment labels Jun 11, 2026

@dirgim dirgim left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@dirgim dirgim merged commit 8f9e64f into konflux-ci:main Jun 15, 2026
22 checks passed
@fullsend-ai-retro

fullsend-ai-retro Bot commented Jun 15, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 7:50 AM UTC · Completed 7:57 AM UTC
Commit: ffde3b2 · View workflow run →

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #1593 — Standardize Codecov coverage config

Workflow went well overall. This human-authored PR changed a single config file (codecov.yml, 46 lines) to standardize coverage settings. Two review agent runs completed quickly (~8 min each), found valid issues, and properly updated comments on re-review. The PR received two human approvals and merged in 4 days.

What went well

  • Review agent correctly identified the behavioral change (coverage gate relaxation from blocking 3% to informational 1%)
  • Second review caught a new issue (stale "3%" inline comment) introduced by the fix commit — good incremental review behavior
  • Comment was properly updated rather than duplicated across runs
  • No unnecessary code/fix agent cycles

Observations (covered by existing issues)

  • Severity miscalibration: The factually incorrect inline YAML comment ("Allows coverage to drop by a 3%" when threshold is now 1%) was classified as Low and shipped unfixed. This is covered by fullsend-ai/fullsend#986 (classify file-internal consistency errors as Medium, not Low).
  • Stale skill documentation: Three skill files (pr-definition-of-done, ci-cd-quirks, running-unit-tests) still reference the old 3% threshold. These live in the .fullsend org config repo and cannot be targeted per current constraints.
  • Token cost for small diffs: ~330K tokens per review run (mostly cache reads, so cost is modest). 4–5 sub-agents dispatched for a single-file config change. Partially addressed by fullsend-ai/fullsend#1882 (repo-type context to skip irrelevant finding categories).

No new proposals

All identified improvement opportunities are already tracked by existing open issues. Filing duplicates would add noise rather than value.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

requires-manual-review Review requires human judgment size: S size: XS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants