更新GH_TOKEN后git返回128报错无法解析凭证URL是什么原因?
报错原因
报错核心是git识别到认证URL的用户名部分存在换行符,导致URL格式非法无法解析,问题出在你生成加密配置的操作环节:
- 你将PAT写入
plain.txt时,如果用普通的echo 内容 > plain.txt命令,echo默认会在输出末尾追加换行符,导致明文PAT本身就携带多余换行,加密解密后依然会保留这个换行。 - 你执行base64编码读取加密文件时,默认的
base64命令输出结果会自动在末尾插入换行符,你复制内容时如果把这个换行一起粘贴到了cloudbuild.yaml配置中,解密后就会将换行带入最终的GH_TOKEN环境变量中。
semantic-release拼接GitHub仓库的认证URL时,会直接把携带换行的GH_TOKEN放到URL的认证位,最终触发git的解析报错。
修复方法
- 写入PAT到明文文件时添加参数禁用换行:执行
echo -n "你的PAT内容" > plain.txt,避免明文本身带换行。 - 生成base64编码时禁用自动换行:执行
base64 -w 0 crypt获取输出结果,再复制该内容到配置文件。 - 也可以在CloudBuild的解密步骤中主动去除末尾换行再赋值环境变量,示例:
GH_TOKEN=$(gcloud kms decrypt 你的解密参数 | tr -d '\n')
内容的提问来源于stack exchange,提问作者Carl Walsh
相关产品推荐
相关产品推荐

