QA@IT

GitHubにアップロードするプログラム内部の、パスワードの管理方法

3336 PV

GitHubで作ったライブラリを公開しようと考えているのですが、プログラム内のパスワードの管理方法に困っています。

具体的に例を挙げて説明させていただくと、

例えばプログラム内部にdatabaseのパスワードを記述していたとします。
もちろんこれをGithubにアップロードすると、大変な事になってしまいます。
なのでパスワードを外部に切り出すなり、除外するなりなんとかしたいのですが、思い浮かんだ方法がどれもスマートでなく困っています。

私が思い浮かんだ方法をいくつか書かせていただきます。

  • 外部ファイルに書き出す。

パスワードをyaml等に書いておく方法です。そしてこれをgitignoreに指定して、gitの管理対象から外す事で、githubにpushしたさいでも問題なくアップロードできる様にします。
ただこの方法だと、このライブラリをダウンロードしたユーザは自力で、特定のディレクトリに同じファイル名の同じkeyを持つyamlファイルを作成しなければいけません。

  • アップロードするときだけ、ファイルをコピーしてパスワードを消してアップロードする。

手元のgitリポジトリをコピーして、その後にパスワードを消して、githubにあげる方法です。
ただこれだと普段の開発に使っているgitとは隔離されますので、コミット履歴等は失われます。

どのような方法がGithubでパスワード入りのプログラムをあげるのに適した方法なのでしょうか?ご回答いただけると助かります。

回答

たとえばRuby on Rails では、 config/database.yml に、lain003さんが言っているようなパスワードなどを書いていて、よくある運用方針も仰るとおり、gitignoreなどした状態でpushしておく様な仕組みになっていますね。
但し、 database.yml.sample といったファイルが一緒に生成されて、こちらを元にファイルを作ることが出来ます。

残念ながら、こうパッとした解決策というのはなさそうなので、実行時に分かりやすいエラーが出て、そのファイルが必要である事などのセットアップ手順、ファイルのフォーマットをREADME.mdなどに書いておくことで対処するしかなさそうです。

編集 履歴 (0)
  • お返事ありがとうございます。yml等が一般的な手法だったのですね。この方向で実装してみようと思います。ありがとうございました。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。