如何在 Jenkins 2 多分支管道中添加职位描述?

How can I add job description in Jenkins 2 multi-branch pipeline?

我在 Jenkins 2 中有一个多分支管道作业,连接到 GitHub 存储库(可用 here)。 GitHub 存储库中的每个拉取请求都会在 Jenkins 中创建一个新的 "job",但作业会从拉取请求编号继承其名称(即作业称为 PR-1、PR-2 等)这在詹金斯语境中毫无意义。 是否可以(以及如何)配置作业或 Jenkinsfile 以向每个拉取请求添加作业描述?

以下是我如何根据拉取请求的内容设置职位描述:

if (env.BRANCH_NAME.startsWith('PR')) {
 def resp = httpRequest url: "https://api.github.com/repos/xxx/yyy/pulls/${env.BRANCH_NAME.substring(3)}"
  def ttl = getTitle(resp)
  def itm = getItem(env.BRANCH_NAME)
  itm.setDisplayName("PR '${ttl}'")
 }
}

@NonCPS
def getItem(branchName) {
  Jenkins.instance.getItemByFullName("sonar-openedge/${branchName}")
}

@NonCPS
def getTitle(json) {
  def slurper = new groovy.json.JsonSlurper()
  def jsonObject = slurper.parseText(json.content)
  jsonObject.title
}

这允许直接从职位概述页面获得职位描述(如本例所示:https://ci.rssw.eu/job/sonar-openedge/

完整的提交和 Jenkinsfile 可在此处获得: https://github.com/Riverside-Software/sonar-openedge/commit/e2c76ca58b812e4ceac65c406f0b2aae9fbf3f5f