我有一个詹金斯工作foo
表现很好。已通过jenkins_foo_user
进行了身份验证。它能够克隆仓库并检出正确的分支。
在我的代码库中,我还有另一个脚本-query_github.py
,该脚本用于查询Github API以获取诸如提交和请求请求之类的信息。为了能够使用此API,我需要一个访问令牌。
我希望能够使用jenkins用户访问令牌来认证和访问github凭证。 我该怎么做呢? 注意:使用Github Enterprise版本
答案 0 :(得分:0)
您可以在jenkins job中定义一个密码参数,并且可以在您的github脚本中使用它。
Ex:您可以使用注入全局密码(如果您有此插件)将密码变量定义为构建参数或新密码变量
使用api的脚本中可以使用相同的密码
下面的命令使用github api调用,并将列出您组织中的存储库
确保将<your_organization_name_HERE>
替换为您的组织名称
curl --silent -q -H "Authorization: token ${github_api_pwd}" https://api.github.com/orgs/<your_organization_name_HERE>/repos
类似地,您可以使用其他api来获取其他信息
答案 1 :(得分:0)
必须使用credentials api
。
例子
withCredentials([[$class: 'UsernamePasswordMultiBinding',
credentialsId: 'jenkins-user',
usernameVariable: 'Foo_USERNAME',
passwordVariable: 'Foo_PASSWORD']]) {
export foo_name=${stds.escape4sh env.Foo_USERNAME}
export foo_pass=${stds.escape4sh env.Foo_PASSWORD}
python foo.py
在foo.py内部
_name = os.env.get('foo_name')
_pass = os.env.get('foo_pas')
最简单,最干净的方法来实现目标!
注意:jenkins-user
应该配置为jenkins用户凭证