克服公共项目的 GitHub API 速率限制?

2024-01-24

我有一个公共存储库,它是 Ansible 角色。此 Ansible 角色使用 GitHub API 来获取给定存储库的最新版本。我使用此元数据以便随后下载给定项目的最新版本二进制文件。

不幸的是,当我在 Travis 中运行测试并偶尔在本地计算机上运行测试时,我遇到了 GitHub 的 API 速率限制。由于这是一个面向公众的项目,我有什么选择来克服这个速率限制?

I could在 Ansible 中使用某种秘密管理系统或通过 Travis 环境变量公开值,但是公共代码是否有处理此类场景的标准实践?


未经身份验证的请求每小时只能获得 60 个。经过身份验证的请求每小时可达 5000 个。

要进行身份验证,生成个人 API 访问令牌 https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line供项目使用。将其放入加密的 Travis 环境变量 https://docs.travis-ci.com/user/environment-variables/#defining-encrypted-variables-in-travisyml或其他一些存储加密秘密的方式(例如,Rails 内置了加密凭证 https://www.engineyard.com/blog/rails-encrypted-credentials-on-rails-5.2。使用该令牌访问 API。

为该项目创建一个单独的 Github 帐户,并为此使用 API 令牌。这可以避免与其他人共享其速率限制。

尽可能在本地克隆上使用 Git 命令。例如,如果您想查找提交而不是通过API来做 https://developer.github.com/v3/git/commits/,克隆存储库并使用普通的 Git 命令。缓存克隆并git fetch定期使它们保持最新状态。

最后,利用有条件的请求 https://docs.github.com/en/rest/overview/resources-in-the-rest-api#conditional-requests。它们使用 HTTP 标头,因此您可以安全地使用缓存的查询。这些不计入您的速率限制。一个好的 Github 身份验证库应该有一个缓存选项。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

克服公共项目的 GitHub API 速率限制? 的相关文章

  • 配置 Eclipse/EGit 来跟踪上游存储库

    我正在使用 EGit 如新的 Eclipse 4 2 Juno 版本中提供的 我在 GitHub 上有一个存储库 是从另一个上游存储库分叉的 当我从 Github 上的存储库在 Eclipse 中创建项目时 它正确设置origin指向 Gi
  • Unity 2019 - 如何修复 TextMeshPro 2.0 错误 cs0433

    我刚刚开始包含 Vuforia SDK 的新项目 进行一些更改后 我决定从 Asset Store 安装 GitHub 扩展以进行一些备份 之后我的 textMeshPro 插件变得疯狂 抛出了一个我无法处理的恼人错误 错误说 Librar
  • 合并两个github帐户

    假设我有两个 github 帐户xyz 邮件 ID email protected cdn cgi l email protection and abc email protected cdn cgi l email protection
  • 将 git 存储库拆分为压缩的公共和初始私有

    我想在 Github 上开源一个项目 有相当多的提交 超过 2k 我会将它们压缩成一个 初始提交 以便从一个干净的代码库开始并隐藏一些历史内容 问题是 是否有可能 保留一个包含所有初始提交的私有存储库 其中会有一些秘密密钥 travis c
  • 为什么 git-cherry pick 没有说要提交什么?

    我对以下问题进行了很多搜索 但无法获得任何实质性信息 我创建了一个临时分支 202116 并尝试对 gerrit 202116 进行挑选 并收到以下消息 为什么我无法挑选此提交以及为什么会收到此错误 lt gt git fetch ssh
  • 如何将“develop”分支推送到远程“origin”?

    当我做git flow init它创造了一个master and develop分支机构 当我添加遥控器时git remote add origin email protected cdn cgi l email protection Ne
  • 为了使“我的更改”正常工作,Github 的正确 VCS 用户名设置是什么?

    我有一个适合个人的 TeamCity 持续构建流程设置GitHub项目 https github com benpowell HelloTxt NET效果很好 但是 在 TeamCity 中 我想在 我的更改 下查看提交列表 http te
  • GitHub 恢复或重置? [复制]

    这个问题在这里已经有答案了 正如您在图片中看到的 我正在功能 forum kolo 3 中工作 我决定完成该功能并将其合并到开发中 但没有将更改推送到远程开发 因此它只是本地更改 然后我意识到这是一个坏主意 现在我想删除这个合并 就像它从未
  • Bazel 构建缺少严格的依赖关系

    我正在尝试使用 brazel 构建 Go 应用程序 它是一个现有的私有 GitHub 存储库 位置如下 github xyz com repo name 我正在研究 我的目标是从 main go 文件创建一个二进制文件 该文件的方法依赖于其
  • 从 GitHub Pages 中删除 html 扩展

    我正在使用 GitHub 页面来托管我的最新网站 http mysite github io 我想知道是否有办法从子页面末尾删除 html 扩展名 http mysite github io contact html 因为无法访问服务器 它
  • 说它已提交,但在 GitHub 中它没有显示

    我刚刚在 Ubuntu 机器上安装了 Rails 我设置了 git 并创建了一个 ssh 密钥来链接到我的帐户 我创建了一个要提交的存储库 并创建了一个示例项目来测试 名为first app 当我提交时 它说一切都已提交 但我去了 gith
  • 执行“挤压和合并”后可能出现问题?

    I used Squash and Merge用于合并dev分支到main因为我不想要来自的一些提交消息dev出现在的分支main但现在我发现main比 dev 提前 1 次提交 并且该图显示 两者之间没有联系dev and main 这是
  • 拉取请求是 Git 的一部分,还是 GitHub、Gerrit 和 Atlassian Stash 等工具的功能?

    Pull 请求似乎是使用 Git 进行代码审查的常用方法 然而 尚不清楚该术语在使用内置函数时是否具有相同的含义 git request pull 或不同的工具 Pull 请求是 Git 的固有功能 还是 GitHub Gerrit 或 A
  • Git 每次提交和拉取时都要求输入密码

    我正在使用带有 Git 扩展的 Visual Studio 2012 我正在使用位桶来存储项目 每次 每当我想要推送或拉取 Git 时 都会询问我帐户密码 在 Windows 8 中 Thanks 您可以使用gitcredentials h
  • 如何为 github 中两个分支之间的单个文件生成差异

    我需要为单个文件生成一个 diff 以显示两个版本之间的差异 这实际上是 github 中的标签 然后我想通过电子邮件将此差异发送给某人 因此差异的 github URL 将是理想的选择 github 比较视图将允许我对所有更改的文件执行此
  • Github 版本如何生成存档文件名?

    我刚刚在 github 上为我的 NFQL 软件创建了版本 这是发布页面 https github com vbajpai nfql releases https github com vbajpai nfql releases 对于最新版
  • 有关多个远程存储库的 Git 状态

    我有一个脚本 如果我忘记在 40 多个存储库中提交或推送一些代码 它会通过电子邮件向我发送提醒 在我的两个项目中 我遵循了这些帖子中的答案 其中我设置了 git push 来推送到多个存储库 从多个远程位置拉 推 https stackov
  • web2py git 集成 - localhost 和 pythonanywhere

    我完全不知道如何将 Github 集成到 web2py 中 我在 USB 上安装了 web2py任何地方的Python http www pythonanywhere com web2py概述文档chapter3http web2py co
  • 主存储库和本地存储库在同一台机器上

    我是 Git 新手 我已经在 Linux 服务器中创建了一个主存储库 同一个服务器将由 5 组 每组 3 个用户 使用 我想为每个组创建一个本地存储库 小组成员又应该为每个人创建一个本地存储库 使用内容并将修改提交到小组的本地存储库 我该怎
  • 将 github 上的包安装到 Spyder 中

    我一直在尝试安装并导入mpl finance来自 github 的包 在我的 Spyder 环境中没有成功 我努力了 pip install e git https github com matplotlib mpl finance git

随机推荐

  • REST 中的资源和资源表示有什么区别?

    我是 REST 新手 刚刚开始阅读一些教程 真正让我困惑的一件事是 txt xml json 形式的内容是什么 资源还是资源表示形式 一定是后者吧 由于资源可以是视频 音频或其他 MIME 类型 以下面的例子为例 假设我得到的描述类似于 R
  • 长时间等待向 Service Worker 发出请求

    我注意到 等待服务工作人员响应缓存中的项目的时间并不像您预期 的那么快 我发现两者的等待时间相同sw precache和一个定制的书面服务人员 造成此等待时间的可能原因是什么 如何减少它 My fetch自定义 Service Worker
  • ggplot错误的颜色分配

    颜色到十六进制值的分配是错误的 我不明白为什么 在将十六进制颜色添加到数据框之前我对它们进行了排序data然后在 ggplot2 函数中使用 我以为这样就能解决问题 但事实并非如此 我还创建了向量col其中包含十六进制以及 rgb 颜色值
  • Mod_Rewrite 不适用于 codeigniter 站点

    我为我的 codeigniter 站点尝试了 modrewrite 但是当我进入 htaccess 文件时 已经有一个了 RewriteEngine on RewriteCond 1 index php combine php images
  • Swift Scenekit - 居中 SCNText - getBoundingBoxMin:Max 问题

    享受 SCNText 上的alignmentMode 选项带来的乐趣 谷歌搜索了一下 看起来alignmentMode和containerFrame有问题 我发现的替代方案建议使用获取边界框功能来查找文本大小 然后手动进行相应调整 很好 除
  • W3C 验证器显示“提要未验证”“url 必须是完整的 URL”...有什么问题吗?

    正在验证我的提要 它的附件的 URL 为 https archive org download NigelFarageAPersonalMessageToNorthernIrelandVoters Nigel 20Farage 20a 20
  • 当复选框被选中时如何调用javascript函数

    当复选框位于 gridview 内时 如何调用 Javascript 函数 protected void AlteraStatusExpiraSeteDias Click object sender EventArgs e for int
  • 从 Rails 2.3.6 开始不推荐使用 overwrite_params —— 接受的解决方法吗?

    所以 看起来像overwrite params从 Rails 2 3 6 开始已弃用 是否存在被普遍接受为最佳实践的合适解决方法 例如 我曾经能够执行以下操作 我认为这非常有用 url for overwrite params gt pag
  • 散列范围

    我有一个范围元素数组 每个元素都有一个开始和一个结束 在数组内 范围不重叠 并且已排序 即 代码只是为了说明 不要指望它能够编译 var arr 0 3 5 10 15 59 给定一个值 比如 9 是否有范围的哈希函数可以让我快速获取包含该
  • Java构建时间常数配置

    我有一个项目想使用多种配置来构建 我有一个常量需要在构建之间有所不同 但我不知道如何根据我的配置更改它 例如 我希望能够根据配置文件中的值执行以下操作 WebService targetNamespace http example com
  • 在 PHP 中获取浮点数的小数部分的最佳方法是什么?

    在 PHP 中如何找到浮点数的小数部分 例如 如果我有值1 25 我想回来0 25 x x floor x
  • C:表示不带浮点数的分数

    我正在为没有硬件浮点支持的嵌入式系统 MSP430 编写一些代码 不幸的是 当我进行测距时 我需要在代码中使用分数 而精度为 1m 的短程传感器并不是一个很好的传感器 我可以用整数进行尽可能多的数学运算 但到最后 我肯定需要对两个值进行分数
  • 使用 iOS 模块构建 Native View 并在 Titanium 中使用它们

    我想构建一个 iOS 模块 其中有一个 viewController 类及其 xib 文件 现在的问题是如何从我的钛代码中调用该视图 我知道有可用的视图代理 但由于文档不太好 不知道如何使用它们 到目前为止 我已经创建了一个可以传递非图形数
  • 如何从 PHP 中的日期时间戳获取时间和日期?

    我有一根像8 29 2011 11 16 12 AM 我想保存在变量中 例如 dat 8 29 2011 and tme 11 16 12 AM 如何实现这一目标 你能举个例子吗 E g
  • 无法向 Google 电子表格添加行

    我可以打开工作表并从标题中读取单元格 Google 电子表格中的第一行是标题 我已在 Google 电子表格中手动添加了 Name my val1 my val2 my val3 Other 这是相关的谷歌文档 https develope
  • 从 git svn clone 中排除文件

    我正在将 SVN 存储库迁移到 Git 并且我有 7000 多个二进制文件 我希望从一开始就将它们排除在导入之外并成为 Git 历史记录的一部分 而不是在之后清理它们 参考此question https stackoverflow com
  • 如何将元组的元组转换为其元素的计数?

    我有这个tuple元组 TupleOfTuples Venue1 Name1 Venue1 Name2 Venue2 Name3 Venue3 Name4 Venue3 Name5 Venue3 Name6 我想将其转换以获得如下结果 Ou
  • 如何在 WPF 中使用线程的结果?

    不幸的是 线程和任务对我来说是一个很大的谜 必须在与 DependencyObject 相同的线程上创建 DependencySource 我正在努力避免用户界面冻结 我的方法是在线程中完成工作 然后使用线程的输出设置属性 我有一个基类Jo
  • 重新选择 - 调用另一个选择器的选择器?

    我有一个选择器 const someSelector createSelector getUserIdsSelector ids gt ids map id gt yetAnotherSelector store id yetAnother
  • 克服公共项目的 GitHub API 速率限制?

    我有一个公共存储库 它是 Ansible 角色 此 Ansible 角色使用 GitHub API 来获取给定存储库的最新版本 我使用此元数据以便随后下载给定项目的最新版本二进制文件 不幸的是 当我在 Travis 中运行测试并偶尔在本地计