本文へスキップ
MameTechNews
バックエンド

GitHub、異常時は公開リポジトリのHTTPS取得に認証を要求

## POINTS

  • 常時の認証必須ではない。異常なトラフィックのあいだ、一部の未認証HTTPS取得だけが失敗する
  • SSH、認証済みHTTPS、push、WebとAPIは対象外。失敗メッセージは認証が必要だというもの
  • ActionsはGITHUB_TOKEN、他のCIはGitHub Appのインストールトークンを取得に付ける

GitHubは10月19日、異常なトラフィックの期間に、公開リポジトリのクローンとフェッチの一部を、HTTPSで認証なしに行うと失敗させることがあるとchangelogに書いた。失敗時は認証が必要だというメッセージになる。認証して再試行するか、保護が解けるまで待って再試行する。

対象の絞り込みは、異常なトラフィックに結び付く信号で行う。正当な通信と同じ信号を共有することがあり、認証なしの正当な操作も当たることがある。公開リポジトリを常に認証必須にする変更ではない。

影響しないのは、認証済みのHTTPS、SSH、push、関係のないWebとAPIである。計画はgithub.comの全プランに及ぶ。

自動化されたクローンを安定させるには、GitHub Actionsでは組み込みのGITHUB_TOKENを使う。他のCIではGitHub Appのインストールトークンを優先し、個人アクセストークンも使える。認証できない処理は、一時保護が外れてから再試行する。

依存の取得を認証なしの git clone https://github.com/... にしているジョブは、GitHub側の負荷が高い時間にだけ落ちる。落ち方はネットワーク障害に似るため、認証不足だと気付くまでに再試行を重ねやすい。公開リポジトリであっても、CIの取得経路にはトークンを付けておく。