概要
src/github.ts の fetchJson / fetchText(version 解決・checksums 取得)と src/download.ts の preflight は Node 組み込み fetch() を使うが、Node の fetch は HTTP_PROXY / HTTPS_PROXY / NO_PROXY を既定で参照しない。一方 tc.downloadTool(@actions/http-client)は proxy 環境変数を尊重する。
結果、proxy 配下の self-hosted runner では version 解決・checksums 取得が失敗し、action 全体が実質動作しない(バイナリ本体 DL のみ proxy 対応)。
背景
#42 でリダイレクト検証の preflight を追加した際、preflight の global fetch が proxy 非対応な点が判明(cubic P1 指摘)。preflight 側は「network/proxy 失敗は tool-cache にフォールスルー」で回避したが、version/checksums の fetch には回避策がなく既存の制約として残っている。
受け入れ条件
- proxy 環境変数配下で version 解決・checksums 取得・preflight が成功する
- 実現方法の候補: undici
EnvHttpProxyAgent を global dispatcher に設定 / または fetch を @actions/http-client ベースへ寄せる(いずれも NFR-1 の手動リダイレクト + ホスト検証 + cross-origin auth 破棄を維持できること)
- proxy 未設定環境では従来どおり動作(回帰なし、self-test green)
参照
概要
src/github.tsのfetchJson/fetchText(version 解決・checksums 取得)とsrc/download.tsの preflight は Node 組み込みfetch()を使うが、Node の fetch はHTTP_PROXY/HTTPS_PROXY/NO_PROXYを既定で参照しない。一方tc.downloadTool(@actions/http-client)は proxy 環境変数を尊重する。結果、proxy 配下の self-hosted runner では version 解決・checksums 取得が失敗し、action 全体が実質動作しない(バイナリ本体 DL のみ proxy 対応)。
背景
#42 でリダイレクト検証の preflight を追加した際、preflight の global fetch が proxy 非対応な点が判明(cubic P1 指摘)。preflight 側は「network/proxy 失敗は tool-cache にフォールスルー」で回避したが、version/checksums の fetch には回避策がなく既存の制約として残っている。
受け入れ条件
EnvHttpProxyAgentを global dispatcher に設定 / または fetch を @actions/http-client ベースへ寄せる(いずれも NFR-1 の手動リダイレクト + ホスト検証 + cross-origin auth 破棄を維持できること)参照
src/github.tssecureFetch/fetchOk、src/download.tsdownloadAsset