2013-09-29 34 views
4

我已經閱讀了幾篇關於stackoverflow的文章,聲稱使用sonar作爲pre-commit分析工具是效率低下的,因爲它必須運行編譯運行其分析等。是否有可能通過預先提交鉤子來運行SonarQube分析

但是,對於聲納狀態手冊,有一個sonar.inclusions屬性用於設置要運行分析的文件列表。所以我正在考慮對已更改/修改爲預提交鉤子的文件進行分析,並在添加了太多問題的情況下提交失敗。

據我所知,有可能通過svnlook獲取修改和添加文件的列表;還有能力將聲納分析儀指向具體的.properties文件(例如,指向僅具有編碼規則和圈複雜度以及LCOM4度量的配置的文件)。

但是,我無法理解如何在預先提交的鉤子腳本中獲得聲納分析的結果,並提供分析結果的鏈接。這是否可能?是否有任何現實世界,或者至少是遠程相關的這種做法的例子?

在此先感謝。

回答

3

但是,我不明白如何獲得預先提交鉤子腳本中的聲吶分析結果並提供分析結果的鏈接。這是否可能?

從預先提交,沒有。至少不是如果你想完成你的提交。如果預提交返回任何東西到客戶端,提交被拒絕。

pre-commit只能用於檢查提交以驗證是否符合要求 - 檢查是否提供了提交消息,如果您與錯誤跟蹤器集成,請確保輸入了有效的錯誤ID ,也許做一些內置的基於路徑的授權無法處理的安全檢查。

全部鉤子腳本應儘可能短而高效。長期運行的預先提交尤其會阻止提交者和任何試圖在他後面提交的人。

爲了您的使用,一個post-commit鉤子可以工作(除了它不能發送反饋給客戶端,所以你不能夠提供一個URL),但更好的解決辦法是使用連續集成服務器。該工具將監視存儲庫中的更改並執行每次發生合格提交時告訴它的操作。使用該系統執行檢查併發送包含結果的電子郵件。

+0

事實上,融入CI過程是一個好主意,然而,我想要的是一個系統,由於編碼規則遵從而失敗。所以,基本上,如果分析沒有達到某個閾值 - 我不需要返回任何東西;但是,如果在承諾的代碼中存在3個關鍵問題,我想使提交失敗並將提交者鏈接到帶有結果的頁面。我知道這些腳本必須是輕量級的;如果他們不符合這個標準 - 好吧,但我想知道是否有可能實現這樣的行爲。 – jiallombardo

0

我不知道這個線程是否還活着,但工作在類似的情況,因此作出迴應。

Issues Report plugin可以生成一個可以被解析的html(一個單獨的過程 - 我使用shell腳本和正則表達式,作爲jenkins工作的一部分)來確定是否報告了新問題,如果是,可以返回失敗。

相關問題