Jenkins凭证 - Gitlab API令牌

时间:2017-07-02 15:01:47

标签: jenkins groovy gitlab gitlab-api

我一直在网上搜索有关如何使用groovy创建GitLab API凭据的代码段。并使用该API凭据为“构建合并请求”目的创建Gitlab连接,这将非常有用。提前致谢

更新: 无论如何我找到了解决方案。我手动创建了GitlabAPI信用卡,并使用其XML并使用jinja2解析它以使其动态化。然后我把它传递给了Jenkins CLI,通过xml

创建了信用卡
cat /tmp/gitlab-credential.xml | \
java -jar {{ cli_jar_location }} \
-s http://{{ jenkins_hostname }}:{{ http_port }} \
create-credentials-by-xml  "SystemCredentialsProvider::SystemContextResolver::jenkins" "(global)"

1 个答案:

答案 0 :(得分:1)

我遇到了类似的需要通过groovy创建gitlab api凭证。以下是我设法找出的解决方案,改编自https://gist.github.com/iocanel/9de5c976cc0bd5011653

import jenkins.model.*
import com.cloudbees.plugins.credentials.*
import com.cloudbees.plugins.credentials.common.*
import com.cloudbees.plugins.credentials.domains.*
import com.cloudbees.plugins.credentials.impl.*
import com.dabsquared.gitlabjenkins.connection.*
import hudson.util.Secret

domain = Domain.global()
store = Jenkins.instance.getExtensionList('com.cloudbees.plugins.credentials.SystemCredentialsProvider')[0].getStore()

token = new Secret("my-token")

gitlabToken = new GitLabApiTokenImpl(
  CredentialsScope.GLOBAL,
  "gitlab-token",
  "token for gitlab",
  token
)

store.addCredentials(domain, gitlabToken)