From fbd7df2c4b1331ec0f0c3e6ecec834a8e4f3a66f Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 7 Feb 2026 13:01:27 +0000 Subject: [PATCH] docs: simplify PLAN.md and reorganize planning documents All 99 subcommands across 4 phases are implemented. Reorganize: - Move detailed command specs to plans/command-specifications.md - Move design principles (name resolution, output formats, etc.) to claude.md - Simplify PLAN.md to completion summary with backlog of unscoped commands - Annotate unimplemented commands in plans/command-overview.md https://claude.ai/code/session_01Y2Bz3RWkCoYUdKjYKjgoBG --- PLAN.md | 1419 +------------------------------ claude.md | 54 ++ plans/command-overview.md | 14 +- plans/command-specifications.md | 1099 ++++++++++++++++++++++++ 4 files changed, 1185 insertions(+), 1401 deletions(-) create mode 100644 plans/command-specifications.md diff --git a/PLAN.md b/PLAN.md index 7b9bbf2..cbfea47 100644 --- a/PLAN.md +++ b/PLAN.md @@ -1,1414 +1,45 @@ # backlog-cli 実装計画 -> gh CLI のインターフェースを基準に、Backlog API を操作する CLI ツールの全コマンド・引数・オプション定義と、対応する Backlog API エンドポイントのマッピング。 +> gh CLI のインターフェースを基準に、Backlog API を操作する CLI ツール。 > -> **このドキュメントは実装の進捗に合わせて随時更新すること。** +> Phase 1〜4 の全コマンド実装が完了。詳細な仕様は `plans/` 配下を参照。 --- -## 進捗サマリー +## 完了済み | Phase | 対象 | サブコマンド数 | 状態 | |-------|------|----------------|------| | Phase 1 | MVP(auth, config, issue, project, api) | 19 | 完了 | | Phase 2 | 開発者向け(pr, repo, notification, status, browse) | 19 | 完了 | -| Phase 3 | 管理機能(wiki, user, team, category, milestone 等) | 38 | 完了 | -| Phase 4 | 拡張機能(space, webhook, star, watching, alias 等) | 23 | 完了 | +| Phase 3 | 管理機能(wiki, user, team, category, milestone, issue-type, status-type, project 拡張) | 38 | 完了 | +| Phase 4 | 拡張機能(space, webhook, star, watching, alias, auth 拡張, completion) | 23 | 完了 | +| **合計** | | **99** | | --- -## 共通オプション(グローバルフラグ) +## 未実装(バックログ) -すべてのコマンドで使用可能な共通フラグ。 +`plans/command-overview.md` に構想として記載されているが、実装スコープ外としたコマンド: -| フラグ | 短縮 | 型 | デフォルト | 説明 | -|--------|------|------|------------|------| -| `--space` | `-s` | string | デフォルトスペース | 対象の Backlog スペース(AWS CLI の `--profile` 相当) | -| `--json` | | string[] | — | JSON出力。フィールド名を指定可 | -| `--jq` | `-q` | string | — | jq式でJSON出力をフィルタ | -| `--template` | `-t` | string | — | Go template形式の出力フォーマット | -| `--no-pager` | | boolean | false | ページャーを無効化 | -| `--help` | `-h` | boolean | — | ヘルプ表示 | -| `--version` | `-V` | boolean | — | バージョン表示 | - -### スペース解決(認証コンテキスト) - -AWS CLI のプロファイルと同様に、`--space` でスペースを切り替える。 -スペースが決まれば認証情報(API Key / OAuth トークン)も一意に決まる。 - -**解決優先順:** - -1. `--space` フラグ(例: `--space mycompany.backlog.com`) -2. 環境変数 `BACKLOG_SPACE` -3. 設定ファイルの `default_space` - -```sh -# デフォルトスペースを使用 -backlog issue list - -# 明示的にスペースを指定 -backlog issue list --space partner.backlog.jp - -# 環境変数で指定 -BACKLOG_SPACE=partner.backlog.jp backlog issue list -``` - -### `--project` を持たない理由 - -Backlog の課題キーは `PROJECT-123` 形式でプロジェクトキーを含むため、 -課題キーを受け取るコマンド(`view`, `edit`, `close`, `reopen`, `comment` 等)は -プロジェクトの明示指定が不要。 - -プロジェクト指定が必要なコマンド(`issue list`, `issue create`, `category list` 等)は -グローバルフラグではなく、各コマンドのローカルオプション `--project` / `-p` で受け取る。 - ---- - -## Phase 1: MVP - -### 1.1 `backlog auth` — 認証管理 - -認証は全機能の前提条件。API Key と OAuth 2.0 の2方式をサポート。 - -#### `backlog auth login` - -スペースへの認証を設定する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | -|------------------|------|------|------|------------|------| -| `--hostname` | `-h` | string | No | — | スペースホスト名(例: `xxx.backlog.com`) | -| `--method` | `-m` | string | No | `api-key` | 認証方式(`api-key` / `oauth`) | -| `--with-token` | | boolean | No | false | 標準入力からトークンを読み込む | - -- **対応 API**: OAuth 2.0 フロー / ローカル設定への書き込み -- **状態**: 完了 - -#### `backlog auth logout` - -スペースの認証情報を削除する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | -|------------------|------|------|------|------------|------| -| `--hostname` | `-h` | string | No | アクティブスペース | 対象スペースホスト名 | - -- **対応 API**: ローカル設定の削除 -- **状態**: 完了 - -#### `backlog auth status` - -認証状態を表示する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | -|------------------|------|------|------|------------|------| -| `--hostname` | `-h` | string | No | 全スペース | 対象スペースホスト名 | -| `--show-token` | | boolean | No | false | トークンを表示する | - -- **対応 API**: `GET /api/v2/users/myself` -- **状態**: 完了 - -#### `backlog auth token` - -認証トークンを標準出力に表示する。スクリプト連携用。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | -|------------------|------|------|------|------------|------| -| `--hostname` | `-h` | string | No | アクティブスペース | 対象スペースホスト名 | - -- **対応 API**: ローカル設定の読み取り -- **状態**: 完了 - ---- - -### 1.2 `backlog config` — CLI 設定管理 - -CLI 自体の動作設定を管理する。 - -#### `backlog config get ` - -設定値を取得する。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | string | Yes | 設定キー(例: `default_space`, `pager`) | -| `--hostname` | string | No | スペース単位の設定を取得 | - -- **対応 API**: ローカル設定ファイル読み取り -- **状態**: 完了 - -#### `backlog config set ` - -設定値を書き込む。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | string | Yes | 設定キー | -| `` | string | Yes | 設定値 | -| `--hostname` | string | No | スペース単位で設定 | - -- **対応 API**: ローカル設定ファイル書き込み -- **状態**: 完了 - -#### `backlog config list` - -全設定値を一覧表示する。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `--hostname` | string | No | スペース単位でフィルタ | - -- **対応 API**: ローカル設定ファイル読み取り -- **状態**: 完了 - ---- - -### 1.3 `backlog issue` — 課題管理 - -Backlog の最重要機能。課題の CRUD とコメント操作を提供する。 - -#### `backlog issue list` - -課題一覧を取得する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `--project` | `-p` | string[] | No | — | プロジェクトキー(複数可) | `projectId[]` | -| `--assignee` | `-a` | string | No | — | 担当者(ユーザー名 or `@me`) | `assigneeId[]` | -| `--status` | `-S` | string[] | No | — | ステータス名(複数可) | `statusId[]` | -| `--type` | `-T` | string[] | No | — | 課題種別名(複数可) | `issueTypeId[]` | -| `--category` | `-C` | string[] | No | — | カテゴリ名(複数可) | `categoryId[]` | -| `--milestone` | `-M` | string[] | No | — | マイルストーン名(複数可) | `milestoneId[]` | -| `--priority` | `-P` | string | No | — | 優先度名 | `priorityId[]` | -| `--keyword` | `-k` | string | No | — | キーワード検索 | `keyword` | -| `--created-by` | | string | No | — | 作成者 | `createdUserId[]` | -| `--parent-child` | | number | No | — | 親子フィルタ(0-4) | `parentChild` | -| `--has-attachment` | | boolean | No | — | 添付ファイルあり | `attachment` | -| `--has-due-date` | | boolean | No | — | 期限日あり | `hasDueDate` | -| `--created-since` | | string | No | — | 作成日 FROM(yyyy-MM-dd) | `createdSince` | -| `--created-until` | | string | No | — | 作成日 TO(yyyy-MM-dd) | `createdUntil` | -| `--updated-since` | | string | No | — | 更新日 FROM(yyyy-MM-dd) | `updatedSince` | -| `--updated-until` | | string | No | — | 更新日 TO(yyyy-MM-dd) | `updatedUntil` | -| `--due-since` | | string | No | — | 期限日 FROM(yyyy-MM-dd) | `dueDateSince` | -| `--due-until` | | string | No | — | 期限日 TO(yyyy-MM-dd) | `dueDateUntil` | -| `--sort` | | string | No | `updated` | ソートキー | `sort` | -| `--order` | | string | No | `desc` | 並び順(`asc`/`desc`) | `order` | -| `--limit` | `-L` | number | No | 20 | 取得件数(1-100) | `count` | -| `--offset` | | number | No | 0 | オフセット | `offset` | - -- **対応 API**: `GET /api/v2/issues` -- **状態**: 完了 - -#### `backlog issue view ` - -課題の詳細を表示する。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | string | Yes | 課題キー(例: `PROJECT-123`) | -| `--comments` | boolean | No | コメントも表示する | -| `--web` | boolean | No | ブラウザで開く | - -- **対応 API**: `GET /api/v2/issues/:issueIdOrKey` -- **補助 API**: `GET /api/v2/issues/:key/comments`(`--comments` 使用時) -- **状態**: 完了 - -#### `backlog issue create` - -新しい課題を作成する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `--project` | `-p` | string | Yes* | — | プロジェクトキー | `projectId` | -| `--title` | `-t` | string | Yes* | — | 課題の件名 | `summary` | -| `--description` | `-d` | string | No | — | 課題の詳細(`-` で stdin) | `description` | -| `--type` | `-T` | string | Yes* | — | 課題種別名 | `issueTypeId` | -| `--priority` | `-P` | string | Yes* | — | 優先度名 | `priorityId` | -| `--assignee` | `-a` | string | No | — | 担当者 | `assigneeId` | -| `--category` | `-C` | string[] | No | — | カテゴリ(複数可) | `categoryId[]` | -| `--milestone` | `-M` | string[] | No | — | マイルストーン(複数可) | `milestoneId[]` | -| `--version` | `-v` | string[] | No | — | 発生バージョン(複数可) | `versionId[]` | -| `--start-date` | | string | No | — | 開始日(yyyy-MM-dd) | `startDate` | -| `--due-date` | | string | No | — | 期限日(yyyy-MM-dd) | `dueDate` | -| `--estimated-hours` | | number | No | — | 予定時間 | `estimatedHours` | -| `--actual-hours` | | number | No | — | 実績時間 | `actualHours` | -| `--parent` | | string | No | — | 親課題キー | `parentIssueId` | -| `--notify` | `-n` | string[] | No | — | 通知先ユーザー(複数可) | `notifiedUserId[]` | -| `--web` | | boolean | No | false | 作成後ブラウザで開く | — | - -> *: インタラクティブモードでは省略可能(プロンプトで入力を求める) - -- **対応 API**: `POST /api/v2/issues` -- **補助 API**: プロジェクト種別・優先度の名前→ID 変換用 - - `GET /api/v2/projects/:key/issueTypes` - - `GET /api/v2/priorities` - - `GET /api/v2/projects/:key/users` - - `GET /api/v2/projects/:key/categories` - - `GET /api/v2/projects/:key/versions` -- **状態**: 完了 - -#### `backlog issue edit ` - -既存の課題を更新する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `` | | string | Yes | — | 課題キー | `issueIdOrKey` (URL) | -| `--title` | `-t` | string | No | — | 件名 | `summary` | -| `--description` | `-d` | string | No | — | 詳細 | `description` | -| `--status` | `-S` | string | No | — | ステータス名 | `statusId` | -| `--type` | `-T` | string | No | — | 課題種別名 | `issueTypeId` | -| `--priority` | `-P` | string | No | — | 優先度名 | `priorityId` | -| `--assignee` | `-a` | string | No | — | 担当者 | `assigneeId` | -| `--category` | `-C` | string[] | No | — | カテゴリ(複数可) | `categoryId[]` | -| `--milestone` | `-M` | string[] | No | — | マイルストーン(複数可) | `milestoneId[]` | -| `--version` | `-v` | string[] | No | — | 発生バージョン(複数可) | `versionId[]` | -| `--start-date` | | string | No | — | 開始日 | `startDate` | -| `--due-date` | | string | No | — | 期限日 | `dueDate` | -| `--estimated-hours` | | number | No | — | 予定時間 | `estimatedHours` | -| `--actual-hours` | | number | No | — | 実績時間 | `actualHours` | -| `--resolution` | | string | No | — | 完了理由名 | `resolutionId` | -| `--comment` | `-c` | string | No | — | 更新コメント | `comment` | -| `--notify` | `-n` | string[] | No | — | 通知先ユーザー | `notifiedUserId[]` | - -- **対応 API**: `PATCH /api/v2/issues/:issueIdOrKey` -- **状態**: 完了 - -#### `backlog issue close ` - -課題を完了にする(ステータスを「完了」に変更)。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `` | | string | Yes | — | 課題キー | `issueIdOrKey` (URL) | -| `--comment` | `-c` | string | No | — | 完了コメント | `comment` | -| `--resolution` | `-r` | string | No | `完了` | 完了理由名 | `resolutionId` | - -- **対応 API**: `PATCH /api/v2/issues/:issueIdOrKey` (statusId を「完了」に設定) -- **補助 API**: - - `GET /api/v2/projects/:key/statuses` — 「完了」ステータスのID取得 - - `GET /api/v2/resolutions` — 完了理由のID取得 -- **状態**: 完了 - -#### `backlog issue reopen ` - -完了した課題を再オープンする。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `` | | string | Yes | — | 課題キー | `issueIdOrKey` (URL) | -| `--comment` | `-c` | string | No | — | 再オープンコメント | `comment` | - -- **対応 API**: `PATCH /api/v2/issues/:issueIdOrKey` (statusId を「未対応」に設定) -- **補助 API**: `GET /api/v2/projects/:key/statuses` -- **状態**: 完了 - -#### `backlog issue comment ` - -課題にコメントを追加する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `` | | string | Yes | — | 課題キー | `issueIdOrKey` (URL) | -| `--body` | `-b` | string | Yes* | — | コメント本文(`-` で stdin) | `content` | -| `--notify` | `-n` | string[] | No | — | 通知先ユーザー | `notifiedUserId[]` | - -> *: 省略時はエディタが起動する - -- **対応 API**: `POST /api/v2/issues/:issueIdOrKey/comments` -- **状態**: 完了 - -#### `backlog issue status` - -自分に関連する課題の状態サマリーを表示する。 - -| 引数/オプション | 型 | 必須 | デフォルト | 説明 | -|------------------|------|------|------------|------| -| (なし) | | | | 自分が担当する課題をステータス別に表示 | - -- **対応 API**: `GET /api/v2/issues` (assigneeId=自分, ステータス別に集計) -- **補助 API**: `GET /api/v2/users/myself` -- **状態**: 完了 - ---- - -### 1.4 `backlog project` — プロジェクト管理 - -Backlog のプロジェクト操作。gh CLI の `repo` に相当。 - -#### `backlog project list` - -参加中のプロジェクト一覧を取得する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `--archived` | | boolean | No | — | アーカイブ済みを含める | `archived` | -| `--all` | | boolean | No | false | 全プロジェクト(管理者のみ) | `all` | -| `--limit` | `-L` | number | No | 20 | 表示件数 | — (クライアントフィルタ) | - -- **対応 API**: `GET /api/v2/projects` -- **状態**: 完了 - -#### `backlog project view [project-key]` - -プロジェクトの詳細を表示する。 - -| 引数/オプション | 型 | 必須 | デフォルト | 説明 | -|------------------|------|------|------------|------| -| `[project-key]` | string | No | カレントプロジェクト | プロジェクトキー | -| `--web` | boolean | No | false | ブラウザで開く | - -- **対応 API**: `GET /api/v2/projects/:projectIdOrKey` -- **状態**: 完了 - -#### `backlog project activities [project-key]` - -プロジェクトの最近の更新を表示する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `[project-key]` | | string | No | カレントプロジェクト | プロジェクトキー | `:key` (URL) | -| `--limit` | `-L` | number | No | 20 | 取得件数 | `count` | -| `--activity-type` | | number[] | No | — | アクティビティタイプID | `activityTypeId[]` | - -- **対応 API**: `GET /api/v2/projects/:key/activities` -- **状態**: 完了 - ---- - -### 1.5 `backlog api` — 汎用 API リクエスト - -任意の Backlog API を直接呼び出す。 - -#### `backlog api ` - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | -|------------------|------|------|------|------------|------| -| `` | | string | Yes | — | API パス(例: `/api/v2/users/myself`) | -| `--method` | `-X` | string | No | `GET` | HTTP メソッド | -| `--field` | `-f` | string[] | No | — | リクエストフィールド(`key=value`) | -| `--raw-field` | `-F` | string[] | No | — | 型変換なしのフィールド | -| `--input` | | string | No | — | リクエストボディのファイルパス | -| `--header` | `-H` | string[] | No | — | 追加ヘッダー | -| `--include` | `-i` | boolean | No | false | レスポンスヘッダーを含める | -| `--paginate` | | boolean | No | false | ページネーションで全件取得 | -| `--silent` | | boolean | No | false | 出力を抑制 | - -- **対応 API**: 任意のエンドポイント -- **状態**: 完了 - ---- - -## Phase 2: 開発者向け機能 - -### 2.1 `backlog pr` — プルリクエスト管理 - -#### `backlog pr list` - -PR 一覧を取得する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `--repo` | `-R` | string | No | カレントリポジトリ | リポジトリ名 | `:repoIdOrName` (URL) | -| `--status` | `-S` | string[] | No | `open` | ステータス(`open`/`closed`/`merged`) | `statusId[]` | -| `--assignee` | `-a` | string | No | — | 担当者 | `assigneeId[]` | -| `--created-by` | | string | No | — | 作成者 | `createdUserId[]` | -| `--issue` | | string | No | — | 関連課題キー | `issueId[]` | -| `--limit` | `-L` | number | No | 20 | 取得件数(1-100) | `count` | -| `--offset` | | number | No | 0 | オフセット | `offset` | - -- **対応 API**: `GET /api/v2/projects/:key/git/repositories/:repo/pullRequests` -- **状態**: 完了 - -#### `backlog pr view ` - -PR の詳細を表示する。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | PR 番号 | -| `--repo` | string | No | リポジトリ名 | -| `--comments` | boolean | No | コメントも表示 | -| `--web` | boolean | No | ブラウザで開く | - -- **対応 API**: `GET .../pullRequests/:number` -- **状態**: 完了 - -#### `backlog pr create` - -新しい PR を作成する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `--repo` | `-R` | string | No | カレントリポジトリ | リポジトリ名 | `:repoIdOrName` (URL) | -| `--title` | `-t` | string | Yes* | — | PR タイトル | `summary` | -| `--body` | `-b` | string | Yes* | — | PR 説明 | `description` | -| `--base` | `-B` | string | Yes* | — | マージ先ブランチ | `base` | -| `--branch` | | string | No | 現在のブランチ | マージ元ブランチ | `branch` | -| `--assignee` | `-a` | string | No | — | 担当者 | `assigneeId` | -| `--issue` | | string | No | — | 関連課題キー | `issueId` | -| `--notify` | `-n` | string[] | No | — | 通知先ユーザー | `notifiedUserId[]` | -| `--web` | | boolean | No | false | 作成後ブラウザで開く | — | - -- **対応 API**: `POST .../pullRequests` -- **状態**: 完了 - -#### `backlog pr edit ` - -既存の PR を更新する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `` | | number | Yes | — | PR 番号 | `:number` (URL) | -| `--repo` | `-R` | string | No | カレントリポジトリ | リポジトリ名 | `:repoIdOrName` (URL) | -| `--title` | `-t` | string | No | — | タイトル | `summary` | -| `--body` | `-b` | string | No | — | 説明 | `description` | -| `--assignee` | `-a` | string | No | — | 担当者 | `assigneeId` | -| `--issue` | | string | No | — | 関連課題キー | `issueId` | - -- **対応 API**: `PATCH .../pullRequests/:number` -- **状態**: 完了 - -#### `backlog pr close ` - -PR をクローズする。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | PR 番号 | -| `--repo` | string | No | リポジトリ名 | -| `--comment` | string | No | クローズコメント | - -- **対応 API**: `PATCH .../pullRequests/:number` (status を Close に変更) -- **状態**: 完了 - -#### `backlog pr merge ` - -PR をマージする。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | PR 番号 | -| `--repo` | string | No | リポジトリ名 | -| `--comment` | string | No | マージコメント | - -- **対応 API**: `PATCH .../pullRequests/:number` (status を Merged に変更) -- **状態**: 完了 - -#### `backlog pr reopen ` - -クローズした PR を再オープンする。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | PR 番号 | -| `--repo` | string | No | リポジトリ名 | - -- **対応 API**: `PATCH .../pullRequests/:number` (status を Open に変更) -- **状態**: 完了 - -#### `backlog pr comment ` - -PR にコメントを追加する。 - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `` | | number | Yes | PR 番号 | `:number` (URL) | -| `--repo` | `-R` | string | No | リポジトリ名 | `:repoIdOrName` (URL) | -| `--body` | `-b` | string | Yes* | コメント本文 | `content` | -| `--notify` | `-n` | string[] | No | 通知先 | `notifiedUserId[]` | - -- **対応 API**: `POST .../pullRequests/:number/comments` -- **状態**: 完了 - -#### `backlog pr comments ` - -PR のコメント一覧を表示する。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | PR 番号 | -| `--repo` | string | No | リポジトリ名 | -| `--limit` | number | No | 取得件数 | - -- **対応 API**: `GET .../pullRequests/:number/comments` -- **状態**: 完了 - -#### `backlog pr status` - -自分に関連する PR のサマリーを表示する。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `--repo` | string | No | リポジトリ名 | - -- **対応 API**: `GET .../pullRequests` (assigneeId=自分でフィルタ) -- **状態**: 完了 - ---- - -### 2.2 `backlog repo` — Git リポジトリ - -#### `backlog repo list [project-key]` - -Git リポジトリ一覧を取得する。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `[project-key]` | string | No | プロジェクトキー | - -- **対応 API**: `GET /api/v2/projects/:key/git/repositories` -- **状態**: 完了 - -#### `backlog repo view [repo-name]` - -Git リポジトリの詳細を表示する。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `[repo-name]` | string | No | リポジトリ名 | -| `--web` | boolean | No | ブラウザで開く | - -- **対応 API**: `GET /api/v2/projects/:key/git/repositories/:repoIdOrName` -- **状態**: 完了 - -#### `backlog repo clone ` - -Git リポジトリをクローンする。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | string | Yes | リポジトリ名 | -| `--directory` | string | No | クローン先ディレクトリ | - -- **対応 API**: ローカル `git clone` を実行 -- **状態**: 完了 +| コマンド | 対応 API | 備考 | +|----------|----------|------| +| `issue delete` | `DELETE /api/v2/issues/:issueIdOrKey` | 課題の削除 | +| `issue comments` | `GET /api/v2/issues/:issueIdOrKey/comments` | コメント一覧表示 | +| `issue count` | `GET /api/v2/issues/count` | 課題件数取得 | +| `issue attachments` | `GET /api/v2/issues/:issueIdOrKey/attachments` | 添付ファイル一覧 | +| `issue participants` | `GET /api/v2/issues/:issueIdOrKey/participants` | 参加者一覧 | +| `pr count` | `GET .../pullRequests/count` | PR 件数取得 | +| `pr attachments` | `GET .../pullRequests/:number/attachments` | PR 添付ファイル一覧 | --- -### 2.3 `backlog notification` — 通知管理 - -#### `backlog notification list` - -通知一覧を表示する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `--limit` | `-L` | number | No | 20 | 取得件数 | `count` | -| `--min-id` | | number | No | — | 最小通知ID | `minId` | -| `--max-id` | | number | No | — | 最大通知ID | `maxId` | -| `--order` | | string | No | `desc` | 並び順 | `order` | - -- **対応 API**: `GET /api/v2/notifications` -- **状態**: 完了 - -#### `backlog notification count` - -未読通知数を表示する。 - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `--already-read` | | boolean | No | — | 既読を含める | `alreadyRead` | -| `--resource-already-read` | | boolean | No | — | リソース既読を含める | `resourceAlreadyRead` | - -- **対応 API**: `GET /api/v2/notifications/count` -- **状態**: 完了 - -#### `backlog notification read ` - -特定の通知を既読にする。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | 通知 ID | - -- **対応 API**: `POST /api/v2/notifications/:id/markAsRead` -- **状態**: 完了 - -#### `backlog notification read-all` - -全通知を既読にする。 - -- **対応 API**: `POST /api/v2/notifications/markAsRead` -- **状態**: 完了 - ---- - -### 2.4 `backlog status` — ダッシュボード - -#### `backlog status` - -自分に関連する情報の概要を表示する。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| (なし) | | | 担当課題・通知・最近の更新をまとめて表示 | - -- **対応 API(複数)**: - - `GET /api/v2/users/myself` - - `GET /api/v2/notifications` - - `GET /api/v2/users/myself/recentlyViewedIssues` - - `GET /api/v2/issues` (assigneeId=自分) -- **状態**: 完了 - ---- - -### 2.5 `backlog browse [target]` — ブラウザで開く - -#### `backlog browse [target]` - -対象をブラウザで開く。 - -| 引数/オプション | 型 | 必須 | デフォルト | 説明 | -|------------------|------|------|------------|------| -| `[target]` | string | No | プロジェクトトップ | 課題キーまたはパス | -| `--issues` | boolean | No | false | 課題一覧を開く | -| `--wiki` | boolean | No | false | Wiki を開く | -| `--git` | boolean | No | false | Git リポジトリページを開く | -| `--settings` | boolean | No | false | プロジェクト設定を開く | - -- **対応 API**: ローカルで URL を構築しブラウザで開く -- **状態**: 完了 - ---- - -## Phase 3: 管理機能 - -### 3.1 `backlog wiki` — Wiki 管理 - -#### `backlog wiki list` - -| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | -|------------------|------|------|------|------------|------|----------------| -| `--project` | `-p` | string | Yes* | — | プロジェクトキー | `projectIdOrKey` | -| `--keyword` | `-k` | string | No | — | キーワード検索 | `keyword` | -| `--sort` | | string | No | `updated` | ソートキー | `sort` | -| `--order` | | string | No | `desc` | 並び順 | `order` | -| `--offset` | | number | No | 0 | オフセット | `offset` | -| `--limit` | `-L` | number | No | 20 | 取得件数 | `count` | - -- **対応 API**: `GET /api/v2/wikis` -- **状態**: 完了 - -#### `backlog wiki view ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | Wiki ページ ID | -| `--web` | boolean | No | ブラウザで開く | - -- **対応 API**: `GET /api/v2/wikis/:wikiId` -- **状態**: 完了 - -#### `backlog wiki create` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `--project` | `-p` | string | Yes* | プロジェクトキー | `projectId` | -| `--name` | `-n` | string | Yes* | ページ名 | `name` | -| `--body` | `-b` | string | Yes* | 本文 | `content` | -| `--notify` | | boolean | No | メール通知 | `mailNotify` | - -- **対応 API**: `POST /api/v2/wikis` -- **状態**: 完了 - -#### `backlog wiki edit ` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `` | | number | Yes | ページ ID | `:wikiId` (URL) | -| `--name` | `-n` | string | No | ページ名 | `name` | -| `--body` | `-b` | string | No | 本文 | `content` | -| `--notify` | | boolean | No | メール通知 | `mailNotify` | - -- **対応 API**: `PATCH /api/v2/wikis/:wikiId` -- **状態**: 完了 - -#### `backlog wiki delete ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | ページ ID | -| `--confirm` | boolean | No | 確認プロンプトをスキップ | - -- **対応 API**: `DELETE /api/v2/wikis/:wikiId` -- **状態**: 完了 - -#### `backlog wiki count` - -- **対応 API**: `GET /api/v2/wikis/count` -- **状態**: 完了 - -#### `backlog wiki tags` - -- **対応 API**: `GET /api/v2/wikis/tags` -- **状態**: 完了 - -#### `backlog wiki history ` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `` | | number | Yes | ページ ID | `:wikiId` (URL) | -| `--limit` | `-L` | number | No | 取得件数 | `count` | -| `--offset` | | number | No | オフセット | `offset` | - -- **対応 API**: `GET /api/v2/wikis/:wikiId/history` -- **状態**: 完了 - -#### `backlog wiki attachments ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | ページ ID | - -- **対応 API**: `GET /api/v2/wikis/:wikiId/attachments` -- **状態**: 完了 - ---- - -### 3.2 `backlog project` (残り) — プロジェクト管理拡張 - -#### `backlog project create` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `--name` | `-n` | string | Yes | プロジェクト名 | `name` | -| `--key` | `-k` | string | Yes | プロジェクトキー(英大文字) | `key` | -| `--chart-enabled` | | boolean | No | チャート有効 | `chartEnabled` | -| `--subtasking-enabled` | | boolean | No | サブタスク有効 | `subtaskingEnabled` | -| `--project-leader-can-edit-project-leader` | | boolean | No | PL 変更権限 | `projectLeaderCanEditProjectLeader` | -| `--text-formatting-rule` | | string | No | 書式ルール(`markdown`/`backlog`) | `textFormattingRule` | - -- **対応 API**: `POST /api/v2/projects` -- **状態**: 完了 - -#### `backlog project edit ` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `` | | string | Yes | プロジェクトキー | `:projectIdOrKey` (URL) | -| `--name` | `-n` | string | No | プロジェクト名 | `name` | -| `--key` | `-k` | string | No | プロジェクトキー | `key` | -| `--chart-enabled` | | boolean | No | チャート有効 | `chartEnabled` | -| `--archived` | | boolean | No | アーカイブ | `archived` | - -- **対応 API**: `PATCH /api/v2/projects/:projectIdOrKey` -- **状態**: 完了 - -#### `backlog project delete ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | string | Yes | プロジェクトキー | -| `--confirm` | boolean | No | 確認スキップ | - -- **対応 API**: `DELETE /api/v2/projects/:projectIdOrKey` -- **状態**: 完了 - -#### `backlog project users ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | string | Yes | プロジェクトキー | - -- **対応 API**: `GET /api/v2/projects/:key/users` -- **状態**: 完了 - -#### `backlog project add-user ` - -| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|----------------| -| `` | string | Yes | プロジェクトキー | `:key` (URL) | -| `--user-id` | number | Yes | ユーザー ID | `userId` | - -- **対応 API**: `POST /api/v2/projects/:key/users` -- **状態**: 完了 - -#### `backlog project remove-user ` - -| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|----------------| -| `` | string | Yes | プロジェクトキー | `:key` (URL) | -| `--user-id` | number | Yes | ユーザー ID | `userId` | - -- **対応 API**: `DELETE /api/v2/projects/:key/users` -- **状態**: 完了 - ---- - -### 3.3 `backlog user` — ユーザー管理 - -#### `backlog user list` - -- **対応 API**: `GET /api/v2/users` -- **状態**: 完了 - -#### `backlog user view ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | ユーザー ID | - -- **対応 API**: `GET /api/v2/users/:userId` -- **状態**: 完了 - -#### `backlog user me` - -- **対応 API**: `GET /api/v2/users/myself` -- **状態**: 完了 - -#### `backlog user activities ` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `` | | number | Yes | ユーザー ID | `:userId` (URL) | -| `--limit` | `-L` | number | No | 取得件数 | `count` | -| `--activity-type` | | number[] | No | タイプフィルタ | `activityTypeId[]` | - -- **対応 API**: `GET /api/v2/users/:userId/activities` -- **状態**: 完了 - ---- - -### 3.4 `backlog team` — チーム管理 - -#### `backlog team list` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `--order` | | string | No | 並び順 | `order` | -| `--offset` | | number | No | オフセット | `offset` | -| `--limit` | `-L` | number | No | 取得件数 | `count` | - -- **対応 API**: `GET /api/v2/teams` -- **状態**: 完了 - -#### `backlog team view ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | チーム ID | - -- **対応 API**: `GET /api/v2/teams/:teamId` -- **状態**: 完了 - -#### `backlog team create` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `--name` | `-n` | string | Yes | チーム名 | `name` | -| `--members` | | number[] | No | メンバー ID | `members[]` | - -- **対応 API**: `POST /api/v2/teams` -- **状態**: 完了 - -#### `backlog team edit ` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `` | | number | Yes | チーム ID | `:teamId` (URL) | -| `--name` | `-n` | string | No | チーム名 | `name` | -| `--members` | | number[] | No | メンバー ID | `members[]` | - -- **対応 API**: `PATCH /api/v2/teams/:teamId` -- **状態**: 完了 - -#### `backlog team delete ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | チーム ID | -| `--confirm` | boolean | No | 確認スキップ | - -- **対応 API**: `DELETE /api/v2/teams/:teamId` -- **状態**: 完了 - ---- - -### 3.5 `backlog category` — カテゴリ管理 - -#### `backlog category list` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | -|------------------|------|------|------|------| -| `--project` | `-p` | string | Yes* | プロジェクトキー | - -- **対応 API**: `GET /api/v2/projects/:key/categories` -- **状態**: 完了 - -#### `backlog category create` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `--project` | `-p` | string | Yes* | プロジェクトキー | `:key` (URL) | -| `--name` | `-n` | string | Yes | カテゴリ名 | `name` | - -- **対応 API**: `POST /api/v2/projects/:key/categories` -- **状態**: 完了 - -#### `backlog category edit ` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `` | | number | Yes | カテゴリ ID | `:id` (URL) | -| `--name` | `-n` | string | Yes | カテゴリ名 | `name` | - -- **対応 API**: `PATCH /api/v2/projects/:key/categories/:id` -- **状態**: 完了 - -#### `backlog category delete ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | カテゴリ ID | -| `--confirm` | boolean | No | 確認スキップ | - -- **対応 API**: `DELETE /api/v2/projects/:key/categories/:id` -- **状態**: 完了 - ---- - -### 3.6 `backlog milestone` — マイルストーン管理 - -#### `backlog milestone list` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | -|------------------|------|------|------|------| -| `--project` | `-p` | string | Yes* | プロジェクトキー | - -- **対応 API**: `GET /api/v2/projects/:key/versions` -- **状態**: 完了 - -#### `backlog milestone create` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `--project` | `-p` | string | Yes* | プロジェクトキー | `:key` (URL) | -| `--name` | `-n` | string | Yes | マイルストーン名 | `name` | -| `--description` | `-d` | string | No | 説明 | `description` | -| `--start-date` | | string | No | 開始日(yyyy-MM-dd) | `startDate` | -| `--release-due-date` | | string | No | リリース予定日 | `releaseDueDate` | - -- **対応 API**: `POST /api/v2/projects/:key/versions` -- **状態**: 完了 - -#### `backlog milestone edit ` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `` | | number | Yes | マイルストーン ID | `:id` (URL) | -| `--name` | `-n` | string | No | 名前 | `name` | -| `--description` | `-d` | string | No | 説明 | `description` | -| `--start-date` | | string | No | 開始日 | `startDate` | -| `--release-due-date` | | string | No | リリース予定日 | `releaseDueDate` | -| `--archived` | | boolean | No | アーカイブ | `archived` | - -- **対応 API**: `PATCH /api/v2/projects/:key/versions/:id` -- **状態**: 完了 - -#### `backlog milestone delete ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | マイルストーン ID | -| `--confirm` | boolean | No | 確認スキップ | - -- **対応 API**: `DELETE /api/v2/projects/:key/versions/:id` -- **状態**: 完了 - ---- - -### 3.7 `backlog issue-type` — 課題種別管理 - -#### `backlog issue-type list` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | -|------------------|------|------|------|------| -| `--project` | `-p` | string | Yes* | プロジェクトキー | - -- **対応 API**: `GET /api/v2/projects/:key/issueTypes` -- **状態**: 完了 - -#### `backlog issue-type create` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `--project` | `-p` | string | Yes* | プロジェクトキー | `:key` (URL) | -| `--name` | `-n` | string | Yes | 種別名 | `name` | -| `--color` | | string | Yes | 表示色(`#hex`) | `color` | - -- **対応 API**: `POST /api/v2/projects/:key/issueTypes` -- **状態**: 完了 - -#### `backlog issue-type edit ` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `` | | number | Yes | 種別 ID | `:id` (URL) | -| `--name` | `-n` | string | No | 種別名 | `name` | -| `--color` | | string | No | 表示色 | `color` | - -- **対応 API**: `PATCH /api/v2/projects/:key/issueTypes/:id` -- **状態**: 完了 - -#### `backlog issue-type delete ` - -| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|----------------| -| `` | number | Yes | 種別 ID | `:id` (URL) | -| `--substitute-issue-type-id` | number | Yes | 代替種別 ID | `substituteIssueTypeId` | -| `--confirm` | boolean | No | 確認スキップ | — | - -- **対応 API**: `DELETE /api/v2/projects/:key/issueTypes/:id` -- **状態**: 完了 - ---- - -### 3.8 `backlog status-type` — ステータス管理 - -#### `backlog status-type list` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | -|------------------|------|------|------|------| -| `--project` | `-p` | string | Yes* | プロジェクトキー | - -- **対応 API**: `GET /api/v2/projects/:key/statuses` -- **状態**: 完了 - -#### `backlog status-type create` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `--project` | `-p` | string | Yes* | プロジェクトキー | `:key` (URL) | -| `--name` | `-n` | string | Yes | ステータス名 | `name` | -| `--color` | | string | Yes | 表示色(`#hex`) | `color` | - -- **対応 API**: `POST /api/v2/projects/:key/statuses` -- **状態**: 完了 - -#### `backlog status-type edit ` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `` | | number | Yes | ステータス ID | `:statusId` (URL) | -| `--name` | `-n` | string | No | ステータス名 | `name` | -| `--color` | | string | No | 表示色 | `color` | - -- **対応 API**: `PATCH /api/v2/projects/:key/statuses/:statusId` -- **状態**: 完了 - -#### `backlog status-type delete ` - -| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|----------------| -| `` | number | Yes | ステータス ID | `:statusId` (URL) | -| `--substitute-status-id` | number | Yes | 代替ステータス ID | `substituteStatusId` | -| `--confirm` | boolean | No | 確認スキップ | — | - -- **対応 API**: `DELETE /api/v2/projects/:key/statuses/:statusId` -- **状態**: 完了 - ---- - -## Phase 4: 拡張機能 - -### 4.1 `backlog space` — スペース管理 - -#### `backlog space info` - -- **対応 API**: `GET /api/v2/space` -- **状態**: 完了 - -#### `backlog space activities` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `--limit` | `-L` | number | No | 取得件数 | `count` | -| `--activity-type` | | number[] | No | タイプフィルタ | `activityTypeId[]` | - -- **対応 API**: `GET /api/v2/space/activities` -- **状態**: 完了 - -#### `backlog space disk-usage` - -- **対応 API**: `GET /api/v2/space/diskUsage` -- **状態**: 完了 - -#### `backlog space notification` - -- **対応 API**: `GET /api/v2/space/notification` -- **状態**: 完了 - ---- - -### 4.2 `backlog webhook` — Webhook 管理 - -#### `backlog webhook list` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | -|------------------|------|------|------|------| -| `--project` | `-p` | string | Yes* | プロジェクトキー | - -- **対応 API**: `GET /api/v2/projects/:key/webhooks` -- **状態**: 完了 - -#### `backlog webhook view ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | Webhook ID | - -- **対応 API**: `GET /api/v2/projects/:key/webhooks/:id` -- **状態**: 完了 - -#### `backlog webhook create` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `--project` | `-p` | string | Yes* | プロジェクトキー | `:key` (URL) | -| `--name` | `-n` | string | Yes | Webhook 名 | `name` | -| `--hook-url` | | string | Yes | 通知先 URL | `hookUrl` | -| `--description` | `-d` | string | No | 説明 | `description` | -| `--all-event` | | boolean | No | 全イベント対象 | `allEvent` | -| `--activity-type-ids` | | number[] | No | 対象イベントタイプ | `activityTypeIds[]` | - -- **対応 API**: `POST /api/v2/projects/:key/webhooks` -- **状態**: 完了 - -#### `backlog webhook edit ` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `` | | number | Yes | Webhook ID | `:webhookId` (URL) | -| `--name` | `-n` | string | No | 名前 | `name` | -| `--hook-url` | | string | No | URL | `hookUrl` | -| `--description` | `-d` | string | No | 説明 | `description` | -| `--all-event` | | boolean | No | 全イベント | `allEvent` | -| `--activity-type-ids` | | number[] | No | イベントタイプ | `activityTypeIds[]` | - -- **対応 API**: `PATCH /api/v2/projects/:key/webhooks/:webhookId` -- **状態**: 完了 - -#### `backlog webhook delete ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | Webhook ID | -| `--confirm` | boolean | No | 確認スキップ | - -- **対応 API**: `DELETE /api/v2/projects/:key/webhooks/:webhookId` -- **状態**: 完了 - ---- - -### 4.3 `backlog star` — スター - -#### `backlog star add` - -| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|----------------| -| `--issue` | string | No | 課題キー | `issueId` | -| `--comment` | number | No | コメント ID | `commentId` | -| `--wiki` | number | No | Wiki ID | `wikiId` | -| `--pr-comment` | number | No | PR コメント ID | `pullRequestCommentId` | - -- **対応 API**: `POST /api/v2/stars` -- **状態**: 完了 - -#### `backlog star list [user-id]` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `[user-id]` | | number | No | ユーザー ID(省略時は自分) | `:userId` (URL) | -| `--limit` | `-L` | number | No | 取得件数 | `count` | -| `--order` | | string | No | 並び順 | `order` | - -- **対応 API**: `GET /api/v2/users/:userId/stars` -- **状態**: 完了 - -#### `backlog star count [user-id]` - -| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|----------------| -| `[user-id]` | number | No | ユーザー ID | `:userId` (URL) | -| `--since` | string | No | 開始日 | `since` | -| `--until` | string | No | 終了日 | `until` | - -- **対応 API**: `GET /api/v2/users/:userId/stars/count` -- **状態**: 完了 - ---- - -### 4.4 `backlog watching` — ウォッチ - -#### `backlog watching list [user-id]` - -| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|------|----------------| -| `[user-id]` | | number | No | ユーザー ID | `:userId` (URL) | -| `--limit` | `-L` | number | No | 取得件数 | `count` | -| `--order` | | string | No | 並び順 | `order` | -| `--sort` | | string | No | ソートキー | `sort` | - -- **対応 API**: `GET /api/v2/users/:userId/watchings` -- **状態**: 完了 - -#### `backlog watching add` - -| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | -|------------------|------|------|------|----------------| -| `--issue` | string | Yes | 課題キー | `issueIdOrKey` | -| `--note` | string | No | メモ | `note` | - -- **対応 API**: `POST /api/v2/watchings` -- **状態**: 完了 - -#### `backlog watching view ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | ウォッチ ID | - -- **対応 API**: `GET /api/v2/watchings/:watchingId` -- **状態**: 完了 - -#### `backlog watching delete ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | ウォッチ ID | -| `--confirm` | boolean | No | 確認スキップ | - -- **対応 API**: `DELETE /api/v2/watchings/:watchingId` -- **状態**: 完了 - -#### `backlog watching read ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | number | Yes | ウォッチ ID | - -- **対応 API**: `POST /api/v2/watchings/:watchingId/markAsRead` -- **状態**: 完了 - ---- - -### 4.5 `backlog alias` — エイリアス - -#### `backlog alias set ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | string | Yes | エイリアス名 | -| `` | string | Yes | 展開されるコマンド | -| `--shell` | boolean | No | シェルコマンドとして登録 | - -- **対応 API**: ローカル設定 -- **状態**: 完了 - -#### `backlog alias list` - -- **対応 API**: ローカル設定 -- **状態**: 完了 - -#### `backlog alias delete ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | string | Yes | エイリアス名 | - -- **対応 API**: ローカル設定 -- **状態**: 完了 - ---- - -### 4.6 `backlog auth` (残り) — 認証拡張 - -#### `backlog auth refresh` - -OAuth トークンをリフレッシュする。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `--hostname` | string | No | 対象スペース | - -- **対応 API**: OAuth 2.0 Token Refresh -- **状態**: 完了 - -#### `backlog auth switch` - -アクティブスペースを切り替える。 - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `--hostname` | string | No | 切り替え先スペース | - -- **対応 API**: ローカル設定 -- **状態**: 完了 - ---- - -### 4.7 `backlog completion` — シェル補完 - -#### `backlog completion ` - -| 引数/オプション | 型 | 必須 | 説明 | -|------------------|------|------|------| -| `` | string | Yes | シェル種別(`bash`/`zsh`/`fish`) | - -- **対応 API**: ローカル処理 -- **状態**: 完了 - ---- - -## 設計原則 - -### 1. 名前解決 - -CLI ではユーザーフレンドリーな名前を使い、API リクエスト時に内部で ID に変換する。 - -| CLI での入力 | API での送信 | 変換元 API | -|--------------|-------------|-----------| -| ステータス名(例: `処理中`) | `statusId` | `GET /api/v2/projects/:key/statuses` | -| 課題種別名(例: `バグ`) | `issueTypeId` | `GET /api/v2/projects/:key/issueTypes` | -| 優先度名(例: `高`) | `priorityId` | `GET /api/v2/priorities` | -| カテゴリ名 | `categoryId` | `GET /api/v2/projects/:key/categories` | -| マイルストーン名 | `milestoneId` | `GET /api/v2/projects/:key/versions` | -| ユーザー名 / `@me` | `userId` / `assigneeId` | `GET /api/v2/users` / `GET /api/v2/users/myself` | -| 完了理由名 | `resolutionId` | `GET /api/v2/resolutions` | - -### 2. 出力形式 - -| フラグ | 出力形式 | 用途 | -|--------|----------|------| -| (なし) | テーブル形式 | 人間が読む用 | -| `--json` | JSON | プログラム連携 | -| `--json field1,field2` | フィルタ済み JSON | 特定フィールドのみ | -| `--jq '.[]'` | jq 変換済み出力 | 高度なフィルタ | -| `--template '{{.Key}}'` | Go template | カスタムフォーマット | - -### 3. インタラクティブモード - -必須引数が省略された場合、対話的にプロンプトを表示してユーザーに入力を求める。 - -- TTY 接続時のみ有効 -- `--no-input` フラグで無効化 -- 選択式のフィールドはリスト選択 UI を提供 - -### 4. プロジェクトコンテキスト - -グローバルな `--project` フラグは持たない。Backlog の課題キーは `PROJECT-123` 形式で -プロジェクトキーを含むため、課題キーを受け取るコマンドではプロジェクト指定が不要。 - -プロジェクト指定が必要なコマンド(`issue list`, `issue create`, `category list` 等)は -各コマンドのローカルオプション `--project` / `-p` で受け取る。 - -プロジェクトが必要だが指定されていない場合の解決順: - -1. コマンドローカルの `--project` / `-p` フラグ -2. Git リモート URL からの推測(Backlog Git のリモートが設定されている場合) -3. インタラクティブ選択(TTY 接続時) - -### 5. エラーハンドリング +## 関連ドキュメント -- HTTP 4xx/5xx エラーは Backlog API のエラーメッセージをそのまま表示 -- 認証エラーは `backlog auth login` を案内 -- レートリミットは自動リトライ(`Retry-After` ヘッダーを尊重) +| ファイル | 内容 | +|----------|------| +| `claude.md` | 開発ガイドライン・設計原則・テストルール | +| `plans/command-specifications.md` | 全コマンドの引数・オプション・API マッピング詳細 | +| `plans/command-overview.md` | コマンドツリーと実装優先度 | +| `plans/gh-backlog-mapping.md` | gh CLI → backlog CLI のマッピング | +| `plans/backlog-api-reference.md` | Backlog API エンドポイントリファレンス | diff --git a/claude.md b/claude.md index ad0cc38..bdea5aa 100644 --- a/claude.md +++ b/claude.md @@ -79,6 +79,60 @@ API Key(クエリパラメータ)と OAuth 2.0(Bearer トークン)の 2. `BACKLOG_SPACE` 環境変数 3. 設定ファイルの `defaultSpace` +## 設計原則 + +### 名前解決 + +CLI ではユーザーフレンドリーな名前を使い、API リクエスト時に内部で ID に変換する。 + +| CLI での入力 | API での送信 | 変換元 API | +|--------------|-------------|-----------| +| ステータス名(例: `処理中`) | `statusId` | `GET /api/v2/projects/:key/statuses` | +| 課題種別名(例: `バグ`) | `issueTypeId` | `GET /api/v2/projects/:key/issueTypes` | +| 優先度名(例: `高`) | `priorityId` | `GET /api/v2/priorities` | +| カテゴリ名 | `categoryId` | `GET /api/v2/projects/:key/categories` | +| マイルストーン名 | `milestoneId` | `GET /api/v2/projects/:key/versions` | +| ユーザー名 / `@me` | `userId` / `assigneeId` | `GET /api/v2/users` / `GET /api/v2/users/myself` | +| 完了理由名 | `resolutionId` | `GET /api/v2/resolutions` | + +### 出力形式 + +| フラグ | 出力形式 | 用途 | +|--------|----------|------| +| (なし) | テーブル形式 | 人間が読む用 | +| `--json` | JSON | プログラム連携 | +| `--json field1,field2` | フィルタ済み JSON | 特定フィールドのみ | +| `--jq '.[]'` | jq 変換済み出力 | 高度なフィルタ | +| `--template '{{.Key}}'` | Go template | カスタムフォーマット | + +### インタラクティブモード + +必須引数が省略された場合、対話的にプロンプトを表示してユーザーに入力を求める。 + +- TTY 接続時のみ有効 +- `--no-input` フラグで無効化 +- 選択式のフィールドはリスト選択 UI を提供 + +### プロジェクトコンテキスト + +グローバルな `--project` フラグは持たない。Backlog の課題キーは `PROJECT-123` 形式で +プロジェクトキーを含むため、課題キーを受け取るコマンドではプロジェクト指定が不要。 + +プロジェクト指定が必要なコマンド(`issue list`, `issue create`, `category list` 等)は +各コマンドのローカルオプション `--project` / `-p` で受け取る。 + +プロジェクトが必要だが指定されていない場合の解決順: + +1. コマンドローカルの `--project` / `-p` フラグ +2. Git リモート URL からの推測(Backlog Git のリモートが設定されている場合) +3. インタラクティブ選択(TTY 接続時) + +### エラーハンドリング + +- HTTP 4xx/5xx エラーは Backlog API のエラーメッセージをそのまま表示 +- 認証エラーは `backlog auth login` を案内 +- レートリミットは自動リトライ(`Retry-After` ヘッダーを尊重) + ## 開発ルール - `bun install` で依存インストール diff --git a/plans/command-overview.md b/plans/command-overview.md index 1d8dd7d..c14ded0 100644 --- a/plans/command-overview.md +++ b/plans/command-overview.md @@ -23,13 +23,13 @@ backlog │ ├── edit │ ├── close │ ├── reopen -│ ├── delete +│ ├── delete # 未実装 │ ├── comment -│ ├── comments -│ ├── count +│ ├── comments # 未実装 +│ ├── count # 未実装 │ ├── status -│ ├── attachments -│ └── participants +│ ├── attachments # 未実装 +│ └── participants # 未実装 │ ├── pr # プルリクエスト管理 ★ 重要 │ ├── list @@ -41,9 +41,9 @@ backlog │ ├── reopen │ ├── comment │ ├── comments -│ ├── count +│ ├── count # 未実装 │ ├── status -│ └── attachments +│ └── attachments # 未実装 │ ├── project # プロジェクト管理 │ ├── list diff --git a/plans/command-specifications.md b/plans/command-specifications.md new file mode 100644 index 0000000..7b3cc08 --- /dev/null +++ b/plans/command-specifications.md @@ -0,0 +1,1099 @@ +# backlog-cli コマンド仕様書 + +> 各コマンドの引数・オプション・対応 API エンドポイントの詳細定義。 +> 実装時の参照ドキュメントとして使用する。 + +--- + +## 共通オプション(グローバルフラグ) + +すべてのコマンドで使用可能な共通フラグ。 + +| フラグ | 短縮 | 型 | デフォルト | 説明 | +|--------|------|------|------------|------| +| `--space` | `-s` | string | デフォルトスペース | 対象の Backlog スペース(AWS CLI の `--profile` 相当) | +| `--json` | | string[] | — | JSON出力。フィールド名を指定可 | +| `--jq` | `-q` | string | — | jq式でJSON出力をフィルタ | +| `--template` | `-t` | string | — | Go template形式の出力フォーマット | +| `--no-pager` | | boolean | false | ページャーを無効化 | +| `--help` | `-h` | boolean | — | ヘルプ表示 | +| `--version` | `-V` | boolean | — | バージョン表示 | + +--- + +## Phase 1: MVP + +### 1.1 `backlog auth` — 認証管理 + +#### `backlog auth login` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | +|------------------|------|------|------|------------|------| +| `--hostname` | `-h` | string | No | — | スペースホスト名(例: `xxx.backlog.com`) | +| `--method` | `-m` | string | No | `api-key` | 認証方式(`api-key` / `oauth`) | +| `--with-token` | | boolean | No | false | 標準入力からトークンを読み込む | + +- **対応 API**: OAuth 2.0 フロー / ローカル設定への書き込み + +#### `backlog auth logout` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | +|------------------|------|------|------|------------|------| +| `--hostname` | `-h` | string | No | アクティブスペース | 対象スペースホスト名 | + +- **対応 API**: ローカル設定の削除 + +#### `backlog auth status` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | +|------------------|------|------|------|------------|------| +| `--hostname` | `-h` | string | No | 全スペース | 対象スペースホスト名 | +| `--show-token` | | boolean | No | false | トークンを表示する | + +- **対応 API**: `GET /api/v2/users/myself` + +#### `backlog auth token` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | +|------------------|------|------|------|------------|------| +| `--hostname` | `-h` | string | No | アクティブスペース | 対象スペースホスト名 | + +- **対応 API**: ローカル設定の読み取り + +--- + +### 1.2 `backlog config` — CLI 設定管理 + +#### `backlog config get ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | string | Yes | 設定キー(例: `default_space`, `pager`) | +| `--hostname` | string | No | スペース単位の設定を取得 | + +- **対応 API**: ローカル設定ファイル読み取り + +#### `backlog config set ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | string | Yes | 設定キー | +| `` | string | Yes | 設定値 | +| `--hostname` | string | No | スペース単位で設定 | + +- **対応 API**: ローカル設定ファイル書き込み + +#### `backlog config list` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `--hostname` | string | No | スペース単位でフィルタ | + +- **対応 API**: ローカル設定ファイル読み取り + +--- + +### 1.3 `backlog issue` — 課題管理 + +#### `backlog issue list` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `--project` | `-p` | string[] | No | — | プロジェクトキー(複数可) | `projectId[]` | +| `--assignee` | `-a` | string | No | — | 担当者(ユーザー名 or `@me`) | `assigneeId[]` | +| `--status` | `-S` | string[] | No | — | ステータス名(複数可) | `statusId[]` | +| `--type` | `-T` | string[] | No | — | 課題種別名(複数可) | `issueTypeId[]` | +| `--category` | `-C` | string[] | No | — | カテゴリ名(複数可) | `categoryId[]` | +| `--milestone` | `-M` | string[] | No | — | マイルストーン名(複数可) | `milestoneId[]` | +| `--priority` | `-P` | string | No | — | 優先度名 | `priorityId[]` | +| `--keyword` | `-k` | string | No | — | キーワード検索 | `keyword` | +| `--created-by` | | string | No | — | 作成者 | `createdUserId[]` | +| `--parent-child` | | number | No | — | 親子フィルタ(0-4) | `parentChild` | +| `--has-attachment` | | boolean | No | — | 添付ファイルあり | `attachment` | +| `--has-due-date` | | boolean | No | — | 期限日あり | `hasDueDate` | +| `--created-since` | | string | No | — | 作成日 FROM(yyyy-MM-dd) | `createdSince` | +| `--created-until` | | string | No | — | 作成日 TO(yyyy-MM-dd) | `createdUntil` | +| `--updated-since` | | string | No | — | 更新日 FROM(yyyy-MM-dd) | `updatedSince` | +| `--updated-until` | | string | No | — | 更新日 TO(yyyy-MM-dd) | `updatedUntil` | +| `--due-since` | | string | No | — | 期限日 FROM(yyyy-MM-dd) | `dueDateSince` | +| `--due-until` | | string | No | — | 期限日 TO(yyyy-MM-dd) | `dueDateUntil` | +| `--sort` | | string | No | `updated` | ソートキー | `sort` | +| `--order` | | string | No | `desc` | 並び順(`asc`/`desc`) | `order` | +| `--limit` | `-L` | number | No | 20 | 取得件数(1-100) | `count` | +| `--offset` | | number | No | 0 | オフセット | `offset` | + +- **対応 API**: `GET /api/v2/issues` + +#### `backlog issue view ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | string | Yes | 課題キー(例: `PROJECT-123`) | +| `--comments` | boolean | No | コメントも表示する | +| `--web` | boolean | No | ブラウザで開く | + +- **対応 API**: `GET /api/v2/issues/:issueIdOrKey` +- **補助 API**: `GET /api/v2/issues/:key/comments`(`--comments` 使用時) + +#### `backlog issue create` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `--project` | `-p` | string | Yes* | — | プロジェクトキー | `projectId` | +| `--title` | `-t` | string | Yes* | — | 課題の件名 | `summary` | +| `--description` | `-d` | string | No | — | 課題の詳細(`-` で stdin) | `description` | +| `--type` | `-T` | string | Yes* | — | 課題種別名 | `issueTypeId` | +| `--priority` | `-P` | string | Yes* | — | 優先度名 | `priorityId` | +| `--assignee` | `-a` | string | No | — | 担当者 | `assigneeId` | +| `--category` | `-C` | string[] | No | — | カテゴリ(複数可) | `categoryId[]` | +| `--milestone` | `-M` | string[] | No | — | マイルストーン(複数可) | `milestoneId[]` | +| `--version` | `-v` | string[] | No | — | 発生バージョン(複数可) | `versionId[]` | +| `--start-date` | | string | No | — | 開始日(yyyy-MM-dd) | `startDate` | +| `--due-date` | | string | No | — | 期限日(yyyy-MM-dd) | `dueDate` | +| `--estimated-hours` | | number | No | — | 予定時間 | `estimatedHours` | +| `--actual-hours` | | number | No | — | 実績時間 | `actualHours` | +| `--parent` | | string | No | — | 親課題キー | `parentIssueId` | +| `--notify` | `-n` | string[] | No | — | 通知先ユーザー(複数可) | `notifiedUserId[]` | +| `--web` | | boolean | No | false | 作成後ブラウザで開く | — | + +> *: インタラクティブモードでは省略可能 + +- **対応 API**: `POST /api/v2/issues` +- **補助 API**: `GET /api/v2/projects/:key/issueTypes`, `GET /api/v2/priorities`, `GET /api/v2/projects/:key/users`, `GET /api/v2/projects/:key/categories`, `GET /api/v2/projects/:key/versions` + +#### `backlog issue edit ` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `` | | string | Yes | — | 課題キー | `issueIdOrKey` (URL) | +| `--title` | `-t` | string | No | — | 件名 | `summary` | +| `--description` | `-d` | string | No | — | 詳細 | `description` | +| `--status` | `-S` | string | No | — | ステータス名 | `statusId` | +| `--type` | `-T` | string | No | — | 課題種別名 | `issueTypeId` | +| `--priority` | `-P` | string | No | — | 優先度名 | `priorityId` | +| `--assignee` | `-a` | string | No | — | 担当者 | `assigneeId` | +| `--category` | `-C` | string[] | No | — | カテゴリ(複数可) | `categoryId[]` | +| `--milestone` | `-M` | string[] | No | — | マイルストーン(複数可) | `milestoneId[]` | +| `--version` | `-v` | string[] | No | — | 発生バージョン(複数可) | `versionId[]` | +| `--start-date` | | string | No | — | 開始日 | `startDate` | +| `--due-date` | | string | No | — | 期限日 | `dueDate` | +| `--estimated-hours` | | number | No | — | 予定時間 | `estimatedHours` | +| `--actual-hours` | | number | No | — | 実績時間 | `actualHours` | +| `--resolution` | | string | No | — | 完了理由名 | `resolutionId` | +| `--comment` | `-c` | string | No | — | 更新コメント | `comment` | +| `--notify` | `-n` | string[] | No | — | 通知先ユーザー | `notifiedUserId[]` | + +- **対応 API**: `PATCH /api/v2/issues/:issueIdOrKey` + +#### `backlog issue close ` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `` | | string | Yes | — | 課題キー | `issueIdOrKey` (URL) | +| `--comment` | `-c` | string | No | — | 完了コメント | `comment` | +| `--resolution` | `-r` | string | No | `完了` | 完了理由名 | `resolutionId` | + +- **対応 API**: `PATCH /api/v2/issues/:issueIdOrKey` (statusId を「完了」に設定) +- **補助 API**: `GET /api/v2/projects/:key/statuses`, `GET /api/v2/resolutions` + +#### `backlog issue reopen ` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `` | | string | Yes | — | 課題キー | `issueIdOrKey` (URL) | +| `--comment` | `-c` | string | No | — | 再オープンコメント | `comment` | + +- **対応 API**: `PATCH /api/v2/issues/:issueIdOrKey` (statusId を「未対応」に設定) +- **補助 API**: `GET /api/v2/projects/:key/statuses` + +#### `backlog issue comment ` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `` | | string | Yes | — | 課題キー | `issueIdOrKey` (URL) | +| `--body` | `-b` | string | Yes* | — | コメント本文(`-` で stdin) | `content` | +| `--notify` | `-n` | string[] | No | — | 通知先ユーザー | `notifiedUserId[]` | + +> *: 省略時はエディタが起動する + +- **対応 API**: `POST /api/v2/issues/:issueIdOrKey/comments` + +#### `backlog issue status` + +- **対応 API**: `GET /api/v2/issues` (assigneeId=自分, ステータス別に集計) +- **補助 API**: `GET /api/v2/users/myself` + +--- + +### 1.4 `backlog project` — プロジェクト管理 + +#### `backlog project list` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `--archived` | | boolean | No | — | アーカイブ済みを含める | `archived` | +| `--all` | | boolean | No | false | 全プロジェクト(管理者のみ) | `all` | +| `--limit` | `-L` | number | No | 20 | 表示件数 | — (クライアントフィルタ) | + +- **対応 API**: `GET /api/v2/projects` + +#### `backlog project view [project-key]` + +| 引数/オプション | 型 | 必須 | デフォルト | 説明 | +|------------------|------|------|------------|------| +| `[project-key]` | string | No | カレントプロジェクト | プロジェクトキー | +| `--web` | boolean | No | false | ブラウザで開く | + +- **対応 API**: `GET /api/v2/projects/:projectIdOrKey` + +#### `backlog project activities [project-key]` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `[project-key]` | | string | No | カレントプロジェクト | プロジェクトキー | `:key` (URL) | +| `--limit` | `-L` | number | No | 20 | 取得件数 | `count` | +| `--activity-type` | | number[] | No | — | アクティビティタイプID | `activityTypeId[]` | + +- **対応 API**: `GET /api/v2/projects/:key/activities` + +--- + +### 1.5 `backlog api` — 汎用 API リクエスト + +#### `backlog api ` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | +|------------------|------|------|------|------------|------| +| `` | | string | Yes | — | API パス(例: `/api/v2/users/myself`) | +| `--method` | `-X` | string | No | `GET` | HTTP メソッド | +| `--field` | `-f` | string[] | No | — | リクエストフィールド(`key=value`) | +| `--raw-field` | `-F` | string[] | No | — | 型変換なしのフィールド | +| `--input` | | string | No | — | リクエストボディのファイルパス | +| `--header` | `-H` | string[] | No | — | 追加ヘッダー | +| `--include` | `-i` | boolean | No | false | レスポンスヘッダーを含める | +| `--paginate` | | boolean | No | false | ページネーションで全件取得 | +| `--silent` | | boolean | No | false | 出力を抑制 | + +- **対応 API**: 任意のエンドポイント + +--- + +## Phase 2: 開発者向け機能 + +### 2.1 `backlog pr` — プルリクエスト管理 + +#### `backlog pr list` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `--repo` | `-R` | string | No | カレントリポジトリ | リポジトリ名 | `:repoIdOrName` (URL) | +| `--status` | `-S` | string[] | No | `open` | ステータス(`open`/`closed`/`merged`) | `statusId[]` | +| `--assignee` | `-a` | string | No | — | 担当者 | `assigneeId[]` | +| `--created-by` | | string | No | — | 作成者 | `createdUserId[]` | +| `--issue` | | string | No | — | 関連課題キー | `issueId[]` | +| `--limit` | `-L` | number | No | 20 | 取得件数(1-100) | `count` | +| `--offset` | | number | No | 0 | オフセット | `offset` | + +- **対応 API**: `GET /api/v2/projects/:key/git/repositories/:repo/pullRequests` + +#### `backlog pr view ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | PR 番号 | +| `--repo` | string | No | リポジトリ名 | +| `--comments` | boolean | No | コメントも表示 | +| `--web` | boolean | No | ブラウザで開く | + +- **対応 API**: `GET .../pullRequests/:number` + +#### `backlog pr create` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `--repo` | `-R` | string | No | カレントリポジトリ | リポジトリ名 | `:repoIdOrName` (URL) | +| `--title` | `-t` | string | Yes* | — | PR タイトル | `summary` | +| `--body` | `-b` | string | Yes* | — | PR 説明 | `description` | +| `--base` | `-B` | string | Yes* | — | マージ先ブランチ | `base` | +| `--branch` | | string | No | 現在のブランチ | マージ元ブランチ | `branch` | +| `--assignee` | `-a` | string | No | — | 担当者 | `assigneeId` | +| `--issue` | | string | No | — | 関連課題キー | `issueId` | +| `--notify` | `-n` | string[] | No | — | 通知先ユーザー | `notifiedUserId[]` | +| `--web` | | boolean | No | false | 作成後ブラウザで開く | — | + +- **対応 API**: `POST .../pullRequests` + +#### `backlog pr edit ` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `` | | number | Yes | — | PR 番号 | `:number` (URL) | +| `--repo` | `-R` | string | No | カレントリポジトリ | リポジトリ名 | `:repoIdOrName` (URL) | +| `--title` | `-t` | string | No | — | タイトル | `summary` | +| `--body` | `-b` | string | No | — | 説明 | `description` | +| `--assignee` | `-a` | string | No | — | 担当者 | `assigneeId` | +| `--issue` | | string | No | — | 関連課題キー | `issueId` | + +- **対応 API**: `PATCH .../pullRequests/:number` + +#### `backlog pr close ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | PR 番号 | +| `--repo` | string | No | リポジトリ名 | +| `--comment` | string | No | クローズコメント | + +- **対応 API**: `PATCH .../pullRequests/:number` (status を Close に変更) + +#### `backlog pr merge ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | PR 番号 | +| `--repo` | string | No | リポジトリ名 | +| `--comment` | string | No | マージコメント | + +- **対応 API**: `PATCH .../pullRequests/:number` (status を Merged に変更) + +#### `backlog pr reopen ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | PR 番号 | +| `--repo` | string | No | リポジトリ名 | + +- **対応 API**: `PATCH .../pullRequests/:number` (status を Open に変更) + +#### `backlog pr comment ` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `` | | number | Yes | PR 番号 | `:number` (URL) | +| `--repo` | `-R` | string | No | リポジトリ名 | `:repoIdOrName` (URL) | +| `--body` | `-b` | string | Yes* | コメント本文 | `content` | +| `--notify` | `-n` | string[] | No | 通知先 | `notifiedUserId[]` | + +- **対応 API**: `POST .../pullRequests/:number/comments` + +#### `backlog pr comments ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | PR 番号 | +| `--repo` | string | No | リポジトリ名 | +| `--limit` | number | No | 取得件数 | + +- **対応 API**: `GET .../pullRequests/:number/comments` + +#### `backlog pr status` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `--repo` | string | No | リポジトリ名 | + +- **対応 API**: `GET .../pullRequests` (assigneeId=自分でフィルタ) + +--- + +### 2.2 `backlog repo` — Git リポジトリ + +#### `backlog repo list [project-key]` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `[project-key]` | string | No | プロジェクトキー | + +- **対応 API**: `GET /api/v2/projects/:key/git/repositories` + +#### `backlog repo view [repo-name]` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `[repo-name]` | string | No | リポジトリ名 | +| `--web` | boolean | No | ブラウザで開く | + +- **対応 API**: `GET /api/v2/projects/:key/git/repositories/:repoIdOrName` + +#### `backlog repo clone ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | string | Yes | リポジトリ名 | +| `--directory` | string | No | クローン先ディレクトリ | + +- **対応 API**: ローカル `git clone` を実行 + +--- + +### 2.3 `backlog notification` — 通知管理 + +#### `backlog notification list` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `--limit` | `-L` | number | No | 20 | 取得件数 | `count` | +| `--min-id` | | number | No | — | 最小通知ID | `minId` | +| `--max-id` | | number | No | — | 最大通知ID | `maxId` | +| `--order` | | string | No | `desc` | 並び順 | `order` | + +- **対応 API**: `GET /api/v2/notifications` + +#### `backlog notification count` + +| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|----------------| +| `--already-read` | boolean | No | 既読を含める | `alreadyRead` | +| `--resource-already-read` | boolean | No | リソース既読を含める | `resourceAlreadyRead` | + +- **対応 API**: `GET /api/v2/notifications/count` + +#### `backlog notification read ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | 通知 ID | + +- **対応 API**: `POST /api/v2/notifications/:id/markAsRead` + +#### `backlog notification read-all` + +- **対応 API**: `POST /api/v2/notifications/markAsRead` + +--- + +### 2.4 `backlog status` — ダッシュボード + +- **対応 API**: `GET /api/v2/users/myself`, `GET /api/v2/notifications`, `GET /api/v2/users/myself/recentlyViewedIssues`, `GET /api/v2/issues` (assigneeId=自分) + +--- + +### 2.5 `backlog browse [target]` + +| 引数/オプション | 型 | 必須 | デフォルト | 説明 | +|------------------|------|------|------------|------| +| `[target]` | string | No | プロジェクトトップ | 課題キーまたはパス | +| `--issues` | boolean | No | false | 課題一覧を開く | +| `--wiki` | boolean | No | false | Wiki を開く | +| `--git` | boolean | No | false | Git リポジトリページを開く | +| `--settings` | boolean | No | false | プロジェクト設定を開く | + +- **対応 API**: ローカルで URL を構築しブラウザで開く + +--- + +## Phase 3: 管理機能 + +### 3.1 `backlog wiki` — Wiki 管理 + +#### `backlog wiki list` + +| 引数/オプション | 短縮 | 型 | 必須 | デフォルト | 説明 | API パラメータ | +|------------------|------|------|------|------------|------|----------------| +| `--project` | `-p` | string | Yes* | — | プロジェクトキー | `projectIdOrKey` | +| `--keyword` | `-k` | string | No | — | キーワード検索 | `keyword` | +| `--sort` | | string | No | `updated` | ソートキー | `sort` | +| `--order` | | string | No | `desc` | 並び順 | `order` | +| `--offset` | | number | No | 0 | オフセット | `offset` | +| `--limit` | `-L` | number | No | 20 | 取得件数 | `count` | + +- **対応 API**: `GET /api/v2/wikis` + +#### `backlog wiki view ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | Wiki ページ ID | +| `--web` | boolean | No | ブラウザで開く | + +- **対応 API**: `GET /api/v2/wikis/:wikiId` + +#### `backlog wiki create` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `--project` | `-p` | string | Yes* | プロジェクトキー | `projectId` | +| `--name` | `-n` | string | Yes* | ページ名 | `name` | +| `--body` | `-b` | string | Yes* | 本文 | `content` | +| `--notify` | | boolean | No | メール通知 | `mailNotify` | + +- **対応 API**: `POST /api/v2/wikis` + +#### `backlog wiki edit ` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `` | | number | Yes | ページ ID | `:wikiId` (URL) | +| `--name` | `-n` | string | No | ページ名 | `name` | +| `--body` | `-b` | string | No | 本文 | `content` | +| `--notify` | | boolean | No | メール通知 | `mailNotify` | + +- **対応 API**: `PATCH /api/v2/wikis/:wikiId` + +#### `backlog wiki delete ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | ページ ID | +| `--confirm` | boolean | No | 確認プロンプトをスキップ | + +- **対応 API**: `DELETE /api/v2/wikis/:wikiId` + +#### `backlog wiki count` + +- **対応 API**: `GET /api/v2/wikis/count` + +#### `backlog wiki tags` + +- **対応 API**: `GET /api/v2/wikis/tags` + +#### `backlog wiki history ` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `` | | number | Yes | ページ ID | `:wikiId` (URL) | +| `--limit` | `-L` | number | No | 取得件数 | `count` | +| `--offset` | | number | No | オフセット | `offset` | + +- **対応 API**: `GET /api/v2/wikis/:wikiId/history` + +#### `backlog wiki attachments ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | ページ ID | + +- **対応 API**: `GET /api/v2/wikis/:wikiId/attachments` + +--- + +### 3.2 `backlog project` (追加) — プロジェクト管理拡張 + +#### `backlog project create` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `--name` | `-n` | string | Yes | プロジェクト名 | `name` | +| `--key` | `-k` | string | Yes | プロジェクトキー(英大文字) | `key` | +| `--chart-enabled` | | boolean | No | チャート有効 | `chartEnabled` | +| `--subtasking-enabled` | | boolean | No | サブタスク有効 | `subtaskingEnabled` | +| `--project-leader-can-edit-project-leader` | | boolean | No | PL 変更権限 | `projectLeaderCanEditProjectLeader` | +| `--text-formatting-rule` | | string | No | 書式ルール(`markdown`/`backlog`) | `textFormattingRule` | + +- **対応 API**: `POST /api/v2/projects` + +#### `backlog project edit ` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `` | | string | Yes | プロジェクトキー | `:projectIdOrKey` (URL) | +| `--name` | `-n` | string | No | プロジェクト名 | `name` | +| `--key` | `-k` | string | No | プロジェクトキー | `key` | +| `--chart-enabled` | | boolean | No | チャート有効 | `chartEnabled` | +| `--archived` | | boolean | No | アーカイブ | `archived` | + +- **対応 API**: `PATCH /api/v2/projects/:projectIdOrKey` + +#### `backlog project delete ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | string | Yes | プロジェクトキー | +| `--confirm` | boolean | No | 確認スキップ | + +- **対応 API**: `DELETE /api/v2/projects/:projectIdOrKey` + +#### `backlog project users ` + +- **対応 API**: `GET /api/v2/projects/:key/users` + +#### `backlog project add-user ` + +| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|----------------| +| `` | string | Yes | プロジェクトキー | `:key` (URL) | +| `--user-id` | number | Yes | ユーザー ID | `userId` | + +- **対応 API**: `POST /api/v2/projects/:key/users` + +#### `backlog project remove-user ` + +| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|----------------| +| `` | string | Yes | プロジェクトキー | `:key` (URL) | +| `--user-id` | number | Yes | ユーザー ID | `userId` | + +- **対応 API**: `DELETE /api/v2/projects/:key/users` + +--- + +### 3.3 `backlog user` — ユーザー管理 + +#### `backlog user list` + +- **対応 API**: `GET /api/v2/users` + +#### `backlog user view ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | ユーザー ID | + +- **対応 API**: `GET /api/v2/users/:userId` + +#### `backlog user me` + +- **対応 API**: `GET /api/v2/users/myself` + +#### `backlog user activities ` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `` | | number | Yes | ユーザー ID | `:userId` (URL) | +| `--limit` | `-L` | number | No | 取得件数 | `count` | +| `--activity-type` | | number[] | No | タイプフィルタ | `activityTypeId[]` | + +- **対応 API**: `GET /api/v2/users/:userId/activities` + +--- + +### 3.4 `backlog team` — チーム管理 + +#### `backlog team list` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `--order` | | string | No | 並び順 | `order` | +| `--offset` | | number | No | オフセット | `offset` | +| `--limit` | `-L` | number | No | 取得件数 | `count` | + +- **対応 API**: `GET /api/v2/teams` + +#### `backlog team view ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | チーム ID | + +- **対応 API**: `GET /api/v2/teams/:teamId` + +#### `backlog team create` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `--name` | `-n` | string | Yes | チーム名 | `name` | +| `--members` | | number[] | No | メンバー ID | `members[]` | + +- **対応 API**: `POST /api/v2/teams` + +#### `backlog team edit ` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `` | | number | Yes | チーム ID | `:teamId` (URL) | +| `--name` | `-n` | string | No | チーム名 | `name` | +| `--members` | | number[] | No | メンバー ID | `members[]` | + +- **対応 API**: `PATCH /api/v2/teams/:teamId` + +#### `backlog team delete ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | チーム ID | +| `--confirm` | boolean | No | 確認スキップ | + +- **対応 API**: `DELETE /api/v2/teams/:teamId` + +--- + +### 3.5 `backlog category` — カテゴリ管理 + +#### `backlog category list` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | +|------------------|------|------|------|------| +| `--project` | `-p` | string | Yes* | プロジェクトキー | + +- **対応 API**: `GET /api/v2/projects/:key/categories` + +#### `backlog category create` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `--project` | `-p` | string | Yes* | プロジェクトキー | `:key` (URL) | +| `--name` | `-n` | string | Yes | カテゴリ名 | `name` | + +- **対応 API**: `POST /api/v2/projects/:key/categories` + +#### `backlog category edit ` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `` | | number | Yes | カテゴリ ID | `:id` (URL) | +| `--name` | `-n` | string | Yes | カテゴリ名 | `name` | + +- **対応 API**: `PATCH /api/v2/projects/:key/categories/:id` + +#### `backlog category delete ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | カテゴリ ID | +| `--confirm` | boolean | No | 確認スキップ | + +- **対応 API**: `DELETE /api/v2/projects/:key/categories/:id` + +--- + +### 3.6 `backlog milestone` — マイルストーン管理 + +#### `backlog milestone list` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | +|------------------|------|------|------|------| +| `--project` | `-p` | string | Yes* | プロジェクトキー | + +- **対応 API**: `GET /api/v2/projects/:key/versions` + +#### `backlog milestone create` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `--project` | `-p` | string | Yes* | プロジェクトキー | `:key` (URL) | +| `--name` | `-n` | string | Yes | マイルストーン名 | `name` | +| `--description` | `-d` | string | No | 説明 | `description` | +| `--start-date` | | string | No | 開始日(yyyy-MM-dd) | `startDate` | +| `--release-due-date` | | string | No | リリース予定日 | `releaseDueDate` | + +- **対応 API**: `POST /api/v2/projects/:key/versions` + +#### `backlog milestone edit ` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `` | | number | Yes | マイルストーン ID | `:id` (URL) | +| `--name` | `-n` | string | No | 名前 | `name` | +| `--description` | `-d` | string | No | 説明 | `description` | +| `--start-date` | | string | No | 開始日 | `startDate` | +| `--release-due-date` | | string | No | リリース予定日 | `releaseDueDate` | +| `--archived` | | boolean | No | アーカイブ | `archived` | + +- **対応 API**: `PATCH /api/v2/projects/:key/versions/:id` + +#### `backlog milestone delete ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | マイルストーン ID | +| `--confirm` | boolean | No | 確認スキップ | + +- **対応 API**: `DELETE /api/v2/projects/:key/versions/:id` + +--- + +### 3.7 `backlog issue-type` — 課題種別管理 + +#### `backlog issue-type list` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | +|------------------|------|------|------|------| +| `--project` | `-p` | string | Yes* | プロジェクトキー | + +- **対応 API**: `GET /api/v2/projects/:key/issueTypes` + +#### `backlog issue-type create` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `--project` | `-p` | string | Yes* | プロジェクトキー | `:key` (URL) | +| `--name` | `-n` | string | Yes | 種別名 | `name` | +| `--color` | | string | Yes | 表示色(`#hex`) | `color` | + +- **対応 API**: `POST /api/v2/projects/:key/issueTypes` + +#### `backlog issue-type edit ` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `` | | number | Yes | 種別 ID | `:id` (URL) | +| `--name` | `-n` | string | No | 種別名 | `name` | +| `--color` | | string | No | 表示色 | `color` | + +- **対応 API**: `PATCH /api/v2/projects/:key/issueTypes/:id` + +#### `backlog issue-type delete ` + +| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|----------------| +| `` | number | Yes | 種別 ID | `:id` (URL) | +| `--substitute-issue-type-id` | number | Yes | 代替種別 ID | `substituteIssueTypeId` | +| `--confirm` | boolean | No | 確認スキップ | — | + +- **対応 API**: `DELETE /api/v2/projects/:key/issueTypes/:id` + +--- + +### 3.8 `backlog status-type` — ステータス管理 + +#### `backlog status-type list` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | +|------------------|------|------|------|------| +| `--project` | `-p` | string | Yes* | プロジェクトキー | + +- **対応 API**: `GET /api/v2/projects/:key/statuses` + +#### `backlog status-type create` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `--project` | `-p` | string | Yes* | プロジェクトキー | `:key` (URL) | +| `--name` | `-n` | string | Yes | ステータス名 | `name` | +| `--color` | | string | Yes | 表示色(`#hex`) | `color` | + +- **対応 API**: `POST /api/v2/projects/:key/statuses` + +#### `backlog status-type edit ` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `` | | number | Yes | ステータス ID | `:statusId` (URL) | +| `--name` | `-n` | string | No | ステータス名 | `name` | +| `--color` | | string | No | 表示色 | `color` | + +- **対応 API**: `PATCH /api/v2/projects/:key/statuses/:statusId` + +#### `backlog status-type delete ` + +| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|----------------| +| `` | number | Yes | ステータス ID | `:statusId` (URL) | +| `--substitute-status-id` | number | Yes | 代替ステータス ID | `substituteStatusId` | +| `--confirm` | boolean | No | 確認スキップ | — | + +- **対応 API**: `DELETE /api/v2/projects/:key/statuses/:statusId` + +--- + +## Phase 4: 拡張機能 + +### 4.1 `backlog space` — スペース管理 + +#### `backlog space info` + +- **対応 API**: `GET /api/v2/space` + +#### `backlog space activities` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `--limit` | `-L` | number | No | 取得件数 | `count` | +| `--activity-type` | | number[] | No | タイプフィルタ | `activityTypeId[]` | + +- **対応 API**: `GET /api/v2/space/activities` + +#### `backlog space disk-usage` + +- **対応 API**: `GET /api/v2/space/diskUsage` + +#### `backlog space notification` + +- **対応 API**: `GET /api/v2/space/notification` + +--- + +### 4.2 `backlog webhook` — Webhook 管理 + +#### `backlog webhook list` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | +|------------------|------|------|------|------| +| `--project` | `-p` | string | Yes* | プロジェクトキー | + +- **対応 API**: `GET /api/v2/projects/:key/webhooks` + +#### `backlog webhook view ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | Webhook ID | + +- **対応 API**: `GET /api/v2/projects/:key/webhooks/:id` + +#### `backlog webhook create` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `--project` | `-p` | string | Yes* | プロジェクトキー | `:key` (URL) | +| `--name` | `-n` | string | Yes | Webhook 名 | `name` | +| `--hook-url` | | string | Yes | 通知先 URL | `hookUrl` | +| `--description` | `-d` | string | No | 説明 | `description` | +| `--all-event` | | boolean | No | 全イベント対象 | `allEvent` | +| `--activity-type-ids` | | number[] | No | 対象イベントタイプ | `activityTypeIds[]` | + +- **対応 API**: `POST /api/v2/projects/:key/webhooks` + +#### `backlog webhook edit ` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `` | | number | Yes | Webhook ID | `:webhookId` (URL) | +| `--name` | `-n` | string | No | 名前 | `name` | +| `--hook-url` | | string | No | URL | `hookUrl` | +| `--description` | `-d` | string | No | 説明 | `description` | +| `--all-event` | | boolean | No | 全イベント | `allEvent` | +| `--activity-type-ids` | | number[] | No | イベントタイプ | `activityTypeIds[]` | + +- **対応 API**: `PATCH /api/v2/projects/:key/webhooks/:webhookId` + +#### `backlog webhook delete ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | Webhook ID | +| `--confirm` | boolean | No | 確認スキップ | + +- **対応 API**: `DELETE /api/v2/projects/:key/webhooks/:webhookId` + +--- + +### 4.3 `backlog star` — スター + +#### `backlog star add` + +| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|----------------| +| `--issue` | string | No | 課題キー | `issueId` | +| `--comment` | number | No | コメント ID | `commentId` | +| `--wiki` | number | No | Wiki ID | `wikiId` | +| `--pr-comment` | number | No | PR コメント ID | `pullRequestCommentId` | + +- **対応 API**: `POST /api/v2/stars` + +#### `backlog star list [user-id]` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `[user-id]` | | number | No | ユーザー ID(省略時は自分) | `:userId` (URL) | +| `--limit` | `-L` | number | No | 取得件数 | `count` | +| `--order` | | string | No | 並び順 | `order` | + +- **対応 API**: `GET /api/v2/users/:userId/stars` + +#### `backlog star count [user-id]` + +| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|----------------| +| `[user-id]` | number | No | ユーザー ID | `:userId` (URL) | +| `--since` | string | No | 開始日 | `since` | +| `--until` | string | No | 終了日 | `until` | + +- **対応 API**: `GET /api/v2/users/:userId/stars/count` + +--- + +### 4.4 `backlog watching` — ウォッチ + +#### `backlog watching list [user-id]` + +| 引数/オプション | 短縮 | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|------|----------------| +| `[user-id]` | | number | No | ユーザー ID | `:userId` (URL) | +| `--limit` | `-L` | number | No | 取得件数 | `count` | +| `--order` | | string | No | 並び順 | `order` | +| `--sort` | | string | No | ソートキー | `sort` | + +- **対応 API**: `GET /api/v2/users/:userId/watchings` + +#### `backlog watching add` + +| 引数/オプション | 型 | 必須 | 説明 | API パラメータ | +|------------------|------|------|------|----------------| +| `--issue` | string | Yes | 課題キー | `issueIdOrKey` | +| `--note` | string | No | メモ | `note` | + +- **対応 API**: `POST /api/v2/watchings` + +#### `backlog watching view ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | ウォッチ ID | + +- **対応 API**: `GET /api/v2/watchings/:watchingId` + +#### `backlog watching delete ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | ウォッチ ID | +| `--confirm` | boolean | No | 確認スキップ | + +- **対応 API**: `DELETE /api/v2/watchings/:watchingId` + +#### `backlog watching read ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | number | Yes | ウォッチ ID | + +- **対応 API**: `POST /api/v2/watchings/:watchingId/markAsRead` + +--- + +### 4.5 `backlog alias` — エイリアス + +#### `backlog alias set ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | string | Yes | エイリアス名 | +| `` | string | Yes | 展開されるコマンド | +| `--shell` | boolean | No | シェルコマンドとして登録 | + +- **対応 API**: ローカル設定 + +#### `backlog alias list` + +- **対応 API**: ローカル設定 + +#### `backlog alias delete ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | string | Yes | エイリアス名 | + +- **対応 API**: ローカル設定 + +--- + +### 4.6 `backlog auth` (追加) — 認証拡張 + +#### `backlog auth refresh` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `--hostname` | string | No | 対象スペース | + +- **対応 API**: OAuth 2.0 Token Refresh + +#### `backlog auth switch` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `--hostname` | string | No | 切り替え先スペース | + +- **対応 API**: ローカル設定 + +--- + +### 4.7 `backlog completion` — シェル補完 + +#### `backlog completion ` + +| 引数/オプション | 型 | 必須 | 説明 | +|------------------|------|------|------| +| `` | string | Yes | シェル種別(`bash`/`zsh`/`fish`) | + +- **対応 API**: ローカル処理