mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-06-28 09:04:47 -05:00
rework ci/cd
This commit is contained in:
43
.github/workflows/close-discussion-on-pr.yaml
vendored
Normal file
43
.github/workflows/close-discussion-on-pr.yaml
vendored
Normal file
@ -0,0 +1,43 @@
|
||||
name: Close Discussion on PR Merge
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types: [closed]
|
||||
|
||||
jobs:
|
||||
closeDiscussion:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- 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 "Closing discussion #$discussion_id"
|
||||
response=$(curl -s -o /dev/null -w "%{http_code}" -X PATCH -H "Authorization: token $GITHUB_TOKEN" \
|
||||
-d '{"state": "closed"}' \
|
||||
"https://api.github.com/repos/${{ github.repository }}/discussions/$discussion_id")
|
||||
|
||||
if [ "$response" -ne 200 ]; then
|
||||
echo "Failed to close discussion #$discussion_id. HTTP status code: $response"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
shell: bash
|
Reference in New Issue
Block a user