devboxをGitHubに置くまでが、思ったより長かった話

こんにちは、さるまりんです 🐒🔧

前回の記事では、
「make init && make up で即実験!Spring Boot devboxテンプレを対話式にしてみた」
という内容で、Spring Boot 用の devbox を 対話式ジェネレータとして作ってみました。

devbox 自体は無事完成して、
「よし、これでまとめたものを書けるぞ!」と思ったわけですが……

その次に来たのが、

じゃあ、GitHubに置こうか

という工程で、
ここからが、思ったより長い道のりだったんです。

今回ハマったこと一覧

まず、今回実際に遭遇したイベントをまとめると、こんな感じです。

  • GitHub用に別アカウントを作った
  • HTTPS で push しようとして失敗
  • 「パスワードではダメ?」となる
  • SSH鍵?ed25519?と混乱
  • 既存の id_rsa があって不安になる
  • SSH config で Host を切り分ける
  • ssh -T が通って一安心
  • Repository not found
  • 実はリポジトリ名が違っていた
  • リポジトリ名を変更して remote を修正
  • ようやく git push が通る

……書いてみると、なかなかですね。

一つ一つは難しくないはずなのに、
トラブルが連鎖すると、どうしてもあわててしまいます。

今回は、この一連の流れそのものを、
そのまま記事としてまとめてみます。

GitHubアカウントを分けた理由

まず最初にやったのが、
GitHubアカウントを新しく作ることでした。

普段使っている GitHub アカウントは、

  • 仕事でも使っている
  • private なリポジトリも多い
  • 実験用としてはちょっと気を遣う

という状態。

今回作った devbox は、

  • 壊してOK
  • 書き捨てOK
  • 試行錯誤そのものが目的

なので、
気持ちとして「雑に扱える場所」を作りたかったんですね。

結果として、
これはかなり良い判断だったと思っています。

HTTPS push が通らない問題

ローカルで git init して、
README を書いて、いざ push。

git push -u origin main

すると……

Password authentication is not supported for Git operations.

はい、来ました。

そう、GitHub はもう
パスワード認証では push できません

ここで初めて、

あ、SSH鍵の話だな

というステージに進みます。

ed25519って何?既存の id_rsa があるけど?

SSH鍵を作ろうとして、次に出てきた疑問がこれでした。

  • ed25519 って何?
  • すでに ~/.ssh/id_rsa があるけど大丈夫?
  • 仕事用のリポジトリに影響しない?

結論から言うと、

  • 新しく鍵を作っても既存の鍵には影響しない
  • SSH config で Host を分ければ安全
  • ed25519 は今どきの標準的な方式

ということが分かりました。

なので今回は、

ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519_salumarine

という形で、
「salumarine 専用鍵」として切り分けています。

SSH config で Host を分ける

鍵を作っただけでは終わりません。

次にやったのが、~/.ssh/config の設定です。

Host github-salumarine
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_salumarine

これで、

ssh -T github-salumarine

と叩くと……

Hi salumarine! You've successfully authenticated

この瞬間、かなり安心しました。
ちゃんと salumarine で繋がってくれていますね。

Repository not found…??

SSH も通った。
鍵も正しい。

なのに、次に出たのがこれ。

ERROR: Repository not found.

原因は、
リポジトリ名がローカルと GitHub でズレていたことでした。

最初は spring-boot-devbox-generator という名前で作っていたのですが、

  • 今後、Spring Boot 以外にも広げたい
  • devbox ジェネレータ全体の拠点にしたい

という理由で、

👉 salumarine-devbox-generator

にリネーム。

GitHub 側で名前を変更したあと、
ローカルの remote も修正します。

git remote set-url origin git@github-salumarine:salumarine/salumarine-devbox-generator.git

そして、ようやく push

ここまで整えて、改めて:

git push -u origin main

今度は無事に通りました。

正直、

「やっと外に出た……」

という感覚でした。

git push
世界に、自分の作った何かが放たれる瞬間です。

開発はコードだけじゃない

今回あらためて感じたのは、

開発はコードを書いて終わりじゃない

ということ。

  • Git
  • GitHub
  • 認証
  • 公開
  • 名前付け

全部ひっくるめて「開発」。

devbox 自体を作るのも楽しかったですが、
外に出せる形にする工程も、ちゃんと価値があるなと思いました。

次にやりたいこと

この devbox は、ここからさらに育てていく予定です。

  • MySQL 対応
  • Java / Kotlin のサンプル API 自動生成
  • DB 定義付きテンプレート
  • その先に Next.js devbox

ガレージでの作業、まだまだ楽しんで続けていきます 🐒🔧

読んでくださってありがとうございました。
それではまた!