【问题标题】:Trimming API keys before pushing to git在推送到 git 之前修剪 API 密钥
【发布时间】:2016-12-04 17:21:01
【问题描述】:

我有一个使用 Twitter 身份验证的项目。这意味着,该项目具有应该保持私有的 API 密钥。我想让它开源,这就是为什么我必须在 git push 之前修剪所有 API 密钥。 2天来,我一直在手动操作。这是一个非常累人的过程。

现在,我认为将文件 sftp 传输到实时服务器也很麻烦,我应该在实时服务器上设置一个 webhook 并让它拉取所有更改。

但是,git 版本会修剪所有 API 密钥。因此,现场站点将无法正常工作。我需要一些关于如何解决这个问题的想法..

-> remove auth keys before pushing to git
-> put keys back in when pulling on live server

【问题讨论】:

  • 不要将它们存储在你的代码中,使用环境变量
  • @IsmailBadawi 这是一个 php 项目。我不确定如何使用 env。 PHP中的变量
  • 我敢打赌,如果@haider 使用 FTP,他们将无法访问 PHP CGI 进程,也无法设置环境变量。
  • @BenCampbell 我确实有 root 访问权限,但我更喜欢下面答案中提供的建议。

标签: git github


【解决方案1】:

使用单独的文件来存储私人信息。不要签到。

最简单的做法是拥有一个包含默认配置的配置文件。这是签入并单独留下。然后用户提供他们自己的自定义配置,覆盖默认设置。此用户编写的文件未签入。将您的身份验证信息放入其中。

另一个优点是现在您可以更改默认配置而不会影响本地自定义。

经验法则是,您永远不想拥有被跟踪但有无法签入的更改的文件。这使开发变得更加困难,并且只是错误地要求某人git add .git commit -a。而是将需要更改的位放入一个单独的、未跟踪的文件中。


但是,git 版本会修剪所有 API 密钥。所以现场站点将无法运行。

Git 不是一个发布工具,不要试图像一个发布工具一样使用它。除了简单地从 Git 存储库中获取文件之外,您还需要一些其他方法将文件放到服务器上。像rsync 这样简单的东西就可以了。

【讨论】:

猜你喜欢
  • 2013-06-22
  • 2016-06-13
  • 2019-02-01
  • 2018-11-02
  • 2013-10-12
  • 1970-01-01
  • 2016-03-14
  • 2019-03-29
  • 2013-08-26
相关资源
最近更新 更多