Macにhubをインストールして使えるようにするまでの手順


既にインストールされているかを確認したい場合

以下コマンドでバージョンが確認できます。

$hub --version

インストールする

以下を実行してインストールします。

$brew install hub

インストール後の設定

Macにhubコマンドのエイリアスを張ります。

$cd $HOME
$vim .bashrc

エディタが開かれたら、以下を追記します。

eval "$(hub alias -s)"

2ファクタ認証を通るように準備

方法は2通りあります。自分で設定する方法と、自動で作成する方法です。

自動で設定する方法

修正内容をadd, commitしたあとに、以下コマンドを打ちます。

$ hub pull-request

username, passwordを入力し、2ファクタ認証のコードを入力します。

github.com username: hogehoge
github.com password for hogehoge (never stored): 
two-factor authentication code: ****

自動でファイルが作成されました。

$ ls -la ~/.config/hub 
-rw-------  1 hogehoge  staff  112 11  9 14:26 /Users/hogehoge/.config/hub

手動で設定する方法

使用するGitアカウントの Settings > Developer settings > Personal access tokens を開きます。

[Generate new token]を押下

『Note』にわかりやすいよう説明を入力します。

Scopeは何もチェックしなくても作成することができます。

[Generate token]を押下

tokenが作成され、表示されるのでコピーします。

~/.config配下にhubというファイルを作成します。

$ vim ~/.config/hub

エディタが開いたら、以下を入力します。
{UserName}にはGithubアカウントの名前を、{token}には先ほど生成したtokenを入れます。

github.com:
- user: {UserName}
  oauth_token: {token}
  protocol: https

これで準備は完了です。
以下コマンドを入力し、エディターでPRの概要などを入力すればPRを出すことができます。

$hub pull-request

トラブルシューティング

エラー: Bad credentials

▼エラーメッセージ

$ hub pull-request
Error creating pull request: Unauthorized (HTTP 401)
Bad credentials

原因

tokenの値が間違っていた。

解決方法

~/.config/hub のtokenの値が正しいか見直す。
必要があれば、tokenを再作成して試す。

エラー: Not Found Are you sure that github.com/hoge/hoge exists?

▼エラーメッセージ

$ hub pull-request
Error creating pull request: Not Found (HTTP 404)
Not Found
Are you sure that github.com/hoge/hoge exists?

原因

私の場合は、tokenを作り直して~/.config/hubの値を変更し実行したところ、このエラーが出てしまいました。

解決方法

一度~/.config/hubを削除し、 #自動で設定する方法 の手順を行ったところ、成功しました。

おそらく、~/.config/hub側の設定を変えても、使用されているGITHUB_TOKENの変更ができていなかった為に起きていたものと思われます。
参考:https://github.com/github/hub/issues/878


ちょっとした使い方メモ

エディターを開かずにコマンド実行だけでPRを出す

シェルスクリプトの中で実行する時など、エディターを開きたくない場合に。

1.テンプレートファイルを作る

PRの概要欄に記載したい内容を、あらかじめテンプレートとして作成しておきます。
内容を変えたい時は、よしなにファイル操作を行えば、バッチ内でいい感じに使えます。(たとえば日付を変えたい時は、sedで変更するなど)

template.txt
YYYYMMDD_PR_Title

## チケット
CHICKET_URL

## 対応内容
FIX_DETAIL

2.hubコマンドのオプションでテンプレートファイルを指定する

$hub pull-request -F ~/pj/template.txt
https://github.com/hogehoge/fugafuga/pull/9999

このようにエディターを開かずPRを作成できます。
また、テンプレートの一行目がPRのタイトルとなります。

ラベルを指定する

-l "{ラベル名}"

$hub pull-request -F ~/pj/template.txt -l "label_name"

レビュアーを指定する

-r "{レビュアー名}"

$hub pull-request -F ~/pj/template.txt -r "reviewer_name"