问题标签 [artifactory-query-lang]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2509 浏览

maven - JFrog Artifactory:项目、神器、构建和入口之间的区别?

我有一个关于 JFrog Artifactory 用于在工件中查找“事物”的 AQL(工件查询语言)的问题。AQL 似乎非常强大,但我想知道如何使用正确的术语构建(正确的)搜索查询。

AQL 文档 ( https://www.jfrog.com/confluence/display/RTF/Artifactory+Query+Language ) 提供了几种对象类型。但是itemartifactbuildentry之间的确切区别是什么?

如果我正在搜索特定的“文件”(JAR) - 它是工件、项目还是两者兼而有之?

0 投票
2 回答
504 浏览

json - 使用 jq 添加到现有的 json 文件

我有一个JSON 格式的Artifactory AQL Spec 文件。规范文件如下:

假设我运行一个 gitlab api 查询来获取我想要遍历并添加到这个 json 规范文件的 SHA 列表。SHA 列表被分配给一个变量。

我想遍历所有这些提交ID并将它们一一添加到json中,以便它们采用以下格式:

从 gitlab api 查询返回的 SHA 列表会有所不同,这就是为什么我希望它是一个动态条目或每次都更新。返回的 SHA 的数量也将有所不同……一天可以返回 10 个,也可以在另一天返回 50 个。

0 投票
0 回答
109 浏览

artifactory - 如何在 spec 文件中指定 AQL 返回的附加字段?

我通过传递给 Jfrog CLI 工具的规范文件使用 AQL 搜索 Artifactory。如果我将 AQL 直接发布到 REST API,我可以使用正常、正式的 AQL 语句并用于.include("some-field, e.g. stat")返回特定字段。但是,在规范文件格式中似乎没有这个位置。

Artifactory 的 AQL 文档不涵盖规范文件,他们的规范文件文档也不涵盖 AQL。

我已经在 Go 中 grepped 了规范文件解析器模块,它似乎同意。

有没有人在这里成功过?

0 投票
1 回答
460 浏览

properties - Artifactory - 工件属性或值的数量及其性能影响的限制是什么

Artifactory 版本:4.15.0 或最新

摘要(可选信息,但可以帮助任何人更好地理解我的情况):

  • Build+Test 管道以 jar/war/zip/tar/rpms 等形式生成工件。
  • 一旦这些工件被生成并存储在 Artifactory 中,它们通常与构建/测试相关的属性(即构建时间、构建 url、使用的构建工具、测试通过状态、测试覆盖率等与给定的工件相关联),我想挑选这些工件用于创建多个子系统级别的版本,因为每个子系统都有来自不同管道(服务/应用程序/项目)的不同工件。
  • 子系统级别的发布只是告诉,为项目的给定版本选择给定的 jar/war/zip/rpm 等(确保完成一些测试,一些工件属性通过/匹配定义的选择标准),基本上结束子系统发布的结果是该子系统级别的部署清单文件。
  • 一些子系统版本包含公共工件(可来自各种项目的共享),一些包含为目标部署环境(子系统或更高级系统版本)创建的特定工件。
  • 部署和测试在每个子系统级别完成,一旦它们通过了一组测试、性能基准等,在给定的部署+测试环境级别(针对该子系统版本)的所有部署+测试相关属性都将应用于包含的所有工件,即使该子系统发布的所有工件。
  • 现在,系统级版本包含许多子系统级版本,即它们引用许多子系统级版本或子系统级清单文件(任何通用/终端系统特定子系统的 JSON 格式)。我知道,欢乐时光。

  • 最后,部署和测试在系统级别执行,并且来自任何子系统发布级别工件(通用/特定环境)和任何其他“全局工件”(共同构成完整的系统级别发布)的所有工件都使用这些属性进行标记.

  • 应用/拥有属性背后的想法(服务/应用程序级别 - 构建+测试,子系统和系统发布级别)应用于任何“项目级别工件(jar/war/rpms/zip/tar/etc) ” pipeline/automation-deploy/test 步骤,即:用户可以随时通过传递一组属性轻松查询 Artifactory,以获取任何服务/应用程序/子系统/的工件(rpms/zip/tar/etc..)系统级别,用于部署/测试它。

--

我正在研究一种解决方案,用于发布依赖/基于工件属性(Artifactory)的各种管道,并想知道在将“ N 个属性”应用于工件或使用的值类型方面是否有任何建议或限制?

如果 Artifactory 中附加到工件的属性数量超过一定数量,是否会对性能产生影响?
OR我打算使用
的属性值类型(键=值对)采用以下形式:

只是想看看是否有人遇到过此类限制的任何问题(如果有的话)。我检查了 Artifactory 网站和其他博客,但找不到任何关于属性数量或与属性关联的值类型的限制以及它们在查询或使用 Artifactory 属性时如何影响 Artifactory 性能的任何信息。

0 投票
0 回答
421 浏览

java - Artifactory AQL - Groovy - http URL 连接给了我 200 和 403

我有以下脚本代码,它基本上是在 JSON blob 上迭代并使用 Artifactory(AQL 查询),我试图找到存储在 Artifactory 中的工件属性。

myscript Groovy 文件



我的映射文件如下所示:

输出如下:

当我设置睡眠超过 7 秒时System.sleep(7000),我每次都会收到响应代码打印为 200。

小于 5 的任何值都是不稳定的,即每次运行此脚本时,我得到的 200 或 403 都不同。

似乎我没有做正确的事情,即正确关闭连接,所以我也尝试了disconnect() for connection方法.close() for writing ,但没有任何帮助。

403 的堆栈跟踪输出

0 投票
1 回答
1039 浏览

json - Artifactory 查询语言中的排序属性

我正在尝试将不同阶段的存储库信息放在一起。我所有的存储库都在存储库名称的末尾附加了 Initial 或 Final 。例如:Repo = Maven-Build-Initial 或 Repo = Maven-Build-Final

我想使用 AQL 汇总以下信息 - 名称、存储库、内部版本名称、内部版本号、已创建、存储库类型(Java、.net 等)

除了构建名称和构建路径之外,我能够将存储库中特定工件的所有信息放在一起。

我看到了下面的例子,但无法理解 -

内部版本名称和内部版本号中的“属性值”究竟应该是什么?如果我必须获取存储库的所有信息 - Maven-Build-Initial,我将如何运行此查询?

0 投票
1 回答
99 浏览

artifactory - 用于返回分类器的 AQL 查询

我正在使用AQL查询按构建名称和编号查找工件,我需要classifier在响应中获取标签:

返回的字段名称是什么classifier

谢谢

0 投票
1 回答
700 浏览

docker - Artifactory 查询是否存在 docker 图像

如何使用 AQL 查询来查找特定 repo 中是否存在 docker 图像列表?

例如,我需要查找 'abc-repo/username/' 是否包含 imagename:tag 列表

谢谢, 苏达

0 投票
2 回答
2677 浏览

artifactory - Artifactory aql:查找具有给定属性的工作版本

我正在尝试foo使用 artifact property从 build 中查询哪个 build number(s) 生成的工件vcs.Revision=aabbccddee123456

在 Artifactory 5.1.3 中。

到目前为止,我一直在尝试这样:

curl -u user:apikey -i -X POST https://artifactory.foobar.com/artifactory/api/search/aql -H "content-type:text/plain" -T query.json

查询.json:

但是,这 3 行似乎都不正确:

  • builds.find({"module.artifact.item.repo":"snapshot-local"}) 什么都不返回,

  • builds.find({"name":"foo"}) 返回相同的空响应,

  • builds.find({"module.artifact.item.@vcs.Revision":"aabbccddee123456"})也返回这个:

{ "results" : [ ], "range" : { "start_pos" : 0, "end_pos" : 0, "total" : 0 } }

我在这里做错了什么?我确实在 webapp 中看到了我使用此名称发布的构建,并且具有正确的工件属性。

0 投票
1 回答
2430 浏览

artifactory - 如何使用 REST API 更新工件中项目的属性

我正在尝试更新工件的属性(在我的示例文本文件中)

我尝试了 API https://www.jfrog.com/confluence/display/RTF/Artifactory+REST+API#ArtifactoryRESTAPI-UpdateItemProperties

这是我尝试过的:

curl -X PATCH -uadmin:password -H '"props":{"ccs_x1_version": "7.7.7.7"}' " http://XXXXXXXXX:8081/artifactory/maven-dev-local/com/test/sbom/ 2.0.0-SNAPSHOT/sbom-2.0.0-20180704.094719-1.txt "

但没有成功,因为命令没有返回任何内容,有人可以帮助我找出正确的用法。