2016-11-11 115 views
2

使用python和REST API I遍历所有Quality门。无法通过REST API访问默认的Quality Gate

我总共有5个项目,有两个不同的质量门,名为“好”和“优秀”。

2使用“良好”质量门的项目和3使用“优秀”质量门的项目。 设置为“优秀”的3个项目正在使用默认质量门。

  • 当请求“优秀”项目的数量时,我得到答案0!

当从默认更改为“优秀”质量门我得到正确的数字:3!

我找不到默认质量门的API?

我发现没有办法发现默认网关的名称?

不应该将“默认”解析为“优秀”吗?

for gate in gates['qualitygates']: 

    qualId = gate['id'] 
    projs = sonarH.get_search_quality_gates(qualId) 
    theProjects = projs['results'] 

    print("Quality Gate Name: " + gate['name'] + " Count: " + str(len(theProjects))) 

输出:

Quality Gate Name: ST :: Excellent Quality Count: 0 
Quality Gate Name: ST :: Good Quality Count: 2 

回答

1

这是预期的行为。 Web服务返回与门关联的项目数量,但不包括使用它的项目的有效数量。出于这个原因,标记为默认值的门总是返回零。

另一种方法是通过使用Web服务api/qualitygates/get_by_project?projectKey=[the_key]来请求用于每个项目的质量门。请注意,此Web服务被标记为“内部”,因此可能会在未来版本中应用更改,而不会保持向后兼容性。

+0

试图访问这个api,但得到了“你正在寻找的页面不存在。” 访问“默认”网关的任何其他方式? –

+0

我提到的Web服务已在6.1版中引入:https://sonarqube.com/web_api/api/qualitygates/get_by_project –