【问题标题】:Is it possible to use some auth credentials of travis-ci or my user to use github api是否可以使用 travis-ci 的一些身份验证凭据或我的用户使用 github api
【发布时间】:2015-06-30 22:09:48
【问题描述】:

为了在 Travis-CI 上进行测试,我需要通过 wget 从 github 下载一些项目。这是我在 travis 日志中的内容:

 Requesting a tar: 'wget https://api.github.com/repos/apache/hbase/tarball/1.1.0.1 -O src/main/java/apache-hbase.tar.gz'
 --2015-06-28 18:24:16-- https://api.github.com/repos/apache/hbase/tarball/1.1.0.1
 Resolving api.github.com (api.github.com)... 192.30.252.139
 Connecting to api.github.com (api.github.com)|192.30.252.139|:443... connected.
 HTTP request sent, awaiting response... 403 Forbidden
 2015-06-28 18:24:16 ERROR 403: Forbidden.

Github 支持解释为:

您可能已达到未经身份验证请求的速率限制: https://developer.github.com/v3/#rate-limiting

如果您切换到发出经过身份验证的请求 - 您应该得到一个 更好的 API 速率限制。我们不为 Travis 提供支持 平台,因此您应该联系 Travis 支持以了解 使用其平台发出经过身份验证的请求的选项。

所以问题是:是否可以安全地重复使用 Travis-CI 凭据或我的 travis 用户的凭据来使用 github api 而不受每小时 60 个请求的限制?

【问题讨论】:

    标签: travis-ci


    【解决方案1】:

    您应该能够使用 Github OAuth token,方法是将其安全地存储在 Travis CI 中的 encrypted variable 中,然后将其传递给您的 wget 调用,如下所示:

    // First encrypt your Github OAuth token
    travis encrypt MY_GITHUB_OAUTH_TOKEN=token --add
    

    之前的调用会自动将环境变量哈希添加到您的.travis.yml 文件中。

    那么您应该可以在您的wget 通话中像这样使用它:

    wget \
    --header='Authorization: token $MY_GITHUB_OAUTH_TOKEN' \
    https://api.github.com/repos/apache/hbase/tarball/1.1.0.1 \
    -O src/main/java/apache-hbase.tar.gz
    

    希望这会有所帮助!

    【讨论】:

    • 我的开源项目使用travis的FREE计划,所以我们没有专用服务器,我也使用“sudo:false”,这也有点限制。 “加密变量不会添加到不受信任的构建中,例如来自另一个存储库的拉取请求。” - 这对我们不起作用,我需要 Travis 构建来检查贡献者的 PR。您还有其他想法吗?
    猜你喜欢
    • 2019-04-20
    • 1970-01-01
    • 2021-07-03
    • 2017-06-11
    • 1970-01-01
    • 2020-04-03
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    相关资源
    最近更新 更多