V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
imba97
V2EX  ›  分享创造

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

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

    功能简介

    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  
       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  
       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   ·   实用小工具   ·   3408 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 11:45 · PVG 19:45 · LAX 03:45 · JFK 06:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.