From 867e3710bdeaab1be9a6b02660e95c5c295eaf12 Mon Sep 17 00:00:00 2001 From: Soner Sayakci Date: Mon, 4 Dec 2023 13:51:53 +0100 Subject: [PATCH] fix: namespace parsing in gitlab --- src/service/git/gitlab/gitlab-client.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/service/git/gitlab/gitlab-client.ts b/src/service/git/gitlab/gitlab-client.ts index a6d21b8..0d1f962 100644 --- a/src/service/git/gitlab/gitlab-client.ts +++ b/src/service/git/gitlab/gitlab-client.ts @@ -181,9 +181,18 @@ export default class GitLabClient implements GitClient { * @returns {{owner: string, project: string}} */ private extractMergeRequestData(mrUrl: string): {namespace: string, project: string, id: number} { - const elems: string[] = mrUrl.replace("/-/", "/").split("/"); + const { pathname } = new URL(mrUrl); + const elems: string[] = pathname.substring(1).replace("/-/", "/").split("/"); + let namespace = ""; + + for (let i = 0; i < elems.length - 3; i++) { + namespace += elems[i] + "/"; + } + + namespace = namespace.substring(0, namespace.length - 1); + return { - namespace: elems[elems.length - 4], + namespace: namespace, project: elems[elems.length - 3], id: parseInt(mrUrl.substring(mrUrl.lastIndexOf("/") + 1, mrUrl.length)), };