diff --git a/lib/modules/datasource/packagist/index.ts b/lib/modules/datasource/packagist/index.ts index 9d3a089b4b4177b102893ce278522af65cc5c934..45271363604cdd86162a35741385fbd68d4db1bc 100644 --- a/lib/modules/datasource/packagist/index.ts +++ b/lib/modules/datasource/packagist/index.ts @@ -32,18 +32,6 @@ export class PackagistDatasource extends Datasource { override readonly registryStrategy = 'hunt'; - public override getReleases({ - packageName, - registryUrl, - }: GetReleasesConfig): Promise<ReleaseResult | null> { - logger.trace(`getReleases(${packageName})`); - // istanbul ignore if - if (!registryUrl) { - return Promise.resolve(null); - } - return this.packageLookup(registryUrl, packageName); - } - // We calculate auth at this datasource layer so that we can know whether it's safe to cache or not private static getHostOpts(url: string): HttpOptions { let opts: HttpOptions = {}; @@ -226,16 +214,23 @@ export class PackagistDatasource extends Datasource { return schema.ComposerV2ReleaseResult.parse(results); } - private async packageLookup( - regUrl: string, - name: string - ): Promise<ReleaseResult | null> { + public override async getReleases({ + packageName, + registryUrl, + }: GetReleasesConfig): Promise<ReleaseResult | null> { + logger.trace(`getReleases(${packageName})`); + + // istanbul ignore if + if (!registryUrl) { + return null; + } + try { - if (regUrl === 'https://packagist.org') { - const packagistResult = await this.packagistOrgLookup(name); + if (registryUrl === 'https://packagist.org') { + const packagistResult = await this.packagistOrgLookup(packageName); return packagistResult; } - const allPackages = await this.getAllPackages(regUrl); + const allPackages = await this.getAllPackages(registryUrl); // istanbul ignore if: needs test if (!allPackages) { return null; @@ -247,33 +242,35 @@ export class PackagistDatasource extends Datasource { providerPackages, includesPackages, } = allPackages; - if (packages?.[name]) { - const dep = PackagistDatasource.extractDepReleases(packages[name]); + if (packages?.[packageName]) { + const dep = PackagistDatasource.extractDepReleases( + packages[packageName] + ); return dep; } - if (includesPackages?.[name]) { - return includesPackages[name]; + if (includesPackages?.[packageName]) { + return includesPackages[packageName]; } let pkgUrl: string; - if (name in providerPackages) { + if (packageName in providerPackages) { pkgUrl = URL.resolve( - regUrl, + registryUrl, providersUrl! - .replace('%package%', name) - .replace('%hash%', providerPackages[name]) + .replace('%package%', packageName) + .replace('%hash%', providerPackages[packageName]) ); } else if (providersLazyUrl) { pkgUrl = URL.resolve( - regUrl, - providersLazyUrl.replace('%package%', name) + registryUrl, + providersLazyUrl.replace('%package%', packageName) ); } else { return null; } - const opts = PackagistDatasource.getHostOpts(regUrl); + const opts = PackagistDatasource.getHostOpts(registryUrl); // TODO: fix types (#9610) const versions = (await this.http.getJson<any>(pkgUrl, opts)).body - .packages[name]; + .packages[packageName]; const dep = PackagistDatasource.extractDepReleases(versions); logger.trace({ dep }, 'dep'); return dep;