refactor: 패턴 분석 코멘트도 학습 현황처럼 upsert(PATCH) 방식으로 전환
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- JavaScript
- Star
- 2
- Fork
- 2
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
배경
현재 패턴 분석 코멘트 (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- 존재하면
PATCHbody - 없으면
POST(신규 파일)
- 존재하면
기대 효과
- delete → create로 인한 알림/웹훅 노이즈 제거
- 학습 현황 코멘트와 일관된 upsert 패턴으로 코드 단순화
- 코멘트 ID가 push 간에 안정적으로 유지됨 (영구 링크 가능)
참고
- Learning status 참고 구현:
utils/learningComment.js:232upsertLearningStatusComment - Pattern tag 현재 구현:
handlers/tag-patterns.js:75,104-154 - 관련 PR: #20
Trade-off (작은 이슈, blocker 아님)
PATCH는 commit_id를 바꾸지 않으므로, 원본 커밋이 history에서 멀어지면
GitHub UI가 "Outdated" 배지를 붙일 수 있음. subject_type: "file" 코멘트는
라인 코멘트보다 덜 aggressive하게 처리되는 편이라 실사용상 큰 문제 없을 것으로 예상.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với handlers/tag-patterns.js:75 và 104-154, sau đó so sánh với triển khai dựa trên marker tại utils/learningComment.js:232. Truy vết cách các comment hiện có của bot được xác định bằng comment.path và kiểm tra các lệnh gọi PATCH và POST của GitHub review-comment. Được xem là hoàn tất khi các comment của các file đã thay đổi được chỉnh sửa tại chỗ nếu tìm thấy và chỉ được tạo cho các file mới, không có hành vi delete-and-repost.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- javascript
- Lĩnh vực
- backend
- Loại issue
- Tái cấu trúc
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức phù hợp với người mới
- 76/100