pdo*_*926 3 continuous-integration heroku jenkins travis-ci
是否有制裁的方式来编写脚本或绕过Heroku Toolbelt的登录提示?我遇到了许多声称提供解决方案的黑客(期望,环境变量,插入环境变量在.netrc等),但我真的想找到一个稳定的解决方案.
从我在文档中看到的,有三种方法可以解决这个问题.
第一个是通过登录和密码(bleh)进行身份验证.知道输入格式 - 在一行登录,在另一行登录 - 我们可以cat或echo在以下数据:
通过安全env vars:
(
echo "$HEROKU_CREDENTIALS_EMAIL" # or you can plaintext it, if you're feeling adventurous
echo "$HEROKU_CREDENTIALS_PASSWORD"
) | heroku login
Run Code Online (Sandbox Code Playgroud)
突出显示重要部分(变量名称和安全性).
或者通过加密文件:
准备.heroku_credrepo根目录中指定的文件:
pdoherty926@gmail.com
IAmPdohertyAndThisIsMyPasswordIWorkHereWithMyOldMan
Run Code Online (Sandbox Code Playgroud)
然后加密它:
travis encrypt-file .heroku_cred
Run Code Online (Sandbox Code Playgroud)
这将给你两件事:一个.heroku_cred.enc在repo root中命名的文件和一个在Travis上解密文件的命令.git add加密文件(小心不要意外地抓取未加密的文件!)并将命令添加到before_install.然后,到想要使用Heroku进行身份验证的地方添加:
cat .heroku_cred | heroku login
Run Code Online (Sandbox Code Playgroud)
现在,这种方法很糟糕有两个原因:首先,你使用的是文字密码,这很糟糕,因为如果它泄漏了你100%性交,如果你改变它,你的构建将开始虚假失败.
下一个方法是使用了HEROKU_API_KEY的环境变量,这可能会"与AUTH命令的正常运转干扰",但是,这并不重要,因为你没有用其他方式验证反正.
这样做不需要更改.travis.yml,只需要一个名为HEROKU_API_KEY包含输出的安全环境变量
heroku auth:token
Run Code Online (Sandbox Code Playgroud)
跑到您的机器上(您可能已经过身份验证).
突出显示重要部分(变量名称和安全性).
此方法结合了安全性(使用的OAuth令牌,可以撤销)和简单的设置.
还有第三种方式:使用~/.netrc,它将与整个生态系统合作,就好像您通过CLI使用用户名和密码进行身份验证(但您使用的是OAuth令牌,这样更好).
遵循这一步骤的步骤类似于1.2:
首先创建一个名为的文件.heroku-netrc,其中包含~/.netrc负责使用Heroku进行身份验证的部分(详细信息),如下所示:
machine api.heroku.com
login me@example.com
password c4cd94da15ea0544802c2cfd5ec4ead324327430
machine git.heroku.com
login me@example.com
password c4cd94da15ea0544802c2cfd5ec4ead324327430
Run Code Online (Sandbox Code Playgroud)
然后,要加密它,运行:
travis encrypt .heroku-netrc
Run Code Online (Sandbox Code Playgroud)
您将获得一个解密命令(将其添加到before_install).heroku-netrc.enc,您应该git add(注意不要添加未加密的.heroku-netrc).然后,将此添加到install步骤:
cat .heroku-netrc >> $HOME/.netrc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |