基于 git log 的钉钉日报机器人(日报?写个屁) - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
imba97
V2EX    分享创造

基于 git log 的钉钉日报机器人(日报?写个屁)

  •  1
     
  •   imba97
    imba97 2022-09-15 22:57:20 +08:00 3613 次点击
    这是一个创建于 1121 天前的主题,其中的信息可能已经有所发展或是发生改变。

    功能简介

    pm2 跑在工作用的电脑上,到时间后会在项目目录执行 git log,找出带有自定义前缀的行,汇总后发到钉钉群


    git commit 写法

    一般我提交的时候会这么写,比如修复了个 bug

    fix(): 一些已知的问题 report: 修复了头发太多的问题 report: 修复了没穿格子衫的问题 

    最后生成日报的格式是

    某项目 ● 修复了头发太多的问题 ● 修复了没穿格子衫的问题 

    示例


    后言

    自从用它每天复制粘贴日报之后,我们老大都不怎么看日报了

    老大:麻头皮


    开发契机及使用方法

    Github

    10 条回复    2022-09-17 19:55:33 +08:00
    gogo88
        1
    gogo88  
       2022-09-15 23:05:20 +08:00 via iPhone
    这个实用啊
    ferock
        2
    ferock  
    PRO
       2022-09-15 23:11:14 +08:00 via iPhone
    changlog 咯
    imba97
        3
    imba97  
    OP
       2022-09-15 23:21:35 +08:00
    @ferock 哦豁,原来这种格式是自动生成的,孤陋寡闻了
    liufuseng
        4
    liufuseng  
       2022-09-16 07:01:06 +08:00 via Android
    高级
    ferock
        5
    ferock  
    PRO
       2022-09-16 09:20:30 +08:00 via iPhone
    @imba97 #3

    并不是自动的,和你的方式一样,commit 信息规范化以后,打 tag 的时候脚本生成的
    imba97
        6
    imba97  
    OP
       2022-09-16 09:33:15 +08:00
    @ferock #5

    嗯,经常看到那种格式的 tag
    Musong
        7
    Musong  
       2022-09-16 10:19:43 +08:00
    之前写过一个,发送到微信,备份到 notion 。用的
    const LOG_SPLIT_SEPARATOR: string = '[ThisIsASeparator,HAHAHA]';
    const commandString = await this.gitExec(`git log remotes/origin/master --after "${time}" --author "${author}" --pretty=format:"%an${LOG_SPLIT_SEPARATOR}%s${LOG_SPLIT_SEPARATOR}%cd" --no-merges`);
    const logArray = commandString.split('\n').map((element: string) => {
    if (!element || !element.length) return null;
    const data = element.split(LOG_SPLIT_SEPARATOR);
    if (!data || data.length !== 3) return null;
    const [name, title, date] = data;
    return {name, title, date};
    })
    拆提交记录,感觉比正则保险点

    后来没时间解决多分支提交记录合并问题就丢掉了
    imba97
        8
    imba97  
    OP
       2022-09-16 13:51:27 +08:00
    @Musong #7

    哦豁,原来可以直接指定提交人和 no-merges
    luchong
        9
    luchong  
       2022-09-17 17:32:10 +08:00
    可能你还是没搞清楚上面领导想看什么,之所以 要日报 周报 月报 这种东西 ,是想看到 项目或系统的进展到了那一步,完成了什么。实现了什么,还有什么没完成,是否需要什么协助 等等,就这一个 git log ,我有时候每周 commit 不下三十次
    imba97
        10
    imba97  
    OP
       2022-09-17 19:55:33 +08:00
    @luchong 可能你还是没搞清楚上面程序功能是什么,我上个月提交了 113 次,但并不代表会有 113 条日报,因为这个程序有个功能是自定义前缀,只获取带前缀的。基本上我就是把已完成的、优化的、修复的问题写一写。我们并没有要求写未完成的、需要协助的,所以因人而异吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5602 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 07:52 PVG 15:52 LAX 00:52 JFK 03:52
    Do have faith in what you're doing.
    ubao 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