ローカルの未git管理Rustプロジェクトを検出し、GitHub公開までの一連の手順をTUI上でインタラクティブに進めるWindows向けアプリ。Rustで書かれています。
gh auth login 済みであること)Rustが必要です。
cargo install --force --git https://github.com/cat2151/cat-gh-repo-creator
cat-gh-repo-creator
config.tomlを自動生成して終了となりますので、以下の設定をしてください
初回起動時、以下のパスに config.toml を自動生成します
%LOCALAPPDATA%\cat-gh-repo-creator\config.toml
config.toml の scan_directory を自分の環境に合わせて編集してください(編集しないとエラー)
scan_directory = "C:\\Users\\<YOUR NAME>\\repos"
cat-gh-repo-creator
[DirList] スキャン結果一覧。j/kで移動、ENTERで選択
↓ ENTER
[RepoInspect] 分析結果(OK/NG)とリポジトリ内部のツリー表示
↓ ENTER(OK時のみ)
[CopyDialog] 近隣repoから見つかったコピー候補ファイルの確認 y / [N]
↓ y
[CopyResult] コピー後のツリー表示
↓ ENTER
[FetchFiles] .gitignore / LICENSE を curl
↓ 完了
[FetchResult] 取得結果を表示
↓ 自動
[CreateDialog] git init〜gh repo create の設定確認 y / [N]
↓ y
[Executing] git init / add / commit / branch -M main / gh repo create を順次実行しつつ、開始直後から250msごとのスピナーと「処理中なのでお待ちください」を表示
↓ 完了
[Done] ブラウザでリポジトリページを自動で開く → ENTERで終了
分析NGの場合、またはダイアログでNを選んだ場合は中断ダイアログへ遷移し、ENTERでアプリ終了となります
| キー | 有効な画面 | 動作 |
|---|---|---|
j / ↓ |
DirList | カーソル下(target dirのみに移動) |
k / ↑ |
DirList | カーソル上(target dirのみに移動) |
q |
全画面 | アプリ終了 |
ENTER |
全画面 | 決定・次のステップへ |
y |
CopyDialog / CreateDialog | Yes(実行) |
n / N / ENTER |
CopyDialog / CreateDialog | No(中断ダイアログへ) |
scan_directory 直下のディレクトリを作成日降順で列挙し、以下の両条件を満たすものをtargetとします
.git/ が存在しないことCargo.toml が存在することTUI上では target を白、非targetをグレーで表示します。カーソルはtargetのみに移動します
scan_directory 配下の .git/ ありリポジトリを「近隣リポジトリ」としてscanしますcopy_files で設定したファイルごとに、近隣リポジトリ全体から最終更新日時が最新のものを選択してコピーします。コピー先はENTERで選んだtargetディレクトリの直下です_config.yml は、コピー後に以下の行を自動書き換えします| 書き換え対象 | 変換内容 |
|---|---|
repository: owner/旧名 |
repository: owner/<新repo名> |
baseurl: /旧名 |
baseurl: /<新repo名> |
git init
git add .
git commit -m "Initial commit (generated via Claude chat UI)"
git branch -M main
gh repo create <リポジトリ名> --public --source=. --remote=origin --push --disable-wiki
完了後、ブラウザで https://github.com/<リポジトリ名> を自動で開きます