renovate 44.145.3 → 44.146.0

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.
@@ -1,9 +1,9 @@
1
1
  import { joinUrlParts } from "../../../util/url.js";
2
- import { asTimestamp } from "../../../util/timestamp.js";
3
2
  import { Datasource } from "../datasource.js";
4
3
  import { defaultRegistryUrl, getApiBaseUrl } from "../../../util/gitlab/url.js";
5
4
  import { GitlabHttp } from "../../../util/http/gitlab.js";
6
5
  import { datasource } from "./common.js";
6
+ import { GitlabPackages } from "./schema.js";
7
7
  //#region lib/modules/datasource/gitlab-packages/index.ts
8
8
  var GitlabPackagesDatasource = class GitlabPackagesDatasource extends Datasource {
9
9
  static id = datasource;
@@ -28,18 +28,8 @@ var GitlabPackagesDatasource = class GitlabPackagesDatasource extends Datasource
28
28
  if (!registryUrl) return null;
29
29
  const [projectPart, packagePart] = packageName.split(":", 2);
30
30
  const apiUrl = GitlabPackagesDatasource.getGitlabPackageApiUrl(registryUrl, projectPart, packagePart);
31
- const result = { releases: [] };
32
- let response;
33
- try {
34
- response = (await this.http.getJsonUnchecked(apiUrl, { paginate: true })).body;
35
- result.releases = response.filter((r) => (r.conan_package_name ?? r.name) === packagePart).map(({ version, created_at }) => ({
36
- version,
37
- releaseTimestamp: asTimestamp(created_at)
38
- }));
39
- } catch (err) {
40
- this.handleGenericErrors(err);
41
- }
42
- return result.releases?.length ? result : null;
31
+ const releases = (await this.fetchJson(apiUrl, GitlabPackages, { paginate: true })).filter((pkg) => pkg.packageName === packagePart).map((pkg) => pkg.release);
32
+ return releases.length ? { releases } : null;
43
33
  }
44
34
  getReleases(config) {
45
35
  return this.cached({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/gitlab-packages/index.ts"],"sourcesContent":["import { defaultRegistryUrl, getApiBaseUrl } from '../../../util/gitlab/url.ts';\nimport { GitlabHttp } from '../../../util/http/gitlab.ts';\nimport { asTimestamp } from '../../../util/timestamp.ts';\nimport { joinUrlParts } from '../../../util/url.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, ReleaseResult } from '../types.ts';\nimport { datasource } from './common.ts';\nimport type { GitlabPackage } from './types.ts';\n\n// Gitlab Packages API: https://docs.gitlab.com/ee/api/packages.html\n\nexport class GitlabPackagesDatasource extends Datasource<GitlabHttp> {\n static readonly id = datasource;\n\n override supportsCustomRegistry(_packageName: string): boolean {\n return true;\n }\n\n override getDefaultRegistryUrls(_packageName: string): string[] {\n return [defaultRegistryUrl];\n }\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `created_at` field in the results.';\n\n constructor() {\n super(datasource, new GitlabHttp(datasource));\n }\n\n static getGitlabPackageApiUrl(\n registryUrl: string,\n projectName: string,\n packageName: string,\n ): string {\n const projectNameEncoded = encodeURIComponent(projectName);\n const packageNameEncoded = encodeURIComponent(packageName);\n\n return joinUrlParts(\n getApiBaseUrl(registryUrl),\n 'projects',\n projectNameEncoded,\n `packages?package_name=${packageNameEncoded}&per_page=100`,\n );\n }\n\n private async fetchReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n const [projectPart, packagePart] = packageName.split(':', 2);\n\n const apiUrl = GitlabPackagesDatasource.getGitlabPackageApiUrl(\n registryUrl,\n projectPart,\n packagePart,\n );\n\n const result: ReleaseResult = {\n releases: [],\n };\n\n let response: GitlabPackage[];\n try {\n response = (\n await this.http.getJsonUnchecked<GitlabPackage[]>(apiUrl, {\n paginate: true,\n })\n ).body;\n\n result.releases = response\n // Setting the package_name option when calling the GitLab API isn't enough to filter information about other packages\n // because this option is only implemented on GitLab > 12.9 and it only does a fuzzy search.\n .filter((r) => (r.conan_package_name ?? r.name) === packagePart)\n .map(({ version, created_at }) => ({\n version,\n releaseTimestamp: asTimestamp(created_at),\n }));\n } catch (err) {\n this.handleGenericErrors(err);\n }\n\n return result.releases?.length ? result : null;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return this.cached(\n {\n // TODO: types (#22198)\n key: `${config.registryUrl}-${config.packageName}`,\n fallback: true,\n },\n () => this.fetchReleases(config),\n );\n }\n}\n"],"mappings":";;;;;;;AAWA,IAAa,2BAAb,MAAa,iCAAiC,WAAuB;CACnE,OAAgB,KAAK;CAErB,uBAAgC,cAA+B;EAC7D,OAAO;CACT;CAEA,uBAAgC,cAAgC;EAC9D,OAAO,CAAC,kBAAkB;CAC5B;CAEA,0BAA4C;CAC5C,uBACE;CAEF,cAAc;EACZ,MAAM,YAAY,IAAI,WAAW,UAAU,CAAC;CAC9C;CAEA,OAAO,uBACL,aACA,aACA,aACQ;EACR,MAAM,qBAAqB,mBAAmB,WAAW;EACzD,MAAM,qBAAqB,mBAAmB,WAAW;EAEzD,OAAO,aACL,cAAc,WAAW,GACzB,YACA,oBACA,yBAAyB,mBAAmB,cAC9C;CACF;CAEA,MAAc,cAAc,EAC1B,aACA,eACmD;;EAEnD,IAAI,CAAC,aACH,OAAO;EAGT,MAAM,CAAC,aAAa,eAAe,YAAY,MAAM,KAAK,CAAC;EAE3D,MAAM,SAAS,yBAAyB,uBACtC,aACA,aACA,WACF;EAEA,MAAM,SAAwB,EAC5B,UAAU,CAAC,EACb;EAEA,IAAI;EACJ,IAAI;GACF,YACE,MAAM,KAAK,KAAK,iBAAkC,QAAQ,EACxD,UAAU,KACZ,CAAC,EAAA,CACD;GAEF,OAAO,WAAW,SAGf,QAAQ,OAAO,EAAE,sBAAsB,EAAE,UAAU,WAAW,CAAC,CAC/D,KAAK,EAAE,SAAS,kBAAkB;IACjC;IACA,kBAAkB,YAAY,UAAU;GAC1C,EAAE;EACN,SAAS,KAAK;GACZ,KAAK,oBAAoB,GAAG;EAC9B;EAEA,OAAO,OAAO,UAAU,SAAS,SAAS;CAC5C;CAEA,YAAY,QAA0D;EACpE,OAAO,KAAK,OACV;GAEE,KAAK,GAAG,OAAO,YAAY,GAAG,OAAO;GACrC,UAAU;EACZ,SACM,KAAK,cAAc,MAAM,CACjC;CACF;AACF"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../lib/modules/datasource/gitlab-packages/index.ts"],"sourcesContent":["import { defaultRegistryUrl, getApiBaseUrl } from '../../../util/gitlab/url.ts';\nimport { GitlabHttp } from '../../../util/http/gitlab.ts';\nimport { joinUrlParts } from '../../../util/url.ts';\nimport { Datasource } from '../datasource.ts';\nimport type { GetReleasesConfig, ReleaseResult } from '../types.ts';\nimport { datasource } from './common.ts';\nimport { GitlabPackages } from './schema.ts';\n\n// Gitlab Packages API: https://docs.gitlab.com/ee/api/packages.html\n\nexport class GitlabPackagesDatasource extends Datasource<GitlabHttp> {\n static readonly id = datasource;\n\n override supportsCustomRegistry(_packageName: string): boolean {\n return true;\n }\n\n override getDefaultRegistryUrls(_packageName: string): string[] {\n return [defaultRegistryUrl];\n }\n\n override readonly releaseTimestampSupport = true;\n override readonly releaseTimestampNote =\n 'The release timestamp is determined from the `created_at` field in the results.';\n\n constructor() {\n super(datasource, new GitlabHttp(datasource));\n }\n\n static getGitlabPackageApiUrl(\n registryUrl: string,\n projectName: string,\n packageName: string,\n ): string {\n const projectNameEncoded = encodeURIComponent(projectName);\n const packageNameEncoded = encodeURIComponent(packageName);\n\n return joinUrlParts(\n getApiBaseUrl(registryUrl),\n 'projects',\n projectNameEncoded,\n `packages?package_name=${packageNameEncoded}&per_page=100`,\n );\n }\n\n private async fetchReleases({\n registryUrl,\n packageName,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n /* v8 ignore next -- should never happen */\n if (!registryUrl) {\n return null;\n }\n\n const [projectPart, packagePart] = packageName.split(':', 2);\n\n const apiUrl = GitlabPackagesDatasource.getGitlabPackageApiUrl(\n registryUrl,\n projectPart,\n packagePart,\n );\n\n const response = await this.fetchJson(apiUrl, GitlabPackages, {\n paginate: true,\n });\n\n const releases = response\n // Setting the package_name option when calling the GitLab API isn't enough to filter information about other packages\n // because this option is only implemented on GitLab > 12.9 and it only does a fuzzy search.\n .filter((pkg) => pkg.packageName === packagePart)\n .map((pkg) => pkg.release);\n\n return releases.length ? { releases } : null;\n }\n\n getReleases(config: GetReleasesConfig): Promise<ReleaseResult | null> {\n return this.cached(\n {\n // TODO: types (#22198)\n key: `${config.registryUrl}-${config.packageName}`,\n fallback: true,\n },\n () => this.fetchReleases(config),\n );\n }\n}\n"],"mappings":";;;;;;;AAUA,IAAa,2BAAb,MAAa,iCAAiC,WAAuB;CACnE,OAAgB,KAAK;CAErB,uBAAgC,cAA+B;EAC7D,OAAO;CACT;CAEA,uBAAgC,cAAgC;EAC9D,OAAO,CAAC,kBAAkB;CAC5B;CAEA,0BAA4C;CAC5C,uBACE;CAEF,cAAc;EACZ,MAAM,YAAY,IAAI,WAAW,UAAU,CAAC;CAC9C;CAEA,OAAO,uBACL,aACA,aACA,aACQ;EACR,MAAM,qBAAqB,mBAAmB,WAAW;EACzD,MAAM,qBAAqB,mBAAmB,WAAW;EAEzD,OAAO,aACL,cAAc,WAAW,GACzB,YACA,oBACA,yBAAyB,mBAAmB,cAC9C;CACF;CAEA,MAAc,cAAc,EAC1B,aACA,eACmD;;EAEnD,IAAI,CAAC,aACH,OAAO;EAGT,MAAM,CAAC,aAAa,eAAe,YAAY,MAAM,KAAK,CAAC;EAE3D,MAAM,SAAS,yBAAyB,uBACtC,aACA,aACA,WACF;EAMA,MAAM,YAAW,MAJM,KAAK,UAAU,QAAQ,gBAAgB,EAC5D,UAAU,KACZ,CAAC,EAAA,CAKE,QAAQ,QAAQ,IAAI,gBAAgB,WAAW,CAAC,CAChD,KAAK,QAAQ,IAAI,OAAO;EAE3B,OAAO,SAAS,SAAS,EAAE,SAAS,IAAI;CAC1C;CAEA,YAAY,QAA0D;EACpE,OAAO,KAAK,OACV;GAEE,KAAK,GAAG,OAAO,YAAY,GAAG,OAAO;GACrC,UAAU;EACZ,SACM,KAAK,cAAc,MAAM,CACjC;CACF;AACF"}
@@ -0,0 +1,21 @@
1
+ import { DeepNullish, LooseArray } from "../../../util/schema-utils/index.js";
2
+ import { asTimestamp } from "../../../util/timestamp.js";
3
+ import { z } from "zod/v4";
4
+ //#region lib/modules/datasource/gitlab-packages/schema.ts
5
+ const GitlabPackage = DeepNullish(z.object({
6
+ version: z.string(),
7
+ created_at: z.string(),
8
+ name: z.string(),
9
+ conan_package_name: z.string().optional()
10
+ })).transform(({ version, created_at, name, conan_package_name }) => ({
11
+ packageName: conan_package_name ?? name,
12
+ release: {
13
+ version,
14
+ releaseTimestamp: asTimestamp(created_at)
15
+ }
16
+ }));
17
+ const GitlabPackages = LooseArray(GitlabPackage);
18
+ //#endregion
19
+ export { GitlabPackage, GitlabPackages };
20
+
21
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","names":[],"sources":["../../../../lib/modules/datasource/gitlab-packages/schema.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { DeepNullish, LooseArray } from '../../../util/schema-utils/index.ts';\nimport { asTimestamp } from '../../../util/timestamp.ts';\nimport type { Release } from '../types.ts';\n\nexport const GitlabPackage = DeepNullish(\n z.object({\n version: z.string(),\n created_at: z.string(),\n name: z.string(),\n conan_package_name: z.string().optional(),\n }),\n).transform(\n ({\n version,\n created_at,\n name,\n conan_package_name,\n }): { packageName: string; release: Release } => ({\n packageName: conan_package_name ?? name,\n release: { version, releaseTimestamp: asTimestamp(created_at) },\n }),\n);\nexport type GitlabPackage = z.infer<typeof GitlabPackage>;\n\nexport const GitlabPackages = LooseArray(GitlabPackage);\n"],"mappings":";;;;AAKA,MAAa,gBAAgB,YAC3B,EAAE,OAAO;CACP,SAAS,EAAE,OAAO;CAClB,YAAY,EAAE,OAAO;CACrB,MAAM,EAAE,OAAO;CACf,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS;AAC1C,CAAC,CACH,CAAC,CAAC,WACC,EACC,SACA,YACA,MACA,0BACgD;CAChD,aAAa,sBAAsB;CACnC,SAAS;EAAE;EAAS,kBAAkB,YAAY,UAAU;CAAE;AAChE,EACF;AAGA,MAAa,iBAAiB,WAAW,aAAa"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "renovate",
3
3
  "description": "Automated dependency updates. Flexible so you don't need to be.",
4
- "version": "44.145.3",
4
+ "version": "44.146.0",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",
@@ -289,7 +289,7 @@
289
289
  "type-fest": "5.10.0",
290
290
  "typescript": "7.0.2",
291
291
  "unified": "11.0.5",
292
- "vite": "8.3.1",
292
+ "vite": "8.3.2",
293
293
  "vitest": "4.1.11",
294
294
  "vitest-mock-extended": "5.1.1",
295
295
  "yazl": "3.3.1"
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "$id": "https://docs.renovatebot.com/renovate-schema.json",
3
- "title": "JSON schema for Renovate 44.145.3 config files (https://renovatebot.com/)",
3
+ "title": "JSON schema for Renovate 44.146.0 config files (https://renovatebot.com/)",
4
4
  "$schema": "http://json-schema.org/draft-07/schema#",
5
- "x-renovate-version": "44.145.3",
5
+ "x-renovate-version": "44.146.0",
6
6
  "allowComments": true,
7
7
  "type": "object",
8
8
  "definitions": {