アクセストークンを使う方法(2021年度版)
前回記事も一年前になりましたが、今年もGitHubを使った演習を続けています。前年度も何か色々書くこともあった気がするんですが、忙しくてすっかり忘れてしまったので略。
来年度もおそらく続くと思われるので、いくつか後で見返すためのメモをこの辺に書いておきます。
課題:未登録者をチェックしたいので、現時点での組織の登録メンバ一覧が欲しい
解決策:GitHub APIで取得できるらしい。
実行結果:
$ curl -H "Accept: application/vnd.github.v3+json" https://api.github.com/orgs/$ORG/members
[
]
…中身がないな?
組織がプライベートなのでおそらくアクセスが出来てない模様。
サブ課題:プライベートな組織にアクセスするには
解決策:個人アクセストークンを発行してそれを使えば行けるらしい
実行:
- 「個人アクセストークンを使用する」を参考にトークンを取得
- https:// と api の間にトークンを挿入して再実行
$ 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の書式が違うとか文句を言ったりしたが、エディタで適当に処理した。