---
title: GitHub の issue から、1クリックでエージェントを起動する
nav_title: GitHub
layout: default
parent: 日本語
nav_order: 13
description: 登録したリポジトリの未マージ PR と Issue を 1 画面で見る、横断ビューの使い方。
---

# GitHub — PR / Issue 横断ビュー
{: .no_toc }

- TOC
{:toc}

**複数のリポジトリにまたがる未マージの Pull Request と Issue を、1 画面でまとめて確認できます。**
どのリポで何がレビュー待ちか、CI が落ちていないか——セッションを渡り歩かずに一望できます。
表示するリポは自分で**登録**します（`owner/repo` を並べるだけ）。

- ツールバーの **Pull requests**（`call_merge` アイコン）で開く、全画面のビュー。
- **Open な PR と Issue の両方**を、**リポジトリごと**にまとめて表示。
- データは **GitHub CLI（`gh`）** 経由。**`gh` のログインをそのまま使う**ので、アプリにトークンは保存しません。

---

## ① 見たいリポを登録する

表示されるのは**登録したリポだけ**です（worktree やセッションから自動では増えません）。
方法は 2 つ、どちらも**即反映**（再起動不要）。

### 設定モーダルから（おすすめ）

1. ツールバーの **Settings → Pull request repos** を開きます。
2. 入力欄に **`owner/repo`**（例 `receptron/mulmoterminal`）を入れて **Add**。
3. 追加したリポは一覧に並び、各行の **✕** で削除できます。

> 形式は `owner/repo` のみ（スペース・パス・`https://…` は不可）。`gh --repo` にそのまま渡すため、
> `owner` と `repo` を `/` でつないだ素のスラッグだけが有効です。

### 設定ファイルを直接編集

`~/.mulmoterminal/config.json` の **`prRepos`**（`"owner/repo"` の配列）に書きます。

```json
{
  "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 なのか、名前のどこにも書いていないからです。そこで、同じファイルで一度だけ宣言します。

```json
{
  "gitlabHosts": ["gitlab.example.com"],
  "prRepos": ["gitlab.example.com/group/project"]
}
```

宣言したホストは **gitlab.com と完全に同じ**に振る舞います — 一覧・issue からの着手・作業コメント・
MR 作成のすべてです。必要なのは 2 つだけ。

1. **そのホストに `glab` でログインしていること** — `glab auth login --hostname gitlab.example.com`。
   このアプリは自前のトークンを持たず、`gh` と同じくあなたの `glab` を実行します。
2. **`config.json` を手で書いたらサーバを再起動する** — 起動時に読むので、手書きの `prRepos` と同じです。

宣言する前は、その行が「未対応」ではなく**足すべきキー**を挙げて出ます。まだ対象外なのは、
ポート付きのホスト名 (`gitlab.example.com:8443`)、http のみのインスタンス、GitHub Enterprise です。

→ キーの一覧は [設定方法](config.html) を参照。

## ② ビューを開いて見る

ツールバーの **Pull requests**（`call_merge`）をクリックすると、**PRs & Issues** ビューが開きます
（**Accounting** と **Wiki** の間）。

- 上に **Pull requests**、下に **Issues** の 2 セクション。どちらも **リポジトリごと**に見出し
  （`owner/repo` と件数）でまとまります。
- 表示されるのは **Open な項目だけ**。並び順は登録した順（リポ）と `gh` が返す順（項目）。
- **行をクリックすると 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 クリックで済みます。

1. issue を読み（タイトルと本文）、
2. そのリポのクローンに **`issue/<番号>-<slug>` の worktree** を作り（fetch した `origin/<ベース>` から分岐）、
3. その worktree で **Claude** をグリッドのセルとして起動します。issue は**入力欄に入った状態**で、
   **送信はされていません**。読んで、必要なら直して、Enter は自分で押します。

ブランチが issue 番号を持っているので、以降は何も指定しなくても繋がります — ⧉ Open PR は
PR 本文に `Fixes #<番号>` を入れ、ヘッダーの work item チップ・issue への作業コメント・
マージ時の自動クローズも同じ番号を読みます。

**同じリポのクローンを複数持っている場合**は、初回だけどれを使うか聞かれ、その答えを覚えます
（設定の `repoDirs`）。次からは 1 クリックです。**そのリポのクローンが無い場合**はボタンが
無効になり理由が出ます — 設定のディレクトリプリセットに登録すると使えるようになります。

**同じ issue をもう一度押したときは、2本目の worktree は作りません。** 1 つの issue に対して
worktree は 1 つです。既にあるものが開き、そこにセッションが残っていればそれが開きます。
そのセッションを**他のターミナルで開いたまま**なら、何も起こさずにその旨が出ます
（[worktree は 1 セッションまで](worktree.html#one-session)、というルールと同じです）。

> issue の本文は、その issue を書いた**他人**のテキストであることがほとんどです。だから送信せず
> 入力欄に置いたままにしています。Enter を押すのはあなたです。**再開したセッション**には
> 何も入力されません — そのセッションには既に会話があるためです。

## 前提：GitHub CLI にログインしておく

このビューは裏で **`gh` コマンド**を実行します。あらかじめサーバを動かすマシンで：

```bash
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 で。

---

← [機能一覧](features.html) ／ [設定方法](config.html) ／ [日本語ガイドの目次](index.html)
