Closed9

githubのPRが出ているブランチ一覧を抽出したい

RentalCatRentalCat

ちょっとつまづきポイント

パラメータ付与してcurl叩いたら怒られた。zshが誤解したっぽいので " " で括ると良き

$ curl -u username:token BASE/repos/{owner}/{repo}/pulls?per_page=1
zsh: no matches found: BASE/repos/{owner}/{repo}/pulls?per_page=1

$ curl -u username:token "BASE/repos/{owner}/{repo}/pulls?per_page=1"
200 OK (実際はjsonが出力される)
RentalCatRentalCat

一旦解決

 curl -u username:token "BASE/repos/{owner}/{repo}/pulls" | jq ".[].head.ref"
"hoge"
"fuga"
...

これで取得できる。

残件

  • 出力のダブルクォーテーション "" が邪魔なので取り払う
  • 複数ページ (100件以上) ある場合に複数クエリ投げるワンライナーがほしい
RentalCatRentalCat
  • 出力のダブルクォーテーション "" が邪魔なので取り払う

jq コマンドの -r オプション使う

RentalCatRentalCat

| - 複数ページ (100件以上) ある場合に複数クエリ投げるワンライナーがほしい

良い方法が思い浮かばなかったので一旦 seq 5 とかで適当回数ぶん回しておく
(実際にPR数確認してから回したほうが良さげ)
あとデフォルトの1ページあたりの件数が30件なので、maxの100件まで増やした

最終的なスクリプト

seq 5 | xargs =I {} curl -u username:token "BASE/repos/{owner}/{repo}/pulls?per_page=100&page={}" | jq -r ".[].head.ref"
このスクラップは2021/05/12にクローズされました