Azure DevOps流水线git fetch失败 退出码128无法读取用户名咨询
报错原因
该Git操作报错的核心触发逻辑如下:
- 凭据上下文缺失:当前发布流水线未在执行自定义Git命令前,将Azure DevOps流水线的系统身份访问凭据注入到Git认证上下文中。执行
git fetch -- origin main命令时,Git通过HTTPS协议访问远端托管仓库,检索不到可用的身份认证信息。 - 非交互环境限制:Azure DevOps流水线任务运行在无交互的Bash终端环境中,Git默认被禁止唤起交互式输入提示要求用户输入用户名、密码。当Git检测到需要凭据但无法弹出输入终端时,会直接抛出
terminal prompts disabled的致命错误,对应返回退出码128。 - 调试用到的beachball工具底层执行Git拉取逻辑时,会完全复用当前运行环境的Git配置与凭据上下文,因此即便移除手动添加的fetch调试步骤,只要没有提前完成Git访问凭据配置,工具自动执行Git操作时依然会触发完全相同的报错。
报错场景
在Azure DevOps平台托管Git仓库,使用ubuntu-latest代理池运行发布流水线时,未完成Git凭据配置就直接拉取origin/main分支,会返回如下错误信息:
fatal: could not read Username for 'https://xxx.xxx.com': terminal prompts disabled
##[error]Bash exited with code '128'.
触发报错的流水线定义如下:
# Release pipeline pr: none trigger: none variables: vmImageName: 'ubuntu-latest' pool: vmImage: $(vmImageName) jobs: - job: release workspace: clean: all steps: # Install Node - task: NodeTool@0 inputs: versionSpec: '16.14.x' displayName: 'Use node 16.14.x' # Authenticate private VivaCommonUX feed packages - task: npmAuthenticate@0 displayName: 'npm Authenticate .npmrc' inputs: workingFile: .npmrc # Install Yarn package manager - task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 inputs: versionSpec: '1.22.x' displayName: 'Use Yarn 1.22.x' # Check Node, NPM, Yarn version - script: | echo "Node Version: " node -v echo "NPM Version: " npm -v echoe "Yarn Version: " yarn -v displayName: 'Check Node, NPM, Yarn version' - script: | git fetch -- origin main displayName: 'fetch origin main'
内容的提问来源于stack exchange,提问作者Shaohao
相关产品推荐
相关产品推荐

