是否可以在共享库中共享管道定义并在多分支管道作业中使用这些定义?

我们正在尝试为所有存储库构建一个传统的声明性管道来共享 . 每个存储库基本上都具有相同的 Jenkinsfile . 因此,我们've created a shared pipeline step that's基本上只是 conventionalPipeline ,因此每个存储库的 Jenkinsfile 将是一行来调用此步骤 .

由于多分支管道项目在沙箱中运行(没有办法阻止沙箱),因此这个想法在 RejectedAccessException 中停止了 . This issue跟踪Jenkins项目中的行为 .

我们可以信任 conventionalPipeline 及其所做的一切,但因为它调用了不受信任的方法,我们无法在多分支管道中调用它 . 我们可以将它调用的所有方法列入白名单,但这会打开沙箱试图关闭的安全漏洞 .

我看到有两种选择 - 如果我忽略了某些东西,我会很好奇

  • 以某种方式修改jenkins以允许不受信任的方法变为受信任,并允许该方法的所有后续方法调用被隐式信任

  • 允许在jenkins配置中为存储库而不是在SCM中定义多分支管道定义,并让此作业在沙箱之外运行

将不胜感激任何指导 .