ふとしたときに、GitHub Pagesよく使ってたなー、どのリポジトリで使っていたっけ?
となり調べてみた
Pagesの情報を取得するエンドポイントはREST APIに存在するようだったので、自分の管理しているリポジトリの中からPagesを使っているリポジトリを取得できるようGitHub CLIを組み合わせて出してみた
- リポジトリ一覧
gh repo list --json=name,nameWithOwner,owner,url,isPrivate
- pagesの存在確認
$ gh api \ -H "Accept: application/vnd.github+json" \ -H "X-GitHub-Api-Version: 2022-11-28" \ /repos/swfz/js-api/pages
利用の覚えのあるリポジトリで見てみる
- 利用している場合
{ "url": "https://api.github.com/repos/swfz/js-api/pages", "status": "built", "cname": null, "custom_404": false, "html_url": "http://swfz.github.io/js-api/", "build_type": "legacy", "source": { "branch": "gh-pages", "path": "/" }, "public": true, "protected_domain_state": null, "pending_domain_unverified_at": null, "https_enforced": false }
- 利用していない場合
{ "message": "Not Found", "documentation_url": "https://docs.github.com/rest/pages/pages#get-a-apiname-pages-site", gh: Not Found (HTTP 404) "status": "404" }
ない場合は404が返ってくる
一括で取得する
gh repo list --limit 200 --json=name,nameWithOwner,url,isPrivate | jq -cr '.[]|.nameWithOwner' | xargs -i sh -lc "gh api -H 'Accept: application/vnd.github+json' -H 'X-GitHub-Api-Version: 2022-11-28' /repos/{}/pages" | tee -a pages.json
これでリスト作れば一覧で取得できる
あとはご自由にという感じ
おまけ
duckdbで見てみた
D select url,cname,build_type,source from pages.json where status != '404'; ┌──────────────────────────────────────────────────────────────┬───────────────┬────────────┬──────────────────────────────────┐ │ url │ cname │ build_type │ source │ │ varchar │ varchar │ varchar │ json │ ├──────────────────────────────────────────────────────────────┼───────────────┼────────────┼──────────────────────────────────┤ │ https://api.github.com/repos/swfz/ngx-sample/pages │ │ legacy │ {"branch":"gh-pages","path":"/"} │ │ https://api.github.com/repos/swfz/ngx-libraries/pages │ │ legacy │ {"branch":"gh-pages","path":"/"} │ │ https://api.github.com/repos/swfz/chartjs-sample/pages │ │ legacy │ {"branch":"gh-pages","path":"/"} │ │ https://api.github.com/repos/swfz/marble-diagram/pages │ │ legacy │ {"branch":"gh-pages","path":"/"} │ │ https://api.github.com/repos/swfz/angular-pwa-sample/pages │ │ legacy │ {"branch":"gh-pages","path":"/"} │ │ https://api.github.com/repos/swfz/ngx-table-input/pages │ │ legacy │ {"branch":"gh-pages","path":"/"} │ │ https://api.github.com/repos/swfz/ng2-sample/pages │ │ legacy │ {"branch":"gh-pages","path":"/"} │ │ https://api.github.com/repos/swfz/darts/pages │ darts.swfz.io │ legacy │ {"branch":"gh-pages","path":"/"} │ │ https://api.github.com/repos/swfz/mkdocs_sample/pages │ │ legacy │ {"branch":"gh-pages","path":"/"} │ │ https://api.github.com/repos/swfz/sw_push_notification/pages │ │ legacy │ {"branch":"gh-pages","path":"/"} │ │ https://api.github.com/repos/swfz/js-api/pages │ │ legacy │ {"branch":"gh-pages","path":"/"} │ ├──────────────────────────────────────────────────────────────┴───────────────┴────────────┴──────────────────────────────────┤ │ 11 rows 4 columns │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ D
11個も出てきた
すべてlegacy...
最近Pages使っていなかったなーと思ったのでどこかでまた使おうかなというのと放置も良くないので不要であれば消すなりなんなりの対応をしないとなーと思った