@bifos/dooray-cli 0.9.0 → 0.10.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.
- package/README.md +111 -15
- package/dist/index.js +921 -120
- package/package.json +1 -1
- package/skills/dooray-cli/SKILL.md +74 -15
package/package.json
CHANGED
|
@@ -45,7 +45,10 @@ dooray doctor # 설정 검증
|
|
|
45
45
|
|
|
46
46
|
자연어 요청을 커맨드로 변환할 때 아래 표를 참고한다.
|
|
47
47
|
|
|
48
|
-
> **공통 (post 하위 16개 명령)**:
|
|
48
|
+
> **공통 (post 하위 16개 명령)**: 아래 명령은 `<project> <number>` 외에도 `--id <postId>`, `--url <url>`, 또는 첫 인자에 Dooray URL 을 직접 받는다.
|
|
49
|
+
> `post get`/`edit`/`done`/`workflow`, `post comment list`/`add`/`edit`/`delete`, `post file list`/`upload`/`download`/`download-all`/`delete`, `post comment file list`/`upload`/`download`/`delete`.
|
|
50
|
+
> URL 형식: `https://*.dooray.com/task/to/<postId>` 또는 브라우저 주소창 복사본 `https://*.dooray.com/task/<projectId>/<postId>`.
|
|
51
|
+
> **사용자가 URL을 줬으면 그대로 첫 인자로 전달**하는 것이 가장 빠른 경로 (resolve 단계 단축, ADR-020).
|
|
49
52
|
|
|
50
53
|
| 의도 | 커맨드 |
|
|
51
54
|
|------|--------|
|
|
@@ -61,14 +64,14 @@ dooray doctor # 설정 검증
|
|
|
61
64
|
| 업무 목록 조회 | `dooray post list <project>` |
|
|
62
65
|
| 업무 검색 | `dooray post search <project> "<keyword>"` |
|
|
63
66
|
| 업무 상세 보기 | `dooray post get <project> <number>` |
|
|
64
|
-
| 업무 생성 | `dooray post create <project> --title "..." --body "..."
|
|
67
|
+
| 업무 생성 | `dooray post create <project> --title "..." [--body "..." \| --body-file <path>]` (`--tag`/`--parent`/`--workflow`/`--milestone` 지원) |
|
|
65
68
|
| 템플릿 기반 업무 생성 | `dooray post create <project> --template <name\|id>` — body/users/tags 자동 채움 (사용자 옵션 우선 override, ADR-027) |
|
|
66
69
|
| 업무 제목/본문 수정 | `dooray post edit <project> <number> --title "..." --body "..."` 또는 `--body-file <path>` |
|
|
67
70
|
| 업무 완료 처리 | `dooray post done <project> <number>` |
|
|
68
71
|
| 업무 워크플로우 변경 | `dooray post workflow <project> <number> <workflow>` |
|
|
69
|
-
| 댓글 조회 | `dooray post comment list <project> <number>`
|
|
72
|
+
| 댓글 조회 | `dooray post comment list <project> <number>` (`--sort`, `--reverse`, `--latest`, `--since`, `--from-author` 필터. table: Creator 자동 채움, `--json`: raw, ADR-021) |
|
|
70
73
|
| 최신 댓글 조회 | `dooray post comment latest <project> <number>` — 최신 댓글 1개 빠른 조회. `-n <N>`으로 N개 지정 |
|
|
71
|
-
| 단일 댓글 조회 | `dooray post comment get <project> <number> <comment-id
|
|
74
|
+
| 단일 댓글 조회 | `dooray post comment get <project> <number> <comment-id>` — 본문·메타·attachments 직접 fetch. `--id`/`--url` + `--comment-id` 모드 지원 |
|
|
72
75
|
| 댓글 추가 | `dooray post comment add <project> <number> --body "..."` 또는 `--body-file <path>` |
|
|
73
76
|
| 댓글 수정 | `dooray post comment edit <project> <number> <comment-id> --body "..."` 또는 `--body-file <path>` |
|
|
74
77
|
| 댓글 삭제 | `dooray post comment delete <project> <number> <comment-id>` |
|
|
@@ -79,6 +82,17 @@ dooray doctor # 설정 검증
|
|
|
79
82
|
| 위키 페이지 수정 (제목) | `dooray wiki page edit <project> <page-id> --title "..."` |
|
|
80
83
|
| 위키 페이지 수정 (본문) | `dooray wiki page edit <project> <page-id> --body "..."` 또는 `--body-file ./new.md` |
|
|
81
84
|
| 위키 페이지 수정 (에디터) | `dooray wiki page edit <project> <page-id>` (플래그 없으면 $EDITOR 열림) |
|
|
85
|
+
| 위키 페이지 첨부 목록 | `dooray wiki page file list <project> <page-id>` (general + inline 합산, type 컬럼) |
|
|
86
|
+
| 위키 페이지 첨부 업로드 | `dooray wiki page file upload <project> <page-id> --file <path> [--type inline_image]` (multipart type 순서 ADR-029) |
|
|
87
|
+
| 위키 페이지 첨부 다운로드 | `dooray wiki page file download <project> <page-id> --file-id <id> -o <dir>` |
|
|
88
|
+
| 위키 페이지 첨부 일괄 다운로드 | `dooray wiki page file download-all <project> <page-id> -o <dir>` (files + images 전부) |
|
|
89
|
+
| 위키 페이지 첨부 삭제 | `dooray wiki page file delete <project> <page-id> --file-id <id>` (confirm 없음) |
|
|
90
|
+
| 위키 페이지 댓글 목록 | `dooray wiki page comment list <project> <page-id> [--latest N]` (최신순) |
|
|
91
|
+
| 위키 페이지 최신 댓글 | `dooray wiki page comment latest <project> <page-id>` |
|
|
92
|
+
| 위키 페이지 댓글 조회 | `dooray wiki page comment get <project> <page-id> <comment-id>` |
|
|
93
|
+
| 위키 페이지 댓글 추가 | `dooray wiki page comment add <project> <page-id> --body "..."` ($EDITOR fallback) |
|
|
94
|
+
| 위키 페이지 댓글 수정 | `dooray wiki page comment edit <project> <page-id> <comment-id> --body "..."` |
|
|
95
|
+
| 위키 페이지 댓글 삭제 | `dooray wiki page comment delete <project> <page-id> <comment-id>` (confirm 없음) |
|
|
82
96
|
| 메일 목록 조회 | `dooray mail list` |
|
|
83
97
|
| 안읽은 메일 | `dooray mail list --unread` |
|
|
84
98
|
| 메일 제목 검색 | `dooray mail list --search "<keyword>"` |
|
|
@@ -97,7 +111,7 @@ dooray doctor # 설정 검증
|
|
|
97
111
|
| 참조자(cc) 멤버/그룹 추가 | `dooray post edit <project> <number> --cc-group <code>` — 기존 참조자 유지 + 그룹 추가 (dedupe, ADR-025) |
|
|
98
112
|
| 참조자 전체 교체 | `dooray post edit <project> <number> --cc-clear --cc <name>` — 기존 참조자 비우고 신규 멤버만 |
|
|
99
113
|
| 신규 업무 + 그룹 cc | `dooray post create <project> --title "..." --cc-group <code>` — 생성 시 그룹 참조자 포함 |
|
|
100
|
-
| 상위 업무 설정/변경 | `dooray post edit <project> <number> --title "<원제목>" --parent <ref>`
|
|
114
|
+
| 상위 업무 설정/변경 | `dooray post edit <project> <number> --title "<원제목>" --parent <ref>` (`<ref>`: `<project>/<number>` 또는 raw postId. `--title` 필수, unset 미지원) |
|
|
101
115
|
| `dooray post edit --id <postId> --tag <name>` | 태그 추가 (반복, dedupe) |
|
|
102
116
|
| `dooray post edit --id <postId> --tag-clear --tag <name>` | 태그 전체 교체 |
|
|
103
117
|
| `dooray post edit --id <postId> --tag-remove <name>` | 특정 태그 제거 |
|
|
@@ -112,7 +126,7 @@ CLI로 처리 **불가능한** 작업. 아래 항목을 요청받으면 웹 UI
|
|
|
112
126
|
|
|
113
127
|
| 작업 | 대체 경로 | 근거 |
|
|
114
128
|
|---|---|---|
|
|
115
|
-
| 위키 페이지 **삭제** | 웹 UI (`https://{tenant}.dooray.com/wiki/...`) | Dooray REST API
|
|
129
|
+
| 위키 페이지 **삭제** | 웹 UI (`https://{tenant}.dooray.com/wiki/...`) | Dooray REST API 미제공 (댓글·첨부파일 삭제는 있지만 페이지 삭제 endpoint 없음) |
|
|
116
130
|
| 프로젝트 삭제 | 웹 UI (admin 페이지) | API 미지원 |
|
|
117
131
|
|
|
118
132
|
위키 페이지를 잘못 만든 경우(테스트/중복) **soft delete(빈 제목·본문) 우회 금지** — 페이지가 트리에 남아 사용자 혼란 유발.
|
|
@@ -170,7 +184,8 @@ dooray post comment add <project> 42 --body "진행 상황 업데이트: 80% 완
|
|
|
170
184
|
|
|
171
185
|
### 시나리오 — 댓글에 스크린샷 자동 첨부
|
|
172
186
|
|
|
173
|
-
스크립트가 스크린샷을 댓글에 삽입하거나, 에이전트가 결과 파일을 첨부 댓글로 보고할 때 사용.
|
|
187
|
+
스크립트가 스크린샷을 댓글에 삽입하거나, 에이전트가 결과 파일을 첨부 댓글로 보고할 때 사용.
|
|
188
|
+
Dooray REST API 가 댓글 전용 attachment endpoint 를 미지원하므로 내부적으로 post-level files API + 댓글 본문 PUT 합성으로 동작 (ADR-024).
|
|
174
189
|
|
|
175
190
|
```bash
|
|
176
191
|
# 1. 댓글을 먼저 만든다 (텍스트만, --json 으로 commentId 획득)
|
|
@@ -191,6 +206,36 @@ dooray wiki pages <project> --json
|
|
|
191
206
|
dooray wiki page get <project> <pageId> --json
|
|
192
207
|
```
|
|
193
208
|
|
|
209
|
+
### 위키 페이지 첨부파일 — 스킬 파일 팀 공유 (Issue #70)
|
|
210
|
+
|
|
211
|
+
**스킬 파일 팀 공유**: 팀 위키에 스킬 파일 (예: `SKILL.md`) 을 `wiki page file upload` 로 첨부 → 팀원이 `wiki page file download-all` 로 일괄 받아 `~/.claude/skills/` 에 그대로 설치.
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
# 업로드 (일반 첨부)
|
|
215
|
+
dooray wiki page file upload <project> <page-id> --file ~/.claude/skills/my-skill/SKILL.md
|
|
216
|
+
|
|
217
|
+
# 팀원 쪽에서 일괄 다운로드
|
|
218
|
+
dooray wiki page file download-all <project> <page-id> -o ~/.claude/skills/my-skill/
|
|
219
|
+
|
|
220
|
+
# 첨부 목록 확인 (type 컬럼: general / inline_image)
|
|
221
|
+
dooray wiki page file list <project> <page-id>
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
### 위키 페이지 댓글 — 회의록 결정사항 자동 누적
|
|
225
|
+
|
|
226
|
+
**회의록 결정사항 자동 누적**: 회의록 위키 페이지에 자동화 봇이 `wiki page comment add` 로 결정사항을 댓글로 누적, `wiki page comment list --latest 20` 으로 최근 토론 흐름 추적.
|
|
227
|
+
|
|
228
|
+
```bash
|
|
229
|
+
# 결정사항 댓글 추가
|
|
230
|
+
dooray wiki page comment add <project> <page-id> --body "결정: 배포일 2026-06-01 확정"
|
|
231
|
+
|
|
232
|
+
# 최근 20개 토론 흐름 조회
|
|
233
|
+
dooray wiki page comment list <project> <page-id> --latest 20
|
|
234
|
+
|
|
235
|
+
# 최신 댓글 1건 shortcut
|
|
236
|
+
dooray wiki page comment latest <project> <page-id>
|
|
237
|
+
```
|
|
238
|
+
|
|
194
239
|
## 단일 댓글 본문 fetch
|
|
195
240
|
|
|
196
241
|
`post comment get <project> <post-number> <comment-id> --json` 으로 단일 댓글의 본문 + attachments 를 곧장 fetch. `comment list` 후 jq 필터링 우회 불필요.
|
|
@@ -218,7 +263,8 @@ dooray wiki page get <project> <pageId> --json
|
|
|
218
263
|
|
|
219
264
|
### 업무 식별 방식 (post 하위 16개 명령 공통, ADR-020)
|
|
220
265
|
|
|
221
|
-
|
|
266
|
+
아래 16개 명령은 4가지 입력을 모두 받는다:
|
|
267
|
+
`post get`/`edit`/`done`/`workflow`, `post comment list`/`add`/`edit`/`delete`, `post file list`/`upload`/`download`/`download-all`/`delete`, `post comment file list`/`upload`/`download`/`delete`.
|
|
222
268
|
|
|
223
269
|
```bash
|
|
224
270
|
# (1) 기존 positional — 가장 익숙한 형태
|
|
@@ -234,7 +280,9 @@ dooray post get --id <postId>
|
|
|
234
280
|
dooray post get --url https://x.dooray.com/task/to/<postId>
|
|
235
281
|
```
|
|
236
282
|
|
|
237
|
-
**우선순위 / 충돌 규칙**: `--id`+`--url` 동시 지정 → 에러.
|
|
283
|
+
**우선순위 / 충돌 규칙**: `--id`+`--url` 동시 지정 → 에러.
|
|
284
|
+
`--id`/`--url`+positional 동시 지정 → 에러.
|
|
285
|
+
URL/`--id`/`--url` 모드는 standalone API(`getPost(postId)`)로 resolve 단계를 단축.
|
|
238
286
|
|
|
239
287
|
**sub-id 옵션화** (URL/`--id`/`--url` 모드에서 필수):
|
|
240
288
|
```bash
|
|
@@ -273,7 +321,9 @@ dooray post create <project> \
|
|
|
273
321
|
dooray post create <project> --title "제목" --body-file ./content.md
|
|
274
322
|
```
|
|
275
323
|
|
|
276
|
-
> **`--workflow` 동작 주의**: 워크플로우 설정은 post 생성 *후속*
|
|
324
|
+
> **`--workflow` 동작 주의**: 워크플로우 설정은 post 생성 *후속* 호출.
|
|
325
|
+
> resolve/설정에 실패해도 stderr 경고만 출력되고 **exit code는 0** (post는 이미 생성됨).
|
|
326
|
+
> 자동화 스크립트에서 워크플로우 적용 여부를 보장해야 하면 stderr를 별도 점검할 것.
|
|
277
327
|
|
|
278
328
|
### 업무 수정 (non-interactive)
|
|
279
329
|
|
|
@@ -323,11 +373,17 @@ MEMBER_ID=$(dooray member search 홍길동 --json | jq -r '.[] | select(.externa
|
|
|
323
373
|
dooray post edit --id "$POST_ID" --cc "$MEMBER_ID"
|
|
324
374
|
```
|
|
325
375
|
|
|
326
|
-
`--to` / `--mention` 동일 분기 (resolveMember 인프라). 분기 규칙:
|
|
376
|
+
`--to` / `--mention` 동일 분기 (resolveMember 인프라). 분기 규칙:
|
|
377
|
+
- `^\d{15,}$` — memberId 직접 사용
|
|
378
|
+
- 이메일 정규형 — searchMembers exact
|
|
379
|
+
- 그 외 — 이름 부분일치
|
|
327
380
|
|
|
328
381
|
## 신규 업무 생성 후 그룹 cc 첨부 (ADR-025)
|
|
329
382
|
|
|
330
|
-
|
|
383
|
+
자동화 패턴:
|
|
384
|
+
1. audit 리포트 분석
|
|
385
|
+
2. 신규 업무 생성
|
|
386
|
+
3. 후속으로 특정 그룹을 참조에 추가
|
|
331
387
|
|
|
332
388
|
```bash
|
|
333
389
|
# 1. 신규 업무 생성 (그룹 cc 포함)
|
|
@@ -415,7 +471,8 @@ dooray post comment add P 1 --mention 홍길동 --mention-group 개발 --body ".
|
|
|
415
471
|
|
|
416
472
|
## Dooray 마크다운 링크 형식 (멤버·그룹·업무 멘션)
|
|
417
473
|
|
|
418
|
-
댓글/본문 작성 시 다음 형식으로 마크업하면 Dooray 앱이 인식해 inline 멘션·navigation으로 렌더링한다.
|
|
474
|
+
댓글/본문 작성 시 다음 형식으로 마크업하면 Dooray 앱이 인식해 inline 멘션·navigation으로 렌더링한다.
|
|
475
|
+
ID는 본인 환경 값으로 채워 사용 — `dooray member get` / `project groups` / `post get` 등으로 조회.
|
|
419
476
|
|
|
420
477
|
### 멤버 멘션
|
|
421
478
|
```markdown
|
|
@@ -467,7 +524,8 @@ dooray feedback --last --title "에러 제목" --body "추가 설명" --dry-run
|
|
|
467
524
|
dooray feedback --last --title "에러 제목" --body "추가 설명" # 실제 등록
|
|
468
525
|
```
|
|
469
526
|
|
|
470
|
-
> **참고**: `--last` 모드는 `trackLastRun: true` (ADR-023 opt-in)가 설정된 경우에만 직전 실패 명령이 자동 기록됨.
|
|
527
|
+
> **참고**: `--last` 모드는 `trackLastRun: true` (ADR-023 opt-in)가 설정된 경우에만 직전 실패 명령이 자동 기록됨.
|
|
528
|
+
> argv는 시크릿 패턴(`--api-key`/`--token`/`Authorization`) 마스킹 후 저장.
|
|
471
529
|
|
|
472
530
|
## 에러 핸들링
|
|
473
531
|
|
|
@@ -496,7 +554,8 @@ POST_ID=$(dooray post create <project> \
|
|
|
496
554
|
--json | jq -r '.id')
|
|
497
555
|
```
|
|
498
556
|
|
|
499
|
-
템플릿 본문의 `${year}` / `${month}` 등 매크로는 Dooray 가 자동 치환 (`interpolation=true` 기본).
|
|
557
|
+
템플릿 본문의 `${year}` / `${month}` 등 매크로는 Dooray 가 자동 치환 (`interpolation=true` 기본).
|
|
558
|
+
사용자 정의 변수는 미지원 — 필요 시 client 측 string replace 로 처리.
|
|
500
559
|
|
|
501
560
|
## 캐시
|
|
502
561
|
|