@bifos/dooray-cli
Advanced tools
+1
-1
| { | ||
| "name": "@bifos/dooray-cli", | ||
| "version": "0.9.0", | ||
| "version": "0.10.0", | ||
| "description": "CLI tool for Dooray project management — AI agent & terminal friendly", | ||
@@ -5,0 +5,0 @@ "keywords": [ |
+111
-15
@@ -26,3 +26,7 @@ # dooray-cli | ||
| API Endpoint 선택 → API Key 입력 → 연결 테스트 → 메일 설정(선택)을 순서대로 진행합니다. | ||
| 아래 순서로 진행합니다: | ||
| 1. API Endpoint 선택 | ||
| 2. API Key 입력 | ||
| 3. 연결 테스트 | ||
| 4. 메일 설정 (선택) | ||
| API 토큰은 `https://{tenant}.dooray.com/setting/api/token`에서 발급할 수 있습니다. | ||
@@ -88,3 +92,4 @@ | ||
| 대상: `post get`/`edit`/`done`/`workflow`, `post comment list`/`add`/`edit`/`delete`, `post file list`/`upload`/`download`/`download-all`/`delete`. AI 에이전트는 사용자 메시지의 Dooray URL을 그대로 첫 인자로 전달하면 가장 빠르다 (ADR-020). | ||
| 대상: `post get`/`edit`/`done`/`workflow`, `post comment list`/`add`/`edit`/`delete`, `post file list`/`upload`/`download`/`download-all`/`delete`. | ||
| AI 에이전트는 사용자 메시지의 Dooray URL을 그대로 첫 인자로 전달하면 가장 빠르다 (ADR-020). | ||
@@ -112,3 +117,4 @@ ### 업무 생성 | ||
| > mandatory-tag 정책 프로젝트(예: `<project>`)에서는 mandatory 그룹마다 1개 이상 `--tag`로 지정해야 한다. 누락 시 클라이언트가 사전 검증으로 후보 목록과 함께 에러 출력. | ||
| > mandatory-tag 정책 프로젝트(예: `<project>`)에서는 mandatory 그룹마다 1개 이상 `--tag`로 지정해야 한다. | ||
| > 누락 시 클라이언트가 사전 검증으로 후보 목록과 함께 에러 출력. | ||
@@ -131,3 +137,4 @@ #### 템플릿 기반 정형 task (ADR-027) | ||
| `interpolation=true` 가 기본 — Dooray 가 `${year}`, `${month}` 같은 시스템 매크로를 응답에서 자동 치환. 사용자 정의 변수 (`--field key=value`) 는 본 release scope 외. | ||
| `interpolation=true` 가 기본 — Dooray 가 `${year}`, `${month}` 같은 시스템 매크로를 응답에서 자동 치환. | ||
| 사용자 정의 변수 (`--field key=value`) 는 본 release scope 외. | ||
@@ -149,3 +156,4 @@ ### 업무 수정 | ||
| `post edit` 와 `post comment edit` 는 본문을 통째로 replace 합니다. 새 본문에 기존 inline attachment markdown(``)이 빠져 있으면 stderr 에 경고를 띄우고 (y/N) 로 물어봅니다. | ||
| `post edit` 와 `post comment edit` 는 본문을 통째로 replace 합니다. | ||
| 새 본문에 기존 inline attachment markdown(``)이 빠져 있으면 stderr 에 경고를 띄우고 (y/N) 로 물어봅니다. | ||
@@ -206,3 +214,4 @@ 자동화 환경 (pipe / non-TTY) 에서는 그대로 abort 됩니다. 의도한 변경이면 `--no-confirm` 으로 다시 실행하세요. | ||
| interactive ($EDITOR) 모드에서는 위 6개 옵션이 무시되고 stderr 경고가 출력됩니다. | ||
| `post edit --dry-run --json` 사용 시 출력에 `users: { to, cc }` 가 포함되어 API 호출 없이 변경 결과 미리보기 가능. (`post create --dry-run` 은 본문만 출력하며 `users` 는 포함하지 않음.) | ||
| `post edit --dry-run --json` 사용 시 출력에 `users: { to, cc }` 가 포함되어 API 호출 없이 변경 결과 미리보기 가능. | ||
| `post create --dry-run` 은 본문만 출력하며 `users` 는 포함하지 않음. | ||
@@ -240,7 +249,12 @@ ```bash | ||
| 내부적으로 `client.updatePost` 호출 후 별도 `POST .../set-parent-post` endpoint 추가 호출. **parent 해제 (top-level 화)** 는 Dooray API 가 미지원이라 웹 UI 에서 수동 처리. | ||
| 내부적으로 `client.updatePost` 호출 후 별도 `POST .../set-parent-post` endpoint 추가 호출. | ||
| **parent 해제 (top-level 화)** 는 Dooray API 가 미지원이라 웹 UI 에서 수동 처리. | ||
| interactive ($EDITOR) 모드에서 `--parent` 사용 시 무시 + stderr 경고. **parent 만 단독 변경하려면 `--title "<원제목>"` 동반 필요** — `post edit` 가 본문 변경(`--title`/`--body`) 동반 시에만 non-interactive 분기로 들어가며, parent 변경은 그 분기 안에서만 수행됨. (Issue #60) | ||
| interactive ($EDITOR) 모드에서 `--parent` 사용 시 무시 + stderr 경고. | ||
| **parent 만 단독 변경하려면 `--title "<원제목>"` 동반 필요** — `post edit` 는 본문 변경(`--title`/`--body`) 동반 시에만 non-interactive 분기로 들어감. | ||
| parent 변경은 그 분기 안에서만 수행됨. (Issue #60) | ||
| `--dry-run --json` 출력의 `parentChange` 필드는 **사용자 입력 원문 그대로** (`<project>/<number>` 또는 raw postId) — resolver 처리 전 미리보기 값이며 실제 호출 대상 `postId` 가 아님. dry-run 은 API 미호출 원칙을 유지해 `resolvePostRef` 도 건너뜀. | ||
| `--dry-run --json` 출력의 `parentChange` 필드는 **사용자 입력 원문 그대로** (`<project>/<number>` 또는 raw postId). | ||
| resolver 처리 전 미리보기 값이며 실제 호출 대상 `postId` 가 아님. | ||
| dry-run 은 API 미호출 원칙을 유지해 `resolvePostRef` 도 건너뜀. | ||
@@ -262,4 +276,9 @@ #### `--to` / `--cc` / `--mention` 입력 형식 (자동 분기) | ||
| 분기 규칙: `^\d{15,}$` → memberId / `^[^\s@]+@[^\s@]+\.[^\s@]+$` → 이메일 / 그 외 → 이름 부분일치. `member search --email` 의 인프라 재사용. | ||
| 분기 규칙 (`resolveMember` 자동 판단): | ||
| - `^\d{15,}$` — memberId 직접 사용 | ||
| - `^[^\s@]+@[^\s@]+\.[^\s@]+$` — 이메일, `searchMembers` exact 조회 | ||
| - 그 외 — 이름 부분일치 | ||
| `member search --email` 의 인프라 재사용. | ||
| #### comment list 필터 옵션 | ||
@@ -329,2 +348,75 @@ | ||
| #### 위키 페이지 첨부파일 (Issue #70) | ||
| post 의 `post file` 명령군과 동일 패턴 — `<project> <page-id>` 외에도 `--id`/`--url`/positional URL 지원. | ||
| ```bash | ||
| # 목록 (general 첨부 + inline image 둘 다 표시, type 컬럼) | ||
| dooray wiki page file list <project> <page-id> | ||
| # 업로드 (기본 general — 페이지 하단 첨부 영역) | ||
| dooray wiki page file upload <project> <page-id> --file ./SKILL.md | ||
| # stdout: attachFileId + 파일 메타 출력 | ||
| # 인라인 이미지 업로드 (본문 markdown 은 사용자가 직접 박음) | ||
| dooray wiki page file upload <project> <page-id> --file ./diagram.png --type inline_image | ||
| # stdout 에 본문 삽입용 markdown snippet 안내 | ||
| # 다운로드 | ||
| dooray wiki page file download <project> <page-id> --file-id <id> -o ./ | ||
| # 페이지 모든 첨부 (files + images) 일괄 다운로드 | ||
| dooray wiki page file download-all <project> <page-id> -o ./attachments/ | ||
| # 삭제 (confirm 없이 즉시) | ||
| dooray wiki page file delete <project> <page-id> --file-id <id> | ||
| # URL 모드 (--id 모드는 --project 동반 필요) | ||
| dooray wiki page file list "https://<tenant>.dooray.com/wiki/<wikiId>/<pageId>" | ||
| dooray wiki page file upload --id <pageId> --project <project> --file ./README.md | ||
| ``` | ||
| **주의**: | ||
| - `upload` 시 multipart 필드 순서 (`type` → `file`) 가 중요. | ||
| 클라이언트가 자동으로 강제 (ADR-029 참조) | ||
| - `inline_image` 로 올린 파일은 본문에 markdown 으로 박혀야 위키에서 보임. | ||
| upload stdout 의 snippet 을 복사해서 `dooray wiki page edit` 으로 본문에 직접 추가 | ||
| - `delete` 는 confirm 없이 즉시 삭제 (실수 방지 책임은 호출자) | ||
| #### 위키 페이지 댓글 | ||
| post 의 `post comment` 명령군과 동일 패턴 — `<project> <page-id>` 외에도 `--id`/`--url`/positional URL 지원. | ||
| ```bash | ||
| # 목록 (최신순) | ||
| dooray wiki page comment list <project> <page-id> | ||
| dooray wiki page comment list <project> <page-id> --latest 5 | ||
| # 최신 1건 shortcut | ||
| dooray wiki page comment latest <project> <page-id> | ||
| # 단일 조회 | ||
| dooray wiki page comment get <project> <page-id> <comment-id> | ||
| # 추가 — interactive ($EDITOR) 또는 옵션 | ||
| dooray wiki page comment add <project> <page-id> # $EDITOR | ||
| dooray wiki page comment add <project> <page-id> --body "회의 결정 사항" | ||
| dooray wiki page comment add <project> <page-id> --body-file ./note.md | ||
| echo "댓글" | dooray wiki page comment add <project> <page-id> --body - | ||
| # 수정 — interactive ($EDITOR, 기존 본문 prefill) 또는 옵션 | ||
| dooray wiki page comment edit <project> <page-id> <comment-id> --body "..." | ||
| # 삭제 (confirm 없이 즉시) | ||
| dooray wiki page comment delete <project> <page-id> <comment-id> | ||
| # URL 모드 | ||
| dooray wiki page comment list "https://<tenant>.dooray.com/wiki/<wikiId>/<pageId>" | ||
| ``` | ||
| **post comment 와의 차이**: | ||
| - mention / cc / 받는 사람 미지원 — wiki API 부재 | ||
| - 첨부 파일 미지원 — wiki comment 전용 endpoint 부재 (페이지 본문 파일은 `wiki page file` 사용) | ||
| - 본문은 markdown 그대로 전송 (mimeType 자동) | ||
| ### 메일 | ||
@@ -389,3 +481,4 @@ | ||
| 자동화로 댓글에 인라인 이미지 / 파일을 삽입할 때 사용. 4 명령 (list/upload/download/delete) 모두 `<project> <post-number> <comment-id>` 또는 `--id <postId> --comment-id <logId>` / `--url <url> --comment-id <logId>` 패턴 지원 (ADR-020). | ||
| 자동화로 댓글에 인라인 이미지 / 파일을 삽입할 때 사용. | ||
| 4 명령 (list/upload/download/delete) 모두 `<project> <post-number> <comment-id>` 또는 `--id <postId> --comment-id <logId>` / `--url <url> --comment-id <logId>` 패턴 지원 (ADR-020). | ||
@@ -426,3 +519,4 @@ ```bash | ||
| `skills/dooray-cli/SKILL.md`에 AI 에이전트를 위한 스킬 파일이 포함되어 있습니다. Claude Code 등의 AI 에이전트에서 dooray-cli를 자동으로 활용할 수 있도록 의도→커맨드 매핑, 체이닝 예시, 에러 핸들링 가이드가 포함되어 있습니다. | ||
| `skills/dooray-cli/SKILL.md`에 AI 에이전트를 위한 스킬 파일이 포함되어 있습니다. | ||
| Claude Code 등의 AI 에이전트에서 dooray-cli를 자동으로 활용할 수 있도록 의도→커맨드 매핑, 체이닝 예시, 에러 핸들링 가이드가 포함되어 있습니다. | ||
@@ -491,3 +585,3 @@ ```bash | ||
| - 트리거: `main` 으로 push, `main` 대상 PR | ||
| - 동작: `pnpm install --frozen-lockfile` → `pnpm test` → `pnpm build` (Node 18, ubuntu-latest) | ||
| - 동작: `pnpm install --frozen-lockfile`, `pnpm test`, `pnpm build` (Node 18, ubuntu-latest) | ||
| - 별도 secret 불필요 | ||
@@ -508,7 +602,9 @@ | ||
| 각 PR 당 4 specialist 가 모두 `haiku` 모델로 동작 — 평균 PR 1건 당 수십 센트 수준. PR 자동 트리거 비활성화하려면 `claude-code-review.yml` 의 `if:` 조건에서 `github.event_name == 'pull_request'` 분기를 제거하고 `/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 컨텍스트로 워크플로를 트리거해야 한다. | ||
| GitHub Actions 정책상 fork 에서 열린 PR 은 `secrets.CLAUDE_CODE_OAUTH_TOKEN` 에 접근 못 해 **자동 리뷰가 silent 하게 skip** 된다. | ||
| fork 기여자가 리뷰를 받으려면 maintainer 가 PR 댓글에 `/review` 를 작성하여 base repo 컨텍스트로 워크플로를 트리거해야 한다. | ||
@@ -515,0 +611,0 @@ ## 라이센스 |
@@ -48,3 +48,6 @@ --- | ||
| > **공통 (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). | ||
| > **공통 (post 하위 16개 명령)**: 아래 명령은 `<project> <number>` 외에도 `--id <postId>`, `--url <url>`, 또는 첫 인자에 Dooray URL 을 직접 받는다. | ||
| > `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`. | ||
| > URL 형식: `https://*.dooray.com/task/to/<postId>` 또는 브라우저 주소창 복사본 `https://*.dooray.com/task/<projectId>/<postId>`. | ||
| > **사용자가 URL을 줬으면 그대로 첫 인자로 전달**하는 것이 가장 빠른 경로 (resolve 단계 단축, ADR-020). | ||
@@ -65,3 +68,3 @@ | 의도 | 커맨드 | | ||
| | 업무 상세 보기 | `dooray post get <project> <number>` | | ||
| | 업무 생성 | `dooray post create <project> --title "..." --body "..."` 또는 `--body-file <path>` (`--body`와 `--body-file`은 동시 사용 불가, `--tag`/`--parent`/`--workflow`/`--milestone` 지원) | | ||
| | 업무 생성 | `dooray post create <project> --title "..." [--body "..." \| --body-file <path>]` (`--tag`/`--parent`/`--workflow`/`--milestone` 지원) | | ||
| | 템플릿 기반 업무 생성 | `dooray post create <project> --template <name\|id>` — body/users/tags 자동 채움 (사용자 옵션 우선 override, ADR-027) | | ||
@@ -71,5 +74,5 @@ | 업무 제목/본문 수정 | `dooray post edit <project> <number> --title "..." --body "..."` 또는 `--body-file <path>` | | ||
| | 업무 워크플로우 변경 | `dooray post workflow <project> <number> <workflow>` | | ||
| | 댓글 조회 | `dooray post comment list <project> <number>` — `--sort asc\|desc`, `--reverse`, `--latest <n>`, `--since <iso>`, `--from-author <name>` 필터 지원. table 출력은 Creator 이름 자동 채움, `--json`은 raw 유지 (ADR-021) | | ||
| | 댓글 조회 | `dooray post comment list <project> <number>` (`--sort`, `--reverse`, `--latest`, `--since`, `--from-author` 필터. table: Creator 자동 채움, `--json`: raw, ADR-021) | | ||
| | 최신 댓글 조회 | `dooray post comment latest <project> <number>` — 최신 댓글 1개 빠른 조회. `-n <N>`으로 N개 지정 | | ||
| | 단일 댓글 조회 | `dooray post comment get <project> <number> <comment-id> --json` — 단일 댓글 본문·메타·attachments 직접 fetch. `comment list` 후 jq 필터 우회 불필요. `--id <postId> --comment-id <id>` / `--url <url> --comment-id <id>` 모드 지원 | | ||
| | 단일 댓글 조회 | `dooray post comment get <project> <number> <comment-id>` — 본문·메타·attachments 직접 fetch. `--id`/`--url` + `--comment-id` 모드 지원 | | ||
| | 댓글 추가 | `dooray post comment add <project> <number> --body "..."` 또는 `--body-file <path>` | | ||
@@ -85,2 +88,13 @@ | 댓글 수정 | `dooray post comment edit <project> <number> <comment-id> --body "..."` 또는 `--body-file <path>` | | ||
| | 위키 페이지 수정 (에디터) | `dooray wiki page edit <project> <page-id>` (플래그 없으면 $EDITOR 열림) | | ||
| | 위키 페이지 첨부 목록 | `dooray wiki page file list <project> <page-id>` (general + inline 합산, type 컬럼) | | ||
| | 위키 페이지 첨부 업로드 | `dooray wiki page file upload <project> <page-id> --file <path> [--type inline_image]` (multipart type 순서 ADR-029) | | ||
| | 위키 페이지 첨부 다운로드 | `dooray wiki page file download <project> <page-id> --file-id <id> -o <dir>` | | ||
| | 위키 페이지 첨부 일괄 다운로드 | `dooray wiki page file download-all <project> <page-id> -o <dir>` (files + images 전부) | | ||
| | 위키 페이지 첨부 삭제 | `dooray wiki page file delete <project> <page-id> --file-id <id>` (confirm 없음) | | ||
| | 위키 페이지 댓글 목록 | `dooray wiki page comment list <project> <page-id> [--latest N]` (최신순) | | ||
| | 위키 페이지 최신 댓글 | `dooray wiki page comment latest <project> <page-id>` | | ||
| | 위키 페이지 댓글 조회 | `dooray wiki page comment get <project> <page-id> <comment-id>` | | ||
| | 위키 페이지 댓글 추가 | `dooray wiki page comment add <project> <page-id> --body "..."` ($EDITOR fallback) | | ||
| | 위키 페이지 댓글 수정 | `dooray wiki page comment edit <project> <page-id> <comment-id> --body "..."` | | ||
| | 위키 페이지 댓글 삭제 | `dooray wiki page comment delete <project> <page-id> <comment-id>` (confirm 없음) | | ||
| | 메일 목록 조회 | `dooray mail list` | | ||
@@ -104,3 +118,3 @@ | 안읽은 메일 | `dooray mail list --unread` | | ||
| | 신규 업무 + 그룹 cc | `dooray post create <project> --title "..." --cc-group <code>` — 생성 시 그룹 참조자 포함 | | ||
| | 상위 업무 설정/변경 | `dooray post edit <project> <number> --title "<원제목>" --parent <ref>` — `<ref>` 는 `<project>/<number>` 또는 raw postId. `--title` 미동반 시 interactive 모드로 진입해 무시. unset 미지원 (Issue #60) | | ||
| | 상위 업무 설정/변경 | `dooray post edit <project> <number> --title "<원제목>" --parent <ref>` (`<ref>`: `<project>/<number>` 또는 raw postId. `--title` 필수, unset 미지원) | | ||
| | `dooray post edit --id <postId> --tag <name>` | 태그 추가 (반복, dedupe) | | ||
@@ -120,3 +134,3 @@ | `dooray post edit --id <postId> --tag-clear --tag <name>` | 태그 전체 교체 | | ||
| |---|---|---| | ||
| | 위키 페이지 **삭제** | 웹 UI (`https://{tenant}.dooray.com/wiki/...`) | Dooray REST API에 해당 엔드포인트 없음 (위키 댓글·첨부파일 삭제는 있지만 페이지 자체는 없음 — ADR 또는 Dooray 공식 API 문서 미제공) | | ||
| | 위키 페이지 **삭제** | 웹 UI (`https://{tenant}.dooray.com/wiki/...`) | Dooray REST API 미제공 (댓글·첨부파일 삭제는 있지만 페이지 삭제 endpoint 없음) | | ||
| | 프로젝트 삭제 | 웹 UI (admin 페이지) | API 미지원 | | ||
@@ -179,3 +193,4 @@ | ||
| 스크립트가 스크린샷을 댓글에 삽입하거나, 에이전트가 결과 파일을 첨부 댓글로 보고할 때 사용. Dooray REST API 가 댓글 전용 attachment endpoint 를 미지원하므로 내부적으로 post-level files API + 댓글 본문 PUT 합성으로 동작 (ADR-024). | ||
| 스크립트가 스크린샷을 댓글에 삽입하거나, 에이전트가 결과 파일을 첨부 댓글로 보고할 때 사용. | ||
| Dooray REST API 가 댓글 전용 attachment endpoint 를 미지원하므로 내부적으로 post-level files API + 댓글 본문 PUT 합성으로 동작 (ADR-024). | ||
@@ -201,2 +216,32 @@ ```bash | ||
| ### 위키 페이지 첨부파일 — 스킬 파일 팀 공유 (Issue #70) | ||
| **스킬 파일 팀 공유**: 팀 위키에 스킬 파일 (예: `SKILL.md`) 을 `wiki page file upload` 로 첨부 → 팀원이 `wiki page file download-all` 로 일괄 받아 `~/.claude/skills/` 에 그대로 설치. | ||
| ```bash | ||
| # 업로드 (일반 첨부) | ||
| dooray wiki page file upload <project> <page-id> --file ~/.claude/skills/my-skill/SKILL.md | ||
| # 팀원 쪽에서 일괄 다운로드 | ||
| dooray wiki page file download-all <project> <page-id> -o ~/.claude/skills/my-skill/ | ||
| # 첨부 목록 확인 (type 컬럼: general / inline_image) | ||
| dooray wiki page file list <project> <page-id> | ||
| ``` | ||
| ### 위키 페이지 댓글 — 회의록 결정사항 자동 누적 | ||
| **회의록 결정사항 자동 누적**: 회의록 위키 페이지에 자동화 봇이 `wiki page comment add` 로 결정사항을 댓글로 누적, `wiki page comment list --latest 20` 으로 최근 토론 흐름 추적. | ||
| ```bash | ||
| # 결정사항 댓글 추가 | ||
| dooray wiki page comment add <project> <page-id> --body "결정: 배포일 2026-06-01 확정" | ||
| # 최근 20개 토론 흐름 조회 | ||
| dooray wiki page comment list <project> <page-id> --latest 20 | ||
| # 최신 댓글 1건 shortcut | ||
| dooray wiki page comment latest <project> <page-id> | ||
| ``` | ||
| ## 단일 댓글 본문 fetch | ||
@@ -229,3 +274,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가지 입력을 모두 받는다: | ||
| 아래 16개 명령은 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`. | ||
@@ -246,3 +292,5 @@ ```bash | ||
| **우선순위 / 충돌 규칙**: `--id`+`--url` 동시 지정 → 에러. `--id`/`--url`+positional 동시 지정 → 에러. URL/`--id`/`--url` 모드는 standalone API(`getPost(postId)`)로 resolve 단계를 단축. | ||
| **우선순위 / 충돌 규칙**: `--id`+`--url` 동시 지정 → 에러. | ||
| `--id`/`--url`+positional 동시 지정 → 에러. | ||
| URL/`--id`/`--url` 모드는 standalone API(`getPost(postId)`)로 resolve 단계를 단축. | ||
@@ -286,3 +334,5 @@ **sub-id 옵션화** (URL/`--id`/`--url` 모드에서 필수): | ||
| > **`--workflow` 동작 주의**: 워크플로우 설정은 post 생성 *후속* 호출이므로, 워크플로우 resolve/설정에 실패해도 stderr 경고만 출력되고 **exit code는 0** (post는 이미 생성됨). 자동화 스크립트에서 워크플로우 적용 여부를 보장해야 하면 stderr를 별도 점검할 것. | ||
| > **`--workflow` 동작 주의**: 워크플로우 설정은 post 생성 *후속* 호출. | ||
| > resolve/설정에 실패해도 stderr 경고만 출력되고 **exit code는 0** (post는 이미 생성됨). | ||
| > 자동화 스크립트에서 워크플로우 적용 여부를 보장해야 하면 stderr를 별도 점검할 것. | ||
@@ -337,7 +387,13 @@ ### 업무 수정 (non-interactive) | ||
| `--to` / `--mention` 동일 분기 (resolveMember 인프라). 분기 규칙: `^\d{15,}$` → memberId / 이메일 정규형 → searchMembers exact / 그 외 → 이름 부분일치. | ||
| `--to` / `--mention` 동일 분기 (resolveMember 인프라). 분기 규칙: | ||
| - `^\d{15,}$` — memberId 직접 사용 | ||
| - 이메일 정규형 — searchMembers exact | ||
| - 그 외 — 이름 부분일치 | ||
| ## 신규 업무 생성 후 그룹 cc 첨부 (ADR-025) | ||
| audit 리포트 분석 → 신규 업무 생성 → 후속으로 특정 그룹을 참조에 추가하는 자동화 패턴: | ||
| 자동화 패턴: | ||
| 1. audit 리포트 분석 | ||
| 2. 신규 업무 생성 | ||
| 3. 후속으로 특정 그룹을 참조에 추가 | ||
@@ -430,3 +486,4 @@ ```bash | ||
| 댓글/본문 작성 시 다음 형식으로 마크업하면 Dooray 앱이 인식해 inline 멘션·navigation으로 렌더링한다. ID는 본인 환경 값으로 채워 사용 — `dooray member get` / `project groups` / `post get` 등으로 조회. | ||
| 댓글/본문 작성 시 다음 형식으로 마크업하면 Dooray 앱이 인식해 inline 멘션·navigation으로 렌더링한다. | ||
| ID는 본인 환경 값으로 채워 사용 — `dooray member get` / `project groups` / `post get` 등으로 조회. | ||
@@ -483,3 +540,4 @@ ### 멤버 멘션 | ||
| > **참고**: `--last` 모드는 `trackLastRun: true` (ADR-023 opt-in)가 설정된 경우에만 직전 실패 명령이 자동 기록됨. argv는 시크릿 패턴(`--api-key`/`--token`/`Authorization`) 마스킹 후 저장. | ||
| > **참고**: `--last` 모드는 `trackLastRun: true` (ADR-023 opt-in)가 설정된 경우에만 직전 실패 명령이 자동 기록됨. | ||
| > argv는 시크릿 패턴(`--api-key`/`--token`/`Authorization`) 마스킹 후 저장. | ||
@@ -513,3 +571,4 @@ ## 에러 핸들링 | ||
| 템플릿 본문의 `${year}` / `${month}` 등 매크로는 Dooray 가 자동 치환 (`interpolation=true` 기본). 사용자 정의 변수는 미지원 — 필요 시 client 측 string replace 로 처리. | ||
| 템플릿 본문의 `${year}` / `${month}` 등 매크로는 Dooray 가 자동 치환 (`interpolation=true` 기본). | ||
| 사용자 정의 변수는 미지원 — 필요 시 client 측 string replace 로 처리. | ||
@@ -516,0 +575,0 @@ ## 캐시 |
Sorry, the diff of this file is too big to display
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
URL strings
Supply chain riskPackage contains fragments of external URLs or IP addresses, which the package may be accessing at runtime.
296790
17.41%5620
16.84%601
19.01%24
9.09%9
50%