Support SCP-like parent URLs with relative submodules
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 56/100
Direzione di ricerca
Inizia individuando ResolveSubmoduleURL e l'esistente scpLikeURLRegex. Leggi la gestione dei percorsi relativi e confrontala con il comportamento di transport.NewEndpoint() di go-git, quindi aggiungi la copertura per gli URL parent simili a SCP e i percorsi relativi dei sottomoduli. Il lavoro è completato quando l'URL segnalato viene risolto senza l'errore attuale e i casi esistenti HTTPS e con più percorsi relativi continuano a funzionare.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
When the parent repository uses an SCP-like URL (e.g., git@github.com:org/repo.git) and a submodule is configured with a relative path (e.g., ../other/submodule.git), envbuilder cannot resolve the submodule URL.
Currently this returns an error:
relative submodule URL "../other/submodule.git" cannot be resolved: parent URL "git@github.com:org/repo.git" uses SCP-like syntax which is not supported for relative submodule resolution
Background
Go's net/url.Parse() cannot properly parse SCP-like URLs - they have no scheme and use : as a path separator instead of /.
We've built a custom ResolveSubmoduleURL function to handle relative submodule paths because go-git's native implementation has bugs with:
- HTTPS URLs losing slashes when using
filepath.Dir() - Multiple relative paths (
../../submodule.git) not resolving correctly
Workaround
Users can configure submodules with absolute URLs instead of relative paths.
Proposed Solution
Add SCP-like URL handling to ResolveSubmoduleURL:
- Detect SCP-like parent URLs using the existing
scpLikeURLRegex - Parse into user, host, and path components
- Apply relative path resolution to the path component
- Reconstruct the SCP-like URL
Alternatively, use go-git's transport.NewEndpoint() which can parse SCP-like URLs, but this needs careful testing to ensure it doesn't reintroduce the bugs we worked around.
Related/Blocker
- PR #485: feat: add git submodule support
- Lingua principale
- Go
- Stelle
- 300
- Fork
- 64
- Merge medio
- 20m
- PR unite (30g)
- 1
Guida per i contributori
Nessuna guida per i contributori indicizzata per questo repository
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di coder/envbuilder
-
bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
coder/envbuilder#506 ·
-
bug envbuilder needs-investigation
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
coder/envbuilder#495 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
coder/envbuilder#484 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
coder/envbuilder#483 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 38/100
coder/envbuilder#481 · 1 commento ·
Tutte le issue di coder/envbuilder
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
milvus-io/birdwatcher#545 ·
-
kind/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
kubernetes-sigs/prow#953 · 1 commento ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
caddyserver/caddy#8046 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
jaegertracing/jaeger#9588 ·