概要
4月になり新入社員の方が入社される時期になりました。
弊社ではGitHub Enterprise Serverを利用していますが、
業務で利用するOrganizationへGUIでメンバーを追加していく作業が苦痛だったため
複数Organizationへ一括追加できるワンライナーを書きました。
メンバー追加の流れ
Personal Access Tokenの取得
REST APIを利用するため、事前に認証用のトークンを作成しておきます。
https://[Enterprise Serverのホスト名]/settings/tokens/new
にブラウザでアクセスして作成します。
作成時には write:org
の権限指定が必要になります。
※トークンの作成者が編集権限を持っていないOrganizationへはメンバーの追加が行えません。
環境変数の設定
分かりやすさのため、あらかじめ環境変数に登録しています。
export GITHUB_TOKEN=ghp_XXXXXXXXXXXXX # 事前に取得したトークンを指定
export HOST=github.hogehoge.com # GitHub Enterprise Serverのホスト名
export USER=taizo-fujita # Organizationへ追加したい対象のユーザ名
REST APIを叩いて一括追加
curlコマンドで全Organizationへメンバーを追加します。
Organization取得の件数に上限があるため、100以上ある場合は複数回実行が必要です。
curl -L -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${GITHUB_TOKEN}" https://${HOST}/api/v3/organizations?per_page=100 | jq -r .[].login | grep -v actions | xargs -n1 -I{} curl -L -X PUT -H "Accept: application/vnd.github+json" -H "Authorization: Bearer ${GITHUB_TOKEN}" https://${HOST}/api/v3/orgs/{}/memberships/${USER} -d '{"role":"member"}'
参考資料
GitHub REST API に関するドキュメント : GitHub Docs
採用PR
弊社で一緒に働く仲間を募集しています。
全てのオタクを幸せにしたい方、是非ご覧ください!