簡體   English   中英

如何在 Artifactory 中獲取 Artifact 的屬性

[英]How to get properties of an Artifact in Artifactory

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

現在,對於這些工件版本中的每一個,都有一些附加到該工件-xxx 的構建工件的屬性,例如:svnURL、svnChangeSetNumber 等

有什么方法可以讓我使用 Rest API 等獲取這些信息。

我嘗試了以下方法,但它列出了所有具有此屬性 = 值的工件,但我正在尋找相反的結果。

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

然后,它在 JSON 輸出中輸出信息,並在 Artifactory 中顯示此屬性設置為任何值的所有工件。 我正在尋找的是,如何獲取 Artifactory 中任何工件的所有屬性(svnURL 和 svnChangeSetNumber)?

您可以使用Artifactory查詢語言 (AQL)進行此類查詢。

例如,以下簡單查詢將返回存儲庫libs-releases-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查詢語言的更多功能。

例如:工件名稱是accesscontrol

並且您想在Artifactory中找到所有版本或accesscontrol-xxx工件的屬性。 您可以使用:

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

然后在$提示符下運行:

`which groovy` ./1.groovy |sed "s/\(\"properties\":\)/\n\1/g"|grep vcs.revision| sed "s/$/\n\n/"

您將獲得生成訪問控制工件的項目所有構建的輸出,如果這些構建中的任何一個以vcs.revision的形式上傳了SVN變更集#,您將看到每行的內容。 這樣,您將知道什么是SVN URL,以及使用什么Changeset來獲取源代碼。

如果將libs-release-local替換為其他存儲庫,則可以獲得更多結果,或者使用虛擬存儲庫名稱(如果已在Artifactory中創建了虛擬存儲庫名稱),它將搜索所有存儲庫,包括遠程存儲庫。

如果您有工件版本的確切路徑,則在 GET 調用末尾附加?properties 喜歡

https://somedomain.com/someReg/someRepo/artifactName/version/<if any file,like manifest.json>?properties

參考: 神器文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM