🚀

self-hosted runner のConfigure で使用するトークンをコマンドで生成

2024/05/12に公開

self-hosted runner のConfigure で使用するトークンをコマンドで生成

https://zenn.dev/mtmatma/articles/6e63be62171b60 の続き

まとめ

以下の環境変数を設定しておく

  • GITHUB_ACCESS_TOKEN GitHubのアクセストークン
  • OWNER 対象のアカウントまたはOrganization名
  • REPO リポジトリ名 (Organization名を指定する場合は空にする)
  • LABELS Runner に付与するラベル名 (これ以外に自動的に付与されるラベルもある)
  • NAME Runner に指定する名前に付与する名前の一部(この記事ではホスト名も付与している)
#!/bin/bash

if [ -z "$OWNER" ] || [ -z "$GITHUB_ACCESS_TOKEN" ] || [ -z "$LABELS" ] || [ -z "$NAME" ]; then
  echo "please set enviornment variable in advance."
  echo "  GITHUB_ACCESS_TOKEN"
  echo "  OWNER"
  echo "  REPO"
  echo "  LABELS"
  echo "  NAME"
  exit 1
fi

if [ -n "$REPO" ]; then
  URL=https://api.github.com/repos/$OWNER/$REPO/actions/runners/registration-token
  URL_TO_RUNNER=https://github.com/$OWNER/$REPO
else
  URL=https://api.github.com/orgs/$OWNER/actions/runners/registration-token
  URL_TO_RUNNER=https://github.com/$OWNER
fi

TOKEN=$(curl -L \
  -X POST \
  -s \
  -H "Accept: application/vnd.github+json" \
  -H "Authorization: Bearer $GITHUB_ACCESS_TOKEN" \
  -H "X-GitHub-Api-Version: 2022-11-28" \
  $URL | jq -r '.token')

cd actions-runner
./config.sh --unattended --name $NAME-$(hostname) --url $URL_TO_RUNNER --token $TOKEN --labels $LABELS

説明

参考サイト

使用API

Organizaion 共通で利用する Runner の場合

/orgs/{org}/actions/runners/registration-token

Organizaion 共通で利用できるが、通常のアカウントの場合、アカウント共通で指定はできない。

Repository で利用する Runner の場合

/repos/{owner}/{repo}/actions/runners/registration-token

Discussion