我们如何访问与工作流兼容的 jenkins 插件中的敏感变量?
How do we access the sensitive variables in a jenkins plugin that is workflow compatible?
我正在尝试使用 jenkins gradle plugin 并使其与新的工作流作业类型兼容。我已经到了可以使用类似这样的东西的地步,它会 运行 gradle 非常成功:
step([$class: 'Gradle',
switches: "-PenableInstallerDistribution=true",
tasks: 'build install',
gradleName: '(Default)',
useWrapper: true,
makeExecutable: true,
fromRootBuildScriptDir: true,
useWorkspaceAsHome: true])
但是,我不得不做出一些牺牲。我不得不简单地删除这些行:
Set<String> sensitiveVars = build.getSensitiveBuildVariables();
args.addKeyValuePairs("-D", fixParameters(build.getBuildVariables()), sensitiveVars);
我找不到任何方法来从提供的 Run
对象访问 "sensitive variables" 来代替旧的 AbstractBuild
并且将密码弹出到控制台输出看起来像一个坏主意。 (我相信这是代码试图避免做的事情;我没有写原文。)
目前没有 Run.getSensitiveBuildVariables()
,但可能需要一个。无论如何,此方法只是与 其他插件 通信,出于各种目的,哪些变量可能被视为机密;它不负责使来自 ProcStarter
的命令行中包含的密码在构建日志中显示为 ****
,这将使用 ArgumentListBuilder.addMasked
.
完成
快速回答是,如果没有给出 AbstractBuild
.
,您应该跳过这个块,等待更新的 API
我正在尝试使用 jenkins gradle plugin 并使其与新的工作流作业类型兼容。我已经到了可以使用类似这样的东西的地步,它会 运行 gradle 非常成功:
step([$class: 'Gradle',
switches: "-PenableInstallerDistribution=true",
tasks: 'build install',
gradleName: '(Default)',
useWrapper: true,
makeExecutable: true,
fromRootBuildScriptDir: true,
useWorkspaceAsHome: true])
但是,我不得不做出一些牺牲。我不得不简单地删除这些行:
Set<String> sensitiveVars = build.getSensitiveBuildVariables();
args.addKeyValuePairs("-D", fixParameters(build.getBuildVariables()), sensitiveVars);
我找不到任何方法来从提供的 Run
对象访问 "sensitive variables" 来代替旧的 AbstractBuild
并且将密码弹出到控制台输出看起来像一个坏主意。 (我相信这是代码试图避免做的事情;我没有写原文。)
目前没有 Run.getSensitiveBuildVariables()
,但可能需要一个。无论如何,此方法只是与 其他插件 通信,出于各种目的,哪些变量可能被视为机密;它不负责使来自 ProcStarter
的命令行中包含的密码在构建日志中显示为 ****
,这将使用 ArgumentListBuilder.addMasked
.
快速回答是,如果没有给出 AbstractBuild
.