有敏感信息的GitHub公共回购?

时间:2015-11-16 06:16:16

标签: python git github

我正在开发一个Python脚本,但我需要包含我的公共和秘密Twitter API密钥才能工作。我想公开我的项目,但使用Git和GitHub保密敏感信息。虽然我非常怀疑这是可能的,有没有办法阻止GitHub公共回购中的数据?

5 个答案:

答案 0 :(得分:6)

使用git add -p将它们拆分为您不包含的配置文件,或者用占位符替换它们,并且不提交实际值。第一种选择更好。

配置文件可以包含基本的.py文件credentials.py,您可以在其中定义您认为最合适的任何结构中所需的私有凭据。 (字典可能是最合适的)。

您可以通过导入此文件中的结构并访问内容来使用敏感信息。建议使用您创建的代码的其他用户也这样做。

最终使用您的.gitignore文件隐藏此内容。在其中,您只需添加文件名即可将其排除在上传到您的存储库之外。

答案 1 :(得分:3)

没有。相反,从文件加载秘密信息并将该文件添加到.gitignore,以便它不会成为存储库的一部分。

答案 2 :(得分:3)

您可以将api密钥和密码存储在配置文件中,例如config.py,然后将该文件添加到.gitignore文件中,以便它不会存储在您的仓库中。< / p>

在您的商店内config.py您的钥匙和秘密:

api_key = "TWITTER_KEY"` api_secret = "TWITTER_SECRET"

在你现有的python文件中:

...
connection = twitter_connection(config.api_key, config.api_secret)```


Add `config.py` to your `.gitignore` file:

`config.py`

答案 3 :(得分:1)

twitter API密钥通常保存在JSON文件中。因此,当您上传存储库时,您可以修改.gitignore文件以隐藏.json文件。这样做是不会将这些文件上传到git存储库。

你的另一个选择显然是私有存储库,在这种情况下不会是解决方案。

答案 4 :(得分:0)

您可以查看blackbox,以便在VCS中存储敏感信息(git / hg / p4 / svn)。

  

假设您有一个VCS存储库(即Git或Mercurial存储库)和   某些文件包含密码或SSL私钥等机密。   通常人们只是存储这样的文件“并希望没有人找到它们   回购“。这不安全。

     

使用BlackBox,这些文件使用GPG加密存储。进入   没有正确的GPG密钥的VCS repo使它变得毫无价值   有文件。只要你保持你的GPG钥匙安全,你就不会   不得不担心将VCS存储库存储在不受信任的服务器上。   哎呀,即使你信任你的服务器,现在你也不必信任   执行该服务器备份的人员或处理该服务器的人员   备份磁带!