@devchangjun/ctm 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +219 -0
  2. package/dist/index.js +1191 -0
  3. package/package.json +43 -0
package/README.md ADDED
@@ -0,0 +1,219 @@
1
+ # ctm — Colo Ticket Manager
2
+
3
+ Jira 티켓 기반 Git 브랜치 관리 CLI.
4
+ 이슈 조회 → 브랜치 생성 → PR 생성까지 터미널에서 한 번에.
5
+
6
+ ---
7
+
8
+ ## 설치
9
+
10
+ ### Homebrew (권장)
11
+
12
+ ```bash
13
+ brew tap ckdwns9121/ctm
14
+ brew install ctm
15
+ ```
16
+
17
+ ### 업데이트
18
+
19
+ ```bash
20
+ brew upgrade ctm
21
+ ```
22
+
23
+ ---
24
+
25
+ ## 시작하기
26
+
27
+ 최초 1회 설정이 필요합니다.
28
+
29
+ ```bash
30
+ ctm init
31
+ ```
32
+
33
+ 아래 정보를 순서대로 입력합니다.
34
+
35
+ | 항목 | 설명 |
36
+ |---|---|
37
+ | Jira base URL | `https://yourcompany.atlassian.net` |
38
+ | Jira email | Atlassian 계정 이메일 |
39
+ | Jira API token | [토큰 발급](https://id.atlassian.com/manage-profile/security/api-tokens) |
40
+ | 기본 프로젝트 | 목록에서 선택 |
41
+ | Base branch | `main` (기본값) |
42
+
43
+ 설정은 `~/.config/ctm/config.json`에 저장됩니다.
44
+
45
+ ---
46
+
47
+ ## 명령어
48
+
49
+ ### `ctm ls` — 내 이슈 목록
50
+
51
+ ```bash
52
+ ctm ls # 기본 프로젝트의 담당 이슈
53
+ ctm ls --all # 전체 프로젝트
54
+ ctm ls --status "In Progress"
55
+ ctm ls --project CGKR
56
+ ```
57
+
58
+ 상태별로 그룹화하여 출력합니다.
59
+
60
+ ```
61
+ In Progress
62
+ 🔴 CGKR-1423 로그인 페이지 버그 수정 [Bug]
63
+ 🟡 CGKR-1401 마이페이지 UI 개선 [Story]
64
+
65
+ To Do
66
+ 🟢 CGKR-1388 회원가입 이메일 인증 추가 [Task]
67
+ ```
68
+
69
+ ---
70
+
71
+ ### `ctm start [key]` — 브랜치 생성
72
+
73
+ ```bash
74
+ ctm start # 인터랙티브 이슈 선택
75
+ ctm start CGKR-1423 # 특정 이슈 바로 시작
76
+ ctm start 1423 # 숫자만 입력해도 OK (기본 프로젝트 자동 적용)
77
+ ```
78
+
79
+ 1. 이슈를 선택하면 브랜치 타입을 고릅니다: `feat` / `fix` / `refactor` / `qa` / `chore`
80
+ 2. Jira 이슈 타입에 따라 자동으로 타입을 추천합니다 (Bug → `fix`, Story → `feat` 등)
81
+ 3. 브랜치명을 확인 후 체크아웃
82
+
83
+ ```
84
+ Branch type › fix
85
+ Branch name › fix/CGKR-1423 (수정 가능)
86
+
87
+ ✓ Switched to fix/CGKR-1423
88
+ ✓ Jira status → In Progress
89
+ ```
90
+
91
+ 현재 브랜치에 uncommitted 변경사항이 있으면 stash 여부를 물어봅니다.
92
+
93
+ ---
94
+
95
+ ### `ctm st` — 현재 상태 확인
96
+
97
+ ```bash
98
+ ctm st
99
+ ```
100
+
101
+ 현재 브랜치에 연결된 Jira 이슈 정보와 변경 현황을 출력합니다.
102
+
103
+ ```
104
+ Branch: fix/CGKR-1423
105
+ Ticket: CGKR-1423 — 로그인 페이지 버그 수정
106
+ Status: In Progress
107
+ Priority: 🔴 High
108
+ URL: https://yourcompany.atlassian.net/browse/CGKR-1423
109
+
110
+ Changes: 3 file(s) +42 -7
111
+ ```
112
+
113
+ ---
114
+
115
+ ### `ctm done [key]` — PR 생성
116
+
117
+ ```bash
118
+ ctm done # 현재 브랜치 기준으로 자동 감지
119
+ ctm done CGKR-1423 # 명시적 지정
120
+ ```
121
+
122
+ 1. 현재 브랜치를 push
123
+ 2. GitHub PR 생성 (`.github/pull_request_template.md`가 있으면 자동 적용)
124
+ 3. Jira 이슈에 PR URL 코멘트 추가
125
+
126
+ > **사전 요구사항**: GitHub CLI(`gh`)가 설치되고 인증되어 있어야 합니다.
127
+ > ```bash
128
+ > brew install gh
129
+ > gh auth login
130
+ > ```
131
+
132
+ ---
133
+
134
+ ### `ctm clean [key]` — 브런치 정리
135
+
136
+ ```bash
137
+ ctm clean # 현재 브런치 삭제
138
+ ctm clean CGKR-1423 # 해당 이슈 브런치 삭제
139
+ ```
140
+
141
+ 로컈 브런치를 삭제하고, 원격 브런치도 함께 삭제할지 물어뼅니다.
142
+ 현재 브런치를 삭제할 경우 base branch로 자동 전환됩니다.
143
+ worktree가 연결되어 있으면 함께 제거할지 자동으로 물어뼅니다.
144
+
145
+ ---
146
+
147
+ ### `ctm wt` — worktree 관리
148
+
149
+ ```bash
150
+ ctm wt # 현재 레포의 worktree 목록
151
+ ctm wt rm CGKR-1423 # worktree 제거 (브런치 유지)
152
+ ctm wt rm CGKR-1423 --branch # worktree + 브런치 함께 삭제
153
+ ctm wt rm CGKR-1423 --force # 변경사항이 있어도 강제 제거
154
+ ```
155
+
156
+ ```
157
+ PATH BRANCH HEAD
158
+ /Users/dev/my-app (main) main abc1234
159
+ /Users/dev/my-app--feat-CGKR-1423 feat/CGKR-1423 def5678
160
+ ```
161
+
162
+ ---
163
+ ## 일반적인 워크플로우
164
+
165
+ ### 브런치 모드 (simpler)
166
+
167
+ ```bash
168
+ ctm ls # 내 이슈 확인
169
+ ctm start CGKR-1423 # 브런치 생성 + Jira 'In Progress'
170
+ ctm st # 현재 상태 확인
171
+ ctm done # push + PR 생성
172
+ ctm clean # 머지 후 브런치 정리
173
+ ```
174
+
175
+ ### worktree 모드 (병렬 작업)
176
+
177
+ ```bash
178
+ ctm ls # 내 이슈 확인
179
+ ctm start CGKR-1423 --worktree # 별도 디렉토리 생성, 브런치 전환 없음
180
+ cd /path/to/my-app--feat-CGKR-1423
181
+ ctm done # 해당 worktree에서 push + PR
182
+ ctm wt rm CGKR-1423 # 머지 후 worktree 정리
183
+ ```
184
+
185
+ ---
186
+
187
+ ## 브랜치 네이밍 규칙
188
+
189
+ ```
190
+ {type}/{ISSUE-KEY}
191
+ ```
192
+
193
+ | 타입 | 용도 |
194
+ |---|---|
195
+ | `feat` | 신규 기능, Story, Feature |
196
+ | `fix` | 버그 수정 |
197
+ | `refactor` | 리팩토링 |
198
+ | `qa` | QA, 테스트 |
199
+ | `chore` | 기타 작업, Task, Epic |
200
+
201
+ 예: `feat/CGKR-1423`, `fix/CGKR-1388`
202
+
203
+ ---
204
+
205
+ ## 요구사항
206
+
207
+ - macOS (arm64 / x64)
208
+ - Git
209
+ - GitHub CLI (`gh`) — `ctm done` 사용 시 필요
210
+
211
+ ---
212
+
213
+ ## 설정 파일
214
+
215
+ ```
216
+ ~/.config/ctm/config.json
217
+ ```
218
+
219
+ `ctm init`으로 재설정하면 덮어씁니다.