有没有简单的方法/ API来找出gocd服务器上的管道数量?

时间:2017-01-26 11:55:05

标签: go-cd

很抱歉这个简短的问题,但只是想知道是否有一个API来查找GoCD服务器上的管道数量。

5 个答案:

答案 0 :(得分:0)

Pipeline Groups API将在您进行一些JSON解析后为您提供所需的内容。

$ curl 'https://ci.example.com/go/api/config/pipeline_groups' \
  -u 'username:password'

返回:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

[
  {
    "pipelines": [
      {
        "stages": [
          {
            "name": "up42_stage"
          }
        ],
        "name": "up42",
        "materials": [
          {
            "description": "URL: https://github.com/gocd/gocd, Branch: master",
            "fingerprint": "2d05446cd52a998fe3afd840fc2c46b7c7e421051f0209c7f619c95bedc28b88",
            "type": "Git"
          }
        ],
        "label": "${COUNT}"
      }
    ],
    "name": "first"
  }
]

答案 1 :(得分:0)

您可以获取config.xml文件并解析它。 from the config repo或通过http。

答案 2 :(得分:0)

作为替代方案,您只需从服务器http://yourgoserver/go/cctray.xml获取cctray文件并解析它。

它包含有关所有管道(包括其阶段)的信息

答案 3 :(得分:0)

我建议使用yagocd

from yagocd import Yagocd

go = Yagocd(server='https://build.gocd.io')

# login as guest
go._session.get('https://build.gocd.io/go/plugin/interact/gocd.guest.user.auth.plugin/index')

print(len(list(go.pipelines)))

答案 4 :(得分:0)

是的,当然。您可以通过不同的方式获得所需的输出。从GoCD支持URL(https://example.com/go/api/support)获取管道数量和其他统计信息的第一种简单方法,该方法需要管理员特权。

如果用户没有管理员权限,则需要使用GoCD pipeline_groups API。以下命令应为您提供准确的结果,jqJSON processor

$ curl 'https://example.com/go/api/config/pipeline_groups' -u 'username:password' | jq -r '.[] | .pipelines[].name' | wc -l

注意::仍然 Go Administrator 用户可以获取实际的管道数量。