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

2022-09-15 22:57:20 +08:00
 imba97

功能简介

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


git commit 写法

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

fix(): 一些已知的问题

report: 修复了头发太多的问题
report: 修复了没穿格子衫的问题

最后生成日报的格式是

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

示例


后言

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

老大:麻头皮


开发契机及使用方法

Github

3191 次点击
所在节点    分享创造
10 条回复
gogo88
2022-09-15 23:05:20 +08:00
这个实用啊
ferock
2022-09-15 23:11:14 +08:00
changlog 咯
imba97
2022-09-15 23:21:35 +08:00
@ferock 哦豁,原来这种格式是自动生成的,孤陋寡闻了
liufuseng
2022-09-16 07:01:06 +08:00
高级
ferock
2022-09-16 09:20:30 +08:00
@imba97 #3

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

嗯,经常看到那种格式的 tag
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
2022-09-16 13:51:27 +08:00
@Musong #7

哦豁,原来可以直接指定提交人和 no-merges
luchong
2022-09-17 17:32:10 +08:00
可能你还是没搞清楚上面领导想看什么,之所以 要日报 周报 月报 这种东西 ,是想看到 项目或系统的进展到了那一步,完成了什么。实现了什么,还有什么没完成,是否需要什么协助 等等,就这一个 git log ,我有时候每周 commit 不下三十次
imba97
2022-09-17 19:55:33 +08:00
@luchong 可能你还是没搞清楚上面程序功能是什么,我上个月提交了 113 次,但并不代表会有 113 条日报,因为这个程序有个功能是自定义前缀,只获取带前缀的。基本上我就是把已完成的、优化的、修复的问题写一写。我们并没有要求写未完成的、需要协助的,所以因人而异吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/880390

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX