mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2024-11-14 14:45:52 -06:00
Update close-discussion.yml
This commit is contained in:
parent
b4bf321e66
commit
3929459106
39
.github/workflows/close-discussion.yml
vendored
39
.github/workflows/close-discussion.yml
vendored
@ -8,31 +8,36 @@ 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 Where Found
|
||||
|
||||
- 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: |
|
||||
echo '${{ github.event.pull_request.body }}' > pr_body.txt
|
||||
pr_body="${{ github.event.pull_request.body }}"
|
||||
discussion_ids=$(echo "$pr_body" | jq -r 'scan("(?i)(resolve|fix|close)[s|d]? #[0-9]+")' | grep -o '#[0-9]*' | tr -d '#')
|
||||
|
||||
if [ -z "$discussion_ids" ]; then
|
||||
echo "No discussion IDs found."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
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" \
|
||||
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'
|
||||
"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
|
||||
shell: bash
|
Loading…
Reference in New Issue
Block a user