@kyanny's blog

My thoughts, my life. Views/opinions are my own.

ghn v2.0.0.pre1 released

I've released ghn v2.0.0.pre1. v2.0.0 have some backwards incompatible changes.

  • Add ghn open command (--open options is removed)
  • Add --all option to list/open all unread notifications
  • Remove --mark-as-read option
  • Jump to #issuecomment anchor like this
  • Add aliases (shortcut of username/reponame)

You can install v2.0.0.pre1 by $ gem install --pre ghn.

I'm going to release v2.0.0 within a few days. If you have any problems/questions, feel free to open issue https://github.com/kyanny/ghn/issues.


ghn v2.0.0.pre1 をリリースしました。 v2.0.0 はいくつかの後方互換性のない変更を含む予定です。

  • ghn open サブコマンドを追加 (--open オプションは廃止)
  • --all オプションを追加
    • これまでは GitHub Notifications API の仕様で最大 50 件までしか未読の通知を開けませんでしたが、 --all オプションつきだと内部でページングして未読の通知を全て開きます
  • --mark-as-read オプションを廃止
  • コメントへのアンカー つき URL にジャンプするように修正
  • username/reponame へのエイリアスを設定可能に

v2.0.0.pre1 を試してみたい方は $ gem install --pre ghn でインストール可能です。

自分で数日使ってみて特に問題なければ v2.0.0 をリリースするつもりです。もし何か問題や要望等ありましたらお気軽に https://github.com/kyanny/ghn/issues までご連絡ください。


余談。この期に前から気になっていた内部の刷新も合わせてやった(というほど元々コード多くなかったけど)。

こういう感じの理由 が当時わかってなくて octokit ダメなのかと思って github_api を使っていたのをやめて octokit にした(どうも sawyer 側でなおったらしい)。あと何をトチ狂ったか自前でサブコマンドやオプションを処理してたのを thor 使うようにした。

GitHub API v3 は多くのエンドポイントでページネーションをサポートしていて、 octokit には auto_paginate = true にすると内部で全ページなめてくれる便利機能がある。しかし Notification API はこれが効かず、なんでだろうとおもったら Notifications API のレスポンスヘッダには Link ヘッダがない。 octokit は Link ヘッダの中身をみてページ情報を得ているのでダメだった、という。

仕方ないので諦めようかと思ったけど、未読が多いときほどコマンド一発で全部開けない、というのが普段使ってて一番の不満点だったのでどうにかしたくてこんな風にしてみた

あとエイリアス。これも普段使ってて長い NAME を毎度入れるのが面倒くさかったのでぜひ入れたかった機能。マッピング情報の保存場所が思いつかずにお蔵入りにしてたけど、突如 .gitconfig に入れることを思いついてあっさり解決した。たぶん ghq とかでみたのをぼんやり覚えてたのかもしれない。