Qodo Merge(PR-Agent): AI 기반 Pull Request 협업 도구 심층 분석

Tasker_Jang·2025년 4월 18일
1

개발 팀에서 코드 리뷰는 코드 품질을 유지하고 팀원 간 지식 공유를 촉진하는 필수적인 과정입니다. 하지만 대규모 프로젝트나 빠른 개발 사이클에서는 이 과정이 병목 현상이 되기도 합니다. 리뷰어는 많은 PR(Pull Request)을 검토해야 하고, 작성자는 피드백을 기다리며 시간을 소비하게 됩니다.

Qodo Merge(이전 명칭: PR-Agent)는 이러한 문제를 해결하기 위해 탄생한 AI 기반 도구로, GitHub, GitLab, BitBucket과 같은 Git 기반 플랫폼의 PR 워크플로우를 획기적으로 개선합니다. 이 글에서는 Qodo Merge의 다양한 기능과 활용 방법을 상세히 알아보겠습니다.

Qodo Merge란?

Qodo Merge는 AI를 활용하여 PR 프로세스를 자동화하고 개선하는 도구입니다. PR 설명 생성부터 코드 리뷰, 개선 제안, 테스트 생성까지 PR 생명주기 전반에 걸친 다양한 기능을 제공합니다. 오픈소스 PR-Agent를 기반으로 하며, 프리미엄 기능(💎로 표시)이 추가된 버전이 Qodo Merge입니다.

기본 도구 상세 설명

1. PR 설명 자동화 (/describe)

PR 작성 시 가장 먼저 필요한 것은 명확한 설명입니다. /describe 명령어를 사용하면 AI가 PR의 코드 변경사항을 분석하여 체계적인 설명을 자동으로 생성합니다.

주요 기능

  • PR 타입 분류: 버그 수정, 기능 추가, 문서화 등 PR의 유형을 자동으로 식별
  • 요약 생성: 변경 내용을 간결하고 명확하게 요약
  • 코드 변경 분석: 파일별 변경 내용을 상세히 설명하는 워크스루 제공
  • 라벨 자동 추가: PR 내용에 맞는 라벨 제안 및 추가

사용 방법

PR에 다음과 같이 댓글을 작성하여 수동으로 실행할 수 있습니다:

/describe

또는 설정 파일을 통해 모든 새로운 PR에 자동으로 실행되도록 구성할 수 있습니다:

[github_app]
pr_commands = [
    "/describe",
    # 기타 명령어들...
]

[pr_description]
publish_labels = true
# 추가 설정...

마커 템플릿 활용하기

PR 설명에 사용자 콘텐츠와 AI 생성 콘텐츠를 함께 사용하고 싶다면, 마커 템플릿 기능을 활용할 수 있습니다. 설정에서 use_description_markers=true로 설정한 후, PR 설명에 다음과 같이 마커를 삽입합니다:

사용자 작성 내용...

## PR 유형:
pr_agent:type

## PR 설명:
pr_agent:summary

## PR 변경사항 설명:
pr_agent:walkthrough

이렇게 하면 각 마커가 AI가 생성한 해당 내용으로 대체됩니다.

인라인 파일 요약

프리미엄 기능으로, PR의 "Files changed" 탭에서 각 파일의 변경 내용 요약을 볼 수 있습니다. 이 기능은 코드 변경사항을 검토할 때 각 파일의 목적을 빠르게 이해하는 데 도움이 됩니다.

설정 방법:

[pr_description]
inline_file_summary = "table"  # 또는 true, false

커스텀 라벨

기본 라벨(버그 수정, 테스트, 기능 개선 등) 외에도 프로젝트에 특화된 커스텀 라벨을 정의할 수 있습니다. 라벨은 설정 파일이나 저장소의 라벨 페이지에서 직접 관리할 수 있습니다.

설정 파일 예시:

[config]
enable_custom_labels=true

[custom_labels."sql_changes"]
description = "SQL 쿼리가 변경된 PR에 사용"

[custom_labels."test"]
description = "주로 새로운 테스트가 포함된 PR에 사용"

저장소 라벨 페이지에서는 다음과 같이 설정합니다:

  • 라벨 이름: 원하는 커스텀 라벨 이름
  • 설명: pr_agent: 접두사로 시작하는 설명 (예: pr_agent: SQL 쿼리가 변경된 PR에 사용)

2. PR 리뷰 자동화 (/review)

/review 명령어는 PR 코드 변경을 분석하고 종합적인 리뷰 피드백을 제공합니다. 이는 리뷰어에게 유용한 통찰력을 제공하여 리뷰 프로세스를 가속화합니다.

주요 기능

  • 코드 피드백: 코드 구조, 가독성, 성능, 잠재적 문제점 등에 대한 피드백
  • 테스트 리뷰: PR이 충분한 테스트를 포함하고 있는지 확인
  • 리뷰 노력 추정: PR 검토에 필요한 시간과 노력 추정 (1-5 척도)
  • PR 분할 분석: PR가 여러 주제를 포함하고 있어 분할 가능한지 확인
  • 보안 검토: 보안 취약점이나 잠재적 문제 식별
  • 티켓 분석: PR이 연결된 GitHub/Jira 티켓 요구사항을 충족하는지 확인

사용 방법

PR에 다음과 같이 댓글을 작성하여 수동으로 실행할 수 있습니다:

/review

또는 설정을 통해 자동화할 수 있습니다:

[github_app]
pr_commands = [
    "/review",
    # 기타 명령어들...
]

[pr_reviewer]
extra_instructions = "..."
# 추가 설정...

섹션 설정

리뷰 도구는 다양한 섹션을 포함하거나 제외하도록 구성할 수 있습니다:

[pr_reviewer]
require_score_review = false           # PR 점수 섹션 포함 여부
require_tests_review = true            # 테스트 검토 섹션 포함 여부
require_estimate_effort_to_review = true # 리뷰 노력 추정 섹션 포함 여부
require_can_be_split_review = false    # PR 분할 가능성 섹션 포함 여부
require_security_review = true         # 보안 검토 섹션 포함 여부
require_ticket_analysis_review = true  # 티켓 분석 섹션 포함 여부

라벨 자동화

리뷰 도구는 다음과 같은 라벨을 자동으로, 필요에 따라 추가할 수 있습니다:

  • 보안 이슈 발견 시 "possible security issue" 라벨
  • 리뷰 노력 수준을 나타내는 "Review effort [1-5]: x" 라벨
[pr_reviewer]
enable_review_labels_security = true  # 보안 이슈 라벨 활성화
enable_review_labels_effort = true    # 리뷰 노력 라벨 활성화

커스텀 리뷰 지침

extra_instructions 매개변수를 사용하여 리뷰 도구에 추가 지침을 제공할 수 있습니다:

[pr_reviewer]
extra_instructions="""
코드 피드백 섹션에서 다음 사항을 강조해주세요:
- 코드 로직이 관련 엣지 케이스를 다루고 있는가?
- 코드 로직이 명확하고 이해하기 쉬운가?
- 코드 로직이 효율적인가?
...
"""

3. 코드 개선 제안 (/improve)

/improve 명령어는 PR 코드를 분석하고 구체적인 개선 제안을 자동으로 생성합니다. 이 기능은 PR 저자에게 특히 유용합니다.

주요 기능

  • 구체적인 코드 제안: 코드 개선을 위한 명확하고 실행 가능한 제안 제공
  • 제안 추적: 구현된 제안을 자동으로 추적하고 통계 제공 (💎)
  • 적용 가능한 제안: 체크박스를 통해 제안을 바로 적용할 수 있는 기능 (💎)
  • 제안 영향 평가: 제안이 코드 품질에 미치는 영향 분석 (💎)

사용 방법

PR에 다음과 같이 댓글을 작성하여 수동으로 실행할 수 있습니다:

/improve

또는 커미터블 코드 제안 모드를 활성화하여 사용할 수 있습니다:

/improve --pr_code_suggestions.commitable_code_suggestions=true

자동화 설정:

[github_app]
pr_commands = [
    "/improve",
    # 기타 명령어들...
]

[pr_code_suggestions]
num_code_suggestions_per_chunk = 3
# 추가 설정...

제안 추적 및 영향 평가

Qodo Merge는 두 가지 유형의 제안 구현을 추적합니다:
1. 직접 구현: 사용자가 체크박스를 클릭하여 직접 제안을 적용
2. 간접 구현: 사용자가 IDE에서 제안을 구현한 경우, 각 커밋 후 특별한 로직을 사용하여 제안이 구현되었는지 식별

구현된 제안 수를 계산하고 PR 프로세스에 미치는 영향에 대한 통계를 제공합니다.

베스트 프랙티스 활용

💎 기능으로, 저장소의 루트 디렉토리에 best_practices.md 파일을 생성하여 AI 모델에 추가 가이드라인을 제공할 수 있습니다. 이 파일에는 저장소/조직 특화된 모범 사례, 코딩 표준, 가이드라인을 포함할 수 있습니다.

예시:

## 프로젝트 모범 사례
- I/O 작업은 try-except 블록으로 캡슐화해야 함
- print 문 대신 logging 모듈 사용
- None과 비교할 때는 is 및 is not 사용
- 스크립트가 실행될 때만 코드가 실행되도록 if __name__ == '__main__': 사용
- 파일을 열 때는 with 문 사용
...

베스트 프랙티스는 세 가지 방식으로 관리할 수 있습니다:
1. 로컬 베스트 프랙티스: 로컬 저장소 루트의 best_practices.md
2. 글로벌 베스트 프랙티스: 전체 조직에 적용되는 설정
3. 자동 베스트 프랙티스: 수락된 제안에서 반복되는 패턴을 자동으로 식별 (💎)

자가 리뷰 및 자동 승인

Qodo Merge는 개발자가 제안을 검토했는지 확인하는 체크박스를 제공하며, 특정 조건에서 PR을 자동으로 승인할 수 있습니다.

자가 리뷰 설정:

[pr_code_suggestions]
demand_code_suggestions_self_review = true
code_suggestions_self_review_text = "... (체크박스 텍스트) ..."
fold_suggestions_on_self_review = true  # 자가 리뷰 후 제안 접기

자동 승인 설정:

[config]
enable_comment_approval = true  # 댓글을 통한 승인 활성화
enable_auto_approval = true     # 기준 기반 자동 승인 활성화
auto_approve_for_low_review_effort = 2  # 리뷰 노력 점수가 2 이하일 때 자동 승인
auto_approve_for_no_suggestions = true  # 제안이 없을 때 자동 승인

4. 질문 응답 (/ask)

/ask 명령어를 사용하면 PR에 대한 자유 형식의 질문을 할 수 있습니다. 이 도구는 PR 코드 변경사항을 기반으로 질문에 답변합니다.

사용 방법

PR에 다음과 같이 댓글을 작성하여 질문을 할 수 있습니다:

/ask "이 PR은 어떤 문제를 해결하나요?"

특정 코드 라인에 대한 질문

PR의 diff 뷰에서 특정 라인을 선택하고 /ask 명령어를 사용하여 해당 코드에 대한 질문을 할 수 있습니다:
1. 라인 번호 옆의 '+' 기호를 클릭하여 라인 선택
2. 여러 라인을 선택하려면 첫 번째 라인의 '+' 기호를 클릭한 후 드래그하여 나머지 라인 선택
3. 댓글 상자에 /ask "..." 입력 후 "Add single comment" 버튼 클릭

이미지에 대한 질문

PR 댓글에 포함된 이미지에 대해서도 질문할 수 있습니다. 기본 문법:

/ask "질문 내용"

[Image](https://이미지_링크)

이미지에 대한 질문 과정:
1. 이미지만 포함된 댓글 게시
2. 해당 댓글에 인용 답글 작성
3. 열린 화면에서 이미지 아래에 질문 입력
4. 댓글 게시 후 답변 확인

5. Changelog 업데이트 (/update_changelog)

/update_changelog 명령어는 PR 변경사항을 기반으로 CHANGELOG.md 파일을 자동으로 업데이트합니다.

사용 방법

PR에 다음과 같이 댓글을 작성하여 수동으로 실행할 수 있습니다:

/update_changelog

설정 옵션

[pr_update_changelog]
push_changelog_changes = false  # 변경사항 푸시 여부 (false면 댓글로만 게시)
extra_instructions = "..."      # 도구에 대한 추가 지침
add_pr_link = true              # changelog에 PR 링크 추가 여부
skip_ci_on_push = true          # 푸시 시 CI 테스트 건너뛰기 여부

6. 도움말 문서 (/help_docs)

/help_docs 명령어는 Git 문서 폴더를 기반으로 자유 형식의 질문에 답변할 수 있습니다.

사용 방법

PR이나 이슈에 다음과 같이 댓글을 작성하여 실행할 수 있습니다:

/help_docs "질문 내용"

다른 저장소의 문서에 질문하는 방법:

/help_docs "질문 내용" --pr_help_docs.repo_url="https://github.com/user/repo"

설정 옵션

[pr_help_docs]
repo_url = ""                  # 컨텍스트로 사용할 저장소
docs_path = "docs"             # 문서 폴더
repo_default_branch = "main"   # repo_url 재정의 시 사용할 브랜치
exclude_root_readme = false    # 루트 README 파일 제외 여부
supported_doc_exts = [".md", ".txt", ...]  # 포함할 파일 확장자

7. 도움말 및 분석 (/help, /analyze)

/help 명령어는 사용 가능한 모든 도구 목록과 설명을 제공합니다. Qodo Merge 사용자는 관련 체크박스를 선택하여 각 도구를 트리거할 수도 있습니다.

/analyze 명령어(💎)는 PR 코드 변경사항을 스캔하고, 변경된 코드 컴포넌트(메서드, 함수, 클래스)를 찾아 각 컴포넌트에 대한 테스트, 문서, 코드 제안, 유사 코드 검색을 대화형으로 생성할 수 있게 합니다.

프리미엄 도구 상세 설명 (💎)

1. 테스트 생성 (/test)

/test 명령어는 PR 코드 변경을 기반으로 선택된 컴포넌트에 대한 테스트를 생성합니다.

사용 방법

PR에 다음과 같이 댓글을 작성하여 실행할 수 있습니다:

/test component_name

여기서 'component_name'은 PR의 특정 컴포넌트 이름입니다. 컴포넌트를 지정하지 않으면 가장 큰 컴포넌트에 대한 테스트가 생성됩니다.

지원 언어

Python, Java, C++, JavaScript, TypeScript, C#

설정 옵션

[pr_test]
num_tests = 3                 # 생성할 테스트 수
testing_framework = ""        # 사용할 테스팅 프레임워크
avoid_mocks = true            # 가능한 경우 목(mock) 사용 회피
extra_instructions = "..."    # 추가 지침
file = ""                     # 동일한 이름의 컴포넌트가 여러 개 있는 경우 관련 파일 지정
class_name = ""               # 동일한 이름의 메서드가 여러 개 있는 경우 관련 클래스 이름 지정

2. 컴포넌트 개선 (/improve_component)

/improve_component 명령어는 PR에서 변경된 특정 코드 컴포넌트에 대한 코드 제안을 생성합니다.

사용 방법

PR에 다음과 같이 댓글을 작성하여 실행할 수 있습니다:

/improve_component component_name

설정 옵션

[pr_improve_component]
num_code_suggestions = 4      # 제공할 코드 제안 수
extra_instructions = "..."    # 추가 지침
file = ""                     # 동일한 이름의 컴포넌트가 여러 개 있는 경우 관련 파일 지정
class_name = ""               # 동일한 이름의 메서드가 여러 개 있는 경우 관련 클래스 이름 지정

3. 문서화 (/add_docs)

/add_docs 명령어는 PR에서 변경된 코드 컴포넌트(함수, 클래스 등)에 대한 문서를 자동으로 제안합니다.

사용 방법

PR에 다음과 같이 댓글을 작성하여 실행할 수 있습니다:

/add_docs

특정 컴포넌트에 대한 문서만 생성하려면:

/add_docs component_name

설정 옵션

[pr_add_docs]
docs_style = "sphinx"         # 문서 스타일 (Python docstring용): google, numpy, sphinx, restructuredtext, plain
extra_instructions = "..."    # 추가 지침

4. 커스텀 라벨 생성 (/generate_labels)

/generate_labels 명령어는 PR 코드 변경을 스캔하고, 주어진 라벨 목록과 설명을 기반으로 PR에 맞는 라벨을 자동으로 제안합니다.

사용 방법

PR에 다음과 같이 댓글을 작성하여 실행할 수 있습니다:

/generate_labels

커스텀 라벨 활성화 방법

  1. CLI (로컬 설정 파일)
  2. 저장소 설정 파일
  3. 저장소의 라벨 페이지에서 관리

저장소 라벨 페이지에서 커스텀 라벨 추가 방법:

  • GitHub: https://github.com/{owner}/{repo}/labels
  • GitLab: https://gitlab.com/{owner}/{repo}/-/labels
  • 라벨 이름: 커스텀 라벨 이름
  • 설명: pr_agent: 접두사로 시작하는 설명

설정 옵션

[config]
enable_custom_labels=true

[custom_labels."Custom Label Name"]
description = "이 라벨을 제안해야 하는 경우에 대한 설명"

5. 커스텀 프롬프트 (/custom_prompt)

/custom_prompt 명령어는 PR 코드 변경을 스캔하고 PR 코드 개선을 위한 제안을 자동으로 생성합니다. 이 도구는 improve 도구와 유사하지만, pr_custom_prompt.prompt 설정에 정의된 특정 가이드라인을 따르는 제안만 제시합니다.

사용 방법

PR에 다음과 같이 댓글을 작성하여 실행할 수 있습니다:

/custom_prompt --pr_custom_prompt.prompt="
코드 제안은 다음 사항에만 집중해야 합니다:
- ...
- ...
"

설정 파일 예시:

[pr_custom_prompt]
prompt="""
코드 제안은 다음 사항에만 집중해야 합니다:
- 새 함수 구현 시 엣지 케이스 확인
- 모든 변수가 의미 있는 이름을 가지도록 확인
- 코드가 효율적인지 확인
"""

6. CI 피드백 (/checks)

/checks 명령어는 PR에 실패한 체크가 있을 때 자동으로 트리거되며, 실패한 체크를 분석하여 다양한 피드백을 제공합니다.

주요 피드백

  • 실패한 단계
  • 실패한 테스트 이름
  • 실패 요약
  • 관련 오류 로그

사용 방법

PR에 다음과 같이 댓글을 작성하여 수동으로 실행할 수 있습니다:

/checks "https://github.com/{repo_name}/actions/runs/{run_number}/job/{job_number}"

설정 옵션

[checks]
enable_auto_checks_feedback = true  # 체크 실패 시 자동 피드백 활성화
excluded_checks_list = []           # 피드백에서 제외할 체크 목록
persistent_comment = true           # 이전 체크 댓글 덮어쓰기 여부
enable_help_text = true             # 도움말 메시지 표시 여부
final_update_message = true         # 업데이트 메시지 표시 여부

7. 유사 코드 검색 (/find_similar_component)

/find_similar_component 명령어는 조직의 코드베이스 내부 또는 오픈소스 코드에서 가장 유사한 코드 컴포넌트를 검색합니다.

사용 방법

PR에 다음과 같이 댓글을 작성하여 수동으로 실행할 수 있습니다:

/find_similar_component COMPONENT_NAME

이름이 모호한 경우 다음 설정을 사용할 수 있습니다:

/find_similar_component COMPONENT_NAME --pr_find_similar_component.file=FILE_NAME

/analyze 테이블에서 자동으로 호출할 수도 있습니다.

검색 결과

  • 추출된 키워드: Qodo Merge가 코드에서 추출한 키워드
  • 검색 컨텍스트: 검색이 수행될 컨텍스트(조직 코드베이스 또는 오픈소스 코드)
  • 유사 코드: 발견된 가장 유사한 코드 컴포넌트
  • 관련 저장소: 검색된 코드 컴포넌트와 관련된 오픈소스 저장소

설정 옵션

[pr_find_similar_component]
search_from_org = false      # 조직 코드베이스에서 유사 코드 검색 여부
number_of_keywords = 5       # 검색에 사용할 키워드 수
number_of_results = 5        # 표시할 최대 결과 수

8. 구현 (/implement)

/implement 명령어는 인간 코드 리뷰 토론과 피드백을 바로 커밋할 수 있는 코드 변경으로 변환합니다. 이 도구는 LLM 기술을 활용하여 PR 댓글과 리뷰 제안을 구체적인 구현 코드로 변환해 개발자가 피드백을 빠르게 실행 가능한 솔루션으로 전환하는 데 도움을 줍니다.

사용 시나리오

리뷰어용
리뷰어는 다음과 같이 코드 변경을 요청할 수 있습니다:
1. 수정할 코드 블록 선택
2. 다음 구문으로 댓글 추가:

/implement <코드-변경-설명>

PR 작성자용
PR 작성자는 리뷰 댓글에 다음 방법으로 응답하여 제안된 변경사항을 구현할 수 있습니다:
1. 특정 구현 세부 정보 추가:

/implement <코드-변경-설명>
  1. 원래 리뷰 댓글을 지침으로 사용:
/implement

댓글 참조
어떤 댓글에서든 다음과 같이 참조하여 변경사항을 구현할 수 있습니다:

/implement <리뷰-댓글-링크>

리뷰 토론 스레드 내에서 구현이 이루어집니다.

9. 저장소 토론 스캔 (/scan_repo_discussions)

/scan_repo_discussions 명령어는 지난 12개월 동안 병합된 풀 리퀘스트에서 코드 토론(코드 라인에 대한 리뷰 댓글)을 분석합니다. 이 도구는 이러한 토론과 다른 PR 메타데이터를 처리하여 팀 피드백과 코드 리뷰에서 반복되는 패턴을 식별하고, 핵심 인사이트와 권장 사항을 담은 종합적인 best_practices.md 문서를 생성합니다.

이 파일은 일반적인 모범 사례가 아닌, 팀의 실제 워크플로우와 토론에서 도출된 저장소별 패턴을 캡처합니다. Qodo Merge는 이를 활용하여 향후 풀 리퀘스트에서 코드 품질을 개선하기 위한 맞춤형 제안을 제공합니다.

활성 저장소 필요

이 도구는 실제 토론에 의존하여 의미 있는 인사이트를 생성하므로 실제 저장소에서 작동하도록 설계되었습니다. best_practices.md 파일을 생성하려면 최소 50개의 병합된 PR이 필요합니다.

추가 사용자 정의

팀은 특정 개발 우선순위와 컨텍스트에 더 잘 맞도록 이러한 인사이트를 추가로 사용자 정의하고 개선할 수 있습니다. PR이 생성될 때 best_practices.md 파일을 직접 편집하거나 시간이 지남에 따라 반복적으로 편집하여 Qodo Merge에서 제공하는 '모범 사례' 제안을 향상시킬 수 있습니다.

사용 방법

PR에 다음과 같이 댓글을 작성하여 실행할 수 있습니다:

/scan_repo_discussions

응답으로 봇은 자동 생성된 best_practices.md 파일을 포함하는 새 PR을 생성합니다. 최대 250개의 PR을 스캔하므로 스캔에 몇 분이 소요될 수 있습니다.

설정 옵션

/scan_repo_discussions --scan_repo_discussions.force_scan=true
  • 이미 존재하더라도 새 best_practices.md 파일이 포함된 PR을 강제로 생성합니다.
/scan_repo_discussions --scan_repo_discussions.days_back=X
  • 토론 스캔을 위한 이전 일수를 지정합니다. 기본값은 365일입니다.
/scan_repo_discussions --scan_repo_discussions.minimal_number_of_prs=X
  • best_practices.md 파일을 생성하는 데 필요한 최소 병합된 PR 수를 지정합니다. 기본값은 50개 PR입니다.

추가 고급 기능 및 통합

베스트 프랙티스 관리의 세 가지 방식

Qodo Merge는 세 가지 방식으로 모범 사례를 관리합니다:

1. 로컬 베스트 프랙티스

로컬 저장소의 루트 디렉토리에 best_practices.md 파일을 생성하여 해당 저장소에 특화된 모범 사례와 코딩 표준을 정의할 수 있습니다. 이 파일은 PR 코드가 가이드라인을 위반할 경우 추가 제안을 생성하는 데 사용됩니다.

2. 글로벌 베스트 프랙티스

전체 조직에 적용되는 모범 사례를 정의하려면 글로벌 설정을 활성화할 수 있습니다:

[best_practices]
enable_global_best_practices = true

그런 다음 글로벌 설정 저장소의 루트에 best_practices.md 파일을 생성합니다.

3. 자동 베스트 프랙티스 (💎)

Qodo Merge의 혁신적인 기능으로:

  • 수락된 제안에서 반복되는 패턴 식별
  • 팀이 일관되게 중요시하는 내용을 기반으로 모범 사례 페이지 자동 생성
  • 이러한 학습된 패턴을 향후 코드 리뷰에 적용

이를 통해 시스템이 팀의 선택에서 지속적으로 학습하여 점점 더 관련성 높은 제안을 제공하는 자동 피드백 루프가 생성됩니다.

설정 옵션:

[auto_best_practices]
# 모든 자동 모범 사례 사용 또는 생성 비활성화
enable_auto_best_practices = true  

# 'improve' 도구에서 자동 모범 사례 파일 사용 비활성화
utilize_auto_best_practices = true 

# 자동 모범 사례 생성 프롬프트에 대한 추가 지침
extra_instructions = ""            

# 감지할 최대 패턴 수
max_patterns = 5                   

여러 언어에 대한 베스트 프랙티스

여러 프로그래밍 언어를 사용하는 Git 조직의 경우, 언어별 가이드라인을 포함하는 중앙 집중식 글로벌 best_practices.md 파일을 유지할 수 있습니다. 풀 리퀘스트를 검토할 때 Qodo Merge는 자동으로 프로그래밍 언어를 식별하고 이 파일에서 관련 모범 사례를 적용합니다.

다음 형식을 사용하여 best_practices.md 파일을 구성합니다:

# [Python]
...
# [Java]
...
# [JavaScript]
...

브라우저 확장 프로그램 및 통합

Qodo Merge는 Chrome 확장 프로그램을 통해 GitHub, GitLab, Bitbucket과 통합되어 PR 검토 경험을 향상시킵니다. 이 확장 프로그램은 코드 리뷰 중에 직접 도구에 액세스할 수 있는 편리한 방법을 제공합니다.

CI/CD 파이프라인 통합

Qodo Merge는 GitHub Actions, GitLab CI/CD, Bitbucket Pipelines와 같은 CI/CD 파이프라인과 통합하여 PR 생성, 업데이트 또는 CI 작업 실패 시 자동으로 실행되도록 구성할 수 있습니다.

실제 사용 시나리오 및 모범 사례

시나리오 1: 새 PR이 열릴 때 자동 처리

새 PR이 열릴 때 자동으로 설명을 생성하고, 리뷰를 제공하고, 코드 개선 제안을 생성하도록 Qodo Merge를 구성할 수 있습니다:

[github_app]
pr_commands = [
    "/describe",
    "/review",
    "/improve"
]

시나리오 2: 코드 품질 향상을 위한 베스트 프랙티스 정의

팀의 코딩 표준과 모범 사례를 정의하여 PR에서 이러한 표준이 준수되도록 할 수 있습니다:

  1. 저장소 루트에 best_practices.md 파일 생성
  2. /improve 명령어 실행 시 AI는 이 가이드라인을 참조하여 관련 제안 생성

시나리오 3: CI 실패 자동 분석

CI 작업이 실패할 때 자동으로 피드백을 제공하도록 Qodo Merge를 구성할 수 있습니다:

[checks]
enable_auto_checks_feedback = true

이렇게 하면 CI 작업이 실패할 때마다 Qodo Merge가 문제를 분석하고 유용한 피드백을 제공합니다.

시나리오 4: 코드 리뷰의 대화형 개선

리뷰어는 특정 코드 블록을 선택하고 /implement 명령어를 사용하여 코드 변경을 제안할 수 있습니다. PR 작성자는 이러한 제안을 검토하고 체크박스를 선택하여 직접 적용하거나 /implement 명령어를 사용하여 구현할 수 있습니다.

결론

Qodo Merge(이전 PR-Agent)는 PR 워크플로우를 개선하기 위한 종합적인 AI 기반 도구로, 코드 리뷰 프로세스를 간소화하고 코드 품질을 향상시키는 데 중점을 둡니다. 자동화된 PR 설명, 리뷰 피드백, 코드 개선 제안부터 테스트 생성, 문서화, 유사 코드 검색까지 다양한 기능을 제공하여 개발자와 리뷰어 모두의 작업 효율성을 높이는 데 기여합니다.

오픈소스 버전(PR-Agent)은 기본적인 기능을 제공하며, 프리미엄 버전(Qodo Merge)은 더욱 강력한 코드 분석, 베스트 프랙티스 관리, 구현 지원 등의 기능을 통해 조직의 코드 품질과 개발 프로세스를 지속적으로 개선할 수 있도록 돕습니다.

PR 프로세스에서 AI의 힘을 활용하고 싶은 개발 팀에게 Qodo Merge는 팀의 생산성을 크게 높이고 더 나은 코드 품질을 달성하는 데 도움이 되는 강력한 도구입니다.

profile
ML Engineer 🧠 | AI 모델 개발과 최적화 경험을 기록하며 성장하는 개발자 🚀 The light that burns twice as bright burns half as long ✨

0개의 댓글