Artifactory限制上传到存储库,允许从另一个repo复制

时间:2014-08-14 08:04:12

标签: artifactory

如何限制用户手动将任何内容部署到存储库中,同时允许用户从另一个存储库进行复制。

RepoA/Dir/File.txt  
RepoB/Dir

我想允许从RepoA到RepoB的File.txt副本,这需要部署RepoB的权限。但是,我还想将手动部署限制为RepoB。任何进入RepoB的东西都只能来自RepoA。

我尝试使用带有beforeCreate模块的用户插件,这限制了手动上传,但这也限制了复制功能。

storage{ 
  beforeCreate { item ->
    log.debug("ENTER storage -> beforeCreate")
    if (item.getRepoKey().equals("RepoB")) {
    throw new CancelException("Artifact create not permitted", 403)
    }
    log.debug("EXIT storage -> beforeCreate")
}  }

1 个答案:

答案 0 :(得分:2)

如果要允许复制,只需添加一个检查,以验证RepoA中是否存在相同的路径(工件)。如果是 - 允许:

storage { 
  beforeCreate { item ->
        log.debug("ENTER storage -> beforeCreate")
        if (item.getRepoKey().equals("RepoB") &&
            !repositories.exist(RepoPathFactory.create('RepoA', item.repoPath)) {
            throw new CancelException("Artifact create not permitted", 403)
        }
        log.debug("EXIT storage -> beforeCreate")
    }  
}