在编写shell脚本时,我应该在哪里存储我的github O-Auth令牌?

时间:2017-01-29 23:40:03

标签: bash shell security github travis-ci

我正在编写一个shell脚本,将代码从我的“测试”分支推送到我的“主”分支。我正在使用Travis-CI来测试我的代码并运行shell脚本,每次将新提交推送到“测试”时都会启动它。我可以看到在Travis-CI作业日志中运行的shell脚本,但是我收到以下错误:

remote: Invalid username or password.

fatal: Authentication failed for '<repo>'

我知道这是我的密码无效,因为我之前在脚本中配置了用户名和电子邮件。

现在,我的主要问题是我应该如何以及在哪里存储我的github O-Auth密钥?我不想将它硬编码到我的shell脚本中,因为那样每个人都能看到它。关于如何创建脚本来推送我的代码而不泄露我的密码的任何想法?

2 个答案:

答案 0 :(得分:0)

将您的秘密放入您可以在脚本中引用的环境变量中。

导出MY_OAUTH =&#39;某些oauth键&#39;

然后你可以在你的脚本中使用变量$ MY_OAUTH。

如果你想让环境变量永久化,请看:

https://unix.stackexchange.com/questions/117467/how-to-permanently-set-environmental-variables

答案 1 :(得分:0)

Travis提供了一种加密/解密文件和变量的工具,以便在构建过程中使用。最简单的方法是通过travis的项目的Web界面。点击More options -> Setttings,您就会看到一个表单来输入名称/值对。然后你可以直接使用输入的名字,但要确保你正确地逃脱特殊字符等。 Travis docs