如何将Artifactory Permission Target应用于点子和其他非人类可读取/可读的回购协议?

时间:2018-11-01 15:14:50

标签: artifactory

为使Artifactory尽可能为我们的用户提供自助服务,并授予用户使用其个人或团队帐户部署到部分存储库的权限,我试图找出如何进行配置。 对于Java世界中任何基于可读目录结构的存储库,Permission Targets都能很好地工作(https://www.jfrog.com/confluence/display/RTF/Managing+Permissions)。但是我找不到任何有关如何将其用于不可人类理解/可读的目录结构(如PIP)或平面目录结构(如NPM)的文档。

在Java世界中,存储库具有结构良好的树,例如:

~/.m2/repository$ tree org/ | head -20
org/
├── antlr
│   ├── antlr4-master
│   │   └── 4.7.1
│   │       ├── antlr4-master-4.7.1.pom
│   │       ├── antlr4-master-4.7.1.pom.sha1
│   │       └── _remote.repositories
│   └── antlr4-runtime
│       └── 4.7.1
│           ├── antlr4-runtime-4.7.1.jar
│           ├── antlr4-runtime-4.7.1.jar.sha1
│           ├── antlr4-runtime-4.7.1.pom
│           ├── antlr4-runtime-4.7.1.pom.sha1
│           └── _remote.repositories
├── apache
│   ├── ant
│   │   ├── ant
│   │   │   ├── 1.10.1
│   │   │   │   ├── ant-1.10.1.jar
│   │   │   │   ├── ant-1.10.1.jar.sha1

例如,要授予teamantl仅读取,注释和写入org/antlr/antlr4-master/**的权限,可以将以下json放置到Artifactory REST API(PUT /api/security/permissions/{permissionTargetName}

{
  "includesPattern": "org/antlr/antlr4-master/**",
  "repositories": [
    "libs-release-local",
    "libs-snapshot-local"
  ],
  "principals": {
    "groups" : {
      "teamantl": ["r","n","w"]
    }
  }
}

但是例如一个点子回购被完全散列: Hashed PIP repo tree 在权限目标“ includesPattern”中这完全没用。

此(权限目标)应如何用于回购协议(如PIP和NPM)?

1 个答案:

答案 0 :(得分:1)

您的屏幕快照显示了一个虚拟 PyPI存储库,该存储库已生成并因此具有哈希结构。

通常,这些文件由 physical 存储库支持,使用twine upload填充,因此具有‹pkg›/‹version›/‹file›结构–即,完全可以用作具有包粒度的许可目标。