Merge pull request #2361 from rennokki/fix/gitlab-url-basic-auth-support

fix: Added support for Basic Auth present in the GitLab URLs
This commit is contained in:
Mauricio Siu
2025-08-16 19:43:15 -06:00
committed by GitHub

View File

@@ -12,12 +12,30 @@ export default async function handler(
}
const gitlab = await findGitlabById(gitlabId as string);
const gitlabUrl = new URL(gitlab.gitlabUrl);
const response = await fetch(`${gitlab.gitlabUrl}/oauth/token`, {
const headers: HeadersInit = {
"Content-Type": "application/x-www-form-urlencoded",
};
// In case of basic auth being present in the URL, we need to remove it from the URL
// and add it to the Authorization header.
if (gitlabUrl.username && gitlabUrl.password) {
headers.Authorization = `Basic ${Buffer.from(`${gitlabUrl.username}:${gitlabUrl.password}`).toString("base64")}`;
}
const url =
gitlabUrl.username && gitlabUrl.password
? new URL(gitlabUrl, {
...gitlabUrl,
username: "",
password: "",
}).toString()
: gitlabUrl.toString();
const response = await fetch(`${url}/oauth/token`, {
method: "POST",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
headers,
body: new URLSearchParams({
client_id: gitlab.applicationId as string,
client_secret: gitlab.secret as string,