如何隐藏秘密密钥提交到bitbucket私人回购?

时间:2016-10-13 18:03:16

标签: python git

我正在使用python。目前,我正在这样做。我有一个名为keys.py的文件,我存储在我的密钥中,例如AWS_SECRET等。

在我的.gitignore内,我有keys.py,因此它不会被提交到bitbucket。

我的keys.py看起来像这样。

#!/usr/bin/env python

AWS_KEY = "1231231231"
AWS_SECRET = "23123123123"
PHONE_NUMBER = "12312312312"

在需要密钥的python文件中,我执行以下操作。

import keys

print keys.AWS_KEY

我现在遇到的问题是,现在bitbucket支持管道,我能够进行测试和填充并直接部署到服务器。但是,由于keys.py不在我的仓库中,因此bitbucket无法测试代码。

bitbucket中有环境变量设置。但这需要我改变我的代码库以接受环境变量。

如何使用bitbucket管道?我应该更改我的代码以使用环境变量吗?有没有更好的方法?

谢谢大家。

2 个答案:

答案 0 :(得分:1)

试试这个:

import os

AWS_KEY = os.environ.get('AWS_KEY', 'XXXXXX')
AWS_SECRET = os.environ.get('AWS_SECRET', 'YYYYYY')
PHONE_NUMBER = os.environ.get('PHONE_NUMBER', 'ZZZZZ')

但首先需要在bitbucket

中的环境变量中设置AWS_KEY,AWS_SECRET,PHONE_NUMBER

答案 1 :(得分:1)

您应该使用环境变量。这是常态。您必须根据此更改调整代码。

一个简单的修复可能是让您的keys.py文件查找环境变量。您可以按如下方式检索环境变量:os.environ.get("VARIABLE_NAME")

顺便说一句:根据您的使用情况,您可能希望编写测试,以便他们不依赖实际调用服务;例如通过编写专门用于测试的模拟类。这是正常的做法,它也会加快你的测试速度。当然,这并不总是容易或实际的。所以也许可以看看模拟和其他测试技术。