Mac のメニューバーから GitHub の Pull Request や通知を見れるようにする
こういうのを作りました。
こういうの
- レビューリクエストされている Pull Request の一覧
- 自分の Pull Request の一覧
- 通知の一覧
を表示しています。
各アイテムをクリックすればブラウザで対象のページが開きます。
通知に関してはメニューバー上で既読にすることもできます ( 一括既読も可能 ) 。
とにかく仕事が捗ってしょうがないので紹介です。
仕組み
xbar というオープンソースの Mac アプリを使って実現しています。
xbar はプラグインを使うことで Mac のメニューバーに様々な情報を表示することができるアプリです。
Homebrew 経由でもインストールすることができます。
$ brew install --cask xbar
xbar プラグインを使用する手順
それでは今回作成した xbar プラグインをインストールして使用する手順を紹介します。
ソースコードはこちら。
0. 前提条件
今回作成した xbar プラグインを使うには、 Homebrew 経由で node
をインストールしておく必要があります ( 既に他の方法で node
がインストールされていても問題ありません ) 。
$ brew install node
1. プラグインをインストール
git
と make
が使える環境であれば、次のコマンドでインストールできます。
github.5m.js
というファイルのシンボリックリンクが xbar のプラグインディレクトリ内に作成されます。
$ git clone git@github.com:koki-develop/xbar-plugin-github
$ cd xbar-plugin-github
$ make
もしくは、 xbar のプラグインディレクトリにスクリプトを直接ダウンロードします。
$ wget https://raw.githubusercontent.com/koki-develop/xbar-plugin-github/main/github.5m.js -P ~/Library/Application\ Support/xbar/plugins/
$ chmod +x ~/Library/Application\ Support/xbar/plugins/github.5m.js
インストール完了後、 xbar を起動します。
既に起動済みの場合は xbar のメニューから Refresh all
( もしくは ⌘
+ ⇧
+ r
) を選択します。
2. プラグインの設定
今回作成した xbar プラグインを使用するには GitHub の Personal Access Token を設定する必要があるため、起動直後は以下のように Warning が表示されます。
プラグインの設定画面を開くには xbar
> Open plugin…
を選択します (もしくは ⌘
+ e
) 。
GITHUB_TOKEN
に GitHub の Personal Access Token を設定して、左上の更新ボタンをクリックしてください。
これでプラグインが有効になります。
その他の設定項目は次の通りです。
項目 | デフォルト | 説明 |
---|---|---|
SHOW_REVIEW_REQUESTED |
true |
レビューリクエストされている Pull Request を表示するかどうか。 |
SHOW_MY_PULL_REQUESTS |
true |
自分のプルリクエストを表示するかどうか。 |
SHOW_NOTIFICATIONS |
true |
通知を表示するかどうか。 |
SHOW_PULL_REQUEST_STATUS |
true |
プルリクエストのステータスを表示するかどうか。 |
SHOW_PULL_REQUEST_BRANCHES |
true |
プルリクエストのブランチ (head/base) を表示するかどうか。 |
SHOW_NOTIFICATION_REASON |
true |
通知の理由を表示するかどうか。 |
INCLUDE_BOT_PULL_REQUESTS |
false |
bot が作成したプルリクエストを表示するかどうか。 |
xbar プラグインについて
xbar のプラグインの正体は標準出力にテキストを出力するだけの実行可能ファイルです。
プラグインをインストールすると xbar が定期的にプラグインを実行し、標準出力に出力されたテキストを元にメニューを表示します。
実行頻度は次のようにファイル名に含まれます。
{プラグイン名}.{実行頻度}.{拡張子}
例えば、次のような ~/Library/Application Support/xbar/plugins/hello.10s.sh
というファイルを作成すると、 10 秒ごとにメニューバーに時刻 ( date
コマンドの出力 ) が表示されるようになります。
( ついでにメニューアイテムも追加してみました。 )
#!/bin/bash
date # この出力がメニューバーに表示される
echo "---" # ここから下はメニューアイテム
echo "Item | color=red size=12" # `|` で様々なパラメータを設定できる
echo "Item"
echo "--Sub Item" # 先頭に `--` をつけるとサブアイテムになる
echo "--Sub Item | href=https://example.com" # リンクつきのサブアイテム
こういうのができる
今回紹介した xbar プラグインも、実態としてはただ GitHub API から取得したデータを整形して標準出力に出力するだけのシンプルなスクリプトです。
その他のフォーマットやパラメータ等の詳細は公式ドキュメントにわかりやすくまとまっているので、こちらをご参照ください。
まとめ
便利すぎる!!!!
参考
Discussion
私の環境起因かもしれませんが,手順通りに試してみたところ
(edge) => edge.node
のところで失敗してるようです.NodeJSは HomeBrew で入れてます.
こちらの行も同様です.
下記のように各行に対して応急処置すると動きました.