描述错误
auto shipit
命令在尝试生成变更日志发布后以某种方式设法超过 GH 的 API 速率限制。 (见截图)
再现
运行auto shipit
要出现此错误,您需要有一个没有发布但有很多很多 prs 和提交的存储库,因此本质上是高速代码库。
预期行为
发布了一个带有变更日志和版本的新版本。
截图
环境信息:
Environment Information:
"auto" version: v9.49.1
"git" version: v2.26.0
"node" version: v13.12.0
Project Information:
✔ Repository: project (https://github.com/username/project)
✔ Author Name: Paul Dariye
✔ Author Email: [email protected]
✔ Current Version: v0.0.23
✔ Latest Release: 0.0.1 (https://github.com/username/project/releases/tag/0.0.1)
✖ Labels configured on GitHub project (Try running "auto create-labels")
GitHub Token Information:
✔ Token: [Token starting with 76e5]
✔ Repo Permission: admin
✔ User: dariye
✔ API: undefined (undefined)
✔ Enabled Scopes: read:packages, repo, write:packages
✔ Rate Limit: 552/5000
附加上下文
我能够通过传递--no-changelog
标志来解决这个问题。
我有机会看到可以玩的回购吗?
哇,这是很多要求
另外,如果我能得到一个可能有帮助的更完整的日志
实际上能够在本地重新创建。 除了希望,不需要你的任何东西😉
我们确实在semantic-release
创建了很多类似的请求,而且我们没有达到滥用限制,我不知道。 创建评论的请求之间应该有 3 秒的超时时间,您在日志中看到这种情况了吗?
可以肯定的是:您是否在所有这些请求中使用单个 Octokit 实例?
很确定我们只创建了 1 个。
这发生在这里https://github.com/intuit/auto/blob/master/packages/core/src/git.ts#L123
只应在启动时初始化一次https://github.com/intuit/auto/blob/master/packages/core/src/auto.ts#L1643
我可以检查一下
验证:只创建一次
要在汽车上测试此问题:
yarn
yarn build
yarn auto changelog --from v1.0.0 -d
我认为这与https://github.com/octokit/plugin-throttling.js/issues/108有关,但我们只有 1 个 octokit 实例在运行,所以我们不需要集群
你做任何 GraphQL 请求吗?
您能否确认您看到“超过滥用限制”日志以大约每 3 秒 1 的速度发生?
啊,可能是这样。 我们使用@octokit/graphql 但我今天看到你可以通过 octokit 直接做到这一点。 也会试试
我们使用@octokit/graphql 但我今天看到你可以直接使用 octokit
是的,这样它共享相同的请求设置和请求生命周期钩子
🙏
好的,现在运行。 虽然我的速率限制等待了一个小时 😢
@hipstersmoothie如果您遇到此
你能把我链接到构建日志吗?
我已将构建日志发送给您,因为这是一个已关闭的存储库。
@vincentbriglia我很确定我已经解决了 #1424 日志中的问题
你能安装金丝雀版本吗? 它都在不同的范围内,因此您必须替换所有包名称:
yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]
yarn add @auto-canary/[email protected]
@dariye如果您也可以尝试进行测试,我将不胜感激!
试过了
"@auto-canary/all-contributors": "9.49.2-canary.1424.17767.0",
"@auto-canary/auto": "9.49.2-canary.1424.17767.0",
"@auto-canary/conventional-commits": "9.49.2-canary.1424.17767.0",
"@auto-canary/first-time-contributor": "9.49.2-canary.1424.17767.0",
"@auto-canary/npm": "9.49.2-canary.1424.17767.0",
"@auto-canary/released": "9.49.2-canary.1424.17767.0",
github 运行程序 GITHUB_TOKEN 仍然存在问题
现在尝试使用个人令牌(我之前看到过一些差异)
也不适用于个人令牌。
我让你访问私人仓库@hipstersmoothie - 下一个分支的分支
谢谢! 能够很快解决您的问题。 https://github.com/intuit/auto/pull/1424/commits/d6e7be20f17160d253298146b77648b408377890
不过,我认为这与@dariye遇到的问题
确认这解决了我遇到的问题@hipstersmoothie - 周末愉快!
然而@hipstersmoothie这个变化现在停止发布和/或正确计算 semver 版本。
我认为auto
的行为符合预期。 我在这里提到了这一点。 这是因为conventional
提交插件将所有非 semver 提交消息视为skip-release
(例如:杂务、文档等)。
这是实现它的 PR https://github.com/intuit/auto/pull/1086
您希望传统的提交插件不这样做吗? (例如:不要跳过 doc/chore/etc)
@vincentbriglia我很确定我已经解决了 #1424 日志中的问题
你能安装金丝雀版本吗? 它都在不同的范围内,因此您必须替换所有包名称:
yarn add @auto-canary/[email protected] yarn add @auto-canary/[email protected] yarn add @auto-canary/[email protected] yarn add @auto-canary/[email protected] yarn add @auto-canary/[email protected]
@dariye如果您也可以尝试进行测试,我将不胜感激!
我今天测试一下,然后回复你。
@hipstersmoothie在生成
所以当我有 --no-changelog 标志时,一切似乎都有效。 但是,我取下了它,我们只是尝试在 CI 中使用auto shipit
并且它失败并出现相同的速率限制命中错误。
@hipstersmoothie我添加了更多上下文 ☝️
@hipstersmoothie非常感谢您对此进行调查。 我认为最近的版本已经解决了这个问题。 我会继续并关闭它。 auto
现在对我们来说工作得很好。 再次感谢
最有用的评论
@vincentbriglia我很确定我已经解决了 #1424 日志中的问题
你能安装金丝雀版本吗? 它都在不同的范围内,因此您必须替换所有包名称:
@dariye如果您也可以尝试进行测试,我将不胜感激!