Jenkins API 更新库配置

Jenkins API to update library configuration

我正在尝试通过 Python 更新我们在 Jenkins 中使用的“配置”中的库,但看不到通过 Jenkins API 执行此操作的任何方法。有没有办法通过 Jenkins API 将版本更新到 1.1.0

假设您可以使用 groovy 脚本来配置库版本,您可以使用以下脚本来设置 全局现有库的默认版本 :

def jenkins = Jenkins.getInstance()
def globalLibraryDescriptor = jenkins.getDescriptor("org.jenkinsci.plugins.workflow.libs.GlobalLibraries")
def config = globalLibraryDescriptor.getLibraries().find {
   it.name == '1.1.0' // Find your existing library by name
}
config.setDefaultVersion("THE_NEW_VERION")  // Update the default version value

如果您还想通过 API 在全局设置中创建库配置,您可以使用 following script 作为 groovy API 的用法示例。

如果你想配置一个文件夹级别现有库你可以使用下面的代码:

def jenkins = Jenkins.getInstance()
def folderLibrary = jenkins.getItem("FOLDER_NAME").getProperties().find {it.class =~ 'FolderLibraries'}
def config = folderLibrary.getLibraries().find {
   it.name == '1.1.0' // Find your existing library by name
}
config.setDefaultVersion("THE_NEW_VERION")  // Update the default version value

更新:我们使用以下代码让它与共享库一起工作(如果有人遇到需要它工作的情况):

for (LibraryResolver resolver : ExtensionList.lookup(LibraryResolver.class)) {
    for (LibraryConfiguration cfg : resolver.forJob(currentBuild.rawBuild.getParent(), [:])) {
        if (cfg.getName == libraryName){
            cfg.setDefaultVersion("1.1.0")
        }
    }
}