如何在下载工件之前检查用户插件的构建信息?
How to check build info from a user plugin before downloading an artifact?
我们希望在本地 Artifactory 安装中使用用户插件防止下载没有构建信息的工件。我们正在努力寻找 Request 和对应的 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 查询语言,您可以找到基于工件的构建,如果结果为空,则没有这样的构建:https://www.jfrog.com/confluence/display/JFROG/Artifactory+Query+Language
例如:
builds.find({"module.artifact.item.name": "artifactory.war"})
链接到构建的工件也将具有 属性“build.number”和“build.name”,因此这是一种处理方法
正确的解决方案是使用 JFrog Xray。然后你可以为你的构建设置扫描,这样构建的所有工件部分都会被扫描(另外你也在那里进行安全和许可合规性检查),然后阻止下载未扫描的工件
最后,当您创建构建时,您还可以提升它,例如从“暂存”到“发布”,并在该操作中将工件复制或移动到仅 build-release 的存储库。
属性“build.name”和“build.number”可能是您尝试执行的操作的最佳方式。
我们希望在本地 Artifactory 安装中使用用户插件防止下载没有构建信息的工件。我们正在努力寻找 Request 和对应的 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 查询语言,您可以找到基于工件的构建,如果结果为空,则没有这样的构建:https://www.jfrog.com/confluence/display/JFROG/Artifactory+Query+Language
例如: builds.find({"module.artifact.item.name": "artifactory.war"})
链接到构建的工件也将具有 属性“build.number”和“build.name”,因此这是一种处理方法
正确的解决方案是使用 JFrog Xray。然后你可以为你的构建设置扫描,这样构建的所有工件部分都会被扫描(另外你也在那里进行安全和许可合规性检查),然后阻止下载未扫描的工件
最后,当您创建构建时,您还可以提升它,例如从“暂存”到“发布”,并在该操作中将工件复制或移动到仅 build-release 的存储库。
属性“build.name”和“build.number”可能是您尝试执行的操作的最佳方式。