云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





使用

发行版提供了一个方便且最新的自描述API,各种工具/框架都可以使用它来自动创建REST调用。

可以以任何一种标准方式调用分发REST API端点来调用RESTful API。本节以cURL为例,介绍如何使用Distribution REST API。

使用和配置cURL

你可以下载cURL.学习如何在这里使用和配置cURL

身份验证

如果Artifactory下面的信息发生了变化,请记住在这里更新

发行版的REST API支持以下形式的身份验证:

  • 使用用户名和密码进行基本身份验证
  • 基本身份验证使用您的用户名和API密匙

  • 使用一个访问令牌
    而不是基本身份验证的密码。
  • 使用一个访问令牌
    作为授权标头中的记名令牌授权:持票人)和存取令牌。


基URL

平台REST URL由以下组成:

/<服务上下文>/api/< api - version > .

例如

使用您的Artifactory服务器主机名和Artifactory路由器端口http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1

一般

测试连接

描述:测试与分发的连接。

自:1.0
安全:无需身份验证。
用法:GET / api / v1 /系统/平
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -X GET“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/ping”


响应状态码:

200 -连接正常
500 -错误。系统显示如下错误:"
以下一个或多个服务不可用:分发服务器、数据库和/或redis。”

响应标头:N/A
生产:application / json


响应
On Success {"status_code ": 200, "message": "ok"} On Error {"status_code ": 500, "message": "以下一个或多个服务不可用:分发服务器,数据库和/或redis"}


获取系统信息

描述:获取一般信息,包括系统不稳定时的错误详细信息。

注意:不要为签名密钥设置密码短语。当通过UI创建发布包时,JFrog发行版目前不支持输入密码。

自:1.0
安全:无需身份验证。
用法:GET / api / v1 /系统/信息
请求头信息:N/A
消耗:N/A


旋度的例子
myUser:myP455w0rd!-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/info"


响应状态码:

200 -成功

响应标头:N/A
生产:application / json


响应
{“状态”:“稳定”、“消息 ": "...", " 版本”:“1.0”、“service_id”:“jfds@……”}



页面内容

获取系统设置

描述:获取系统设置
自:1.6
安全:管理员只
用法:GET / api / v1 /系统/设置
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/settings"

响应状态码:
200 -成功
响应标头:N/A
生产:application / json

响应
{"call_home_enabled": true}

更新系统设置

描述:更新系统设置
自:1.6
安全:管理员只
用法:POST / api / v1 /系统/设置
请求头信息:N/A
消耗:application / json

旋度的例子
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/settings" -T system_settings.json
system_settings.json
{"call_home_enabled": true}
类型 要求 默认值 描述
call_home_enabled

布尔

没有

1.6

如果启用,发送使用统计数据到JFrog


响应状态码:

200 -成功


签名密钥

上传和传播用于分发的GPG签名密钥

描述:GPG密钥用于签署发布包。GPG密钥对将自动传播到Artifactory Source和destination。你可以用它来做以下事情之一:

  • 上传GPG密钥对到JFrog分发从您的文件系统
  • 从保险库中取回钥匙。

笔记

  • 要求JFrog任务控制4.5.0及以上版本。
  • 分发依赖于JFrog任务控制与jpd通信来传播GPG密钥
  • 这些键必须复制并粘贴到请求体中。
  • 你不能使用public_key而且private_key参数vault_data参数。
  • vault_id参数应该是Hashicorp,因为它是目前唯一受支持的仓库。

自:2.4

从版本2.8.1开始,分发版支持管理多个GPG签名密钥签署发布包。这使您能够为每个发布包分配一个签名密钥对,为您提供粒度来选择使用哪些密钥来签署发布包,而不是使用相同的密钥对来签署所有的密钥。


安全:管理员只
用法:POST /api/v1/keys/{protocol: pgp|gpg}
请求头信息:N/A
消耗:application / json

JSON请求体应该有“set_as_default”:真的如果这是设置的第一个键,或者Artifactory中没有默认键。

职位:/ api / v1 /键/{协议:pgp | gpg}身体:{“关键”:{“public_key”:“——开始pgp公钥块……——结束PGP公钥块”、“private_key”:“——开始PGP私钥块……----- end PGP私钥块-----"}, "propagate_to_edge_nodes": true, "fail_on_propagation_failure": false } Expected response: { "report": { "message" : "error message if exists" "status" : PARTIAL_SUCCESS | SUCCESS | FAILURE | PROPAGATION_NOT_REQUESTED | PROPAGATION_NOT_SUPPORTED_BY_MISSION_CONTROL | NO_GPG_KEY_TO_PROPAGATE "details" : [ { "jpd_id" : "id1", "name" : "US-EAST" "key_alias" : "my first key" "status" : "SUCCESS" }, { "jpd_id" : "id2", "name" : "US-WEST" "key_alias" : "my first key" "status" : "SUCCESS" }, ] } }
多个GPG密钥示例
{"key": {"alias": "name", "public_key": "", "private_key": ""}, "propagate_to_edge_nodes": false, "fail_on_propagation_failure": false, "set_as_default": true}
Vault样本用法
身体:{“fail_on_propagation_failure”:假的,“propagate_to_edge_nodes”:假的,“关键”:{" vault_data ":{“vault_id”:“hashicorp”、“public_key”:{“路径”:“kv /公共/路径”,“关键”:“公共”},“private_key”:{“路径”:“kv /私人/路径”,“关键”:“私人”}预期响应:{"报告":{“消息”:“如果存在错误消息”“状态”:PARTIAL_SUCCESS失败成功| | | PROPAGATION_NOT_REQUESTED | PROPAGATION_NOT_SUPPORTED_BY_MISSION_CONTROL | NO_GPG_KEY_TO_PROPAGATE“细节”:[{“jpd_id”:"id1", "name": "US-EAST" "key_alias": "my first key" "status": "SUCCESS"}, {"jpd_id": "id2", "name": "US-WEST" "key_alias": "my first key" "status": "SUCCESS"},]}}

更新别名

描述:更新别名。
自:2.8.1发布
安全:管理员只
用法:PUT键/ gpg / {alias_name}
请求头信息:N/A
消耗:application / json

示例请求
{"new_alias": {}}

得到关键

描述:按别名检索公钥。
自:2.8.1发布
安全:管理员只
用法:得到键/ gpg /{别名}

请求头: N /
消耗: application / json


示例响应
{“别名”:“别名”“public_key”:“——开始PGP公钥块…----- end PGP公钥块-----",}


获取钥匙清单

描述:检索所有键的列表。
自:2.8.1发布
安全:管理员只
用法:/ / gpg钥匙/别名

请求头信息: N/A
消耗:application / json
示例响应
[{“别名”:“别名”,“默认”:假|真,“密码”:假|真  }, .......]

删除键

描述:删除键。
自:2.8.1发布
请注意:删除默认密钥后,上传的密钥将自动使用最早的密钥作为默认密钥。
安全:管理员只
用法:删除/键/ gpg / {alias_name}
请求头信息:N/A
消耗:application / json


将GPG签名密钥传播到分布边缘

描述:传播GPG密钥对到新添加的分布边缘。
自:2.4
笔记:需要任务控制4.5.0及以上版本。
安全:管理员只
用法:POST /api/v1/keys/{protocol: pgp|gpg}/传播
请求头信息:N/A
消耗:application / json

从发行版2.13.2开始,GPG密钥的传播方式如下:

传播行为 解释
当没有提供参数时 默认键为传播
api / v1 /键/ pgp /传播?所有= true

传播所有可用的键。

api / v1 /键/ pgp /传播?别名=<别名>

传播具有别名的键。

例如,api / v1 /键/ pgp /传播?别名= 'my_key'使用别名my_key传播密钥。

传播可以使用别名键或所有键,但不能同时使用两个键。

response: {"report": {"message": "error message if exists" "status": PARTIAL_SUCCESS | SUCCESS | FAILURE | PROPAGATION_NOT_REQUESTED | PROPAGATION_NOT_SUPPORTED_BY_MISSION_CONTROL | NO_GPG_KEY_TO_PROPAGATE "details": [{"jpd_id": "id1", "name": "US-EAST" "key_alias": "my first key" "status": "SUCCESS"}, {"jpd_id": "id2", "name": "US-WEST" "key_alias": "my first key" "status": "SUCCESS"},]}}

上传GPG签名密钥分发

描述:上传GPG密钥对给JFrog发行公司。此密钥对将用于签署发布包。

注意:发行版2.4已弃用
自:
1.0
安全:管理员只
用法:把/ api / v1 / / gpg钥匙
请求头信息:N/A
消耗:application / json


旋度的例子
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -X PUT "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/keys/gpg



gpg.json
{“public_key”:“——开始PGP公钥 ----- ....——结束PGP公钥块”、“private_key”:“——开始PGP私钥 ----- ....----- end PGP私钥块-----"}


响应状态码:

200 -键已成功设置。

响应标头:N/A
生产:application / json


响应
{"status_code ": 201, "message": "Set GPG public & private key"}

获取公开密码匙

描述:返回在分发中设置的公共GPG密钥。
注意:T私钥字段将以JSON响应格式显示,仅当该公钥的私钥存在于DB中时才会显示。
当GPG公钥一开始就没有上传时,将返回以下消息:“分发中不存在公共GPG密钥”。
自:tripwire
安全:仅限认证用户。用户必须具有发布包的读权限。
用法:得到/ api / v1 / / gpg钥匙
消耗:application / json

旋度的例子
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/keys/gpg"


回应:

响应
{“public_key”:“公共gpg密钥> <”、“private_key ": "****" }



发布包

创建发布包版本

描述:创建一个新的发布包版本。

自:1.0
安全:仅限认证用户。用户必须有匹配Bundle写权限
用法:发布api / v1 / release_bundle
请求头信息:
X-GPG-PASSPHRASE - String -签名密钥的密码短语,如果适用的话
消耗:application / json


旋度的例子
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -H "X-GPG-PASSPHRASE: keysPassphrase" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle" -T createbundle.json



createbundle.json
{"name": "" ", "version": "" ", "dry_run": true|false, "sign_immediately": true|false, "storing_repository": "repository-name"|null, "description": "" release_notes": {"syntax": "markdown|asciidoc|plain_text", "content": ""}, "spec": {"queries": [{"aql": "items. "找到({\“回购\”,\“example-repo-local \”})”,“query_name”:“查询1”“映射”:[{“输入”:“正则表达式”,“输出”:“1美元/ 2美元”}],“added_props”:[{“关键”:“,”值 ": [""] } ], " exclude_props_patterns”:[" example_exclude_prop_pattern_1”、“example_example_prop_pattern_2 " ] } ] } }
类型 要求 默认值 描述
的名字
字符串 是的 N/A 1.0 发布包名称
版本
字符串 是的 N/A 1.0 发布包版本
dry_run
布尔 没有 1.0 如果为真,则只进行解析和验证。
注意:在2.x以下的版本中,此参数默认设置为true。
sign_immediately
布尔 没有 1.2 如果为真,则自动签署发布包版本。
storing_repository
字符串 没有 1.3 源Artifactory中用于存储发布包构件的存储库名称。如果没有提供,Artifactory将使用默认的(需要Artifactory 6.5或更高版本)。
描述
字符串 没有 1.0 发布包的描述
release_notes
字符串 没有 1.0 描述发布包版本的发布说明
release_notes.syntax
字符串 没有 “plain_text” 1.0 发布说明的语法
release_notes.content
字符串 是的 N/A 1.0 发行说明的内容
规范
对象 是的 N/A 1.0 通过在此发布包中收集和分发的工件描述规范
spec.source_artifactory_id
字符串 弃用 N/A 2.0
spec.queries
列表(对象) 是的 N/A 1.0 用于收集工件的查询对象的列表。
spec.queries.aql
字符串 是的 N/A 1.0 AQL查询从Artifactory收集工件
spec.queries.query_name
字符串 没有 “查询-{指数}” 1.0

显示查询对象时使用的名称

注意发布包查询名称长度必须在2到32个字符之间,并且必须以字母字符开头,后面跟着字母数字或“_-”。:'字符。

spec.queries.added_props
列表(对象) 没有 1.0 在发布包发布后将添加到工件的已添加属性的列表
spec.queries.added_props.key
字符串 是的 N/A 1.0
要在分布式构件上创建或更新的属性键。
spec.queries.added_props.values
列表(字符串) 没有 [] 1.0 发布包发布后要添加到属性键的值列表
spec.queries.mappings
列表(对象) 没有 1.0 映射的列表,在发布包发布后应用到工件路径
spec.queries.mappings.input
字符串 是的 N/A 1.0 用于工件路径的正则表达式匹配器
spec.queries.mappings.output
字符串 是的 N/A 1.0 替换由“输入”匹配器匹配的工件路径。捕获组可以作为“$1”使用。
spec.exclude_props_patterns
列表(字符串) 没有 2.5.0 发布包发布后要排除的Properties键的模式列表。这不会对“added_props”的特性。

响应状态码:

201 -成功创建发布包版本
409 -已经存在同名和版本的发布包
X -从Artifactory AQL传递错误的状态码

响应标头:N/A
生产:application / json

响应
{"name": "bundle-name", "version": "1.0", "state": "OPEN", "created": "2018-03-14T10:19:30.678Z", "artifacts": [{"checksum": "0651d26f4cc6ed60cd9d273c440daf7617459d3f6e3d512188ff19d4933e4ff6", "source_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "target_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "props": [{"key": "conan.package. py"。Version ", "values":["1.0"]},…]}, {"xray_scan_info": {"blocked": boolean。"blocked_reason": string (null if not blocked)},…], "archived": false}

NPM, Bower和NuGet包类型

当使用像NPM, Bower和NuGet这样需要传递依赖的包类型时,你需要创建两个单独的发布包:一个工件发布包,以及2。依赖项发布包。

您可以生成build.info使用JFrog CLI,并使用以下方法创建发布包依赖而且工件AQL查询:

工件AQL
构建。找到({“名称”:“buileName”,“数量”:“buildNumber”})其中包括(“module.artifact.item”)
依赖AQL
构建。找到({“名称”:“buildName”,“数量”:“buildNumber”})其中包括(“module.dependency.item”)

动态发布包

描述:创建、签署并分发一个特别的发布包到分发边。
自:2.8.1发布
安全:仅限认证用户。用户必须有匹配Bundle写权限
用法:发布api / v1 /动态/分发

{"storing_repository": "repo-name" "spec": {"queries": [{"aql": "items. "找到({\“美元和\”:[{\“美元或\”:[{\“回购\”:{\“$ eq \”,\“example-repo-local \"}}]}]})", " query_name demo-aql“:” " } ] }, " distribution_rules”:[{:“:域名?通配符*","city_name": "?通配符*","country_codes": ["?通配符*"]}]}

更新发布包版本

描述:更新现有的未签名发布包版本。

自:1.2
安全:仅限认证用户。用户必须有匹配Bundle写权限
用法:将api / v1 / release_bundle /:名称/:版本
请求头信息:
X-GPG-PASSPHRASE - String -签名密钥的密码短语,如果适用的话
消耗:application / json


旋度的例子
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -H "X-GPG-PASSPHRASE: keysPassphrase" -X PUT "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version" -T createbundle.json



updatebundle.json
{"dry_run": true|false, "sign_immediate ": true|false, "description": "" ", "storing_repository": "repository-name"|null, "release_notes": {"syntax": "markdown|asciidoc|plain_text", "content": ""}, "spec": {"queries": [{"aql": "items. "找到({\“回购\”,\“example-repo-local \”})”,“query_name”:“查询1”“映射”:[{“输入”:“正则表达式”,“输出”:“1美元/ 2美元”}],“added_props”:[{“关键”:“,”值 ": [""] } ], " exclude_props_patterns”:[" example_exclude_prop_pattern_1”、“example_example_prop_pattern_2 " ] } ] } }
类型 要求 默认值 描述
dry_run

布尔

没有

1.2

如果为真,则只进行解析和验证。
请注意:在2.x以下的版本中,此参数默认值之前设置为true。

sign_immediately

布尔

没有

1.2

如果为真,则自动签署发布包版本。

storing_repository

字符串

没有

1.3

源Artifactory中用于存储发布包构件的存储库名称。如果没有提供,Artifactory将使用默认的(需要Artifactory 6.5或更高版本)。

描述

字符串

没有

1.2

发布包的描述

release_notes

字符串

没有

1.2

描述发布包版本的发布说明

release_notes.syntax

字符串

没有

“plain_text”

1.2

发布说明的语法

release_notes.content

字符串

是的

N/A

1.2

发行说明的内容

规范

对象

是的

N/A

1.2

通过在此发布包中收集和分发的工件描述规范

spec.queries

列表(对象)

是的

N/A

1.2

用于收集工件的查询对象的列表。

spec.queries.aql

字符串

是的

N/A

1.2

AQL查询从Artifactory收集工件

spec.queries.query_name

字符串

没有

“查询-{指数}”

1.2

显示查询对象时使用的名称

注意发布包查询名称长度必须在2到32个字符之间,并且必须以字母字符开头,后面跟着字母数字或“_-”。:'字符。

spec.queries.added_props

列表(对象)

没有

1.2

在发布包发布后将添加到工件的已添加属性的列表

spec.queries.added_props.key

字符串

是的

N/A

1.2

要在分布式工件上创建或更新的属性键

spec.queries.added_props.values

列表(字符串)

没有

[]

1.2

发布包发布后要添加到属性键的值列表

spec.queries.mappings

列表(对象)

没有

1.2

映射的列表,在发布包发布后应用到工件路径

spec.queries.mappings.input

字符串

是的

N/A

1.2

用于工件路径的正则表达式匹配器

spec.queries.mappings.output

字符串

是的

N/A

1.2

替换由“输入”匹配器匹配的工件路径。捕获组可以作为“$1”使用。

spec.exclude_props_patterns
列表(字符串) 没有 2.5.0

发布包发布后要排除的Properties键的模式列表。这不会对“added_props”的特性。

响应状态码:

200 -成功更新发布包版本
400 -发布包版本已签署
X -从Artifactory AQL传递错误的状态码

响应标头:N/A
生产:application / json

响应
{"name": "bundle-name", "version": "1.0", "state": "OPEN", "created": "2018-03-14T10:19:30.678Z", "artifacts": [{"checksum": "0651d26f4cc6ed60cd9d273c440daf7617459d3f6e3d512188ff19d4933e4ff6", "source_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "target_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "props": [{"key": "conan.package. py"。Version ", "values":["1.0"]},…]}, {"xray_scan_info": {"blocked": boolean。"blocked_reason": string (null if not blocked)},…], "archived": false}

NPM, Bower和NuGet包类型

当使用像NPM, Bower和NuGet这样需要传递依赖的包类型时,你需要创建两个单独的发布包:一个工件发布包,以及2。依赖项发布包。

您可以生成build.info使用JFrog CLI,并使用以下方法创建发布包依赖而且工件AQL查询:

工件AQL
构建。找到({“名称”:“buileName”,“数量”:“buildNumber”})其中包括(“module.artifact.item”)
依赖AQL
构建。找到({“名称”:“buildName”,“数量”:“buildNumber”})其中包括(“module.dependency.item”)

签署发布包版本

描述:签署一个发布包版本,并将其存储在存储库中的源Artifactory(需要Artifactory 6.5或更高版本)中。
自:1.2
安全:仅限认证用户。用户必须有匹配Bundle写权限
用法:发布api / v1 / release_bundle /:名称/:版本/标志
请求头信息:X-GPG-PASSPHRASE - String -签名密钥的密码短语,如果适用的话

旋度的例子
$ curl -u user:password -H "Accept: application/json" -H "Content-Type: application/json" -H "X-GPG-PASSPHRASE: keysPassphrase" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/sign"
类型 要求 默认值 描述
storing_repository

字符串

没有

1.3

源Artifactory中用于存储发布包构件的存储库名称。如果没有提供,Artifactory将使用默认的(需要Artifactory 6.5或更高版本)。

signing_key_alias 字符串 没有 默认的关键 2.8.1发布 将用于签署发布包的密钥的名称。如果没有提供别名,将使用默认密钥。


响应状态码:

200 -成功签署发布包版本
400 -发布包版本已经签署

响应标头:N/A
生产:application / json

响应
{"name": "bundle-name", "version": "1.0", "state": "SIGNED", "created": "2018-03-14T10:19:30.678Z", "artifacts": [{"checksum": "0651d26f4cc6ed60cd9d273c440daf7617459d3f6e3d512188ff19d4933e4ff6", "source_repo_path": "conanx/demo/sample-conan1/1.0/testing/export/conanfile.py", "props": [{"key": "conan.package. py" . "Version ", "values":["1.0"]},…},…], "archived": false}

获取所有发布包的所有版本

描述:返回所有发布包版本。这个端点支持分页,每页最多返回10个发布包。

自:1.0
安全:仅限认证用户。只显示用户有读权限的release bundle。
用法:得到的api / v1 / release_bundle [?start_pos =位置):
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle?start_pos = 0 "


响应状态码:

200 -成功

响应标头:
X-RangeLimit-StartPos -数字
X-RangeLimit-EndPos -编号
X-RangeLimit-Total -数字

生产:application / json


响应
[{"name": "release-bundle-name", "version": "1.0.0", "state": "OPEN", "description": "release bundle描述文本","release_notes": {"content": "release notes文本","syntax": "plain_text"}, "created": "2018-03-14T17:36:35.416Z", "created_by":"[username]", "distributed_by":"[username]" "artifacts": [], "archived": false},…]


获取发布包版本

描述:返回所有发布包版本。这个端点支持分页,每页最多返回10个发布包。

自:1.0
安全:仅限认证用户。用户必须具有发布包的读权限。
用法:获得api / v1 / release_bundle /:名字(?start_pos =位置):
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name?start_pos = 0 "


响应状态码:

200 -成功
404 -释放包未找到
响应标头:
X-RangeLimit-StartPos -数字
X-RangeLimit-EndPos -编号
X-RangeLimit-Total -数字

生产:application / json


响应
[{"name": "release-bundle-name", "version": "1", "state": "OPEN", "description": "release bundle描述文本","release_notes": {"content": "release notes描述文本","syntax": "plain_text"}, "created": "2018-03-14T17:36:35.416Z", "created_by":"[username]", "distributed_by":"[username]", "artifacts": [{"checksum": "5880e05b5886a2fcd9a5a6dace38cd4f243affa06719c5e63116b16094e95a31", "props": [{"key": "build. "时间戳","values":["1521049005953"]},…, "source_repo_path: "artifactory-generic/artifactory-client-java-api-0.9.2.jar", "target_repo_path": "artifactory-generic/artifactory-client-java-api-0.9.2.jar"},…, "archived": false},…]


获取发布包版本

描述:查看特定的发布包版本。支持多种响应格式。

自:1.0
安全: 仅限认证用户。用户必须具有发布包的读权限。
用法:获得api / v1 / release_bundle /:名称/:版本吗?Format =json | JWS | jose]
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version?= json格式”

响应状态码:

200 -成功
404 -未找到发布包或发布包版本
响应标头:N/A

生产:application / json(默认)


= json格式
{"name": "Bundle -name", "version": "1.0.0", "state": "OPEN", "description": "Bundle描述","release_notes": {"content": "发布说明描述文本","syntax": "plain_text"}, "created": "2018-05-02T08:45:16.860Z", "created_by":"[username]", "distributed_by":"[username]", "artifacts": [{"source_repo_path": "example-repo-local/截图2018-04-05 at 10.47.16.png", "target_repo_path": "example-repo-local/ change/截图2018-04-05 at 10.47.16.png", "checksum":"5a730b01e81e2aa3b5188bcef3be8e4e7d61f83b6156b22a33c9a3f23ff38e19", "props": [{"key": "jira", "values":["1"]}]},…], "archived": false}
生产:应用程序/穆+ json(格式= jw)

格式= jw
{"header": "eyJraWQiOiIzZWFiNGEiLCJhbGciOiJSUzI1NiJ9", "payload":“eyJuYW1lIjoiYnVuZGxlLW5hbWUiLCJ2ZXJzaW9uIjoiMS4wLjAiLCJkZXNjcmlwdGlvbiI6IkJ1bmRsZSBkZXNjcmlwdGlvbiIsInJlbGVhc2Vfbm90ZXMiOnsiY29udGVudCI6InJlbGVhc2Ugbm90ZXMgZGVzY3JpcHRpb24gdGV4dCIsInN5bnRheCI6InBsYWluX3RleHQifSwiY3JlYXRlZCI6IjIwMTgtMDUtMDJUMDg6NDU6MTYuODYwWiIsImFydGlmYWN0cyI6W3sicmVwb19wYXRoIjoiZXhhbXBsZS1yZXBvLWxvY2FsL2FjaGFuZ2UvU2NyZWVuIFNob3QgMjAxOC0wNC0wNSBhdCAxMC40Ny4xNi5wbmciLCJjaGVja3N1bSI6IjVhNzMwYjAxZTgxZTJhYTNiNTE4OGJjZWYzYmU4ZTRlN2Q2MWY4M2I2MTU2YjIyYTMzYzlhM2YyM2ZmMzhlMTkiLCJwcm9wcyI6 w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2icgyks5wbmcilcjjagvja3n1bsi6ijizmzy2mzk5n2eyzgyxy2fmzdzhzwi1njkxnjzhzjkxzjyzzdqwzjrmndfinjgxy2jln2rmmjlkmwe1yze3mgeilcjwcm9wcyi6w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2ideucg5niiwiy2hly2tzdw0ioii1ytczmgiwmwu4mwuyywezyjuxodhiy2vmm2jlogu0ztdknjfmodninje1 nmiymmezm2m5ytnmmjnmzjm4zte5iiwichjvchmiolt7imtlesi6imppcmeilcj2ywx1zxmiolsimsjdfv19lhsicmvwb19wyxroijoizxhhbxbszs1yzxbvlwxvy2fsl2fjagfuz2uvu2nyzwvuifnob3qgmjaxoc0wnc0wnsbhdcaxmc40ny4xniaomykucg5niiwiy2hly2tzdw0ioijjymzjzjk0nzkzyzq1ztk5nmy2ytqxody5m2zjyjbhzdu1nzrkmzjiyzuwn2njnmvjmdazmdkxmmfjmwq3mduziiwichjvchmiolt7imtlesi6imppcmeilcj2ywx1zxmiolsimsjdfv19xx0”、“签名”:“QWzTD2uXhLw5FW1483qEYA_h47jak8YE24mLwuF1UcT9yTYZBdEMrFWTz0uZVrPtlqi65Ek6oNeSFZO657sjpuTOpfPIg053nxOoIa4mxlxMS5nCM50Xj3qobcll0P_sX8Il8AGWbX9oI9HvSGAKYbxmu-3kVs0W1tCacb_VuHsL5KkgY2Thq5dBKhQ73aS1cE-CnFobQKGcsx10eFhEFV8VbajGLpKV8nhERDE4XA5oRARA-CczLlEYNnvn5aRD-Q1n5yI7Cys8hoDIxDLT2OCQ5alb9h4D4w7mGJrtQG0xNWsstGOTSL1HLXAe27qvBxCIsp6afX675AkOs1Eg0g”}
生产:应用程序/穆(格式=穆)

格式=穆
eyJraWQiOiIzZWFiNGEiLCJhbGciOiJSUzI1NiJ9.eyJuYW1lIjoiYnVuZGxlLW5hbWUiLCJ2ZXJzaW9uIjoiMS4wLjAiLCJkZXNjcmlwdGlvbiI6IkJ1bmRsZSBkZXNjcmlwdGlvbiIsInJlbGVhc2Vfbm90ZXMiOnsiY29udGVudCI6InJlbGVhc2Ugbm90ZXMgZGVzY3JpcHRpb24gdGV4dCIsInN5bnRheCI6InBsYWluX3RleHQifSwiY3JlYXRlZCI6IjIwMTgtMDUtMDJUMDg6NDU6MTYuODYwWiIsImFydGlmYWN0cyI6W3sicmVwb19wYXRoIjoiZXhhbXBsZS1yZXBvLWxvY2FsL2FjaGFuZ2UvU2NyZWVuIFNob3QgMjAxOC0wNC0wNSBhdCAxMC40Ny4xNi5wbmciLCJjaGVja3N1bSI6IjVhNzMwYjAxZTgxZTJhYTNiNTE4OGJjZWYzYmU4ZTRlN2Q2MWY4M2I2MTU2 yjiyytmzyzlhm2yym2zmmzhlmtkilcjwcm9wcyi6w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2icgyks5wbmcilcjjagvja3n1bsi6ijizmzy2mzk5n2eyzgyxy2fmzdzhzwi1njkxnjzhzjkxzjyzzdqwzjrmndfinjgxy2jln2rmmjlkmwe1yze3mgeilcjwcm9wcyi6w3sia2v5ijoiamlyysisinzhbhvlcyi6wyixil19xx0seyjyzxbvx3bhdggioijlegftcgxllxjlcg8tbg9jywwvywnoyw5nzs9ty3jlzw4gu2hvdcaymde4lta0lta1igf0idewljq3lje2ideucg5niiwiy2hly2tzdw0ioii1ytczmgiwmwu4mwuyYWEzYjUxODhiY2VmM2JlOGU0ZTdkNjFmODNiNjE1NmIyMmEzM2M5YTNmMjNmZjM4ZTE5IiwicHJvcHMiOlt7ImtleSI6ImppcmEiLCJ2YWx1ZXMiOlsiMSJdfV19LHsicmVwb19wYXRoIjoiZXhhbXBsZS1yZXBvLWxvY2FsL2FjaGFuZ2UvU2NyZWVuIFNob3QgMjAxOC0wNC0wNSBhdCAxMC40Ny4xNiAoMykucG5nIiwiY2hlY2tzdW0iOiJjYmZjZjk0NzkzYzQ1ZTk5NmY2YTQxODY5M2ZjYjBhZDU1NzRkMzJiYzUwN2NjNmVjMDAzMDkxMmFjMWQ3MDUzIiwicHJvcHMiOlt7ImtleSI6ImppcmEiLCJ2YWx1ZXMiOlsiMSJdfV19XX0.QWzTD2uXhLw5FW1483qEYA_h47jak8YE24mLwuF1UcT9yTYZBdEMrFWTz0uZVrPtlqi65Ek6oNeSFZO657sjpuTOpfPIg053nxOoIa4mxlxMS5nCM50Xj3qobcll0P_sX8Il8AGWbX9oI9HvSGAKYbxmu-3kVs0W1tCacb_VuHsL5KkgY2Thq5dBKhQ73aS1cE-CnFobQKGcsx10eFhEFV8VbajGLpKV8nhERDE4XA5oRARA-CczLlEYNnvn5aRD-Q1n5yI7Cys8hoDIxDLT2OCQ5alb9h4D4w7mGJrtQG0xNWsstGOTSL1HLXAe27qvBxCIsp6afX675AkOs1Eg0g


获取最后一个发布包版本

描述:检索发布包的最新版本。
请注意: Latest是保留词。发布包版本不能包含此词。
自:tripwire
安全:仅限认证用户。用户必须具有发布包的读权限。
用法:/ api / v1 /release_bundle /名称/:最新
请求头信息:N/A
消耗:N/A
旋度


旋度的例子
$ curl -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/LATEST”

响应状态码:
200 -成功
403 -没有发布包的权限
404 -没有找到发布包或发布包版本
响应

= json格式
{"name": "the_release_bundle", "version": "6", "storing_repository": "release-bundles", "description": "Maven bundle描述","created": "2020-05-03T12:33:40.759+0300", "created_by": "[username]", "distributed_by": "[username]", "artifacts": [{"checksum": "d4f8baa9d0b46aa1e5d9e60bfd7acc1265c51723844d81ad0b2dfc9f702e89f8", "props": [], "sourceRepoPath": "release-bundles/the_release_bundle/6/example-repo-local/folder1/public_key.txt", "targetRepoPath":"example-repo-local/folder1/public_key.txt"}, {"checksum": "c7e875ebb4a69de287eb040375a88d254acf85c2b69dc9a59689d657e7f2d3cb", "props": [], "sourceRepoPath": "release-bundles/the_release_bundle/6/example-repo-local/audio-1.5.0.tar.gz", "targetRepoPath": "example-repo-local/audio-1.5.0.tar.gz"}], "artifacts_size": 2892, "archived": false, "state": "SIGNED", "spec": {"queries": [{"aql": "items "。find({\"repo\": \"example-repo-local\"})", "query_name": "query-0", "mappings": [], " adde_props ": [], "query_type": "AQL"}], "exclude_props_patterns": ["example_exclude_prop_pattern_1", "example_example_prop_pattern_2"]}}

删除发布包所有版本

描述:只删除JFrog发行版上发布包的所有版本若要从分布边缘删除,请参见从分发边缘删除发布包版本

自:1.0
安全: 仅限认证用户。用户必须具有发布包的删除权限。
用法:删除/ api / v1 /release_bundle /:名称
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -u user:password -X DELETE "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name"


响应状态码:

204 -成功删除发布包版本
404 -释放包未找到

响应标头:N/A

生产:N/A

删除发布包版本

描述:仅在JFrog发行版上删除特定的发布包版本。

自:1.0
安全: 仅限认证用户。用户必须具有发布外滩的删除权限le将其从分布边缘删除 它分布在哪里。看到从分发边缘删除发布包版本
用法:删除/ api / v1 /release_bundle /:名称/版本
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -u user:password -X DELETE "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version"


响应状态码:

204 -成功删除发布包版本
404 -未找到发布包或发布包版本

响应标头:N/A
生产:N / A

导出发布包版本存档文件

描述:触发JFrog发行版的发布包导出过程。有关更多信息,请参见在气隙环境中分发发布包

注意:导入过程在分布边缘上执行。
自:
2.5
安全:仅限认证用户。用户必须有匹配发布Bundle发布权限
用法:发布api / v1 /出口/ release_bundle /{名称}/ {version}

旋度的例子
curl -XPOST 'http://localhost:8082/distribution/api/v1/export/release_bundle/{name}/{version}' -uadmin:密码

类型

要求

默认值

描述

的名字

字符串

是的

N/A

2.5

发布包名称

版本

字符串

是的

N/A

2.5

发布包版本

响应状态码:

202 -成功触发生成归档导出版本的过程
生成导出版本归档文件失败

获取导出的发布包版本状态

描述:获取导出的发布包进程的状态。有关更多信息,请参见在气隙环境中分发发布包
自:2.5
安全:仅限认证用户。用户必须有匹配发布Bundle发布权限
用法:得到的api / v1 /出口/ release_bundle /{名称}/ {version} /状态
消耗:application / json

旋度的例子
curl -XGET 'http://localhost:8082/distribution/api/v1/export/release_bundle/{name}/{version}/status' -uadmin:密码

响应状态码:

202 -请求成功
400 -返回状态失败

= json格式
{"status":"IN_PROGRESS|FAILED|NOT_TRIGGERED|COMPLETED", "message":"optional message in case FAILED and we have some info to pass", "download_url":"http://artifactory_url/path_if_status_completed"}

删除导出的发布包归档文件

描述:从发行版中删除导出的发布包存档。有关更多信息,请参见在气隙环境中分发发布包
自:2.5
安全:仅限认证用户。用户必须具有Release Bund的删除权限勒。
用法:删除api / v1 /出口/ release_bundle /{名称}/ {version}
消耗:N/A

旋度的例子
curl -X DELETE 'http://localhost:8082/distribution/api/v1/export/release_bundle/{name}/{version}



分布

发布发布包版本

描述:将发布包版本安排到分发边缘。将返回动作跟踪ID。
自:1.0
安全:仅限认证用户。用户必须具有发布包的发布权限。分布边将根据用户的权限进行筛选。

2.13.2版本的权限更改

从发行版2.13.2开始,用户必须具备:

  • 读取和部署目标存储库上的权限
  • 权限在目标存储库上
  • D分配权限在所需的发布包上

这与以前的版本相比是一个突破性的变化,任何拥有任何权限的用户都可以分发发布包。


用法:POST / api / v1 /分销/:名称/:版本
请求头信息:N/A
消耗:application / json

旋度的例子
$ curl -u user:password -H "Content-Type: application/json" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/distribution/:name/:version" -T distribute.json
distribute.json
{"dry_run": true|false, "auto_create_missing_repositories": true|false, "distribution_rules": [{"site_name": "? "通配符*","city_name": "?通配符*","country_codes": ["?通配符*"]}]}
类型 要求 默认值 描述

dry_run

布尔 没有

如果为真,则只进行解析和验证。
请注意:在2.x以下的版本中,此参数默认值之前设置为true。

auto_create_missing_repositories

布尔 没有

从2.8.1版开始。

如果这是真的,这使您能够在分发发布包时自动在目标边缘或Artifactory上创建缺失的目标存储库。有关更多信息,请参见目标存储库自动创建

distribution_rules

列表(对象) 是的 N/A 描述用于选择“分布边缘”的筛选器。必须解析至少一条边。

distribution_rules.site_name

字符串 没有 “*” 网站名称的通配符过滤器

distribution_rules.city_name

字符串 没有 “*” 站点城市名称的通配符筛选器

distribution_rules.country_codes

列表(字符串) 没有 ["*"] 用于站点国家代码的通配符过滤器

响应状态码:

200 - dry_run成功
202 -成功调度分发
发布包版本必须在发布前签署
404 -未找到发布包或发布包版本
响应标头:N/A


生产:
application / json

响应
{"id": 188527534551203840, "sites": [{"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"},…]}


停止发布包版本分发

描述:停止发布包版本分发到分发边缘。

自:1.1
安全:仅限认证用户。用户必须具有发布包的发布权限。分布边将根据用户的权限进行筛选。
用法:把/ api / v1 /分销/:名称/:版本/中止
请求头信息:N/A
消耗:application / json


旋度的例子
$ curl -u user:密码-X PUT "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/distribution/:name/:version/abort"

响应状态码:

202 -成功计划分发中断。返回受停止请求影响的分布边列表。

204 -没有发现正在进行的分发边
404 -未找到发布包或发布包版本

响应标头:N/A

生产:application / json


响应
[{"name":"US_NY_Art01", "service_id":"jfrt@01cejrg5ack7dd1v3r213a0vx9", "type":"edge"}, {"name":"UK_LN_Art02", "service_id":"jfrt@01cejrfwjtt65d1g9asq8h1cda", "type":"edge"}]

删除从发行版边缘发布捆绑包版本

描述:调度发布包版本以便在分发边中删除。将返回动作跟踪ID。有一个参数,用于在成功时从JFrog分发中保留或删除发布包。

自:1.0
安全:仅限认证用户。用户必须具有发布包的分发删除权限。分布边将根据用户的权限进行筛选。
用法:POST / api / v1 /分销/:名称/:/删除版本
请求头信息:N/A
消耗:application / json


旋度的例子
$ curl -u user:password -H "Content-Type: application/json" -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/distribution/bundle98/version100/delete" -T delete.json



delete.json
{"dry_run": true|false, "distribution_rules": [{"site_name": "? "通配符*","city_name": "?通配符*","country_codes": ["?通配符*"]}],"on_success": "keep|delete"}
类型 要求 默认值 描述
dry_run
布尔 没有 真正的
如果为真,则只进行解析和验证
distribution_rules
列表(对象) 是的 N/A 描述用于选择分布边的过滤器。必须解析至少一条边。
distribution_rules.site_name
字符串 没有 “*” 网站名称的通配符过滤器
distribution_rules.city_name
字符串 没有 “*” 站点城市名称的通配符筛选器
distribution_rules.country_codes
列表(字符串) 没有 ["*"] 用于站点国家代码的通配符过滤器
on_success
字符串 没有 保持 在指定的Distribution Edge/s中完成删除后,在JFrog Distribution本身的发布包版本上执行的操作。


响应状态码:

200 - dry_run成功
202 -成功计划删除
404 -未找到发布包或发布包版本

响应标头:N/A

生产:application / json


响应
{"id": 188527534551203840, "sites": [{"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"},…]}


获取分发状态详细信息

描述:获取所有发行版的状态详细信息。

自:1.0
安全:仅限认证用户。仅显示用户具有读权限的发布包的分发。
用法:得到的api / v1 / release_bundle /分布
请求头信息:N/A

消耗:N/A

旋度的例子
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/distribution"

响应状态码:

200 -成功

响应标头:N/A

生产:application / json


响应
[{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS.]心肌梗死:秒+ UTF]”、“finish_time”:[YYY-MM_DDTHH: HH: MM: SS。MI:Sec+UTF],"duration":[milliseconds], "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "city_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" file_errors": [], "files_in_progress":[]},…},…]


通过发布包名称获取分发状态详细信息

描述:获取发布包的所有版本的所有发行版的状态详细信息。

自:1.0
安全:仅限认证用户。用户必须具有发布包的读权限。
用法:获得api / v1 / release_bundle /:名称/分布
请求头信息:N/A

消耗:N/A

旋度的例子
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/distribution"


响应状态码:

200 -成功

响应标头:N/A

生产:application / json


响应
[{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS.]心肌梗死:秒+ UTF]”、“finish_time”:[YYY-MM_DDTHH: HH: MM: SS。MI:Sec+UTF], "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "city_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" file_errors": [], "files_in_progress":[]},…},…]


按发布包版本获取分发状态详细信息

描述:获取特定发布包版本的所有发行版的状态详细信息。

自:1.0
安全:仅限认证用户。用户必须具有发布包的读权限。
用法:获得api / v1 / release_bundle /:名称/:版本/分布
请求头信息:N/A

消耗:N/A

旋度的例子
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/distribution"


响应状态码:

200 -成功

响应标头:N/A

生产:application / json


响应
[{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" file_errors": [], "files_in_progress":[]},…},…]


通过跟踪器Id获取分发状态详细信息

描述:获取特定发行版的状态详细信息。

自:1.0
安全:仅限认证用户。用户必须具有发布包的读权限。
用法:获得api / v1 / release_bundle /:名称/版本/分销/:tracker_id
请求头信息:N/A

消耗:N/A

旋度的例子
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/distribution/:tracker_id”

响应状态码:

200 -成功

响应标头:N/A

生产:application / json


响应
{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS. "心肌梗死:秒+ UTF]”、“finish_time”:[YYY-MM_DDTHH: HH: MM: SS。MI:Sec+UTF], "type": "distribute | delete_release_bundle_version", "release_bundle_name": "release-bundle", "release_bundle_version": "1.0.0", "status": "Not distributed | In progress | Completed | Failed", "distribution_rules": [{"site_name": "*", "city_name": "*", "country_codes":["*"]},…], "sites": [{"status": "Not distributed | In progress | Completed | Failed", "general_error": "<错误解释>","target_artifactory": {"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"}, "total_files": 4, "total_bytes": 4403784, "distributed_bytes": 0, "distributed_files": 0, "general_error": "" file_errors": [], "files_in_progress":[]},…]}

令牌管理

创建令牌

描述:为现有(非瞬态)用户创建身份验证令牌。

自:1.2
安全:为自己和其他人(或具有管理范围)管理,用户仅为自己
用法:POST / api / v1 /安全/令牌
请求头信息:N/A
消耗:应用程序/ x-www-form-urlencoded


旋度的例子
$ curl -X POST -u user:password http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token -d 'username=user' -d 'refreshable=true' -d 'scope= application -permissions%2Fadmin' -d "expires_in=123"


响应状态码:

201 -成功创建令牌

响应标头:N/A

生产:application / json


响应
{"access_token": " eyj2zxiioiiyiiwidhlwijoislduiiwiywxnijoiulmyntyilcjrawqioij6wwfwqjvfrlpkoxlpbwtcnkztbdatswfhmhrpwldlx293c1btvtntzmdnin0 . eyjzdwiioiwqtcgvybwqtcgvybwlzc2lvbnncl2fkbwluiiwiyxvkijoiamzkc0awmwcl2fkbwluiiwiyxvkijoiamzkc0awmnomrum3nzodbznm4zdjizmddiosisimlzcyi6impmzhnamdfjada1dgo0bjnzczgwczzum3yymza3yjkilcjianrpijoiytqzm2ywzdatntq5oc00yji5lwe5odctzji3mtnkymmyotdmin0。e7csehchsojxz1jmhdvu_ij51yqyxyifmxusexqzk78pi_7yhljcy1irg6vmthdv8_db2c2csanzydubje253tmglgweypuqqeseh3j3fyfaaw4xxurlkt5inbwklu - dvpg5772zs1y6ypu8oogc2dwg_bhuvjmtj5vqaw0ws5ta2cj0df40jlqkcyn_jcgzq2rcxr2c70jif9fa0obaikvt - dgusngu83dnr - yf5h3fmdb129awxe4_flldltmk8iaarujsidlvexdlezval4nlrzcxa ", "refresh_token": "f96bda0c-ab50-4b7e-96f1-be8bd20605a3", "expires_in": 123, "scope": "应用权限/admin", "token_type": "Bearer"}
类型 要求 默认值 描述
grant_type 字符串 没有 client_credentials 用于验证请求的授权类型。在这种情况下,唯一支持的值是“client_credentials”,如果不指定该参数,该值也是默认值。
用户名 字符串 是的
为其创建令牌的用户名。非管理员用户只能为自己创建令牌,因此他们必须指定自己的用户名。
范围 字符串 没有
要分配给令牌的范围,以空格分隔的范围令牌列表形式提供。目前只有一个可能的范围选项:
applied-permissions /管理
expires_in 没有 0

令牌有效的时间(以秒为单位)。若要指定永不过期的令牌,请设置为0。

可刷新的 布尔 没有 如果为真,则此令牌是可刷新的,并且刷新令牌在过期后可用于用新令牌替换它。

刷新令牌


描述:刷新现有(非瞬态)用户的身份验证令牌。
自:1.2
安全:Admin为自己和其他人(或与管理范围),用户仅为自己
用法:POST / api / v1 /安全/令牌
请求头信息:N/A
消耗:应用程序/ x-www-form-urlencoded


类型 要求 默认值 描述
grant_type 字符串 是的
用于验证请求的授权类型。在这种情况下,唯一支持的值是“refresh_token”。
access_token 字符串 是的
要刷新的访问令牌。
refresh_token 字符串 是的
需要刷新的接入令牌的刷新令牌。
expires_in 没有 0

令牌有效的时间(以秒为单位)。若要指定永不过期的令牌,请设置为0。

可刷新的 布尔 没有 真正的 如果为真,则此令牌是可刷新的,并且刷新令牌在过期后可用于用新令牌替换它。
旋度的例子
$ curl -X POST -u user:password http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token -d "grant_type=refresh_token" -d "refresh_token=fgsg53t3g…" -d "access_token=gsfdgw35gt…"


响应状态码:

200 -成功刷新令牌

响应标头:N/A

生产:application / json


响应
{"access_token": " eyj2zxiioiiyiiwidhlwijoislduiiwiywxnijoiulmyntyilcjrawqioij6wwfwqjvfrlpkoxlpbwtcnkztbdatswfhmhrpwldlx293c1btvtntzmdnin0 . eyjzdwiioiwqtcgvybwqtcgvybwlzc2lvbnncl2fkbwluiiwiyxvkijoiamzkc0awmwcl2fkbwluiiwiyxvkijoiamzkc0awmnomrum3nzodbznm4zdjizmddiosisimlzcyi6impmzhnamdfjada1dgo0bjnzczgwczzum3yymza3yjkilcjianrpijoiytqzm2ywzdatntq5oc00yji5lwe5odctzji3mtnkymmyotdmin0。e7csehchsojxz1jmhdvu_ij51yqyxyifmxusexqzk78pi_7yhljcy1irg6vmthdv8_db2c2csanzydubje253tmglgweypuqqeseh3j3fyfaaw4xxurlkt5inbwklu - dvpg5772zs1y6ypu8oogc2dwg_bhuvjmtj5vqaw0ws5ta2cj0df40jlqkcyn_jcgzq2rcxr2c70jif9fa0obaikvt - dgusngu83dnr - yf5h3fmdb129awxe4_flldltmk8iaarujsidlvexdlezval4nlrzcxa ", "refresh_token": "f96bda0c-ab50-4b7e-96f1-be8bd20605a3", "expires_in": 123, "scope": "应用权限/admin", "token_type": "Bearer"}


撤销令牌

描述:通过指定令牌或token_id来撤销访问令牌

自:1.2
安全:管理
用法:POST / api / v1 /安全/令牌/撤销
请求头信息:N/A
消耗:应用程序/ x-www-form-urlencoded


旋度的例子
$ curl -u user:password -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token/revoke" -d "token=fasdt3…"

$ curl -u user:password -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token/revoke" -d "token_id=7e0eec…"



类型 要求 描述
令牌 字符串 Yes(如果token_id为空) 要撤销的令牌。如果指定了token_id,则不能指定。
token_id
字符串 是(如果令牌为空) 要撤销的令牌的ID。如果指定了令牌,则不能指定。

响应状态码:

200 -成功撤销令牌
404 -令牌未找到


获取代币信息

描述:获取特定用户的访问令牌列表。

自:1.2
安全:管理
用法:GET / api / v1 /安全/令牌


旋度的例子
$ curl -u user:密码-X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token"


响应状态码:

200 -成功检索令牌列表
404 -没有找到令牌
响应标头:N/A

生产:application / json


响应
{"tokens": [{"token_id": "58ae2b6f-085d-493e-b7c3- 6700c034 ", "issuer": "jfds@01ch05tj4n3ss80s6n3v2307b9", "subject": "admin", "issued_at": 1530088236, "expiry": 2476168236, "refreshable": false}, {"token_id": "5c0399f9-de42-4cc8-bbd6-ba04a8b861a7", "issuer": "jfds@01ch05tj4n3ss80s6n3v2307b9", "subject": "lenon", "issued_at": 1530089226, "refreshable": true}]}



权限管理

权限操作类型:

d

删除

x

分发

按名称创建/更新目标权限

可以通过指定惟一的权限名称来创建和覆盖权限。

目标权限用于定义与分发边交互的权限,例如分发和删除发布包。

目标权限允许的操作:x, d。

权限应用于分布边,其信息由传递的通配符表达式匹配。

描述:根据权限范围为用户和组创建/更新权限。响应体将包含创建/更新的权限。

自:2.0
安全:管理。
用法:把/ api / v1 /安全/权限/:名字
请求头信息:N/A
消耗:application / json

旋度的例子
$ curl -X PUT -u user:password -H "Content-Type: application/json" "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions/:name" -T permission.json
permission.json
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[x]}}}


响应状态码:
200 -权限设置成功
响应标头:N/A
生产:application / json

响应
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{" user1 ": [x]},“团体”:{“group1”:[x]}}}


获得所有权限

描述:获得所有权限。

自:2.0
安全:管理。

用法:/ api / v1 /安全/权限
请求头信息:N/A
消耗:application / json


旋度的例子
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions”


响应状态码:

200 -成功

响应标头:N/A

生产:application / json


响应
[{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[" x " ] } } } ]

通过姓名获得许可

描述:按名称获取权限信息。

自:2.0
安全:管理。
用法:/ api / v1 /安全/权限/:名字
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -X GET -u user:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions/:name”

响应状态码:

200 -成功
404 -未找到权限

响应标头:N/A

生产:application / json


响应
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[x]}}}

按名称删除权限

描述:根据id删除权限

自:1.0
安全:管理。
用法:删除/ api / v1 /安全/权限/:名称
请求头信息:N/A
消耗:N/A


旋度的例子
$ curl -X DELETE -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions/:name”

响应状态码:

204 -成功删除权限
404 -未找到权限

响应标头:N/A

生产:N/A


支持

创建支持包

描述:创建支持包
自:1.6
安全:管理员只
用法:POST / api / v1 /系统/支持/包
请求头信息:N/A
消耗:application / json
生产:application / json

旋度的例子
$ curl -X POST -u user:密码-H "Content-Type: application/json" "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle" -T create_support_bundle.json
create_support_bundle.json
{"parameters": {"configuration": true|false, "logs": {"include": true|false, "start_date":基于ISO8601模式的日期:YYYY-MM-DD, "end_date":基于ISO8601模式的日期:YYYY-MM-DD,}, "system": true|false, "thread_dump": {"count": 1, "interval":0}}, "description": "", "name": ""}
类型 要求 默认值 描述
参数

对象

没有

N/A

1.6

支持包参数

parameters.configuration

布尔

没有

真正的

1.6

收集配置文件

parameters.logs

对象

没有

N/A

1.6

收集所有系统日志,如果没有指定此字段,支持包将收集前一天到今天的日志。

parameters.logs.include

布尔

没有

真正的

1.6

收集系统日志。

parameters.logs.start_date

字符串

没有

end_date的前一天

1.6

获取日志的起始日期
parameters.logs.end_date
字符串 没有 今天 1.6 获取日志的结束日期
系统

布尔

没有

真正的

1.6

关于系统的信息,包括存储、系统属性、cpu和JVM信息
thread_dump

对象

没有

N/A

1.6

为所有正在运行的线程创建一个线程转储
thread_dump.count

整数

没有

1

1.6

要收集的线程转储数


thread_dump.interval

整数

没有

0


1.6

收集线程转储的时间间隔(以毫秒为单位)


描述

字符串

没有

N/A

1.6

支持包描述


的名字
字符串 没有 N/A 1.6 支持包名称


响应状态码:

成功创建支持包

响应标头:N/A
生产:application / json

response.json
{"id": 20181230145474-53666747, "artifactory": {"service_id": "jfds@...", "bundle_url": http://:/artifactory/support-bundles//jfds/<服务id>}}

创建特定的支持包

描述:创建一个新的支持包,并为其分配一个特定的ID
自:1.6
安全:管理员只
用法:把/ api / v1 /系统/支持/包/:bundle_id
请求头信息:N/A
消耗:application / json
生产:application / json

旋度的例子
$ curl -X PUT -u user:password -H "Content-Type: application/json" "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id" -T create_support_bundle.json
create_support_bundle.json
{"parameters": {"configuration": true|false, "logs": {"include": true|false, "start_date":基于ISO8601模式的日期:YYYY-MM-DD, "end_date":基于ISO8601模式的日期:YYYY-MM-DD,}, "system": true|false, "thread_dump": {"count": 1, "interval":0}}, "description": "", "name": ""}
类型 要求 默认值 描述
参数

对象

没有

N/A

1.6

支持包参数

parameters.configuration

布尔

没有

真正的

1.6

收集配置文件

parameters.logs

对象

没有

N/A

1.6

收集所有系统日志,如果没有指定此字段,支持包将收集前一天到今天的日志。

parameters.logs.include

布尔

没有

真正的

1.6

收集系统日志。

parameters.logs.start_date

字符串

没有

end_date的前一天

1.6

获取日志的起始日期
parameters.logs.end_date
字符串 没有 今天 1.6 获取日志的结束日期
系统

布尔

没有

真正的

1.6

关于系统的信息,包括存储、系统属性、cpu和JVM信息
thread_dump

对象

没有

N/A

1.6

为所有正在运行的线程创建一个线程转储
thread_dump.count

整数

没有

1

1.6

要收集的线程转储数


thread_dump.interval

整数

没有

0


1.6

收集线程转储的时间间隔(以毫秒为单位)


描述

字符串

没有

N/A

1.6

支持包描述


的名字
字符串 没有 N/A 1.6 支持包名称

响应状态码:

成功创建支持包
在Artifactory中不存在相应的存储库。支持包将持久化到每个分发边缘中的文件系统。
404 -无法找到Artifactory身份验证提供程序
响应标头:N/A
生产:application / json

response.json
{"id": 20181230145474-53666747, "artifactory": {"service_id": "jfds@...", "bundle_url": http://:/artifactory/support-bundles//jfds/<服务id>}}

获取支持包信息

描述:获取支持包信息
自:1.6
安全:仅限管理员
用法:GET / api / v1 /系统/支持/包/:bundle_id
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id”

响应状态码:

成功获得支持包信息
404 -没有找到支持包
响应标头:N/A
生产:application / json

info_support_bundle.json
{"parameters": {"configuration": true, "logs": {"include": true, "start_date": 2019-01-20, "end_date": 2019-01-21}, "system": true, "thread_dump": {"count": 2, "interval": 100}}, "description": "" name": "" artifactory": {"service_id": "" bundle_url": http://:/artifactory/support-bundles//jfds/<服务id>}}, status: success, created: 2019-02-02,}


获取支持包

描述:下载支持包
自:1.6
安全:管理员只
用法:GET / api / v1 /系统/支持/包/:bundle_id /存档
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -X GET -u user:password "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id/archive"——output support_bundle.zip

响应状态码:

成功下载支持包
404 -没有找到支持包
响应标头:N/A

response.json
内容类型:application/zip


删除支持包

描述:删除支持包
自:1.6
安全:管理员只
用法:删除/ api / v1 /系统/支持/包/:bundle_id
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -X DELETE -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle/:bundle_id”

响应状态码:

204 -成功删除支持包
404 -没有找到支持包
响应标头:N/A

response.json
204无内容


列出支持包

描述:
获取所有支持包的列表
自:1.6
安全:管理员只
用法:GET / api / v1 /系统/支持/包
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundles”

响应状态码:

200 -成功
响应标头:N/A

response.json
{"count": 2, "bundles": [{id: 20181230145474-53666747,描述:"",名称:"",已创建:2018-12-30,},....]}

维护

生成停止所有任务令牌

描述:生成一个执行令牌以停止所有分发任务。此键与停止所有任务REST API。
自:1.8.1
安全:管理员只
用法:GET / api / v1 /维护/ generate_token / stop_all
请求头信息:N/A
消耗:application / json
生产:application / json

请求示例
$ curl -XGET -u admin:密码为http://localhost:8080/api/v1/maintenance/generate_token/stop_all
response.json
{"token":"JEv4CnrZNhmgtkRV9aKmGsrozGEoaoBs3okv9SFusdhR3hUKiWdKwAhoeP1SLEy8hFZqFhE"}


响应状态码:

200 -成功


停止所有任务

描述:停止所有正在运行的分发任务。需要一个执行令牌
自:1.8.1
安全:仅限管理员
用法:POST / api / v1 /维护/执行/ stop_all
请求头信息:N/A
消耗:内容类型:文本/平原
生产: application / json

请求示例
$ curl -XPOST -H "Content-Type: text/plain" -u admin:password "http://localhost:8080/api/v1/maintenance/execute/stop_all?dryRun=false"——data-raw "token…"
类型 要求 默认值 描述
dryRun

查询参数

是的

真正的

1.8.1

如果为真,则只进行解析和验证。

response.json
{"trackers_db_info": {"affected_edge_tracker_artifacts": 8, "affected_edge_trackers": 1, "affected_trackers": 1}, "tasks_queue_flushed": true}

响应状态码:

202 -成功中止所有分发任务

响应标头:N/A


x光

触发x射线发布包版本索引

描述:触发发布包版本的x射线索引。
自:2.0.0
安全:仅限认证用户。用户必须有匹配Bundle写权限
用法:POST /api / v1 / release_bundle /:名称/版本/ trigger_xray_scan
请求头信息:N/A
消耗:N/A

旋度的例子
$ curl -X POST -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/trigger_xray_scan”

响应状态码:

200 -成功


进出口

获取源Artifactory id

描述:列出包含发布包的Artifactory id。用作将发布包元数据导出到相关分发服务之前的初步步骤。
注:为了支持JFrog平台中引入的Artifactory(从7.x开始)和Distribution(从2.4开始)之间的一对一配对比例,您需要根据该命令生成的列表将Distribution元数据迁移到Distribution服务中。有关更多信息,请参见分发REST API
自:2.4
安全:需要管理员用户
用法:GET / api / v1 /系统/迁移/ import_export / source_artifactories
消耗:application / json
生产:application / json
示例用法:

$ curl -X GET -u user:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/import_export/source_artifactories”

导出发行版发布包元数据

描述:将分发服务上的发布包元数据导出到export.zip文件
注:为了支持JFrog平台中引入的Artifactory_instance_ID的一对一配对比例,你需要根据与相关的分发服务相关联,将分发发布包元数据迁移到相关的分发服务。
自:
2.4
安全:需要管理员用户
用法:POST / api / v1 /系统/迁移/出口/ < Artifactory_instance_ID >- o export.zip
生产应用程序/邮政编码

示例用法:

$ curl -X POST -u user:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/export/DEV_Art01 -o export.zip”

样品反应:

请举例说明

导入发行版发布包元数据

描述:将发布包从导出的zip文件导入到新创建的分发服务。有关更多信息,请参见分发REST API
注:为了支持Artifactory(从7.x开始)和Distribution(从2.4开始)之间的一对一配对,运行这个命令从核心分发服务导入发布包元数据到新创建的分发服务。有关更多信息,请参见分发REST API
自:2.4
安全:需要管理员用户
用法:POST / api / v1 /系统/迁移/导入
消耗:多部分/格式

示例用法:

$ curl -X POST -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/import”



错误响应

状态码 原因 建议的行动
400 无效的请求参数(头/体) 将请求与规范进行比较
401 端点需要身份验证 使用身份验证凭据重复请求
403 端点权限要求不满足 响应将包括必要的权限
500 请求处理期间出现意外错误 检查分发日志
  • 没有标签
版权所有©2023 JFrog Ltd。