redmine APIを使ったちょっとしたスクリプトが欲しいと思い立つ。慣れてるC#で書きたい。
とはいえ、さすが本番環境で試すわけにはいかないので、とりあえずテスト用のredmine環境が欲しい。Azureアカウントなら持ってる。
こう思ってからスクリプトを書いてテストするまでが楽々だったので、いやあ便利になったなあと思いつつブログにメモっておく。
やること
前提条件
スクリプト実行環境に、.NET 5のランタイムではなくSDKをインストールする必要がある(.NET Coreでも良い)
テスト用のredmineサーバーの準備
AzureでRedmine Certified by BitnamiのVMを作成する。
(ブート診断を構成してなかったので)sshで接続して管理者パスワードを取得する。
コマンド:sudo cat /home/bitnami/bitnami_credentials
参考:https://docs.bitnami.com/azure/faq/get-started/find-credentials/
http://<作ったVMのIPアドレス>/admin へアクセスして、userと管理者パスワードでログイン ※ネットワーク的につながる別のPCからアクセス
これだけで、後は普通にredmineが使える。
スクリプトの作成環境準備
.NET SDKとdotnet-scriptをインストール。悩みどころは特にないので、説明があるURLだけ記載する。
https://dotnet.microsoft.com/download
https://github.com/filipw/dotnet-script
(今回はdotnet tool install -g dotnet-script
でインストールした)
スクリプトの作成
フォルダを作り、VSCodeを起動。
ターミナルを開いて、dotnet-script initを実行。(これにより、スクリプトファイルに加えてVSCode上でデバッグ実行するための設定が作成される)
JSON.NETを使うために、main.csxに次の記載を追加。
#r "nuget: Newtonsoft.Json, 12.0.3"
VSCodeを開き直す。(ここで開き直さないと、NuGetで取ったものの入力補完が効かない)
あとは普通にC#でコードを書くのみ。今回はHttpClientとJSON.NETで実装した。
まとめ
思い立ってから実現するまでがたったこれだけの手順ですんだ。特にAzure(というかクラウドサービス)とdotnet-scriptは偉大だと思う。