2024-07-13 11:00:37 -05:00
|
|
|
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"
|
|
|
|
|
2024-07-25 15:17:54 -05:00
|
|
|
- name: Extract Discussion Number & Close If any Where Found
|
|
|
|
env:
|
|
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
2024-07-13 11:00:37 -05:00
|
|
|
if: github.event.pull_request.merged == true
|
|
|
|
id: extract-discussion
|
|
|
|
run: |
|
2024-07-25 15:17:54 -05:00
|
|
|
echo '${{ github.event.pull_request.body }}' > pr_body.txt
|
2024-07-13 11:00:37 -05:00
|
|
|
|
2024-07-25 15:17:54 -05:00
|
|
|
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
|