在CircleCI上用2FA发布npm软件包?

时间:2018-07-12 20:55:16

标签: npm geometry circleci

我有一些Circle工作流程,这些工作流程会自动发布npm程序包。有什么方法可以将两要素身份验证集成到该流程中?

我想象所有的测试/构建步骤都将运行,然后在实际发布之前等待,然后等待一次输入的代码。这可能吗?

2 个答案:

答案 0 :(得分:0)

我刚刚对如何在npmjs上使用2FA进行发布进行了测试,正确发布的步骤如下:

  1. 在npmjs上创建一个帐户并仅启用2FA进行身份验证(不启用2FA进行发布)
  2. 生成一个新令牌并复制它。我使用npm login命令执行此操作以通过2FA进行身份验证
  3. 将令牌复制到CircleCI环境变量以保密,并从计算机中删除令牌以仅用于CircleCI

我不知道这是否是最好的过程,但是对我来说,最近的令牌无效对我有用。

编辑:我在这里给出示例存储库,但是软件包尚未从npmjs中发布,不会引起噪音:https://github.com/sergiohgz/test-publish-2fa-circleci

答案 1 :(得分:0)

如果您想使用更多服务,则有可能。使用自托管的Hashicorp Vault,可以在为auth-and-writes启用2FA时启用TOTP并存储npm CLI给出的密钥。

收到此消息后,您可以调用Vault服务器,以提供发布所需的OTP并通过npm publish选项将其提供给--otp命令。

有关更多详细信息,您可以阅读这篇文章How to deploy npm package with 2FA enabled on write。本文提供了Travis的示例,但它应适用于CircleCI,而无需进行任何重大更改。最大的区别应该在于如何在配置中加密您的机密(npm令牌,保险柜令牌等)。