Skip to content

[enhancement] HTTP(S) proxy 環境で全 fetch を proxy 経由にする #54

Description

@yk-lab

概要

src/github.tsfetchJson / 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)

参照

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions