从代码里取todo信息提交到Gitlab

最近写了个小工具:gitlab_todo (https://github.com/liubin0329/gitlab_todo)。

这个工具的主要功能就是根据代码里写的注释,找出todo信息,在提交代码的时候,将新增加的todo,作为issue添加到Gitlab该项上的issue列表里。同时添加todo作为标签,将assignee设为自己。

当然,也支持在删除todo注释的时候,将相应的todo删除。

本工具不保存任何数据信息(比如todo和issue id的对应关系等),也不修改任何commit或者代码信息。所有信息匹配都是通过todo内容的字符串(todo:后紧跟的字符串,以及issue里title的值)。

1. 安装方法:

1.1. 将todo.rb拷贝到$PATH里,然后增加git的hook

$ cat .git/hooks/post-commit
todo.rb

如果不想把todo.rb放到PATH里,也可以在post-commit里写上绝对路径。

1.2. 设置gitlab的地址和private token

export GITLAB_HOST = …
export GITLAB_TOKEN = …

然后,在代码的注释里,按照这样的格式写todo就可以了:

[TODO: xxxxx ]

其中,中括号和大写的TODO加冒号必不可少,xxx是todo内容,也是issue的title

2. 截图

 

2.1. 在代码里添加注释并提交

从diff可以看出,增加了注释并且包含TODO关键字

git commit后,会将此todo加入到issue里。

在代码里添加注释并提交

2.2. Gitlab的web界面确认

下面就可以在Gitlab的web界面中看到,代码里的todo被作为一个issue创建了,且加上了todo的标签。
从gitlab的web界面确认

2.3. 删除todo

当我们完成了一个todo之后,即可将此todo的注释删除。

在代码里删除,用git diff确认:

在代码里删除todo

提交确认,打印出红色部分即表示该issue被close了。

git提交

在Gitlab界面上确认,此issue已经是closed状态了。

在Gitlab界面上确认

 

— 全文完 —



Posted in Ruby, Tech Tagged with: , , ,

无觅相关文章插件,快速提升流量