authorisedList entries with * never match repository URLs
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 62/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- git, github, nodejs, typescript
- Ambito
- authorization, backend
Direzione di ricerca
Inizia dal punto di ingresso getRepoByUrl e segui la ricerca in authorisedList e l’accesso a db.getRepos. Riproduci il caso wildcard di un’organizzazione GitHub tramite il proxy, quindi verifica che sia le voci URL wildcard sia quelle esatte vengano risolte correttamente, incluse le URL dei repository con e senza .git.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
getRepoByUrl performs an exact URL lookup on authorisedList. Entries intended as org-level wildcards, e.g. https://github.com/example-org/*, do not match concrete repo URLs such as https://github.com/example-org/some-repo.git. There is no way to allowlist all repos under an org without enumerating every URL.
To Reproduce
Steps to reproduce the behavior:
- Run
@finos/[email protected]. - Add an authorised list entry:
{ "url": "https://github.com/example-org/*" } - Clone or pull
https://github.com/example-org/some-repothrough the proxy. - See error: repo not found on authorised list / request rejected as unauthorised.
Expected behavior
https://github.com/example-org/* should match any repo under that org, e.g. https://github.com/example-org/foo and https://github.com/example-org/foo.git. For github.com, repo URLs are always owner/repo. Exact URL entries should continue to work as today.
Screenshots
N/A
Desktop (please complete the following information):
- OS: Linux; macOS
- Browser: N/A (HTTP client /
gitCLI) - Version: Node 20+;
@finos/git-proxy2.0.0
Smartphone (please complete the following information):
- Device: N/A
- OS: N/A
- Browser: N/A
- Version: N/A
Additional context
Suggested fallback when exact lookup misses:
function wildcardToRegExp(pattern) {
const escaped = pattern.replace(/[.+?^${}()|[\]\\]/g, '\\$&');
return new RegExp('^' + escaped.replace(/\*/g, '[^/]+') + '$');
}
const originalGetRepoByUrl = db.getRepoByUrl;
db.getRepoByUrl = async function (url) {
const exact = await originalGetRepoByUrl(url);
if (exact) return exact;
for (const repo of await db.getRepos()) {
if (repo.url?.includes('*') && wildcardToRegExp(repo.url).test(url)) {
return repo;
}
}
return null;
};
Happy to open a PR if useful.
- Lingua principale
- TypeScript
- Stelle
- 263
- Fork
- 185
- Merge medio
- 2g 15h
- PR unite (30g)
- 39
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
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 finos/git-proxy
-
Update the Git Proxy website homepage using flyer contentForse già presa @Orcus01 l’ha presa oggi. Apertadocumentation good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
finos/git-proxy#1878 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
scanDiff ignores commitConfig.diff.block rules from the --config fileForse già presa @goldensyntax l’ha presa 3 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
finos/git-proxy#1874 · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
checkUserPushPermission is checking the wrong user's permission to pushForse di nuovo libera Una pull request per questa issue è stata chiusa senza essere unita. Apertabug tech-debt
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
finos/git-proxy#1400 · 17 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
meeting
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di finos/git-proxy
Issue simili
-
Navbar avatar and name stay stale after saving profile changesForse già presa @alexechoi l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
marmelab/atomic-crm#416 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
epam/ai-dial-react-file-manager#99 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
canonical/craft-actions#146 ·
I maintainer di solito rispondono entro 2 giorni
-
feature-request
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
bluesky-social/social-app#12343 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
lucide-icons/lucide#5165 ·
I maintainer di solito rispondono entro 1 giorno