[發明專利]用于持續集成過程中的靜態代碼質量分析方法及計算設備在審
| 申請號: | 202010127984.5 | 申請日: | 2020-02-28 |
| 公開(公告)號: | CN111414302A | 公開(公告)日: | 2020-07-14 |
| 發明(設計)人: | 張俊;梁美英 | 申請(專利權)人: | 天津車之家數據信息技術有限公司 |
| 主分類號: | G06F11/36 | 分類號: | G06F11/36 |
| 代理公司: | 北京思睿峰知識產權代理有限公司 11396 | 代理人: | 孟玉潔;謝建云 |
| 地址: | 300467 天津市生態城動漫中路126號動漫*** | 國省代碼: | 天津;12 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 用于 持續 集成 過程 中的 靜態 代碼 質量 分析 方法 計算 設備 | ||
1.一種用于持續集成過程中的靜態代碼質量分析方法,在計算設備中執行,包括步驟:
當開發者將分支代碼推送至代碼倉庫時,獲取所述分支代碼所屬的項目分支信息,將所述項目分支信息作為待掃描任務加入掃描隊列;
對于所述掃描隊列中的每一個待掃描任務,對該待掃描任務所對應的分支代碼進行質量分析,并存儲質量分析結果;
將分支代碼的質量分析結果即時反饋給相應的開發者。
2.如權利要求1所述的方法,其中,所述項目分支信息包括:項目名稱、分支名稱、開發者聯系方式、開發者名稱、項目地址、項目版本號中的至少一種。
3.如權利要求1或2所述的方法,其中,所述將所述項目分支信息作為待掃描任務加入掃描隊列的步驟包括:
判斷所述分支代碼所在的分支是否位于分支白名單中,若否,則將相應的項目分支信息作為待掃描任務加入掃描隊列。
4.如權利要求1-3中任一項所述的方法,其中,所述對于所述掃描隊列中的每一個待掃描任務,對該待掃描任務所對應的分支代碼進行質量分析的步驟包括:
當所述掃描隊列中的待掃描任務的數量小于等于預設的最大并發數量時,創建多個進程,每個進程對應于一個待掃描任務,所述多個進程并行地對相應的分支代碼進行質量分析;
當所述掃描隊列中的待掃描任務的數量大于所述最大并發數量時,創建最大并發數量個進程,所述最大并發數量個進程按照待掃描任務被加入掃描隊列的順序,并行地對待掃描任務所對應的分支代碼進行質量分析。
5.如權利要求1-4中任一項所述的方法,其中,所述對待掃描任務所對應的分支代碼進行質量分析的步驟包括:
確定所述分支代碼的語言類型;
根據所述語言類型,將所述待掃描任務的項目分支信息組裝成掃描命令;
執行所述掃描命令,根據所述語言類型所對應的分析規則來對所述分支代碼進行質量分析。
6.如權利要求5所述的方法,其中,根據所述分支代碼所在的項目文件夾的特征來確定所述分支代碼的語言類型。
7.如權利要求5或6所述的方法,其中,所述確定所述分支代碼的語言類型的步驟包括:
若分支代碼所在的項目文件夾中存在名稱為pom.xml的文件,則分支代碼的語言類型為Java;
若分支代碼所在的項目文件夾中,后綴名為.cs的文件的比例大于第一閾值,則分支代碼的語言類型為C#;
若分支代碼所在的項目文件夾中,后綴名為.py的文件的比例大于第二閾值,則分支代碼的語言類型為Python;
若分支代碼所在的項目文件夾中存在名為package.json的文件,則分支代碼的語言類型為JavaScript。
8.如權利要求1-7中任一項所述的方法,其中,所述質量分析結果包括一個或多個代碼質量問題,
所述將分支代碼的質量分析結果即時反饋給相應的開發者的步驟包括:
將本次質量分析結果中的代碼質量問題按照問題類型進行合并,生成本次待辦問題;以及
將本次待辦問題通過即時消息系統推送至開發者。
9.如權利要求1-8中任一項所述的方法,其中,在所述存儲質量分析結果的步驟之后,還包括步驟:
排查往期待辦問題是否在本次推送的分支代碼中已被修復,其中,所述往期待辦問題為本次質量分析之前存在的代碼質量問題;以及
將已被修復的代碼質量問題從往期待辦問題集合中移除。
10.如權利要求1-9中任一項所述的方法,還包括步驟:若本次質量分析失敗,則將分析失敗的消息和失敗原因即時反饋給開發者。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于天津車之家數據信息技術有限公司,未經天津車之家數據信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010127984.5/1.html,轉載請聲明來源鉆瓜專利網。





