2017-06-03 15 views
7

私はいくつかのコードをGitHubにプッシュしたいと思います。それは私が公開したくない私的なAPIキーを含んでいます。それを自動的に隠す方法はありますか?手動でコードから削除する必要がありますか?GithubにコードをプッシュしてAPIキーを隠すには?

+2

あなたが他人に見せたくない情報が含まれているものは、決してコミットしないでください。 –

答えて

6

.envファイルを使用し、環境変数からキーを読み取ることを検討する必要があります。どのようにするかは、使用する言語とツールによって異なります(node.jsphpなど)。

.envをに追加することで、.envファイルをコミットから除外できます。ダミーのデータまたは空白を使用して設定例.env.exampleをアップロードして、アプリケーションに必要なスキーマを表示することもできます。

5

あなたのAPIキーをコードに入れることは、とにかく悪い考えです。つまり、コードを使用したい他の人は、コードを編集して再構築する必要があります。

このような用途のための教科書ソリューションは、資格情報をいくつかの設定ファイルに移動し、設定ファイルの構造と場所についてのREADME.mdファイルに明確な文書を追加することです。 gitignoreファイルにそのエントリを追加して、自分自身(そして他の誰か)があなたの個人情報を誤ってGitHubにプッシュしないようにすることもできます。

2

サーバーにenviornment variablesを追加して、APIキーを非表示にすることができます。一般的なプログラミング言語には、環境変数にアクセスするためのデフォルトのメソッドがあります。

3

あなたがあなたのリポジトリにコミットしてはならない

config.yml 

のような実用的なデータを持つファイルを持っていつでも。私はあなたに例を示します。しかし、実際の値のない、あなたがfooを隠し、ユーザ名とパスワードのフィールドを維持することを目指しbar values, remove this file from your repository, but add just a distribution`ファイルにしたい場合は

# app/config/credentials.yml 
credentials: 
    username: foo 
    password: bar 

は、いくつかのユーザ名とパスワードを使用して、YAMLファイルを持っていると仮定します。インストール中

# app/config/credentials.yml.dist 
credentials: 
    username: ~ 
    password: ~ 

あなたはapp/config/credentials.ymlapp/config/credentials.yml.distをコピーし、このファイルを取得することができます。

また、ファイルにapp/config/credentials.ymlを追加することを忘れないでください。

そのAPIキーの同じ:

# app/config/config.yml 
config: 
    credentials: 
     username: foo 
     password: bar 
    api_stuffs: 
     api_foo: fooooo 
     api_secret: baaaaar 
     api_token: tooooken 

これは、設定ファイルのために働く、とあなたが設定の構造が、賢明ではないデータを共有するために必要なすべての時間を節約し、良好なパターンです。 Iniファイル、設定など。

+0

ありがとうございました。 :) –

+0

Please downvote O_o – sensorario

関連する問題