在开发过程中,我们不可避免地会遇到 issue(问题)和 pull request(拉取请求)的管理。如果你是一个开源项目的贡献者,你可能需要对这些 issue 和 pull request 进行分类和处理,以更好地管理你的项目。npm 包 issue-parser 可以帮助你解决这些问题,本文将为大家介绍如何使用 npm 包 issue-parser 来解析 issue 和 pull request。
issue-parser 是什么
issue-parser 是一个用于解析 issue 和 pull request 语句的精简 npm 包。通过使用 issue-parser,你可以将 issue 句子中的元素(如 “@user”、“#1”、“fixes #2” 等)解析成一个对象,以便更好地管理和操作。
issue-parser 的安装
你可以通过以下命令来安装 issue-parser:
npm install issue-parser --save
如何使用 issue-parser
以下是一个简单的使用示例:
const IssueParser = require('issue-parser'); const parser = new IssueParser('github'); const issue = parser.parse(`Closes #123 @user1 @user2`); console.log(issue);
此处我们创建了一个名为 issue-parser 的变量,并将其设置为 GitHub 问题系统的解析器。然后,我们需要使用 parse() 方法来解析我们要处理的 issue。在这个例子中,我们的问题解析成一个包含以下属性的对象:
-- -------------------- ---- ------- - ---------- - - --------- --------- --------- --- - -- ----------- - -------- ------- -- ------ ------- ---- ------ ------- -
我们可以看到,issue-parser 为我们提供了 issue 包含的所有需要的信息。
issue-parser 的 API
在本节中,我们将深入介绍 issue-parser 的 API,包括解析器初始化和解析方法。
1. 初始化解析器
首先,你需要用 IssueParser 类来创建 issue-parser 的实例,初始化实例时需要提供一个 issue 跟踪器名字,可以是任何合法的跟踪器名称,如 "github", "jira" 等。
const parser = new IssueParser('github');
2. 解析 issue / pull request
当我们创建了 issue-parser 实例之后,我们可以使用 parse() 方法解析 Issue / pull request 句子。parse() 方法需要一个包含 Issue / pull request 信息的字符串,方法返回一个解析后的对象,包含以下属性:
2.1 actions
actions
是一个数组,包含一个或多个表示对这个 issue / pull request 将要执行的操作对象。这些操作包括 "open"(打开)、"reopen"(重新打开)、"close"(关闭)、"comment"(发评论)和 "lock"(锁定)等等。
每个操作都具有 action
和 number
属性。action
是对 Issue / pull request 执行的操作类型的字符串,number
代表 Issue / pull request 的编号。例如我们的示例中:
{ "actions": [ { "action": "closes", "number": 123 } ], }
这里的 closes
就是一个操作类型,123
是 issue / pull request 的编号。
2.2 mentions
mentions
是一个数组,包含 issue / pull request 评论中提到的所有用户的用户名,如 "@user1"、"@user2" 等等。
{ "mentions": [ "user1", "user2" ] }
2.3 raw
raw
是包含完整未解析内容的字符串:
{ "raw": "Closes #123 @user1 @user2" }
3. 解析器 API 总结
以下是 issue-parser 中包含的可用方法和属性的总结:
const IssueParser = require('issue-parser'); const parser = new IssueParser('github'); parser.parse('raw issue');
3.1 Constructor
用于新建一个 issue-parser 解析器实例,需要传入一个 issue 跟踪器名字。
const parser = new IssueParser('github');
3.2 parse
用于解析 issue / pull request 语句。返回一个解析后的对象。
const issue = parser.parse('raw issue');
3.3 knownFields
knownFields
是 issue 跟踪器使用的关键词数组,不同的跟踪器使用不同的关键词,例如 Github 使用的 is、fixes、resolves 关键词可以被识别。
console.log(parser.knownFields); // ['close', 'closes', 'closed', 'fix', 'fixes', 'fixed', ...]
结论
issue-parser 是一个简单的 npm 包,虽然其体积小,但它可以帮助开发者更好地管理 issue 和 pull request,提高开发效率。通过本文,你已经掌握了如何使用 issue-parser 进行 issue 和 pull request 解析。希望这篇文章对你有所帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5eedb5c9b5cbfe1ea0611475