背景
VimのプラグインでたまにAPI Tokenを必要とするのがあります。いちいちそのプラグインを使うたびにTokenをパスワードマネージャーからコピペするなんて、面倒くさすぎる!しかもdotfileにsecretsをそのまま書き込んだらどこにもアップロードできなくなります。ググったら良さげな方法が見つかったのでシェアしておきます。また他にいい方法を知ってる人がいたらコメお願いします。
KeychainにSecretsを追加
まずはコマンドラインからKeychainに必要なSecretsを追加しましょう。(自分は試してないですが多分GUIからでもできると思います)
security add-generic-password -a "$USER" -s 'Qiita Api Token' -w '321hogehoge123'
-s
でSecretの名前を決めます。これはのちに必要になるのでメモっておきましょう。-a
のargumentでどのアカウントに追加するかを指定できます。そして-w
が実際のToken(か何かしらのString)になります。
Secretsを環境変数に定義する
そしたらどこでも使えるように、自分の使っているshell(zsh, bash, fish...etc)のenvironment variableにexportしましょう。自分はZSHを使っていたので、このようにしました。
export QIITA_API_TOKEN=$(security find-generic-password -s "Qiita Api Token" -w)
find-generic-password
のコマンドは-s
でSecretの名前(先ほどメモした"Qiita Api Token")を指定します。-w
はどうやらパスワード以外のメタデータを除外するオプションっぽいです。
.vimrcから読み込む
Environment variableは.vimrc
からアクセスできるので、
let g:some_plugin = { user: 'hoge', password: $QIITA_API_TOKEN }
ってな感じで安全にdotfileからSecretsを読み込めます。以上です!
良かったところ、改善して欲しいところ、もしよかったら感想コメント残してください!ありがとうございました。
参考記事: