docling-studio/.github/workflows/auto-close-issues.yml
Pier-Jean Malandrino 1f85d5b9cb ci: auto-close issues on merge into release/* branches
GitHub only auto-closes issues when PRs target the default branch.
This workflow scans commit messages for Closes/Fixes patterns on
push to release/** and closes the referenced issues via gh CLI.

Closes #115
2026-04-08 10:18:49 +02:00

43 lines
1.3 KiB
YAML

name: Auto-close issues on release branch merge
on:
push:
branches:
- 'release/**'
permissions:
issues: write
jobs:
close-issues:
name: Close referenced issues
runs-on: ubuntu-latest
steps:
- name: Scan commits and close issues
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
REPO: ${{ github.repository }}
SHA: ${{ github.sha }}
run: |
# Collect all commit messages from the push event
commits='${{ toJSON(github.event.commits) }}'
# Extract issue numbers from Closes/Fixes patterns (case-insensitive)
issues=$(echo "$commits" \
| grep -ioE '(closes|fixes|close|fix|resolved|resolves)\s+#[0-9]+' \
| grep -oE '[0-9]+' \
| sort -u)
if [ -z "$issues" ]; then
echo "No issue references found in commit messages."
exit 0
fi
branch="${GITHUB_REF#refs/heads/}"
for issue in $issues; do
echo "Closing issue #$issue (referenced in $branch @ ${SHA:0:7})"
gh issue close "$issue" \
--repo "$REPO" \
--comment "Closed automatically — merged into \`$branch\` via ${SHA:0:7}." \
|| echo "Warning: could not close #$issue (may already be closed)"
done