Skip to content

Main to Dev - #34

Merged
dldusgh318 merged 57 commits into
developfrom
main
Sep 5, 2026
Merged

dldusgh318 merged 57 commits into
developfrom
main

Conversation

@dldusgh318

@dldusgh318 dldusgh318 commented Sep 5, 2026 •

Copy link
Copy Markdown
Contributor

Summary by CodeRabbit

  • 새 기능

    • 저장소를 대상으로 Semgrep·CodeQL·인프라 분석을 수행하고 보안 결과를 통합 제공합니다.
    • 중복 결과를 정리하고 심각도, 위치, CWE 등 일관된 형식으로 표시합니다.
    • RAG 기반 보안 문서 검색과 Claude를 활용한 취약점 설명·수정 예시를 지원합니다.
    • 분석 완료·실패 결과를 Spring 서비스로 자동 전달합니다.
    • GitHub 토큰을 안전하게 임시 저장하고 저장소 다운로드 및 작업 파일을 정리합니다.
  • 문서

    • 서비스 기능, 아키텍처, RAG 문서 구성 및 설정 안내를 업데이트했습니다.

dldusgh318 and others added 30 commits June 11, 2026 21:51
[FEAT] Pipeline Context 및 Analyzer Runner Skeleton 구현
[FEAT] Finding 후처리 및 RAG/LLM Stub 구현
[FEAT] Pipeline Orchestrator 및 Spring Callback Stub 연결
[Feat] RAG 문서 저장 파이프라인 구현
boogiewooki02 and others added 27 commits August 31, 2026 17:18
[Feat] LLM 기반 분석 결과 생성 파이프라인 구현
[FEAT] GitHub repository shallow clone 구현
[FEAT] Semgrep & CodeQL analyzer runner 구현
@dldusgh318 dldusgh318 self-assigned this Sep 5, 2026
@coderabbitai

coderabbitai Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Team

Run ID: ad7fffbf-66d4-4bf9-b435-4b7782827183

📥 Commits

Reviewing files that changed from the base of the PR and between 11f8f23 and 080475c.

📒 Files selected for processing (54)
  • .env.example
  • .gitignore
  • README.md
  • app/api/routes/analyze.py
  • app/collector/__init__.py
  • app/collector/git_collector.py
  • app/core/config.py
  • app/jobs/analysis_job.py
  • app/jobs/secret_store.py
  • app/requirements.txt
  • app/schemas/analyze.py
  • app/schemas/base.py
  • app/schemas/explanation.py
  • app/schemas/finding.py
  • app/schemas/pipeline.py
  • app/services/callback/__init__.py
  • app/services/callback/spring_client.py
  • app/services/llm/__init__.py
  • app/services/llm/claude_client.py
  • app/services/llm/explanation_generator.py
  • app/services/llm/prompt_builder.py
  • app/services/normalizer/__init__.py
  • app/services/normalizer/deduplicator.py
  • app/services/normalizer/finding_normalizer.py
  • app/services/rag/__init__.py
  • app/services/rag/chunker.py
  • app/services/rag/document_loader.py
  • app/services/rag/documents.py
  • app/services/rag/embedder.py
  • app/services/rag/hybrid_search.py
  • app/services/rag/preprocessor.py
  • app/services/rag/query_builder.py
  • app/services/rag/vector_store.py
  • app/services/scanner/__init__.py
  • app/services/scanner/base.py
  • app/services/scanner/codeql_runner.py
  • app/services/scanner/codeql_sarif_parser.py
  • app/services/scanner/infra_runner.py
  • app/services/scanner/process_runner.py
  • app/services/scanner/semgrep_runner.py
  • rag_documents/README.md
  • rag_eval/security_findings.json
  • requirements.txt
  • scripts/evaluate_rag_search.py
  • scripts/index_rag_documents.py
  • scripts/smoke_test_llm_explanation.py
  • scripts/smoke_test_rag_search.py
  • tests/__init__.py
  • tests/services/__init__.py
  • tests/services/scanner/__init__.py
  • tests/services/scanner/test_codeql_runner.py
  • tests/services/scanner/test_codeql_sarif_parser.py
  • tests/services/scanner/test_process_runner.py
  • tests/services/scanner/test_semgrep_runner.py

📝 Walkthrough

Walkthrough

분석 요청에 GitHub token reference, 안전한 저장소 clone, Semgrep·CodeQL 실행, finding 정규화, RAG 검색, Claude 설명 생성, Spring callback을 연결했습니다. 관련 설정, schema, CLI 도구, 문서, 테스트도 추가했습니다.

Changes

분석 파이프라인

Layer / File(s) Summary
계약 및 설정
app/schemas/*, app/core/config.py, .env.example
분석 payload, finding, pipeline context, 설명 모델과 Claude·RAG·clone·callback 설정을 추가했습니다.
보안 job 실행
app/api/routes/analyze.py, app/jobs/*, app/collector/git_collector.py, app/services/callback/*
GitHub token을 Redis reference로 저장하고, 안전한 shallow clone과 분석 실행 후 Spring callback을 전송합니다.
스캐너와 finding 변환
app/services/scanner/*, app/services/normalizer/*
Semgrep과 CodeQL 실행, 출력 제한, SARIF·JSON 파싱, 공통 finding 변환과 중복 제거를 추가했습니다.
RAG와 설명 생성
app/services/rag/*, app/services/llm/*
OWASP·CWE 문서를 처리하고 embedding 및 hybrid 검색을 수행합니다. 검색 evidence를 사용해 Claude 설명과 fallback 설명을 생성합니다.
도구와 문서
scripts/*, rag_documents/README.md, rag_eval/security_findings.json, README.md
RAG 색인·평가·smoke test CLI와 서비스 소개 문서를 추가했습니다. 기존 개발·배포 안내는 새 서비스 소개 내용으로 교체했습니다.

Estimated code review effort: 5 (Critical) | ~120 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Client
  participant AnalyzeAPI
  participant Redis
  participant RQWorker
  participant GitCollector
  participant Analyzers
  participant RAG
  participant Claude
  participant Spring
  Client->>AnalyzeAPI: 분석 요청
  AnalyzeAPI->>Redis: GitHub token reference 저장
  AnalyzeAPI->>RQWorker: 분석 job 등록
  RQWorker->>Redis: token reference 조회
  RQWorker->>GitCollector: repository shallow clone
  RQWorker->>Analyzers: Semgrep, CodeQL, Infra 실행
  Analyzers-->>RQWorker: RawFinding 목록 반환
  RQWorker->>RAG: evidence 검색
  RAG-->>RQWorker: EvidenceDocument 목록 반환
  RQWorker->>Claude: finding 설명 생성
  Claude-->>RQWorker: ExplanationResult 반환
  RQWorker->>Spring: 성공 또는 실패 callback
Loading

Poem

토끼가 clone 밭을 깡충깡충 건너요
토큰은 금고 안에서 잠들어요
finding은 가지런히 줄을 서고
RAG는 근거를 찾아오고
Claude는 설명을 꽃피워요
callback 종이 살랑 울려요

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch main

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@dldusgh318
dldusgh318 merged commit 52c1c6e into develop Sep 5, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants