工单的使用

在产品或项目开发过程中,协作者们使用Issue(即工单)来跟踪缺陷及进行相关讨论。管理Issue的系统称为BTS(Bug Tracking System,Bug跟踪系统)。当今具有代表性的BTS有RedmineTracBugZilla等。

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] 完成组件库的开发
- [ ] 设计指引编写
- [ ] 实现产品在线网站

这样一来,这段文字就会被标记成复选框列表的样式。这个复选框列表可以修改勾选或者取消状态。

Tasklist

通过提交信息操作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

CloseIssue

利用这个方法,每次提交并Push之后,就不必再到Gogs的工单中寻找相应的Issue手动Close,省去了不少麻烦。像这样,只要按照特定的格式描述提交信息,Gogs就会自动识别并处理。

CloseIssue