← 기술 목록으로
CI/CD 개발 완료 루틴 Bootstrap Kit
여러 Bitbucket repo에 Jira 브랜치, Bitbucket Pipelines, Claude 기반 AI PR 리뷰, Slack 알림, Docker 이미지 push 루틴을 같은 방식으로 적용하기 위한 중앙 bootstrap kit 작업
기간2026
소속래브라도랩스(LabradorLabs)
역할설계 · 구현 · 문서화
Bitbucket PipelinesJiraClaude PR ReviewSlackDockerFull-SHA PinningSecret Scan
0작업자의 메모
이 작업은 “AI 리뷰 기능을 붙였다”가 아니라 “Jira에서 시작해 Docker image push와 배포 완료 신호까지 이어지는 개발 완료 루틴을 kit로 만든 것”에 가깝습니다. 실제 기준 소스는 `labrador-cicd-ai-review-kit`이며, repo standards 문서가 아니라 bootstrap kit입니다.
그래서 공통 동작은 중앙 kit repo에 두고 target repo에는 얇은 wrapper와 설정만 남겼습니다. 브랜치 푸시 테스트가 통과하면 PR을 만들고, 그 다음 AI 리뷰를 실행하며, diff secret scan을 통과한 뒤에만 외부 모델 API를 호출하도록 설계했습니다.
1배경
저장소가 늘어날수록 개발 완료 흐름이 repo별로 파편화됐습니다. Jira 브랜치 생성, 브랜치 푸시 테스트, PR 자동 생성, Claude 기반 AI 리뷰, Slack 알림, Docker image tag/push 방식이 저장소마다 달라지면 운영자가 결과를 같은 기준으로 해석하기 어렵습니다.
- repo마다 CI script를 복사해 두면 공통 개발 완료 루틴을 한 번에 바꾸기 어려움
- 테스트 실패가 merge check로 연결되지 않거나, build만 성공하고 테스트는 실행되지 않는 false green 위험
- PR diff가 외부 AI API로 나가기 전에 secret 검사 기준이 일관되지 않음
- Slack 알림·PR URL·pipeline URL·실패 요약 형식이 저장소마다 달라 추적 비용 증가
2접근
중앙 kit repo에 공통 동작을 모으고, target repo에는 `scripts/devflow.sh`, pre-push hook, env template, pipeline 설정, PR template 같은 얇은 wrapper만 남겼습니다. 실행할 kit 버전은 움직이는 브랜치가 아니라 full commit SHA로 고정해, 운영 repo가 어떤 CI 로직을 실행하는지 추적 가능하게 만들었습니다.
① Jira 기준이슈 키 기반 브랜치·커밋·PR 루틴
→
② Branch pushpush 직후 check 실행, 성공 시 PR 자동 생성
→
③ AI Reviewsecret scan 이후 Claude 기반 PR 리뷰
→
④ Main/Deploymain 테스트, Docker push, 배포 완료 신호 연계
- 중앙 실행형 구조: target repo에는 `scripts/devflow.sh`, pre-push hook, env 파일, `bitbucket-pipelines.yml`, PR template 같은 얇은 파일만 두고 실제 검증 로직은 중앙 킷에서 실행
- 언어별 profile: `java-spring`, `go`, `python`, `js`, `mixed` profile을 제공해 repo 유형별 테스트 진입점을 표준화
- mixed profile: 여러 component가 있는 repo는 변경 경로를 component와 매칭해 필요한 Dockerfile만 테스트하고, 매칭되지 않는 변경은 기본 실패로 두어 테스트 누락을 방지
- 브랜치 푸시 중심 흐름: PR 이벤트 파이프라인에 의존하지 않고, 브랜치 푸시 테스트 통과 후 PR 생성과 AI 리뷰까지 이어지도록 구성
- 공급망 방어: full SHA pinning, kit repo allowlist, resolved kit SHA artifact로 어떤 kit 버전이 실행됐는지 남김
- AI 리뷰 안전장치: PR diff 생성 후 추가된 diff line을 secret scan하고, 의심 값이 있으면 Claude 호출 전에 pipeline을 실패 처리
- 운영 피드백: Slack에는 전체 로그를 던지지 않고 판단 가능한 마지막 실패 요약과 PR/pipeline URL을 함께 전달
- 강제 지점 명확화: kit 파일을 복사하는 것과 merge 정책 집행은 별개이므로 Bitbucket branch restrictions와 merge checks를 enforcement layer로 분리
3임팩트
표준화 — repo별로 복제되던 CI/CD 습관을 중앙 bootstrap kit와 profile 기준으로 통합
품질 게이트 — branch check, PR 자동 생성, AI PR review, main check, Docker push를 하나의 개발 완료 흐름으로 연결
보안성 — secret scan-before-AI, full-SHA pinning, kit repo allowlist로 실행 경계를 명확히 함
운영성 — Slack 실패 요약, PR URL, pipeline artifact를 남겨 리뷰·디버깅·배포 추적 시간을 줄임
4역할
공통 개발 완료 루틴을 설계하고, Jira 브랜치·Bitbucket Pipelines·Claude PR Review·Slack 알림·Docker build/push가 이어지는 중앙 bootstrap kit 구조를 구현했습니다. README와 beginner guide, central-runner, test-strategy 문서까지 정리해 새 repo도 profile 선택 후 같은 방식으로 bootstrap하고 검증할 수 있게 만들었습니다.
공개 범위에 맞춰 내부 repo URL, token, host, 외부 식별 정보는 제거했습니다. 정량 도입 수나 시간 절감률처럼 아직 검증하지 않은 수치는 넣지 않았습니다.