基于SonarQube的在線代碼審核方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)軟件應(yīng)用技術(shù)領(lǐng)域,特別涉及一種基于SonarQube的在線代碼審核方法和系統(tǒng)。
【背景技術(shù)】
[0002]代碼審核指的是對應(yīng)用程序源代碼進(jìn)行系統(tǒng)性檢查的工作。它的目的是為了找到并且修復(fù)應(yīng)用程序在開發(fā)階段存在的一些漏洞或者程序邏輯錯(cuò)誤,避免程序漏洞被非法利用給企業(yè)帶來不必要的風(fēng)險(xiǎn)。目前,代碼審核通常采用人工審核方式,即當(dāng)開發(fā)人員寫好代碼后,需要讓別人來審核一下他的代碼,可以審查代碼的風(fēng)格、邏輯、思路等,找出問題,以及改進(jìn)代碼,此過程不僅需要人工分辨代碼的類型而且需要人工審核代碼,這將會(huì)耗費(fèi)大量的人力物力。
【發(fā)明內(nèi)容】
[0003]本發(fā)明提供一種基于SonarQube的在線代碼審核方法,解決了人工審核的問題,使得多種項(xiàng)目來源類型代碼實(shí)現(xiàn)在線審核,降低代碼審核成本消耗。
[0004]為了達(dá)到上述目的,本發(fā)明是通過如下技術(shù)方案實(shí)現(xiàn)的:
[0005]基于SonarQube的在線代碼審核的方法,其特征在于,在代理節(jié)點(diǎn)中保存各個(gè)項(xiàng)目的源代碼及其對應(yīng)的URL地址,包括以下步驟:
[0006]WEB應(yīng)用根據(jù)用戶注冊,存儲(chǔ)項(xiàng)目信息;所述WEB應(yīng)用接收用戶發(fā)送的獲取項(xiàng)目列表請求,從代理節(jié)點(diǎn)獲取代理節(jié)點(diǎn)生成的項(xiàng)目源代碼對應(yīng)的代理節(jié)點(diǎn)URL地址,并發(fā)給用戶;而代理節(jié)點(diǎn)接收用戶根據(jù)代理節(jié)點(diǎn)URL地址發(fā)送的審核代碼請求,該請求中包括需要審核的目標(biāo)源代碼信息,并將目標(biāo)源代碼推送到SonarQube代碼質(zhì)量管理平臺(tái)審核;之后,所述代理節(jié)點(diǎn)獲得所述SonarQube代碼質(zhì)量管理平臺(tái)的所述源代碼的審核結(jié)果,并返回執(zhí)行結(jié)果給用戶。
[0007]WEB應(yīng)用根據(jù)用戶注冊,存儲(chǔ)項(xiàng)目信息包括:所述WEB應(yīng)用接收用戶發(fā)來的注冊審核項(xiàng)目信息,所述注冊審核項(xiàng)目信息包括:項(xiàng)目名稱、項(xiàng)目來源和項(xiàng)目類型;WEB應(yīng)用存儲(chǔ)注冊審核項(xiàng)目信息,并發(fā)送項(xiàng)目檢索請求給代理節(jié)點(diǎn);所述代理節(jié)點(diǎn)根據(jù)項(xiàng)目檢索請求中的項(xiàng)目來源的信息,判斷是否能夠檢索到對應(yīng)的源代碼,如果是,則所述代理節(jié)點(diǎn)通知WEB應(yīng)用檢索成功,WEB應(yīng)用存儲(chǔ)項(xiàng)目信息,并向用戶返回注冊成功的信息;
[0008]否則,
[0009]所述代理節(jié)點(diǎn)通知WEB應(yīng)用檢索失敗,WEB應(yīng)用向用戶返回注冊失敗的信息,結(jié)束當(dāng)前流程;
[0010]所述項(xiàng)目來源信息包括:源代碼的URL路徑、用戶名及密碼和項(xiàng)目來源類型。
[0011]WEB應(yīng)用接收用戶發(fā)送的獲取項(xiàng)目列表請求,并從代理節(jié)點(diǎn)獲取項(xiàng)目源代碼對應(yīng)的代理節(jié)點(diǎn)URL地址,并發(fā)給用戶,進(jìn)一步包括:所述WEB應(yīng)用組織代理節(jié)點(diǎn)返回用戶所有項(xiàng)目對應(yīng)的代理節(jié)點(diǎn)URL地址形成項(xiàng)目列表,提供給用戶。
[0012]代理節(jié)點(diǎn)將目標(biāo)源代碼推送到SonarQube代碼質(zhì)量管理平臺(tái)審核包括:代理節(jié)點(diǎn)根據(jù)所述項(xiàng)目類型,為項(xiàng)目生成對應(yīng)的配置文件,并調(diào)用SonarQube相關(guān)接口,所述代理節(jié)點(diǎn)通過配置文件將目標(biāo)源代碼推送到SonarQube代碼質(zhì)量管理平臺(tái);配置文件為SonarQube代碼質(zhì)量管理平臺(tái)與代理節(jié)點(diǎn)建立連接并進(jìn)行源代碼審核所需要的文件。
[0013]在WEB應(yīng)用獲取源代碼審核結(jié)果,并提供給用戶查看之后,進(jìn)一步包括:SonarQube代碼質(zhì)量管理平臺(tái)接收用戶針對已被審核過的項(xiàng)目發(fā)送的查看代碼審核結(jié)果請求,SonarQube代碼質(zhì)量管理平臺(tái)將保存的根據(jù)配置文件生成的代碼審核結(jié)果返回給用戶。
[0014]基于SonarQube的在線代碼審核系統(tǒng)包括:WEB應(yīng)用、代理節(jié)點(diǎn)和SonarQube代碼質(zhì)量管理平臺(tái),其中,所述WEB應(yīng)用,根據(jù)用戶注冊,存儲(chǔ)項(xiàng)目信息,接收用戶發(fā)送的獲取項(xiàng)目列表請求,所述WEB應(yīng)用從代理節(jié)點(diǎn)獲取每一個(gè)項(xiàng)目的源代碼對應(yīng)的URL地址,并發(fā)給用戶;代理節(jié)點(diǎn),保存各個(gè)項(xiàng)目的源代碼及其對應(yīng)的URL地址,接收用戶根據(jù)URL地址發(fā)送的審核代碼請求,該請求中包括需要審核的目標(biāo)源代碼信息;將目標(biāo)源代碼推送到SonarQube代碼質(zhì)量管理平臺(tái)審核;獲得所述SonarQube代碼質(zhì)量管理平臺(tái)的所述源代碼的審核結(jié)果,并返回執(zhí)行結(jié)果給用戶AonarQube代碼質(zhì)量管理平臺(tái),用于接收代理節(jié)點(diǎn)發(fā)送的代碼審核指令,返回代碼審核結(jié)果。
[0015]其中,WEB應(yīng)用包括:WEB應(yīng)用向用戶返回注冊成功或失敗的信息;代理節(jié)點(diǎn)接收WEB應(yīng)用審核源代碼請求,檢出項(xiàng)目源代碼至所述代理節(jié)點(diǎn)生成對應(yīng)的配置文本,運(yùn)行代碼審核指令,通過配置文本調(diào)用SonarQube代碼質(zhì)量管理平臺(tái)相關(guān)接口,將源代碼推送到SonarQube代碼質(zhì)量管理平臺(tái),接收源代碼審核結(jié)果;SonarQube代碼質(zhì)量管理平臺(tái),進(jìn)一步用于接收用戶針對已被審核過的項(xiàng)目發(fā)送的查看代碼審核結(jié)果請求,所述SonarQube代碼質(zhì)量管理平臺(tái)將保存的代碼審核結(jié)果返回給用戶。
[0016]可見,本發(fā)明具有如下優(yōu)點(diǎn):
[0017]WEB應(yīng)用接收客戶端注冊審核項(xiàng)目,所述注冊審核項(xiàng)目包括:用戶向WEB應(yīng)用提供項(xiàng)目名稱、項(xiàng)目來源和項(xiàng)目類型;代理節(jié)點(diǎn)接收所述客戶端通過所述WEB應(yīng)用發(fā)送的審核代碼的請求,并自動(dòng)配置審核項(xiàng)目代碼類型;所述代理節(jié)點(diǎn)運(yùn)行審核指令,并將源代碼推送到SonarQube代碼質(zhì)量管理平臺(tái)審核;所述代理節(jié)點(diǎn)獲得SonarQube代碼質(zhì)量管理平臺(tái)的源代碼的審核結(jié)果,并返回執(zhí)行結(jié)果給所述客戶端。這一過程完成了代碼審核自適配的問題,同時(shí)避免了人工審核代碼所帶來的問題,減少了人工審核所需付出的審核代價(jià),提高了代碼審核效率。
【附圖說明】
[0018]圖1為本發(fā)明實(shí)施例基于SonarQube在線代碼審核方法的基本流程圖。
[0019]圖2為本發(fā)明實(shí)施例1中基于SonarQube在線代碼審核方法的流程圖。
[0020]圖3為本發(fā)明實(shí)施例2中基于SonarQube在線代碼審核方法的流程圖。
【具體實(shí)施方式】
[0021]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0022]SonarQube是一個(gè)用于代碼質(zhì)量管理的開源平臺(tái),用于管理源代碼的質(zhì)量。其通過插件形式,可以支持包括java,C#,C/C++,PL/SQL,Cobol, JavaScrip, Groovy等二十幾種編程語言的代碼質(zhì)量管理與檢測。
[0023]本發(fā)明實(shí)施例提供了一種基于SonarQube的在線代碼審核方法,參見圖1,該方法包括:
[0024]步驟101:WEB應(yīng)用根據(jù)用戶注冊,存儲(chǔ)項(xiàng)目信息;
[0025]所述項(xiàng)目信息包括:項(xiàng)目名稱、項(xiàng)目來源和項(xiàng)目類型;
[0026]步驟102:WEB應(yīng)用接收用戶發(fā)送的獲取項(xiàng)目列表請求,所述WEB應(yīng)用從代理節(jié)點(diǎn)獲取每一個(gè)項(xiàng)目的源代碼對應(yīng)的URL地址,并發(fā)給用戶;
[0027]步驟103:所述代理節(jié)點(diǎn)接收用戶根據(jù)URL地址發(fā)送的審核代碼請求,該請求中包括需要審核的目標(biāo)源代碼信息;
[0028]步驟104:所述代理節(jié)點(diǎn)將目標(biāo)源代碼推送到SonarQube代碼質(zhì)量管理平臺(tái)審核;
[0029]步驟105:所述代理節(jié)點(diǎn)獲得所述SonarQube代碼質(zhì)量管理平臺(tái)的所述源代碼的審核結(jié)果,并返回執(zhí)行結(jié)果給用戶。
[0030]本發(fā)明將通過一個(gè)具體實(shí)施例來詳細(xì)說明基于SonarQube的在線代碼審核方法。
[0031]WEB應(yīng)用接收用戶發(fā)來的注冊審核項(xiàng)目信息,所述注冊審核項(xiàng)目信息包括:項(xiàng)目名稱、項(xiàng)目來源和項(xiàng)目類型;WEB應(yīng)用存儲(chǔ)注冊審核項(xiàng)目信息,并發(fā)送項(xiàng)目檢索請求給代理節(jié)點(diǎn);所述代理節(jié)點(diǎn)根據(jù)項(xiàng)目檢索請求中的項(xiàng)目來源的信息,判斷是否能夠檢索到對應(yīng)的源代碼,如果是,則所述代理節(jié)點(diǎn)通知WEB應(yīng)用檢索成功,WEB應(yīng)用存儲(chǔ)項(xiàng)目信息,并向用戶返回注冊成功的信息;所述代理節(jié)點(diǎn)則為該項(xiàng)目建立對應(yīng)的URL地址和配置文件;所述代理節(jié)點(diǎn)發(fā)送審核代碼請求,該請求中包括需要審核的目標(biāo)源代碼信息,并將目標(biāo)源代碼推送到SonarQube代碼質(zhì)量管理平臺(tái)審核。參見圖2,在本發(fā)明實(shí)施例1中,實(shí)現(xiàn)基于SonarQube在線審核代碼審核的過程包括如下步驟:
[0032]步驟201:WEB應(yīng)用接收用戶發(fā)來的注冊審核項(xiàng)目信息,所述注冊審核項(xiàng)目信息包括:項(xiàng)目名稱、項(xiàng)目來源和項(xiàng)目類型;
[0033]步驟202:WEB應(yīng)用存儲(chǔ)注冊審核項(xiàng)目信息,并發(fā)送項(xiàng)目檢索請求給代理節(jié)點(diǎn);
[0034]本步驟中,項(xiàng)目檢索請求中攜帶項(xiàng)目來源的信息,項(xiàng)目來源信息包括:源代碼URL路徑、用戶名及密碼和來源類型。其中,用戶名和密碼是代理節(jié)點(diǎn)獲取源代碼所需的用戶名和密碼。
[0035]步驟203:代理節(jié)點(diǎn)根據(jù)項(xiàng)目檢索請求中的項(xiàng)目來源的信息,判斷是否能夠檢索到對應(yīng)的源代碼,如果是,則執(zhí)行步驟204,否則,執(zhí)行步驟205。
[0036]步驟204:代理節(jié)點(diǎn)通知WEB應(yīng)用檢索成功,并為該項(xiàng)目建立對應(yīng)的代理節(jié)點(diǎn)URL地址以及審核代碼所需的對應(yīng)的配置文件,WEB應(yīng)用向用戶返回注冊成功的信息,執(zhí)行步驟206 ;
[0037]所述配置文件是由代理節(jié)點(diǎn)根據(jù)項(xiàng)目信息建立,其為SonarQube代碼質(zhì)量管理平臺(tái)與代理節(jié)點(diǎn)建立連接并進(jìn)行源代碼審核所需要的文件。
[0038]步驟205:代理節(jié)點(diǎn)通知WEB應(yīng)用檢索失敗,WEB應(yīng)用向用戶返回注冊失敗的信息,結(jié)束當(dāng)前流程。
[0039]用戶可通過上述步驟201到步驟205可完成更多項(xiàng)目的注冊。
[0040]步驟206:WEB應(yīng)用接收用戶發(fā)送的獲取項(xiàng)目列表請求,所述WEB應(yīng)用從代理節(jié)點(diǎn)獲取代理節(jié)點(diǎn)為項(xiàng)目生成的對應(yīng)的URL地址,并發(fā)給用戶;
[0041]WEB應(yīng)用組織所有項(xiàng)目對應(yīng)的URL形成項(xiàng)目列表,提供給用戶。
[0042]該項(xiàng)目列表包含用戶所有的注冊項(xiàng)目。用戶獲取項(xiàng)目列表后,可針對項(xiàng)目列表中任一項(xiàng)目向代理節(jié)點(diǎn)發(fā)送審核代碼請求并執(zhí)行步驟207。
[0043]步驟207:代理節(jié)點(diǎn)接收用戶根據(jù)URL地址發(fā)送的審核代碼請求,該請求中包括需要審核的目標(biāo)源代碼信息。
[0044]步驟208:代理節(jié)點(diǎn)將目標(biāo)源代碼推送到SonarQube代碼質(zhì)量管理平臺(tái)審核;
[0045]代理節(jié)點(diǎn)根據(jù)所述項(xiàng)目類型,為項(xiàng)目生成對應(yīng)的配置文件,并調(diào)用SonarQube相關(guān)接口,所述代理節(jié)點(diǎn)通過配置文件將目標(biāo)源代碼推送到SonarQube代碼質(zhì)量管理平臺(tái);
[0046]配置文件為SonarQube代碼質(zhì)量管理平臺(tái)與代理節(jié)