redmine-cli について
redmine-cliは、Redmine REST APIを操作するコマンドラインツールおよびエージェントスキルです。課題やプロジェクトに加え、工数、Wiki、ユーザーなどを管理できます。
主な機能
- 01課題、コメント、ウォッチャー、関連の管理
- 02プロジェクト、ユーザー、グループ、メンバーシップの管理
- 03工数記録とプロジェクトバージョンの管理
- 04課題、Wiki、ニュース、メッセージの検索
- 05認証プロファイルと設定の管理
活用シーン
- 01コマンドラインからRedmineの課題を作成・更新
- 02プロジェクトの工数記録と集計
- 03Redmineのコンテンツ検索と保存済みクエリの再利用
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ aarondpn/ redmine-cli --skill redmine-cliインストール後、Claude Code で/redmine-cliを入力して読み込まれたか確認します。
詳細
Redmine CLI
Redmine REST API 用の CLI です。詳細なフラグや使用例については、redmine <command> --help を使用してください。このスキルでは、--help では分からない情報のみを説明します。
利用可能なコマンド
トップレベルのコマンドは以下のみです。ここにないサブコマンドを作り出さないでください。サブコマンドを確認するには、redmine <command> --help を実行してください。
| コマンド | 用途 |
|---|---|
issues | 課題の作成、一覧表示、取得、更新、クローズ、再開、担当者の割り当て、コメント追加、削除、オープン、閲覧を行います。ウォッチャーと関連を管理します(issues watchers …、issues relations …)。課題を検索するには、search issues を使用します |
attachments | アクティブなプロファイルの認証情報を使用して、添付ファイルのメタデータを確認します(attachments get <id>)。添付ファイルをダウンロードします(attachments download <id>) |
queries | Redmine の保存済みクエリを一覧表示します。issues list --query/--query-id で再利用できます |
projects | プロジェクトの一覧表示、取得、作成、更新、アーカイブ、アーカイブ解除、削除を行います。プロジェクトメンバーを一覧表示します。一覧表示/取得時に --include を指定すると、トラッカー、モジュール、カテゴリ、カスタムフィールド、時間記録のアクティビティが表示されます(アーカイブ機能は Redmine 5.0 以降)。 |
time | 時間記録の登録、一覧表示、取得、更新、削除、集計を行います |
versions | プロジェクトのバージョン(マイルストーン)の作成、一覧表示、取得、更新、削除を行います |
files | プロジェクトレベルのファイル(リリース成果物)を一覧表示、アップロードします |
memberships | プロジェクトのメンバーシップの一覧表示、取得、作成、更新、削除を行います |
users | ユーザーの一覧表示、取得、作成、更新、削除を行います |
my-account | 自分の Redmine アカウントを取得、更新します(管理者権限は不要です) |
groups | グループの一覧表示、取得、作成、更新、削除を行います。ユーザーを追加/削除します |
roles | 権限を含むロールの一覧表示と取得を行います |
categories | 課題カテゴリを一覧表示します |
trackers | トラッカーの一覧表示と取得を行います |
statuses | 課題のステータスを一覧表示します |
custom-fields | カスタムフィールド定義を一覧表示、取得します(管理者専用エンドポイント) |
search | 課題、Wiki、ニュース、メッセージを検索するか、検索結果を閲覧します |
auth | 認証プロファイルへのログイン、ログアウト、一覧表示、切り替え、状態確認を行います |
wiki | Wiki ページの一覧表示、取得、作成、更新、削除を行います |
api | 認証済みの API リクエストを直接実行します |
config | アクティブな設定(サーバー、プロファイル、デフォルトのプロジェクト)を表示します |
update | CLI を最新リリースに更新します |
セットアップ
redmine コマンドが見つからない場合は、インストールしてください。
curl -fsSL https://raw.githubusercontent.com/aarondpn/redmine-cli/main/install.sh | bash
次に、対話形式で設定するには redmine auth login を実行します。既存の設定を確認するには redmine config を使用してください。
重要なルール
- フィールドの抽出には
--jq(-q)を使用してください — 例:redmine issues get 123 --jq '.status.name'。これは組み込み機能のため、外部のjqは不要で、-o jsonも自動的に指定されます。Python、awk、正規表現で出力を解析しないでください。フラグが不明と表示される場合、CLI が古いため、ユーザーにredmine updateの実行を依頼してください。 - エラーはゼロ以外の終了コードとともに stderr に出力されます。失敗時、stdout は空です。終了コードを確認してください。stderr を stdout に混ぜたり(
2>&1)、破棄したり(2>/dev/null)しないでください。エラーコードjq_failedはコマンド自体は成功し、フィルターだけが失敗したことを意味します。書き込み操作を再実行しないでください(ただし、4xx/5xx 応答に対するapi -iはリクエストが失敗しているため除きます)。 - すべての結果を取得するには
--limit 0を使用してください。デフォルトの上限は 100 です。 - 添付ファイルを確認してください:課題を読むときは
--attachmentsを追加し、回答する前に添付ファイルがあれば確認してください(下記参照)。 - 名前を受け取るすべてのフラグ(--project、--tracker、--status、--priority、--assignee、--category、--version、--activity)は、人が読める名前を自動的に解決します。最初に ID や選択肢の一覧を調べないでください。名前の解決に失敗した場合にのみ、有効な値を確認し(例:
redmine projects get <project> --include trackers,issue_categories)、それでも不明な場合はユーザーに確認してください。 --assignee meは現在の API ユーザーを指します。--status "*"はステータスに関係なくすべての課題を表示します(デフォルトはopenです)。
うまくいかない場合:停止して --help を使う
フラグやサブコマンドを推測して、繰り返したり、再試行したりしないでください。 コマンドが失敗した場合や、正しい構文がわからない場合は、次の手順を実行してください。
redmine <command> --helpを実行します(またはredmine <command> <subcommand> --help)。実際に利用できるオプション、フラグ、サブコマンドを確認できます。- ヘルプの出力を注意深く読みます。ヘルプは信頼できる最新の情報です。自分の推測よりもヘルプを優先してください。
--helpに表示されていないフラグやサブコマンドを決して作らないでください。存在するはずのオプションがヘルプに表示されていない場合、そのオプションは存在しません。- 繰り返さないでください。同じコマンドが 2 回失敗したら、停止してヘルプの出力を読み直してください。少しだけ変えて再試行すれば成功するかもしれないと期待して、何度も試し続けないでください。
- ヘルプの出力を読んでも不明な点がある場合は、ユーザーに尋ねてください。失敗を繰り返すよりも適切です。
権限エラー
- 別の認証情報で再試行しないでください(別のプロファイル、環境変数の API キー、CI 設定、設定ファイルなど)。権限はユーザーの Redmine ロールによって決まります。停止してユーザーに確認してください。
- ユーザー名とグループ名はプロジェクトのメンバーを通じて解決されるため、管理者権限がなくても使用できます。
リソース作成後
課題、プロジェクト、ユーザーなどのリソースを作成すると、CLI は新しい ID を返します。ユーザーがブラウザーで開けるクリック可能な URL を提示してください。
- 課題:
redmine issues open <id>を実行すると課題を直接開けます。URL を提示することもできます:<server>/issues/<id> - プロジェクト:
<server>/projects/<identifier> - ユーザー:
<server>/users/<id> - 作業時間:
<server>/time_entries/<id>/edit
redmine config --jq .server でサーバー URL を取得します。作成が成功したら、ユーザーが新しいリソースにすぐ移動できるよう、必ず URL または open コマンドを伝えてください。
添付ファイル:必ずダウンロードして内容を確認する
課題には、テキストに含まれていない情報を持つ添付ファイル(スクリーンショット、図、ログ、PDF など)がよく含まれています。課題に添付ファイルがある場合は、回答する前に必ずダウンロードして内容を確認してください。特に画像には、チケットの対象となっている実際のエラー、モックアップ、詳細が含まれていることがよくあります。
- 添付ファイル ID を確認する:
redmine issues get <id> --attachmentsを実行すると、各添付ファイルのid、filename、filesize、content_typeが表示されます(JSON では.attachments[])。--attachmentsを付けない場合、課題の出力には添付ファイルが表示されません。 - ファイルを 1 つダウンロードする:
redmine attachments download <att-id> -d <dir>を実行すると、実際のファイル名で保存されます(正確なパスを指定する場合は--path <file>、標準出力にストリームする場合は--path -)。curlや手動での API キー処理は不要です。アクティブなプロファイルの認証情報が再利用されます。 - すべてのファイルを一度にダウンロードする:
redmine issues get <id> --download-attachments <dir>を実行すると、課題の添付ファイルをすべて<dir>に一度にダウンロードできます。 - メタデータのみを確認する(ダウンロードなし):
redmine attachments get <att-id>。
画像をダウンロードしたら、開いて内容を読み取り、そこに示されている情報を活用してください。
わかりにくい動作
redmine issues get <id> --journalsにはコメントと履歴が含まれます。redmine issues updateは、明示的に指定したフラグのみを送信します。省略したフラグは変更されません。--projectを省略した場合、設定済みのデフォルトプロジェクトが使用されます(redmine auth loginで設定)。- プロジェクトには数百ものバージョンが蓄積されることがあり、その大半がクローズ済みまたはロック済みです。新しい課題、作業時間、または同様のワークフローでバージョンが必要な場合は、必ず
redmine versions list --openから始めてください。候補を絞り込めるため、作業を受け付けなくなったバージョンを選ばずに済みます。 - 日付フラグ(
--due-date、--date、--from、--to)では、現在の日付を表すキーワードtodayをショートカットとして使用できます。