You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS CodePipeline对接Bitbucket时git push失败 报codestar用户名读取错误

问题产生原因
  • CodePipeline通过CodeStar连接拉取Bitbucket源码时,会自动将CodeBuild工作目录内Git仓库的远程origin地址替换为AWS内部的CodeStar连接代理地址(即报错中https://codestar-connections.eu-east-1.amazonaws.com开头的地址),不会保留原Bitbucket仓库地址。
  • 配置中install阶段写入的Git凭证仅对bitbucket.org域名生效,没有为CodeStar代理域名配置对应凭证。且CodeStar连接的代理地址仅支持CodePipeline服务拉取源码,不开放外部客户端的推送权限,也不存在可供普通Git客户端使用的账号密码凭证。
  • 执行打标签脚本的git push操作时,Git会向当前配置的CodeStar代理地址发起推送请求,找不到对应认证信息就会抛出该错误。
修复方案

核心思路是放弃向CodeStar代理地址推送,在执行推送操作前将远程仓库地址切回Bitbucket的可认证地址,具体操作如下:

  1. 提前在CodeBuild项目的环境变量中配置两个保密变量,避免明文写在配置文件、避免日志泄露:
    • GIT_USER:Bitbucket下拥有对应仓库写权限的账号名
    • GIT_PASS:Bitbucket应用专用密码(不要使用账号登录密码,需为该密码开放对应仓库的代码写入、标签推送权限)
  2. 修改buildspec配置,在执行打标签脚本前,强制替换origin远程地址为Bitbucket带认证信息的地址,调整后的pre_build段参考如下:
pre_build:
  commands:
    - mvn -q -s settings.xml test
    - git config --global user.email "test@test.com"
    - git config --global user.name "CI Build Bot"
    # 替换下方路径为实际Bitbucket仓库地址,输出重定向到空避免密码打印到日志
    - git remote set-url origin https://$GIT_USER:$GIT_PASS@bitbucket.org/你的组织名/你的仓库名.git > /dev/null 2>&1
    - bash git_tagging.sh
  1. (可选)如果担心凭证残留在构建环境,可以在打标签脚本执行完成后,将远程地址切回CodeStar默认地址,或直接清理本地Git凭证文件。

注意:不要尝试给codestar-connections域名配置凭证,该地址为AWS内部服务代理,不支持用户侧直接推送代码,配置任何凭证都无法正常完成push操作。

内容的提问来源于stack exchange,提问作者GLN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 08:24:16