はじめに
credential情報を持つjsonファイルを用いたプログラムを、Github Actionsで自動化させたかったのですが、どうしたら良いか迷子になりました。初心者の備忘録なので、ご指摘あればぜひお願いします。
改行文字のせいでsecretsに登録できない
趣味でスプレッドシートをいじるプログラムを作っていたのですが、googleへの認証のため次のようなcredential.jsonが必要でした。
{
"type": "xxxx",
"project_id": "xxxx",
"private_key_id": "xxxx",
"private_key": "-----BEGIN PRIVATE KEY-----\nxxxx\n-----END PRIVATE KEY-----\n",
"client_email": "xxxx",
"client_id": "xxxx",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/xxxx"
}
この情報をGitHub Actionsのsecretsに登録するのに、引っかかったところが"private_key"
でした。ここの改行文字の処理が上手くいかず、secretsに登録しても"private_key"
を呼び出せませんでした。
create-jsonを使う
GitHub Actionsのマーケットに公開されているcreate-jsonというツールを使って解決できました。探せば大体悩みは解決しますね。
基本的な使い方は、まず登録したいjsonファイルの内容をsecretsに登録します。
その後、以下のようにActionsのワークフローに追加することで、secretsに登録したjsonファイルを作成することができます。
- name: create-json
id: create-json
uses: jsdaniell/create-json@v1.2.2
with:
name: "credentials.json"
json: ${{ secrets.CREDENTIALS_JSON }}
dir: "src/"
dir
を設定することで必要に応じて、作成するディレクトリを変更することも出来ます。
おわりに
大分このsecrets問題と戦っていて諦めかけていたんですが、stackoverflowに辿り着きActionsのマーケットというのを知りました。このマーケットを眺めて便利ツールを発見するのも面白そうです。