🚛
gh cliでGitHub Organizationのチームメンバーを別のチームにコピーする
PRのレビューにGitHubのチーム機能を使ってみようと思い、やりようを考えたところ似たようなチームを複数作ることになりました。
GitHubのWeb上ではメンバーのコピーなどはできず、一人一人追加するのが果てしなく面倒だったので、gh cliを使ってチームメンバーを別のチームにコピーする方法を考えました。
以下のようなコマンドでできます
TEAM_FROM="myorg/teams/team-from"
TEAM_TO="myorg/teams/team-to"
gh api orgs/$TEAM_FROM/members | \
jq -r '.[].login' | \
xargs -I {} echo gh api --method PUT orgs/$TEAM_TO/memberships/{}
TEAM_FROMとTEAM_TOは先にチームを作ってURLから取得します。
このコマンドは事故を防ぐためにechoを挟んでdry-runにしています。実行するとTEAM_FROMのメンバー分、gh apiコマンドが出力されます。
gh api --method PUT orgs/myorg/teams/team-to/memberships/foo1
gh api --method PUT orgs/myorg/teams/team-to/memberships/foo2
gh api --method PUT orgs/myorg/teams/team-to/memberships/foo3
gh api --method PUT orgs/myorg/teams/team-to/memberships/foo4
gh api --method PUT orgs/myorg/teams/team-to/memberships/foo5
gh api --method PUT orgs/myorg/teams/team-to/memberships/foo6
...
といった具合で実行予定のコマンドが出力されるので、問題なければechoを外して実行すれば実際にgh経由でAPIが呼ばれてメンバーが追加されます。
参考
GitHubで編集を提案
NCDC株式会社( ncdc.co.jp/ )のエンジニアチームです。 募集中のエンジニアのポジションや、採用している技術スタックの紹介などはこちら( github.com/ncdcdev/recruitment )をご覧ください! ※エンジニア以外も記事を投稿することがあります
Discussion