2022/12/02

テクノロジー

コマンドでCLIからGitHubに触る

この記事の目次

    はじめに

    GitHubを開くのが面倒くさい。。なんで、わざわざブラウザ操作してPull Request作らんといかんのか。
    後回しにすると忘れるので気がついた時にissueを書きたいけど、ブラウザを立ち上げると集中力が切れるのでエディタやターミナルからissueを書きたい。。

    割とよくある悩みだとは思います。少なくとも私はそうです。
    そんなわけで、それを解決するためのツール、GitHub CLI を今回触ってみようかと思います。

    GitHub CLIは、GitHub公式が提供しているCLIツールです。
    ghコマンドを用いて、issueの立ち上げ、PRの作成及びレビューなどのGitHubで行う各種操作を実行できます。

    インストール

    Macの場合は、Homebrewで持ってこれます。
    Linuxであればaptやdnf, yum等でインストール可能です。
    Linuxでのinstallについて、詳しくはこちらを参照

    # UbuntuなどのDebian系
    type -p curl >/dev/null || sudo apt install curl -y
    curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg \
    && sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg \
    && echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
    && sudo apt update \
    && sudo apt install gh -y
    
    # CentOS後継やRHELなどのFedora系
    sudo dnf install 'dnf-command(config-manager)'
    sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
    sudo dnf install gh
    
    # Amazon Linuxなどのdnfが使用できない一部環境のFedora系
    sudo yum-config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo
    sudo yum install gh

    使い方

    --helpオプションによる解説がかなり充実しているため、わからなければヘルプを見れば大体わかるかと思います。

    主に使用すると思われるのは、以下のコマンドです。

    • PRが作成されたブランチを確認したい
      • gh pr listで既存のPRを確認
      • gh pr checkout <number> で該当のブランチにPRのID指定でチェックアウト
    • ローカルで確認したPRにapproveをつける
      • gh pr review <number> -a
      • コメントや変更依頼なども可能です
    • PRの作成
      • push後にgh create --title "タイトル" -b "本文"
    • 今いるディレクトリのリポジトリをブラウザで開く
      • gh browse
    • issueの作成
      • gh issue create -t "タイトル" -b "本文" -l bug
    • issueの確認
      • gh issue list
      • gh issue view <number>
        • --webオプションでブラウザを開くこともできる

    終わりに

    Push後にいちいちブラウザ開いてPRを作成するのは大変面倒だったため、このコマンドは嬉しいコマンドでした。
    ブラウザを開かずとも VScodeのGitHub Pull Requests and Issuesでも可能ではあったのですが、こういったことはコマンドでできた方が無駄にタブを増やさず済むのでコマンドで済ませた方が良いかと思います。

    よければぜひ触って見てください。

    ※本記事は2022年12月時点の情報です。

    著者:マイナビエンジニアブログ編集部