购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

GitHub的Issues、Labels和Milestones

GitHub的issue可以跟踪任务、功能改进和错误。它们高度集中,并有历史的时间轴。issue可以链接到提交、拉取请求和其他问题。issue是管理工程团队工作的良好解决方案。

创建issue

在某个存储库中依次选择Issues|New Issue可创建一个新issue。issue的结构是标题和支持Markdown的正文(见图2-4)。

工具栏可以帮助格式化文本。除了普通的格式化(例如标题、粗体和斜体文本、列表、链接和图片),还有一些值得注意的特点:

表情符号: 可以在Markdown中添加各种各样的表情符号。例如:+1:( )、:100:( )以及GitHub典型的:shipit: squirrel。读者可以在链接https://gist.github.com/rxaviers/7360908#file-gistfile1-md找到完整的列表。

图2-4 创建一个新的issue

提及: 可以通过GitHub名称提及个别成员或整个团队。只需要按下@并开始输入。从列表中选择人员或团队。他们会收到通知,并且提及将显示为指向被提及的个人或团队的个人资料的链接。

引用: 通过按下#键并从列表中选择项目,可以引用其他issue、拉取请求或讨论。

任务列表: 任务列表是一个包含子任务的列表,用于显示issue的进度。列表中的任务可以转换为issue,因此可以用于创建工作项的嵌套层次结构。未完成的任务以-[]开头。如果已完成,中间加上x,即表示为-[x]。

源代码: 可以在Markdown中添加带有语法高亮的源代码。只需使用```来打开和关闭代码块。语法高亮由Linguist(https://github.com/github/linguist)完成,大多数语言都被支持。

Markdown

Markdown是一种非常流行的轻量级标记语言。与JSON或HTML不同,它基于单行格式化文本,不具有开放和关闭的标签或括号。这就是为什么它非常适合与Git一起进行版本控制,并与拉取请求协作进行更改。这也是YAML作为可机器读取文件的事实标准的原因。Markdown是可读性好的文件。在DevOps团队中,一切(图表、架构、设计和概念文档、配置文件和基础设施)都是代码。这意味着使用YAML、Markdown或两者混合使用。

如果读者还没有学习过Markdown,现在是时候开始学习它了。许多团队同时使用Markdown与拉取请求。由于大多数工作管理解决方案也支持Markdown,它几乎无处不在。Markdown具有非常简单的语法,易于学习。使用几次后,便会得心应手。

读者可以随时切换到预览模式以查看Markdown的输出(见图2-5)。

图2-5 在新issue中预览Markdown

读者可以访问链接https://guides.github.com/features/mastering-markdown/获取GitHub上Markdown的介绍。

提示:

经常使用的文本可以保存至常用语。按“Ctrl+.”组合键(在Windows/Linux环境下)或“Cmd+.”组合键(在Mac环境下),然后从列表中选择回复或创建一个新的保存的回复。要了解更多信息,请参见https://docs.github.com/en/github/writing-on-github/working-with-saved-replies。

在issue上进行协作

一旦issue被创建,可以随时添加评论。可以将多达10人分配至该issue,并对issue应用标签进行分类。所有更改都显示为issue历史中的事件(见图2-6)。

图2-6 编辑issue

issue包含一个任务列表,用于显示issue的进度。读者可以将每个任务转换为一个单独的issue,然后将其链接到当前issue。如果单击“Open covert to issue”按钮(请注意,将鼠标悬停在图2-6中可见),任务将被转换为一个新的issue,并显示为链接。如果单击链接并打开issue,可以看到该issue在另一个issue中被跟踪(见图2-7)。

图2-7 创建issue层次结构

这样可以创建灵活的工作层次结构,并将工作拆分成更小的任务。

issue待办清单

issue列表面页不是一个真正的待办清单,因为它不能通过拖放排序。但它具有非常高级的语法,可进行筛选和排序。应用的每个筛选器都会作为关键字文本添加到搜索字段中(见图2-8)。

图2-8 筛选和排序issue列表

在概述中,可以看到任务的进度和标签,还可以看到与issue相关联的拉取请求。

里程碑

里程碑是一种将问题分组的方式。一个issue只能分配至一个里程碑。里程碑通过关闭的问题数与总问题数的比例来衡量进度。里程碑有一个标题,一个可选的截止日期和一个可选的描述(见图2-9)。

图2-9 使用里程碑规划issue

里程碑是将issue分组以便在特定目标日期发布版本的好方法。它们还可以用于将不属于一个发布版本的问题分组在一起。

固定issue

用户可以将最多三个issue固定到存储库中。这些issue会显示在issue列表的顶部(见图2-10)。

图2-10 固定issue

固定issue是向其他贡献者或新团队成员传达重要信息的好方法。

issue模板

用户可以为issue配置不同的模板,给出预定义的内容。如果用户创建了一个新的issue,他们可以从列表中选择模板(见图2-11)。

图2-11 issue模板

用户可以在存储库中依次单击Settings|Options|Issues|Set up templates来激活issue模板。可以为错误、功能或自定义模板选择一个基本模板。这些模板是存储在存储库中的文件,位于.github/ISSUE_TEMPLATE下。单击“Propose changes”并提交文件到存储库。一旦模板文件在存储库中,用户就可以直接在那里编辑或删除它,还可以添加新的模板文件,没有必要从设置中进行“添加新模板文件”的操作。

模板可以是Markdown文件(.md)或YAML文件(.yml)。Markdown包含一个指定名称和描述的头文件。它还可以设置标题、标签和指派人的默认值。以下是Markdown模板的示例。

如果单击Issues|New Issue,可以选择模板并点击“Get started”按钮,这将会生成一个使用模板预设值填充的新issue,如图2-12所示。

图2-12 一个Markdown问题模板

使用YAML模板,可以定义具有文本框、下拉框和复选框的完整表单。可以配置控件并将字段标记为必填。一个示例表格的定义如下。

结果如图2-13所示。

图2-13 一个YAML issue模板

读者可以访问链接https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms获取更多关于YAML issue模板的信息。

用户可以通过将config.yml文件添加到.github/ISSUE_TEMPLATE中来自定义选择issue模板的对话框,也可以选择是否支持空问题并添加其他行。

结果与图2-11相同,附加的链接显示为“Open”按钮。

注意

在撰写本书时,YAML问题模板仍处于测试阶段,因此可能会发生变化。 oBZmDD5GMMDxZAtYkCprpO+eycI8xdz1ySHrLt5ZjeqjbErYVwW+qpyHZu4CSZgX

点击中间区域
呼出菜单
上一章
目录
下一章
×