Repository navigation
feat: add pr-auto-review.yml workflow (compliance automation Phase 2) - #355
Conversation
|
Warning Review limit reached
More reviews will be available in 31 minutes and 13 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 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 configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
✨ 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 |
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6b3cf03210
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Pull request overview
Adds a new GitHub Actions workflow stub to trigger the org-level PR auto-review “readiness check” reusable workflow when CI and other relevant PR events complete.
Changes:
- Introduces
.github/workflows/pr-auto-review.ymlas a thin caller topetry-projects/.github/.github/workflows/pr-auto-review-reusable.yml@v2. - Configures triggers for
workflow_run,check_suite,pull_request_review, andpull_requestevents. - Sets minimal workflow/job permissions and passes the
GH_PAT_WORKFLOWSsecret through to the reusable workflow.
Dev-Lead — fix-bot-comment (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate SonarCloud performs static analysis and enforces a Quality Gate on new code introduced in the PR. The diff adds Suggested fix: Remove the three duplicate |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate SonarCloud flagged the PR changes during static analysis. The diff introduces a new Suggested fix: Replace the placeholder |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate The PR introduces two configuration issues that SonarCloud likely flagged. First, the Suggested fix: Remove the four duplicate |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate SonarCloud flagged code quality issues introduced in this PR. The most visible problem is that Suggested fix: Remove the duplicate |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Code Analysis (external quality gate) The Suggested fix: Remove the four duplicate |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Code Analysis (external quality gate) SonarCloud has no GitHub Actions run ID to inspect — it operates as an external quality gate. The PR diff reveals two changes: (1) a new Suggested fix: Remove the duplicate |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate SonarCloud ran against this PR but no source-code changes were introduced — only a new GitHub Actions workflow YAML and duplicate Suggested fix: Remove the duplicate |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate SonarCloud ran analysis against this PR but the Quality Gate did not pass. Since the diff contains only a new GitHub Actions workflow YAML ( Suggested fix: Open the SonarCloud project dashboard, navigate to Administration → Quality Gate, and verify the gate conditions are scoped to "new code" only (not overall code) so that PRs touching only config/infra files are not blocked by pre-existing violations in application code. |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate SonarCloud ran analysis on this PR but the quality gate failed. The diff contains only a new GitHub Actions workflow YAML ( Suggested fix: Open the SonarCloud project dashboard, navigate to the quality gate configuration, and either ensure the gate allows PRs with no analyzable source changes to pass (e.g. add a "new code has no issues" bypass for config-only PRs), or verify the |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate SonarCloud Code Analysis is an external quality gate that requires a Suggested fix: Verify that the |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate SonarCloud triggered a full analysis scan on this PR and the quality gate failed. The PR introduces a new GitHub Actions workflow file ( Suggested fix: Visit the SonarCloud project dashboard for this repository, check the "Quality Gate" tab on the PR analysis, and address the specific issues listed (e.g. resolve any flagged security hotspots or bring code coverage back above the required threshold). |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate SonarCloud is an external quality gate that runs independently of GitHub Actions, so no workflow logs were available — analysis is based on the PR diff. The PR adds Suggested fix: Open the SonarCloud project dashboard, navigate to the Activity → Quality Gate tab for this PR branch, and address the specific rule violation(s) listed there (or, if the gate is misconfigured for non-source files, exclude |
Dev-Lead — review-changes (applied)Changes committed and pushed. |
CI Failure: SonarCloud Code AnalysisStep: Quality Gate SonarCloud flagged 1 Security Hotspot introduced by this PR. The new Suggested fix: Open the SonarCloud Security Hotspots tab for this PR, review the flagged hotspot, and either mark it as "Acknowledged" (if the PAT usage is intentional and scoped correctly) or replace |
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4dc298acf2
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| if: > | ||
| (github.event_name != 'pull_request' && github.event_name != 'pull_request_review') || | ||
| github.event.pull_request.head.repo.fork == false |
There was a problem hiding this comment.
Skip Dependabot PR events before using secrets
For pull_request events opened or synchronized by Dependabot, this fork-only guard still lets same-repo Dependabot PRs call the reusable workflow, but GitHub treats Dependabot-triggered pull_request workflows like forked PRs and withholds normal Actions secrets (see GitHub's Dependabot on Actions docs). In that scenario GH_PAT_WORKFLOWS is empty, so the reusable's API calls fail instead of cleanly waiting for a privileged trigger; either skip github.actor == 'dependabot[bot]' here or provide an identically named Dependabot secret.
Useful? React with 👍 / 👎.
CI Failure: SonarCloud Code AnalysisStep: Quality Gate SonarCloud flagged 21 new Security Hotspots introduced by this PR, causing the Quality Gate to fail. Security Hotspots are code patterns that require a manual security review — they are not confirmed vulnerabilities but areas where insecure usage is possible (e.g. hardcoded credentials, unsafe regex, unvalidated inputs, or permissive GitHub Actions workflow permissions). The newly added Suggested fix: Open the SonarCloud Security Hotspots dashboard for this branch, review each of the 21 hotspots, and either mark them as "Safe" with a justification or remediate the flagged patterns (e.g. tighten |
…#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>
…#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>
…#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>
…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>


Deploy pr-auto-review.yml to enable automatic PR review triggering when CI completes.