Skip to content

Commit c771b48

Browse files
Ref: Use danger to check ready-for-merge label (#5366)
* initial implementation * truck forgot to sent the package * quality of life nits * just error for all * danger react to label changes * refresh CI * add logs * fixed label name
1 parent bd17200 commit c771b48

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

.github/workflows/danger.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ name: Danger
22

33
on:
44
pull_request:
5-
types: [opened, synchronize, reopened, edited, ready_for_review]
5+
types: [opened, synchronize, reopened, edited, ready_for_review, labeled, unlabeled]
66

77
jobs:
88
danger:
99
runs-on: ubuntu-latest
1010
steps:
1111
- uses: getsentry/github-workflows/danger@17cc15eb58ea3687cd8f2714a4192dcee4aa09ef
1212
with:
13-
extra-dangerfile: scripts/check-replay-stubs.js
13+
extra-dangerfile: scripts/check-additional-danger.js
1414
extra-install-packages: "curl unzip openjdk-17-jre-headless"

scripts/check-additional-danger.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
async function safeRun(fnPath, { fail, warn, message, markdown, danger }) {
2+
const fn = require(fnPath);
3+
try {
4+
return await fn({ fail, warn, message, markdown, danger });
5+
} catch (error) {
6+
warn(`Failed to run ${fnPath}: ${error.message}`);
7+
}
8+
}
9+
10+
11+
module.exports = async function ({ fail, warn, message, markdown, danger }) {
12+
await safeRun('./check-github-label', { fail, warn, message, markdown, danger });
13+
await safeRun('./check-replay-stubs', { fail, warn, message, markdown, danger });
14+
};

scripts/check-github-label.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module.exports = async function ({ fail, warn, __, ___, danger }) {
2+
const isReeadyForMerge = danger.github.issue.labels.some(label => label.name === 'ready-to-merge');
3+
if (!isReeadyForMerge) {
4+
// Ideally we could check for `isDraft` but this information is not easily available.
5+
fail('Pull request is not ready for merge, please add the "ready-to-merge" label to the pull request');
6+
}
7+
};

0 commit comments

Comments
 (0)