mirror of
https://github.com/Z3Prover/z3
synced 2026-03-16 10:10:02 +00:00
60 lines
2 KiB
YAML
60 lines
2 KiB
YAML
name: Mark Pull Requests Ready for Review
|
|
|
|
on:
|
|
pull_request:
|
|
types: [opened]
|
|
workflow_dispatch:
|
|
schedule:
|
|
- cron: '0 0 * * *'
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
mark-ready:
|
|
runs-on: ubuntu-latest
|
|
permissions:
|
|
pull-requests: write
|
|
steps:
|
|
- name: Mark all draft pull requests ready for review
|
|
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8
|
|
with:
|
|
github-token: ${{ secrets.GH_AW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
|
|
script: |
|
|
async function markReady(nodeId, number, title) {
|
|
core.info(`Marking PR #${number} "${title}" ready for review.`);
|
|
try {
|
|
await github.graphql(`
|
|
mutation($id: ID!) {
|
|
markPullRequestReadyForReview(input: { pullRequestId: $id }) {
|
|
pullRequest { number isDraft }
|
|
}
|
|
}
|
|
`, { id: nodeId });
|
|
} catch (err) {
|
|
core.warning(`Failed to mark PR #${number} ready for review: ${err.message}`);
|
|
}
|
|
}
|
|
|
|
if (context.eventName === 'pull_request') {
|
|
const pr = context.payload.pull_request;
|
|
if (pr.draft) {
|
|
await markReady(pr.node_id, pr.number, pr.title);
|
|
} else {
|
|
core.info(`PR #${pr.number} is already ready for review. Nothing to do.`);
|
|
}
|
|
} else {
|
|
const pulls = await github.paginate(github.rest.pulls.list, {
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
state: 'open',
|
|
});
|
|
|
|
const drafts = pulls.filter(pr => pr.draft);
|
|
core.info(`Found ${drafts.length} draft pull request(s).`);
|
|
|
|
for (const pr of drafts) {
|
|
await markReady(pr.node_id, pr.number, pr.title);
|
|
}
|
|
}
|
|
|
|
core.info('Done.');
|