winutil/.github/workflows/close-discussion.yml
Mr.k 9bc6adf191
Fix 'Close Discussion on PR Merge' Workflow (#2423)
* A Fix for 'close-discussion.yml' Workflow

* Update Regex for 'Close Discussion on PR Merge' Worflow

* Finish last step in 'Close Discussion on PR Merge' Workflow

* Remove & Merge the Steps in 'Close Discussion on PR Merge' Workflow

* Re-Add Missing Environment Variable

* Update Regex for 'Close Discussion on PR Merge' Worflow
2024-07-25 15:17:54 -05:00

39 lines
1.4 KiB
YAML

name: Close Discussion on PR Merge
on:
pull_request:
types: [closed]
jobs:
closeDiscussion:
runs-on: ubuntu-latest
steps:
- 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 Where Found
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: github.event.pull_request.merged == true
id: extract-discussion
run: |
echo '${{ github.event.pull_request.body }}' > pr_body.txt
discussion_ids_arr=()
cat pr_body.txt | grep -i -Po '^\s*(-|\d+\.)?\s*(Resolve(s|d)?)\s*#\d+\s*$|^\s*(-|\d+\.)?\s*(Fix(es|ed)?)\s*#\d+\s*$|^\s*(-|\d+\.)?\s*(Close(s|d)?)\s*#\d+\s*$' | awk -F '#' '{print $2}' > discussion_ids_list.txt
while read -r line; do
discussion_ids_arr+=("$line")
done < discussion_ids_list.txt
number_of_ids=${#discussion_ids_arr[@]}
for (( i=0; i<${number_of_ids}; i++ ));
do
discussion_id=${discussion_ids_arr[$i]}
echo "$discussion_id"
curl -X PATCH -H "Authorization: token $GITHUB_TOKEN" \
-d '{"state": "closed"}' \
'https://api.github.com/repos/${{ github.repository }}/discussions/$discussion_id'
done
shell: bash