簡體   English   中英

具有敏感數據的私有和公共Git存儲庫

[英]Private and public Git repositories with sensitive data

我目前正在Heroku上運行一項服務。
部署與Heroku一起使用的方式是將代碼推送到git存儲庫,該存儲庫觸發構建並隨后部署新代碼。
由於這是將服務部署到Heroku的唯一方法,因此該git存儲庫包含許多敏感信息,例如幾個配置文件中的令牌和客戶端機密。 因此,存儲庫目前是一個私有存儲庫,但我想將其變為公共存儲庫。

通常我只是.gitignore配置文件並將它們排除在外,但由於提交文件是將它們送到Heroku的唯一方法,我不能這樣做。

我想我可以通過兩個分支來解決這個問題,我只需要推送到不同的遙控器,其中一個是私人的去Heroku,一個是GitHub的公共分支。

在開發過程中,我會推送到私有分支,然后將這些更改(減去配置)合並到公共分支,一切都會好的。 不幸的是,這樣做會導致合並包含來自私有分支的所有歷史記錄,其中包括敏感數據,所以這是不行的。

是否有可能以其他方式做到這一點?

我也對替代解決方案持開放態度。
這些情況通常如何解決?
我覺得這不可能是一個獨特的情況。

您可以使用Heroku的Config Vars存儲您的敏感數據。 您將能夠從代碼中將數據作為環境變量進行訪問。

如今,大多數雲托管服務都能讓您設置環境變量,將其用於敏感值被認為是一種很好的做法

例如,您可以使用heroku cli設置環境變量,如下所示:

heroku config:set GITHUB_USERNAME=joesmith

大多數編程語言提供了訪問環境變量的方法。 例如,使用Python,您可以使用:

import os
print(os.environ['GITHUB_USERNAME'])

無論您當前使用敏感數據,都可以將其替換為環境變量。

環境變量的另一個優點是它們無處不在。 幾乎每個操作系統和雲服務都支持它們,因此如果您希望開源項目並支持盡可能多的平台,那么它們就不用擔心了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM