获取系统设置
描述:获取系统设置
自:1.6
安全:管理员只
用法:GET / api / v1 /系统/设置
请求头信息:N/A
消耗:N/A
$ curl -u user:password -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
{"call_home_enabled": true}
场 | 类型 | 要求 | 默认值 | 自 | 描述 |
---|---|---|---|---|---|
call_home_enabled |
布尔 |
没有 |
假 |
1.6 |
如果启用,将使用统计数据发送到JFrog |
响应状态码:
200 -成功
签名密钥
上传和传播用于分发的GPG签名密钥
描述:GPG密钥用于签署发布包。GPG密钥对将自动传播到人工源和目的地。你可以用它来做以下事情之一:
- 上传GPG密钥对从您的文件系统到JFrog发行版
- 从保险库中检索钥匙。
笔记:
- 需要JFrog任务控制4.5.0及以上版本。
- 分发依赖于JFrog任务控制中心与JPDs通信来传播GPG密钥
- 必须将密钥复制并粘贴到请求体中。
- 你不能用
public_key
和private_key
参数。vault_data
参数。 - 的
vault_id
参数应该是Hashicorp,因为它是目前唯一支持的保险库。
自:2.4
从2.8.1版本开始,Distribution支持管理多个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" }, ] } }
{"key": {"alias": "name", "public_key": "", "private_key": ""}, "propagate_to_edge_nodes": false, "fail_on_propagation_failure": false, "set_as_default": true}
身体:{“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 /{别名}
消耗: application / json
{“别名”:“别名”“public_key”:“——开始PGP公钥块…----- end PGP公钥块-----",}
获取密钥列表
描述:检索所有键的列表。
自:2.8.1发布
安全:管理员只
用法:/ / gpg钥匙/别名
消耗: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}/propagate
请求头信息:N/A
消耗:application / json
从发行版2.13.2开始,GPG密钥的传播如下:
传播行为 | 解释 |
---|---|
当不提供参数时 | 默认密钥为传播。 |
当api / v1 /键/ pgp /传播?所有= true |
传播所有可用的密钥。 |
当api / v1 /键/ pgp /传播?Alias =<别名> |
使用别名传播键。 例如, 传播可以通过别名键或所有键进行,但不能同时进行。 |
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 Distribution。此密钥对将用于签署发布包。
自:1.0
$ 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" -T gpg.json
{“public_key”:“——开始PGP公钥 ----- ....——结束PGP公钥块”、“private_key”:“——开始PGP私钥 ----- ....----- end PGP私钥块-----"}
响应状态码:
200 -密钥设置成功。
{"status_code ": 201, "message": "设置GPG公私钥"}
获取公钥
描述:返回在分发中设置的公共GPG密钥。
注意:T私钥字段将以JSON响应格式显示,前提是该公钥的私钥存在于数据库中。
如果没有上传GPG公钥,则返回如下消息:No public GPG key exists in Distribution。
自:tripwire
安全:仅限已验证的用户。用户必须具有发布包的读取权限。
用法:得到/ api / v1 / / gpg钥匙
消耗:application / json
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/keys/gpg"
回应:
{“public_key”:“公共gpg密钥> <”、“private_key ": "****" }
发布包
创建发布包版本
描述:创建一个新的发布包版本。
$ 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
{"name": "" ", "version": "" ", "dry_run": true|false, "sign_immediate ": 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 | 如果为true,则只进行解析和验证。 注意:在2.x以下的版本中,此参数default先前设置为true。 |
sign_immediately |
布尔 | 没有 | 假 | 1.2 | 如果为true,则自动签署发布包版本。 |
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 | 从Artifactory收集工件的一个ql查询 |
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 | 发布发布包后要排除的属性键模式列表。这不会对“added_props ”的特性。 |
响应状态码:
201 -成功创建发布包版本
409 -已经存在相同名称和版本的发布包
从人工AQL传递错误的状态码
{"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", "props": [{"key": "conan.package. py", "props": [{"key": "conan.package. py"。Version ", "values":["1.0"]},…}, {"xray_scan_info": {"blocked": boolean。"blocked_reason": string(如果未被阻塞则为null)},…, "archived": false}
NPM、Bower和NuGet包类型
当使用像NPM、Bower和NuGet这样需要传递依赖的包类型时,你需要创建两个独立的发布包:一个工件发布包;一个依赖发布包。
您可以生成build.info使用JFrog CLI,并使用以下命令创建发布包依赖和工件AQL查询:
构建。找到({“名称”:“buileName”,“数量”:“buildNumber”})其中包括(“module.artifact.item”)
构建。找到({“名称”:“buildName”,“数量”:“buildNumber”})其中包括(“module.dependency.item”)
动态发布包
描述:创建、签名并将临时发布包分发到分发边。
自:2.8.1发布
安全:仅限已验证的用户。用户必须匹配发布包写权限。
用法:发布api / v1 /动态/分发
{"storing_repository": "repo-name" "spec": {"queries": [{"aql": "items. "找到({\“美元和\”:[{\“美元或\”:[{\“回购\”:{\“$ eq \”,\“example-repo-local \"}}]}]})", " query_name demo-aql“:” " } ] }, " distribution_rules”:[{:“:域名?通配符*","city_name": "? "通配符*","country_codes": ["?通配符*"]}]}
更新发布包版本
描述:更新现有的未签名发布包版本。
$ 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
{"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. txt "。找到({\“回购\”,\“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 |
如果为true,则只进行解析和验证。 |
sign_immediately |
布尔 |
没有 |
假 |
1.2 |
如果为true,则自动签署发布包版本。 |
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 |
从Artifactory收集工件的一个ql查询 |
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 | 发布发布包后要排除的属性键模式列表。这不会对“ |
响应状态码:
200 -成功更新发布包版本
400 -发布包版本已签名
从人工AQL传递错误的状态码
{"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", "props": [{"key": "conan.package. py", "props": [{"key": "conan.package. py"。Version ", "values":["1.0"]},…}, {"xray_scan_info": {"blocked": boolean。"blocked_reason": string(如果未被阻塞则为null)},…, "archived": false}
NPM、Bower和NuGet包类型
当使用像NPM、Bower和NuGet这样需要传递依赖的包类型时,你需要创建两个独立的发布包:一个工件发布包;一个依赖发布包。
您可以生成build.info使用JFrog CLI,并使用以下命令创建发布包依赖和工件AQL查询:
构建。找到({“名称”:“buileName”,“数量”:“buildNumber”})其中包括(“module.artifact.item”)
构建。找到({“名称”:“buildName”,“数量”:“buildNumber”})其中包括(“module.dependency.item”)
发布包版本
描述:签署一个发布包版本,并将其存储在存储库中的源Artifactory(需要Artifactory 6.5或更高版本)中。
自:1.2
安全:仅限已验证的用户。用户必须匹配发布包写权限。
用法:发布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", "props": [{"key": "conan.package. py"。Version ", "values":["1.0"]},…},…, "archived": false}
获取所有发布包的所有版本
描述:返回所有发布包版本。该端点支持分页,每个页面最多返回10个发布包。
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle?start_pos = 0 "
响应状态码:
200 -成功
range limit - total - number
生产:application / json
[{"name": "release-bundle-name", "version": "1.0.0", "state": "OPEN", "description": "release bundle description text", "release_notes": {"content": "release notes text", "syntax": "plain_text"}, "created": "2018-03-14T17:36:35.416Z", "created_by":"[username]", "distributed_by":"[username]" "artifacts": [], "archived": false},…]
获取发布包版本
描述:返回所有发布包版本。该端点支持分页,每个页面最多返回10个发布包。
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name?start_pos = 0 "
响应状态码:
range limit - total - number
生产:application / json
[{"name": "release-bundle-name", "version": "1", "state": "OPEN", "description": "发布包描述文本","release_notes": {"content": "发布包描述文本","syntax": "plain_text"}, "created": "2018-03-14T17:36:35.416Z", "created_by":"[username]", "distributed_by":"[username]", "artifacts": [{"checksum": "5880e05b5886a2fcd9a5a6dace38cd4f243affa06719c5e63116b16094e95a31", "props": [{"key": "build. txt ", "checksum": "5880e05b5886a2fcd9a5a6dace38cd4f243affa06719c5e63116b16094e95a31 . "时间戳","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},…]
获取发布包版本
描述:查看特定的发布包版本。支持多种响应格式。
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version?= json格式”
响应状态码:
生产:application / json(默认)
{"name": "Bundle -name", "version": "1.0.0", "state": "OPEN", "description": "Bundle description", "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/Screen Shot 2018-04-05 at 10.47.16.png", "target_repo_path": "example-repo-local/ change/Screen Shot 2018-04-05 at 10.47.16.png", "checksum":"5a730b01e81e2aa3b5188bcef3be8e4e7d61f83b6156b22a33c9a3f23ff38e19", "props": [{"key": "jira", "values":["1"]}]},…, "archived": false}
{"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 -成功
没有发布包的权限
404 -未找到发布包或发布包版本
响应
{"name": "the_release_bundle", "version": "6", "storing_repository": "release-bundles", "description": "Maven bundle description", "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. txt"。find({\"repo\": \"example-repo-local\"})", "query_name": "query-0", "mappings": [], "added_props": [], "query_type": "AQL"}], "exclude_props_patterns": ["example_exclude_prop_pattern_1", "example_example_prop_pattern_2"]}}
删除发布包的所有版本
描述:仅在JFrog发行版上删除一个发布包的所有版本。若要从分发的分发边缘中删除,请参见从发布边缘删除发布包版本。
$ curl -u user:password -X DELETE "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name"
响应状态码:
204 -成功删除发布包版本
没有找到发布包
生产:N/A
删除发布包版本
描述:仅在JFrog发行版上删除特定的发布包版本。
$ curl -u user:password -X DELETE "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version"
响应状态码:
204 -成功删除发布包版本
404 -未找到发布包或发布包版本
导出发布包版本归档文件
描述:触发JFrog发行版的发布包导出过程。有关更多信息,请参见在气隙环境中分发发布包。
注意:导入过程在分发边缘上执行。
自:2.5
安全:仅限已验证的用户。用户必须匹配发布包分发权限。
用法:发布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
安全:仅限已验证的用户。用户必须匹配发布包分发权限。
用法:得到的api / v1 /出口/ release_bundle /{名称}/ {version} /状态
消耗:application / json
curl -XGET 'http://localhost:8082/distribution/api/v1/export/release_bundle/{name}/{version}/status' -uadmin:password
响应状态码:
202 -请求成功
400 -返回状态失败
{"status":"IN_PROGRESS|FAILED|NOT_TRIGGERED|COMPLETED", "message":" IN_PROGRESS|FAILED|NOT_TRIGGERED|COMPLETED", "message":"可选消息,以防失败,我们有一些信息要传递","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
{"dry_run": true|false, "auto_create_missing_repositories": true|false, "distribution_rules": [{"site_name": "? "通配符*","city_name": "? "通配符*","country_codes": ["?通配符*"]}]}
场 | 类型 | 要求 | 默认值 | 描述 |
---|---|---|---|---|
|
布尔 | 没有 | 假 | 如果为true,则只进行解析和验证。 |
|
布尔 | 没有 | 假 | 从2.8.1版开始。 如果这是真的,这使您能够在发布发布包时自动在目标边缘或工件上创建缺失的目标存储库。有关更多信息,请参见目标存储库自动创建。 |
|
列表(对象) | 是的 | N/A | 描述用于选择“分布边缘”的筛选器。必须解决至少一个边。 |
|
字符串 | 没有 | “*” | 站点名称的通配符过滤器 |
|
字符串 | 没有 | “*” | 站点城市名称的通配符过滤器 |
|
列表(字符串) | 没有 | ["*"] | 站点国家代码的通配符过滤器 |
响应状态码:
200 - dry_run成功
202 -成功安排分发
400 -发布包版本必须在发行前签名
404 -未找到发布包或发布包版本
响应标头:N/A
生产:application / json
{"id": 188527534551203840, "sites": [{"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"},…]}
停止发布包版本分发
描述:停止发布包版本分发到分发边缘。
用法:把/ api / v1 /分销/:名称/:版本/中止
$ curl -u user:password -X PUT "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/distribution/:name/:version/abort"
响应状态码:
202 -成功安排分发中断。返回受停止请求影响的分布边列表。
204 -没有分配边缘,分配正在进行中
404 -未找到发布包或发布包版本
生产:application / json
[{"name":"US_NY_Art01", "service_id":"jfrt@01cejrg5ack7dd1v3r213a0vx9", "type":"edge"}, {"name":"UK_LN_Art02", "service_id":"jfrt@01cejrfwjtt65d1g9asq8h1cda", "type":"edge"}]
删除从分布边缘发布包版本
描述:在发布边缘中安排要删除的发布包版本。动作跟踪ID将被返回。设置一个参数,以便在成功时保留或删除JFrog发行版中的发布包。
用法:POST / api / v1 /分销/:名称/:/删除版本
$ 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
{"dry_run": true|false, "distribution_rules": [{"site_name": "? "通配符*","city_name": "? "通配符*","country_codes": ["?通配符*"]}],"on_success": "keep|delete"}
场 | 类型 | 要求 | 默认值 | 描述 |
---|---|---|---|---|
dry_run |
布尔 | 没有 | 真正的 | 如果为true,则只进行解析和验证 |
distribution_rules |
列表(对象) | 是的 | N/A | 描述用于选择“分布边”的筛选器。必须解决至少一个边。 |
distribution_rules.site_name |
字符串 | 没有 | “*” | 站点名称的通配符过滤器 |
distribution_rules.city_name |
字符串 | 没有 | “*” | 站点城市名称的通配符过滤器 |
distribution_rules.country_codes |
列表(字符串) | 没有 | ["*"] | 站点国家代码的通配符过滤器 |
on_success |
字符串 | 没有 | 保持 | 在指定的发布边缘完成删除后,在JFrog发布本身的发布包版本上执行的操作。 |
响应状态码:
200 - dry_run成功
202 -计划删除成功
404 -未找到发布包或发布包版本
生产:application / json
{"id": 188527534551203840, "sites": [{"service_id": "jfrt@01cc8hkzy1zgtc1wqw3zk41p2a", "name": "US_NY_Art01", "type": "edge"},…]}
获取分发状态详细信息
描述:获取所有发行版的状态详细信息。
消耗:N/A
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/distribution"
响应状态码:
200 -成功
生产:application / json
[{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS. sh "。心肌梗死:秒+ 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":[]},…},…]
通过发布包名称获取发布状态详细信息
描述:获取一个发布包的所有版本的所有发行版的状态详细信息。
消耗:N/A
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/distribution"
响应状态码:
200 -成功
生产:application / json
[{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS. sh "。心肌梗死:秒+ 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":[]},…},…]
通过发布包版本获取发布状态详细信息
描述:获取特定发布包版本的所有发行版的状态详细信息。
消耗:N/A
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/distribution"
响应状态码:
200 -成功
生产: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": "*", "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":[]},…},…]
通过跟踪器Id获取分发状态详细信息
描述:获取特定发行版的状态详细信息。
消耗:N/A
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/release_bundle/:name/:version/distribution/:tracker_id”
响应状态码:
200 -成功
生产:application / json
{"distribution_id": 188527534551203840, "distribution_friendly_id": 1, "created_by":"[username]", "distributed_by":"[username]", "start_time":"[YYY-MM_DDTHH:HH:MM:SS. sh "。心肌梗死:秒+ 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":[]},…]}
令牌管理
创建令牌
描述:为现有(非临时)用户创建身份验证令牌。
$ curl -X POST -u user:password http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token -d 'username=user' -d 'refreshable=true' -d 'scope=applied-permissions%2Fadmin' -d "expires_in=123"
响应状态码:
201 -成功创建令牌
生产:application / json
{:“access_token eyJ2ZXIiOiIyIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYiLCJraWQiOiJ6WWFWQjVFRlpkOXlpbWtCNkZTbDAtSWFhMHRPWldLX293c1BTVTNTZmdNIn0.eyJzdWIiOiJsZW5vbiIsInNjcCI6ImFwcGxpZWQtcGVybWlzc2lvbnNcL2FkbWluIiwiYXVkIjoiamZkc0AwMWNoMDV0ajRuM3NzODBzNm4zdjIzMDdiOSIsImlzcyI6ImpmZHNAMDFjaDA1dGo0bjNzczgwczZuM3YyMzA3YjkiLCJleHAiOjE1MzAwOTk2MTgsImlhdCI6MTUzMDA5OTQ5NSwianRpIjoiYTQzM2YwZDAtNTQ5OC00YjI5LWE5ODctZjI3MTNkYmMyOTdmIn0。e7csehchqsojxz1jmhdvu_7yhljcy1jj51yqyxyifmxusexqzz78pi_7yhljcy1irc1vmthdv8_db2csanzydubcyttt77ootsvfqjdzsm_0aez - paij71lvgyjbflz2bje253tmglgweyfaqq4xxurlkcyn_jcgz2rcxr2c70jcxr2c70jif9fa0obaikvt - dgusngu83dnr - yf0xbsuctdu5k - jl5h3fmdb129awxe4_flldmk8iaarujsidlvexdlezval4nlrzcxa ", "refresh_token": "f96bda0c-ab50-4b7e-96f1-be8bd20605a3", "expires_in": 123, "scope": " appliedpermissions /admin", "token_type": "Bearer"}
场 | 类型 | 要求 | 默认值 | 描述 |
---|---|---|---|---|
grant_type | 字符串 | 没有 | client_credentials | 用于验证请求的授权类型。在这种情况下,唯一支持的值是“client_credentials”,如果不指定该参数,该值也是默认值。 |
用户名 | 字符串 | 是的 | 为其创建令牌的用户名。非管理员用户只能为自己创建令牌,因此他们必须指定自己的用户名。 | |
范围 | 字符串 | 没有 | 要分配给令牌的范围,以空格分隔的范围令牌列表的形式提供。目前只有一个可能的作用域选项:applied-permissions /管理 |
|
expires_in | 长 | 没有 | 0 | 令牌有效的时间,以秒为单位。若要指定永不过期的令牌,请将其设置为零。 |
可刷新的 | 布尔 | 没有 | 假 | 如果为true,则此令牌是可刷新的,刷新令牌可用于在其过期后用新令牌替换它。 |
刷新令牌
自:1.2
场 | 类型 | 要求 | 默认值 | 描述 |
---|---|---|---|---|
grant_type | 字符串 | 是的 | 用于验证请求的授权类型。在这种情况下,唯一支持的值是"refresh_token"。 | |
access_token | 字符串 | 是的 | 要刷新的访问令牌。 | |
refresh_token | 字符串 | 是的 | 需要刷新的访问令牌的刷新令牌。 | |
expires_in | 长 | 没有 | 0 | 令牌有效的时间,以秒为单位。若要指定永不过期的令牌,请将其设置为零。 |
可刷新的 | 布尔 | 没有 | 真正的 | 如果为true,则此令牌是可刷新的,刷新令牌可用于在其过期后用新令牌替换它。 |
$ 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…"
响应状态码:
成功刷新令牌
生产:application / json
{:“access_token eyJ2ZXIiOiIyIiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYiLCJraWQiOiJ6WWFWQjVFRlpkOXlpbWtCNkZTbDAtSWFhMHRPWldLX293c1BTVTNTZmdNIn0.eyJzdWIiOiJsZW5vbiIsInNjcCI6ImFwcGxpZWQtcGVybWlzc2lvbnNcL2FkbWluIiwiYXVkIjoiamZkc0AwMWNoMDV0ajRuM3NzODBzNm4zdjIzMDdiOSIsImlzcyI6ImpmZHNAMDFjaDA1dGo0bjNzczgwczZuM3YyMzA3YjkiLCJleHAiOjE1MzAwOTk2MTgsImlhdCI6MTUzMDA5OTQ5NSwianRpIjoiYTQzM2YwZDAtNTQ5OC00YjI5LWE5ODctZjI3MTNkYmMyOTdmIn0。e7csehchqsojxz1jmhdvu_7yhljcy1jj51yqyxyifmxusexqzz78pi_7yhljcy1irc1vmthdv8_db2csanzydubcyttt77ootsvfqjdzsm_0aez - paij71lvgyjbflz2bje253tmglgweyfaqq4xxurlkcyn_jcgz2rcxr2c70jcxr2c70jif9fa0obaikvt - dgusngu83dnr - yf0xbsuctdu5k - jl5h3fmdb129awxe4_flldmk8iaarujsidlvexdlezval4nlrzcxa ", "refresh_token": "f96bda0c-ab50-4b7e-96f1-be8bd20605a3", "expires_in": 123, "scope": " appliedpermissions /admin", "token_type": "Bearer"}
撤销令牌
描述:通过指定令牌或token_id来调用访问令牌
$ curl -u user:password -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token/revoke" -d "token= fastt3…"
或
$ curl -u user:password -X POST "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token/revoke" -d "token_id=7e0eec…"
场 | 类型 | 要求 | 描述 |
---|---|---|---|
令牌 | 字符串 | 是(如果token_id为空) | 要撤销的令牌。如果指定了token_id,则不能指定。 |
token_id |
字符串 | 是(如果token为空) | 要撤销令牌的ID。如果指定了令牌,则不能指定。 |
响应状态码:
获取令牌信息
描述:获取特定用户的访问令牌列表。
$ curl -u user:password -X GET "http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/token"
响应状态码:
生产:application / json
{"tokens": [{"token_id": "58ae2b6f-085d-493e-b7c3-670d7700c034", "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。
将权限应用于与传递的通配符表达式匹配的信息的分布边。
描述:根据权限范围为用户和组创建/更新权限。响应体将包含创建/更新的权限。
$ 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
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[x]}}}
200 -设置权限成功
响应标头:N/A
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{" user1 ": [x]},“团体”:{“group1”:[x]}}}
获取所有权限
描述:获得所有权限。
用法:/ api / v1 /安全/权限
请求头信息:N/A
消耗:application / json
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions”
响应状态码:
200 -成功
生产:application / json
[{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[" x " ] } } } ]
按名称获取许可
描述:按名称获取权限信息。
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions/:name”
响应状态码:
200 -成功
404 -未找到权限
生产:application / json
{“distribution_destinations”:[{”:域名”:“*”,“city_name”:“*”,“country_code ": [ "*" ] } ], " 名称”:“permission-name”、“resource_type”:“目的地”、“校长”:{"用户":{“匿名”:[x]},“团体”:{“读者”:[x]}}}
按名称删除权限
描述:根据权限id删除权限
$ curl -X DELETE -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/security/permissions/:name”
响应状态码:
204 -成功删除权限
404 -未找到权限
生产:N/A
支持
创建支持包
描述:创建支持包
自:1.6
安全:管理员只
用法:POST / api / v1 /系统/支持/包
请求头信息:N/A
消耗:application / json
生产:application / json
$ curl -X POST -u user:password -H Content-Type: application/json" http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/support/bundle" -T 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 |
收集所有系统日志,如果不指定此字段,support bundle将收集前一天到今天的日志。 |
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 | 支持包名称 |
响应状态码:
200 -成功创建支持包
响应标头:N/A
生产:application / json
{"id": 20181230145474-53666747, "artifactory": {"service_id": "jfds@...", "bundle_url": http://: /artifactory/support-bundles/ /jfds/ }}
创建特定的支持包
描述:创建一个新的支持包并为其分配一个特定的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
{"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 |
收集所有系统日志,如果不指定此字段,support bundle将收集前一天到今天的日志。 |
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 | 支持包名称 |
响应状态码:
200 -成功创建支持包
在Artifactory中不存在相应的存储库。支持包将被持久化到每个分发边缘的文件系统中。
找不到人工身份验证提供程序
响应标头:N/A
生产:application / json
{"id": 20181230145474-53666747, "artifactory": {"service_id": "jfds@...", "bundle_url": http://: /artifactory/support-bundles/ /jfds/ }}
获取支持包信息
描述:获取支持包信息
自: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”
响应状态码:
成功获取支持包信息
没有找到支持包
响应标头:N/A
生产:application / 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/ }}, 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
响应状态码:
200 -成功下载支持包
没有找到支持包
响应标头:N/A
200 OK内容类型: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 -成功删除支持包
没有找到支持包
响应标头:N/A
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
{"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
{"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?"——data-raw "token…"
场 | 类型 | 要求 | 默认值 | 自 | 描述 |
---|---|---|---|---|---|
dryRun |
查询参数 |
是的 |
真正的 |
1.8.1 |
如果为true,则只进行解析和验证。 |
{"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
安全:仅限已验证的用户。用户必须匹配发布包写权限。
用法: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 -成功
进出口
获取源人工id
描述:列出包含发布包的工件id。在将发布包元数据导出到相关的分发服务之前,用作预备步骤。
注:为了支持JFrog平台中引入的Artifactory(从7.x开始)和Distribution(从2.4开始)之间的一对一配对比率,您需要根据该命令生成的列表将Distribution元数据迁移到Distribution服务。有关更多信息,请参见分布REST API。
自:2.4
安全:需要admin用户
用法:GET / api / v1 /系统/迁移/ import_export / source_artifactories
消耗:application / json
生产:application / json
示例用法:
$ curl -X GET -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/import_export/source_artifactories”
导出发行版本包元数据
描述:将发布服务上的发布包元数据导出到export.zip
文件。
注:为了支持JFrog平台中引入的Artifactory To Distribution一对一的配对比例,您需要根据与其相关的Distribution服务相关联的
自:2.4
用法:POST / api / v1 /系统/迁移/出口/ < Artifactory_instance_ID >- o export.zip
生产:应用程序/邮政编码
示例用法:
$ curl -X POST -u用户:密码http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/export/DEV_Art01 -o export.zip
样品反应:
请举例说明
导入发行版本包元数据
描述:将Release Bundles从导出的zip文件导入到新创建的Distribution服务中。有关更多信息,请参见分布REST API。
注:为了支持Artifactory(从7.x开始)和Distribution(从2.4开始)之间的一对一配对,运行此命令将Release Bundle Metadata从核心Distribution服务导入到新创建的Distribution服务中。有关更多信息,请参见分布REST API。
自:2.4
安全:需要admin用户
用法:POST / api / v1 /系统/迁移/导入
消耗:多部分/格式
示例用法:
$ curl -X POST -u用户:密码“http://ARTIFACTORY_SERVER_HOSTNAME:8082/distribution/api/v1/system/migration/import”
错误响应
状态码 | 原因 | 建议的行动 |
---|---|---|
400 | 无效的请求参数(报头/正文) | 将需求与规格进行比较 |
401 | 端点需要身份验证 | 使用身份验证凭证重复请求 |
403 | 终端权限要求不满足 | 响应将包括必要的权限 |
500 | 处理请求时出现意外错误 | 检查配电日志 |