GitHub — PR / Issue 横断ビュー
複数のリポジトリにまたがる未マージの Pull Request と Issue を、1 画面でまとめて確認できます。 どのリポで何がレビュー待ちか、CI が落ちていないか——セッションを渡り歩かずに一望できます。 表示するリポは自分で登録します(owner/repo を並べるだけ)。
- 開き方は 2 通りで中身は同じ。拡大したセルの横のペイン(セルのヘッダーの
mergeボタン)と、 ツールバーの Pull requests(call_merge)で開く全画面のビュー。 - Open な PR と Issue の両方を、リポジトリごとにまとめて表示。ペインではそのセルの リポジトリが先頭に来ます。
- データは GitHub CLI(
gh) 経由。ghのログインをそのまま使うので、アプリにトークンは保存しません。
① 見たいリポを登録する
表示されるのは登録したリポだけです(worktree やセッションから自動では増えません)。 方法は 2 つ、どちらも即反映(再起動不要)。
設定モーダルから(おすすめ)
- ツールバーの Settings → Pull request repos を開きます。
- 入力欄に
owner/repo(例receptron/mulmoterminal)を入れて Add。 - 追加したリポは一覧に並び、各行の ✕ で削除できます。
形式は
owner/repoのみ(スペース・パス・https://…は不可)。gh --repoにそのまま渡すため、ownerとrepoを/でつないだ素のスラッグだけが有効です。
設定ファイルを直接編集
~/.mulmoterminal/config.json の prRepos("owner/repo" の配列)に書きます。
{
"prRepos": ["acme/web", "acme/api"]
}
ホストを付けて "gitlab.com/group/project" とも書けます。GitLab のプロジェクトも読みます — GitHub に対する gh と同じ役割を glab が果たし、一覧・issue からの着手・作業コメント・MR 作成が すべて動きます。GitLab はグループがネストするので gitlab.com/group/sub/project も書けます。 ホストを省略すると github.com 扱いなので、既存の設定はそのままです。
それ以外のホストのエントリは、何も出さずに消えるのではなくそのホスト名を挙げて行に出ます。
1点だけ違いがあります。GitLab の行の CI ドットはたいてい空です — MR 一覧にパイプラインの状態が 入っておらず、読むには MR ごとに 1 コール必要なためです。1 ブランチだけを見るセルは読むので、 コックピットのフェーズ pill は正確です。
自前ホスティングの GitLab
gitlab.example.com はアドレスからは判別できません — そのホストで動いているのが GitLab なのか Gitea なのか Wiki なのか、名前のどこにも書いていないからです。そこで、同じファイルで一度だけ宣言します。
{
"gitlabHosts": ["gitlab.example.com"],
"prRepos": ["gitlab.example.com/group/project"]
}
宣言したホストは gitlab.com と完全に同じに振る舞います — 一覧・issue からの着手・作業コメント・ MR 作成のすべてです。必要なのは 2 つだけ。
- そのホストに
glabでログインしていること —glab auth login --hostname gitlab.example.com。 このアプリは自前のトークンを持たず、ghと同じくあなたのglabを実行します。 config.jsonを手で書いたらサーバを再起動する — 起動時に読むので、手書きのprReposと同じです。
宣言する前は、その行が「未対応」ではなく足すべきキーを挙げて出ます。まだ対象外なのは、 ポート付きのホスト名 (gitlab.example.com:8443)、http のみのインスタンス、GitHub Enterprise です。
→ キーの一覧は 設定方法 を参照。
② ビューを開いて見る
セルの横で。 セルを拡大して、ヘッダーの merge ボタン(Show GitHub PRs and issues)を押す と、そのセルの右ペインに開きます。そのセルで開いていた別のペインとは置き換わります(Canvas / Tools / Files / Collections はセルごとに 1 つだけで、GitHub もその 1 つです)。
全画面で。 ツールバーの Pull requests(call_merge)をクリックします(Accounting と Wiki の間)。
- 上に Pull requests、下に Issues の 2 セクション。どちらも リポジトリごとに見出し (
owner/repoと件数)でまとまります。 - 表示されるのは Open な項目だけ。並び順は登録した順(リポ)と
ghが返す順(項目)。 - ペインではそのセルのリポジトリが専用ブロックとして先頭に出ます(PR と issue がまとまって)。 open なものが 1 件も無い場合も
No open PRs/No open issuesとして先頭に出ます(「無い」も 答えなので)。条件は 2 つで、セルのディレクトリが登録した作業ディレクトリの中にあること (clone そのものでも下位ディレクトリでも可。git リポジトリでない・originが無い・読めない forge を指すディレクトリはどのリポジトリも名乗れません)、かつそのリポジトリが上の一覧にあること。 どちらかを満たさなければ従来の設定順のままです。 - 行をクリックすると GitHub が別タブで開きます(アプリ内では開きません)。
- 右上の ↻(Reload) で再取得。自動更新はしません——開いたときに一度取得し、あとは Reload で更新します。
PR の行に出る情報
| 表示 | 意味 |
|---|---|
| ● CI ドット | 緑=Checks passing/赤=failing/琥珀=running/淡色=No checks |
| #番号・タイトル | PR 番号とタイトル |
| draft | ドラフト PR のとき |
| approved / changes requested / review required | レビュー状態 |
| 作者 · 相対時刻 | 例 alice · 2h ago(最終更新) |
Issue の行は #番号・タイトル・作者 · 相対時刻 に加えて、右端に ▶(着手) ボタンが出ます(下記)。
1 リポあたり PR は最大 100 件 / Issue は最大 20 件まで。超えると「これ以上あります」の注記と GitHub へのリンクが出ます。
3. issue の行から作業を始める
行末の ▶ を押すと、準備が 1 クリックで済みます。
- issue を読み(タイトルと本文)、
- そのリポのクローンに
issue/<番号>-<slug>の worktree を作り(fetch したorigin/<ベース>から分岐)、 - その worktree で Claude をグリッドのセルとして起動します。issue は入力欄に入った状態で、 送信はされていません。読んで、必要なら直して、Enter は自分で押します。
ブランチが issue 番号を持っているので、以降は何も指定しなくても繋がります — ⧉ Open PR は PR 本文に Fixes #<番号> を入れ、ヘッダーの work item チップ・issue への作業コメント・ マージ時の自動クローズも同じ番号を読みます。
同じリポのクローンを複数持っている場合は、初回だけどれを使うか聞かれ、その答えを覚えます (設定の repoDirs)。次からは 1 クリックです。そのリポのクローンが無い場合はボタンが 無効になり理由が出ます — 設定のディレクトリプリセットに登録すると使えるようになります。
同じ issue をもう一度押したときは、2本目の worktree は作りません。 1 つの issue に対して worktree は 1 つです。既にあるものが開き、そこにセッションが残っていればそれが開きます。 そのセッションを他のターミナルで開いたままなら、何も起こさずにその旨が出ます (worktree は 1 セッションまで、というルールと同じです)。
issue の本文は、その issue を書いた他人のテキストであることがほとんどです。だから送信せず 入力欄に置いたままにしています。Enter を押すのはあなたです。再開したセッションには 何も入力されません — そのセッションには既に会話があるためです。
前提:GitHub CLI にログインしておく
このビューは裏で gh コマンドを実行します。あらかじめサーバを動かすマシンで:
gh auth login
- アプリはトークンを保存・参照しません。
ghのログイン権限でそのまま見えます。 - リポは必ずサーバ側の設定から取得します(リクエストからは受け取りません)。
- 各リポの取得は並行で、失敗したリポだけそのエラーを表示します(他のリポは表示されます)。
見えないときは
- 「No repositories configured…」と出る。 → まだ登録がありません。Settings → Pull request repos で
owner/repoを追加。 - 「gh not found…」と出る。 → GitHub CLI を入れて
gh auth login。 - 特定のリポだけエラー。 → 綴り(
owner/repo)と、そのリポへのghのアクセス権を確認。private なら権限が必要です。 - さっき出した PR が出ない。 → 自動更新はないので ↻ Reload。それでも無ければ Open 状態か、
owner/repoが正しいか確認。 - 件数が頭打ち。 → 1 リポ PR 100 / Issue 20 の上限です。全部は各行のリンクから GitHub で。