在GitHub Actions中执行svn checkout出现E170001授权失败如何解决
GitHub Actions SVN授权失败排查解决方法
1. 基础配置校验
- 确认工作流代码中的
<URL>占位符已替换为实际的SVN仓库完整地址,报错信息中存在URL为空提示,优先排查地址配置错误问题。 - 核对GitHub仓库Secrets配置,确保
SVN_USER、SVN_PASSWORD两个密钥的名称拼写与工作流中完全一致(大小写敏感),且密钥值为正确的SVN账号密码,无多余空格、换行符。
2. 调整SVN命令参数
CI环境为非交互场景,需要增加--non-interactive参数禁止SVN弹出交互式输入提示,同时调整参数顺序适配不同SVN版本要求,修改后的命令如下:
svn co 你的实际SVN仓库地址 --username ${{ secrets.SVN_USER }} --password ${{ secrets.SVN_PASSWORD }} --no-auth-cache --non-interactive
3. 自定义容器SVN配置检查
你使用的自定义容器可能存在SVN默认配置限制,可在工作流步骤中增加以下命令校验配置:
# 打印密钥前缀确认变量可正常读取(不要打印完整值避免密钥泄露) echo "SVN_USER前缀:${{ secrets.SVN_USER:0:3 }}" echo "SVN_PASSWORD前缀:${{ secrets.SVN_PASSWORD:0:3 }}" # 检查SVN是否允许Basic认证 cat ~/.subversion/servers | grep 'http-auth-types'
如果输出中http-auth-types没有包含basic,执行以下命令修改配置后再执行拉取操作:
echo "[global]" > ~/.subversion/servers echo "http-auth-types = basic;digest;negotiate" >> ~/.subversion/servers
4. 服务端侧限制排查
- 确认SVN服务端是否配置了IP白名单,是否允许GitHub Actions的出口IP访问。
- 确认使用的SVN账号有目标仓库的拉取权限,账号权限不足也会返回授权失败报错。
内容的提问来源于stack exchange,提问作者Avinash
相关产品推荐
相关产品推荐

