カテゴリー
Debian LinuxとAlpine Dockerコンテナでもgh(Github CLI)コマンドを導入する
※ 当ページには【広告/PR】を含む場合があります。
2021/01/05
2022/01/27
Gh(GitHub CLI)コマンドのインストール方法
【Debian Linux】Linuxbrewからインストール
$ brew update
$ brew install gh
Updating Homebrew...
==> Downloading https://linuxbrew.bintray.com/bottles/patchelf-0.11.x86_64_linux
==> Downloading from https://akamai.bintray.com/73/7396e6cf5dbe62fae0e7fcba57f88
########################################################################100.0%
#...中略
Pruned 1 symbolic links from /home/linuxbrew/.linuxbrew
==> Caveats
==> gh
Bash completion has been installed to:
/home/linuxbrew/.linuxbrew/etc/bash_completion.d
$ gh --version
gh version 1.1.0 (2020-10-06)
https://github.com/cli/cli/releases/latest
【Alpine Linux】apkパッケージマネージャから直にインストール
FROM alpine:3.15
RUN apk update && apk upgrade && \
apk add --no-cache bash git openssh expect
#👇GitHub CLIコマンドを追加
RUN apk add --no-cache github-cli
CMD ["bash"]
GitHub CLIでユーザーアカウントを認証する(初回)
$ gh auth login
? What account do you want to log into? GitHub.com
- Logging into github.com
? How would you like to authenticate? Login with a web browser
! First copy your one-time code: ****-****
#👇Enterキーを押すとブラウザから認証作業ができます(下の図参照)。
- Press Enter to open github.com in your browser...
#👇ブラウザでの作業完了後に表示されます。
✓ Authentication complete. Press Enter to continue...
? Choose default git protocol HTTPS
- gh config set -h github.com git_protocol https
✓ Configured git protocol
✓ Logged in as ***********
$ gh auth status
github.com
✓ Logged in to github.com as *********** (~/.config/gh/hosts.yml)
✓ Git operations for github.com configured to use https protocol.
レポジトリの情報をみる
gh repo view
my_hoge_project
$ gh repo view my_hoge_project
***********/my_hoge_project
Private Hoge Project
#...Readme.mdの内容がズラーッと出力
#...中略
View this repository on GitHub: https://github.com/***********/my_hoge_project
GitHub CLIで出来る基本操作〜プルリクエストからマージまで
プルリク
dev
$ git push origin dev
Enumerating objects: 17, done.
Counting objects: 100% (17/17), done.
#...中略
To https://github.com/********/my_hoge_project.git
9a10e74..bdf5311 dev -> dev
gh pr create
$ gh pr create
Creating pull request for dev into main in ********/my_hoge_project
#👇プルリクのタイトルを入力
? Title Remove cupper area from LED pattern
#👇コメントのBodyは省略可
? Body <Received>
#👇Submitを選択
? What's next? Submit
https://github.com/********/my_hoge_project/pull/15
gh pr create --help
-B, --base <branch>:
マージ先のブランチを指定
-b, --body <content>:
プルリクの内容の指定
-d, --draft:
ドラフトプルリクエストを作成
-t, --title <title>:
タイトルを指定
-w, --web:
ブラウザを開いてプルリクエストを作成
--fill(-f)
--title
--body
$ gh pr create --fill
#OR
$ gh pr create -f
プルリクの履歴確認
gh pr list
$ gh pr list -s all
Showing 15 of 15 pull requests in ********/my_hoge_project that match your search
#15 Remove cupper area from LED pattern dev
#14 Added cnc file fot pcb-coil dev
#...中略
#1 Added resources dev
gh pr status
$ gh pr status
Relevant pull requests in ********/my_hoge_project
Current branch
#15 Remove cupper area from LED pattern [dev]
Created by you
#15 Remove cupper area from LED pattern [dev]
Requesting a code review from you
You have no pull requests to review
マージ
gh pr merge
$ gh pr merge
? What merge method would you like to use? [Use arrows to move, type to filter]
> Create a merge commit
Rebase and merge
Squash and merge
? Delete the branch locally and on GitHub? (y/N)
✔ Merged pull request #15 (Remove cupper area from LED pattern)
gh pr merge
-d, --delete-branch:
マージ後のローカルとリモートの現在のブランチを削除
(デフォルトではTrue)
-m, --merge:
ベースのブランチにコミットをマージ
-r, --rebase:
ベースのブランチにコミットをリベース
-s, --squash:
複数のコミットを一つのコミットにまとめた後で
ベースのブランチにマージ
$ gh pr merge --merge --delete-branch=false
#OR
$ gh pr merge -m -d=false
$ gh pr create --fill && gh pr merge -m
#サーバー側からプルリク作業が終わっていないので
#マージまで時間を空けるような警告
まとめ
記事を書いた人
ナンデモ系エンジニア
主にAngularでフロントエンド開発することが多いです。 開発環境はLinuxメインで進めているので、シェルコマンドも多用しております。 コツコツとプログラミングするのが好きな人間です。
カテゴリー