LoginSignup
0
0

More than 1 year has passed since last update.

GitHubでプライベートな組織の登録メンバリストを取得するには

Last updated at Posted at 2021-05-01

アクセストークンを使う方法(2021年度版)

前回記事も一年前になりましたが、今年もGitHubを使った演習を続けています。前年度も何か色々書くこともあった気がするんですが、忙しくてすっかり忘れてしまったので略。

来年度もおそらく続くと思われるので、いくつか後で見返すためのメモをこの辺に書いておきます。

課題:未登録者をチェックしたいので、現時点での組織の登録メンバ一覧が欲しい

解決策:GitHub APIで取得できるらしい。

実行結果:

$ curl -H "Accept: application/vnd.github.v3+json"   https://api.github.com/orgs/$ORG/members
[

]

…中身がないな?
組織がプライベートなのでおそらくアクセスが出来てない模様。

サブ課題:プライベートな組織にアクセスするには

解決策:個人アクセストークンを発行してそれを使えば行けるらしい

実行:

$ curl -H "Accept: application/vnd.github.v3+json"   https://$TOKEN@api.github.com/orgs/$ORG/members

無事に出たぽい。後はこれをJSONから適当な形式に変換するだけですね。
とりあえずメモ終わり。

追記メモ:JSONをCSVファイルへ変換する方法
この辺を参考に変換を試みた。

 cat members.json | jq -r '["login"], (.[] | [.login]) | @csv' > members.csv

一列しかないのでtxtでも良いかも。ともあれ、できました。

追記メモ:複数ページへ渡る場合はURLに?page=でページ指定が必要

GitHub CLIを使う方法(2023年度版)

今年度もリスト取得しようと思って、アクセストークンの取り方を確認しに上記ページ
を見たら、GitHub CLIかGit Credential Manager を使えと書いてあったので、GitHub CLIをインストールして gh auth login で認証後、以下のコマンドを実行してリストを取得した。

$ gh api --paginate orgs/$ORG/members > members.json

--paginageを付けないと、ページ単位で30件しか取ってこないので注意。

Unicodeになってて、後処理するのにUTF-8への変換が必要だったり、jqがJSONの書式が違うとか文句を言ったりしたが、エディタで適当に処理した。

0
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
0
0