Skip to content

Commit 91ebec3

Browse files
committed
Update CodeRabbit approval handler to include dismissed reviews and enhance label management
1 parent 687abff commit 91ebec3

File tree

2 files changed

+27
-12
lines changed

2 files changed

+27
-12
lines changed

.github/workflows/coderabbit-approval.yml

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: CodeRabbit Approval Handler
22

33
on:
44
pull_request_review:
5-
types: [submitted]
5+
types: [submitted,dismissed]
66

77
permissions:
88
contents: read
@@ -42,6 +42,7 @@ jobs:
4242
};
4343
4444
- name: Remove pending CodeRabbit review label
45+
id: remove-label
4546
if: steps.check-approval.outputs.is_coderabbit_approved == 'true'
4647
uses: actions/github-script@v7
4748
with:
@@ -71,12 +72,15 @@ jobs:
7172
});
7273
7374
console.log(`✅ Successfully removed '${labelToRemove}' label from PR #${prNumber}`);
75+
core.setOutput('label_was_present', 'true');
7476
} else {
7577
console.log(`Label '${labelToRemove}' not found on PR #${prNumber}`);
78+
core.setOutput('label_was_present', 'false');
7679
}
7780
} catch (error) {
7881
if (error.status === 404) {
7982
console.log(`Label '${labelToRemove}' does not exist on PR #${prNumber}`);
83+
core.setOutput('label_was_present', 'false');
8084
} else {
8185
console.error(`Error removing label: ${error.message}`);
8286
throw error;
@@ -91,16 +95,21 @@ jobs:
9195
script: |
9296
const prNumber = context.payload.pull_request.number;
9397
94-
console.log('Adding coderabbit-approved label');
95-
96-
await github.rest.issues.addLabels({
97-
owner: context.repo.owner,
98-
repo: context.repo.repo,
99-
issue_number: prNumber,
100-
labels: ['coderabbit-approved']
101-
});
102-
103-
console.log(`✅ Added 'coderabbit-approved' label to PR #${prNumber}`);
98+
try {
99+
console.log('Adding coderabbit-approved label');
100+
101+
await github.rest.issues.addLabels({
102+
owner: context.repo.owner,
103+
repo: context.repo.repo,
104+
issue_number: prNumber,
105+
labels: ['coderabbit-approved']
106+
});
107+
108+
console.log(`✅ Added 'coderabbit-approved' label to PR #${prNumber}`);
109+
} catch (error) {
110+
console.error(`Error adding label: ${error.message}`);
111+
throw error;
112+
}
104113
105114
- name: Summary
106115
if: steps.check-approval.outputs.is_coderabbit_approved == 'true'
@@ -109,11 +118,16 @@ jobs:
109118
github-token: ${{ secrets.GITHUB_TOKEN }}
110119
script: |
111120
const prNumber = context.payload.pull_request.number;
121+
const labelWasPresent = '${{ steps.remove-label.outputs.label_was_present }}' === 'true';
112122
113123
console.log('='.repeat(50));
114124
console.log('CodeRabbit Approval Handler Complete');
115125
console.log('='.repeat(50));
116126
console.log(`✅ PR #${prNumber} has been approved by CodeRabbit`);
117-
console.log(`✅ Removed 'pending-coderabbit-review' label`);
127+
if (labelWasPresent) {
128+
console.log(`✅ Removed 'pending-coderabbit-review' label`);
129+
} else {
130+
console.log(`ℹ️ 'pending-coderabbit-review' label was not present`);
131+
}
118132
console.log(`✅ Added 'coderabbit-approved' label`);
119133
console.log('='.repeat(50));

.github/workflows/sync-pr-labels.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,7 @@ jobs:
317317
318318
# STEP 5: CodeRabbit review status
319319
- name: Add pending CodeRabbit review label
320+
if: github.event.action != 'edited'
320321
uses: actions/github-script@v7
321322
with:
322323
github-token: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)