From 445f5d65d6c70d054f27ba6d55311ff2ff4c4738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=84=9C=EB=A6=BC?= <40015447+srlee056@users.noreply.github.com> Date: Wed, 31 Jan 2024 19:28:31 +0900 Subject: [PATCH] Update auto-close-issue.yml --- .github/workflows/auto-close-issue.yml | 30 +++++++++++++++----------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/auto-close-issue.yml b/.github/workflows/auto-close-issue.yml index 59f9cac..c788e83 100644 --- a/.github/workflows/auto-close-issue.yml +++ b/.github/workflows/auto-close-issue.yml @@ -1,8 +1,6 @@ name: Auto Close Issue when all tasks are completed on: - issue_comment: - types: [created, edited] issues: types: [opened, edited] @@ -21,16 +19,24 @@ jobs: REPO="${{ github.repository }}" GITHUB_TOKEN="${{ secrets.GITHUB_TOKEN }}" - # API를 사용하여 이슈를 닫음 - - curl -L -X PATCH \ - -H "Accept: application/vnd.github.v3+json" \ - -H "Authorization: Bearer $GITHUB_TOKEN" \ - -H "X-GitHub-Api-Version: 2022-11-28" \ - "https://api.github.com/repos/$OWNER/$REPO/issues/$ISSUE_NUMBER" \ - -d '{"state":"closed"}' + # GitHub API를 사용하여 이슈의 내용 가져오기 + BODY=$(curl -s \ + -H "Authorization: Bearer $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/$OWNER/$REPO/issues/$ISSUE_NUMBER" | jq -r '.body') + + # 체크리스트 항목 확인 + TOTAL_TASKS=$(echo "$BODY" | grep -o -E '\- \[ \]' | wc -l) + COMPLETED_TASKS=$(echo "$BODY" | grep -o -E '\- \[x\]' | wc -l) + # 모든 작업이 완료되었는지 확인 + if [ "$TOTAL_TASKS" == "$COMPLETED_TASKS" ] && [ "$TOTAL_TASKS" -ne "0" ]; then + # API를 사용하여 이슈를 닫음 + curl -s -X PATCH \ + -H "Authorization: Bearer $GITHUB_TOKEN" \ + -H "Accept: application/vnd.github.v3+json" \ + "https://api.github.com/repos/$OWNER/$REPO/issues/$ISSUE_NUMBER" \ + -d '{"state":"closed"}' + fi env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - -