Use Issue
在产品或项目开发过程中,协作者们使用Issue(即工单)来跟踪缺陷及进行相关讨论。管理Issue的系统称为BTS(Bug Tracking System,Bug跟踪系统)。当今具有代表性的BTS有Redmine、Trac、BugZilla等。
Gogs自身也加入了BTS的功能。在Gogs上,可以将它作为协作者之间的交流工具。遇到下面几种情况时,各位就可以使用这个功能。
列出要实现的需求
事先要实施的任务
发现软件的BUG并报告
项目相关的询问、探讨
Issue除需求和缺陷管理之外还有许多其他用途。作为Gogs的功能之一,我们来学习Issue的一些简单用法。
简洁且表现力丰富的描述方法#
Gogs的Issue及评论可以使用Markdown语法进行描述,从而获得丰富的表现力。比如像下图1那样描述,然后点击Preview,就可以看到图2中那种标记后的效果。
注意:“#”和后面的文字之间要有一个空格,否则无效
Gogs 使用 blackfriday 处理库,它是 Go 语言的 Markdown 文本处理库。特点:兼容性强、通用扩展、安全、快速、线程安全、最小化依赖、标准兼容性。
Markdown语法的相关帮助:
注意:有些特性,如公式、流程图等在blackfriday中尚未支持。
1. 语法高亮#
假设我们像下面这样,先指定语言再描述代码。
```js
function fancyAlert(arg) {
if(arg) {
$.facebox({div:'#foo'})
}
}
```
这样一来,代码就会自动如上图所示被语法高亮。
2. 添加图片#
Github添加图片十分简单,只需要将图片拖拽到文本框中便可以粘贴图片,但在Gogs上稍微麻烦一点。 1. 如果在文章的最后面附加图片,只需要将图片拖拽到虚线框里面即可; 2. 如果需要在文字里嵌入图片,有两种处理方式:
将图片上传图床网站(推荐七牛云),然后在文章中引用图片外链(建议方式)。
如果你是项目协作者,可以把图片上传到仓库的某个路径,然后再通过相对路径引用。
3. 添加标签以便整理#
如果你是项目协作者,Issue可以通过添加标签(Label)来进行整理。添加标签后,Issue的标题后面就会显示标签(图4)。点击标签,还可以只显示该类标签的Issue。
App-design有以下几种标签类型:
建议:本质上不影响正常运行,但可以有所改进的产品建议
无效的:开发人员认为该Bug不是一个缺陷
无需修复:不处理,该Bug无足轻重
欢迎贡献:已经确认要实现的特性,需要社区帮手就加上这个标签
缺陷:使用过程中发现的Bug
讨论:针对产品的讨论
重复的:这个问题别人已经发现了,重复的Bug
问题:有任何问题用这个
4. 添加里程碑以便管理#
除了标签外,还可以添加里程碑来管理Issue。通过下图可以看出,项目距离下一个版本还有2个Issue需要实施,整体的33%已经实施完毕并Close。从这里的链接我们可以看出剩余的Issue。
5. Tasklist语法#
我们可以使用任务列表语法来标注某些任务的完成情况。首先试着按下面的格式进行描述。
# 本月要做的任务
- [x] 完成组件库的开发
- [ ] 设计指引编写
- [ ] 实现产品在线网站
这样一来,这段文字就会被标记成复选框列表的样式。这个复选框列表可以修改勾选或者取消状态。
通过提交信息操作Issue#
Gogs像GitHub一样,只要按照特定的格式描述提交信息,就可以像一般BTS带有的功能那样对Issue进行操作。
Close Issue#
如果一个处于Open状态的Issue已经处理完毕,只要在对应的代码提交中以下列任意一种格式描述提交信息,对应的Issue就会被Close。
fix #7
fixes #7
fixed #7
close #7
closes #7
closed #7
resolve #7
resolves #7
resolved #7
利用这个方法,每次提交并Push之后,就不必再到Gogs的工单中寻找相应的Issue手动Close,省去了不少麻烦。像这样,只要按照特定的格式描述提交信息,Gogs就会自动识别并处理。