GitHubCLIツールを見てみましょう
GitHub CLI は、GitHubによってリリースされた新しいツールで、端末に問題/PR管理タスクをもたらします。 これは、ソフトウェア開発ワークフローの多くをビジュアル領域(ブラウザ)ではなくテキスト領域に取り込む重要なツールになります。 それはgh
と呼ばれています!
それは何をするためのものか?
GitHub CLIを使用すると、ターミナル内から問題/PR/リポジトリを管理できます。 あなたにアイデアを与えるために、ここにAPIの大まかな概要があります:
$ gh issue [status, list, view, create]
$ gh pr [status, list, view, checkout, create]
$ gh repo [view, create, clone, fork]
$ gh help
--help
フラグを追加して、特定のコマンドに関するドキュメントを取得することもできます。 このような:
$ gh repo fork --help
gh
はgit
と同じではないことに注意してください。 これは、gh
がGitHub機能のみを端末に提供するためです。 バージョン管理は、git
で処理する必要があります。 💻
GitHubCLIのインストール
GitHub CLI には、主要なオペレーティングシステム用のリリースがあります。 たとえば、Macを使用している場合は、Homebrewを介してインストールできます。
$ brew install github/gh/gh
ボイラ! gh
コマンドが端末で使用可能になっている必要があります。 gh
を最初に実行するときは、ブラウザーでGitHub CLIを(OAuth経由で)認証する必要があります。
さて、あなたはロックする準備ができています! 🤘😤
問題とgh
食欲をそそるだけの興味深いコマンドをいくつか取り上げます。 公式React.jsリポジトリをモルモットとして使用してgh
コマンドを実行してみましょう。
クローンを作成して、reactリポジトリに移動しましょう。
$ git clone [email protected]:facebook/react.git
$ cd react
$ gh issue --help
を実行して、使用可能なコマンドを確認しましょう。
# Usage:
# gh issue [command]
# Available Commands:
# create Create a new issue
# list List and filter issues in this repository
# status Show status of relevant issues
# view View an issue in the browser
うーん、すべての問題を見てみましょう:
$ gh issue list
次の出力が表示されます。
gh issue list
で使用できるフラグもあります。 --help
フラグを使用して、詳細情報を表示してみましょう。
$ gh issue list --help
次のドキュメントが表示されます。
# Usage:
# gh issue list [flags]
# Flags:
# -a, --assignee string Filter by assignee
# -l, --label strings Filter by label
# -L, --limit int Maximum number of issues to fetch
# -s, --state string Filter by state: {open|closed|all}
ダン・アブラモフ( @gaearon )が今彼の皿に何を持っているのだろうか。 実行してみましょう:
$ gh issue list --assignee gaearon
彼には3つの問題が割り当てられています。 上級開発者であることは素晴らしいことだと思います…
最初の問題は面白そうです🤨。 それを見てみましょう:
$ gh issue view 18085
これにより、実際にデフォルトのブラウザが開き、URLに移動します。 --preview
フラグを追加すると、端末に直接出力されます。
$ gh issue view 18085 --preview
ブラウザを開かずにどれだけ遠くまで到達したかは驚くべきことです。 これまでのところ、問題のみを見てきました。 gh
がPRにどのように役立つか見てみましょう。
プルリクエストとgh
私たちがReactのリードメンテナーの1人だったと想像してみてください。 私たちの日常業務の1つには、次のものが含まれる場合があります。
- 現在のPRの表示
- 特定のPRについて読む
- コードのテスト
これはgh
だけで達成できますか? 使用できるコマンドを見てみましょう($ gh pr --help
):
# Usage:
# gh pr [command]
# Available Commands:
# checkout Check out a pull request in Git
# create Create a pull request
# list List and filter pull requests in this repository
# status Show status of relevant pull requests
# view View a pull request in the browser
では、今すぐすべてのPRを見てみましょう。
$ gh pr list
出力:
最初のPR(#18212
)は面白そうです。 それについて読んで、そのブランチに切り替えましょう:
$ gh pr view 18212 --preview
$ gh pr checkout 18212
出力:
chompy@mylaptop: ~/react$ gh pr view 18212 --preview
threepointone wants to merge 1 commit into master from electron-optional-dependencies
When we yarn/ci, we download electron only because it's listed in react-
devtools as a dependency. We don't seem to use it for any tests or bundles
though, so it's non-essential for the build. Further the electron download
point is flaky, leading to ci failures like this
https://circleci.com/gh/facebook/react/95743 This PR simply moves electron to
optionalDependencies, so the build doesn't fail even if the download fails.
View this pull request on GitHub: https://github.com/facebook/react/pull/18212
chompy@mylaptop: ~/react$ gh pr checkout 18212
From github.com:facebook/react
* branch refs/pull/18212/head -> FETCH_HEAD
Already up to date.
そのように、PRコードを取得して、そのブランチに切り替えました。 かなりクール!
レポとgh
そして簡単に、gh repo
で何ができるか見てみましょう。
# Usage:
# gh repo [command]
# Available Commands:
# clone Clone a repository locally
# create Create a new repository
# fork Create a fork of a repository.
# view View a repository in the browser.
react リポジトリの新機能の開発(またはバグの修正)を開始したい場合は、次のコマンドを実行するだけです。
$ gh repo fork
そしてすぐに働き始めます。 その後、新しいPR($ gh pr create
)を作成できます! このすべての機能がターミナルで利用できるようになったのは、ちょっと驚くべきことです。
要約
gh
の目標は、ブラウザを開いて github.com にアクセスする代わりに、ターミナル/エディタ内にとどまることができるようにすることで、「コンテキストの切り替えを最小限に抑える」ことです。 GitHub固有の機能の大部分はgh
から利用できるため、確かに配信されているようです。 💥
ドキュメントのウェブサイトでGitHubCLIをチェックしてください🐙🐱