Skip to content

feat(ci): add qlty gate and weekly health scan#67

Merged
williaby merged 2 commits into
mainfrom
feat/qlty-gate
Jun 4, 2026
Merged

feat(ci): add qlty gate and weekly health scan#67
williaby merged 2 commits into
mainfrom
feat/qlty-gate

Conversation

@williaby
Copy link
Copy Markdown
Contributor

@williaby williaby commented Jun 3, 2026

Adds qlty-gate job (PR diff gate, fail-level medium) and qlty-health job (weekly Monday scan, informational). Depends on ByronWilliamsCPA/.github#188 merging first. After both merge, PATCH org ruleset 17200214 to add qlty-gate / Qlty Gate to required_status_checks.

Copilot AI review requested due to automatic review settings June 3, 2026 04:50
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 3, 2026

Warning

Review limit reached

@williaby, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 34 minutes and 51 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 40feda84-1e28-4da2-a0b6-70f0a34ea91f

📥 Commits

Reviewing files that changed from the base of the PR and between eeb111f and 4e598e3.

📒 Files selected for processing (2)
  • .github/workflows/qlty.yml
  • CHANGELOG.md
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/qlty-gate

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Jun 3, 2026

⚠️ Deprecation Warning: The deny-licenses option is deprecated for possible removal in the next major release. For more information, see issue 997.

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
actions/ByronWilliamsCPA/.github/.github/workflows/python-qlty-gate.yml 1561a3ef04892ffd6c4a0c4c46fdf1de5a34ed02 UnknownUnknown

Scanned Files

  • .github/workflows/qlty.yml

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Adds Qlty-based quality enforcement and monitoring to the repo’s CI posture by introducing a PR diff “gate” check and a scheduled full-codebase “health” scan, alongside the existing coverage upload integration.

Changes:

  • Extend the existing Qlty workflow to run on pull_request, schedule, and workflow_dispatch events.
  • Add a qlty-gate job for PR diff scanning (blocking at medium+ severity).
  • Add a qlty-health job for a weekly full scan (informational via no-fail: true).

Comment on lines 17 to 19
concurrency:
group: qlty-coverage-${{ github.event.workflow_run.head_branch }}
group: qlty-${{ github.event.workflow_run.head_branch || github.ref }}
cancel-in-progress: true
Comment thread .github/workflows/qlty.yml Outdated
# Check name: "qlty-gate / Qlty Gate" -- required by org docs-tier ruleset.
qlty-gate:
if: github.event_name == 'pull_request'
uses: ByronWilliamsCPA/.github/.github/workflows/python-qlty-gate.yml@040026ab682aa4b9ef491750d62cdd1592cdb659
Comment thread .github/workflows/qlty.yml Outdated
# Remove no-fail once existing qlty debt is resolved.
qlty-health:
if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch'
uses: ByronWilliamsCPA/.github/.github/workflows/python-qlty-gate.yml@040026ab682aa4b9ef491750d62cdd1592cdb659
@williaby
Copy link
Copy Markdown
Contributor Author

williaby commented Jun 4, 2026

PR Review

BUILD FAILING (invisible in the Checks tab): the qlty.yml workflow startup-failed on this PR head (conclusion=failure, 0 jobs scheduled). A startup failure creates no check-run, so gh pr checks shows nothing failing; the green "qlty check" is the separate qlty.sh App, not this gate.

Critical (must fix before merge)

[CI/reusable-workflow] qlty.yml L41 and L55: both qlty-gate and qlty-health pin python-qlty-gate.yml@040026ab682aa4b9ef491750d62cdd1592cdb659, a commit that is not reachable from ByronWilliamsCPA/.github main.

Evidence:

  • compare main...040026ab returns diverged, ahead_by: 1, behind_by: 5 (not an ancestor of main).
  • PR #188 (which added the workflow) merged as 1561a3ef; its head was 490c0d8e. Neither matches the pinned SHA.
  • .github has delete_branch_on_merge: true and the source branch feat/qlty-gate-reusable now 404s, so 040026ab is orphaned.

GitHub Actions cannot resolve a reusable workflow at an unreachable SHA, so the workflow fails at startup and the intended qlty-gate / Qlty Gate check never appears.

Fix: re-pin both uses: lines to a main-reachable SHA, e.g. the #188 merge commit 1561a3ef04892ffd6c4a0c4c46fdf1de5a34ed02 or current main HEAD 24fe3cfa6805b7f05590a59c4dd39efde8f09496.

Sequencing risk: the plan to add qlty-gate / Qlty Gate to org ruleset 17200214 as a required check must wait until after the re-pin. Marking a startup-failing job as required would make the check never report, permanently blocking every PR in the repo.

Important (should fix)

[supply-chain] Same two lines: the new SHA pins lack the trailing # <version> / # <ref> comment that the existing coverage pin uses (@74c633ac... # main). Without it the pin is unauditable and Renovate cannot map it to a release. Add a version comment when re-pinning.

Notes

  • SonarQube: not applicable (diff is workflow YAML only; not in sonar.sources).
  • CodeRabbit: its green check is misleading here. Its summary comment reports "Review limit reached / rate-limited"; it did not substantively review this PR.

🤖 Generated with Claude Code

williaby and others added 2 commits June 4, 2026 15:12
Adds qlty-gate job (PR diff mode, fail-level medium) and qlty-health
job (weekly full scan, informational) alongside existing coverage upload.
Refs: ByronWilliamsCPA/.github#188

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The qlty-gate and qlty-health jobs pinned
python-qlty-gate.yml@040026ab, a pre-merge commit from the
ByronWilliamsCPA/.github PR #188 branch that is not reachable from that
repo's main (the source branch was deleted on merge). GitHub Actions
cannot resolve a reusable workflow at an unreachable SHA, so qlty.yml
failed at startup on every pull_request event (0 jobs scheduled), and
the intended "qlty-gate / Qlty Gate" check never appeared.

Re-pin both jobs to 1561a3ef, the #188 merge commit on .github main,
which exposes the same input interface (fail-level, check-all, no-fail,
upstream) and the same contents: read permissions. Add a CHANGELOG
entry documenting the gate and weekly health scan.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@williaby
Copy link
Copy Markdown
Contributor Author

williaby commented Jun 4, 2026

PR Fix Summary

Addressed the review findings and rebased onto current main.

CI Fix (Critical): the qlty-gate and qlty-health jobs pinned python-qlty-gate.yml@040026ab, a pre-merge commit from .github#188's branch that is not reachable from .github main (the source branch was deleted on merge). GitHub Actions cannot resolve a reusable workflow at an unreachable SHA, so qlty.yml failed at startup on every pull_request event (0 jobs scheduled) and the qlty-gate / Qlty Gate check never appeared. Re-pinned both jobs to 1561a3ef (the #188 merge commit on .github main), verified to expose the identical input interface and contents: read permissions.

Supply-chain (Important): added a # .github#188 provenance comment to the pins, matching the existing # main convention on the coverage job.

CHANGELOG (Suggested): added a #### CI/CD entry under [Unreleased] for the gate and weekly health scan.

Verification: actionlint PASS, pre-commit (workflow + yaml) PASS, commits GPG-signed, rebased cleanly onto main (eeb111f, #71). After this push, qlty.yml should schedule jobs and the qlty-gate / Qlty Gate check should appear.

Sequencing reminder: hold the org-ruleset change (adding qlty-gate / Qlty Gate to required_status_checks) until the gate check reports on a PR. Marking a startup-failing job as required would permanently block merges.

Generated with Claude Code

@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented Jun 4, 2026

@williaby williaby merged commit d90a302 into main Jun 4, 2026
39 of 40 checks passed
@williaby williaby deleted the feat/qlty-gate branch June 4, 2026 23:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants