gitのリポジトリの情報を取得したい【GitHub/Bitbucket】
コピペが苦手。なのでリポジトリの情報はコマンドラインから取得することにしました。
参考:
https://docs.github.com/ja/rest/guides/getting-started-with-the-rest-api
https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D
GitHub Docsが分かりやすくマニュアル化されていて、これを参考にBitbucketも同じ感じで対応したらできました。
事前準備
どちらのサービスでもコマンドラインからhttpで接続し情報を取得します。
接続の際にはREST APIを使用する為、認証の為のトークンが必要です。
トークン作成画面へのリンク
GitHub
https://github.com/settings/tokens
Bitbucket
https://bitbucket.org/account/settings/app-passwords/
どちらのサービスでも、トークン作成時にr/w権限などを設定できます。
尚、このトークンで取得できる情報は自分にアクセス権限が与えられているリポジトリに対してのみでした。
試していないけど、ワークスペースの管理者ならワークスペース単位のトークンも作成できそうな画面を見たので、そっちを使う方法もありそう。
情報の整形
json形式での情報取得になる為、出力されたものの整形にjqコマンドを使用します。
//macでhomebrewが使える前提
brew install jq
リポジトリ名取得
GitHub
curl -u <username>:<token> https://api.github.com/orgs/<workspace>/repos | jq -r '.[].name'
Bitbucket
Bitbucketはプロジェクト名も一緒に取得するパターンでコマンド作成。
また、取得できるvalue[]がデフォルトだと10のようなので100に変更し更にリポジトリ名でソート。
curl -u <username>:<token> 'https://api.bitbucket.org/2.0/repositories/<workspace>?pagelen=100&page=1&sort=name' | jq '.values | map({ name : .name , group: .project.name })'
インデックスの出力が不要な場合
curl -u <username>:<token> 'https://api.bitbucket.org/2.0/repositories/<workspace>?pagelen=100&page=1&sort=name' | jq '.values[] | .name , .project.name'
Author And Source
この問題について(gitのリポジトリの情報を取得したい【GitHub/Bitbucket】), 我々は、より多くの情報をここで見つけました https://qiita.com/mby/items/975bcbf4fe6ea2c9832f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .