mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-07 08:26:51 +00:00
Don't clobber existing user.name and user.email git config values
This commit is contained in:
parent
c66f685e03
commit
96ab5dcb1f
2 changed files with 55 additions and 12 deletions
|
|
@ -284,8 +284,17 @@ export class CheckpointService {
|
|||
log(`[initRepo] Initialized new Git repository at ${baseDir}`)
|
||||
}
|
||||
|
||||
await git.addConfig("user.name", "Roo Code")
|
||||
await git.addConfig("user.email", "support@roocode.com")
|
||||
// Only set user config if not already configured
|
||||
const userName = await git.getConfig("user.name")
|
||||
const userEmail = await git.getConfig("user.email")
|
||||
|
||||
if (!userName.value) {
|
||||
await git.addConfig("user.name", "Roo Code")
|
||||
}
|
||||
|
||||
if (!userEmail.value) {
|
||||
await git.addConfig("user.email", "support@roocode.com")
|
||||
}
|
||||
|
||||
if (!isExistingRepo) {
|
||||
// We need at least one file to commit, otherwise the initial
|
||||
|
|
|
|||
|
|
@ -10,32 +10,51 @@ import { CheckpointService } from "../CheckpointService"
|
|||
|
||||
describe("CheckpointService", () => {
|
||||
const taskId = "test-task"
|
||||
|
||||
let git: SimpleGit
|
||||
let testFile: string
|
||||
let service: CheckpointService
|
||||
|
||||
beforeEach(async () => {
|
||||
const initRepo = async ({
|
||||
baseDir,
|
||||
userName = "Roo Code",
|
||||
userEmail = "support@roocode.com",
|
||||
testFileName = "test.txt",
|
||||
textFileContent = "Hello, world!",
|
||||
}: {
|
||||
baseDir: string
|
||||
userName?: string
|
||||
userEmail?: string
|
||||
testFileName?: string
|
||||
textFileContent?: string
|
||||
}) => {
|
||||
// Create a temporary directory for testing.
|
||||
const baseDir = path.join(os.tmpdir(), `checkpoint-service-test-${Date.now()}`)
|
||||
await fs.mkdir(baseDir)
|
||||
|
||||
// Initialize git repo.
|
||||
git = simpleGit(baseDir)
|
||||
const git = simpleGit(baseDir)
|
||||
await git.init()
|
||||
await git.addConfig("user.name", "Roo Code")
|
||||
await git.addConfig("user.email", "support@roocode.com")
|
||||
await git.addConfig("user.name", userName)
|
||||
await git.addConfig("user.email", userEmail)
|
||||
|
||||
// Create test file.
|
||||
testFile = path.join(baseDir, "test.txt")
|
||||
await fs.writeFile(testFile, "Hello, world!")
|
||||
const testFile = path.join(baseDir, testFileName)
|
||||
await fs.writeFile(testFile, textFileContent)
|
||||
|
||||
// Create initial commit.
|
||||
await git.add(".")
|
||||
await git.commit("Initial commit")!
|
||||
|
||||
// Create service instance.
|
||||
const log = () => {}
|
||||
service = await CheckpointService.create({ taskId, git, baseDir, log })
|
||||
return { git, testFile }
|
||||
}
|
||||
|
||||
beforeEach(async () => {
|
||||
const baseDir = path.join(os.tmpdir(), `checkpoint-service-test-${Date.now()}`)
|
||||
const repo = await initRepo({ baseDir })
|
||||
|
||||
git = repo.git
|
||||
testFile = repo.testFile
|
||||
service = await CheckpointService.create({ taskId, git, baseDir, log: () => {} })
|
||||
})
|
||||
|
||||
afterEach(async () => {
|
||||
|
|
@ -333,5 +352,20 @@ describe("CheckpointService", () => {
|
|||
|
||||
await fs.rm(newService.baseDir, { recursive: true, force: true })
|
||||
})
|
||||
|
||||
it("respects existing git user configuration", async () => {
|
||||
const baseDir = path.join(os.tmpdir(), `checkpoint-service-test-config2-${Date.now()}`)
|
||||
const userName = "Custom User"
|
||||
const userEmail = "custom@example.com"
|
||||
const repo = await initRepo({ baseDir, userName, userEmail })
|
||||
const newGit = repo.git
|
||||
|
||||
await CheckpointService.create({ taskId, git: newGit, baseDir, log: () => {} })
|
||||
|
||||
expect((await newGit.getConfig("user.name")).value).toBe(userName)
|
||||
expect((await newGit.getConfig("user.email")).value).toBe(userEmail)
|
||||
|
||||
await fs.rm(baseDir, { recursive: true, force: true })
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue