UNPKG

renovate

Version:

Automated dependency updates. Flexible so you don't need to be.

57 lines 2.41 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GitlabReleasesDatasource = void 0; const tslib_1 = require("tslib"); const decorator_1 = require("../../../util/cache/package/decorator"); const gitlab_1 = require("../../../util/http/gitlab"); const timestamp_1 = require("../../../util/timestamp"); const datasource_1 = require("../datasource"); class GitlabReleasesDatasource extends datasource_1.Datasource { static id = 'gitlab-releases'; defaultRegistryUrls = ['https://gitlab.com']; static registryStrategy = 'first'; releaseTimestampSupport = true; releaseTimestampNote = 'The release timestamp is determined from the `released_at` field in the results.'; sourceUrlSupport = 'package'; sourceUrlNote = 'The source URL is determined by using the `packageName` and `registryUrl`.'; constructor() { super(GitlabReleasesDatasource.id); this.http = new gitlab_1.GitlabHttp(GitlabReleasesDatasource.id); } async getReleases({ registryUrl, packageName, }) { /* v8 ignore next 3 -- should never happen */ if (!registryUrl) { return null; } const urlEncodedRepo = encodeURIComponent(packageName); const apiUrl = `${registryUrl}/api/v4/projects/${urlEncodedRepo}/releases`; try { const gitlabReleasesResponse = (await this.http.getJsonUnchecked(apiUrl)).body; return { sourceUrl: `${registryUrl}/${packageName}`, releases: gitlabReleasesResponse.map(({ tag_name, released_at }) => { const release = { registryUrl, gitRef: tag_name, version: tag_name, releaseTimestamp: (0, timestamp_1.asTimestamp)(released_at), }; return release; }), }; } catch (e) { this.handleGenericErrors(e); } } } exports.GitlabReleasesDatasource = GitlabReleasesDatasource; tslib_1.__decorate([ (0, decorator_1.cache)({ namespace: `datasource-${GitlabReleasesDatasource.id}`, key: ({ registryUrl, packageName }) => // TODO: types (#22198) `${registryUrl}/${packageName}`, }) ], GitlabReleasesDatasource.prototype, "getReleases", null); //# sourceMappingURL=index.js.map