diff --git a/.github/workflows/claude-merge-review.yml b/.github/workflows/claude-merge-review.yml new file mode 100644 index 00000000..add768da --- /dev/null +++ b/.github/workflows/claude-merge-review.yml @@ -0,0 +1,36 @@ +# Claude Merge Review Workflow +# +# Triggers: +# - Automatic (enable_merge_review_always: false, default): +# - Dismisses previous approvals when new commits are pushed +# - Automatic (enable_merge_review_always: true): +# - Runs merge review when PR is marked ready for review or new commits are pushed (non-draft PRs only) +# - Assigns risk scores (1-5) based on change complexity +# - Auto-approves low-risk PRs (configurable threshold) +# - Manual: When someone comments `@claude merge review` in the PR +# - Assigns risk scores (1-5) based on change complexity +# - Auto-approves low-risk PRs (configurable threshold) + +name: Claude Auto Approval Merge Review + +on: + pull_request: + types: [synchronize, ready_for_review] + issue_comment: + types: [created] + +concurrency: + group: claude-merge-review-${{ github.event.pull_request.number || github.event.issue.number }} + cancel-in-progress: false + +jobs: + claude-merge-review: + uses: lux-group/github-actions/.github/workflows/claude-merge-review.yml@main + secrets: + AWS_ROLE_TO_ASSUME: ${{ secrets.AWS_ROLE_TO_ASSUME_GITHUB_ROLE_DEV }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + CONTEXT7_API_KEY: ${{ secrets.CONTEXT7_API_KEY }} + REVIEWER_GITHUB_TOKEN: ${{ secrets.REVIEWER_GITHUB_TOKEN }} + with: + auto_approve_score: "1" # Auto-approve PRs with risk score 1 (very low risk) + skip_setup_node_deps: true diff --git a/.github/workflows/claude-review.yml b/.github/workflows/claude-review.yml new file mode 100644 index 00000000..ace970c2 --- /dev/null +++ b/.github/workflows/claude-review.yml @@ -0,0 +1,27 @@ +# Claude Code Review Workflow +# +# Triggers: +# - Automatic: When a PR is opened or marked as ready for review +# - Manual: When someone comments `@claude review` in the PR + +name: Claude Auto Review + +on: + pull_request: + types: [opened, ready_for_review] + issue_comment: + types: [created] + +concurrency: + group: claude-review-${{ github.event.pull_request.number || github.event.issue.number }} + cancel-in-progress: false + +jobs: + claude-review: + uses: lux-group/github-actions/.github/workflows/claude-review.yml@main + secrets: + AWS_ROLE_TO_ASSUME: ${{ secrets.AWS_ROLE_TO_ASSUME_GITHUB_ROLE_DEV }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + CONTEXT7_API_KEY: ${{ secrets.CONTEXT7_API_KEY }} + with: + skip_setup_node_deps: true diff --git a/.github/workflows/renovate-approval.yml b/.github/workflows/renovate-approval.yml new file mode 100644 index 00000000..253a084b --- /dev/null +++ b/.github/workflows/renovate-approval.yml @@ -0,0 +1,25 @@ +# Renovate luxuryescapes-reviewer Approval Workflow +# +# Triggers on all pull_request_review events. The reusable workflow handles +# filtering (skips non-Renovate reviews). This avoids duplicating filter logic +# across caller workflows. +# +# When renovate-approve[bot] approves a Renovate PR: +# - Adds luxuryescapes-reviewer approval using REVIEWER_GITHUB_TOKEN +# - GitHub's auto-merge (enabled by Renovate) handles the rest + +name: Renovate Approval + +on: + pull_request_review: + types: [submitted] + +concurrency: + group: renovate-approval-${{ github.event.pull_request.number }} + cancel-in-progress: true + +jobs: + renovate-approval: + uses: lux-group/github-actions/.github/workflows/renovate-approval.yml@main + secrets: + REVIEWER_GITHUB_TOKEN: ${{ secrets.REVIEWER_GITHUB_TOKEN }}