renovate 41.12.0 → 41.12.1

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.
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const is_1 = tslib_1.__importDefault(require("@sindresorhus/is"));
6
6
  const logger_1 = require("../../../logger");
7
7
  const decorator_1 = require("../../../util/cache/package/decorator");
8
+ const http_1 = require("../../../util/http");
8
9
  const p = tslib_1.__importStar(require("../../../util/promises"));
9
10
  const regex_1 = require("../../../util/regex");
10
11
  const url_1 = require("../../../util/url");
@@ -33,7 +34,9 @@ class GalaxyCollectionDatasource extends datasource_1.Datasource {
33
34
  const { val: baseProject, err: baseErr } = await this.http
34
35
  .getJsonSafe(baseUrl, schema_1.GalaxyV3)
35
36
  .onError((err) => {
36
- logger_1.logger.warn({ url: baseUrl, datasource: this.id, packageName, err }, 'Error fetching from url');
37
+ if (!(err instanceof http_1.HttpError && err.response?.statusCode === 404)) {
38
+ logger_1.logger.warn({ url: baseUrl, datasource: this.id, packageName, err }, 'Error fetching from url');
39
+ }
37
40
  })
38
41
  .unwrap();
39
42
  if (baseErr) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/galaxy-collection/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport * as p from '../../../util/promises';\nimport { regEx } from '../../../util/regex';\nimport { ensureTrailingSlash, joinUrlParts } from '../../../util/url';\nimport * as pep440Versioning from '../../versioning/pep440';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { GalaxyV3, GalaxyV3DetailedVersion, GalaxyV3Versions } from './schema';\n\nconst ansibleProtocolRegex = regEx(/^\\S+\\/api\\/ansible\\/.+/);\nconst repositoryRegex = regEx(\n /^\\S+\\/api\\/galaxy\\/content\\/(?<repository>[^/]+)/,\n);\n\nexport class GalaxyCollectionDatasource extends Datasource {\n static readonly id = 'galaxy-collection';\n\n constructor() {\n super(GalaxyCollectionDatasource.id);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly registryStrategy = 'hunt';\n\n override readonly defaultRegistryUrls = ['https://galaxy.ansible.com/api/'];\n\n override readonly defaultVersioning = pep440Versioning.id;\n\n override readonly releaseTimestampSupport = true;\n override releaseTimestampNote =\n 'The release timestamp is determined from the `created_at` field in the results.';\n // sourceUrl is returned in each release as well as the ReleaseResult\n // the one present in release result is the sourceUrl of the latest release\n override readonly sourceUrlSupport = 'release';\n override readonly sourceUrlNote =\n 'The `sourceUrl` is determined from the `repository` field in the results.';\n\n @cache({\n namespace: `datasource-${GalaxyCollectionDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => `getReleases:${packageName}`,\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const baseUrl = this.constructBaseUrl(registryUrl!, packageName);\n\n const { val: baseProject, err: baseErr } = await this.http\n .getJsonSafe(baseUrl, GalaxyV3)\n .onError((err) => {\n logger.warn(\n { url: baseUrl, datasource: this.id, packageName, err },\n 'Error fetching from url',\n );\n })\n .unwrap();\n if (baseErr) {\n this.handleGenericErrors(baseErr);\n }\n\n const versionsUrl = ensureTrailingSlash(joinUrlParts(baseUrl, 'versions'));\n\n const { val: rawReleases, err: versionsErr } = await this.http\n .getJsonSafe(versionsUrl, GalaxyV3Versions)\n .onError((err) => {\n logger.warn(\n { url: versionsUrl, datasource: this.id, packageName, err },\n 'Error fetching from url',\n );\n })\n .unwrap();\n if (versionsErr) {\n this.handleGenericErrors(versionsErr);\n }\n\n const releases = rawReleases.map((value) => {\n return {\n ...value,\n isDeprecated: baseProject.deprecated,\n };\n });\n\n // asynchronously get release details\n const enrichedReleases = await p.map(\n releases,\n (release) => this.getVersionDetails(packageName, versionsUrl, release),\n { concurrency: 4 },\n );\n\n // filter failed versions\n const filteredReleases = enrichedReleases.filter(is.truthy);\n // extract base information which are only provided on the release from the newest release\n\n // Find the source URL of the highest version release\n const sourceUrlOfHighestRelease = enrichedReleases.find(\n (release) => baseProject.highest_version.version === release.version,\n )?.sourceUrl;\n\n return {\n releases: filteredReleases,\n sourceUrl: sourceUrlOfHighestRelease,\n };\n }\n\n constructBaseUrl(registryUrl: string, packageName: string): string {\n const [namespace, projectName] = packageName.split('.');\n if (ansibleProtocolRegex.test(registryUrl)) {\n return ensureTrailingSlash(\n joinUrlParts(registryUrl, 'api/v3/collections', namespace, projectName),\n );\n } else {\n const repository =\n repositoryRegex.exec(registryUrl)?.groups?.repository ?? 'published';\n return ensureTrailingSlash(\n joinUrlParts(\n registryUrl,\n 'v3/plugin/ansible/content',\n repository,\n 'collections/index',\n namespace,\n projectName,\n ),\n );\n }\n }\n\n @cache({\n namespace: `datasource-${GalaxyCollectionDatasource.id}`,\n key: (_packageName: string, versionsUrl: string, basicRelease: Release) =>\n `getVersionDetails:${versionsUrl}:${basicRelease.version}`,\n ttlMinutes: 10080, // 1 week\n })\n async getVersionDetails(\n packageName: string,\n versionsUrl: string,\n basicRelease: Release,\n ): Promise<Release> {\n const detailedVersionUrl = ensureTrailingSlash(\n joinUrlParts(versionsUrl, basicRelease.version),\n );\n const { val: rawDetailedVersion, err: versionsErr } = await this.http\n .getJsonSafe(detailedVersionUrl, GalaxyV3DetailedVersion)\n .onError((err) => {\n logger.warn(\n { url: versionsUrl, datasource: this.id, packageName, err },\n 'Error fetching from url',\n );\n })\n .unwrap();\n if (versionsErr) {\n this.handleGenericErrors(versionsErr);\n }\n\n return {\n ...rawDetailedVersion,\n isDeprecated: basicRelease.isDeprecated,\n };\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/modules/datasource/galaxy-collection/index.ts"],"names":[],"mappings":"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","sourcesContent":["import is from '@sindresorhus/is';\nimport { logger } from '../../../logger';\nimport { cache } from '../../../util/cache/package/decorator';\nimport { HttpError } from '../../../util/http';\nimport * as p from '../../../util/promises';\nimport { regEx } from '../../../util/regex';\nimport { ensureTrailingSlash, joinUrlParts } from '../../../util/url';\nimport * as pep440Versioning from '../../versioning/pep440';\nimport { Datasource } from '../datasource';\nimport type { GetReleasesConfig, Release, ReleaseResult } from '../types';\nimport { GalaxyV3, GalaxyV3DetailedVersion, GalaxyV3Versions } from './schema';\n\nconst ansibleProtocolRegex = regEx(/^\\S+\\/api\\/ansible\\/.+/);\nconst repositoryRegex = regEx(\n /^\\S+\\/api\\/galaxy\\/content\\/(?<repository>[^/]+)/,\n);\n\nexport class GalaxyCollectionDatasource extends Datasource {\n static readonly id = 'galaxy-collection';\n\n constructor() {\n super(GalaxyCollectionDatasource.id);\n }\n\n override readonly customRegistrySupport = true;\n\n override readonly registryStrategy = 'hunt';\n\n override readonly defaultRegistryUrls = ['https://galaxy.ansible.com/api/'];\n\n override readonly defaultVersioning = pep440Versioning.id;\n\n override readonly releaseTimestampSupport = true;\n override releaseTimestampNote =\n 'The release timestamp is determined from the `created_at` field in the results.';\n // sourceUrl is returned in each release as well as the ReleaseResult\n // the one present in release result is the sourceUrl of the latest release\n override readonly sourceUrlSupport = 'release';\n override readonly sourceUrlNote =\n 'The `sourceUrl` is determined from the `repository` field in the results.';\n\n @cache({\n namespace: `datasource-${GalaxyCollectionDatasource.id}`,\n key: ({ packageName }: GetReleasesConfig) => `getReleases:${packageName}`,\n })\n async getReleases({\n packageName,\n registryUrl,\n }: GetReleasesConfig): Promise<ReleaseResult | null> {\n const baseUrl = this.constructBaseUrl(registryUrl!, packageName);\n\n const { val: baseProject, err: baseErr } = await this.http\n .getJsonSafe(baseUrl, GalaxyV3)\n .onError((err) => {\n if (!(err instanceof HttpError && err.response?.statusCode === 404)) {\n logger.warn(\n { url: baseUrl, datasource: this.id, packageName, err },\n 'Error fetching from url',\n );\n }\n })\n .unwrap();\n if (baseErr) {\n this.handleGenericErrors(baseErr);\n }\n\n const versionsUrl = ensureTrailingSlash(joinUrlParts(baseUrl, 'versions'));\n\n const { val: rawReleases, err: versionsErr } = await this.http\n .getJsonSafe(versionsUrl, GalaxyV3Versions)\n .onError((err) => {\n logger.warn(\n { url: versionsUrl, datasource: this.id, packageName, err },\n 'Error fetching from url',\n );\n })\n .unwrap();\n if (versionsErr) {\n this.handleGenericErrors(versionsErr);\n }\n\n const releases = rawReleases.map((value) => {\n return {\n ...value,\n isDeprecated: baseProject.deprecated,\n };\n });\n\n // asynchronously get release details\n const enrichedReleases = await p.map(\n releases,\n (release) => this.getVersionDetails(packageName, versionsUrl, release),\n { concurrency: 4 },\n );\n\n // filter failed versions\n const filteredReleases = enrichedReleases.filter(is.truthy);\n // extract base information which are only provided on the release from the newest release\n\n // Find the source URL of the highest version release\n const sourceUrlOfHighestRelease = enrichedReleases.find(\n (release) => baseProject.highest_version.version === release.version,\n )?.sourceUrl;\n\n return {\n releases: filteredReleases,\n sourceUrl: sourceUrlOfHighestRelease,\n };\n }\n\n constructBaseUrl(registryUrl: string, packageName: string): string {\n const [namespace, projectName] = packageName.split('.');\n if (ansibleProtocolRegex.test(registryUrl)) {\n return ensureTrailingSlash(\n joinUrlParts(registryUrl, 'api/v3/collections', namespace, projectName),\n );\n } else {\n const repository =\n repositoryRegex.exec(registryUrl)?.groups?.repository ?? 'published';\n return ensureTrailingSlash(\n joinUrlParts(\n registryUrl,\n 'v3/plugin/ansible/content',\n repository,\n 'collections/index',\n namespace,\n projectName,\n ),\n );\n }\n }\n\n @cache({\n namespace: `datasource-${GalaxyCollectionDatasource.id}`,\n key: (_packageName: string, versionsUrl: string, basicRelease: Release) =>\n `getVersionDetails:${versionsUrl}:${basicRelease.version}`,\n ttlMinutes: 10080, // 1 week\n })\n async getVersionDetails(\n packageName: string,\n versionsUrl: string,\n basicRelease: Release,\n ): Promise<Release> {\n const detailedVersionUrl = ensureTrailingSlash(\n joinUrlParts(versionsUrl, basicRelease.version),\n );\n const { val: rawDetailedVersion, err: versionsErr } = await this.http\n .getJsonSafe(detailedVersionUrl, GalaxyV3DetailedVersion)\n .onError((err) => {\n logger.warn(\n { url: versionsUrl, datasource: this.id, packageName, err },\n 'Error fetching from url',\n );\n })\n .unwrap();\n if (versionsErr) {\n this.handleGenericErrors(versionsErr);\n }\n\n return {\n ...rawDetailedVersion,\n isDeprecated: basicRelease.isDeprecated,\n };\n }\n}\n"]}
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": "41.12.0",
4
+ "version": "41.12.1",
5
5
  "type": "commonjs",
6
6
  "bin": {
7
7
  "renovate": "dist/renovate.js",