mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-11-14 22:55:52 -06:00
48 lines
1.7 KiB
YAML
48 lines
1.7 KiB
YAML
name: Close Discussion on PR Merge
|
|
|
|
on:
|
|
pull_request:
|
|
types: [closed]
|
|
|
|
jobs:
|
|
closeDiscussion:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Check if PR was merged
|
|
if: github.event.pull_request.merged == true
|
|
run: echo "PR was merged"
|
|
|
|
- name: Extract Discussion Number & Close If any Were Found
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
if: github.event.pull_request.merged == true
|
|
id: extract-discussion
|
|
run: |
|
|
pr_body="${{ github.event.pull_request.body }}"
|
|
discussion_ids=$(echo "$pr_body" | grep -oP '(?i)(resolve|fix|close)[s|d]? #\K[0-9]+')
|
|
|
|
if [ -z "$discussion_ids" ]; then
|
|
echo "No discussion IDs found."
|
|
exit 0
|
|
fi
|
|
|
|
for discussion_id in $discussion_ids; do
|
|
echo "Attempting to close discussion #$discussion_id"
|
|
response=$(curl -s -X PATCH -H "Authorization: token $GITHUB_TOKEN" \
|
|
-H "Accept: application/vnd.github.v3+json" \
|
|
-d '{"state": "closed"}' \
|
|
"https://api.github.com/repos/${{ github.repository }}/discussions/$discussion_id")
|
|
|
|
if echo "$response" | jq -e '.id' > /dev/null; then
|
|
echo "Successfully closed discussion #$discussion_id"
|
|
else
|
|
error_message=$(echo "$response" | jq -r '.message // "Unknown error"')
|
|
echo "Warning: Failed to close discussion #$discussion_id. Error: $error_message"
|
|
echo "Full response: $response"
|
|
fi
|
|
done
|
|
shell: bash
|
|
continue-on-error: true |