描述
我正在尝试设置 JFrog 的 Artifactory Pro (v 6.0.1) 来存储和缓存我的项目的依赖项。我想使用 JFrog CLI 收集 npm-build 信息并将其发布到 Artifactory,就像在此(https://jfrog.com/blog/npm-flies-with-jfrog-cli/)博客文章中描述的那样,但我希望能够以非管理员用户的身份进行操作。
设置
Artifactory 包含一个名为npm的虚拟存储库,它是一个本地(名为npm-local)和一个远程(名为npm-remote)存储库的集合。
有两个用户:具有管理员访问权限的名为admin的用户和没有管理员访问权限的名为developer的用户。
JFrog CLI 的配置:
# create a configuration for the admin
jfrog rt config --user=admin \
--password=admin \
--url=http://localhost:8081/artifactory \
--interactive=false rt_admin
# create a configuration for the developer
jfrog rt config --user=developer \
--password=developer \
--url=http://localhost:8081/artifactory \
--interactive=false rt_dev
我在做什么
对于此测试,我正在尝试构建 simple-node-js-react-npm-app ( https://github.com/jenkins-docs/simple-node-js-react-npm-app ) 并将其发布到使用以下 JFrog CLI 命令在 Artifactory 中的本地 npm 存储库:
jfrog rt npm-install npm \
--build-name=simple \
--build-number=1.0.0 \
--server-id=rt_dev
这会在命令完成之前产生以下错误(如果忽略 npm-install 阶段的错误):
[Info] Collecting dependencies information, this might take several minuets...
[Error] Artifactory response: 400 Bad Request
For permissions reasons AQL demands the following fields: repo, path and name.
当我继续
jfrog rt npm-publish npm \
--build-name=simple \
--build-number=1.0.0 \
--server-id=rt_dev
jfrog rt build-publish simple 1.0.0 --server-id=rt_dev
新发布的工件具有零依赖性。
如果以与管理员相同的方式发布
jfrog rt npm-install npm \
--build-name=simple \
--build-number=1.0.1 \
--server-id=rt_admin
jfrog rt npm-publish npm \
--build-name=simple \
--build-number=1.0.1 \
--server-id=rt_admin
jfrog rt build-publish simple 1.0.1 --server-id=rt_admin
我得到了 1000 多个依赖项。
如何获得与非管理员用户相同的结果?