前言

Emacs中使用Forge管理GitHub Pull Request中,我聊到了在 Emacs 中使用 Forge 管理 GitHub Pull Request ,今天来讲一讲怎么管理 GitHub Issue

使用

使用之前需要配置 GitHub 相关信息,在Emacs中使用Forge管理GitHub Pull Request中有说过,不了解的可以前往查看,这里不再赘述。

Forge 是集成在 Magit 中的,所以可以在 Magit Status buffer 中使用 @ 打开 Forge 菜单,这是使用 Forge 的入口。

把仓库加入 Forge 数据库

在使用之前需要让 Froge 识别到你的仓库,所以使用之前要通过 Forge 菜单把仓库管理起来。

使用 @ 打开 menu 之后,按下 a ,默认会把当前仓库的远程 URL 加入 Forge 数据库。

拉取topics

先来解释一下 topics ,它包括了 Pull RequestIssue

Forge 中使用快快捷键 @ f f 来拉取所有的 Pull RequestIssue

拉取成功之后你就会在 Magit Status buffer 中看到 Pull RequestIssue 这两个标题。

查看 Issues 列表

有些时候我们只想看 Issue 这时候你可以使用 @ l i 打开一个新的 buffer 查看

buffer 中使用 o 可以在浏览器中打开这个 Issue

创建 Issue

讲完了怎么浏览 Issue ,我们就来了解怎么创建 Issue

我们回到 Magit Status buffer 按下 @ c i 创建一个 Issue ,你可以使用 markdown 的语法来编写。

1
2
3
4
5
#This is Issue title

create Issue from emacs

Refers #1

使用 #数字 可以关联对应的 Issue ,编写完成后使用 C-c C-c 来完成创建, Forge 会自动把 Issue 推到 GitHub

编辑 Issue

我们创建好 Issue 之后发现有些地方写的不对,需要更改,这时候就需要按下回车键进入 Issue 详情页,然后才能进行更改。

编辑 Issue 主要编辑 TitleStateLabelAssigneescomment ,我们一一说明如何操作。

创建 comment

Issue 详情可以通过 C-c C-n 来创建 comment ,这里也是支持 markdown 的。使用 C-c C-c 完成编写,如果你不想要了,使用 C-c C-k 取消这次编写即可。

删除 Commnet

如果你发现有一条 comment 你不想要了可以使用 C-c C-k 来删除这条 comment 。似乎在 GitHub 上好像还没有删除这个功能。

编辑Label

讲完了如何创建、删除和评论 Issue ,接下来讲设置 IssueLabel

同样要进入 Issue 详情页,我们把光标移动到 Label 上,按下 C-c C-e ,然后在 minibuffer 中输入标签,可以使用 TAB 补全。多个用 分割。

常用标签有 bugdocumentationduplicateenhancementgood first Issuehelp wantedinvalidquestion 这些,你也可以自定义。

编辑完之后如下所示

编辑 Assignees

在开发中你可能需要把一个功能指派给别人做,你自己没时间,这时候就需要使用 Assignees 来指派给其他人。

Issue 详情也中编辑 Assignees 和 编辑 Label 一样,也是使用 C-c C-e 进行编辑,然后输入开发者的名字,也是可以用 TAB 补全。

Close Issue

Issue 开发完了就需要进行关闭,这时候也需要来到 Issue 详情页,在 State 中按下 C-c C-e ,然后在 minibuffer 中输入 y 表示确认关闭,这样就把 Issue 关闭了。 关闭后状态就会变成 close 关闭之后可以用同样的方式来再次打开,这里就不再赘述了。

改变标题

改变 Issue 标题这个需求一般来说不那么重要,我们简单说一下,还是和前面的编辑一样使用 C-c C-e 进行编辑,改完回车就完事了。

参考