web-dev-qa-db-ja.com

APIキーを隠してGithubにコードをプッシュする方法は?

GitHubリポジトリにいくつかのコードをプッシュしたい。これらのコードは、JavascriptJavaPythonなどのような異なる言語になっています。これらのコードの一部には、私がしたくないAPIキーが含まれています公開します。

キーを自動的に非表示にする方法はありますか?コードから手動で削除する必要がありますか?

GitHubにプッシュしたいプロジェクトはたくさんあります。そのため、手動での削除は適切なオプションではありません。

27
Sreeram TP

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

.env.envを追加すると、.gitignoreファイルをコミットから除外できます。サンプル構成.env.exampleをダミーデータまたはブランクでアップロードして、アプリケーションに必要なスキーマを表示することもできます。

16

次のような賢明なデータを含むファイルがあるときはいつでも

config.yml

リポジトリでコミットしないでください。例を示します。

ユーザー名とパスワードが設定されたyamlファイルがあるとします:

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

foobarの値を非表示にする場合は、このファイルをリポジトリから削除しますが、ユーザー名とパスワードのフィールドを維持することを目的とするdistributionファイルのみを追加しますが、実際の値なし:

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

インストール中に、このファイルを取得して、app/config/credentials.yml.distapp/config/credentials.ymlにコピーできます。

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

APIキーについても同じです:

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

これは構成ファイルに有効であり、構成の構造を共有する必要があるたびに賢明なデータを保存する必要がないたびに、良いパターンです。 Iniファイル、構成など。

8
sensorario

とにかく、コードにAPIキーを含めることはおそらく悪い考えです。つまり、コードを使用する他のユーザーは、コードを編集して再構築する必要があります。

そのようなユースケースの教科書の解決策は、資格情報を何らかの構成ファイルに移動し、README.mdファイルは、構成ファイルの構造と場所を示します。 gitignoreファイルにそのエントリを追加して、自分(および他の誰か)が誤って個人情報をGitHubにプッシュするのを防ぐこともできます。

7
Mureinik

サーバーに 環境変数 を追加して、APIキーを非表示にできます。すべての一般的なプログラミング言語には、環境変数を評価するデフォルトの方法があります。

5