我们如何访问与工作流兼容的 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