mirror of
https://github.com/kingmo888/rustdesk-api-server.git
synced 2026-02-21 10:27:23 +08:00
55 lines
1.8 KiB
YAML
55 lines
1.8 KiB
YAML
name: Auto Close Issues if Not Starred
|
|
|
|
on:
|
|
issues:
|
|
types: [opened]
|
|
|
|
jobs:
|
|
close_issue:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Check if user has starred the repo
|
|
id: check_star
|
|
run: |
|
|
ISSUE_USER=$(jq -r '.issue.user.login' < $GITHUB_EVENT_PATH)
|
|
echo "Issue created by user: $ISSUE_USER"
|
|
PAGE=1
|
|
STARRED=""
|
|
|
|
while [[ -z "$STARRED" ]]; do
|
|
STARRED_RESPONSE=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
|
|
"https://api.github.com/repos/${{ github.repository }}/stargazers?per_page=100&page=$PAGE")
|
|
|
|
if [[ -z "$STARRED_RESPONSE" || "$STARRED_RESPONSE" == "[]" ]]; then
|
|
break
|
|
fi
|
|
|
|
STARRED=$(echo "$STARRED_RESPONSE" | jq -r '.[] | select(.login == "'$ISSUE_USER'") | .login')
|
|
PAGE=$((PAGE + 1))
|
|
done
|
|
|
|
if [[ -z "$STARRED" ]]; then
|
|
echo "User has not starred the repo."
|
|
else
|
|
echo "User has starred the repo."
|
|
fi
|
|
|
|
echo "starred=$STARRED" >> $GITHUB_ENV
|
|
|
|
|
|
|
|
- name: Close issue if not starred
|
|
if: env.starred == '0'
|
|
run: |
|
|
ISSUE_NUMBER=$(jq -r '.issue.number' < $GITHUB_EVENT_PATH)
|
|
echo "Closing issue #$ISSUE_NUMBER"
|
|
curl -s -X POST -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
|
|
-H "Accept: application/vnd.github.v3+json" \
|
|
https://api.github.com/repos/${{ github.repository }}/issues/$ISSUE_NUMBER/comments \
|
|
-d '{"body":"Please star the project before submitting an issue."}'
|
|
|
|
curl -s -X PATCH -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
|
|
-H "Accept: application/vnd.github.v3+json" \
|
|
https://api.github.com/repos/${{ github.repository }}/issues/$ISSUE_NUMBER \
|
|
-d '{"state":"closed"}'
|