首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >git的jenkins管道中的转义@字符

git的jenkins管道中的转义@字符
EN

Stack Overflow用户
提问于 2019-08-15 16:22:45
回答 1查看 1.1K关注 0票数 1

在我们的jenkins构建期间,我们正在尝试推送到git。我们的密码最近更改了,现在包括一个@符号,它给出了以下错误:

建议似乎是对密码进行编码,但我不知道如何在我们的jenkins管道中做到这一点。我该怎么做呢?(我还尝试使用replace方法将@符号替换为%40,但不起作用。)

代码语言:javascript
运行
复制
def GIT_PASSWORD_R = GIT_PASSWORD.replace('@', '%40') 

Escape @ character in git proxy password

代码语言:javascript
运行
复制
def GIT_PASSWORD_R = GIT_PASSWORD.toURL()       
git push -f https://${GIT_USERNAME}:${GIT_PASSWORD_R}@github.company.com/Product/subProd.git ${VERSION}-SNAPSHOT
EN

回答 1

Stack Overflow用户

发布于 2019-08-15 21:43:36

我也遇到过同样的问题。与编码相比,另一个对我有效的选择是使用git凭证帮助器。请看这个答案:https://stackoverflow.com/a/40038869/9463800

它设置一个git凭证帮助器,执行git操作,并在finally块中取消设置密码。

代码语言:javascript
运行
复制
try {
  withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'MyID', usernameVariable: 'GIT_USERNAME', passwordVariable: 'GIT_PASSWORD']]) {
    sh("${git} config credential.username ${env.GIT_USERNAME}")
    sh("${git} config credential.helper '!echo password=\$GIT_PASSWORD; echo'")
    sh("GIT_ASKPASS=true ${git} push origin --tags")
  }
} finally {
    sh("${git} config --unset credential.username")
    sh("${git} config --unset credential.helper")
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57506821

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档