如何将代码推送到Github隐藏API密钥?

问题描述 投票:23回答:4

我想将一些代码推送到我的GitHub存储库。这些代码使用不同的语言,如JavascriptJavaPython等。其中一些代码包含一些我不想发布的私有API密钥。

有没有办法自动隐藏密钥。我应该手动将其从我的代码中删除吗?

有很多项目我想推送给GitHub。因此,手动删除不是一个好选择。

git github api-key
4个回答
13
投票

您应该考虑使用.env文件并从环境变量中读取密钥。如何操作取决于您使用的语言和工具(对于node.jsphp等)。

您可以通过将.env添加到.env来从提交中排除.gitignore文件。您还可以使用虚拟数据或空白上载示例配置.env.example,以显示应用程序所需的架构。


8
投票

任何时候你有像敏感数据的文件

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.dist复制到app/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文件,配置等。


7
投票

无论如何,在代码中使用API​​密钥可能是一个坏主意。这意味着任何想要使用您的代码的人都必须编辑代码并重建它。

此类用例的教科书解决方案是将凭据移动到某个配置文件,并在README.md文件中添加有关配置文件的结构和位置的清晰文档。您还可以在gitignore文件中为其添加条目,以防止您(以及其他任何人)错误地将您的私人信息推送到GitHub。


5
投票

您可以在服务器中添加enviornment variables以隐藏API密钥。所有流行的编程语言都有默认方法来访问环境变量。

© www.soinside.com 2019 - 2024. All rights reserved.