From 054b03816074bdecdfe09bc6572f098e67c839df Mon Sep 17 00:00:00 2001 From: Florian Kaufmann <florian.kaufmann@codecentric.de> Date: Thu, 11 Nov 2021 16:06:23 +0100 Subject: [PATCH] =?UTF-8?q?Wiedereinf=C3=BChrung=20der=20latest=20version?= =?UTF-8?q?=20f=C3=BCr=20die=20Submission=20Api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/apis/submission-api.mdx | 2 +- src/utils/getLatestVersion.js | 32 ++++++++++++++++++-------------- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/docs/apis/submission-api.mdx b/docs/apis/submission-api.mdx index 389bfb1f9..d148f24af 100644 --- a/docs/apis/submission-api.mdx +++ b/docs/apis/submission-api.mdx @@ -5,4 +5,4 @@ hide_table_of_contents: true import ApiSpec from '@site/src/components/ApiSpec' -<ApiSpec gitlabProjectId={"1"} path={"submission-api"} artifact={"submission-api.yaml"} includePrerelease = {true} /> +<ApiSpec gitlabProjectId={"1"} path={"submission-api"} artifact={"submission-api.yaml"} includePrerelease = {true} version = {"latest"} /> diff --git a/src/utils/getLatestVersion.js b/src/utils/getLatestVersion.js index 32b221dc1..8e57cdafd 100644 --- a/src/utils/getLatestVersion.js +++ b/src/utils/getLatestVersion.js @@ -2,19 +2,23 @@ import axios from "axios"; import semver from "semver"; export default async function ({siteVersion, projectId, includePrerelease = false}) { - return axios.get(`https://git.fitko.de/api/v4/projects/${projectId}/repository/tags`) - .catch((error) => { - throw `Fetching of latest tags failed with ${error.response.status}` - }) - .then(async ({data}) => { - const versionRange = `~${siteVersion}` - const suitableVersions = await data - .filter(({name}) => semver.satisfies(name, versionRange, {includePrerelease})) - .map(({name}) => name) - .sort() + if (siteVersion === 'latest') { + return 'latest' + } else { + return axios.get(`https://git.fitko.de/api/v4/projects/${projectId}/repository/tags`) + .catch((error) => { + throw `Fetching of latest tags failed with ${error.response.status}` + }) + .then(async ({data}) => { + const versionRange = `~${siteVersion}` + const suitableVersions = await data + .filter(({name}) => semver.satisfies(name, versionRange, {includePrerelease})) + .map(({name}) => name) + .sort() - const result_version = semver.maxSatisfying(suitableVersions, versionRange, {includePrerelease}) - console.log('Get version for project: %s, requested version: %s, includePrerelease: %s, available versions: %s, selected version: %s', projectId, siteVersion, includePrerelease, suitableVersions, result_version) - return result_version - }) + const result_version = semver.maxSatisfying(suitableVersions, versionRange, {includePrerelease}) + console.log('Get version for project: %s, requested version: %s, includePrerelease: %s, available versions: %s, selected version: %s', projectId, siteVersion, includePrerelease, suitableVersions, result_version) + return result_version + }) + } } -- GitLab