允许travis.ci推送github

允许travis.ci推送github,git,github,travis-ci,Git,Github,Travis Ci,我希望我可以添加travis.ci作为合作者,但没有发现任何这方面的东西。也许这是一种安全措施,因为他们不想在虚拟环境中泄露他们的凭据 其他(不满意的)想法: 通过加密的VAR与travis共享我的github凭据 为travis创建单独的github帐户 创建单独的ssh密钥,与travis共享(加密),添加到我的github 有人有更好的主意吗 上下文:我正在从travis.ci发布我的项目,它会自动分配一个新的版本号,作为git标记跟踪,例如v1.0.5 如果没有任何设置,它显然会由

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

其他(不满意的)想法:

  • 通过加密的VAR与travis共享我的github凭据
  • 为travis创建单独的github帐户
  • 创建单独的ssh密钥,与travis共享(加密),添加到我的github
有人有更好的主意吗


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

如果没有任何设置,它显然会由于缺少权限而失败:

使用“git push origin v0.1.41”推送到远程`
远程:无效的用户名或密码。
致命:对“”的身份验证失败https://github.com/mpollmeier/sbt-ci-release-early-usage.git/'

我最终使用了一个的github访问令牌
,但我仍然渴望听到更好的选择…

我最终使用了一个github访问令牌
,但我仍然渴望听到更好的替代方案…

这背后的原因与安全相关,但与您描述的方式不同。顾名思义,公共回购是公开的,这意味着任何人都可以推动改变,但只有经过挑选的人才能推动。由于Travis默认只从回购中提取资金,因此Travis没有必要拥有特殊的访问权

如果Travis无论如何都会请求写访问,许多用户会抱怨不信任Travis,因为它请求默认情况下不应该做的事情的权限

如果您希望授予Travis写访问权限,唯一的方法是您在问题中描述的方法,但为了完整起见,我将对它们进行总结(从大多数到不太喜欢):

  • 创建GitHub访问密钥(如您所做的那样)
  • 创建ssh密钥,对其进行加密并与travis共享(由于存在错误,travis cli无法在Windows上加密文件,因此很乏味)
  • 通过加密的环境变量与Travis共享github凭据
只有当您希望能够将您的提交与Travis完成的提交分开时,才需要为Travis创建一个单独的帐户,但这并没有添加任何安全层


无论您选择何种方式,加密信息在设计上都是安全的。如果有人提交拉取请求,而您启用了拉取请求的生成,Travis将不会与提交者共享您的加密密钥()。

这背后的原因与安全相关,但与您描述的方式不同。顾名思义,公共回购是公开的,这意味着任何人都可以推动改变,但只有经过挑选的人才能推动。由于Travis默认只从回购中提取资金,因此Travis没有必要拥有特殊的访问权

如果Travis无论如何都会请求写访问,许多用户会抱怨不信任Travis,因为它请求默认情况下不应该做的事情的权限

如果您希望授予Travis写访问权限,唯一的方法是您在问题中描述的方法,但为了完整起见,我将对它们进行总结(从大多数到不太喜欢):

  • 创建GitHub访问密钥(如您所做的那样)
  • 创建ssh密钥,对其进行加密并与travis共享(由于存在错误,travis cli无法在Windows上加密文件,因此很乏味)
  • 通过加密的环境变量与Travis共享github凭据
只有当您希望能够将您的提交与Travis完成的提交分开时,才需要为Travis创建一个单独的帐户,但这并没有添加任何安全层


无论您选择何种方式,加密信息在设计上都是安全的。如果有人提交拉取请求,而您启用了拉取请求的生成,Travis将不会与提交者共享您的加密密钥().

创建一个单独的帐户可以让您更好地控制travis可以推送到的回购协议。这是不正确的,因为您必须将加密凭据分别添加到您希望travis能够推送到的每个回购协议中。这背后的原因是Travis在每次回购中都使用单独的加密密钥。我想Michael的观点是:如果你的git令牌被泄露(可能打印在构建日志上),恶意用户将拥有对你所有公共存储库的推送权限。如果您创建了一个账户,并将其作为单一回购协议的合作者添加,则风险更为有限。我认为在回答中应该提到这一点。如果代币出现问题,您可以随时删除代币。创建单独的帐户可以让您更好地控制travis可以推送到的回购协议。这是不正确的,因为您必须将加密凭据分别添加到您希望travis能够推送到的每个回购协议中。这背后的原因是Travis在每次回购中都使用单独的加密密钥。我想Michael的观点是:如果你的git令牌被泄露(可能打印在构建日志上),恶意用户将拥有对你所有公共存储库的推送权限。如果您创建了一个账户,并将其作为单一回购协议的合作者添加,则风险更为有限。我认为在回答中值得一提。如果令牌被破坏,您可以随时移除它