-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
apibugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or requestrefactoring
Description
배경
현재 Code-Review 기능은 GitHub 웹 UI의 DOM 요소를 직접 조작하여 리뷰어를 추가합니다. 이 방식은 setTimeout을 사용하여 비동기 로딩을 처리하며, 특정 DOM 선택자에 강하게 의존합니다.
문제점
- GitHub UI의 DOM 구조(
id="reviewers-select-menu summary",id="review-filter-field"등)에 대한 높은 의존성으로 인해 UI 변경 시 기능 오작동 가능성이 높습니다. setTimeout을 사용하여 UI 요소 로딩을 기다리는 방식은 불안정하며 비효율적입니다.- 여러 명의 리뷰어를 추가할 때마다 반복적인 DOM 조작이 발생하여 성능 저하를 일으킬 수 있습니다.
- 디버깅용
console.log가 프로덕션 코드에 과도하게 남아 있습니다. - GitHub API를 직접 활용하는 대신 UI 조작을 통해 기능을 구현하여 안정성과 효율성이 떨어집니다.
예상 동작
- GitHub UI 변경에 강건한 방식으로 리뷰어 추가 기능을 구현합니다. (예: GitHub API 활용)
setTimeout대신 요소 로딩을 안정적으로 기다리는 방식을 도입합니다. (예:MutationObserver또는requestAnimationFrame활용, 혹은 GitHub API의 응답 대기)- 리뷰어 추가 로직을 최적화하여 성능 저하를 방지합니다.
- 프로덕션 환경에서 불필요한
console.log를 제거합니다. - 가능하다면 GitHub API(
mcp_github_update_pull_request등)를 직접 사용하여 안정적이고 효율적인 리뷰어 요청 기능을 구현합니다.
재현 단계 (버그인 경우)
- GitHub Pull Request 페이지로 이동합니다.
- "Reviewers" 섹션에서 자동 리뷰 요청 기능을 실행합니다.
- GitHub UI가 변경된 경우, 기능이 정상적으로 작동하지 않을 수 있습니다.
- 여러 명의 리뷰어를 추가할 경우, UI 반응 속도가 느려질 수 있습니다.
관련 파일
features/code-review/content.jsmanifest.json(필요 시 GitHub API 사용을 위한 권한 추가)
기술적 고려사항
- GitHub API를 사용하려면
manifest.json에host_permissions와 같은 추가 권한이 필요할 수 있습니다. MutationObserver를 사용하여 특정 요소가 나타나는 것을 감지하는 방식으로setTimeout을 대체할 수 있습니다.- GitHub API를 사용할 경우 인증 방식에 대한 고려가 필요합니다.
추가 정보
없음.
라벨 (예시):
bugenhancementrefactoringapi
담당자 (고정):
@sudo-Terry
Metadata
Metadata
Assignees
Labels
apibugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or requestrefactoring