[發明專利]代碼掃描、提交方法及代碼掃描服務器、客戶端和服務端在審
| 申請號: | 202111435466.0 | 申請日: | 2021-11-29 |
| 公開(公告)號: | CN114371870A | 公開(公告)日: | 2022-04-19 |
| 發明(設計)人: | 宮磊;王浩;潘松 | 申請(專利權)人: | 科大訊飛股份有限公司 |
| 主分類號: | G06F8/72 | 分類號: | G06F8/72;G06F8/70;G06F8/658 |
| 代理公司: | 北京磐華捷成知識產權代理有限公司 11851 | 代理人: | 卜璐璐 |
| 地址: | 230088 安徽*** | 國省代碼: | 安徽;34 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 代碼 掃描 提交 方法 服務器 客戶端 服務端 | ||
本發明公開一種代碼掃描、提交方法及代碼掃描服務器、客戶端和服務端,該代碼掃描方法包括:接收客戶端的預推送鉤子發送的第一代碼提交信息;接收服務端的預接收鉤子發送的第二代碼提交信息和代碼變動文件;基于第一代碼提交信息和第二代碼提交信息獲取與代碼變動文件相關聯的基線代碼,并基于代碼變動文件確定基線代碼中的修改部分;對基線代碼中的修改部分進行掃描,得到第一掃描結果;對代碼變動文件中的代碼進行掃描,得到第二掃描結果;將第一掃描結果和第二掃描結果進行比較,得到本次推送操作的掃描結果,預接收鉤子獲取本次推送操作的掃描結果,以用于確定本次推送操作是否成功。該方法能夠提高掃描效率和掃描精確性。
技術領域
本申請涉及計算機技術領域,具體地涉及一種代碼掃描、提交方法及代碼掃描服務器、客戶端和服務端。
背景技術
現有主流的代碼掃描方式都是基于整個代碼庫或者基于不同的分支之間的diff進行代碼掃描(diff同difference是不同的意思,此處diff表示代碼之間的差異)。通過調用靜態代碼掃描工具等工具進行代碼掃描,然后生成代碼掃描報告。
例如,一種常見的方案是通過定時任務或相似的方式,定期觸發代碼的全量掃描,該方式掃描不夠及時且全量掃描耗時非常嚴重。另一種常見的方案是在代碼已經提交到系統中之后,再進行代碼檢查,該方式是一種事后策略,代碼推送(push)成功后,再檢查代碼是否存在問題,此時問題代碼已經引入了代碼庫。再一種常見的方案是在代碼push操作中獲取增量代碼和目標分支進行合并成為完整的代碼,并進行代碼掃描操作,該方式相當于對完整的代碼庫進行掃描,和前述的第一種方案相比更為及時,但仍是掃描了全量的代碼,耗時嚴重。
發明內容
為了解決上述問題中的至少一個而提出了本申請。根據本申請一方面,提供了一種代碼掃描方法,所述方法包括:接收客戶端的預推送鉤子發送的第一代碼提交信息,所述第一代碼提交信息是用戶在所述客戶端針對本地提交的代碼發起推送操作后由所述預推送鉤子獲取的;接收服務端的預接收鉤子發送的第二代碼提交信息和代碼變動文件,所述第二代碼提交信息和所述代碼變動文件是所述預接收鉤子從所述客戶端接收到所述本地提交的代碼后獲取的;基于所述第一代碼提交信息和所述第二代碼提交信息獲取與所述代碼變動文件相關聯的基線代碼,并基于所述代碼變動文件確定所述基線代碼中的修改部分;對所述基線代碼中的修改部分進行掃描,得到第一掃描結果;將所述代碼變動文件中的代碼加入所述基線代碼中生成所述本地提交的代碼,對所述代碼變動文件中的代碼進行掃描,得到第二掃描結果;將所述第一掃描結果和所述第二掃描結果進行比較,得到本次推送操作的掃描結果。
其中,所述的客戶端包括但不限于linux操作系統(centOS、ubuntu等)、windows操作系統、macOS操作系統等各種可以提交代碼的介質。
在本申請的一個實施例中,所述方法還包括:在得到所述掃描結果后,調用所述預接收鉤子中開放的接口,以主動向所述預接收鉤子通知掃描完成,從而使得所述預接收鉤子獲取本次推送操作的掃描結果,以用于確定所述本次推送操作是否成功;或者在得到所述掃描結果后,所述預接收鉤子通過輪詢的方式獲取所述本次推送操作的掃描結果,以用于確定所述本次推送操作是否成功。
在本申請的一個實施例中,所述將所述第一掃描結果和所述第二掃描結果進行比較,得到本次推送操作的掃描結果,包括:對于所述第二掃描結果中的每個程序錯誤,確定所述程序錯誤所在的代碼行是否是相對于所述基線代碼的新增行;如果所述程序錯誤所在的代碼行不是相對于所述基線代碼的新增行,則確定所述程序錯誤不是新增的程序錯誤;如果所述程序錯誤所在的代碼行是相對于所述基線代碼的新增行,則確定所述程序錯誤為新增的程序錯誤,所有所述新增的程序錯誤作為本次推送操作的掃描結果。
在本申請的一個實施例中,當所述代碼變動文件中的代碼是所述基線代碼中不存在的新增代碼時,不存在所述修改部分和所述第一掃描結果,將所述第二掃描結果作為所述本次推送操作的掃描結果。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于科大訊飛股份有限公司,未經科大訊飛股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202111435466.0/2.html,轉載請聲明來源鉆瓜專利網。





