Jira 카드 자동 개발-PR 파이프라인
Jira 카드를 탐지해 Claude가 질문→개발→PR→완료처리까지 수행하는 루프 자동화 도구와 제어용 로컬 대시보드
개요
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일 에 자동 분석으로 생성되었습니다.