1
0

GitHub ActionsでJSON形式のトークンがそのまま使えない

Posted at

Node.js v21で実行していたプログラムをBunでの実行に差し替えた時に

GitHub Actions上かつBunでの実行でエラーが発生しました。

Googleのクレデンシャルでエラー発生

const {client_secret, client_id, redirect_uris} = credentials.installed;

スクリーンショット 2023-12-28 22.25.24.png

この辺たまにでますねトークンのJSONをそのまま入れていてクオーテーション周りがうまくパースされない問題ぽいです。

TOKEN ENV READ ERROR: SyntaxError: Expected property name or '}' in JSON at position 1 (line 1 column 2)

ローカルでは読めるんだけどね

そもそも構造化データをGitHub Actionsのシークレットにいれてはいけないらしい

公式にも書いている通りBase64変換してBase64変換したテキストをシークレットに入れるなど工夫が必要そうです。

  • 参考

シングルクォートで応急措置

とはいえちょっとすぐ動かしたかったので応急措置です。

シングルクォートで囲むことで回避できました。

  • 通常

通常はこんな感じでJSONをそのままシークレット登録してました。

GOOGLE_REDENTIALS={"access_token":"色々省略","token_type":"Bearer","expiry_date":1703526591588}

これだとローカル実行はいけて、GitHub Actions上(のBun)だとJSON.parseのエラーが出ます。

  • シングルクォートで囲ってみ

全体を''で囲むことで今回は回避できました。

GOOGLE_REDENTIALS='{"access_token":"色々省略","token_type":"Bearer","expiry_date":1703526591588}'

これだとローカルの.envファイルからもGitHub Actions上からもいけます。

.envに書くときもシングルクォートで囲むをやっておくと良いかもですね() そもそもJSONそのままいれるのやめましょう。

おまけ create-json

試してないけどcreate-jsonというアクションを利用する方法もありそう

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0