2016-11-11 51 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 –