前言
在 GitHub 上管理 issue 时,我们可以通过给 issue 打上 label 进行分类,便于整体梳理和管理。但是,当 issue 数量较多时,手动给每一个 issue 打上 label 是一项十分繁琐的工作。为了解决这一问题,我们可以使用 npm 包 get-github-labels
来实现自动化打标签的功能。
get-github-labels
是一个可以根据指定的规则自动为 issue 打上 label 的 npm 包。在使用该包时,我们只需指定规则和 issue 列表即可自动化地为所有 issue 打上 label,大大提高了工作效率。
安装
使用 npm 安装 get-github-labels
:
npm install -g get-github-labels
使用
使用 get-github-labels
的基本命令格式为:
get-github-labels [options] [repository] [rules]
其中,options
参数包含了一些可选的配置项,repository
参数指定了待处理的 GitHub 仓库,rules
参数则指定了打标签的规则。
配置项
get-github-labels
中可用的配置项如下:
-h, --help
: 显示帮助信息。-t, --token <token>
: 指定 GitHub API 的访问令牌,用于授权请求。-d, --debug
: 输出调试信息。
规则
rules
参数是 get-github-labels
的核心,它包含了一系列指定的规则,用于匹配和自动标注 issue。每个规则由多个字段组成,包括名称、颜色、描述和匹配条件。
下面是一个样例规则:
-- -------------------- ---- ------- - - ------- ------ -------- --------- -------------- ---------- ----- --------- -------- - - ----------- ------- - - - -
在这个规则中,我们指定了一个名为 "bug" 的 label,颜色为 "fc2929",描述为 "Something isn't working",并且在匹配条件中指定了只有包含 "error" 字符串的 issue 才会被打上该 label。
通常情况下,我们可以根据实际需求自定义多个规则并将它们保存在一个 JSON 文件中,然后在命令行中指定该文件路径,即可自动化地为所有 issue 打上 label。
例如,我们可以将上面的规则保存在一个名为 rules.json
的文件中,然后使用以下命令来为 issue 打标签:
get-github-labels --token <your token> <your repo name> rules.json
示例代码
下面是一个完整的 rules.json
文件示例:
-- -------------------- ---- ------- - - ------- ---------- ---------- -------- --------- -------------- ----- -- ----- -------------- -------- - - -------- ---------- - - -- - ------- ---------- ------ -------- --------- -------------- ------- -- ----- ------- -------- - - -------- ------ - - -- - ------- ---------- -------- -------- --------- -------------- ------- -- ----- ---- ---- ------------ -------- - - -------- -------- - - -- - ------- ---------- ----- -------- --------- -------------- ------ -- ----- ------- ------- -------- - - -------- ----- - - - -
在这个规则文件中,我们定义了四个名为 "priority: critical"、"priority: high"、"priority: medium" 和 "priority: low" 的 label,分别对应了不同的优先级。其中,标记为 "priority: critical" 的 label 是最紧急的,应该最先解决。而标记为 "priority: low" 的 label 则是最低优先级的,可以无限期拖延。
我们可以在命令行中使用以下命令来为 issue 打标签:
get-github-labels --token <your token> <your repo name> rules.json
这样,所有包含优先级关键词的 issue 都会自动标上对应的 label,大大节省了管理 issue 的时间和精力。
结论
get-github-labels
可以帮助我们自动化管理 GitHub 上的 issue,提高工作效率。使用这个 npm 包需要一定的学习成本,但是只要掌握规则的语法和基本使用方法,就能轻松地为所有 issue 打上 label,更好地组织和管理代码仓库。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055e7f81e8991b448dbda1