如何从Travis-ci.com私有构建获取公钥?(Curl实现无需Ruby环境)
获取Travis CI.com私有仓库公钥的Curl方案
没错,私有仓库的Travis CI公钥获取确实需要认证——毕竟私有资源不能随便访问嘛。不用Ruby或Travis gem,纯Curl就能搞定,分两步走:
1. 获取Travis CI API访问令牌
Travis CI.com和GitHub深度绑定,我们需要先通过GitHub的个人访问令牌来换取Travis的API令牌:
第一步:生成GitHub个人访问令牌
- 登录GitHub,进入「Settings」→「Developer settings」→「Personal access tokens」
- 点击「Generate new token」,勾选
repo权限(因为要访问私有仓库的Travis数据),然后生成并保存好这个令牌(别弄丢了,刷新页面就看不到了)
第二步:用Curl换取Travis令牌
把下面命令里的YOUR_GITHUB_TOKEN替换成你刚生成的GitHub令牌,执行后会返回包含access_token的JSON结果,把这个access_token记下来:
curl -s -X POST \ -H "Content-Type: application/json" \ -d '{"github_token": "YOUR_GITHUB_TOKEN"}' \ https://api.travis-ci.com/auth/github
2. 用Travis令牌获取私有仓库公钥
现在用拿到的Travis令牌,替换下面命令里的YOUR_TRAVIS_TOKEN、USERNAME(你的GitHub用户名)和REPO_NAME(私有仓库名称),执行就能拿到仓库的公钥了:
curl -s -H "Authorization: token YOUR_TRAVIS_TOKEN" \ https://api.travis-ci.com/repos/USERNAME/REPO_NAME/key
补充说明
- 一定要用
api.travis-ci.com域名,api.travis-ci.org只针对公开项目,私有项目的API都在.com域名下 - GitHub令牌的
repo权限是必须的,否则Travis无法验证你对私有仓库的访问权限 - 如果Travis令牌过期了,重复第一步重新生成即可
内容的提问来源于stack exchange,提问作者Robin
相关产品推荐
相关产品推荐

