Redmine(+ Digest 認証環境下)で curl コマンドを利用し issue create を行う
Redmine REST API
自社でプロジェクト管理のために Redmine を利用しているのですが今まで REST API を利用したことがありませんでした。そもそも、Redmine で仕様として公開されている REST API ってどんなものがあるの?という情報は下記の通りで。
https://www.redmine.org/projects/redmine/wiki/rest_api
今回、とある開発の絡みで調べていたのですが、結構色んなことができるんだなぁ、と感心しました。(もっと早く活用すれば良かった。笑)
本題の Redmine (+ digest Auth) における curl issue create のはなし
前述のとある開発の絡みは php + MySQL で作成している Web アプリにて「問い合わせを1件立てると Redmine でチケット(issue)を1件発行する」といった連携を行います。ちなみに自社の場合は Digest 認証だったり何なりとちょっと複雑な環境下だったりするため、ネットで中々合致する参考資料(コマンド例)が見つかりませんでした・・・・しかし、結果として色々組み合わせていく中で 200 の status を返せました!
# curl --insecure --anyauth --user (username):(password) --location-trusted -X POST -H "Content-Type: application/json" -d '{"issue":{"project_id": (project_id), "subject": "(subject)", "tracker_id": (tracker_id), "status_id": (status_id), "watcher_user_ids": ["user_id"(, "user_id") ... ]}}' (redmine_url)/issues.json?key=(redmine_target_user_api_key)といった感じです。これを導き出すのに結果丸一日くらい使ってしまいました。ちなみに curl コマンドの方は元々 php で組んでいたプログラムから流用し、後半の記述の仕方は下記サイトを参考にしております。
利用・活用 Redmine API - ファーエンドテクノロジー株式会社
Thank you, FAR END Technologies 様!
追記(Appendix)
2020/07/29
どうも、最後の方の「?key=」以降はなくても大丈夫なようです。失礼致しました。