nx 22.6.0-beta.6 → 22.6.0-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nx",
3
- "version": "22.6.0-beta.6",
3
+ "version": "22.6.0-beta.7",
4
4
  "private": false,
5
5
  "description": "The core Nx plugin contains the core functionality of Nx like the project graph, nx commands and task orchestration.",
6
6
  "repository": {
@@ -84,16 +84,16 @@
84
84
  }
85
85
  },
86
86
  "optionalDependencies": {
87
- "@nx/nx-darwin-arm64": "22.6.0-beta.6",
88
- "@nx/nx-darwin-x64": "22.6.0-beta.6",
89
- "@nx/nx-freebsd-x64": "22.6.0-beta.6",
90
- "@nx/nx-linux-arm-gnueabihf": "22.6.0-beta.6",
91
- "@nx/nx-linux-arm64-gnu": "22.6.0-beta.6",
92
- "@nx/nx-linux-arm64-musl": "22.6.0-beta.6",
93
- "@nx/nx-linux-x64-gnu": "22.6.0-beta.6",
94
- "@nx/nx-linux-x64-musl": "22.6.0-beta.6",
95
- "@nx/nx-win32-arm64-msvc": "22.6.0-beta.6",
96
- "@nx/nx-win32-x64-msvc": "22.6.0-beta.6"
87
+ "@nx/nx-darwin-arm64": "22.6.0-beta.7",
88
+ "@nx/nx-darwin-x64": "22.6.0-beta.7",
89
+ "@nx/nx-freebsd-x64": "22.6.0-beta.7",
90
+ "@nx/nx-linux-arm-gnueabihf": "22.6.0-beta.7",
91
+ "@nx/nx-linux-arm64-gnu": "22.6.0-beta.7",
92
+ "@nx/nx-linux-arm64-musl": "22.6.0-beta.7",
93
+ "@nx/nx-linux-x64-gnu": "22.6.0-beta.7",
94
+ "@nx/nx-linux-x64-musl": "22.6.0-beta.7",
95
+ "@nx/nx-win32-arm64-msvc": "22.6.0-beta.7",
96
+ "@nx/nx-win32-x64-msvc": "22.6.0-beta.7"
97
97
  },
98
98
  "nx-migrations": {
99
99
  "migrations": "./migrations.json",
@@ -0,0 +1,10 @@
1
+ import type { RemoteRepoSlug } from './remote-release-client';
2
+ /**
3
+ * Extracts a GitHub-style repo slug (user/repo).
4
+ */
5
+ export declare function extractGitHubRepoSlug(remoteUrl: string, expectedHostname: string): RemoteRepoSlug | null;
6
+ /**
7
+ * Extracts a GitLab-style repo slug with full nested group path.
8
+ */
9
+ export declare function extractGitLabRepoSlug(remoteUrl: string, expectedHostname: string): RemoteRepoSlug | null;
10
+ //# sourceMappingURL=extract-repo-slug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-repo-slug.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/command-line/release/utils/remote-release-clients/extract-repo-slug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GACvB,cAAc,GAAG,IAAI,CAEvB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,gBAAgB,EAAE,MAAM,GACvB,cAAc,GAAG,IAAI,CAEvB"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractGitHubRepoSlug = extractGitHubRepoSlug;
4
+ exports.extractGitLabRepoSlug = extractGitLabRepoSlug;
5
+ /**
6
+ * Extracts a GitHub-style repo slug (user/repo).
7
+ */
8
+ function extractGitHubRepoSlug(remoteUrl, expectedHostname) {
9
+ return extractRepoSlug(remoteUrl, expectedHostname, 2);
10
+ }
11
+ /**
12
+ * Extracts a GitLab-style repo slug with full nested group path.
13
+ */
14
+ function extractGitLabRepoSlug(remoteUrl, expectedHostname) {
15
+ return extractRepoSlug(remoteUrl, expectedHostname, Infinity);
16
+ }
17
+ const SCP_URL_REGEX = /^git@([^:]+):(.+)$/;
18
+ /**
19
+ * Extracts a repository slug from a Git remote URL.
20
+ * `segmentLimit` = 2 for GitHub (user/repo), `Infinity` for GitLab (with subgroups).
21
+ */
22
+ function extractRepoSlug(remoteUrl, expectedHostname, segmentLimit) {
23
+ if (!remoteUrl)
24
+ return null;
25
+ // SCP-like: git@host:path
26
+ const scpMatch = remoteUrl.match(SCP_URL_REGEX);
27
+ if (scpMatch) {
28
+ const [, host, path] = scpMatch;
29
+ if (!isHostMatch(host, expectedHostname))
30
+ return null;
31
+ const segments = normalizeRepoPath(path).split('/').filter(Boolean);
32
+ if (segments.length < 2)
33
+ return null;
34
+ return segments.slice(0, segmentLimit).join('/');
35
+ }
36
+ // URL-like
37
+ try {
38
+ const url = new URL(remoteUrl);
39
+ if (!isHostMatch(url.hostname, expectedHostname))
40
+ return null;
41
+ const segments = normalizeRepoPath(url.pathname).split('/').filter(Boolean);
42
+ if (segments.length < 2)
43
+ return null;
44
+ return segments.slice(0, segmentLimit).join('/');
45
+ }
46
+ catch {
47
+ return null;
48
+ }
49
+ }
50
+ function normalizeRepoPath(s) {
51
+ return s.replace(/^\/+|\/+$|\.git$/g, '');
52
+ }
53
+ function normalizeHostname(hostname) {
54
+ return hostname
55
+ .toLowerCase()
56
+ .replace(/^ssh\./, '')
57
+ .split(':')[0];
58
+ }
59
+ function isHostMatch(actual, expected) {
60
+ return normalizeHostname(actual) === normalizeHostname(expected);
61
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/command-line/release/utils/remote-release-clients/github.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EAEf,MAAM,yBAAyB,CAAC;AAOjC,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAG;AAGzD,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,4BAA4B,EAAE,mCAKxC,CAAC;AAEJ,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,mBAAmB,CAAC;IACrF,yBAAyB,SAAY;IAErC;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,mBAAmB,EAAE,KAAK,GAAG,mCAAmC,EAChE,UAAU,SAAW,GACpB,cAAc,GAAG,IAAI;IAyCxB;;OAEG;WACU,gBAAgB,CAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IA4CxD,iBAAiB,CACf,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,OAAO,GACd,WAAW;IAYR,sBAAsB,CAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAC9D,OAAO,CAAC,IAAI,CAAC;IA6BhB;;OAEG;cACa,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAO1E;;OAEG;cACa,aAAa,CAC3B,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,GAAG,CAAC;cAQC,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,GAAG,CAAC;IAWf,SAAS,CAAC,yBAAyB,CACjC,oBAAoB,EAAE,oBAAoB,GACzC,MAAM;IAgBT,SAAS,CAAC,eAAe,IAAI,IAAI;IAUjC,SAAS,CAAC,gBAAgB,CACxB,eAAe,EAAE,mBAAmB,GAAG,SAAS,EAChD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,IAAI;cAcS,WAAW,CACzB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC;YAgDF,yBAAyB;IA6BvC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;cAmCjC,WAAW,CACzB,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,CAAC,EAAE,mBAAmB,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAiC/B,OAAO,CAAC,yBAAyB;CASlC"}
1
+ {"version":3,"file":"github.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/command-line/release/utils/remote-release-clients/github.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,KAAK,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAOjC,MAAM,WAAW,cAAe,SAAQ,cAAc;CAAG;AAGzD,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAClC;AAED,eAAO,MAAM,4BAA4B,EAAE,mCAKxC,CAAC;AAEJ,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,mBAAmB,CAAC;IACrF,yBAAyB,SAAY;IAErC;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,mBAAmB,EAAE,KAAK,GAAG,mCAAmC,EAChE,UAAU,SAAW,GACpB,cAAc,GAAG,IAAI;IAkCxB;;OAEG;WACU,gBAAgB,CAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IA4CxD,iBAAiB,CACf,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,OAAO,GACd,WAAW;IAYR,sBAAsB,CAC1B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAC9D,OAAO,CAAC,IAAI,CAAC;IA6BhB;;OAEG;cACa,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAO1E;;OAEG;cACa,aAAa,CAC3B,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,GAAG,CAAC;cAQC,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,GAAG,CAAC;IAWf,SAAS,CAAC,yBAAyB,CACjC,oBAAoB,EAAE,oBAAoB,GACzC,MAAM;IAgBT,SAAS,CAAC,eAAe,IAAI,IAAI;IAUjC,SAAS,CAAC,gBAAgB,CACxB,eAAe,EAAE,mBAAmB,GAAG,SAAS,EAChD,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,IAAI;cAcS,WAAW,CACzB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC;YAgDF,yBAAyB;IA6BvC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;cAmCjC,WAAW,CACzB,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,CAAC,EAAE,mBAAmB,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAiC/B,OAAO,CAAC,yBAAyB;CASlC"}
@@ -8,6 +8,7 @@ const node_fs_1 = require("node:fs");
8
8
  const node_os_1 = require("node:os");
9
9
  const output_1 = require("../../../../utils/output");
10
10
  const path_1 = require("../../../../utils/path");
11
+ const extract_repo_slug_1 = require("./extract-repo-slug");
11
12
  const remote_release_client_1 = require("./remote-release-client");
12
13
  // axios types and values don't seem to match
13
14
  const _axios = require("axios");
@@ -36,27 +37,21 @@ class GithubRemoteReleaseClient extends remote_release_client_1.RemoteReleaseCli
36
37
  let apiBaseUrl = exports.defaultCreateReleaseProvider.apiBaseUrl;
37
38
  if (createReleaseConfig !== false &&
38
39
  typeof createReleaseConfig !== 'string') {
39
- hostname = createReleaseConfig.hostname;
40
+ hostname = createReleaseConfig.hostname || hostname;
40
41
  apiBaseUrl = createReleaseConfig.apiBaseUrl;
41
42
  }
42
- // Extract the 'user/repo' part from the URL
43
- const escapedHostname = hostname.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
44
- const regexString = `${escapedHostname}[/:]([\\w.-]+/[\\w.-]+)(\\.git)?`;
45
- const regex = new RegExp(regexString);
46
- const match = remoteUrl.match(regex);
47
- if (match && match[1]) {
48
- return {
49
- hostname,
50
- apiBaseUrl,
51
- // Ensure any trailing .git is stripped
52
- slug: match[1].replace(/\.git$/, ''),
53
- };
43
+ const slug = (0, extract_repo_slug_1.extractGitHubRepoSlug)(remoteUrl, hostname);
44
+ if (slug) {
45
+ return { hostname, apiBaseUrl, slug };
54
46
  }
55
47
  else {
56
48
  throw new Error(`Could not extract "user/repo" data from the resolved remote URL: ${remoteUrl}`);
57
49
  }
58
50
  }
59
51
  catch (error) {
52
+ if (process.env.NX_VERBOSE_LOGGING === 'true') {
53
+ console.error(error);
54
+ }
60
55
  return null;
61
56
  }
62
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/command-line/release/utils/remote-release-clients/gitlab.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EAEf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;YACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,EAAE,CAAC;KACL,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,4BAA4B,EAAE,mCAKxC,CAAC;AAEJ,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC/E,yBAAyB,SAAY;IAErC;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,mBAAmB,EAAE,KAAK,GAAG,mCAAmC,EAChE,UAAU,SAAW,GACpB,cAAc,GAAG,IAAI;IAmDxB;;OAEG;WACU,gBAAgB,CAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAmBxD,iBAAiB,CACf,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,OAAO,GACd,WAAW;IAaR,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;cAI7B,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;cASpD,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;cAWzD,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,GAAG,CAAC;IAaf;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CACjC,qBAAqB,EAAE,oBAAoB,GAC1C,MAAM;IAKT,SAAS,CAAC,eAAe,IAAI,IAAI;IAUjC,SAAS,CAAC,gBAAgB,CACxB,eAAe,EAAE,aAAa,GAAG,SAAS,EAC1C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,IAAI;cAgBS,WAAW,CACzB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC;YA+CF,yBAAyB;IA6BvC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;cAuCjC,WAAW,CACzB,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,CAAC,EAAE,aAAa,GAC9B,OAAO,CAAC,mBAAmB,CAAC;IAoC/B,OAAO,CAAC,yBAAyB;CASlC"}
1
+ {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../../../../../../../../packages/nx/src/command-line/release/utils/remote-release-clients/gitlab.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAE3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE;YACN,IAAI,EAAE,MAAM,CAAC;YACb,GAAG,EAAE,MAAM,CAAC;YACZ,iBAAiB,CAAC,EAAE,MAAM,CAAC;YAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,EAAE,CAAC;KACL,CAAC;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,4BAA4B,EAAE,mCAKxC,CAAC;AAEJ,qBAAa,yBAA0B,SAAQ,mBAAmB,CAAC,aAAa,CAAC;IAC/E,yBAAyB,SAAY;IAErC;;OAEG;IACH,MAAM,CAAC,eAAe,CACpB,mBAAmB,EAAE,KAAK,GAAG,mCAAmC,EAChE,UAAU,SAAW,GACpB,cAAc,GAAG,IAAI;IAyCxB;;OAEG;WACU,gBAAgB,CAC3B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAmBxD,iBAAiB,CACf,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,OAAO,GACd,WAAW;IAaR,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;cAI7B,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;cASpD,aAAa,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC;cAWzD,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,GAAG,CAAC;IAaf;;;;OAIG;IACH,SAAS,CAAC,yBAAyB,CACjC,qBAAqB,EAAE,oBAAoB,GAC1C,MAAM;IAKT,SAAS,CAAC,eAAe,IAAI,IAAI;IAUjC,SAAS,CAAC,gBAAgB,CACxB,eAAe,EAAE,aAAa,GAAG,SAAS,EAC1C,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,IAAI;cAgBS,WAAW,CACzB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC;YA+CF,yBAAyB;IA6BvC;;OAEG;IACH,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,MAAM;cAuCjC,WAAW,CACzB,oBAAoB,EAAE,oBAAoB,EAC1C,eAAe,CAAC,EAAE,aAAa,GAC9B,OAAO,CAAC,mBAAmB,CAAC;IAoC/B,OAAO,CAAC,yBAAyB;CASlC"}
@@ -5,6 +5,7 @@ const pc = require("picocolors");
5
5
  const enquirer_1 = require("enquirer");
6
6
  const node_child_process_1 = require("node:child_process");
7
7
  const output_1 = require("../../../../utils/output");
8
+ const extract_repo_slug_1 = require("./extract-repo-slug");
8
9
  const remote_release_client_1 = require("./remote-release-client");
9
10
  exports.defaultCreateReleaseProvider = {
10
11
  provider: 'gitlab',
@@ -31,16 +32,10 @@ class GitLabRemoteReleaseClient extends remote_release_client_1.RemoteReleaseCli
31
32
  if (createReleaseConfig !== false &&
32
33
  typeof createReleaseConfig !== 'string') {
33
34
  hostname = createReleaseConfig.hostname || hostname;
34
- apiBaseUrl = createReleaseConfig.apiBaseUrl || apiBaseUrl;
35
+ apiBaseUrl = createReleaseConfig.apiBaseUrl;
35
36
  }
36
- // Extract the project path from the URL
37
- const escapedHostname = hostname.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
38
- const regexString = `${escapedHostname}[/:]([\\w.-]+/[\\w.-]+(?:/[\\w.-]+)*)(\\.git)?`;
39
- const regex = new RegExp(regexString);
40
- const match = remoteUrl.match(regex);
41
- if (match && match[1]) {
42
- // Remove trailing .git if present
43
- const slug = match[1].replace(/\.git$/, '');
37
+ const slug = (0, extract_repo_slug_1.extractGitLabRepoSlug)(remoteUrl, hostname);
38
+ if (slug) {
44
39
  // Encode the project path for use in API URLs
45
40
  const projectId = encodeURIComponent(slug);
46
41
  return {