バグを説明する
auto shipit
コマンドは、リリース後に変更ログを生成しようとすると、どういうわけかGHのAPIレート制限を超えてしまいます。 (スクリーンショットを参照)
再現するには
auto shipit
実行します
このエラーが発生するためには、リリースがないが、多くのprとcommitがあるリポジトリが必要です。したがって、本質的に高速のコードベースです。
予想される行動
新しいバージョンが変更ログとリリースとともにリリースされます。
スクリーンショット
環境情報:
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
フラグを渡すことで、これを回避することができました。
このコード行にエラーをトレースしましたhttps://github.com/intuit/auto/blob/d419b17f46638ebee68d125467891ac2e1d25304/packages/core/src/release.ts#L484
リポジトリを見て遊ぶチャンスはありますか?
うわーそれはたくさんのリクエストです
また、私が役立つかもしれないより完全なログを取得できれば
実際にローカルで再現することができました。 希望以外は何も必要ありません😉
私たちは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
確認できます
検証済み:1回だけ作成
この問題を自動でテストするには:
yarn
yarn build
yarn auto changelog --from v1.0.0 -d
GraphQLリクエストを行いますか?
「不正使用の制限を超えました」ログが約3秒に1回の割合で発生していることを確認できますか?
ああ、それかもしれません。 @ octokit / graphqlを使用しますが、今日、octokitを使用して直接実行できることを確認しました。 それも試してみます
@ octokit / graphqlを使用しますが、今日、octokitを使用して直接実行できることがわかりました。
はい、そうすれば、同じリクエスト設定とリクエストライフサイクルフックを共有します
🙏
さあ、今走っています。 私のレート制限で1時間待ってください😢
@hipstersmoothieこれにぶつかった場合は、githubインスタンスを使用できます-同じことがわかります
ビルドログにリンクできますか?
これはクローズドリポジトリにあるため、ビルドログを送信しました。
@ 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も試してみて