feat(web): support ssh owner repo clone flow

- Add SSH-only owner/repo clone path for git.commumedia.org
- Preflight remote repository existence with git ls-remote before cloning
- Keep advanced URL paste fallback and blank repository creation
- Add focused backend and frontend coverage plus docs updates

Quality gates: python -m py_compile, vitest run src/components/repositories-settings-tab.test.tsx, npm run typecheck
This commit is contained in:
2026-05-22 19:07:04 +02:00
parent 5af4de0d7e
commit 2525c58471
9 changed files with 310 additions and 63 deletions
+6 -6
View File
@@ -12,7 +12,7 @@ Git repositories are managed within projects. You can create bare repositories f
2. Click the **"New Repository"** button
3. Fill in the form:
- **Name**: Repository name (required)
- **Remote URL**: For cloning (optional)
- **Owner** and **Repository**: For SSH cloning from `git.commumedia.org`
- **Mirror Clone**: Toggle for mirror clones
4. Click **"Create Repository"**
@@ -25,12 +25,12 @@ Creates a new bare git repository. Use this for:
#### Clone from Remote
Enter a git URL to clone from:
- `https://github.com/user/repo.git`
- `git@github.com:user/repo.git`
- `https://gitlab.com/user/repo.git`
Enter the repository owner and name to clone from `git.commumedia.org` over SSH:
- `owner`: `alice`
- `repository`: `demo`
- Resulting SSH URL: `git@git.commumedia.org:alice/demo.git`
**Smart URL Parsing:** If you paste a browser URL (like `https://github.com/user/repo/tree/main`), the system will automatically suggest the correct git URL.
**Advanced fallback:** If needed, you can still paste a full git URL and the system will suggest the correct clone URL.
#### Mirror Clone