ようへいの日々精進XP

よかろうもん

冬休みの自由研究 (4) 〜 CircleCI の Project Environment Variables を REST API で操作する 〜

tl;dr

CircleCI のプロジェクトで定義出来る環境変数 (以後, Project Environment Variables) を REST API で操作出来ないかなと思って調べていたら, シュッと出来たのでメモしておきます.

やりたいこと

  • ジョブ毎に異なる値をを動的にプロジェクトの環境変数に登録したい

CircleCI のプロジェクトで定義出来る環境変数 (以後, Project Environment Variables) を REST API で操作できれば, ジョブの中から環境変数を更新出来るんじゃないかと思った次第.

こんな感じで

なんのことない

ちゃんとドキュメントを読めば出来る.

API Reference

circleci.com

Personal API Token

API で操作するにあたり必要となります. ダッシュボードから取得出来ます.

f:id:inokara:20200104172921p:plain

実際に操作

キー 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"
}

ダッシュボードでも確認することが出来る.

f:id:inokara:20200104171959p:plain

以下のように実行すると, [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"
}

以上

メモでした. これで悩み事が解決するかもしれない!