我的Artifactory中有3个回购,想要通过插件处理Artifacts的移动。
1. Build-repo
2. Testing-repo
3. Prod-repo
尝试创建一个插件,仅允许将神器从一个回购(Build-repo)
移动到其他回购(Testing-repo)
。我应该阻止开发人员直接从Build-repo
转移到Prod-repo
同样Testing-repo -> Prod-repo
beforeMove { item, targetRepoPath, properties ->
log.debug("ENTER storage -> beforeMove")
if (!security.isAdmin() && item.repoKey.equals("Build-repo")) {
if (item.targetRepoKey.equals("Prod-repo")) {
throw new CancelException("Artifact Move not permitted for ${item.repoKey}: ", 403)
}
}
log.debug("EXIT storage -> beforeMove")
但我收到错误,这可能是使用Property的问题。如何获取使用groovy插件的完整属性列表。
Caused by: groovy.lang.MissingPropertyException: No such property: targetRepoKey for class: org.artifactory.model.xstream.fs.FileInfoImpl
答案 0 :(得分:1)
错误引用的属性不是Artifactory属性,而是Groovy对象属性。在第4行中,您有item.targetRepoKey
,而它应该是item.repoKey
。
我强烈建议您使用正确的IDE(IntelliJ IDEA)并在代码中使用trypes,例如第1行应该是:
beforeMove { FileInfo item, RepoPath taretRepoPath, Properties properties ->
这可以节省您在处理此类错误时的时间。