Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Projects View

現在のリポジトリにリンクされた GitHub Projects (v2) を読み取り専用のボード として眺めるビューです(リンクの取得は gh repo view --json projectsV2、 ボードは ボード本体は GraphQL)。

ボードは全幅で表示され、最初のリンク済みプロジェクトがすぐに読み込まれます。 列は Status の選択肢を GitHub 上の順に 1 列ずつ、加えてステータス未設定の アイテム用の No status 列です。カードにはアイテム種別( issue、 pull request、 draft)、番号、タイトル、担当者を表示し、別リポジトリの アイテムには番号の前に薄い色で owner/repo が付きます。

複数のリンク済みプロジェクトと固定

リンクされたプロジェクトが複数あるときはヘッダに Board: <タイトル> (i/n) と出て、p / P で順に切り替えられます。1 つもリンクされていないときは リンク方法(リポジトリの Projects タブ、または gh project link)を案内 します。設定のトップレベルに projects-board を書くと、タイトルまたは プロジェクト番号でボードを 1 つに固定できます — 設定リファレンスの projects-board を参照してください。

テーブルモードと詳細ペイン

t でテーブルモードに切り替わり、1 行 1 アイテムでプロジェクトの フィールド(Status、Priority、Estimate、Iteration、日付、カスタムの テキスト / 数値フィールド)を列として表示・ソートできます。h / ls でソート列を選びます。

詳細ペインは選択中アイテムの全フィールド値に続けて、GitHub View と同じ issue / PR の本文とコメントを表示します(draft は本文のみ)。

オプションの projects 一覧ペイン

projects 一覧ペインも実装されていますが、組み込みレイアウトには配置 されていません。設定でレイアウトに配置すると、リンク済みプロジェクトを 選べる一覧が戻ってきます。貼り付けられるレイアウト例は 設定レシピ を参照してください。

保存済みビュー

プロジェクトの保存済みビュー(ProjectV2.viewsgh project からは取れない ため GraphQL で取得)はボードと一緒に読み込まれます。ヘッダに現在のビュー名 とレイアウト(Board: vig demo board · Sprint [board] (2/3))が表示され、 v / V で切り替えられます。保存済みビューが無いプロジェクト(またはビュー 取得に失敗した場合)は従来どおり Status 固定の kanban になります。 Table ビューは定義どおりに描画されます: 表示フィールドがそのまま列に (ビューの順、先頭に # 列)、ビューのソートが初期ソートに(降順は 表示)、グループ化はグループごとの太字見出し行に(No <field> は最後) なります。

Board ビューもビューの定義に従います: 列はビューの列フィールド (verticalGroupByFields — 単一選択またはイテレーションフィールド、 オプション順 + No <field>。未設定なら Status)、ソートは各列内の カード順、水平グループはスイムレーン(値ごとの帯 + 見出し行)に なります。Space で選択中レーンの折りたたみ、列の端で j / k を 押すと隣のレーンへ移動します。Roadmap ビューはタイムラインを描画します: 左にアイテム行、右に 時間軸(アイテムごとのバー、黄色の今日マーカー、イテレーションの帯)。 期間はプロジェクトの日付フィールド(名前に start / begin を含む ものが開始、target / end / due / finish を含むものが終了。日付 フィールドが 1 つだけなら点)から、日付の無いアイテムはイテレーション の開始 + 期間から求めます。+ / - で月 / 週 / 日のズーム、h / l で横スクロール、t でテーブルと行き来できます。期間の無いアイテムは バー無しで並びます。

ビューのフィルタ式status:Todo -label:bug assignee:@me is:issue no:milestone …)は、取得済みのアイテムに対して手元で評価します(追加の API 呼び出しなし)。どのレイアウトでもグループ化・ソートの前に適用され ます。対応: タイトルの自由語、field:value, 区切りの複数値・引用符付き の値)、- による否定、is:issue|pr|draftno: / has:assignee:@me はサインイン中のログイン)、label:milestone:repo:。範囲 (>..)・ワイルドカード・is:open|closed は評価できないため、 ステータスバーに ⚠ filter: unsupported "…" と出して無視します。フィルタ で隠れた件数もステータスバーに (3 filtered out) と表示されます。

キーバインド

キー操作
p / P次 / 前のリンク済みプロジェクトへ
h / l / (ボード)前 / 次の列へ(テーブルモードではソート列の切り替え)
j / k(ボード)列内のカード移動(テーブルモードでは行移動)
t(ボード)テーブルモードの切り替え
s(ボード、テーブルモード)ソート列を順に切り替え
Enter / i(ボード)詳細ペインにフォーカス
v / Vプロジェクトの保存済みビューを切り替え
Space選択中のスイムレーンを折りたたみ / 展開
+ / -ロードマップの時間軸をズームイン / アウト
oプロジェクト / アイテムをブラウザで開く
yプロジェクト / アイテムの URL をコピー
j / k / Ctrl+d / Ctrl+u(詳細)スクロール
h / Esc(詳細)ボードに戻る
Tab / Shift+Tabペイン切り替え: Board → Detail
/ n N検索(列をまたいだアイテムのタイトル / 番号)
rリンク済みプロジェクト・ボード・表示中アイテムを再取得

自動更新

ページを表示している間、vig は projects-poll-interval (既定 30 秒)ごとにボードが変わったかを GitHub に尋ねます。プローブは プロジェクトの updatedAt だけを読み(GraphQL 1 ポイント。カードの移動や フィールド編集で動きます)、動いたときだけボードを再取得します。選択・ ビュー・ソートはそのまま保たれます。ステータスバーにはボードの経過時間 (board 12s ago)と、再取得直後は短く ↻ updated が出ます。5 分以上 経ってからページに戻ったときの stale 再取得もこれまで通りです。どちらも github-auto-refresh・アイドル時の間隔延長・残量が少ないときの抑制に 従います。

制約

  • gh project にはトークンの project スコープが必要です。無い場合は ペインの代わりに案内を表示するので、gh auth refresh -s project を 実行してから r を押してください。
  • ボードは GraphQL 2 リクエスト(フィールド・保存済みビュー・アイテム 数、次にその数に合わせたページでアイテム)で、表示に必要なものだけを 取得します。コストはアイテム × フィールド 100 組あたり約 1 ポイント (小さなボードで ~2 ポイント)。500 件を超える分はステータスバーに (truncated) と出ます。
  • アカウントの GraphQL クォータ(5,000 ポイント/時)の残りが 1,500 を 切るとヘッダに ⚠ api N left と警告し、自動再取得は自分で減速・停止 します — トラブルシューティング参照。
  • このビューからアイテムの追加・移動・編集・削除は一切行いません。