diff --git a/.github/workflows/issues.yml b/.github/workflows/issues.yml index 6dba3152..5c1f7d52 100644 --- a/.github/workflows/issues.yml +++ b/.github/workflows/issues.yml @@ -1,27 +1,35 @@ -name: Close Issues Based on Labels +name: Issue Management on: issues: - types: [labeled] + types: + - labeled + - closed jobs: - close-issue: + manage_issues: runs-on: ubuntu-latest + steps: - - name: Close issue as not planned if labeled with '❌ 拒绝' - if: github.event.label.name == '❌ 拒绝' - uses: peter-evans/close-issue@v3 - with: - state: closed - reason: 'not_planned' - env: - GITHUB_TOKEN: ${{ secrets.SHEEP }} + - name: Set up authentication + run: echo "GITHUB_TOKEN=${{ secrets.SHEEP }}" >> $GITHUB_ENV + + - name: Install jq + run: sudo apt-get update && sudo apt-get install -y jq - - name: Close issue as completed if labeled with '👌 完成' - if: github.event.label.name == '👌 完成' - uses: peter-evans/close-issue@v3 - with: - state: closed - reason: 'completed' - env: - GITHUB_TOKEN: ${{ secrets.SHEEP }} + - name: Handle labeled issues + if: github.event.action == 'labeled' + run: | + if [[ "${{ github.event.label.name }}" == "❌ 拒绝" || "${{ github.event.label.name }}" == "😂 移交上游" ]]; then + curl -X PATCH \ + -H "Authorization: token ${{ secrets.SHEEP }}" \ + -H "Accept: application/vnd.github.v3+json" \ + https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }} \ + -d '{"state": "closed", "state_reason": "not_planned"}' + elif [[ "${{ github.event.label.name }}" == "👌 完成" ]]; then + curl -X PATCH \ + -H "Authorization: token ${{ secrets.SHEEP }}" \ + -H "Accept: application/vnd.github.v3+json" \ + https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }} \ + -d '{"state": "closed", "state_reason": "completed"}' + fi