🐫

Azure Cloud ShellでGitHub CLIコマンドを使ってみた

2023/10/29に公開

はじめに

数か月ぶりにGitのPrivateリポジトリを使った作業がしたい・・・
Git cloneしたい・・・
しかし、使用しているコンソール(今回はAzure Cloud Shell)でGitの認証情報が切れているorz
認証とかやり直すのが毎回めんどう。。

本記事では、Azure Cloud ShellでGitHub CLIコマンド(gh)を使ってGitアカウントをブラウザ認証し、Git cloneを手軽に実施した手順を記載します。

環境

  • Azure Cloud Shell
  • gh version 2.13.0 (2023-10-18)

手順

とりあえずgit clone

r_ota [ ~ ]$ git clone https://github.com/roota5666/private-repo.git
Cloning into 'private-repo'...
Username for 'https://github.com': 

Username for 'https://github.com': 認証を聞かれる←当然

ghコマンド確認

r_ota [ ~ ]$ which gh 
/usr/bin/gh
r_ota [ ~ ]$ gh version 
gh version 2.13.0 (2023-10-18)
https://github.com/cli/cli/releases/tag/v2.13.0
r_ota [ ~ ]$ 

→Azure Cloud Shellでghコマンドが使える!

認証する

基本的にコマンド gh auth login 実行後、Enter数回とブラウザ認証するだけです。

  • GitHub.com or GitHub Enterprise Server ?
    r_ota [ ~ ]$ gh auth login
    ? What account do you want to log into?  [Use arrows to move, type to filter]
    > GitHub.com
      GitHub Enterprise Server
    
  • HTTPS or SSH ?
    ? What is your preferred protocol for Git operations?  [Use arrows to move, type to filter]
    > HTTPS
      SSH
    
  • browser or token ?
    ? How would you like to authenticate GitHub CLI?  [Use arrows to move, type to filter]
    > Login with a web browser
      Paste an authentication token
    
  • Login with a web browser
    ! First copy your one-time code: YAHO-OOOO
    Press Enter to open github.com in your browser... 
    
  • OK!
    r_ota [ ~ ]$ gh auth login
    ? What account do you want to log into? GitHub.com
    ? What is your preferred protocol for Git operations? HTTPS
    ? How would you like to authenticate GitHub CLI? Login with a web browser
    
    ! First copy your one-time code: YAHO-OOOO
    Press Enter to open github.com in your browser... 
    ! Failed opening a web browser at https://github.com/login/device
      exec: "xdg-open,x-www-browser,www-browser,wslview": executable file not found in $PATH
      Please try entering the URL in your browser manually
    ✓ Authentication complete.
    - gh config set -h github.com git_protocol https
    ✓ Configured git protocol
    ✓ Logged in as roota5666
    r_ota [ ~ ]$ 
    

認証後 git clone

r_ota [ ~ ]$ git clone https://github.com/roota5666/private-repo.git
Cloning into 'private-repo'...
remote: Enumerating objects: 8, done.
remote: Counting objects: 100% (8/8), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 8 (delta 1), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (8/8), done.
Resolving deltas: 100% (1/1), done.
r_ota [ ~ ]$ 

先ほどの Username for 'https://github.com': 認証確認がなくなり、cloneできました!

認証の解除(ログアウト)

認証した状態でそのままにして使用することもできますが、念のためログアウト手順も記載しておきます。 gh auth logout でログアウトできます。

r_ota [ ~ ]$ gh auth logout
✓ Logged out of github.com account 'roota5666'
r_ota [ ~ ]$ 

まとめ

  • GitHub CLI(gh)コマンド、Gitコマンドしか知りませんでした・・・
  • ブラウザで認証できるのは、やはり便利ですね!
    (Azure CLIのaz loginも同じブラウザ認証形式ですね)
  • 次回からはgh auth loginします!

最後までお読みいただき、ありがとうございました。

参考サイト

Discussion