tl;dr
CircleCI のプロジェクトで定義出来る環境変数 (以後, Project Environment Variables) を REST API で操作出来ないかなと思って調べていたら, シュッと出来たのでメモしておきます.
やりたいこと
- ジョブ毎に異なる値をを動的にプロジェクトの環境変数に登録したい
CircleCI のプロジェクトで定義出来る環境変数 (以後, Project Environment Variables) を REST API で操作できれば, ジョブの中から環境変数を更新出来るんじゃないかと思った次第.
こんな感じで
なんのことない
ちゃんとドキュメントを読めば出来る.
API Reference
Personal API Token
API で操作するにあたり必要となります. ダッシュボードから取得出来ます.
実際に操作
キー foo
, 値 bar
を登録する場合.
curl -X POST --header "Content-Type: application/json" -d '{"name":"foo", "value":"bar"}' \ "https://circleci.com/api/v1.1/project/[github|bitbacket]/[Username]/[Project Name]/envvar?circle-token=[Personal API Token]"
レスポンスは, 以下の通り.
{ "name" : "foo", "value" : "xxxxr" }
ダッシュボードでも確認することが出来る.
以下のように実行すると, [name]
で指定したキーの環境変数を取得出来る.
curl -X GET \ "https://circleci.com/api/v1.1/project/[github|bitbacket]/[Username]/[Project Name]/envvar/[name]?circle-token=[Personal API Token]"
レスポンスは以下の通り.
{ "name" : "foo", "value" : "xxxxr" }
以下のように実行すると, [name]
で指定したキーの環境変数を削除出来る.
curl -X DELETE \ "https://circleci.com/api/v1.1/project/[github|bitbacket]/[Username]/[Project Name]/envvar/[name]?circle-token=[Personal API Token]"
レスポンスは以下の通り.
{ "message" : "ok" }
以上
メモでした. これで悩み事が解決するかもしれない!