自分で用意したマシン上で GitHub Actions のジョブを実行するためのエージェントバイナリ(runsvc.sh / run.sh など)を常駐させておく。
ランナーは GitHub へのアウトバウンド HTTPS(基本 443)で接続し、ポーリングで「ジョブはあるか?」を定期的に問い合わせる。
ジョブ実行中は、GitHub-hosted と同様に、ステップごとのログやステータスを GitHub に送信する。
リポジトリの Settings → Actions → Runners → New self‑hosted runner(または Add runner)。
これで登録したランナーは、基本的に「そのリポジトリにしか使えない」ようになります(Config はリポジトリ固有)。