From ef64be8da665680ebf9fadcf60ae79046594292d Mon Sep 17 00:00:00 2001 From: StanPonomarev Date: Fri, 21 Aug 2026 17:40:37 +0200 Subject: [PATCH] fix: release again --- .gitea/scripts/morphe-release.cjs | 29 ++++++++++++++++++++--------- .gitea/workflows/release.yml | 1 + .releaserc | 2 +- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/.gitea/scripts/morphe-release.cjs b/.gitea/scripts/morphe-release.cjs index 4e41644..342f48f 100644 --- a/.gitea/scripts/morphe-release.cjs +++ b/.gitea/scripts/morphe-release.cjs @@ -4,20 +4,30 @@ const path = require('node:path'); function releaseEnvironment(context) { const env = context.env ?? process.env; const serverUrl = env.GITEA_URL?.replace(/\/$/, ''); + const publicUrl = env.GITEA_PUBLIC_URL?.replace(/\/$/, ''); const repository = env.GITEA_REPOSITORY; const token = env.GITEA_TOKEN; - if (!serverUrl || !repository || !token) { - throw new Error('GITEA_URL, GITEA_REPOSITORY, and GITEA_TOKEN are required'); + if (!serverUrl || !publicUrl || !repository || !token) { + throw new Error( + 'GITEA_URL, GITEA_PUBLIC_URL, GITEA_REPOSITORY, and GITEA_TOKEN are required', + ); } if (!/^https?:\/\//.test(serverUrl)) { throw new Error('GITEA_URL must be an HTTP(S) URL'); } + if (!/^https?:\/\//.test(publicUrl)) { + throw new Error('GITEA_PUBLIC_URL must be an HTTP(S) URL'); + } if (!/^[^/]+\/[^/]+$/.test(repository)) { throw new Error('GITEA_REPOSITORY must use the owner/repository format'); } - return { serverUrl, repository, token }; + return { serverUrl, publicUrl, repository, token }; +} + +function makeUrlsPublic(value, serverUrl, publicUrl) { + return value?.split(serverUrl).join(publicUrl); } async function giteaRequest(url, token, options = {}) { @@ -43,10 +53,11 @@ module.exports.verifyConditions = async (_pluginConfig, context) => { module.exports.prepare = async (pluginConfig, context) => { const { nextRelease, cwd } = context; - const notes = nextRelease.notes?.trim(); - if (!notes) return; + const rawNotes = nextRelease.notes?.trim(); + if (!rawNotes) return; - const { serverUrl, repository } = releaseEnvironment(context); + const { serverUrl, publicUrl, repository } = releaseEnvironment(context); + const notes = makeUrlsPublic(rawNotes, serverUrl, publicUrl); const changelogPath = path.resolve(cwd, pluginConfig.changelogFile ?? 'CHANGELOG.md'); const releaseJsonPath = path.resolve(cwd, pluginConfig.releaseJsonPath ?? 'patches-bundle.json'); @@ -67,7 +78,7 @@ module.exports.prepare = async (pluginConfig, context) => { const releaseData = { created_at: new Date().toISOString().replace(/\.\d{3}Z$/, ''), description: notes, - download_url: `${serverUrl}/${repository}/releases/download/${nextRelease.gitTag}/${assetName}`, + download_url: `${publicUrl}/${repository}/releases/download/${nextRelease.gitTag}/${assetName}`, signature_download_url: '', version, }; @@ -75,7 +86,7 @@ module.exports.prepare = async (pluginConfig, context) => { }; module.exports.publish = async (pluginConfig, context) => { - const { serverUrl, repository, token } = releaseEnvironment(context); + const { serverUrl, publicUrl, repository, token } = releaseEnvironment(context); const { branch, cwd, nextRelease } = context; const repositoryPath = repository.split('/').map(encodeURIComponent).join('/'); const apiUrl = `${serverUrl}/api/v1/repos/${repositoryPath}`; @@ -96,7 +107,7 @@ module.exports.publish = async (pluginConfig, context) => { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ - body: nextRelease.notes, + body: makeUrlsPublic(nextRelease.notes, serverUrl, publicUrl), draft: false, name: nextRelease.name, prerelease: false, diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 0b6dc5b..f52d24a 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -52,6 +52,7 @@ jobs: env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_URL: ${{ gitea.server_url }} + GITEA_PUBLIC_URL: https://git.krtss.de GITEA_REPOSITORY: ${{ gitea.repository }} GITEA_REF_NAME: ${{ gitea.ref_name }} run: npx semantic-release diff --git a/.releaserc b/.releaserc index fd31a27..f2b69ab 100644 --- a/.releaserc +++ b/.releaserc @@ -40,7 +40,7 @@ [ "@semantic-release/exec", { - "prepareCmd": "./gradlew generatePatchesList && jq '.version=\"${nextRelease.version}\"' patches-list.json > patches-list.json.tmp && mv patches-list.json.tmp patches-list.json && python3 .gitea/scripts/generate_patches_readme.py \"$GITEA_URL\" \"$GITEA_REPOSITORY\" \"$GITEA_REF_NAME\" patches-list.json README.md" + "prepareCmd": "./gradlew generatePatchesList && jq '.version=\"${nextRelease.version}\"' patches-list.json > patches-list.json.tmp && mv patches-list.json.tmp patches-list.json && python3 .gitea/scripts/generate_patches_readme.py \"$GITEA_PUBLIC_URL\" \"$GITEA_REPOSITORY\" \"$GITEA_REF_NAME\" patches-list.json README.md" } ], [