diff --git a/.github/workflows/auto-dismiss-reviewer.yml b/.github/workflows/auto-dismiss-reviewer.yml new file mode 100644 index 0000000..c3ad937 --- /dev/null +++ b/.github/workflows/auto-dismiss-reviewer.yml @@ -0,0 +1,66 @@ +name: Auto-dismiss owner from Copilot PRs + +on: + pull_request: + types: [opened, review_requested] + +jobs: + dismiss-reviewer: + runs-on: ubuntu-latest + if: github.actor == 'copilot-swe-agent[bot]' + permissions: + pull-requests: write + contents: read + steps: + - name: Remove owner and request Copilot review + uses: actions/github-script@v7 + with: + script: | + const owner = context.repo.owner; + const repo = context.repo.repo; + const pull_number = context.payload.pull_request.number; + + // Remove GhostwheeI as reviewer + try { + await github.rest.pulls.removeRequestedReviewers({ + owner, + repo, + pull_number, + reviewers: ['GhostwheeI'] + }); + console.log(`Removed GhostwheeI from reviewers on PR #${pull_number}`); + } catch (e) { + console.log(`Could not remove reviewer: ${e.message}`); + } + + // Request Copilot code review + await github.rest.issues.createComment({ + owner, + repo, + issue_number: pull_number, + body: '@copilot review' + }); + console.log(`Requested Copilot review on PR #${pull_number}`); + + // Enable auto-merge (squash) + try { + await github.graphql(` + mutation($pullRequestId: ID!) { + enablePullRequestAutoMerge(input: { + pullRequestId: $pullRequestId, + mergeMethod: SQUASH + }) { + pullRequest { + autoMergeRequest { + enabledAt + } + } + } + } + `, { + pullRequestId: context.payload.pull_request.node_id + }); + console.log(`Enabled auto-merge on PR #${pull_number}`); + } catch (e) { + console.log(`Could not enable auto-merge: ${e.message}`); + }