はじめに
最近、 CircleCI に登録していた secrets を確認することがありました。
CLI tool の CircleCI-Env-Inspector が公開されていたのでその使い方を記載します。
CircleCI-Env-Inspector について
CircleCI に登録している secrets を出力する Node.js 制の CLI tool です。
出力出来る secrets は以下 3 つです。
- Organization に定義する "Context variables"
- Project に定義する "Project environment variables", "Project SSH keys"
準備
CircleCI-Env-Inspector を実行するためには以下が必要です。
- (必須) CircleCI Personal API Token
- Docker, Shell を実行出来る環境
- 用意できない場合は、
run.sh
,Dockerfile
を確認し実行環境を用意します
- 用意できない場合は、
CircleCI Personal API Token の発行
User Settings の Personal API Tokens にアクセスし Token を発行します。
今回は、 Token Name を CircleCI-Env-Inspector
とし Token を発行します。
Token は CircleCI-Env-Inspector を実行する際に入力します。安全な場所に保存しておきましょう。
Personal API Tokens (一覧) | Personal API Tokens (発行) |
---|---|
![]() |
![]() |
CircleCI-Env-Inspector を実行する
CircleCI-Env-Inspector を clone します。
# HTTPS を利用する場合
git clone https://github.com/CircleCI-Public/CircleCI-Env-Inspector.git
# SSH を利用する場合
git clone git@github.com:CircleCI-Public/CircleCI-Env-Inspector.git
# GitHub CLI を利用する場合
gh repo clone CircleCI-Public/CircleCI-Env-Inspector
clone が完了したら CircleCI-Env-Inspector
directory に移動します。
> cd path/to/CircleCI-Env-Inspector
その後、run.sh
を実行します。
? Enter your CircleCI API token [hidden]
と表示実行が中断します。
先ほど発行した CircleCI Personal API Token を入力し Enter を押下します。
> ./run.sh
Building Docker image...
[+] Building 16.1s (10/10) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 36B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/library/node:18 2.8s
=> [auth] library/node:pull token for registry-1.docker.io 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 97.55kB 0.0s
=> [1/4] FROM docker.io/library/node:18@sha256:d871edd5b68105ebcbfcde3fe8c79d24cbdbb30430d9bd6251 0.0s
=> CACHED [2/4] WORKDIR /project 0.0s
=> [3/4] COPY . . 0.1s
=> [4/4] RUN npm install && npm run build 11.4s
=> exporting to image 1.6s
=> => exporting layers 1.6s
=> => writing image sha256:cc1e35f54d28648a7fea5c5057cefe21b0ab4e7644395b402bfe52a41583e9f8 0.0s
=> => naming to docker.io/library/cci-env-inspector 0.0s
Running Docker image...
? Enter your CircleCI API token [hidden]
Found X accounts.
Fetching data for xxxxxx from GitHub... 1/X
Fetching Contexts...
Fetching Projects...
Fetching Project Variables...
Fetching data for mziyut from GitHub... 2/X
Fetching Contexts...
Fetching Projects...
Fetching Project Variables...
Done!
Data saved to circleci-data.json
Extracting data from container...
Cleaning up...
Done.
実行が完了すると 同 directory に circleci-data.json
が生成されます。
※ 一部の文字を xx
に置換しています。
[
{
"xxxx": {
"contexts": [
{
"name": "contexts-name-here",
"id": "xxxx-xxxx-xxxx-xxxx-xxxx",
"url": "https://app.circleci.com/settings/organization/gh/xxxx/contexts/xxxx-xxxx-xxxx-xxxx-xxxx",
"variables": []
}
],
"projects": [
{
"name": "projects-name-here-1",
"url": "https://app.circleci.com/settings/project/gh/xxxx/projects-name-here-1/environment-variables",
"variables": [
{
"name": "VARIABLES_NAME",
"value": "xxxxxxxx"
}
],
"project_keys": []
},
{
"name": "projects-name-here-2",
"url": "https://app.circleci.com/settings/project/gh/xxxx/projects-name-here-2/environment-variables",
"variables": [],
"project_keys": [
{
"type": "project_key-type",
"preferred": true,
"created_at": "xxxx-xxxx-xxxx:xxxx:xxxx.xxxxZ",
"public_key": "xxxx",
"fingerprint": "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
}
]
}
],
"unavailable": []
}
},
{
"mziyut": {
"contexts": [],
"projects": [],
"unavailable": []
}
}
]
生成された JSON ファイル内の "Context variables", "Project environment variables", "Project SSH keys" を確認し必要な対応を行います。
最後に
急遽、 CircleCI に登録していた secrets を確認する必要が生じましたが、CLI tool の CircleCI-Env-Inspector が公開されたことで簡単に確認することができました。
簡単に確認できるよう CircleCI-Env-Inspector を準備、公開頂いたことに感謝しています。
References