English | 简体中文 | Español | Français | Deutsch | 한국어
/oˈtuː.i/ と読みます。
gh-otui = gh + org + tui
(GIFで表示されているリポジトリはすべて自分が所属している組織のパブリックのものです)
gh-otuiはghとghq、fuzzy finder (peco, fzf)を組み合わせたCLIツールです。
Organizationや自分のリポジトリをfuzzy finderの仕組みを使って横断して検索・閲覧し、ghqでクローンすることができます。特に複数のリポジトリを横断して開発している場合、リポジトリ名さえ知っていればCLIのみでクローンを完結できるので便利です.
- GitHubのOrganization、自分のリポジトリの一覧表示
- fuzzy finderを使用した対話的なリポジトリ選択
- 選択したリポジトリのghqによるクローン(未クローンの場合)
- クローン済みリポジトリの視覚的な表示(✓マーク)
- GitHub CLI (gh)
- ghq
- peco
- または fzf。環境変数
GH_OTUI_SELECTORをfzfに設定することでfzfを使用できます。環境変数の指定がない場合は、pecoとfzfのインストールされている方を使います。両方インストールされている場合はpecoが優先されます。
- または fzf。環境変数
gh extension install n3xem/gh-otui- gh otui コマンドを実行するだけです。初回は取得するリポジトリの一覧を格納したキャッシュが作成されます。
gh otui-
fuzzy finderインターフェースで目的のリポジトリを選択します
- ✓マークは既にクローン済みのリポジトリを示します
- 未クローンのリポジトリを選択するとghqによるクローンが行われます
- クローン済みの判定は
ghq rootのパスを確認して行われます
-
選択したリポジトリのローカルパスが標準出力されます。
- cdコマンドと連携して使用するとすぐ移動できて便利です。
- 例:
cd $(gh otui)
リポジトリは以下の形式で表示されます:
- ✓: クローン済みリポジトリを示すマーク
- organization-name: GitHubの組織名
- repository-name: リポジトリ名
gh-otuiは以下のようなキャッシュ構造を使用しています:
- キャッシュの保存場所:
~/.config/gh/extensions/gh-otui/ - 有効期間: 1時間(最終更新から1時間経過すると古いと判定され、バックグラウンドで自動更新されます)
- メタデータファイル:
_md.json- キャッシュの最終更新時刻を保存 - ホストディレクトリ: 各GitHubホスト(例:
github.com)ごとにディレクトリを作成 - 組織ファイル: 各組織ごとに
{organization}.jsonファイルを作成。リポジトリ情報を保存
キャッシュの更新は以下の場合に行われます:
- 初回実行時(キャッシュが存在しない場合)
- キャッシュの有効期限(1時間)が切れた場合(バックグラウンドで自動更新)
キャッシュの削除: gh otui clear コマンドでキャッシュディレクトリを削除できます。