GitHub 레포지토리를 분석하여 리포트를 생성하는 FastAPI 서버
- Python 3.10 이상
- Git CLI 설치 필요
python -m venv venv source venv/bin/activate # Linux/macOS venv\Scripts\activate # Windows pip install -r requirements.txt
GEMINI_API_KEY=your_gemini_api_key_here TEMP_DIR=./temp CALLBACK_TIMEOUT=60
uvicorn app.main:app --reload --port 8000
POST /api/v1/reports/generate
리포트 생성을 비동기로 요청합니다. 분석이 완료되면 callbackUrl로 결과가 전송됩니다.
- Request Body:
{ "reportId": 123, "gitUrl": "https://github.com/example/repo", "reportType": "MAIN", "callbackUrl": "https://your-api.com/callback", "githubToken": "ghp_xxxxxxxxxxxx" }
POST /api/v1/reports/generate/sync
분석 결과를 즉시 응답으로 반환합니다. (테스트 및 소규모 레포용)
POST /api/v1/reports/generate/test
Public 레포지토리 전용으로, GitHub 토큰 없이 이름과 이메일만으로 분석을 진행합니다.
- 접속 주소:
http://localhost:8000/ - 주요 기능:
- GitHub 레포지토리 URL 및 작성자 정보 입력
MAIN/DETAIL리포트 타입 선택- AI 분석 진행 상황 실시간 모니터링
- 생성된 리포트의 시각화 및 열람
app/
├── controllers/ # API 요청 제어 및 로직 흐름 관리
├── services/ # 핵심 비즈니스 로직 (Git, Gemini, Analyzer)
├── routes/ # FastAPI 라우터 정의
├── dtos/ # 데이터 전송 객체 (Pydantic 모델)
├── prompts/ # Gemini 분석용 프롬프트 템플릿
├── utils/ # 공통 유틸리티 (파일 읽기, 트리 생성 등)
└── middlewares/ # 에러 핸들러 및 미들웨어