광고 자리 모집 중 · 제휴 문의

엔지니어링 팀이 GitHub 이슈와 버그 수정을 Devin에 할당하여 Pull Request를 자동 생성하는 방법

365Finds Editorial
Wiki 문서 11,430편 수록

내 AI에서 365 Wiki 사용하기

아래 프롬프트를 복사해 평소 사용하는 AI에 붙여넣고 바로 질문하세요.

전체 Skill 다운로드

먼저 프롬프트로 체험해 보세요. 365 Wiki를 자주 쓴다면 전체 365Wiki Skill을 설치해 매번 붙여넣는 수고를 줄일 수 있습니다. 평소 쓰는 AI가 없다면 Gemini나 Microsoft Copilot 웹 버전도 사용할 수 있습니다.

현대 소프트웨어 엔지니어링 조직에서 버그 리포트를 분류하고, 방대한 코드베이스에서 근본 원인을 파악하며, 회귀 테스트를 작성하고 Pull Request(PR)를 생성하는 작업은 개발팀의 귀중한 시간을 상당 부분 소모합니다. Cognition이 개발한 자율형 AI 소프트웨어 엔지니어인 Devin은 이러한 수동 유지보수 사이클을 고도화된 자동 협업 워크플로로 전환합니다. 인라인 코드 자동완성이나 단순 질의응답 챗봇과 달리, Devin은 독립된 클라우드 가상 머신, 셸 터미널, 브라우저, 코드 편집 도구를 갖춘 비동기 협업 동료로 동작합니다.

엔지니어링 팀은 GitHub 저장소와 Devin을 연결하여 Issue 댓글, GitHub Actions 파이프라인, 모니터링 이벤트를 통해 버그 수정 작업을 직접 할당할 수 있습니다. Devin은 격리된 샌드박스에서 오류를 재현하고, 코드를 수정하여 검증한 뒤, 검증 결과가 포함된 Pull Request를 생성합니다. 나아가 CI 빌드 실패나 코드 리뷰 피드백까지 자율적으로 수렴하여 추가 커밋을 생성합니다.


1. 사전 준비: GitHub 권한 연동 및 Devin 워크스페이스 구축

이슈를 위임하기 전에 먼저 안전한 저장소 접근 권한을 설정하고, Devin이 프로젝트를 빌드하고 테스트하는 데 필요한 환경 및 지식 컨텍스트를 제공해야 합니다.

GitHub App 연동 설치

Devin은 공식 GitHub App 또는 엔터프라이즈 전용 서비스 계정을 통해 코드베이스와 상호작용합니다. 개인 액세스 토큰(PAT)은 읽기 전용으로만 동작하므로 브랜치 생성, PR 제출, 댓글 작성 등의 쓰기 작업을 수행할 수 없습니다.

  1. Devin 관리 콘솔에서 Settings > Integrations > GitHub(엔터프라이즈 환경은 Settings > Connections)로 이동합니다.
  2. Devin GitHub App을 승인하고 Devin이 접근할 특정 조직 또는 개별 저장소를 선택합니다.
  3. 저장소 콘텐츠(Repository contents), Pull Requests, Issues에 대한 읽기 및 쓰기 권한이 부여되었는지 확인합니다.

워크스페이스 머신 스냅샷과 저장소 지식(Repo Knowledge) 설정

신규 입사 엔지니어에게 개발 환경이 세팅된 노트북과 프로젝트 규칙이 필요한 것처럼, Devin도 매 작업마다 컴퓨팅 유닛(ACU)을 낭비하지 않고 즉각 작업에 착수할 수 있는 베이스라인이 필요합니다:


2. 작업 할당 경로: GitHub Issue를 Devin에 전달하는 세 가지 방법

팀의 업무 프로세스와 자동화 수준에 따라 대화형 명령어, CI/CD 파이프라인, 상시 이벤트 감지의 세 가지 방식으로 이슈를 할당할 수 있습니다.

방법 1: Issue 댓글 슬래시 명령어 (/devin)

일상적인 버그 수정이나 백로그 처리 시 가장 빠르고 직관적인 방법은 GitHub Issue 댓글에서 직접 Devin을 호출하는 것입니다:

방법 2: GitHub Actions를 활용한 파이프라인 자동화 (devin-action)

라벨 기반의 표준화된 이슈 해결 워크플로를 구축하려는 팀은 GitHub Marketplace 공식 액션(aaronsteers/devin-action@v1)을 사용할 수 있습니다:

방법 3: Devin Auto-Triage를 통한 이벤트 기반 자동 대응

버그가 사람의 이슈 등록 대신 모니터링 알림에서 발생할 경우, Devin의 Auto-Triage 기능을 통해 웹훅, Sentry 알림, GitHub 이벤트를 직접 수신할 수 있습니다:


3. 수정 성공률을 높이는 이슈 작성 가이드 및 에이전트 동작 설정

Devin은 코드베이스를 자율적으로 탐색하지만, 입력 정보의 구체성에 따라 첫 번째 시도의 정확도와 소요 시간이 달라집니다.

효과적인 할당을 위한 핵심 원칙:

  1. 명확한 재현 정보 제공: 스택 트레이스(Stack trace), 기대 동작과 실제 오류 결과, 관련된 모듈 경로를 가능한 구체적으로 기재합니다.
  2. "실패하는 재현 테스트 우선 작성" 명시: 프로덕션 코드를 수정하기 전에 결함을 재현하는 단위 테스트를 먼저 작성하도록 지시합니다. 이를 통해 Devin은 자체적인 성공 판정 기준을 확보하게 됩니다.
  3. 수정 범위의 명시적 제약: 결함이 핵심 공통 로직 주변에 위치할 경우, "변경 범위를 src/utils/date_parser.ts로 한정하고 공통 파서 아키텍처는 리팩터링하지 말 것"과 같이 경계를 설정합니다.
  4. 자율성 수준(Agency) 조정: Library > Behaviors에서 Devin의 Agency 설정을 조정할 수 있습니다. 완전 자율 모드에서는 PR 생성까지 멈춤 없이 진행되며, 제한 모드에서는 복잡한 작업 착수 전 조사 계획을 먼저 제시하고 사람의 승인을 대기합니다.

4. 자율 실행 흐름과 리뷰 닫힌 루프(Closed Review Loop)

이슈를 수신한 Devin은 가상 환경에서 전체 개발 라이프사이클을 수행합니다:

  1. 원인 분석 및 결함 재현: 저장소 지식을 바탕으로 샌드박스 터미널에서 스크립트를 실행하고 오류 발생 지점을 정확히 식별합니다.
  2. 코드 수정 및 로컬 테스트 검증: 버그 수정 코드를 작성한 뒤, 저장소의 테스트 러너와 린터(Linter)를 실행합니다. 테스트가 실패하면 오류 로그를 자체 분석하여 모든 검사가 통과할 때까지 반복 수정합니다.
  3. Pull Request 생성 및 이슈 링크: 작업 브랜치를 분기하고 커밋한 후 대상 브랜치로 PR을 생성합니다. PR 설명에는 원본 이슈 링크(예: Fixes #342), 수정 내역 요약, 테스트 통과 결과 및 세션 녹화 링크가 자동으로 첨부됩니다.

에이전트 루프의 완성: 리뷰 의견 및 CI 실패 자동 치유

PR을 생성하는 것만으로 작업이 끝나지 않습니다. 기존 AI 도구의 한계는 사람이 CI 에러 로그나 리뷰 코멘트를 복사해 채팅창에 다시 붙여넣어야 한다는 점이었습니다. Devin은 "리뷰 닫힌 루프"로 이 문제를 해결합니다:


5. 팀 도입 시 권장 규정과 거버넌스

실제 개발 환경에서 Devin을 안전하게 운영하기 위해 다음과 같은 거버넌스 가이드라인을 권장합니다:

GitHub App 기반 권한 제어, 체계적인 이슈 프롬프트 작성, 자가 치유형 PR 워크플로를 결합함으로써 엔지니어링 팀은 누적된 버그 백로그를 해소하고 24시간 중단 없는 자동화 개발 체계를 구축할 수 있습니다.


참고 자료