在某些固定服务器上限制 npm publish

Restrict npm publish on some fixed servers

在我的组织中,我正在设置与 jenkins 2 的持续集成,所有构建的工件都转到私有 nexus 3 服务器(maven 和 npm 模块)

我想限制发布到一组固定机器上的联系:只有詹金斯奴隶可以发布。规则是:所有项目必须在持续集成中才能发布。

我不希望开发人员能够从他们的工作站直接在私有连接中发布。

目前,我通过将 npm 发布令牌放入 jenkins 用户主目录的 .npmrc 文件中来实现此目的。

它有效,但是这个令牌很容易被有创造力的用户窃取(在他们的 jenkins 构建中,使用像 'more ~.npmrc' 这样的简单命令)。有了这个令牌,任何人都可以在 Nexus 服务器上发布。很明显我现在的配置不好

最佳做法是什么?我的目标是我的私有 nexus 中的所有 npm 模块都是从 jenkins 而不是从开发工作站构建的。

谢谢大家

Jenkins 确实提供了一种通过 Credentials Plugin 存储和检索凭据的机制。这是一个选择吗?

例如,如果您使用的是自由风格构建,您可以勾选"Build Environment" 下的"Use secret text(s) or file(s)" 以使用秘密text/password。

如果您在 Jenkinsfile 中,则可以使用 "withCredentials" 子句来提供相同的信息。