feat(runner): identità git isolata per i commit del runner #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/runner-git-identity"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problema
Sulla VM di sviluppo lo sviluppatore umano e l'agent-runner lavorano sulla stessa cartella, quindi condividono lo stesso
.gitconfigglobale e lo stessouser. I commit del runner risultavano indistinguibili da quelli fatti a mano.Soluzione
Il runner inietta l'identità git (
GIT_AUTHOR_*+GIT_COMMITTER_*) solo nel sottoprocessoclaudeche esegue il lavoro:internal/claude: nuovochildEnv()che parte daos.Environ()e sovrascrive in coda le 4 variabili (l'ultima occorrenza vince → battono eventuali GIT_* ereditate). Iniezione solo se nome e email sono valorizzati.internal/config: nuovi campi opzionaligit_author_name/git_author_email, defaultClaudia Soltea/claudia.ai@soltea.it.internal/agent: wiring config → claude.Options.0.6.6→0.6.7.Non tocca la config globale dell'host: i commit fatti a mano dall'umano restano i suoi, quelli del runner sono dell'agente. Risultato: due commit con autori distinti sullo stesso repo condiviso.
Test
go vet+go test ./...verdi. AggiuntiTestChildEnv_InjectsGitIdentityeTestChildEnv_NoInjectionWhenIdentityMissing.