以编程方式获取插件的 Jenkins 配置

Programmatically getting Jenkins configuration for a plugin

我正在尝试通过 Groovy 控制台中的 Groovy 脚本获取(并希望更改)插件的 Jenkins 配置。我的具体示例是尝试更改 publish-over-ssh 插件的多个 IP 地址。通过命令行(编辑 xml)很容易做到,但经过几个小时的努力,我仍然想知道如何通过 groovy 控制台完成,因为没有除了启蒙之外的其他原因。我查看了 Jenkins API javadoc,但无济于事。

我如何find/change Jenkins 控制台中插件的全局配置?

这里是开始搜索的好地方:

https://github.com/jenkinsci/publish-over-ssh-plugin/tree/master/src/main/java/jenkins/plugins/publish_over_ssh

这里是一个添加主机的例子:

import jenkins.model.*
import jenkins.plugins.publish_over_ssh.BapSshHostConfiguration
def inst = Jenkins.getInstance()
def publish_ssh = inst.getDescriptor("jenkins.plugins.publish_over_ssh.BapSshPublisherPlugin")
def configuration = new BapSshHostConfiguration(name,
  hostname,
  username,
  encryptedPassword,
  remoteRootDir,
  port,
  timeout,
  overrideKey,
  keyPath,
  key,
  disableExec
)
publish_ssh.addHostConfiguration(configuration)
publish_ssh.save()

在这里我们可以看到几个有用的函数:

https://github.com/jenkinsci/publish-over-ssh-plugin/blob/master/src/main/java/jenkins/plugins/publish_over_ssh/descriptor/BapSshPublisherPluginDescriptor.java

  • getHostConfigurations()
  • removeHostConfiguration(最终字符串名称)

应该是您需要的所有信息,干杯!