什么是 @atomist/sdm-pack-fingerprints?
@atomist/sdm-pack-fingerprints 是一个 Atomist 面向开发团队的软件交付机器人(Software Delivery Machine,SDM) 扩展包。它提供了一个 SDM 中的事件标记与指纹管理工具,用于追踪代码的变更、修复、更新等信息,方便团队了解代码质量现状及历史记录,并辅助管理和优化开发流程。
如何使用 @atomist/sdm-pack-fingerprints?
安装
首先,您需要在安装 @atomist/sdm-pack-fingerprints 到您的项目目录:
npm install --save-dev @atomist/sdm-pack-fingerprints
然后,将该包添加到 SDM 扩展列表中。
配置
接着,在 SDM 的配置文件中,您需要定义 @atomist/sdm-pack-fingerprints 的配置项,包括指纹 ID 和指纹提取器 (fingerprinter)。
-- -------------------- ---- ------- ------ - ------- - ---- --------------- ------ ----- -------------- ------------------------------------ - - -- --- ---- - -- --- ----------- - -- --- -------------- - ------------- - - ----- --------- ---------- --------------------------- - - - - - - --
其中,name
为指纹 ID, extractor
则是实际的指纹提取器函数,我们将在下一步中定义它。
提取指纹
接下来,您需要实现您的指纹提取器函数。
-- -------------------- ---- ------- ------ - -- -- ---- ----- ------ - ------------- - ---- --------------------------------- ------ ----- -------- ----------------------------- --------- ------------------------ - ----- ------------- - ----------------------------- -- ---------------- - ------ ---------- - ----- ---------- - ----- --------------------------- ----- ------------ - ----------------------- ----- ------- -------- --------- ----- ----------- --- ------ ------------- -
在上述代码中,我们首先检查项目目录中是否存在 eslint.log 文件,如果存在就将其内容提取作为指纹的数据内容,否则返回 undefined
以表示没有找到指针。然后,我们通过 fingerprintOf
函数创建一个指纹对象,并将类型设为 "eslint analysis results",以便将具有相同类型的指纹进行聚合和分组。
这里我们使用的是一个示例指纹提取器,实际使用时您需要根据自己的项目需求编写自定义指纹提取器。
使用指纹
最后,在需要使用指纹的时候,您需要调用 this.fingerprintStore.scan
方法,将指纹与指纹提取器的名称作为参数传入。
-- -------------------- ---- ------- ------ - ------------- - ---- --------------- ------ - -------------------------- - ---- ------------------------------- ------ ----- -------- ---------------------- --------------- ---------------------- - ----- ------------ - ----- --------------------------- ------------ ---------- -- -- --- -
在上述代码中,我们在项目 Audit 的过程里,使用指纹提取器 "eslint" 来提取 eslint 检查的结果,并将提取的指纹存储在 fingerprints
变量中,方便后续进一步处理。
结论
本教程介绍了如何使用 @atomist/sdm-pack-fingerprints 包,用于项目中指纹提取、存储和使用的流程。这个示例中,我们使用了一个非常简单的指纹提取器,实际应用时您需要根据项目的特点和需求编写相应的指纹提取器。通过使用这个工具,您可以在代码变更、修复和更新的过程中更好地把握项目的质量和历史,进一步优化开发流程,并提高团队的软件交付效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/atomist-sdm-pack-fingerprints