mirror of
https://github.com/DS4SD/docling.git
synced 2025-12-08 20:58:11 +00:00
chore: PR approval reminder (#2132)
PR approval reminder Signed-off-by: Michele Dolfi <dol@zurich.ibm.com>
This commit is contained in:
55
.github/workflows/pr-reminders.yml
vendored
Normal file
55
.github/workflows/pr-reminders.yml
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
name: PR Workflow Approval Reminder
|
||||
|
||||
on:
|
||||
# schedule:
|
||||
# - cron: "0 */6 * * *" # every 6 hours
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
check-prs:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check PRs blocked by workflow approval
|
||||
id: filter
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
script: |
|
||||
const { data: pulls } = await github.rest.pulls.list({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
state: 'open'
|
||||
});
|
||||
|
||||
let result = '';
|
||||
|
||||
for (const pr of pulls) {
|
||||
const { data: runs } = await github.rest.actions.listWorkflowRunsForRepo({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
event: 'pull_request',
|
||||
head_sha: pr.head.sha
|
||||
});
|
||||
|
||||
const waitingRuns = runs.workflow_runs.filter(r => r.status === 'waiting');
|
||||
if (waitingRuns.length > 0) {
|
||||
const runNames = waitingRuns.map(r => r.name).join(', ');
|
||||
result += `• **PR #${pr.number}**: [${pr.title}](${pr.html_url}) \n ⏸️ Workflows: ${runNames}\n\n`;
|
||||
}
|
||||
}
|
||||
|
||||
let message;
|
||||
if (result === '') {
|
||||
message = '✅ No PRs are blocked by workflow approval right now.';
|
||||
} else {
|
||||
message = `🚦 **PRs waiting for maintainer approval to run workflows:**\n\n${result}`;
|
||||
}
|
||||
|
||||
core.setOutput('message', message);
|
||||
|
||||
- name: Send message to Discord via webhook
|
||||
run: |
|
||||
payload=$(jq -n --arg content "${{ steps.filter.outputs.message }}" '{content: $content}')
|
||||
curl -X POST -H "Content-Type: application/json" \
|
||||
-d "$payload" \
|
||||
${{ secrets.PR_REMINDER_DISCORD_WEBHOOK }}
|
||||
Reference in New Issue
Block a user