Closed11
GitHub CLI で secret を設定
これまではウェブの UI で設定していたが、少し大目の変数をまとめて設定するために GitHub CLI を使うことにした。
マニュアルはこちら。
まずは 1 つ登録してみる。
--body
で指定。
$ gh secret set BASE_URL --body "foo"
✓ Set secret BASE_URL for hankei6km/test-collage-cms-content
$ gh secret list
BASE_URL Updated 2021-12-28
ウェブ UI でも確認。
削除してみる。
$ gh secret remove BASE_URL
✓ Removed secret BASE_URL from hankei6km/test-collage-cms-content
$ gh secret list
# 削除されている。
確認などはされない。
ウェブ UI でも確認。
stdin から設定
$ echo -n "foo" | gh secret set BASE_YRL
✓ Set secret BASE_YRL for hankei6km/test-collage-cms-content
$ gh secret list
BASE_YRL Updated 2021-12-28
.env
的なものから一括で登録する方法はなさそう。
2.4.0 でできるようになっていた。 https://zenn.dev/link/comments/2504404c0f7c1c
Environment へ設定。
$ echo -n "foo" | gh secret set --env pages BASE_URL
✓ Set secret BASE_URL for hankei6km/test-collage-cms-content
$ gh secret list --env pages
BASE_URL Updated 2021-12-28
ウェブ UIでも確認。
echo
の -n
を忘れていた。
上のサンプルも修正。
$ echo -n "foo" | gh secret set --env pages BASE_URL
Action が失敗するので少し悩んだ。
コマンドも個数が多いと面倒なのでスクリプトにした。
set-secrets-to-env.sh
#!/bin/bash
ENVIRONEMT="pages-staging"
VAR_NAMES=(
"BASE_PATH"
"BASE_URL"
...
)
for VAR_NAME in "${VAR_NAMES[@]}"; do
echo -n $"${!VAR_NAME}" | gh secret set -e "${ENVIRONEMT}" "${VAR_NAME}"
done
$ source .env
$ bash set-secrets-to-env.sh
✓ Set secret BASE_PATH for hankei6km/test-collage-cms-content
✓ Set secret BASE_URL for hankei6km/test-collage-cms-content
// snip
$ exit
やはり .env
から設定したかったので念のため issue を検索したら 2.4.0 で .env
から設定できるようになっていた。
secret set: allow importing secrets from a dotenv file by @lpessoa in #4534
更新したのであとで試す。
$ gh --version
gh version 2.4.0 (2021-12-21)
https://github.com/cli/cli/releases/tag/v2.4.0
$ gh secret set --help
// snip
FLAGS
-b, --body string The value for the secret (reads from standard input if not specified)
-e, --env environment Set deployment environment secret
-f, --env-file file Load secret names and values from a dotenv-for
試した。実際に Action から使って想定通りに動作した。
コメントや空行も大丈夫なもよう。"
等のエスケープは試していない(必要になったら調べる)。
.env
# test secret
BASE_PATH="/test-collage-cms-content/"
BASE_URL="https://hankei6km.github.io"
$ gh secret set --env pages-staging --env-file .env
✓ Set secret BASE_PATH for hankei6km/test-collage-cms-content
✓ Set secret BASE_URL for hankei6km/test-collage-cms-content
記事にした。
このスクラップは2021/12/29にクローズされました