2017-06-02 60 views
1

我想在整个JFrog ARM 中搜索文件名模式,而无需知道JFrog cli中显式的存储库名称。jfrog cli神器按文件名模式搜索

jfrog rt s "reponame/*pattern*" 

正在按照预期在特定的回购中给出结果。
但我有repo1,repo2,repo3,等等。
如何使用通配符搜索reponame,下面不起作用。

jfrog rt s "*/*pattern*" 

基本上我想要的卷曲GET请求搜索

"https://server/artifactory/api/search/artifact?name=*pattern*" 
+1

我试图弄明白为好,我能想出的最好的事情与正在把你的资料库中一个变量ex'repos = repo1 repo2 repo3 ...'并循环遍历它们'用于回购“$ repos”;做jfrog rt s $ repo/$ pattern /;做完了' – sloven

+0

事实上,我最终只是像你一样,在一个forloop中完成迭代。他们炒作的CLI如此糟糕,以至于没有使用简单命令的设施。 – sunil

+0

我还没有测试过它,但我有一种使用REST API通过curl -x POST的感觉,或者其他更好的选择(更友好的用户界面,甚至语法看起来更干净)我可能会花一些时间任何值得工作的东西我会在这里发布 – sloven

回答

0

这不是CLI客户端,但另一种方式来获得所需功能的jfrog CLI equlivalent。花了一些时间在API看这里:

https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API

我建议那一页慢慢地滚动并在整体地命令的LOF阅读,语法是优秀的,我执行一些搜索,他们找遍了所有地方库。无需通过1命令语法递归搜索1:

export url="http://url/to/articatory" 
curl --noproxy '*' -x GET "$url/api/search/artifact?name=log4j*" 

阅读上面的链接进行更精确的搜索选项/语法。

我如何设置它:

alias artpost='curl -X POST "http://url/artifactory/api/search/aql" -T - -u admin:password' 

一些示例用法:

echo 'items.find({"name": {"$match" : "log4j*"}})' | artpost 
echo 'items.find({"$and" : [{"created" : {"$gt" : "2017-06-12"}},{"name": {"$nmatch" : "*surefire*"}}]})' | artpost 
+0

您是否完全阅读我的问题?我想知道如何使用jfrog cli客户端不卷曲。我已经发布了你在问题本身中提出的建议。如果你不知道,jfrog会发布一个cli客户端。 – sunil

+0

您是否看过我的评论?我发布了一个可用于该功能的备选方案,以防止任何人在谷歌搜索引擎中绊倒谷歌 – sloven