> ## Documentation Index
> Fetch the complete documentation index at: https://manual.seahorse.dnotitia.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> GitHub MCP 로 PR을 조회·리뷰·일일 보고. 코드 품질 점검·보안 스캔·릴리스 노트 자동 생성까지 포괄

# Github pr review

# GitHub PR 리뷰 요약

**요약**: GitHub MCP 에 연결된 에이전트가 저장소의 PR 을 조회하고 LLM 리뷰·요약·이슈 트리아지·일일 보고를 자동 생성합니다. 단순 PR 요약뿐 아니라 코드 품질 점검·보안 스캔·릴리스 노트·이슈 우선순위까지 광범위하게 활용 가능.

## 구성 개요

```
GitHub Repository
   PRs · Issues · Commits · Releases · Code
        │
        ▼
   GitHub MCP (26 tools)
        │
        ▼
   Agent (LLM + Tool Call)
   ├─ 변경 diff 분석
   ├─ 영향 범위 추정
   ├─ 코드 품질·보안 점검
   ├─ 인라인 코멘트 작성
   └─ 일일/주간 보고 생성
        │
        ▼
   Slack / Confluence / 인보이스 / 릴리스 노트
```

## 활용 시나리오

| 시나리오             | 트리거              | 출력                              |
| ---------------- | ---------------- | ------------------------------- |
| **PR 자동 1차 리뷰**  | PR 오픈 시          | 변경 요약 + 잠재 이슈 코멘트               |
| **일일 리뷰 보고**     | 매일 18:00         | 오늘 머지/오픈된 PR 요약 → Slack         |
| **주간 코드 활동 보고**  | 매주 월 09:00       | 기여자별 PR/리뷰 통계 + 핫스팟 파일          |
| **보안 스캔**        | PR 오픈 시          | 시크릿·취약 패턴(SQL injection 등) 탐지   |
| **릴리스 노트 자동 생성** | 태그 push 시        | 마지막 릴리스 이후 PR/커밋 → CHANGELOG.md |
| **이슈 트리아지**      | 신규 이슈 등록 시       | 라벨 자동 추천·중복 이슈 검색·담당자 제안        |
| **Stale PR 알림**  | 매일               | 1주 이상 리뷰 정체된 PR 리뷰어 멘션          |
| **장애 회고**        | 사후               | 장애 시점 ±N일 머지 PR 자동 추출 → 원인 후보   |
| **신규 기여자 온보딩**   | 첫 PR 시           | 컨벤션 안내·관련 문서 링크 자동 코멘트          |
| **의존성 변경 감지**    | PR 의 lockfile 변경 | 신규/업그레이드 패키지 + CVE 조회           |

## 요구 사항

| 항목                 | 설정                                                                                      |
| ------------------ | --------------------------------------------------------------------------------------- |
| **GitHub MCP**     | [Tool Management → GitHub 템플릿](/console/agent-ops/agent-tool/templates/github) — PAT 입력 |
| **PAT 권한**         | 최소: `repo:read`, `pull_request:read/write`(코멘트 시), `issues:read/write`                  |
| **에이전트**           | GitHub MCP + 적절한 LLM 연결                                                                 |
| **모델**             | 코드 이해 강한 모델: `claude-opus-4.5` 권장 ([Billing](/billing))                                 |
| **(선택) Slack MCP** | 보고 발행용                                                                                  |
| **(선택) Scheduler** | 정기 보고용                                                                                  |

## GitHub MCP 주요 도구 (26 tools)

| 카테고리         | 대표 도구                                                                               | 용도             |
| ------------ | ----------------------------------------------------------------------------------- | -------------- |
| **PR**       | `list_pull_requests`, `get_pull_request`, `get_pull_request_diff`, `add_pr_comment` | PR 조회·diff·코멘트 |
| **이슈**       | `list_issues`, `create_issue`, `add_issue_comment`, `update_issue`                  | 이슈 관리          |
| **커밋**       | `list_commits`, `get_commit`                                                        | 커밋 이력          |
| **코드 검색**    | `search_code`, `get_file_contents`                                                  | 저장소 검색·파일 조회   |
| **릴리스**      | `list_releases`, `create_release`                                                   | 릴리스 노트         |
| **Workflow** | `list_workflow_runs`, `get_workflow_run`                                            | CI/CD 결과       |

상세 도구 목록: [GitHub 템플릿](/console/agent-ops/agent-tool/templates/github)

## 단계

<Steps>
  <Step title="GitHub PAT 발급">
    GitHub → Settings → Developer settings → Personal access tokens → Fine-grained token 권장.

    * **Repository access**: 대상 리포만 선택
    * **Permissions**:
      * `Contents: Read`
      * `Pull requests: Read` (또는 코멘트 시 Read & Write)
      * `Issues: Read` (또는 R/W)
      * `Metadata: Read`
    * **만료일** 설정 + 캘린더 등록 (만료 시 도구 침묵 실패)
  </Step>

  <Step title="GitHub MCP 등록">
    [Tool Management → GitHub 템플릿](/console/agent-ops/agent-tool/templates/github):

    * `GITHUB_PERSONAL_ACCESS_TOKEN` 환경변수에 PAT 입력
    * 접근 권한: 보통 **Private** 으로 등록 (특정 에이전트만 사용)
  </Step>

  <Step title="에이전트 구성">
    * **Endpoints**: `claude-opus-4.5` 또는 `gpt-5.2` (코드 이해)
    * **Tools**: GitHub + (옵션) Slack
    * **System Prompt**: 코드 리뷰 톤·관점·금칙 명시
  </Step>

  <Step title="단발 리뷰 (대화 모드)">
    > `owner/repo 의 PR #123 을 리뷰해줘. 변경된 파일별로 요약하고, 잠재 버그·보안 이슈·테스트 누락이 있는지 점검한 뒤 마크다운으로 정리해줘.`

    에이전트가:

    1. `get_pull_request(123)` 으로 메타 조회
    2. `get_pull_request_diff(123)` 으로 diff 가져오기
    3. LLM 분석 → 요약 + 이슈 목록
    4. 필요 시 `add_pr_comment` 로 PR 에 직접 코멘트
  </Step>

  <Step title="Flow + Scheduler 로 정기 보고">
    [Flow Studio](/agent-chat/toolbar/flow-studio) 에 저장:

    * 노드 1: `list_pull_requests(state=open|merged, since=yesterday)`
    * 노드 2: 각 PR `get_pull_request_diff` 병렬 조회
    * 노드 3: LLM 요약 (PR 별 1단락)
    * 노드 4: Slack 채널 #dev-daily 로 마크다운 전송

    [Scheduler](/agent-chat/user-menu/scheduler) 에서 `0 18 * * MON-FRI` (평일 18:00).
  </Step>

  <Step title="Webhook 트리거 (선택)">
    GitHub Webhook → 사내 Webhook 수신 → 에이전트 호출:

    * `pull_request.opened` → 즉시 1차 리뷰 코멘트
    * `release.published` → 릴리스 노트 자동 생성
    * `issues.opened` → 라벨 추천·중복 검색
  </Step>
</Steps>

## 프롬프트 템플릿

### 단일 PR 리뷰

```
{owner}/{repo} 의 PR #{번호} 를 다음 관점에서 리뷰해줘:

1. 변경 요약 (3문장)
2. 영향 범위 (어떤 모듈·기능)
3. 잠재 버그 (null 처리·경계값·동시성)
4. 보안 (시크릿 노출·SQL/XSS·권한)
5. 테스트 (신규/수정 테스트 충분성)
6. 가독성·네이밍·중복

각 항목은 **🟢/🟡/🔴 등급**과 함께,
근거를 파일:라인 형태로 인용해줘.

마지막에 PR 코멘트로 등록할 마크다운 1개를 제안해줘
(코드 전체 재작성 금지, 핵심 수정 제안만).
```

### 일일 보고

```
오늘({날짜}) {owner}/{repo} 에서:
- 머지된 PR 목록과 각 PR 한 줄 요약
- 새로 오픈된 PR + 리뷰 대기 시간
- Stale PR (3일 이상 정체) + 리뷰어 멘션

Slack 마크다운으로 정리해줘. 각 PR 은 링크 포함.
```

### 릴리스 노트

```
{owner}/{repo} 의 마지막 릴리스 v{prev} 이후 머지된 PR 을 분석하고,
다음 형식의 CHANGELOG 를 만들어줘:

## v{new} - {date}

### ✨ 새 기능
### 🐛 버그 수정
### ⚠️ 변경 사항 (Breaking)
### 📝 문서·기타

각 항목은 PR 번호·제목·기여자 포함.
```

### 보안 스캔

```
PR #{번호} 의 변경 코드에서 다음을 점검해줘:
1. 하드코딩된 시크릿(API 키·비밀번호·토큰) — regex + entropy
2. SQL injection 취약 패턴 (raw SQL + 사용자 입력)
3. XSS (innerHTML · dangerouslySetInnerHTML)
4. 권한 우회 (관리자 체크 누락)
5. 의존성 추가 시 라이선스·CVE

발견 사항은 심각도(Critical/High/Medium/Low) 와
파일:라인, 수정 제안 코드 스니펫 포함.
```

### 이슈 트리아지

```
신규 이슈 #{번호} 를 분석해서:
1. 라벨 추천 (bug/feature/docs/...)
2. 우선순위 추정 (P0~P3)
3. 유사 기존 이슈 3개 검색 (중복 가능성)
4. 담당 가능한 팀/사람 제안 (CODEOWNERS 기준)

결과는 issue 코멘트로 게시 가능한 마크다운으로.
```

## 변형·응용

* **CODEOWNERS 자동 멘션** — 변경 파일별 담당자 자동 호출
* **다국어 PR 요약** — 한/영 동시 요약 → 글로벌 팀
* **CI 실패 분석** — `get_workflow_run` + 로그 → 실패 원인 추정
* **장애 회고용 PR 추출** — 장애 시점 기준 ±2일 머지 PR + 영향 모듈 목록
* **Confluence 자동 발행** — 주간 보고를 Confluence 페이지로 자동 게시 ([Atlassian MCP](/console/agent-ops/agent-tool/templates/atlassian))
* **PR 통계 대시보드** — 결과를 PostgreSQL 적재 후 BI ([PostgreSQL 자동화](/agent-chat/recipes/postgres-sql-automation))

## 주의 사항

<Warning>
  * **PAT 최소 권한** — `repo: write` 같은 광범위 권한 금지. 코멘트만 필요하면 `pull_request: write` 로 제한.
  * **자동 머지 금지** — 에이전트가 PR 을 자동 머지·승인하도록 두면 코드 사고 위험. 항상 **사람 검수** 단계 필수.
  * **할루시네이션** — LLM 이 존재하지 않는 함수·파일을 인용할 수 있음. 중요한 코멘트 전 사람 확인.
  * **시크릿 노출** — diff 에 포함된 시크릿이 LLM 프롬프트에 들어감. **시크릿 마스킹 전처리** 또는 시크릿 발견 시 즉시 GitHub 에 알림 + 키 회전.
  * **Rate Limit** — GitHub API 시간당 한도. 대규모 저장소 일일 보고 시 ETag 캐시·페이지네이션 활용.
  * **비용** — 큰 diff (수천 줄) 를 분석하면 토큰 비용 급증. 파일 단위 분리·중요 변경 우선 분석. 한도·요금은 [Billing](/billing) 참고.
</Warning>

<Info>
  **Tool 호출 실패 시** — PAT 만료, 권한 부족, Rate Limit 가 가장 흔한 원인. [Tool 상세](/console/agent-ops/agent-tool/tool-detail) 에서 호출 로그 확인.
</Info>

## 관련 레시피

* [Slack 알림 자동화](/agent-chat/recipes/slack-notification) — 리뷰 결과를 Slack 으로
* [보고서 자동 발행](/agent-chat/recipes/scheduled-report) — 주간 코드 활동 리포트
* [PostgreSQL 반복 쿼리 자동화](/agent-chat/recipes/postgres-sql-automation) — PR 통계 적재
* [대량 문서 인덱싱·요약](/agent-chat/recipes/bulk-document-summarize) — 코드베이스 문서 RAG 화
* [레시피 목록](/agent-chat/recipes)
