feat: implement issue #495 — SonarCloud: miscellaneous findings - #496
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
🤖 CodeAnt AI — Review Status
|
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
📝 WalkthroughWalkthroughThe auto-review workflow now triggers after six named CI and security workflows instead of only the ChangesWorkflow updates
Estimated code review effort: 1 (Trivial) | ~2 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 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 |
PR Summary by QodoAlign auto-review triggers with repository CI workflows
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
20 rules 1.
|
Superseded by automated re-review at
|
…run allowlist Sync the readiness-gate trigger with main and merge in upstream changes. The allowlist previously omitted two required-check workflows, so the readiness gate never re-evaluated if either was the last check to finish. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Dev-Lead — waiting on PR blockers (intent: review-changes)PR: #496 |
|
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. |
|
|
Advisory bots were rate-limited; auto-approval is withheld until they recover. pr-review-sweep will re-review this PR after 2026-08-02T02:47:00Z. |
Dev-Lead — fix-bot-comment (no-changes)Agent reasoning |
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: b1906ff3ef03e3b312adfb0784b3a0d240ec1684
Review mode: triage-approved (single reviewer)
Summary
Single-file workflow config change: replaces the placeholder workflow_run trigger ("CI" plus a TODO comment) in .github/workflows/pr-auto-review.yml with the repo's six real workflow names. All six names ('CI Pipeline', 'Node.js Tests', 'Coverage', 'Playwright UI Tests', 'AgentShield', 'Dependency audit') were verified against the repo's actual workflow list via the GitHub API — all match exactly. This resolves the SonarCloud S1135 (TODO) finding and the earlier qodo review finding about omitted required workflows.
Linked issue analysis
Closes #495 (SonarCloud: miscellaneous findings — 1 INFO finding, rule githubactions:S1135, a TODO comment in .github/workflows/pr-auto-review.yml). The diff removes the TODO comment and completes the task it described, which is a real fix (no NOSONAR suppression). SonarCloud quality gate passed on this PR, satisfying the issue's acceptance criteria.
Findings
- Triage assessment confirmed: LOW risk. The change touches only the workflow_run trigger list — no permissions, secrets, script blocks, or action pins are modified; no GitHub Actions security smells introduced.
- Prior review finding (qodo: required workflows AgentShield / Dependency audit omitted from the allowlist) is addressed by this commit — both are now included, and the review thread is resolved/outdated.
- Workflow-name correctness verified against the repo's live workflow list: all six trigger entries match actual workflow name: fields exactly.
- Secret scan: the run_secret_scanning MCP tool is not available in this run; gitleaks CI check passed and no secret-like content appears in the diff.
- No unresolved review threads and no unanswered human-reviewer questions.
CI status
All checks green: CI Pipeline (build-and-test), Node.js Tests, Coverage, Playwright UI Tests, AgentShield, dependency-audit (npm audit), CodeQL (actions/js-ts/python), SonarCloud quality gate, gitleaks secret scan, autofix, Graphite AI review — all SUCCESS. Remaining entries are SKIPPED ecosystem audits (pnpm/go/cargo/pip) and dependabot-automerge, which do not apply.
Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: b1906ff3ef03e3b312adfb0784b3a0d240ec1684
Review mode: triage-approved (single reviewer)
Summary
Replaces the placeholder workflow_run trigger list in .github/workflows/pr-auto-review.yml with the repository's six actual workflow names (CI Pipeline, Node.js Tests, Coverage, Playwright UI Tests, AgentShield, Dependency audit), removing the associated TODO comment flagged by SonarCloud.
Linked issue analysis
Closes #495 (SonarCloud finding githubactions:S1135 — TODO comment in pr-auto-review.yml). The PR removes the TODO and substitutes the real workflow names, which is exactly the resolution the issue calls for. The issue is now closed and the SonarCloud quality gate passes on this PR.
Findings
- No security-relevant changes: no permissions modifications, no untrusted-input interpolation, no PR-code checkout — only the list of workflow names that re-trigger review readiness checks.
- Workflow names in the new list match the repository's CI checks observed on this PR (CI Pipeline/build-and-test, Node.js Tests, Coverage, Playwright UI Tests, AgentShield, Dependency audit).
- Secret scan: gitleaks CI check passed; the run_secret_scanning MCP tool was unavailable in this environment (noted, non-blocking). No secret-like content in the diff.
- Triage assessment (low-risk) confirmed. The prior advisory-bot rate-limit hold has cleared: Qodo, CodeRabbit, CodeAnt, and SonarCloud all completed with no blocking findings.
- The single review thread is resolved (and outdated); no unanswered human-reviewer questions.
CI status
All required checks green at b1906ff3ef03e3b312adfb0784b3a0d240ec1684: build-and-test, Node.js Tests, Coverage, Playwright UI Tests, AgentShield, dependency-audit (npm audit), CodeQL (actions/js-ts/python), SonarCloud quality gate, Secret scan (gitleaks), autofix. Remaining entries are conditionally skipped ecosystem audits.
Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.
* feat: implement issue #495 — SonarCloud: miscellaneous findings * chore(ci): apply prettier/eslint auto-fixes * fix: add AgentShield and Dependency audit to pr-auto-review workflow_run allowlist Sync the readiness-gate trigger with main and merge in upstream changes. The allowlist previously omitted two required-check workflows, so the readiness gate never re-evaluated if either was the last check to finish. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Rachel Petry <Rachel.L.Petry@gmail.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
* feat: implement issue #495 — SonarCloud: miscellaneous findings * chore(ci): apply prettier/eslint auto-fixes * fix: add AgentShield and Dependency audit to pr-auto-review workflow_run allowlist Sync the readiness-gate trigger with main and merge in upstream changes. The allowlist previously omitted two required-check workflows, so the readiness gate never re-evaluated if either was the last check to finish. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Rachel Petry <Rachel.L.Petry@gmail.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…eview.yml-on (#523) * Create README.md * Create code.gs * Create config.gs * Update README.md * Update README.md * enhanced Readme * ci: add CodeQL analysis workflow for PRs * feat(tests): add Jest tests, mocks, setup, and CI workflow * docs: add agents.md (canonical AGENTS.md guidance adapted) * docs: normalize to AGENTS.md and add canonical guidance * feat(calendar-to-sheets): add package implementation, tests, and README * chore(calendar-to-sheets): add GAS wrapper (code.gs) and config (config.gs); document files in README * Move scripts into src/, update tests/README/jest config, regenerate coverage * calendar-to-sheets: export GAS wrapper for testing; add test for syncAllCalendarsToSheetsGAS to handle multiple configs * Initial plan * Initial plan * Initial plan * Initial plan * Initial plan * Initial plan * Initial plan * Handle missing or malformed config gracefully - Modified getConfigs() to return legacy/default config when SYNC_CONFIGS is empty array - Added null checks in getCheckpointKey() to handle null cfg - Added null checks in syncAllCalendarsToSheetsGAS() error logging - Added comprehensive tests for empty and malformed SYNC_CONFIGS scenarios - All tests passing Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Initial plan * feat(codeql): upgrade CodeQL action versions to v3 for improved analysis * feat(tests): add tests for full resync functionality and error handling in calendar sync * Initial plan * fix: remove empty lines after unused variable cleanup Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Initial plan * Initial plan * Initial plan * Initial plan * fix(calendar-to-sheets): improve regex to catch leading whitespace/control chars before formula injection Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * test(calendar-to-sheets): cover ensureHeader path * Initial plan * Issue #24 - Add document rebuild capability to gmail-to-drive-by-labels (#25) * Initial plan * Add rebuild doc functionality to gmail-to-drive-by-labels Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Address code review feedback and improve documentation clarity Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Use setText('') for more efficient document clearing Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Update test-utils/mocks.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/gmail-to-drive-by-labels/tests/rebuild.test.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Address code review feedback: fix imports, comments, and add error handling tests Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Implement batching and resumable state for rebuild to handle large labels Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Fix logging message for remaining threads calculation Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Fix syntax error in mocks.js - add missing comma after setText Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Add comprehensive tests for gmail-to-drive-by-labels/code.gs functions Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Improve test coverage with additional edge case tests - 99.48% lines Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Add istanbul ignore comments for uncoverable defensive error handling Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Make rebuild batch size configurable with default of 250 Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Remove istanbul ignore comments and adjust coverage threshold to 99% Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Add rule to AGENTS.md prohibiting coverage ignore comments Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore: add pre-commit config, commitlint, and husky hooks for code quality (#35) * Initial plan * Add TypeScript, ESLint, Prettier with CI Pipeline Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Fix CI: upgrade Node.js from 18 to 20 (ESLint 10 requires Node 20+) Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Fix prettier formatting in AGENTS.md Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Fix createThread addLabel using arrow function with this Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Update package.json Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update test-utils/mocks.js Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update .github/workflows/ci.yml Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Update src/calendar-to-sheets/code.gs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Upgrade jest to v30 to align with @types/jest v30 Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Fix prettier CI failure, add husky pre-commit hook with shared check script Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * chore: add .pre-commit-config.yaml with check-merge-conflict and check-yaml hooks Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * Also enable typecheck in pre-commit hook Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> * chore: add commitlint with conventional commits config and commit-msg hook Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: don-petry <36422719+don-petry@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * chore(deps): bump github/codeql-action from 3 to 4 (#41) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@v3...v4) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore(deps): bump actions/checkout from 4 to 6 (#43) Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@v4...v6) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add Claude Code GitHub Action (#81) * Add Claude Code GitHub Action for PR reviews * fix: address review feedback on Claude Code workflow - Restrict issue_comment trigger to PR comments only - Add author-association check (OWNER/MEMBER/COLLABORATOR) - Add pull_request_review_comment trigger - Add timeout-minutes to prevent runaway jobs Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: use CLAUDE_CODE_OAUTH_TOKEN org secret Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: add id-token: write permission for OAuth auth Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address remaining review comments - Pin claude-code-action to commit SHA for supply-chain safety - Add fork PR guard (secrets unavailable for fork PRs) - Scope pull_request trigger to main branch - Use >- folded scalar for if expression Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: DJ <dj@Rachels-MacBook-Air.local> Co-authored-by: DJ <dj@Rachels-Air.localdomain> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address OpenSSF Scorecard findings (#91) * fix: address OpenSSF Scorecard findings - Add SECURITY.md (#85) - Scope workflow token permissions to least privilege (#86) - Pin all GitHub Action dependencies to commit SHAs (#87) - Update vulnerable dependencies via npm audit fix (#88) - Add schedule trigger to CodeQL for full SAST coverage (#89) - Ensure CI and SAST run on all pushes and PRs (#90) Closes #85, #86, #87, #88, #89, #90 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address PR review comments - Replace permissions: read-all with permissions: {} (deny-by-default) - Use concrete version target (main branch) in SECURITY.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: add actions: write permission for cache and artifact jobs Jobs using actions/cache and actions/upload-artifact need actions: write permission at the job level to function correctly with deny-by-default workflow permissions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore(ci): apply prettier/eslint auto-fixes * chore: re-trigger CI checks * fix: use claude_code_oauth_token instead of anthropic_api_key The action has separate inputs for API keys vs OAuth tokens. CLAUDE_CODE_OAUTH_TOKEN is an OAuth token, not an API key. --------- Co-authored-by: DJ <dj@Rachels-Air.localdomain> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore(deps): bump anthropics/claude-code-action from 1.0.80 to 1.0.82 (#96) Bumps [anthropics/claude-code-action](https://github.com/anthropics/claude-code-action) from 1.0.80 to 1.0.82. - [Release notes](https://github.com/anthropics/claude-code-action/releases) - [Commits](anthropics/claude-code-action@094bd24...88c168b) --- updated-dependencies: - dependency-name: anthropics/claude-code-action dependency-version: 1.0.82 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * ci: skip Claude Code reviewer on Dependabot PRs (#100) * ci: skip Claude Code reviewer on Dependabot PRs The claude workflow fails on Dependabot PRs because secrets (CLAUDE_CODE_OAUTH_TOKEN) are not available to the dependabot actor. This blocks the dependabot auto-merge automation when claude is a required status check. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ci: use PR author login instead of github.actor for Dependabot check github.actor reflects who triggered the workflow run (e.g. a maintainer reopening), not the PR author. Use github.event.pull_request.user.login for reliable Dependabot detection, consistent with dependabot-automerge.yml. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: DJ <dj@Rachels-Air.localdomain> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ci: move Dependabot exclusion to step-level in Claude workflow (#101) * ci: move Dependabot exclusion to step-level in Claude workflow Move the dependabot[bot] check from job-level `if` to step-level `if` so the claude job runs and reports SUCCESS (with a skipped step) instead of being skipped entirely. A skipped job doesn't satisfy required status checks in branch protection, but a successful job with a skipped step does. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ci: guard step-level Dependabot check for pull_request events only The step-level if needs to handle issue_comment and pull_request_review_comment events where github.event.pull_request is not present. Use event_name guard to avoid null dereference. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: DJ <dj@Rachels-Air.localdomain> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: enable Claude issue trigger per org CI standard (#119) Add issues:[labeled] event trigger and claude label support so Claude can work issues autonomously — reading the issue, creating a branch, implementing the fix, and opening a PR. Changes: - Add issues:[labeled] trigger to on: block - Add issue label condition to job if: guard - Upgrade contents permission to write (needed for branch creation) - Pin claude-code-action to v1.0.89 (6e2bd528) - Add label_trigger: "claude" input - Add dependabot skip condition on step - Add permission comment for contents: write Matches the standard defined in petry-projects/.github#24. Co-authored-by: DJ <dj@Rachels-MacBook-Air.local> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: add checkout step to Claude workflow for issue-triggered mode (#120) * fix: add checkout step to Claude workflow for issue-triggered mode The claude-code-action runs git fetch/checkout internally during branch setup but requires the repository to already be cloned on the runner. Without actions/checkout, issue-triggered runs fail with: fatal: not a git repository Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * style: apply prettier formatting to claude.yml Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: DJ <dj@Rachels-MacBook-Air.local> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: add concurrency group to dependabot update workflow (#130) Prevents overlapping runs when multiple pushes to main happen in quick succession. Co-authored-by: DJ <dj@Rachels-MacBook-Air.local> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: split Claude workflow into interactive + issue automation jobs (#132) * feat: split Claude workflow into interactive + issue automation jobs Align with org CI standard. The single `claude` job is now split into: - `claude`: interactive mode for PR reviews and @claude mentions - `claude-issue`: automation mode triggered by the `claude` label on issues, with explicit allowed tools, progress tracking, and a structured prompt that implements, opens a PR, self-reviews, checks CI, and notifies owners. Adds `actions: read` and `checks: read` permissions to both jobs. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: add concurrency guard and comment tools to claude-issue job - Add concurrency group keyed on issue number to prevent duplicate runs - Add gh pr comment and gh issue comment to allowedTools for review replies, thread resolution, and code owner tagging - Remove Bash(cat:*) since the Read tool already covers file reads Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * style: use single quotes for prettier consistency Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: DJ <dj@Rachels-MacBook-Air.local> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: switch to org-level reusable Claude Code workflow (#134) * chore: add CODEOWNERS file for code owner review enforcement Resolves missing-codeowners compliance finding by adding .github/CODEOWNERS with @don-petry as the default owner for all files in the repository. Closes #113 Co-authored-by: don-petry <don-petry@users.noreply.github.com> * chore(workflows): adopt centralized stubs from petry-projects/.github (#149) Replace inline copies of standardized workflows with the canonical thin caller stubs from petry-projects/.github/standards/workflows/. Each stub delegates to a versioned reusable workflow at petry-projects/.github/.github/workflows/<name>-reusable.yml@v1, so future updates to the standard propagate automatically and drift is caught by the org-wide compliance audit. See petry-projects/.github#87, #88, #89 for context. Co-authored-by: DJ <dj@Rachels-MacBook-Air.local> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ci: add codeql.yml with javascript-typescript and actions scanning (#153) Renames codeql-analysis.yml → codeql.yml to satisfy the compliance requirement (issue #103). Updates the configuration to match org standards: - Use javascript-typescript language (required for repos with package.json) - Add actions language (required for repos with .github/workflows/*.yml) - Multi-language matrix strategy with per-language category tags - Weekly schedule aligned to org standard (Friday 17:00 UTC) Closes #103 Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: don-petry <don-petry@users.noreply.github.com> * ci: add auto-rebase workflow and check_run trigger to claude.yml * add check_run trigger to claude.yml * add auto-rebase.yml workflow * chore: add bot accounts to CODEOWNERS for auto-merge support Add @petry-projects-pr-review-agent and @dependabot-automerge-petry as co-owners so their approvals satisfy require_code_owner_review in the pr-quality ruleset. * chore(deps): bump github/codeql-action from 4.35.1 to 4.35.3 (#244) Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.35.1 to 4.35.3. - [Release notes](https://github.com/github/codeql-action/releases) - [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md) - [Commits](github/codeql-action@c10b806...e46ed2c) --- updated-dependencies: - dependency-name: github/codeql-action dependency-version: 4.35.3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * chore: standardize CODEOWNERS on @petry-projects/org-leads (#252) Per the org-wide standard defined in petry-projects/.github (standards/codeowners-standard.md), replace individual user/bot listings with the @petry-projects/org-leads team. Closes the CODEOWNERS gap from pr-review-agent#27. Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> * chore(dev-lead): remove claude.yml — replaced by dev-lead.yml (#277) * chore: ignore .dev-lead directory (#291) feat: implement issue #255 — Compliance: codeowners-no-catchall Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> * feat: implement issue #256 — Compliance: non-stub-dependabot-rebase.yml (#293) Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> * ci: remove drift codeql.yml and enable GitHub-managed default setup (#216) Per ci-standards §2, the GitHub-managed default setup is the required approach for CodeQL scanning. A per-repo codeql.yml is treated as drift by the compliance audit and causes double CI billing when both run. Enabled default setup via API (state=configured, query_suite=default, run_id=24189972152). Removes the inline codeql.yml workflow file. Closes #168 Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: don-petry <don-petry@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore(deps-dev): bump fast-uri from 3.1.1 to 3.1.2 in the npm_and_yarn group across 1 directory (#263) chore(deps-dev): bump fast-uri Bumps the npm_and_yarn group with 1 update in the / directory: [fast-uri](https://github.com/fastify/fast-uri). Updates `fast-uri` from 3.1.1 to 3.1.2 - [Release notes](https://github.com/fastify/fast-uri/releases) - [Commits](fastify/fast-uri@v3.1.1...v3.1.2) --- updated-dependencies: - dependency-name: fast-uri dependency-version: 3.1.2 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot-automerge-petry[bot] <270452309+dependabot-automerge-petry[bot]@users.noreply.github.com> * feat: implement issue #254 — Compliance: codeowners-org-leads-not-first (#300) * feat: implement issue #254 — Compliance: codeowners-org-leads-not-first * ci: trigger CI for compliance PR #300 --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: implement issue #173 — Compliance: wrong-limit-npm (#298) * feat: implement issue #173 — Compliance: wrong-limit-npm * ci: trigger CI for compliance PR #298 * ci: trigger CI for compliance PR --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * feat: implement issue #258 — Compliance: check-suite-auto-trigger-347564 (#307) Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> * feat: implement issue #257 — Compliance: check-suite-auto-trigger-1236702 (#349) * feat: implement issue #257 — Compliance: check-suite-auto-trigger-1236702 * chore(ci): apply prettier/eslint auto-fixes * chore: apply manual instructions [skip ci-relay] --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * rollout: deploy pr-review-mention standard workflow (#353) * rollout: deploy pr-review-mention standard workflow * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> * feat: add pr-auto-review.yml workflow (compliance automation Phase 2) (#355) * feat: add pr-auto-review.yml workflow (compliance automation Phase 2) * fix(bot): address bot feedback [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] * chore: apply manual instructions [skip ci-relay] --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> * feat: implement issue #164 — Compliance: delete_branch_on_merge (#362) * feat: implement issue #164 — Compliance: delete_branch_on_merge * trigger: dev-lead workflow execution via synchronize event * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Code Bot <noreply@anthropic.com> * ci: inline NOSONAR(S7637) markers on first-party caller stubs (#549 canonical migration) (#413) * ci: inline NOSONAR(S7637) marker on add-to-project.yml channel ref (#549) * ci: inline NOSONAR(S7637) marker on agent-shield.yml channel ref (#549) * ci: inline NOSONAR(S7637) marker on auto-rebase.yml channel ref (#549) * ci: inline NOSONAR(S7637) marker on dependabot-automerge.yml channel ref (#549) * ci: inline NOSONAR(S7637) marker on dependabot-rebase.yml channel ref (#549) * ci: inline NOSONAR(S7637) marker on dependency-audit.yml channel ref (#549) * ci: inline NOSONAR(S7637) marker on dev-lead.yml channel ref (#549) * ci: inline NOSONAR(S7637) marker on pr-auto-review.yml channel ref (#549) * ci: inline NOSONAR(S7637) marker on pr-review-mention.yml channel ref (#549) * ci: inline NOSONAR(S7637) marker on pr-review.yml channel ref (#549) * ci: fix prettier formatting on NOSONAR(S7637) markers in workflows The NOSONAR markers added in previous commits had incorrect spacing (two spaces before the comment marker) and missing newlines at EOF. Prettier now formats these files correctly with single space before comments and proper line endings. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com> * ci: migrate pr-auto-review → @pr-auto-review/stable (canary) (#435) ci: repin pr-auto-review → @pr-auto-review/stable (canary migration) * chore: sync 8 org-standard workflow stub(s) from petry-projects/.github (#436) * chore: sync 8 org-standard workflow stub(s) from petry-projects/.github * chore: sync 8 org-standard workflow stub(s) from petry-projects/.github * chore: sync 8 org-standard workflow stub(s) from petry-projects/.github * chore: sync 8 org-standard workflow stub(s) from petry-projects/.github * chore: sync 8 org-standard workflow stub(s) from petry-projects/.github * chore: sync 8 org-standard workflow stub(s) from petry-projects/.github * chore: sync 8 org-standard workflow stub(s) from petry-projects/.github * chore: sync 8 org-standard workflow stub(s) from petry-projects/.github * fix(bot): address bot feedback [skip ci-relay] --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> * chore: sync 1 org-standard workflow stub(s) from petry-projects/.github (#474) * chore: sync 1 org-standard workflow stub(s) from petry-projects/.github * chore: dev-lead update (review-changes) [skip ci-relay] * fix(bot): address bot feedback [skip ci-relay] --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> * chore(deps-dev): bump fast-uri from 3.1.2 to 3.1.4 in the npm_and_yarn group across 1 directory (#469) chore(deps-dev): bump fast-uri Bumps the npm_and_yarn group with 1 update in the / directory: [fast-uri](https://github.com/fastify/fast-uri). Updates `fast-uri` from 3.1.2 to 3.1.4 - [Release notes](https://github.com/fastify/fast-uri/releases) - [Commits](fastify/fast-uri@v3.1.2...v3.1.4) --- updated-dependencies: - dependency-name: fast-uri dependency-version: 3.1.4 dependency-type: indirect dependency-group: npm_and_yarn ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: petry-projects-dependabot-automrg[bot] <270452309+petry-projects-dependabot-automrg[bot]@users.noreply.github.com> * chore: sync 4 org-standard workflow stub(s) from petry-projects/.github (#479) * chore: sync 4 org-standard workflow stub(s) from petry-projects/.github * chore: sync 4 org-standard workflow stub(s) from petry-projects/.github * chore: sync 4 org-standard workflow stub(s) from petry-projects/.github * chore: sync 4 org-standard workflow stub(s) from petry-projects/.github * Feature Proposal: AI-Powered Gemini Semantic Email Classifier (#492) * docs: add AI-Powered Gemini Semantic Classifier feature proposal * docs: update proposal with 7-Domain Standard Taxonomy Matrix & MECE Validation * docs: add Inbox Preservation rule (processing to Drive does NOT remove from INBOX) * docs: use Single Global Processed Label marker to eliminate sidebar label duplication * docs: detail Idempotency & Single-Click Reprocessing workflows * feat: add native Gemini AI classifier and auto-filter engine module * chore: dev-lead update (review-changes) [skip ci-relay] * chore: dev-lead update (review-changes) [skip ci-relay] * chore: dev-lead update (review-changes) [skip ci-relay] * fix(ci): auto-fix for SonarCloud Code Analysis [skip ci-relay] * fix(ci): auto-fix for SonarCloud Code Analysis [skip ci-relay] * fix(ci): auto-fix for SonarCloud Code Analysis [skip ci-relay] * chore: dev-lead update (review-changes) [skip ci-relay] * fix(ci): auto-fix for SonarCloud Code Analysis [skip ci-relay] * fix(reviews): address review comments [skip ci-relay] * fix(ci): auto-fix for SonarCloud Code Analysis [skip ci-relay] * fix(ci): auto-fix for SonarCloud Code Analysis [skip ci-relay] * fix(ci): auto-fix for SonarCloud Code Analysis [skip ci-relay] * fix(ci): auto-fix for SonarCloud Code Analysis [skip ci-relay] * docs: detail Unclassified & Edge-Case email handling safety nets * feat: add native Google Apps Script GitHub Sync module (UrlFetchApp -> GitHub REST API) * chore(ci): apply prettier/eslint auto-fixes * fix(bot): address bot feedback [skip ci-relay] * fix(bot): address bot feedback [skip ci-relay] * test: add performance and scalability benchmark test suite for long documents and SHA retries * feat: enhance gitHubSync with targeted insertion and 409 SHA collision retries * chore: dev-lead update (review-changes) [skip ci-relay] * feat: add Option A multi-account user email resolution and deployment guide * chore(ci): apply prettier/eslint auto-fixes * feat: add modelEndpoint to classifier config The classifyEmailWithGemini function requires config.modelEndpoint to be defined, but it was missing from the returned config object in getClassifierConfig(). Added the Gemini 1.5 Flash model endpoint to resolve the configuration dependency. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com> * feat: add appsscript.json manifest for clasp deployment * chore: add .claspignore to exclude Node.js Jest test files from Apps Script runtime * fix: export getAiClassifierConfig and standalone GAS logic * fix: safe Gemini API HTTP status checking and response guards * fix: update Gemini API endpoint to gemini-2.0-flash with automatic fallbacks * feat: add listAvailableGeminiModels helper and expanded model endpoints * feat: set gemini-3.1-flash-lite as 2nd fallback endpoint * feat: add 404 auto-create note functionality with Progressive Disclosure front-matter * feat: reorder endpoints to highest-level model first and add HTTP 429 failover * feat: set Gemini 3.5 Flash Lite as primary endpoint #1 * feat: set Gemini 3.5 Flash Lite as #1 and Gemini 3.1 Flash Lite as #2 * chore: remove deprecated 1.x and 2.x Gemini models, use 3.x models only * chore: dev-lead update (review-changes) [skip ci-relay] * feat: add Family/DJ-Rachel sub-label and strict prompt classification rules * feat: exclude health newsletters and news bulletins from 04_Family_Health * feat: add setupFiveMinuteTrigger and stopAllTriggers for automated background classification * feat: map student college/career planning meetings to Family/School * feat: map MyBroodMinder alerts to 07_Community_NonProfit with sub-label Projects/Beekeeping * feat: map ParentSquare and MCAA school emails to Family/School-Toby * fix: add 2-second rate limit backoff delay on HTTP 429 and stabilize model endpoints * feat: parse and honor Retry-After header and retryDelay on HTTP 429 * chore: strictly enforce Gemini 3.x models ONLY * feat: add Gemma 4 31B (gemma-4-31b-it) as primary endpoint #1 * fix: add extractJsonSubstring helper to parse Gemma 4 31B markdown formatting * feat: exclude tech webinars and commercial store marketing from core domain tags * feat: add automated action execution (trash, archive, mark_read) and Gmail category routing --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Claude Haiku 4.5 <noreply@anthropic.com> * feat: implement issue #506 — Compliance: stub-surface-drift-pr-auto-review.yml-on (#507) Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> * feat: implement issue #495 — SonarCloud: miscellaneous findings (#496) * feat: implement issue #495 — SonarCloud: miscellaneous findings * chore(ci): apply prettier/eslint auto-fixes * fix: add AgentShield and Dependency audit to pr-auto-review workflow_run allowlist Sync the readiness-gate trigger with main and merge in upstream changes. The allowlist previously omitted two required-check workflows, so the readiness gate never re-evaluated if either was the last check to finish. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Rachel Petry <Rachel.L.Petry@gmail.com> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> * chore: sync 1 org-standard workflow stub(s) from petry-projects/.github (#489) * chore: sync 1 org-standard workflow stub(s) from petry-projects/.github (#508) * chore: sync 1 org-standard workflow stub(s) from petry-projects/.github * fix(reviews): address review comments [skip ci-relay] --------- Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> * feat: implement issue #521 — Compliance: stub-surface-drift-pr-auto-review.yml-on * chore: dev-lead update (review-changes) [skip ci-relay] * chore: dev-lead update (review-changes) [skip ci-relay] * chore: dev-lead update (review-changes) [skip ci-relay] --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: DJ <dj@Rachels-MacBook-Air.local> Co-authored-by: DJ <dj@Rachels-Air.localdomain> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: don-petry <don-petry@users.noreply.github.com> Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: dependabot-automerge-petry[bot] <270452309+dependabot-automerge-petry[bot]@users.noreply.github.com> Co-authored-by: petry-projects-dependabot-automrg[bot] <270452309+petry-projects-dependabot-automrg[bot]@users.noreply.github.com> Co-authored-by: Rachel Petry <Rachel.L.Petry@gmail.com>



User description
Closes #495
Implemented by dev-lead agent. Please review.
Summary by CodeRabbit
CodeAnt-AI Description
Keep pull request review readiness up to date as all required checks finish
What Changed
Impact
✅ Fewer stale PR readiness results✅ Reviews update after security and dependency checks complete💡 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.