npm 包 get-github-labels 使用教程

阅读时长 5 分钟读完

前言

在 GitHub 上管理 issue 时,我们可以通过给 issue 打上 label 进行分类,便于整体梳理和管理。但是,当 issue 数量较多时,手动给每一个 issue 打上 label 是一项十分繁琐的工作。为了解决这一问题,我们可以使用 npm 包 get-github-labels 来实现自动化打标签的功能。

get-github-labels 是一个可以根据指定的规则自动为 issue 打上 label 的 npm 包。在使用该包时,我们只需指定规则和 issue 列表即可自动化地为所有 issue 打上 label,大大提高了工作效率。

安装

使用 npm 安装 get-github-labels

使用

使用 get-github-labels 的基本命令格式为:

其中,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 打标签:

示例代码

下面是一个完整的 rules.json 文件示例:

-- -------------------- ---- -------
-
  -
    ------- ---------- ----------
    -------- ---------
    -------------- ----- -- ----- --------------
    -------- -
      -
        -------- ----------
      -
    -
  --
  -
    ------- ---------- ------
    -------- ---------
    -------------- ------- -- ----- -------
    -------- -
      -
        -------- ------
      -
    -
  --
  -
    ------- ---------- --------
    -------- ---------
    -------------- ------- -- ----- ---- ---- ------------
    -------- -
      -
        -------- --------
      -
    -
  --
  -
    ------- ---------- -----
    -------- ---------
    -------------- ------ -- ----- ------- -------
    -------- -
      -
        -------- -----
      -
    -
  -
-

在这个规则文件中,我们定义了四个名为 "priority: critical"、"priority: high"、"priority: medium" 和 "priority: low" 的 label,分别对应了不同的优先级。其中,标记为 "priority: critical" 的 label 是最紧急的,应该最先解决。而标记为 "priority: low" 的 label 则是最低优先级的,可以无限期拖延。

我们可以在命令行中使用以下命令来为 issue 打标签:

这样,所有包含优先级关键词的 issue 都会自动标上对应的 label,大大节省了管理 issue 的时间和精力。

结论

get-github-labels 可以帮助我们自动化管理 GitHub 上的 issue,提高工作效率。使用这个 npm 包需要一定的学习成本,但是只要掌握规则的语法和基本使用方法,就能轻松地为所有 issue 打上 label,更好地组织和管理代码仓库。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60055e7f81e8991b448dbda1

纠错
反馈