요구사항 정리 및 초기 설계
100%
목표: 기존 GitHub Actions 파이프라인 파악 및 Gitea API 환경에 맞춘 전체 아키텍처 도출
결과물: 명세서, 설계 문서
TODO
- 분석: 기존 GitHub Actions 워크플로우(코드) 분석, 어떤 이벤트를 통해 어떤 API를 호출하는지 정리
- Gitea 환경 파악: Gitea 버전, 사용 가능한 API 엔드포인트, Webhook 타입, 인증 방법(Token, OAuth) 검토
- CI 도구 결정: Gitea와 잘 호환되는 CI 툴(예: Drone CI, Jenkins, GitLab Runner 등) 또는 독립 실행 파이썬 스크립트+crontab/webhook 서버 방식을 검토
- 아키텍처 설계: Gitea(Webhook) → Python 스크립트(API 호출/분석) → Claude/GPT API → 결과 Comment 처리 플로우 정의
- 기술 스택 확정: Python(3.x), Requests(or httpx), dotenv, Logging 프레임워크, GPT/Claude API 라이브러리(또는 단순 REST 호출)
- 개발 일정 계획 수립: Milestone별 일정 및 수행자 확정
목표: Gitea API를 편리하게 호출하기 위한 Python 모듈 구현 및 Pull Request 정보 수집 테스트
결과물: Gitea API 호출용 Python 클래스/함수, PR 정보 조회 샘플 코드
TODO
- 인증 로직 구현: Personal Access Token 또는 OAuth Token 활용 인증 로직 구현
- Gitea API Wrapper:
- 리포지토리 정보 조회 함수 구현(get_repo_info)
- Pull Request 리스트 조회 함수 구현(get_pull_requests)
- 특정 Pull Request 상세, diff, changed files 조회 함수 구현(get_pull_request_details, get_diff, get_files_changed)
- Comment 작성/수정 기능 구현(post_comment)
- 테스트 코드 작성: 위 함수들에 대한 단위 테스트 작성(Pytest 등 활용)
- 로깅/에러처리 기본 구조 잡기: 요청 실패 시 재시도, 예외처리 논리 등 구현
목표: 변경된 코드 정보를 GPT/Claude API에 전달, 분석 결과를 기반으로 개선 제안 코멘트 생성
결과물: Gitea PR에 코멘트를 자동으로 남기는 스크립트(수동 트리거)
TODO
- GPT/Claude API 연동:
- OpenAI/Anthropic API Key 관리
- 질문 프롬프트 템플릿 정립(비효율성 판단, 개선 아이디어 제안)
- API 호출 래퍼 함수 구현(call_gpt, call_claude)
- 분석 로직 구현:
- Gitea PR로부터 변경된 파일 목록 획득
- 각 파일별 diff 내용 추출 후 GPT/Claude로 전달
- GPT/Claude 응답 기반 개선안 추출
- 응답 형식 파싱, Markdown 형태 코멘트 생성
- 결과 코멘트 업로드:
- 개선 제안 내용을 PR 코멘트로 등록
- 기본 테스트: 샘플 PR에 대해 스크립트 수동 실행, 응답 결과 검증
목표: Gitea에서 PR 오픈/업데이트 이벤트 발생 시 자동 실행되는 파이프라인 구성
결과물: Webhook 수신 서버 또는 CI 파이프라인 설정 완료
TODO
- Webhook 설정: Gitea 리포지토리에 PR 이벤트(Webhook) 설정
- Webhook 핸들러 스크립트:
- 서버/엔드포인트 구현(Flask/FastAPI 등)
- 이벤트 파싱 후 해당 PR 번호를 받아서 분석 스크립트 호출
- CI/CD 설정(옵션): Drone CI나 Jenkins를 사용할 경우 해당 파이프라인 설정 파일 작성(.drone.yml, Jenkinsfile 등)
- 자동화 테스트: 테스트 리포지토리에서 PR 생성/업데이트 → Webhook → 분석 결과 자동 코멘트 달리는지 확인
목표: 예외 상황 처리, 성능 개선, 로깅 강화 등 실제 운영 환경에서 안정적인 동작 보장
결과물: 신뢰성 높은 분석 파이프라인
TODO
- 에러 핸들링 강화:
- GPT/Claude 응답 타임아웃 처리
- Gitea API 에러 재시도 로직 개선
- 네트워크 단절 시 Graceful Fallback
- 성능 개선:
- 변경 파일 수가 많을 경우 batching 처리
- GPT 요청 횟수를 줄이기 위해 Summarization-Chunking 전략 검토
- 추적/모니터링:
- 로깅 레벨 정립(DEBUG/INFO/WARN/ERROR)
- Gitea, GPT 호출 빈도/응답시간 모니터링
- 문서화:
- README.md에 사용 방법, 설정 방법 명시
- 유지보수 가이드, Troubleshooting 문서 작성