npm 包 @atomist/sdm-pack-fingerprints 使用教程

阅读时长 5 分钟读完

什么是 @atomist/sdm-pack-fingerprints?

@atomist/sdm-pack-fingerprints 是一个 Atomist 面向开发团队的软件交付机器人(Software Delivery Machine,SDM) 扩展包。它提供了一个 SDM 中的事件标记与指纹管理工具,用于追踪代码的变更、修复、更新等信息,方便团队了解代码质量现状及历史记录,并辅助管理和优化开发流程。

如何使用 @atomist/sdm-pack-fingerprints?

安装

首先,您需要在安装 @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