gpt4 book ai didi

jenkins - 使用 jenkins 管道作为代码从 bitbucket 私有(private)存储库克隆

转载 作者:行者123 更新时间:2023-12-02 00:49:03 24 4
gpt4 key购买 nike

我使用 jenikins 管道作为代码来克隆一个位于私有(private) bitbucket 存储库(stash 存储库)中的 git 项目。我使用此代码块在我的管道脚本中克隆项目。

node {  
//checkout from master
stage 'checkout'
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'MyID', usernameVariable: 'GIT_USERNAME', passwordVariable: 'GIT_PASSWORD']]) {

git url: 'https://paulrda@devMyCompany.org/stash/scm/test_automation.git' , branch: 'development'
}
}

“MyID”是凭证 ID,我的用户名和密码是正确的。我将我的凭证保存在 jenkins 的全局凭证功能中。但是我在构建 jenkins 任务时遇到了这个错误。

ERROR: Error fetching remote repo 'origin'hudson.plugins.git.GitException: Failed to fetch from https://paulrda@devMyCompany.org/stash/scm/test_automation.git    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:803)    at hudson.plugins.git.GitSCM.retrieveChanges(GitSCM.java:1063)    at hudson.plugins.git.GitSCM.checkout(GitSCM.java:1094)    at org.jenkinsci.plugins.workflow.steps.scm.SCMStep.checkout(SCMStep.java:109)    at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:83)    at org.jenkinsci.plugins.workflow.steps.scm.SCMStep$StepExecutionImpl.run(SCMStep.java:73)    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)    at hudson.security.ACL.impersonate(ACL.java:221)    at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)    at java.util.concurrent.FutureTask.run(FutureTask.java:266)    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)    at java.lang.Thread.run(Thread.java:745)Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress https://paulrda@devMyCompany.org/stash/scm/test_automation.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:stdout: stderr: fatal: Authentication failed for 'https://paulrda@devMyCompany.org/stash/scm/test_automation.git/'    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:1745)    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:1489)    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$300(CliGitAPIImpl.java:64)    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:315)    at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:801)

在我的 paulrda 帐户下的 mac 机器上,我可以使用 jenkins 管道脚本成功克隆我的项目,但是当我更改为另一个帐户并运行 jenkins 时,我收到此错误。我仍然不明白为什么会出现此错误。请提供解决此问题的方法。

我的配置。
Jenkins 版本:2.19.2
凭据插件:2.1.8
Git 插件:3.0.0
Git 客户端插件:2.1.0

最佳答案

它无法通过身份验证,因为您没有将凭据正确传递给 git 调用。

因为您使用的是 Git 插件而不是 shell 命令,所以根本不需要使用 withCredentials。您可以将 credentialsId 直接传递给 git 调用,如下所示:

stage('checkout') {
git credentialsId: 'MyID', url: 'https://devMyCompany.org/stash/scm/test_automation.git', branch: 'development'
}

关于jenkins - 使用 jenkins 管道作为代码从 bitbucket 私有(private)存储库克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41455854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com