From 1957c9a6d5b46b0560c9fe978e3277fdb717e678 Mon Sep 17 00:00:00 2001 From: jhan0121 Date: Sat, 23 May 2026 10:06:46 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20Claude=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EB=A6=AC=EB=B7=B0=20=EB=8F=99=EC=9E=91=20=EA=B0=9C=EC=84=A0=20?= =?UTF-8?q?=EB=B0=8F=20=EC=BD=94=EB=A9=98=ED=8A=B8=20=EC=9D=91=EB=8B=B5=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - `@claude` 멘션 시 응답하는 comment-response.yml 워크플로우 추가 - 중복 실행 방지를 위한 concurrency 설정 추가 - 리액션이 달린 인라인 코멘트는 삭제 대상에서 제외하도록 로직 수정 --- .github/workflows/code-review.yml | 11 ++++++++++- .github/workflows/comment-response.yml | 24 ++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/comment-response.yml diff --git a/.github/workflows/code-review.yml b/.github/workflows/code-review.yml index d1d50e7..872b5ec 100644 --- a/.github/workflows/code-review.yml +++ b/.github/workflows/code-review.yml @@ -1,7 +1,13 @@ name: "Claude Code Review" + on: pull_request: types: [ opened, reopened, synchronize ] + +concurrency: + group: claude-review-${{ github.event.pull_request.number }} + cancel-in-progress: true + jobs: review: runs-on: ubuntu-latest @@ -48,6 +54,9 @@ jobs: author { login } + reactions { + totalCount + } } } } @@ -55,7 +64,7 @@ jobs: } } }' \ - --jq '.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false) | select([.comments.nodes[].author.login] | all(. == "github-actions")) | .comments.nodes[].databaseId' \ + --jq '.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false) | select([.comments.nodes[].author.login] | all(. == "github-actions")) | select([.comments.nodes[].reactions.totalCount] | add == 0) | .comments.nodes[].databaseId' \ | while read comment_id; do if [ -n "$comment_id" ]; then echo "🗑️ 인라인 코멘트 삭제: $comment_id" diff --git a/.github/workflows/comment-response.yml b/.github/workflows/comment-response.yml new file mode 100644 index 0000000..aa75672 --- /dev/null +++ b/.github/workflows/comment-response.yml @@ -0,0 +1,24 @@ +name: Claude PR Comment Response + +on: + issue_comment: + types: [ created ] + pull_request_review_comment: + types: [ created ] + +jobs: + respond: + if: | + github.event.comment.user.login != 'github-actions[bot]' && + contains(github.event.comment.body, '@claude') + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + issues: write + steps: + - uses: actions/checkout@v4 + - uses: anthropics/claude-code-action@v1 + with: + claude_code_oauth_token: ${{ secrets.CLAUDE_CODE_OAUTH_TOKEN }} + github_token: ${{ secrets.GITHUB_TOKEN }} From 7af4e431232bb57c648c689f4eee6d727c999b2f Mon Sep 17 00:00:00 2001 From: jhan0121 Date: Sat, 23 May 2026 10:16:13 +0900 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20Claude=20=EB=8C=93=EA=B8=80=20?= =?UTF-8?q?=EC=9D=91=EB=8B=B5=20=EC=9B=8C=ED=81=AC=ED=94=8C=EB=A1=9C?= =?UTF-8?q?=EC=9A=B0=20=EC=A0=91=EA=B7=BC=20=EA=B6=8C=ED=95=9C=20=EB=B0=8F?= =?UTF-8?q?=20=EB=8F=99=EC=8B=9C=EC=84=B1=20=EC=A0=9C=EC=96=B4=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/comment-response.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/comment-response.yml b/.github/workflows/comment-response.yml index aa75672..d8f2ea7 100644 --- a/.github/workflows/comment-response.yml +++ b/.github/workflows/comment-response.yml @@ -1,4 +1,4 @@ -name: Claude PR Comment Response +name: Claude Issue & PR Comment Response on: issue_comment: @@ -6,11 +6,18 @@ on: pull_request_review_comment: types: [ created ] +concurrency: + group: claude-comment-${{ github.event.issue.number }}-${{ github.event.comment.id }} + cancel-in-progress: false + jobs: respond: if: | github.event.comment.user.login != 'github-actions[bot]' && - contains(github.event.comment.body, '@claude') + contains(github.event.comment.body, '@claude') && + (github.event.comment.author_association == 'MEMBER' || + github.event.comment.author_association == 'OWNER' || + github.event.comment.author_association == 'COLLABORATOR') runs-on: ubuntu-latest permissions: contents: read