怎么做一个基于 AI 的 svn 代码扫描工具,给提交人发送邮件? - V2EX
请不要在回答技术问题时复制粘贴 AI 生成的内容
cleanery

怎么做一个基于 AI 的 svn 代码扫描工具,给提交人发送邮件?

  •  
  •   cleanery Aug 8, 2024 1503 views
    This topic created in 641 days ago, the information mentioned may be changed or developed.
    领导一拍脑袋让我做一个工具,每天扫描前一天 svn 上提交的代码(也就是说,历史提交的不管)
    生成报告,比如不好的代码,安全漏洞等,然后找到这个文件当天的提交人,给提交人和项目主管发邮件。

    这个我已经做了一个基于 sonarQube 的,
    因为 sonarQube 已经生成在线的报告了,所以我邮件里只写有几个漏洞几个问题,然后贴一个在线地址。

    但是领导一拍脑袋非要往 AI 上靠。就是要做一个基于大模型的扫描工具。
    就说现在有没有现成的这种 AI 工具了?

    没有的话,要怎么做?我能想到的是 openai 的结构化输出,把每个文件作为输入,生成类似 sonarQube 那样的 json 报告,但是吧,项目组内部用的工具,翻墙是不可能翻墙的。那种不知道哪里的小店卖的 API ,也是不敢用的。用开源大模型吧,又担心输出结构不稳定。

    ps:版本控制工具只能是 svn ,git 肯定是推不动的。
    4 replies    2024-08-12 08:56:38 +08:00
    dallaslu
        1
    dallaslu  
       Aug 8, 2024
    这个场合 svn 与 git 区别不大。svn 也可使用 hook 将修改的文件和 diff 输出,或者使用脚本 checkout 当日更改。

    也可以用国产的模型嘛,结构不稳定也没关系,容错,补充 promopt 重试。这家不稳定就换另一家,折腾一段时间,领导一拍大腿,可能这事儿就过去了
    cleanery
        2
    cleanery  
    OP
       Aug 9, 2024
    @dallaslu 行吧, 我先用月之暗面的 API 试试吧, 之前开通过它家的 API
    c466934322
        3
    c466934322  
       Aug 9, 2024
    大佬,我很好奇一个问题:如果开发只修改了一个注释,或者只是改了一个变量名(比如因为上一次拼错了字母),这种情况下,你们是整个文件建议还是增量建议?
    cleanery
        4
    cleanery  
    OP
       Aug 12, 2024
    @c466934322 还是针对整个文件, 增量建议那也太麻烦了. 这就是领导拍脑袋的东西, 我还要解析代码块, 我可不想这么做.
    About     Help     Advertise     Blog     API     FAQ     Solana     1134 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 23:05 PVG 07:05 LAX 16:05 JFK 19:05
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86