允许travis.ci推送github

问题描述 投票:0回答:2

我希望我可以添加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/'

git github travis-ci
2个回答
1
投票

这背后的原因是与安全相关,但不是你所描述的方式。公众回购 - 顾名思义 - 公共,这意味着任何人都可以提取变更,但只有选定的人可以推动。由于特拉维斯默认只从回购中提取,因此特拉维斯无需拥有特殊的访问权限。

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

如果您希望授予Travis写访问权限,那么唯一的方法就是您在问题中描述的那些,但我会为了完整性而总结它们(从大多数到不太喜欢):

  • 创建一个GitHub访问密钥(就像你一样)
  • 创建一个ssh密钥,对其进行加密并与travis共享(由于travis cli无法加密Windows上的文件,因此很繁琐)
  • 通过加密的环境变量与Travis共享您的github凭据

只有当您希望能够将提交与Travis完成的提交分开时,才需要为Travis创建单独的帐户,但它不会添加任何安全层。

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.