Redmineダウンローダ開発メモ(2) コマンドプロンプトからDocker内のRedmineサーバーにアクセスする - ドナドナされるプログラマのメモ の続きのようなもの。以下、
Docker内のRedmineサーバーにアクセスする。使うのはCURLコマンド。今回はport 3000を解放している。URLやAPIキーは適宜変更すること。また、全てのオプション類は
Rest api - Redmineを参照すること。下記はあくまでも一部オプションしか使っていないことに注意。
Issue一覧の取得
必須
- key: APIキー
オプション
- status_id
省略時: Openのみ取得。*: 全て取得。 - sort
ソートに使うアイテムを指定する。この例では更新時順。 - limit
一度に取得するissue数。「全取得」できる値は無い模様。 - offset
ソート後の何番目のIssueから取得するかを指定する。先頭=0。代わりにpageも使用可。 - page
ソート後の何ページ目から取得するかを指定する。先頭=1。
Issueの取得
個別の情報を取得する場合は/issues/[ID].xmlや.jsonをgetする。プロジェクト名などは不要な点に注意。
curl -X GET "http://localhost:3000/issues/2.json?key=c495350912cab5c59f3d094522d12996a86db476&include=attachments,journals"
必須
- key: APIキー
オプション
- include
attachmentsとすると添付ファイルのURLも取得する。
journalsとするとnotes等も取得する。
Issueの追加
Issueを追加する場合、たとえばJSONなら-d以降に生値を書いてもよい。しかしWindowsのいわゆるコマンドプロンプトでは"を\"に置き換える(エスケープする)必要があり煩雑なのでファイルに書き込んだものを送るほうが楽。下記の例ではtest.jsonに保存している。なお、jsonはUTF-8で保存すること。
curl -H "Content-Type: application/json" -d @test.json "http://localhost:3000/issues.json?key=c495350912cab5c59f3d094522d12996a86db476"
test.jsonの注意事項をいくつか。
- 文字コードはUTF-8
繰り返しになるが、UTF-8で保存すること。 - project, tracker, status, priorityなどIDを有するものはIDを指定すること。
例: "project_id": 1, "assigned_to_id": 1
IDの調べ方
IDが存在するものは、管理ページなどで当該項目のURLから分かる。
例: tracker_idは/trackersページに表示されている各トラッカーのURLに書かれている(http://localhost:3000/trackers/3/editなど。この場合のIDは3)。
一覧を入手するなら、GET trackersなどを使う。