scanDiff ignores commitConfig.diff.block rules from the --config file
I maintainer di solito rispondono entro 1 giorno
@goldensyntax ci sta già lavorando.
Dal 2/11/2026.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 78/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
Direzione di ricerca
Inizia da scanDiff.ts in src/proxy/processors/push-action, dove getCommitConfig() e getPrivateOrganizations() vengono eseguiti una volta al caricamento del modulo (righe 24-25). Confronta con isMessageAllowed in checkMessages.ts, che legge la configurazione a ogni esecuzione, e verifica come index.ts applica --config alle righe 50-51 dopo l'importazione del proxy. Il lavoro è completo quando un diff che contiene un literal da commitConfig.diff.block del file --config viene rifiutato da scanDiff all'avvio del proxy con --config.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
When Git Proxy is started with --config <file>, scanDiff doesn't enforce the
commitConfig.diff.block rules (literals, patterns, providers) from that file. Pushes that
should be blocked go to approval instead, with no error or warning.
Cause
scanDiff reads its config once, when the module is imported
(src/proxy/processors/push-action/scanDiff.ts, lines 24–25):
const commitConfig = getCommitConfig();
const privateOrganizations = getPrivateOrganizations();
index.ts imports the proxy on line 25 but only applies --config on lines 50–51, so
scanDiff keeps the default config, where the block lists are empty.
Other processors read config each time they run (e.g. getCommitConfig() inside
isMessageAllowed in checkMessages.ts), so they aren't affected.
To reproduce
-
Add a diff block rule to a config file:
"commitConfig": { "diff": { "block": { "literals": ["blocked.example.com"], "patterns": [], "providers": {} } } } -
Start Git Proxy with
--config <that file>. -
Push a commit that adds a line containing
blocked.example.com.
Expected: the push is blocked by scanDiff.
Actual: scanDiff passes and the push goes to approval.
Setting the CONFIG_FILE environment variable to the same file makes it work, because
it's read before scanDiff loads.
Reproduced on 2.2.0 and 2.3.0.
Suggested fix
Move the two calls into the code that runs per push, as checkMessages does, e.g.:
const combineMatches = (organization: string) => {
const commitConfig = getCommitConfig();
const privateOrganizations = getPrivateOrganizations();
// ...
};
Happy to pick this issue up in a week or two.
- 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
-
documentation good first issue help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
finos/git-proxy#1878 · 1 commento ·
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
-
meeting
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 25/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di finos/git-proxy
Issue simili
-
cloudflare-cache-binding: `unstorage://` keys are rejected by the Cache API, cache never storesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 2 giorni
-
reproduced
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
anomalyco/opencode#62052 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
strapi/design-system#2084 ·
I maintainer di solito rispondono entro 3 giorni
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno