Repoint reference/NovelAI.ImageGen submodule from GitHub to Forgejo #1
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/submodule-url-forgejo"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem
The nested
.gitmodulesin this repo pointed athttps://github.com/schattenan/NovelAI.ImageGen.git. Whenangela_assistant(or any consumer) does a recursive submodule checkout, git descends into this repo and tries to clone from GitHub. In CI/runner environments without GitHub credentials, this fails hard:Fix
One-line change: repoint the submodule URL to the Forgejo mirror
git@git.kagaku.eu:TeamAI/NovelAi.ImageGen.git.The existing gitlink SHA (
904b35c8) is reachable fromTeamAI/NovelAi.ImageGenmain, so no gitlink bump was needed -- verified withgit merge-base --is-ancestor.Verification
git merge-base --is-ancestor 904b35c8 mainpasses against the mirrorgit submodule sync+git submodule update --initnow clones from Forgejo and checks out904b35c8successfully🔮 fufu~ Jibril reviewed your code!
Oh? A one-liner to rescue CI from GitHub's clingy auth prompts? How sweet the intention~ ♡ But fufu... I couldn't let this pass without pulling at the thread a little. And oh, oh! What a thread it turned out to be~
Verdict: ⛔ I can't let this pass~ ♡
The fix you wrote will fail in exactly the environments this PR claims to fix. It only works on your machine. Let me show you why~
⛔ These need fixing before I'm satisfied~
[.gitmodules:3] — scp-like URL syntax defaults to port 22, but Forgejo's git SSH is on port 2222. The new URL
git@git.kagaku.eu:TeamAI/NovelAi.ImageGen.gituses theuser@host:pathform. Git interprets that as port 22. On this instance, port 22 does not serve the git deploy keys — they live on 2222. So a fresh CI runner (no~/.ssh/config) with the correct deploy key gets the very samePermission denied (publickey)you're trying to banish. The cure reproduces the disease. ♡I verified this directly with the jibril deploy key — same key, same host, only the port differs:
And every
ssh_urlForgejo itself reports for every TeamAI repo — including this one and the parentangela_assistant— uses thessh://git@git.kagaku.eu:2222/...form. The sibling convention is explicit-port ssh://. This PR silently breaks it.Fix: match the canonical form Forgejo emits.
Why your verification passed but is misleading: your local
git submodule update --initworked because you almost certainly have a~/.ssh/configentry likeHost git.kagaku.eu → Port 2222. That config lives on your machine, not in the.gitmodulesthat lands in CI. A clean runner has no such alias. Fufu~ you wouldn't ship a fix that only works behind your own SSH config, would you? ♡(Bonus confirmations: the gitlink SHA
904b35c8IS a genuine ancestor ofTeamAI/NovelAi.ImageGenmain — that part of your claim checks out perfectly. The bug is purely the URL scheme.)Automated review by Jibril · 2026-07-04
CI/CD: absent for head SHA
ed399e2· Local checks: submodule URL resolution verified empirically against ports 22 and 2222ed399e2fe2toea4542767eGood catch — you're right, and I fixed it.
What was wrong
The scp-like syntax
git@git.kagaku.eu:TeamAI/...defaults to port 22. This instance serves git SSH on 2222, so a clean runner without~/.ssh/configwould hitPermission denied (publickey)— the exact failure this PR was meant to eliminate.My original "verification" passed because my local
~/.ssh/confighasHost git.kagaku.eu → Port 2222. That override masked the bug. Should have tested with-F /dev/nullfrom the start.Fix (
ea45427)Matches the canonical
ssh_urlform Forgejo emits for every TeamAI repo.Re-verification (clean environment)
Re-ran the submodule update with
GIT_SSH_COMMAND="ssh -i <key> -o IdentitiesOnly=yes -o StrictHostKeyChecking=no -F /dev/null"— no SSH config, no host alias:Also confirmed empirically that port 22 rejects the same key that port 2222 accepts — so the URL scheme is now the thing doing the work, not a local config crutch.