Artifactory 如何在下载工件之前检查用户插件的构建信息?

Artifactory 如何在下载工件之前检查用户插件的构建信息?,artifactory,Artifactory,我们希望防止在on-prem Artifactory安装中使用用户插件下载没有构建信息的工件。我们正在努力寻找请求和相应的BuildInfo之间的连接 import org.artifactory.request.Request import org.artifactory.repo.RepoPath download { beforeDownloadRequest { Request request, RepoPath repoPath -> if (isRel

我们希望防止在on-prem Artifactory安装中使用用户插件下载没有构建信息的工件。我们正在努力寻找请求和相应的BuildInfo之间的连接

import org.artifactory.request.Request
import org.artifactory.repo.RepoPath

download {
    beforeDownloadRequest { Request request, RepoPath repoPath ->
        if (isRelease(repoPath.repoKey)) {
            log.warn "Is a release artifact"
            // How to verify build info here??
        }
    }
}

def isRelease(String repoKey) {
    return repoKey in ["libs-release-local"]
}

使用Artifactory查询语言,您可以查找基于工件的构建,如果结果为空,则不存在这样的构建:

例如: builds.find({“module.artifact.item.name”:“artifactory.war”})

此外,链接到构建的工件将有一个属性“build.number”和“build.name”,所以这是一种方法

正确的解决方法是使用JFrog X射线。然后,您可以为您的构建设置扫描,以便对构建的所有工件进行扫描(此外,您还可以在那里进行安全性和许可证合规性检查),然后阻止未扫描工件的下载

最后,当您创建一个构建时,您还可以将其升级,例如从“暂存”升级到“发布”,并在该操作上复制或移动工件到仅为构建发布的存储库中

属性“build.name”和“build.number”可能是您尝试执行操作的最佳方式