簡単なGraphSQLクエリを定義するbashスクリプトとgithub cliを使用してgithubリポジトリをバックアップする
私は、私がGithubでホストされるすべての倉庫をバックアップするために書いたbashスクリプトを共有したいです.スクリプトはGITHUB CLIを使用してGithub APIを簡単なGraphSQLクエリを使用します.
なぜこのスクリプト
スクリプトの目的は、あなたのワークステーション上の特定の所有者のすべてのリポジトリをGitHub(例えば、FacebookやGoogle、マイクロソフトなどのあなたの会社や他の会社)にホストしてバックアップすることです.スクリプトは、すべての所有者のリポジトリを(あなたもアクセスするために付与されている場合、それらの個人)をダウンロードします.
スクリプトを使用する前に
あなたはGitHubに有効なアカウントを持っていなければなりません、そして、あなたはdownloadになければならなくて、Github CLIをインストールしなければなりません(このCLIツールfollow this linkについてのさらなる情報が必要ならば).Github CLIのインストール後、次のコマンドを実行してインストールを確認できます.
スクリプトの使い方
Downloadスクリプト.
フィルタなしでスクリプトを実行する
すべてのリポジトリとすべてのブランチをダウンロードする2つの必須パラメータの所有者とバックアップディレクトリを定義するスクリプトを実行します.
このスクリプトをフィルタリングで実行する
カスタム正規表現のリポジトリ名を使用してフィルタリングを実行することができます.またはブランチ名(例えば、(' ( master ) Chuno ( main )?(開発))$)です.
このスクリプトをヘルプモードで実行する
実行中のヘルプを表示します.
使用例
Facebookが所有するリポジトリをダウンロードする
Graphqlはどこですか?
GraphSQLは、スクリプトの中で以下のコマンドを実行します.
結論
このスクリプトでは、GithubのAPIの有用性を見てきた、Github CLIの実用性、GraphSQLのシンプルさとbashの汎用性は、私たちはGifthub上にホストされているリポジトリのリストをバックアップするためのシンプルなソリューションを取得Theheterを置く.
興味のポイントと可能な進化
Github API生態系を調査する. は、GraphQL API Explorerに基づいてGithub APIとGraphqlでGraphiQLを使用して練習します. はGitHub CLI のすべての可能なコマンドを調査する異なる複雑な方へ向けて進化するゴールを持つ情報を得るために、より複雑なgraphqlクエリを作成します. スクリプトをよりユーザーフレンドリーな体験を向上させます. あなたの好みの言語に基づいてGraphSQLクライアントを使用して、同じ目標に到達しようとします. 提案と訂正は歓迎します.
すぐにお会いしましょう!
午前
なぜこのスクリプト
スクリプトの目的は、あなたのワークステーション上の特定の所有者のすべてのリポジトリをGitHub(例えば、FacebookやGoogle、マイクロソフトなどのあなたの会社や他の会社)にホストしてバックアップすることです.スクリプトは、すべての所有者のリポジトリを(あなたもアクセスするために付与されている場合、それらの個人)をダウンロードします.
スクリプトを使用する前に
あなたはGitHubに有効なアカウントを持っていなければなりません、そして、あなたはdownloadになければならなくて、Github CLIをインストールしなければなりません(このCLIツールfollow this linkについてのさらなる情報が必要ならば).Github CLIのインストール後、次のコマンドを実行してインストールを確認できます.
animus@host:~$gh --version
以下のようなCLIのバージョンを見るべきです(最後のバージョンを書く時は1.4.0です)gh version 1.4.0 (2020-12-15)
https://github.com/cli/cli/releases/latest
次のコマンドを実行するCLIを認証する必要があります.animus@host:~$gh auth login
画面上の指示Github CLIであなたのgithub資格情報を使用するには(どちらかのブラウザまたは認証トークンを使用して認証することができます).スクリプトの使い方
Downloadスクリプト.
フィルタなしでスクリプトを実行する
すべてのリポジトリとすべてのブランチをダウンロードする2つの必須パラメータの所有者とバックアップディレクトリを定義するスクリプトを実行します.
animus@host:~$repos.github.backup.sh -ow OWNER -dr DIRECTORY
このスクリプトをフィルタリングで実行する
カスタム正規表現のリポジトリ名を使用してフィルタリングを実行することができます.またはブランチ名(例えば、(' ( master ) Chuno ( main )?(開発))$)です.
animus@host:~$repos.github.backup.sh -ow OWNER -dr DIRECTORY -rr "VALID REGEX" -br "VALID REGEX"
このスクリプトをヘルプモードで実行する
実行中のヘルプを表示します.
animus@host:~$repos.github.backup.sh --help
あなたは助けを得るでしょうusage: repos.github.backup.sh -ow OWNER -dr DIRECTORY
Backup one or more repositories hosted on GitHub in a local directory.
Options:
-ow, --owner Owner of repository
-dr, --directory Backup Directory
-rr, --reposRegex Regular expression to match repositories names to backup (default any)
-br, --branchesRegex Regular expression to match repositories branches to backup (default any)
-ps, --pageSize Page size of api paging (default 10)
--help Display this help and exit
使用例
Facebookが所有するリポジトリをダウンロードする
repos.github.backup.sh --owner facebook -dr . -rr "^react.*" -br "^((master)|(main)|(develop))$"
マイクロソフトが所有するすべてのvscodeリポジトリをダウンロードしてくださいrepos.github.backup.sh --owner microsoft -dr . -rr "^vscode..*" -br "^((master)|(main)|(develop))$"
すべてのDARTリポジトリをダウンロードrepos.github.backup.sh --owner google -dr . -rr "^dart..*" -br "^((master)|(main)|(develop))$"
Graphqlはどこですか?
GraphSQLは、スクリプトの中で以下のコマンドを実行します.
gh api graphql -F owner=$owner -F pageSize=$pageSize -F afterCursor=$endCursor -f query="$graphQlQuery"
クエリはパラメータ化されます.query ($owner: String!, $pageSize: Int!, $afterCursor: String) {
repositoryOwner(login: $owner) {
repositories(first: $pageSize, after: $afterCursor) {
edges {
node {
name
}
}
pageInfo{
hasNextPage
endCursor
}
}
}
}
このクエリーでは、スクリプトはすべてのリポジトリ名を尋ねます(ちょうどそのために、私たちはゴールに到達するためにより多くの何も必要としません).結論
このスクリプトでは、GithubのAPIの有用性を見てきた、Github CLIの実用性、GraphSQLのシンプルさとbashの汎用性は、私たちはGifthub上にホストされているリポジトリのリストをバックアップするためのシンプルなソリューションを取得Theheterを置く.
興味のポイントと可能な進化
Github API生態系を調査する
すぐにお会いしましょう!
午前
Reference
この問題について(簡単なGraphSQLクエリを定義するbashスクリプトとgithub cliを使用してgithubリポジトリをバックアップする), 我々は、より多くの情報をここで見つけました https://dev.to/animusna/backup-your-github-repositories-using-bash-script-and-github-cli-defining-a-simple-graphql-query-1pp6テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol