From b25298c04a4c81cc4203f1aa88a1ae4609ce7337 Mon Sep 17 00:00:00 2001 From: Blazej Owczarczyk <blazeyy@gmail.com> Date: Wed, 18 Sep 2024 23:12:15 +0200 Subject: [PATCH] Fix gitlab data connector for self-hosted instances (#2315) (#2316) * Fix gitlab data connector for self-hosted instances (#2315) * Linting fix. --- .../RepoLoader/GitlabRepo/RepoLoader/index.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/collector/utils/extensions/RepoLoader/GitlabRepo/RepoLoader/index.js b/collector/utils/extensions/RepoLoader/GitlabRepo/RepoLoader/index.js index 7d5c8438c..1a3737c38 100644 --- a/collector/utils/extensions/RepoLoader/GitlabRepo/RepoLoader/index.js +++ b/collector/utils/extensions/RepoLoader/GitlabRepo/RepoLoader/index.js @@ -44,16 +44,16 @@ class GitLabRepoLoader { #validGitlabUrl() { const UrlPattern = require("url-pattern"); const validPatterns = [ - new UrlPattern("https\\://gitlab.com/(:projectId(*))", { - segmentValueCharset: "a-zA-Z0-9-._~%/+", + new UrlPattern("https\\://gitlab.com/(:author*)/(:project(*))", { + segmentValueCharset: "a-zA-Z0-9-._~%+", }), // This should even match the regular hosted URL, but we may want to know // if this was a hosted GitLab (above) or a self-hosted (below) instance // since the API interface could be different. new UrlPattern( - "(:protocol(http|https))\\://(:hostname*)/(:projectId(*))", + "(:protocol(http|https))\\://(:hostname*)/(:author*)/(:project(*))", { - segmentValueCharset: "a-zA-Z0-9-._~%/+", + segmentValueCharset: "a-zA-Z0-9-._~%+", } ), ]; @@ -64,9 +64,9 @@ class GitLabRepoLoader { match = pattern.match(this.repo); } if (!match) return false; - const [author, project] = match.projectId.split("/"); + const { author, project } = match; - this.projectId = encodeURIComponent(match.projectId); + this.projectId = encodeURIComponent(`${author}/${project}`); this.apiBase = new URL(this.repo).origin; this.author = author; this.project = project; -- GitLab