我有一个基本上包含一些元数据的秘密文件。我使用“withCredentials”块将该文件读入局部变量:
stage('fetch')
{
steps{
withCredentials([file(credentialsId: 'secret.json', variable: 'metadata')]) {
script{
def rootDir = pwd()
def exampleModule = load "${rootDir}/test.groovy"
def res=exampleModule.process(${metadata})
sh 'echo $res'
}
}
}
}
但是元数据以屏蔽形式出现在 exampleModule 的 getData 中。我怎样才能通过它是未屏蔽的形式?
答案 0 :(得分:0)
您可以解密并打印出秘密值
println hudson.util.Secret.decrypt("<Your masked data>")
如果您使用的是 secretbytes,您需要这样做:
println(new String(com.cloudbees.plugins.credentials.SecretBytes.fromString("{<Your secretbytesmask>}").getPlainData(), "ASCII"))
要知道秘密字节,您应该打开 JenkinsHome 目录中的 credentials.xml
文件并复制秘密字节,如下所示:
注意:如果从 jenkins 管道运行,您需要批准脚本,因为您将在控制台中收到以下消息:
您需要点击并批准此脚本,一旦批准,您将能够看到未屏蔽的内容。