Jenkins 凭据 - Gitlab API 令牌
Jenkins credentials - Gitlab API token
我一直在整个网络上搜索有关如何使用 groovy 创建 GitLab API 凭证的片段。并出于 'Build merge request' 目的使用该 API 凭据创建 Gitlab 连接,这将非常有帮助。提前致谢
更新:
无论如何我找到了解决方案。我手动创建了 GitlabAPI creds 并获取它的 XML 并用 jinja2 解析它以使其动态化。然后我将它传递给 Jenkins CLI create creds by 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)"
我遇到过类似的需要通过 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)
我一直在整个网络上搜索有关如何使用 groovy 创建 GitLab API 凭证的片段。并出于 'Build merge request' 目的使用该 API 凭据创建 Gitlab 连接,这将非常有帮助。提前致谢
更新: 无论如何我找到了解决方案。我手动创建了 GitlabAPI creds 并获取它的 XML 并用 jinja2 解析它以使其动态化。然后我将它传递给 Jenkins CLI create creds by 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)"
我遇到过类似的需要通过 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)