Как запросить конкретный номер сборки ветки из Jenkins JSON Remote Access API

В браузере для моей работы jenkins я выполняю следующий запрос.

lastStableBuild / api / json? pretty = true & tree = actions [buildsByBranchName [* [*]]]

Результаты вышеуказанного запроса

{
  "_class" : "hudson.model.FreeStyleBuild",
  "actions" : [
    {
      "_class" : "hudson.model.CauseAction"
    },
    {

    },
    {
      "_class" : "jenkins.metrics.impl.TimeInQueueAction"
    },
    {

    },
    {
      "_class" : "hudson.plugins.git.util.BuildData",
      "buildsByBranchName" : {
        "my-branch-name" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 587,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "***",
            "branch" : [
              {

              }
            ]
          },
          "revision" : {
            "SHA1" : "***",
            "branch" : [
              {

              }
            ]
          }
        },
        "my-other-branch-name" : {
          "_class" : "hudson.plugins.git.util.Build",
          "buildNumber" : 1373,
          "buildResult" : null,
          "marked" : {
            "SHA1" : "***",
            "branch" : [
              {

              }
            ]
          },
          "revision" : {
            "SHA1" : "***",
            "branch" : [
              {

              }
            ]
          }
        },

Я хотел бы иметь возможность сузить его до номера сборки, как если бы вы получили

/lastSuccessBuild/buildNumber

используя api, но я бы согласился только на все, что находится внутри ключа имени ветки, чтобы мне не приходилось перебирать все ветки и сравнивать имя. Я предполагаю, что могу сузить его больше там, где у меня указан "*", но не могу определить правильный синтаксис для использования.


person dooplenty    schedule 25.01.2017    source источник


Ответы (2)


Вместо этого я получил эту информацию отсюда.

tree=actions[lastBuiltRevision[*,branch[*]]]

В любом случае, если вам нужна информация о ветке из раздела buildsByBranchName дерева, вам придется запросить ее, как я сделал выше.

person Glen Bizeau    schedule 20.10.2017

Если вы не против получить ответ в формате xml, очень хорошо подойдет xpath.

Для URL:

/lastStableBuild/api/xml?xpath=//buildsByBranchName&wrapper=meep

Создает xml, который выглядит так:

<meep>
    <buildsByBranchName>
        ... 
    </buildsByBranchName>
</meep>

И будет заполнен buildsByBranchName (ПРИМЕЧАНИЕ: их может быть несколько, если есть несколько пультов git, следовательно, требуется оболочка) для указанной последней успешной сборки задания, указанного в URL-адресе . Вы можете заменить слово «meep» чем угодно, оно станет объектом-оболочкой для вновь созданного xml-объекта.

person Wimateeka    schedule 21.12.2017