Skip to content

refactor: 패턴 분석 코멘트도 학습 현황처럼 upsert(PATCH) 방식으로 전환 #23

@sounmind

Description

@sounmind

배경

현재 패턴 분석 코멘트 (handlers/tag-patterns.js)는 매 push마다
기존 봇 코멘트를 전부 DELETE한 뒤 새로 POST하는 방식으로 갱신됨.

반면 학습 현황 코멘트 (utils/learningComment.js upsertLearningStatusComment)는
marker로 기존 코멘트를 찾아 PATCH로 body만 업데이트하는 upsert 패턴을 사용 중.

#20 에서 synchronize 최적화가 들어가면서,
변경된 파일에 한정해서는 "기존 코멘트를 edit"하는 형태가 자연스러움.

제안

변경된 파일의 패턴 분석 코멘트를 delete + repost → PATCH (edit in place) 로 전환.

  • PR review 코멘트도 PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}로 body 수정 가능
  • 파일명(comment.path)을 키로 기존 봇 코멘트를 찾아 upsert
    • 존재하면 PATCH body
    • 없으면 POST (신규 파일)

기대 효과

  • delete → create로 인한 알림/웹훅 노이즈 제거
  • 학습 현황 코멘트와 일관된 upsert 패턴으로 코드 단순화
  • 코멘트 ID가 push 간에 안정적으로 유지됨 (영구 링크 가능)

참고

Trade-off (작은 이슈, blocker 아님)

PATCH는 commit_id를 바꾸지 않으므로, 원본 커밋이 history에서 멀어지면
GitHub UI가 "Outdated" 배지를 붙일 수 있음. subject_type: "file" 코멘트는
라인 코멘트보다 덜 aggressive하게 처리되는 편이라 실사용상 큰 문제 없을 것으로 예상.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions