fix: --auth when --git-user contains space (#95)

Since --git-user is a user-facing name, it's common to include a space
in it. As such, it's not suitable to use as a username in a Git remote
URL.

GitLab documented that it doesn't (yet?) check for username [1], and
from my testing GitHub doesn't seem to care either. So just use an
arbitrary name as a username.

[1] https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html
This commit is contained in:
Ratchanan Srirattanamet 2024-02-23 16:30:18 +07:00 committed by GitHub
parent d4dc510af1
commit 9bcd6e6b55
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 27 additions and 6 deletions

View file

@ -123,4 +123,22 @@ describe("git cli service", () => {
const post = spawnSync("git", ["rev-parse", "--abbrev-ref", "HEAD"], { cwd }).stdout.toString().trim();
expect(post).toEqual("tbranch");
});
test("git clone set url with auth correctly for API token", async () => {
const git2 = new GitCLIService("api-token", {
user: "Backporting bot",
email: "bot@example.com",
});
const cwd2 = `${__dirname}/test-api-token`;
try {
await git2.clone(`file://${cwd}`, cwd2, "main");
const remoteURL = spawnSync("git", ["remote", "get-url", "origin"], { cwd: cwd2 }).stdout.toString().trim();
expect(remoteURL).toContain("api-token");
expect(remoteURL).not.toContain("Backporting bot");
} finally {
fs.rmSync(cwd2, { recursive: true, force: true });
}
});
});