@bifos/dooray-cli
Advanced tools
+2
-2
| { | ||
| "name": "@bifos/dooray-cli", | ||
| "version": "0.5.4", | ||
| "version": "0.6.0", | ||
| "description": "CLI tool for Dooray project management — AI agent & terminal friendly", | ||
@@ -29,3 +29,3 @@ "keywords": [ | ||
| "engines": { | ||
| "node": ">=18" | ||
| "node": ">=20" | ||
| }, | ||
@@ -32,0 +32,0 @@ "scripts": { |
+151
-43
| # dooray-cli | ||
| [](https://github.com/jon890/dooray-cli/actions/workflows/ci.yml) | ||
| NHN Dooray REST API를 래핑한 CLI 도구입니다. 터미널과 AI 에이전트 환경에서 Dooray 업무를 관리할 수 있습니다. | ||
@@ -40,6 +42,6 @@ | ||
| dooray project list --type private # 개인 프로젝트 목록 | ||
| dooray project members tc-ocr # 멤버 목록 | ||
| dooray project workflows tc-ocr # 워크플로우 목록 | ||
| dooray project groups tc-ocr # 멤버 그룹 목록 (ID / Code) | ||
| dooray project tags tc-ocr # 태그 목록 (ID / Color / Name / Group / Mandatory) | ||
| dooray project members <project> # 멤버 목록 | ||
| dooray project workflows <project> # 워크플로우 목록 | ||
| dooray project groups <project> # 멤버 그룹 목록 (ID / Code) | ||
| dooray project tags <project> # 태그 목록 (ID / Color / Name / Group / Mandatory) | ||
| ``` | ||
@@ -52,4 +54,11 @@ | ||
| ```bash | ||
| dooray member list tc-ocr # 프로젝트 멤버 목록 (이름·organizationMemberId) | ||
| dooray member get <organizationMemberId> # 멤버 상세 (cache 우회, ADR-021) | ||
| dooray member list <project> # 프로젝트 멤버 목록 (이름·organizationMemberId) | ||
| dooray member get <organizationMemberId> # 멤버 상세 (cache 우회, ADR-021) | ||
| # organization 전체 멤버 검색 | ||
| dooray member search 홍길동 # 이름 검색 | ||
| dooray member search --email user@example.com # 이메일 (정확히 일치) | ||
| dooray member search --user-code abc # 사번 like 검색 | ||
| dooray member search --user-code-exact abc123 # 사번 exact match | ||
| dooray member search 김 --size 50 --page 1 # 페이지네이션 | ||
| ``` | ||
@@ -60,15 +69,16 @@ | ||
| ```bash | ||
| dooray post list tc-ocr # 업무 목록 (최신순) | ||
| dooray post search tc-ocr "키워드" # 제목 검색 | ||
| dooray post get tc-ocr 42 # 업무 상세 | ||
| dooray post get tc-ocr 42 --json # JSON 출력 | ||
| dooray post list <project> # 업무 목록 (최신순) | ||
| dooray post search <project> "키워드" # 제목 검색 | ||
| dooray post get <project> 42 # 업무 상세 | ||
| dooray post get <project> 42 --json # JSON 출력 | ||
| ``` | ||
| #### 업무 식별 방식 (post 하위 12개 명령 공통) | ||
| #### 업무 식별 방식 (post 하위 16개 명령 공통) | ||
| | 방식 | 예시 | | ||
| |---|---| | ||
| | `<project> <number>` | `dooray post get tc-ocr 42` | | ||
| | Dooray URL positional | `dooray post get https://x.dooray.com/task/to/4319587406666362045` | | ||
| | `--id <postId>` | `dooray post get --id 4319587406666362045` | | ||
| | `<project> <number>` | `dooray post get <project> 42` | | ||
| | Dooray URL positional (`/task/to/<postId>`) | `dooray post get https://x.dooray.com/task/to/<postId>` | | ||
| | Dooray URL positional (브라우저 주소창 복사본) | `dooray post get https://x.dooray.com/task/<projectId>/<postId>` | | ||
| | `--id <postId>` | `dooray post get --id <postId>` | | ||
| | `--url <url>` | `dooray post get --url https://x.dooray.com/task/to/...` | | ||
@@ -81,3 +91,3 @@ | ||
| ```bash | ||
| dooray post create tc-ocr \ | ||
| dooray post create <project> \ | ||
| --title "업무 제목" \ | ||
@@ -89,9 +99,9 @@ --body "본문 마크다운" \ | ||
| # 본문을 파일에서 읽기 (--body와 --body-file은 동시 사용 불가) | ||
| dooray post create tc-ocr --title "업무 제목" --body-file ./content.md | ||
| dooray post create <project> --title "업무 제목" --body-file ./content.md | ||
| # 메타 옵션: --tag(반복) / --parent / --workflow / --milestone | ||
| dooray post create tc-ocr \ | ||
| dooray post create <project> \ | ||
| --title "업무 제목" --body "본문" --to "담당자이름" \ | ||
| --tag "버그" --tag "긴급" \ | ||
| --parent "tc-ocr/337" \ | ||
| --parent "<project>/337" \ | ||
| --workflow "진행 중" \ | ||
@@ -101,3 +111,3 @@ --milestone "Sprint 12" | ||
| > mandatory-tag 정책 프로젝트(예: `tc-ocr`)에서는 mandatory 그룹마다 1개 이상 `--tag`로 지정해야 한다. 누락 시 클라이언트가 사전 검증으로 후보 목록과 함께 에러 출력. | ||
| > mandatory-tag 정책 프로젝트(예: `<project>`)에서는 mandatory 그룹마다 1개 이상 `--tag`로 지정해야 한다. 누락 시 클라이언트가 사전 검증으로 후보 목록과 함께 에러 출력. | ||
@@ -108,9 +118,9 @@ ### 업무 수정 | ||
| # 대화형 ($EDITOR) | ||
| dooray post edit tc-ocr 42 | ||
| dooray post edit <project> 42 | ||
| # 비대화형 (AI 에이전트 친화) | ||
| dooray post edit tc-ocr 42 --title "새 제목" --body "새 본문" | ||
| dooray post edit <project> 42 --title "새 제목" --body "새 본문" | ||
| # 본문을 파일에서 읽기 | ||
| dooray post edit tc-ocr 42 --body-file ./updated.md | ||
| dooray post edit <project> 42 --body-file ./updated.md | ||
| ``` | ||
@@ -121,5 +131,5 @@ | ||
| ```bash | ||
| dooray post comment list tc-ocr 42 | ||
| dooray post comment add tc-ocr 42 --body "댓글 내용" | ||
| dooray post comment add tc-ocr 42 --body-file ./comment.md | ||
| dooray post comment list <project> 42 | ||
| dooray post comment add <project> 42 --body "댓글 내용" | ||
| dooray post comment add <project> 42 --body-file ./comment.md | ||
| ``` | ||
@@ -129,2 +139,28 @@ | ||
| #### 멘션 (comment add / comment edit) | ||
| `--mention <name>` (반복), `--mention-group <code>` (반복)으로 본문 앞에 멘션 마크업을 자동 prepend한다. | ||
| ```bash | ||
| # 멤버 멘션 1명 | ||
| dooray post comment add P 1 --mention 홍길동 --body "확인 부탁드립니다" | ||
| # 여러 명 | ||
| dooray post comment add P 1 --mention 홍길동 --mention 김철수 --body "..." | ||
| # 그룹 멘션 | ||
| dooray post comment add P 1 --mention-group 개발 --body "검토 요청" | ||
| # 멤버 + 그룹 혼합 | ||
| dooray post comment add P 1 \ | ||
| --mention 홍길동 \ | ||
| --mention-group 개발 \ | ||
| --body "검토 부탁드립니다" | ||
| # comment edit에도 동일 옵션 사용 가능 | ||
| dooray post comment edit P 1 <commentId> --mention 홍길동 --body "수정 내용" | ||
| ``` | ||
| > 이전 버전 캐시는 orgId가 없으므로 첫 호출 시 자동 갱신됩니다 (또는 `dooray cache clear`). | ||
| #### comment list 필터 옵션 | ||
@@ -134,14 +170,14 @@ | ||
| # 최신 5개 (desc 정렬) | ||
| dooray post comment list tc-ocr 42 --latest 5 | ||
| dooray post comment list <project> 42 --latest 5 | ||
| # 특정 시간 이후 댓글만 | ||
| dooray post comment list tc-ocr 42 --since 2026-04-27 | ||
| dooray post comment list <project> 42 --since 2026-04-27 | ||
| # 작성자 이름으로 필터 (부분일치) | ||
| dooray post comment list tc-ocr 42 --from-author 홍길동 | ||
| dooray post comment list <project> 42 --from-author 홍길동 | ||
| # 오름차순 / 내림차순 정렬 | ||
| dooray post comment list tc-ocr 42 --sort asc | ||
| dooray post comment list tc-ocr 42 --sort desc | ||
| dooray post comment list tc-ocr 42 --reverse # --sort desc alias | ||
| dooray post comment list <project> 42 --sort asc | ||
| dooray post comment list <project> 42 --sort desc | ||
| dooray post comment list <project> 42 --reverse # --sort desc alias | ||
| ``` | ||
@@ -155,6 +191,6 @@ | ||
| # 최신 댓글 1개 | ||
| dooray post comment latest tc-ocr 42 | ||
| dooray post comment latest <project> 42 | ||
| # 최신 3개 | ||
| dooray post comment latest tc-ocr 42 -n 3 | ||
| dooray post comment latest <project> 42 -n 3 | ||
@@ -168,4 +204,4 @@ # URL로도 가능 | ||
| ```bash | ||
| dooray post done tc-ocr 42 # 완료 처리 | ||
| dooray post workflow tc-ocr 42 "진행 중" # 워크플로우 변경 | ||
| dooray post done <project> 42 # 완료 처리 | ||
| dooray post workflow <project> 42 "진행 중" # 워크플로우 변경 | ||
| ``` | ||
@@ -177,8 +213,8 @@ | ||
| dooray wiki list # 위키 목록 | ||
| dooray wiki pages tc-ocr # 페이지 목록 | ||
| dooray wiki page get tc-ocr <page-id> # 페이지 상세 | ||
| dooray wiki page create tc-ocr --title "..." [--parent <page-id>] [--body "..." | --body-file <path>] | ||
| dooray wiki page edit tc-ocr <page-id> --title "새 제목" # 제목만 (비대화형) | ||
| dooray wiki page edit tc-ocr <page-id> --body "..." | --body-file <path> # 본문만 (비대화형) | ||
| dooray wiki page edit tc-ocr <page-id> # $EDITOR (플래그 없을 때) | ||
| dooray wiki pages <project> # 페이지 목록 | ||
| dooray wiki page get <project> <page-id> # 페이지 상세 | ||
| dooray wiki page create <project> --title "..." [--parent <page-id>] [--body "..." | --body-file <path>] | ||
| dooray wiki page edit <project> <page-id> --title "새 제목" # 제목만 (비대화형) | ||
| dooray wiki page edit <project> <page-id> --body "..." | --body-file <path> # 본문만 (비대화형) | ||
| dooray wiki page edit <project> <page-id> # $EDITOR (플래그 없을 때) | ||
| ``` | ||
@@ -243,2 +279,24 @@ | ||
| ### 댓글 첨부 파일 (`post comment file *`) | ||
| 자동화로 댓글에 인라인 이미지 / 파일을 삽입할 때 사용. 4 명령 (list/upload/download/delete) 모두 `<project> <post-number> <comment-id>` 또는 `--id <postId> --comment-id <logId>` / `--url <url> --comment-id <logId>` 패턴 지원 (ADR-020). | ||
| ```bash | ||
| # 첨부 목록 | ||
| dooray post comment file list <project> <post-num> <comment-id> | ||
| # 업로드 (post-level files API 로 업로드 + 댓글 본문에 markdown reference append) | ||
| dooray post comment file upload <project> <post-num> <comment-id> ./screenshot.png | ||
| # 다운로드 (post-level 파일과 동일 — UX 일관성 wrapper) | ||
| dooray post comment file download <project> <post-num> <comment-id> <file-id> --out ./out.png | ||
| # 삭제 (댓글 본문 markdown 제거 + post-level 파일 삭제, --yes 로 confirm 생략) | ||
| dooray post comment file delete <project> <post-num> <comment-id> <file-id> --yes | ||
| ``` | ||
| > Dooray REST API 가 댓글 전용 attachment endpoint 를 제공하지 않아 내부적으로 | ||
| > post-level files API 와 댓글 본문 PUT 의 합성으로 동작 (ADR-024). 단일 명령 | ||
| > = 단일 파일 — 다중 파일은 호출자가 반복 호출. | ||
| ## 출력 모드 | ||
@@ -254,4 +312,4 @@ | ||
| # 파이프라인 예시 | ||
| dooray post list tc-ocr --json | jq '.[] | select(.priority == "high")' | ||
| dooray post list tc-ocr --quiet | xargs -I{} dooray post done tc-ocr {} | ||
| dooray post list <project> --json | jq '.[] | select(.priority == "high")' | ||
| dooray post list <project> --quiet | xargs -I{} dooray post done <project> {} | ||
| ``` | ||
@@ -268,2 +326,24 @@ | ||
| ## 피드백 (GitHub Issue 등록) | ||
| `dooray feedback` 명령으로 GitHub issue를 직접 등록할 수 있습니다 (`gh` CLI 위임). | ||
| ```bash | ||
| # 인터랙티브 (제목/본문/라벨 대화형 입력) | ||
| dooray feedback | ||
| # 논인터랙티브 | ||
| dooray feedback --title "버그 제목" --body "재현 방법" | ||
| # --last 모드 (직전 에러 자동 첨부) | ||
| dooray config set track-last-run true # 1회만, opt-in | ||
| dooray feedback --last # 직전 명령 + 에러 자동 첨부 + $EDITOR로 의견 추가 | ||
| dooray feedback --last --title "재현" --body "추가 설명" --dry-run # 미리보기 | ||
| # 미리보기 (gh 호출 없이 본문 확인) | ||
| dooray feedback --dry-run | ||
| ``` | ||
| > **개인정보 보호 (ADR-023)**: `--last` 모드에서 argv는 `--api-key`/`--token`/`Authorization` 등 시크릿 패턴을 자동 마스킹 후 저장합니다. cwd/env는 미저장. | ||
| ## 캐시 | ||
@@ -298,4 +378,32 @@ | ||
| ## GitHub Actions | ||
| 이 레포는 두 개의 워크플로를 사용합니다: | ||
| ### CI (`.github/workflows/ci.yml`) | ||
| - 트리거: `main` 으로 push, `main` 대상 PR | ||
| - 동작: `pnpm install --frozen-lockfile` → `pnpm test` → `pnpm build` (Node 18, ubuntu-latest) | ||
| - 별도 secret 불필요 | ||
| ### Claude code review (`.github/workflows/claude-code-review.yml`) | ||
| - 트리거: PR opened, PR 댓글에 `/review` 포함 | ||
| - 동작: 4 병렬 specialist 에이전트 (TypeScript / Conventions / Security / Architecture) 가 인라인 리뷰 + 요약 댓글 1개 게시 | ||
| - 필요 secret: `CLAUDE_CODE_OAUTH_TOKEN` | ||
| #### Secret 셋업 | ||
| 1. https://github.com/jon890/dooray-cli/settings/secrets/actions 접속 | ||
| 2. `New repository secret` → 이름 `CLAUDE_CODE_OAUTH_TOKEN` + 값 (Anthropic 에서 발급한 OAuth 토큰) | ||
| 3. PR 을 열거나 PR 댓글에 `/review` 작성하면 자동 실행 | ||
| #### 비용 / 토큰 | ||
| 각 PR 당 4 specialist 가 모두 `haiku` 모델로 동작 — 평균 PR 1건 당 수십 센트 수준. PR 자동 트리거 비활성화하려면 `claude-code-review.yml` 의 `if:` 조건에서 `github.event_name == 'pull_request'` 분기를 제거하고 `/review` 댓글 트리거만 남길 수 있음. | ||
| #### Fork PR 제한 | ||
| GitHub Actions 정책상 fork 에서 열린 PR 은 `secrets.CLAUDE_CODE_OAUTH_TOKEN` 에 접근 못 해 **자동 리뷰가 silent 하게 skip** 된다. fork 기여자가 리뷰를 받으려면 maintainer 가 PR 댓글에 `/review` 를 작성하여 base repo 컨텍스트로 워크플로를 트리거해야 한다. | ||
| ## 라이센스 | ||
| [MIT](LICENSE) |
@@ -48,3 +48,3 @@ --- | ||
| > **공통 (post 하위 12개 명령)**: `post get`/`edit`/`done`/`workflow`, `post comment list`/`add`/`edit`/`delete`, `post file list`/`upload`/`download`/`download-all`/`delete`는 `<project> <number>` 외에도 `--id <postId>`, `--url <url>`, 또는 첫 인자에 Dooray URL(`https://*.dooray.com/task/to/<postId>`)을 직접 받는다. **사용자가 URL을 줬으면 그대로 첫 인자로 전달**하는 것이 가장 빠른 경로 (resolve 단계 단축, ADR-020). | ||
| > **공통 (post 하위 16개 명령)**: `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`는 `<project> <number>` 외에도 `--id <postId>`, `--url <url>`, 또는 첫 인자에 Dooray URL(`https://*.dooray.com/task/to/<postId>` 또는 브라우저 주소창 복사본 `https://*.dooray.com/task/<projectId>/<postId>`)을 직접 받는다. **사용자가 URL을 줬으면 그대로 첫 인자로 전달**하는 것이 가장 빠른 경로 (resolve 단계 단축, ADR-020). | ||
@@ -60,2 +60,3 @@ | 의도 | 커맨드 | | ||
| | 멤버 상세 (organizationMemberId) | `dooray member get <organizationMemberId>` (cache 우회, ADR-021) | | ||
| | organization 전체 멤버 검색 | `dooray member search <keyword>` (이름 기본), `--email`(이메일 exact), `--user-code`(사번 like), `--user-code-exact`(사번 exact), `--page`/`--size` | | ||
| | 업무 목록 조회 | `dooray post list <project>` | | ||
@@ -91,2 +92,6 @@ | 업무 검색 | `dooray post search <project> "<keyword>"` | | ||
| | 첨부파일 삭제 | `dooray post file delete <project> <number> <file-id>` | | ||
| | 댓글 첨부 목록 | `dooray post comment file list <project> <number> <comment-id>` | | ||
| | 댓글 파일 업로드 | `dooray post comment file upload <project> <number> <comment-id> <path>` | | ||
| | 댓글 파일 다운로드 | `dooray post comment file download <project> <number> <comment-id> <file-id>` | | ||
| | 댓글 파일 삭제 | `dooray post comment file delete <project> <number> <comment-id> <file-id> --yes` | | ||
@@ -117,3 +122,4 @@ > **제목 옵션 네이밍**: `post` 와 `wiki page` 모두 `--title` 표준. `post`의 `--subject`는 deprecated alias로 당분간 동작하되, 새 코드에서는 `--title` 사용을 권장. | ||
| 5. **멤버 이름을 모르면** → `dooray member list <project>` (또는 `dooray project members <project>`) 로 확인 | ||
| 6. **결과를 다음 액션에 사용하려면** → `--json` 플래그로 구조화된 데이터 획득 | ||
| 6. **org 전체 멤버를 찾으려면** → `dooray member search <keyword>` (이름), `--email <addr>`, `--user-code <code>` 중 하나 사용 | ||
| 7. **결과를 다음 액션에 사용하려면** → `--json` 플래그로 구조화된 데이터 획득 | ||
@@ -128,7 +134,7 @@ --- | ||
| # 1. 업무 검색으로 번호 확인 | ||
| dooray post search tc-ocr "graceful shutdown" --json | ||
| dooray post search <project> "graceful shutdown" --json | ||
| # → [{ "number": 42, "subject": "graceful shutdown 구현", ... }] | ||
| # 2. 완료 처리 | ||
| dooray post done tc-ocr 42 | ||
| dooray post done <project> 42 | ||
| ``` | ||
@@ -154,8 +160,20 @@ | ||
| # 1. 업무 조회 | ||
| dooray post get tc-ocr 42 --json | ||
| dooray post get <project> 42 --json | ||
| # 2. 댓글 추가 | ||
| dooray post comment add tc-ocr 42 --body "진행 상황 업데이트: 80% 완료" | ||
| dooray post comment add <project> 42 --body "진행 상황 업데이트: 80% 완료" | ||
| ``` | ||
| ### 시나리오 — 댓글에 스크린샷 자동 첨부 | ||
| 스크립트가 스크린샷을 댓글에 삽입하거나, 에이전트가 결과 파일을 첨부 댓글로 보고할 때 사용. Dooray REST API 가 댓글 전용 attachment endpoint 를 미지원하므로 내부적으로 post-level files API + 댓글 본문 PUT 합성으로 동작 (ADR-024). | ||
| ```bash | ||
| # 1. 댓글을 먼저 만든다 (텍스트만, --json 으로 commentId 획득) | ||
| COMMENT_ID=$(dooray post comment add <project> <post-num> --body "스크린샷 보고:" --json | jq -r '.id') | ||
| # 2. 그 댓글에 파일을 첨부 (post-level 업로드 + 댓글 본문 markdown 자동 추가) | ||
| dooray post comment file upload <project> <post-num> "$COMMENT_ID" ./screenshot.png | ||
| ``` | ||
| ### 위키 페이지 조회 | ||
@@ -165,7 +183,7 @@ | ||
| # 1. 위키 페이지 목록 | ||
| dooray wiki pages tc-ocr --json | ||
| # → [{ "id": "3052841366755571094", "subject": "설계 문서", ... }] | ||
| dooray wiki pages <project> --json | ||
| # → [{ "id": "<pageId>", "subject": "설계 문서", ... }] | ||
| # 2. 페이지 내용 조회 | ||
| dooray wiki page get tc-ocr 3052841366755571094 --json | ||
| dooray wiki page get <project> <pageId> --json | ||
| ``` | ||
@@ -177,18 +195,18 @@ | ||
| ### 업무 식별 방식 (post 하위 12개 명령 공통, ADR-020) | ||
| ### 업무 식별 방식 (post 하위 16개 명령 공통, ADR-020) | ||
| `post get`/`edit`/`done`/`workflow`, `post comment list`/`add`/`edit`/`delete`, `post file list`/`upload`/`download`/`download-all`/`delete`는 4가지 입력을 모두 받는다: | ||
| `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`는 4가지 입력을 모두 받는다: | ||
| ```bash | ||
| # (1) 기존 positional — 가장 익숙한 형태 | ||
| dooray post get tc-ocr 42 | ||
| dooray post get <project> 42 | ||
| # (2) Dooray URL을 첫 인자로 — 사용자 메시지에서 URL을 그대로 복사할 때 최적 | ||
| dooray post get https://x.dooray.com/task/to/4319587406666362045 | ||
| dooray post get https://x.dooray.com/task/to/<postId> | ||
| # (3) --id <postId> | ||
| dooray post get --id 4319587406666362045 | ||
| dooray post get --id <postId> | ||
| # (4) --url <url> | ||
| dooray post get --url https://x.dooray.com/task/to/4319587406666362045 | ||
| dooray post get --url https://x.dooray.com/task/to/<postId> | ||
| ``` | ||
@@ -225,3 +243,3 @@ | ||
| --tag "버그" --tag "긴급" \ # 반복 지정. mandatory 그룹은 클라이언트 사전 검증 | ||
| --parent "tc-ocr/337" \ # "code/number" 또는 raw postId 두 형태만 허용 | ||
| --parent "<project>/337" \ # "code/number" 또는 raw postId 두 형태만 허용 | ||
| --workflow "진행 중" \ # 이름 또는 class (registered/working/closed). 부분일치 모호 시 후보 + 에러 | ||
@@ -273,2 +291,15 @@ --milestone "Sprint 12" | ||
| ## 멘션 자동 작성 (post comment add/edit) | ||
| `--mention <name>` (반복) 또는 `--mention-group <code>` (반복)으로 본문 앞에 멘션 마크업을 자동 prepend한다. 아래 "Dooray 마크다운 링크 형식" 섹션의 URL 형식을 자동 출력한다. | ||
| ```bash | ||
| dooray post comment add P 1 --mention 홍길동 --mention-group 개발 --body "..." | ||
| # 결과 본문: [@홍길동](dooray://orgId/members/m1 "member") [@P/개발](dooray://orgId/member-groups/g1) ... | ||
| ``` | ||
| - 이름 부분일치 지원 (모호하면 에러 + 후보 목록 출력) | ||
| - 멤버 먼저, 그룹 다음 순서 고정 | ||
| - comment edit에도 동일 옵션 사용 (`$EDITOR` 모드에서는 EDITOR 진입 전에 prepend) | ||
| ## Dooray 마크다운 링크 형식 (멤버·그룹·업무 멘션) | ||
@@ -308,3 +339,3 @@ | ||
| | `orgId` | Dooray 앱/웹 URL에서 추출 (`https://{org}.dooray.com/...`의 도메인 + 별도 확인 필요) | | ||
| | `memberId` | `dooray member get <id>` 또는 `dooray project members <project>` | | ||
| | `memberId` | `dooray member get <id>`, `dooray member search <name>`, `--email <addr>`, `--user-code <code>` 등으로 검색 | | ||
| | `groupId` | `dooray project groups <project>` | | ||
@@ -315,2 +346,18 @@ | `postId` | `dooray post get <project> <number> --json` 의 `id` 필드 | | ||
| ## 피드백 (GitHub Issue 등록) | ||
| `dooray feedback` 명령으로 dooray-cli GitHub issue를 직접 등록한다 (`gh` CLI 위임). | ||
| ```bash | ||
| # 논인터랙티브 (non-interactive — 에이전트 자동화용) | ||
| dooray feedback --title "버그 제목" --body "재현 방법" --label "bug" | ||
| # --last 모드 (직전 에러 자동 첨부 — track-last-run 활성화 필요) | ||
| dooray config set track-last-run true | ||
| dooray feedback --last --title "에러 제목" --body "추가 설명" --dry-run # 미리보기 | ||
| dooray feedback --last --title "에러 제목" --body "추가 설명" # 실제 등록 | ||
| ``` | ||
| > **참고**: `--last` 모드는 `trackLastRun: true` (ADR-023 opt-in)가 설정된 경우에만 직전 실패 명령이 자동 기록됨. argv는 시크릿 패턴(`--api-key`/`--token`/`Authorization`) 마스킹 후 저장. | ||
| ## 에러 핸들링 | ||
@@ -317,0 +364,0 @@ |
Sorry, the diff of this file is too big to display
208556
22.73%4128
19.51%393
37.89%22
10%