정지용
프로젝트 목록
자동화JavaScript

Jira 카드 자동 개발-PR 파이프라인

Jira 카드를 탐지해 Claude가 질문→개발→PR→완료처리까지 수행하는 루프 자동화 도구와 제어용 로컬 대시보드

jira_auto_pilot최근 업데이트 2026년 7월 22일

개요

Jira에 claude-work 라벨이 붙은 카드를 주기적으로 탐지해, plan 단계에서 Claude가 카드를 검토하고 구현 전 질문을 코멘트로 남기며, 담당자 답변 후 build 단계에서 실제 코드를 작성해 브랜치·커밋·PR 생성과 카드 완료 처리까지 자동으로 수행한다. 라벨과 상태를 이용한 상태 머신(plan 완료 → 답변 대기 → build 진입 → 완료/실패)으로 사람 개입 지점을 명확히 분리했고, 실패 시 재시도·격리, 중복 브랜치/PR 방지 등 운영 안정성을 위한 가드를 갖췄다. 특정 repo나 Jira 프로젝트에 종속되지 않고 설정만으로 재사용 가능하며, 여러 프로젝트를 동시에 등록해 한 루프가 순회하는 멀티 프로젝트 구조를 지원한다. React+Express 기반 로컬 대시보드에서 자격증명·설정·루프 제어·카드 상태·처리 이력·실행 로그를 한 곳에서 관리할 수 있다.

담당 역할

Jira-Claude 자동화 루프 전체(상태 머신 설계, 셸 스크립트, 실패 처리·멱등성 가드)와 React+Express 기반 제어/모니터링 대시보드를 설계·구현했다.

아키텍처 다이어그램

레포지토리 분석 결과를 바탕으로 자동 생성된 구조도입니다.

아키텍처

전체 아키텍처

대시보드가 루프 프로세스를 제어하고, 셸 루프가 카드를 탐지해 run-jira-agent.sh가 Claude와 git/gh를 통해 실제 개발과 PR을 수행하는 구조.

다이어그램을 그리는 중…
상태 전이

카드 상태 머신

Jira 카드가 라벨과 상태 변화를 통해 plan-답변-build-완료 단계를 거치는 흐름.

다이어그램을 그리는 중…

기술스택

각 기술을 이 프로젝트에서 어떤 용도로 썼는지 정리했습니다.

언어

  • JavaScript대시보드 백엔드/프론트엔드 및 유틸리티 스크립트 작성

백엔드

  • Node.js대시보드 서버와 CLI 유틸리티(render-claude-stream, run-cycle 등) 실행 환경

프레임워크

  • Express설정/자격증명 저장, 루프 제어, Jira REST 카드 조회 등 REST API 백엔드

프론트엔드

  • React카드 등록·상태·로그·이력을 다루는 대시보드 UI 구성

도구

  • Shell Script카드 탐지, 카드 처리(clone/개발/PR), 주기 실행 루프 오케스트레이션
  • Jira REST API카드 조회, 상태/라벨 관리, plan/build 대상 카드 탐지
  • Claude Code CLI카드 검토·질문 작성·실제 코드 구현을 헤드리스로 수행하는 실행 엔진

DevOps

  • GitHub CLI브랜치 push 후 base 브랜치로 PR을 자동 생성

테스트

  • node:test대시보드 순수 로직(lib.js) 및 프로젝트 스토어에 대한 무설치 단위 테스트

핵심 포인트

  • Jira 라벨·상태 기반 plan→답변→build 상태 머신으로 사람 개입 지점을 명확히 분리
  • 멱등성 가드로 재시도 시 중복 브랜치/PR 생성을 방지하고 실패는 라벨로 격리
  • Jira REST 우선 탐지 + Claude MCP 폴백으로 카드 탐지 비용과 지연을 절감
  • 여러 GitHub repo·Jira 프로젝트를 동시에 등록해 한 루프가 순회하는 멀티 프로젝트 구조
  • React+Express 로컬 대시보드로 설정·토큰·루프 제어·실행 로그·처리 이력을 한 곳에서 관리

문제와 해결

문제build 중간 실패 후 재시도 시 동일 이슈에 중복 브랜치/PR이 생성될 위험

해결build 시작 전 해당 이슈 키의 원격 브랜치·PR 존재 여부를 점검해 이미 처리된 경우 스킵하는 멱등성 가드를 도입

문제담당자 답변 여부를 Claude 판단에만 의존하면 오탐 가능

해결claude-answered 라벨(탐지 게이트)과 실제 답변 코멘트 존재(실행 게이트)를 모두 확인하는 이중 게이트로 build 진입을 제어

문제실패한 카드가 매 주기 무한 재시도되는 문제

해결카드별 실패 카운터와 MAX_RETRIES 초과 시 claude-failed 라벨로 격리하고 실패 사유를 코멘트로 기록해 탐지에서 제외

레포지토리 정보

생성
2026년 6월 29일
최근 커밋
2026년 7월 22일
크기
895 KB
라이선스
없음

언어 구성

  • JavaScript41.6%
  • HTML37.1%
  • Shell21.2%

이 문서는 2026년 7월 26일 에 자동 분석으로 생성되었습니다.