通过 groovy 脚本添加 Google 服务帐户凭据
Adding Google Service Account Credentials by a groovy script
我想在 init.groovy.d
上使用 groovy 文件初始值设定项添加 Google 服务帐户凭据。到目前为止,我可以定义 UserName-Password 凭据和 String
凭据。但是,Google API 密钥需要特殊的凭据类型:GoogleRobotPrivateKeyCredentials
。我无法添加那种类型的凭据。
如何通过 groovy 脚本定义 Google 类型 GoogleRobotPrivateKeyCredentials
的服务帐户凭据?
似乎有一个答案link:https://github.com/jenkinsci/google-oauth-plugin/issues/5
我稍微修改了一下,因为这个答案在最新的 Jenkins 安装上不起作用:
import com.cloudbees.plugins.credentials.Credentials
import com.cloudbees.plugins.credentials.CredentialsStore
import com.cloudbees.plugins.credentials.SystemCredentialsProvider
import com.cloudbees.plugins.credentials.domains.Domain
import com.google.jenkins.plugins.credentials.oauth.GoogleRobotPrivateKeyCredentials
import com.google.jenkins.plugins.credentials.oauth.JsonServiceAccountConfig
import hudson.model.FileParameterValue.FileItemImpl
import org.apache.commons.fileupload.FileItem
def jsonFile = new File("/myfilepath/key.json")
def fileItem = new FileItemImpl(jsonFile)
def config = new JsonServiceAccountConfig()
config.setJsonKeyFileUpload(fileItem)
Credentials credentials = new GoogleRobotPrivateKeyCredentials("gpc", config, null)
SystemCredentialsProvider instance = SystemCredentialsProvider.getInstance()
CredentialsStore store = instance.getStore()
store.addCredentials(Domain.global(), credentials)
我想在 init.groovy.d
上使用 groovy 文件初始值设定项添加 Google 服务帐户凭据。到目前为止,我可以定义 UserName-Password 凭据和 String
凭据。但是,Google API 密钥需要特殊的凭据类型:GoogleRobotPrivateKeyCredentials
。我无法添加那种类型的凭据。
如何通过 groovy 脚本定义 Google 类型 GoogleRobotPrivateKeyCredentials
的服务帐户凭据?
似乎有一个答案link:https://github.com/jenkinsci/google-oauth-plugin/issues/5
我稍微修改了一下,因为这个答案在最新的 Jenkins 安装上不起作用:
import com.cloudbees.plugins.credentials.Credentials
import com.cloudbees.plugins.credentials.CredentialsStore
import com.cloudbees.plugins.credentials.SystemCredentialsProvider
import com.cloudbees.plugins.credentials.domains.Domain
import com.google.jenkins.plugins.credentials.oauth.GoogleRobotPrivateKeyCredentials
import com.google.jenkins.plugins.credentials.oauth.JsonServiceAccountConfig
import hudson.model.FileParameterValue.FileItemImpl
import org.apache.commons.fileupload.FileItem
def jsonFile = new File("/myfilepath/key.json")
def fileItem = new FileItemImpl(jsonFile)
def config = new JsonServiceAccountConfig()
config.setJsonKeyFileUpload(fileItem)
Credentials credentials = new GoogleRobotPrivateKeyCredentials("gpc", config, null)
SystemCredentialsProvider instance = SystemCredentialsProvider.getInstance()
CredentialsStore store = instance.getStore()
store.addCredentials(Domain.global(), credentials)