Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Git.commit: --author value is wrapped in literal double quotes, corrupting author names that contain a quote character

Aperta Adatta ai principianti
#83 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
78/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Tranquilla
Stack tecnologico
git, typescript
Ambito
tooling

Direzione di ricerca

Inizia nell’implementazione di Git.commit, nel punto in cui viene assemblato l’argomento --author, quindi esamina i test esistenti relativi ai commit. Riproduci il problema con un nome del committer contenente virgolette doppie, rimuovi le virgolette letterali circostanti dall’argomento e aggiungi un test di regressione che verifichi che git log -1 --format='%an' conservi il nome completo.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug S3

Observed behavior

Git.commit builds the --author argument with literal double quotes:

args.push(`--author="${committer.name} <${committer.email}>"`);

Because child_process.spawn is used without a shell, the literal " characters are part of the value passed to git. Git's "crud stripping" of identity strings hides the problem for ordinary names (leading/trailing quotes get filtered out), but the protection breaks down if committer.name itself contains a ".

Expected behavior

The literal quotes should not be in the value. The standard format that git documents is just --author=Name <email>, with no surrounding quotes.

Minimal reproduction

await git.commit('msg', {
  committer: { name: 'Joe \"Real\"', email: '[email protected]' },
});
// git log -1 --format='%an'
// -> Joe \"Real           (the trailing quote is silently lost)

Verified with a standalone Node script that replicates Git.commit's exact spawn arguments. Observed result:

AN=[Joe \"Real] AE=[[email protected]] CN=[Joe \"Real] CE=[[email protected]]

The trailing \" from the source name is gone.

Suggested fix

args.push(`--author=${committer.name} <${committer.email}>`);

A regression test that commits with committer.name = 'Joe \"Real\"' and asserts git log -1 --format='%an' returns Joe \"Real\" would catch this.

Lingua principale
TypeScript
Stelle
2
Fork
1
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di joewalker/loop-the-loop

Tutte le issue di joewalker/loop-the-loop

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.