如何在 withCredentials 中获取用户范围凭据(个人凭据)

4
我遇到了错误:在尝试使用用户范围凭据(为特定用户定义的凭据,而不是在Jenkins->凭据配置中定义的凭据)时,出现了“构建失败”的错误,具体表现为org.jenkinsci.plugins.credentialsbinding.impl.CredentialNotFoundException
我想创建一个参数化的构建,在其中用户将能够选择由用户定义的凭据,就像这样:
withCredentials([usernamePassword(credentialsId: params.customUser, usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {
        //do sth with USERNAME & PASSWORD
}

params.customUser - 是用户在运行构建时从下拉列表中选择的用户

3个回答

4

2019-08-27 20:53,https://issues.jenkins-ci.org/browse/JENKINS-47699 被标记为已解决。 截至2023-06-22,另外两个问题仍然未解决。 - Steven the Easily Amused

0

我们为什么不可以将凭证存储在 Jenkins 中,并为每个凭证分配一个有意义的凭证 ID,然后在作业中添加一个可扩展的选择参数(下拉菜单),其中我们可以在下拉列表中列出所有的凭证 ID。用户可以从下拉列表中选择,这样在流水线中就可以轻松访问。

谢谢。


这将是最快和最简单的解决方案。不幸的是,由于一些客户Jenkins管理员的政治原因,这是不可能的。 - Chris Jaga
那么,您使用的是企业版 Jenkins 还是开源版本? - Surendra Deshpande
@ChrisJaga的原始请求已经明确指出他们正在使用一个下拉列表。如果你认为"extensible-choice-parameter"可以解决问题,请提供更多细节。 - Steven the Easily Amused

-3
使用credentialsId: 'customUser'代替credentialsId: params.customUser,根据Cloudbees指南的建议。

1
params.customUser是作业中用于选择凭据ID的参数。这个答案并不能解决这个问题。事实上,它会取消调用者选择凭据的能力,并将其固定为一个名为'customUser'的凭据,这违背了问题的目的。 - Steven the Easily Amused

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接