fix: namespace parsing in gitlab (#84)

* fix: namespace parsing in gitlab

* test: add test for nested namespace

---------

Co-authored-by: Andrea Lamparelli <a.lamparelli95@gmail.com>
This commit is contained in:
Shyim 2023-12-05 16:08:49 +01:00 committed by GitHub
parent e7c9b4795b
commit ed32d2275b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 538 additions and 109 deletions

View file

@ -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)),
};