mirror of
https://github.com/renovatebot/renovate.git
synced 2026-11-08 04:53:36 +00:00
6293edc19a
Co-Authored-By: Michael Kriese <michael.kriese@visualon.de>
56 lines
1.3 KiB
TypeScript
56 lines
1.3 KiB
TypeScript
import Git from 'simple-git/promise';
|
|
import { URL } from 'url';
|
|
|
|
import { ReleaseResult, GetReleasesConfig, DigestConfig } from '../common';
|
|
import { logger } from '../../logger';
|
|
|
|
export const id = 'git-submodules';
|
|
|
|
export async function getPkgReleases({
|
|
lookupName,
|
|
registryUrls,
|
|
}: GetReleasesConfig): Promise<ReleaseResult | null> {
|
|
const cacheNamespace = 'datasource-git-submodules';
|
|
const cacheKey = `${registryUrls[0]}-${registryUrls[1]}`;
|
|
const cachedResult = await renovateCache.get<ReleaseResult>(
|
|
cacheNamespace,
|
|
cacheKey
|
|
);
|
|
// istanbul ignore if
|
|
if (cachedResult) {
|
|
return cachedResult;
|
|
}
|
|
|
|
const git = Git();
|
|
try {
|
|
const newHash = (
|
|
await git.listRemote(['--refs', registryUrls[0], registryUrls[1]])
|
|
)
|
|
.trim()
|
|
.split(/\t/)[0];
|
|
|
|
const sourceUrl = new URL(registryUrls[0]);
|
|
sourceUrl.username = '';
|
|
|
|
const result = {
|
|
sourceUrl: sourceUrl.href,
|
|
releases: [
|
|
{
|
|
version: newHash,
|
|
},
|
|
],
|
|
};
|
|
const cacheMinutes = 60;
|
|
await renovateCache.set(cacheNamespace, cacheKey, result, cacheMinutes);
|
|
return result;
|
|
} catch (err) {
|
|
logger.debug(`Error looking up tags in ${lookupName}`);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
export const getDigest = (
|
|
config: DigestConfig,
|
|
newValue?: string
|
|
): Promise<string> => new Promise(resolve => resolve(newValue));
|