glab release create执行失败:无法将对象反序列化为[]*upload.ReleaseAsset
解决glab release create --assets-links JSON解析错误
问题根源
报错json: cannot unmarshal object into Go value of type []*upload.ReleaseAsset明确说明:--assets-links参数要求传入的是JSON数组,但你传入的是单个JSON对象({...})或空对象({}),类型不匹配。
修复方案
1. 修正CI中的命令
将资产链接包装为JSON数组格式,修改.gitlab-ci.yml中的命令:
glab release create $CI_COMMIT_TAG --assets-links "[{\"name\":\"Release\", \"url\":\"$CI_SERVER_URL/$CI_PROJECT_PATH/-/jobs/$JOB_ID/artifacts/file/artifacts.zip?inline=false\"}]"
2. 简化测试命令
测试时需传入空数组而非空对象:
glab release create 0.3_test_release14 --assets-links "[]"
原理说明
glab release create的--assets-links参数设计为接收多个资产链接,因此底层期望的是数组类型的数据结构。即使只有一个资产链接,也必须包裹在[]中,才能被正确解析为Go语言的[]*upload.ReleaseAsset数组类型。
内容的提问来源于stack exchange,提问作者Nippey
相关产品推荐
相关产品推荐

