Skip to content

Workflow file for this run

name: Issue Label Handler
on:
issues:
types: [labeled]
jobs:
handle-label:
runs-on: ubuntu-latest
steps:
- name: Set up environment variables
env:
ISSUE_NUMBER: ${{ github.event.issue.number }}
REPO_OWNER: ${{ github.repository_owner }}
REPO_NAME: ${{ github.event.repository.name }}
LABEL_NAME: ${{ github.event.label.name }}
GITHUB_TOKEN: ${{ secrets.BOT }}
run: |
echo "ISSUE_NUMBER=$ISSUE_NUMBER" >> $GITHUB_ENV
echo "REPO_OWNER=$REPO_OWNER" >> $GITHUB_ENV
echo "REPO_NAME=$REPO_NAME" >> $GITHUB_ENV
echo "LABEL_NAME=$LABEL_NAME" >> $GITHUB_ENV
echo "GITHUB_TOKEN=$GITHUB_TOKEN" >> $GITHUB_ENV
- name: Determine action based on label
id: set_action
run: |
case "$LABEL_NAME" in
"❌ 拒绝"|"😂 移交上游"|"❌ 忽略"|"❌ 第三方"|"❌ 暂无计划")
echo "::set-output name=state::closed"
echo "::set-output name=reason::not_planned"
;;
"👌 完成")
echo "::set-output name=state::closed"
echo "::set-output name=reason::completed"
;;
"❌ 重复")
echo "::set-output name=state::closed"
echo "::set-output name=reason::duplicate"
;;
*)
echo "::set-output name=state::open"
echo "::set-output name=reason::none"
;;
esac
- name: Close issue if needed
if: steps.set_action.outputs.state == 'closed'
run: |
curl -X PATCH \
-H "Accept: application/vnd.github.v3+json" \
-H "Authorization: token $GITHUB_TOKEN" \
https://api.github.com/repos/$REPO_OWNER/$REPO_NAME/issues/$ISSUE_NUMBER \
-d "{\"state\": \"${{ steps.set_action.outputs.state }}\"}"