PR의 리뷰 코멘트에 답변
GitHub PR의 코드 리뷰 코멘트에 답변하고 스레드를 종료합니다.
입력
모든 입력은 대화 컨텍스트에서 추론합니다. 모호한 경우에만 질문하세요.
입력 1 — PR 번호 또는 URL. 작업할 풀 리퀘스트입니다. 컨텍스트(예: 이전에 표시된 PR URL 또는 브랜치 이름)에서 추론합니다. 명확하지 않은 경우 다음을 실행합니다:
gh pr list --head "$(git rev-parse --abbrev-ref HEAD)" --json number,url --jq '.[0]'
입력 2 — 답변할 리뷰 코멘트.
특정 리뷰어의 지적 사항입니다. 일반적으로 번호(#2), 파일+라인, 또는 대화에서 이전에 표시된 리뷰 코멘트 표의 인용문으로 식별합니다.
대화에 리뷰 코멘트 표가 없고 dakubo-display-pr-remarks 스킬을 사용할 수 있다면, 해당 스킬을 사용하여 표를 만듭니다. 그렇지 않으면 사용자에게 리뷰 코멘트를 물어보세요.
입력 3 — 답변. 게시할 응답입니다: 설명, 확인, 또는 수정 요약입니다. 컨텍스트(예: 방금 수정하거나 논의한 내용)에서 파생합니다. 불명확하면 질문하세요.
프로세스
1. 코멘트 ID 확인
PR의 인라인 리뷰 코멘트를 가져옵니다:
gh api repos/:owner/:repo/pulls/<PR>/comments --paginate \
--jq '.[] | {id, path, line: (.line // .original_line), body: .body[0:120]}'
라인 번호, 파일 경로 또는 본문 조각으로 대상 리뷰 코멘트를 찾고 id를 기록합니다.
2. 답변 게시
gh api repos/:owner/:repo/pulls/<PR>/comments \
--method POST \
--field body="<answer>" \
--field in_reply_to=<comment_id>
3. 스레드 종료
이 코멘트가 포함된 리뷰 스레드를 찾습니다:
gh api graphql -f query='
{
repository(owner: "<owner>", name: "<repo>") {
pullRequest(number: <PR>) {
reviewThreads(first: 100) {
nodes {
id
isResolved
comments(first: 1) { nodes { databaseId } }
}
}
}
}
}'
comments.nodes[0].databaseId가 원래 코멘트 id(답변이 아님)와 일치하는 스레드를 찾습니다. 그런 다음 종료합니다:
gh api graphql -f query='
mutation {
resolveReviewThread(input: { threadId: "<thread_node_id>" }) {
thread { isResolved }
}
}'
출력
다음과 같은 한 문장으로 확인합니다: 코멘트 <id>에 <file>:<line>에 답변 게시 완료, 스레드 종료됨.
하지 말아야 할 것
- 답변을 지어내지 마세요 — 컨텍스트에서 파생하거나 질문하세요.
- 먼저 답변을 게시하지 않고 스레드를 종료하지 마세요.
- 이 브랜치에 여러 PR이 열려 있는 경우 추측하지 말고 질문하세요.