feat: implement issue #1455 — [Fleet Monitor] petry-projects/.github-private — .github/workflows/ci.yml - #1456
Conversation
…private — .github/workflows/ci.yml
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
🤖 CodeAnt AI — Review Status
|
|
Warning Review limit reached
Next review available in: 44 minutes Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available. How can I continue?After more reviews become available, a review can be triggered using the To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews. How do review limits work?CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability. For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window. Please refer docs for additional details. Review details⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThe repository now excludes ChangesMarkdownlint vendored dependency exclusion
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested labels: 🚥 Pre-merge checks | ✅ 1 | ❌ 4❌ Failed checks (4 warnings)
✅ Passed checks (1 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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. Comment |
Dependency Advisory
Risk Legend
DetailsAll dependency changes appear low-risk. No action required.
|
There was a problem hiding this comment.
Code Review
This pull request removes the accidentally committed vendored bats dependency and updates both .gitignore and .markdownlint-cli2.jsonc to exclude node_modules/. It also introduces a new test suite, tests/test_markdownlint_config.bats, to ensure that node_modules/ is not tracked by git and is correctly ignored by the markdown linter. The feedback suggests refactoring the newly added behavioral test to leverage the built-in $BATS_TEST_TMPDIR variable for automatic cleanup and to enforce a strict exit status check of 1 for negative grep assertions to prevent false positives.
PR Summary by QodoFix markdownlint CI regression: ignore node_modules and add guard tests
AI Description
Diagram
High-Level Assessment
Files changed (4)
|
Dev-Lead — waiting on PR blockers (intent: review-changes)PR: #1456 |
|
Note @don-petry I reviewed this PR and no code changes were needed, but it still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews), so I cannot mark it done yet. I'll re-check automatically. |
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tests/test_markdownlint_config.bats`:
- Around line 41-44: Update the test ".markdownlint-cli2.jsonc ignores
node_modules" to assert that the ignores collection contains the exact pattern
"node_modules/**", rather than accepting any entry merely containing
"node_modules".
- Around line 47-55: Extend the “node_modules/ is not tracked by git” test to
directly validate the ignore rule by running git check-ignore with --no-index
against a representative path such as node_modules/example/package.json, and
assert the command succeeds. Keep the existing git ls-files assertions to
preserve the tracked-file regression check.
- Around line 62-70: Update the CI workflow that runs
tests/test_markdownlint_config.bats to install a pinned markdownlint-cli2 before
executing the test, or explicitly fail when the CLI is unavailable, so the
behavioral ignore-rule check cannot silently skip. Use the existing lint
workflow’s test step and dependency-install mechanism.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 8c1a1d59-1066-4de3-93dc-db62a12135d6
⛔ Files ignored due to path filters (33)
node_modules/.bin/batsis excluded by!**/node_modules/**node_modules/.package-lock.jsonis excluded by!**/node_modules/**node_modules/bats/LICENSE.mdis excluded by!**/node_modules/**node_modules/bats/README.mdis excluded by!**/node_modules/**node_modules/bats/bin/batsis excluded by!**/node_modules/**node_modules/bats/install.shis excluded by!**/node_modules/**node_modules/bats/lib/bats-core/common.bashis excluded by!**/node_modules/**node_modules/bats/lib/bats-core/formatter.bashis excluded by!**/node_modules/**node_modules/bats/lib/bats-core/preprocessing.bashis excluded by!**/node_modules/**node_modules/bats/lib/bats-core/semaphore.bashis excluded by!**/node_modules/**node_modules/bats/lib/bats-core/test_functions.bashis excluded by!**/node_modules/**node_modules/bats/lib/bats-core/tracing.bashis excluded by!**/node_modules/**node_modules/bats/lib/bats-core/validator.bashis excluded by!**/node_modules/**node_modules/bats/lib/bats-core/warnings.bashis excluded by!**/node_modules/**node_modules/bats/libexec/bats-core/batsis excluded by!**/node_modules/**node_modules/bats/libexec/bats-core/bats-exec-fileis excluded by!**/node_modules/**node_modules/bats/libexec/bats-core/bats-exec-suiteis excluded by!**/node_modules/**node_modules/bats/libexec/bats-core/bats-exec-testis excluded by!**/node_modules/**node_modules/bats/libexec/bats-core/bats-format-catis excluded by!**/node_modules/**node_modules/bats/libexec/bats-core/bats-format-junitis excluded by!**/node_modules/**node_modules/bats/libexec/bats-core/bats-format-prettyis excluded by!**/node_modules/**node_modules/bats/libexec/bats-core/bats-format-tapis excluded by!**/node_modules/**node_modules/bats/libexec/bats-core/bats-format-tap13is excluded by!**/node_modules/**node_modules/bats/libexec/bats-core/bats-gather-testsis excluded by!**/node_modules/**node_modules/bats/libexec/bats-core/bats-preprocessis excluded by!**/node_modules/**node_modules/bats/man/Makefileis excluded by!**/node_modules/**node_modules/bats/man/README.mdis excluded by!**/node_modules/**node_modules/bats/man/bats.1is excluded by!**/node_modules/**node_modules/bats/man/bats.1.ronnis excluded by!**/node_modules/**node_modules/bats/man/bats.7is excluded by!**/node_modules/**node_modules/bats/man/bats.7.ronnis excluded by!**/node_modules/**node_modules/bats/package.jsonis excluded by!**/node_modules/**node_modules/bats/uninstall.shis excluded by!**/node_modules/**
📒 Files selected for processing (5)
.github/workflows/lint.yml.gitignore.markdownlint-cli2.jsoncpackage.jsontests/test_markdownlint_config.bats
💤 Files with no reviewable changes (1)
- package.json
Code Review by Qodo
Context used✅ Compliance rules (platform):
51 rules 1.
|
Superseded by automated re-review at
|
Dev-Lead — fix-reviews (applied)Changes committed and pushed. |
Auto-dismissed (#617): coderabbitai[bot] CHANGES_REQUESTED on a superseded commit. The bot re-reviews the new head automatically — a valid concern will return as a fresh review.
|
Dev-Lead — review-changes (no-changes)No changes were needed for this PR. |
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: d4666595a48a9b1eb29071d1fe1349cdb9a1eebf
Review mode: triage-approved (single reviewer)
Summary
LOW-risk hygiene PR confirming the triage assessment: removes the accidentally vendored node_modules/bats tree and package.json (pure deletions, 0 added lines under node_modules/), adds node_modules/ to .gitignore and .markdownlint-cli2.jsonc ignores, and adds regression tests wired into lint.yml. All three findings from the prior review cycle (at c988fd6) are resolved by the fix commit: markdownlint-cli2@0.23.2 is now installed in the bats CI job so the behavioral test is no longer a silent skip, the ignores assertion checks the exact pattern 'node_modules/**', and the negative grep assertion uses run + status -eq 1 with $BATS_TEST_TMPDIR. All review threads resolved, CI fully green.
Linked issue analysis
Closes #1455 (Fleet Monitor: ci.yml DEGRADED, 27.5% failure rate). Root cause was commit e2a42cf (#1435) accidentally committing node_modules/bats/, whose README.md failed markdownlint on every main push. This PR substantively addresses it: deletes the vendored tree, scopes the markdownlint ignore to node_modules/, gitignores node_modules/, and adds tests/test_markdownlint_config.bats (config validity, exact ignore pattern, git-tracking guard, and a behavioral fixture test proving the ignore is scoped and does not blanket-suppress real findings).
Findings
No new issues. Prior cycle-1 findings all resolved:
- (major, resolved) markdownlint-cli2 absent in CI made the behavioral test a no-op → lint.yml now installs markdownlint-cli2@0.23.2 (exact version) and runs tests/test_markdownlint_config.bats.
- (minor, resolved) loose substring ignores check → now asserts exact pattern 'node_modules/**'.
- (minor, resolved) '! grep -q' false-pass risk → now 'run grep -q' with [ "$status" -eq 1 ]; mktemp replaced with $BATS_TEST_TMPDIR.
Secret scan: gitleaks CI check SUCCESS; run_secret_scanning MCP tool unavailable in this run (noted, not blocking). No secrets, auth, migration, or workflow-security smells in the added content; modified lint.yml is not a frozen caller stub.
CI status
All required checks green: Lint, shellcheck, actionlint, bats, unit-tests, CodeQL (actions + python), gitleaks, SonarCloud quality gate passed, agent-shield, caller-stub-freeze, template-drift, all validators SUCCESS. Skipped entries are conditional jobs (pnpm/pip/cargo/govulncheck audits, dependabot-automerge, Graphite).
Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.
|
Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-08-03T11:54:07Z. |



User description
Closes #1455
Implemented by dev-lead agent. Please review.
CodeAnt-AI Description
Prevent vendored dependency files from breaking Markdown lint checks
What Changed
node_modules, while continuing to report violations in project documentationImpact
✅ Fewer CI lint failures from third-party Markdown✅ No committed vendored dependency files✅ Project documentation violations remain visible💡 Usage Guide
Checking Your Pull Request
Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.
Talking to CodeAnt AI
Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:
This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.
Example
Preserve Org Learnings with CodeAnt
You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:
This helps CodeAnt AI learn and adapt to your team's coding style and standards.
Example
Retrigger review
Ask CodeAnt AI to review the PR again, by typing:
Check Your Repository Health
To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.
Summary by CodeRabbit
Bug Fixes
Tests
Chores