使用播种机作业创建Jenkins文件夹时,如何设置其所有者?

使用播种机作业创建Jenkins文件夹时,如何设置其所有者?,jenkins,jenkins-job-dsl,Jenkins,Jenkins Job Dsl,我已经使用编写了一个播种器作业,以创建一个预定义的作业集合。我还使用来控制哪些用户可以访问每个文件夹 现在,我需要将启动播种机作业的用户指定为文件夹的主要所有者 我尝试设置“将作业创建者分配为所有者”配置选项,但得到的结果是创建的文件夹的所有者是系统所有者 有没有一种方法可以通过编程方式设置文件夹的主要所有者?查看文件夹的配置XML以了解信息的存储方式: <com.cloudbees.hudson.plugins.folder.Folder plugin="cloudbees-folde

我已经使用编写了一个播种器作业,以创建一个预定义的作业集合。我还使用来控制哪些用户可以访问每个文件夹

现在,我需要将启动播种机作业的用户指定为文件夹的主要所有者

我尝试设置“将作业创建者分配为所有者”配置选项,但得到的结果是创建的文件夹的所有者是系统所有者


有没有一种方法可以通过编程方式设置文件夹的主要所有者?

查看文件夹的配置XML以了解信息的存储方式:

<com.cloudbees.hudson.plugins.folder.Folder plugin="cloudbees-folder@6.1.2">
  <!-- ... -->
  <properties>
    <!-- ... -->
    <org.jenkinsci.plugins.ownership.model.folders.FolderOwnershipProperty plugin="ownership@0.10.0">
      <ownership>
        <ownershipEnabled>true</ownershipEnabled>
        <primaryOwnerId>admin</primaryOwnerId>
        <coownersIds class="sorted-set">
          <string>daspilker</string>
        </coownersIds>
      </ownership>
    </org.jenkinsci.plugins.ownership.model.folders.FolderOwnershipProperty>
    <!-- ... -->
  </properties>
  <!-- ... -->
</com.cloudbees.hudson.plugins.folder.Folder>

符合事实的
管理
达斯皮尔克

然后您可以使用a来创建带有作业DSL的配置。

最后,我可以通过将当前使用的名称作为
currentBuild
变量的
原因来实现这一点,然后使用
configure
步骤将其分配到文件夹,如下所示:

user = currentBuild.getCause(Cause.UserIdCause)
folder("MyFolder") {
    configure { folder ->
        folder / 'properties' / 'org.jenkinsci.plugins.ownership.model.folders.FolderOwnershipProperty' / 'ownership' {     
            primaryOwnerId(user.getUserId())
            ownershipEnabled('true')
        }
    }
}
如果有人能提供一个不那么冗长的方法来做这件事,我会把它标记为公认的答案