Api 如何在Artifactory中获取工件的属性

Api 如何在Artifactory中获取工件的属性,api,rest,properties,artifactory,artifact,Api,Rest,Properties,Artifactory,Artifact,在Artifactory中,我有一个工件“consumersvc”,有多个版本:1.0.0、1.1.0、1.2.0等等 现在,对于这些工件版本中的每一个,都有一些属性附加到该工件的构建工件-x.x.x 例如:svnURL、svnChangeSetNumber等 有没有什么方法可以让我使用RESTAPI等获取这些信息 我尝试了以下内容,但它列出了所有具有此属性=值的工件,但我看到的是相反的结果 http://myartifactorysrvr.my.company.com:8080/artifac

在Artifactory中,我有一个工件“consumersvc”,有多个版本:1.0.0、1.1.0、1.2.0等等

现在,对于这些工件版本中的每一个,都有一些属性附加到该工件的构建工件-x.x.x 例如:svnURL、svnChangeSetNumber等

有没有什么方法可以让我使用RESTAPI等获取这些信息

我尝试了以下内容,但它列出了所有具有此属性=值的工件,但我看到的是相反的结果

http://myartifactorysrvr.my.company.com:8080/artifactory/api/search/prop?svnURL=*

然后,它在JSON输出中输出信息,并显示Artifactory中的所有工件,其中该属性设置为任何值。我要寻找的是,如何获取Artifactory中任何工件的所有属性(svnURL和svnChangeSetNumber)?

例如:工件名称是accesscontrol

您希望在Artifactory中查找accesscontrol-x.x.x工件的所有构建或属性。您可以使用以下方法进行操作:

import groovy.json.*

def searchUrl = "http://myartifactorysrvr.my.company.com:8080/artifactory/api/search/artifact?name=accesscontrol&repos=libs-release-local"
def conn = searchUrl.toURL().openConnection()
conn.setRequestProperty("X-Result-Detail", "info, properties")
def searchResultTxt = conn.content.text
println "Found: ${searchResultTxt}"
def searchResults = new JsonSlurper().parseText(searchResultTxt)
def map = searchResults.results.findAll {  it.properties."vcs.revision" != null }.collect { it.properties['vcs.revision'][0] }.sort().reverse()
map
然后在$prompt下运行此命令:

`which groovy` ./1.groovy |sed "s/\(\"properties\":\)/\n\1/g"|grep vcs.revision| sed "s/$/\n\n/"
您将获得生成accesscontrol工件的项目的所有版本的输出,如果这些版本中有任何一个上传了SVN变更集#作为vcs.revision,您将在每行看到它。这样,您就知道什么是SVN URL,以及用于获取源代码的变更集

如果用其他存储库替换libs release local,则可以获得更多结果或使用虚拟存储库名称(如果您在Artifactory中创建了任何虚拟存储库名称),该名称将查看所有存储库,包括远程回购。

您可以使用(AQL)进行此类查询。

例如,下面的简单查询将返回存储库
libs release local
中所有工件的属性,这些工件用属性
svnURL
注释:

items.find({"$and" : [{"repo" : "libs-releases-local"}, {"@svnURL" : "*"}]}).include("property.*")
您可以使用Artifactory rest API运行这样的查询,例如使用curl:

curl -vv -uuser:pass -X POST -H "Content-Type: application/json" -d @aql.txt http://localhost:8081/artifactory/api/search/aql
其中aql.txt是包含查询的文件。 这是一个相当简单的查询示例。上面的链接显示了Artifactory查询语言的更多功能