@@ -2,7 +2,7 @@ name: CodeRabbit Approval Handler
22
33on :
44 pull_request_review :
5- types : [submitted]
5+ types : [submitted,dismissed ]
66
77permissions :
88 contents : read
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));
0 commit comments