2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

GitHub Enterprise Serverで複数のOrganizationへメンバーを一括追加するワンライナー

Last updated at Posted at 2023-04-10

概要

4月になり新入社員の方が入社される時期になりました。

弊社ではGitHub Enterprise Serverを利用していますが、
業務で利用するOrganizationへGUIでメンバーを追加していく作業が苦痛だったため
複数Organizationへ一括追加できるワンライナーを書きました。

メンバー追加の流れ

Personal Access Tokenの取得

REST APIを利用するため、事前に認証用のトークンを作成しておきます。

https://[Enterprise Serverのホスト名]/settings/tokens/new
にブラウザでアクセスして作成します。

作成時には write:org の権限指定が必要になります。
image.png
※トークンの作成者が編集権限を持っていない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

弊社で一緒に働く仲間を募集しています。
全てのオタクを幸せにしたい方、是非ご覧ください!

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?