允许travis.ci推送github

时间:2018-09-06 13:49:34

标签: git github travis-ci

我希望我可以添加travis.ci作为合作者,但没有找到任何朝着这个方向发展的东西。也许这是一种安全措施,因为他们不想在虚拟环境中泄漏其凭据。

其他(不令人满意的)想法:

  • 通过加密的vars与travis共享我的github凭据
  • 为travis创建一个单独的github帐户
  • 创建单独的ssh密钥,与travis共享(加密),添加到我的github

有人有更好的主意吗?


上下文:我正在从travis.ci发布我的项目,它会自动分配一个作为git标签跟踪的新版本号,例如v1.0.5

如果不进行任何设置,则显然由于缺少权限而失败: pushing to remote, using `git push origin v0.1.41` remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/mpollmeier/sbt-ci-release-early-usage.git/'

2 个答案:

答案 0 :(得分:1)

其背后的原因与安全性有关,但与您描述的方式无关。公用存储库-顾名思义-是公共的,这意味着任何人都可以进行更改,但只有选定的人才能进行更改。由于Travis默认情况下仅从回购中提取信息,因此Travis无需具有特殊的访问权限。

如果Travis无论如何都会请求写访问权限,那么许多用户会抱怨不信任Travis,因为它请求对默认情况下不应执行的操作的许可。

如果您仍然希望授予Travis写访问权限,那么唯一的方式就是您在问题中所描述的方式,但是为了完整起见,我将对其进行总结(从最不推荐到次要):

  • 创建GitHub访问密钥(与您一样)
  • 创建一个ssh密钥,对其进行加密并与travis共享(这很麻烦,因为travis cli由于错误而无法在Windows上加密文件)
  • 通过加密的环境变量与Travis共享您的github凭据

仅当您希望将提交与Travis所做的提交分开时,才需要为Travis创建一个单独的帐户,但这并不会增加任何安全性。

无论选择哪种方式,加密信息在设计上都是安全的。如果有人提交了拉取请求,并且您为拉取请求启用了构建,则Travis不会与提交者(as stated in the docs)共享您的加密密钥。

答案 1 :(得分:0)

我最终使用的github访问令牌 https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/,但我仍然渴望听到更好的选择...