# Resolve the download URL of a release asset by file name. # GitHub: deterministic template <repo>/releases/download/<version>/<file>. # Gitee : query the release API and pick the asset whose name matches # (Gitee attachment URLs carry an unstable numeric id, so we never # template them — we read browser_download_url straight from the API). asset_url() { _name="$1" if [ -z "$GITEE_REPO" ]; then printf '%s' "https://github.com/${REPO}/releases/download/${VERSION}/${_name}" return 0 fi gitee_api "https://gitee.com/api/v5/repos/${GITEE_REPO}/releases/tags/${VERSION}" \ | tr '}' '\n' \ | grep "\"name\":[ ]*\"${_name}\"" \ | grep -o '"browser_download_url":[ ]*"[^"]*"' \ | head -1 \ | sed 's/.*"browser_download_url":[ ]*"//;s/"$//' } 版本是拿github的
Activity
PeterGuy326 commentedon Jul 11, 2026
已在当前
origin/main(fc9acb9)和最新稳定版 v1.0.51 上完成隔离复现。使用
DWS_GITEE_REPO=DingTalk-Real-AI/dingtalk-workspace-cli、DWS_VERSION=latest执行安装时,脚本从 Gitee tags 解析到 v1.0.51,但 Gitee 的
/releases/tags/v1.0.51返回 null,最终报:Could not resolve download URL for dws-darwin-arm64.tar.gz (version v1.0.51)对照测试中,显式指定已有完整 Gitee release 的 v1.0.49,可以正常下载、
通过 SHA256 校验、解压并运行。
根因是 Gitee tag 镜像和 release 附件发布不同步,同时 installer 将最新 tag
直接视为可安装 release。建议先补齐 v1.0.51 的 Gitee release 附件,再让
installer 选择“附件完整的最新 release”,避免 tag 领先时整个国内安装链路失效。
该问题已达到 E3 可重复复现,保持 open,待修复和回归验证。
PeterGuy326 commentedon Jul 13, 2026
修复已提交到 draft PR #603:
latest改为选择包含当前安装所需附件的最新完整 release;显式版本 pin 仍保持严格,不自动换版本。验证已完成:
go test ./test/scripts -skip '^TestPostGoreleaser' -count=1通过;被排除的三个既有TestPostGoreleaser*在基线工作树同样失败。Gitee 运营侧目前已补齐 v1.0.51,因此最新真实回归可直接安装 v1.0.51;PR 负责防止以后再次出现“tag 已同步、release 附件未就绪”时整个安装链路失败。
issue 继续保持 open,等待 #603 合并及发布后回归。
feat(drive): sync batch 2 - quota/task/export/publish enhancements (D…
haofeng0705 commentedon Oct 20, 2026
Hi @getcode0302 👋
感谢反馈,也谢谢你直接贴出了相关代码,定位起来方便了很多!
结论:这是 Gitee 镜像安装路径的一个真实问题。目前通过 Gitee 安装
latest已可以正常完成,但防止它再次出现的安装器修复还没有合并。原因
设置
DWS_GITEE_REPO后(或 GitHub 不可达、脚本自动切换到 Gitee 时),DWS_VERSION=latest会选择 Gitee 上版本号最高的 tag,再到这个 tag 对应的 release 里查找安装包。Gitee 上的 tag 和 release 附件不是同时就绪的:一旦 tag 先同步、附件还没上传完整,脚本就找不到下载地址,并报错:当前进展
latest可以正常安装,但装到的是v1.0.63;GitHub 最新稳定版是v1.0.64,镜像同步存在滞后。latest会改为选择附件完整的最新 release,显式指定版本时仍保持严格。该 PR 目前还是草稿,尚未合并。临时方案
需要最新版时,可以通过 npmmirror 安装(需要 Node.js):
继续使用 Gitee 安装脚本时,如果
latest报上面的错误,可以显式指定 Gitee 发行版页面上附件完整的版本,例如:curl -fsSL https://gitee.com/DingTalk-Real-AI/dingtalk-workspace-cli/raw/main/scripts/install.sh | DWS_GITEE_REPO=DingTalk-Real-AI/dingtalk-workspace-cli DWS_VERSION=v1.0.63 sh安装器修复的进展请关注 #603,这个 Issue 我们先关闭。如果按上面的方式仍然失败,欢迎直接在这里留言,并补充操作系统与架构、完整安装命令、
DWS_VERSION的取值和完整报错输出(请注意脱敏),我们会继续跟进 🙌