chore: GitHub Actions SHA Pinning#12
Merged
Merged
Conversation
Co-Authored-By: Yudai SUZUKI <yudai.suzuki@smarthr.co.jp>
Contributor
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
プロンプト:
1.「GitHub Actions で、以下のようなエラーを出して失敗しました。textlint-rubyのインストールは出来ています。原因を推察してください。」(Error: textlint-ruby is not running / src/rubyToAST.ts:27、yarn test の "when target is text" で失敗)
2.「ローカルでは失敗しないのですが、何が違うのでしょう?」
3.「修正を提案してください」
4.「推奨で修正してください。」
原因:
clientBuilder.shutdown() が client.enqueueShutdown() を await せず投げっぱなしにし、
singleton の client 参照のクリア(client = undefined)が kill 完了後の .then まで遅延していた。
そのため次の lint の get() が kill されかけ/kill 済みの Client を使い回し、
available() が _process.killed === true を見て false を返して
die(new Error('textlint-ruby is not running')) に到達していた。
ローカル(Node22/Ruby3.4.7+PRISM/12コア)では後始末が速くレース窓が開かず、
CI(Node14/aptのruby/2〜4コア/コールド)では窓が開いて flaky に失敗していた。
修正内容(推奨案 = 主修正+ハードニング):
- shutdown(): client をローカル変数に退避し、client = undefined を同期で実行してから
enqueueShutdown() を呼ぶ。これにより直後の get() は必ず新しい Client を生成し、
死にかけた Client を使い回さない。
- get(): client が未生成、または _process.killed / _process.exitCode !== null
(プロセス自滅・終了済み)の場合は新しい Client を生成し、突然死にも頑健にする。
ローカルで yarn test を実行し 8 件すべて成功することを確認。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Member
|
テストのつくりがコンディションレースを起こすようになっていたらしく、CI環境でflakyに壊れていたみたいです(Claude曰く)。 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
■ やりたいこと
GitHub Actionsをターゲットにしたサプライチェーン攻撃への対策として、GitHub Actions内で呼び出している「外部のアクション」や「共通ワークフロー」のバージョン指定を、安全なコミットSHA(40文字のハッシュ値)に固定する対応を行います。
■ 本PRで実施した内容
.github/workflows/*.yml)をスキャンし、未固定のActionをpinactを用いてセキュアなSHAハッシュ値に固定(ピン留め)しました。■ 各開発チームの皆様へのお願い(レビュー・マージについて)
順次作成されるPRの内容をご確認の上、なるべく早期のマージにご協力をお願いいたします。
pinact)による機械的な置換ですので、差分に不審な点(意図しないファイルの変更など)がなければ、そのままマージをお願いいたします。