From 053a168696573d18eb65258df5c1e4ff700dfd1f Mon Sep 17 00:00:00 2001 From: xryu Date: Fri, 2 Oct 2026 11:06:07 +0800 Subject: [PATCH 1/2] fix: publish releases from the public repository --- README.md | 2 +- docs/RELEASING.md | 2 +- scripts/release/github.cjs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a444af3..4a72ee8 100644 --- a/README.md +++ b/README.md @@ -53,7 +53,7 @@ LSAudio 将音效参数编辑、曲线展示、音频试听和设备通信集中 ## 快速开始 -安装包入口:[GitHub Releases](https://github.com/LISTENAI/equalizer/releases)(需要仓库访问权限)。首个预览版计划为 `1.2.0-beta.1`,验收完成前不会标为已发布。源码运行与本地打包仍可使用。 +安装包入口:[GitHub Releases](https://github.com/LISTENAI/equalizer/releases)(发布后公开下载)。首个预览版计划为 `1.2.0-beta.1`,验收完成前不会标为已发布。源码运行与本地打包仍可使用。 ### 安装应用 diff --git a/docs/RELEASING.md b/docs/RELEASING.md index 464518a..ce82872 100644 --- a/docs/RELEASING.md +++ b/docs/RELEASING.md @@ -1,6 +1,6 @@ # LSAudio 发布维护 -仓库保持私有;Release 仅供有仓库权限的成员下载。产品标识 `listenai.com`、名称 `LSAudio` 和 Electron 用户数据目录保持不变。不接入在线更新。 +仓库保持公开;通过验收的 Release 可公开下载,草稿仍仅供维护者检查。发布任务检查仓库可见性为 public。产品标识 `listenai.com`、名称 `LSAudio` 和 Electron 用户数据目录保持不变。不接入在线更新。 ## 工作流 diff --git a/scripts/release/github.cjs b/scripts/release/github.cjs index 34fe45b..d9df7c5 100644 --- a/scripts/release/github.cjs +++ b/scripts/release/github.cjs @@ -36,7 +36,7 @@ function assets(directory, version, sha) { return expected; } function draft(tag, directory) { - if (!JSON.parse(gh('api', `repos/${repository}`)).private) throw new Error('This release workflow requires a private repository'); + if (JSON.parse(gh('api', `repos/${repository}`)).private) throw new Error('This release workflow requires a public repository'); const version = verify({ tag, master: 'refs/remotes/origin/master' }); const sha = gh('api', `repos/${repository}/git/ref/tags/${tag}`, '--jq', '.object.sha'); const files = assets(directory, version, sha); From 722d20fc0c31e8805180483467f2e52f42b3bb46 Mon Sep 17 00:00:00 2001 From: xryu Date: Fri, 2 Oct 2026 11:14:01 +0800 Subject: [PATCH 2/2] fix: find unpublished drafts when tag endpoint returns 404 --- scripts/release/github.cjs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/scripts/release/github.cjs b/scripts/release/github.cjs index d9df7c5..82faf74 100644 --- a/scripts/release/github.cjs +++ b/scripts/release/github.cjs @@ -9,7 +9,12 @@ function api(route) { return JSON.parse(gh('api', `repos/${repository}/${route}` function release(tag) { const result = spawnSync('gh', ['api', `repos/${repository}/releases/tags/${tag}`], { encoding: 'utf8' }); if (result.status === 0) return JSON.parse(result.stdout); - if (/HTTP 404/.test(result.stderr)) return null; + if (/HTTP 404/.test(result.stderr)) { + // GitHub's tag endpoint may omit an unpublished draft. Authenticated + // release listings include drafts; never create a duplicate on retry. + const pages = JSON.parse(gh('api', `repos/${repository}/releases?per_page=100`, '--paginate', '--slurp')); + return pages.flat().find(item => item.tag_name === tag) || null; + } throw new Error(result.stderr); } function assertDraft(existing, sha) {