💬

GitHub DiscussionをCLIで管理できるgh-discussionを作りました!

に公開

忙しい人へのまとめ

GitHub DiscussionをCLIで効率的に管理できるGitHub CLI拡張機能「gh-discussion」を作成しました!

  • GitHub Discussionをコマンドラインから一覧表示・詳細表示可能
  • カテゴリー別フィルタリングやコメント表示にも対応
  • ブラウザを開かずにDiscussionの全ての情報を確認できる
  • GitHub CLIの標準機能として自然に統合される

https://github.com/harakeishi/gh-discussion

動作の様子

GitHub Discussionって何?

GitHub Discussionは、GitHubで提供されているコミュニティ機能の一つです。IssueやPull Requestよりもカジュアルで、質問や議論、アイデアの共有などに適しています。

従来、GitHub Discussionを確認するにはブラウザでGitHubにアクセスする必要がありましたが、開発中にターミナルから離れたくない場面も多いですよね...。

どうして作ったの?

日々の開発作業の中で、以下のような不便さを感じていました:

  • ブラウザとターミナルの行き来が面倒:コードを書いている最中にDiscussionを確認するためにブラウザを開くのが手間
  • 検索が不便:GitHub上でのDiscussion検索は意外と使いにくい
  • GitHub CLIとの一貫性:IssueやPRはGitHub CLIで管理できるのに、Discussionだけブラウザが必要
  • AIでの使用: AIを使った分析時にCLIで操作できた方が便利

これらの問題を解決するため、CLI上でDiscussionをサクッと確認できるツールを作りました!

インストール方法

GitHub CLI拡張機能として簡単にインストールできます:

gh extension install harakeishi/gh-discussion

インストール後は、gh discussionコマンドが使用可能になります。

使用方法

Discussionの一覧表示

# 現在のリポジトリのDiscussion一覧を表示
gh discussion list

# 特定のリポジトリのDiscussion一覧を表示
gh discussion list -R owner/repo

# 取得件数を指定(デフォルト30件)
gh discussion list -L 50

実行すると、Discussion一覧が見やすい表形式で表示されます!

 NUMBER    TITLE                          AUTHOR        CATEGORY    ANSWERED    COMMENTS    UPDATED
───────────────────────────────────────────────────────────────────────────────────────────────────
 13        test1                          harakeishi    Q&A         Yes         2           28 minutes ago

Discussionの詳細表示

# Discussion詳細を表示
gh discussion view 13

# コメントも含めて詳細表示
gh discussion view 13 -c

詳細表示では、Discussion内容からコメントまで全ての情報を確認できます:

Discussion #13
test1

Author: harakeishi
Category: Q&A
Repository: harakeishi/gh-discussion
Created: 29 minutes ago
Updated: 28 minutes ago
Answered: Yes
Comments: 2
URL: https://github.com/harakeishi/gh-discussion/discussions/13

─────────────────────────────────────────────────────────────────────────

test1

─────────────────────────────────────────────────────────────────────────

Comments

Comment #1
harakeishi • 28 minutes ago

test1-comment1

  ┌─
  Comment #1  Answer
  harakeishi • 28 minutes ago

  test1-comment1-child1

Comment #2
harakeishi • 28 minutes ago

test1-comment2

技術的な特徴

使用技術

  • 言語:Go
  • GitHub API:Discussion情報の取得
  • CLI:表形式での見やすい出力
  • コメントシステム:ネストしたコメントの表示に対応

アーキテクチャ

gh-discussion
├── cmd/          # コマンドライン処理
├── gh/           # GitHub API連携
└── main.go       # エントリーポイント

できること・できないこと

✅ できること

  • GitHub Discussionの一覧表示(表形式)
  • Discussion詳細の表示
  • コメント表示(ネストしたコメントにも対応)
  • 複数リポジトリに対応
  • 取得件数の制限設定
  • 回答済み・未回答の確認
  • カテゴリー、作成者、更新日時の表示

❌ 今後対応したいこと

  • Fuzzy Searchによる検索機能
  • 新しいDiscussionの作成
  • Discussionへのコメント投稿
  • カテゴリー別フィルタリング

パフォーマンスと使用感

GitHub APIからデータを取得するため、ネットワーク接続が必要ですが、表形式の見やすい出力とネストしたコメント表示により、非常に快適に使用できます

特に、以下のような場面で威力を発揮します:

  • Q&Aセクションの確認:回答済み・未回答が一目で分かる
  • コミュニティの議論追跡:コメントの詳細まで含めて一気に確認
  • プロジェクト管理:カテゴリー別の整理状況を把握

おわりに

GitHub Discussionをもっと気軽に、もっと効率的に使いたいという思いから生まれたこのツール。まだまだ改善の余地がありますが、日々の開発作業を少しでも快適にできれば嬉しいです!

**バグ報告や機能要望、Pull Requestなど、どんなフィードバックでも大歓迎です!**ぜひ使ってみて、気になる点があれば教えてください 🙌

GitHub CLI拡張機能として開発したので、既にGitHub CLIを使っている方であれば違和感なく導入できると思います。ターミナルでの作業効率をさらに向上させましょう!

参考リンク

Discussion