やりたいこと
GitHubのOrganizationのメンバー棚卸しをしたい。
GitHub CLI で、OrganizationのMember一覧を取得する。
やりかた
とりあえずメンバーのユーザー名一覧だけ取得したい場合
YOUR_ORGANIZATION_NAME="hoge"
gh api "/orgs/$YOUR_ORGANIZATION_NAME/members?per_page=100" | jq '.[].login'
-
per_page
は、何件まで表示させたいかを指定します。指定しないとデフォルトで30件までしか表示されないので注意。- 公式ドキュメント - クエリパラメータ
- 公式ドキュメント - ページごとのアイテム数の変更
- 上記の例では
100
としてますが、Organizationsのメンバーの数に応じて調整してください。
メンバーの権限も併せて取得したい場合
ユーザー棚卸しではOrganizationの権限(Member or Owner)を見たいことがあります。
YOUR_ORGANIZATION_NAME="hoge"
members=($(gh api "orgs/$YOUR_ORGANIZATION_NAME/members?per_page=100" | jq -r '.[].login'))
for member in $members; do
role=($(gh api orgs/$YOUR_ORGANIZATION_NAME/memberships/$member | jq -r '.role'))
echo "Username: $member / Role: $role"
done
結果
Owner権限を持つユーザーのRoleは「admin」と表示されるようです。
Username: yamada-taro / Role: admin
Username: sato-jiro / Role: member