我正在使用jfrog rt config配置JFrog CLI.它要求我的"Artifactory服务器ID".我无法在JFrog文档或我的Artifactory实例中找到有关此内容的任何信息.如何找到此服务器ID?
用于列出 docker 标签的 JFrog REST api 获取 302。
文档:
用法:
GET /api/docker/{repo-key}/v2/{image name}/tags/list?n=<n from the request>&last=<last tag value from previous response>
Run Code Online (Sandbox Code Playgroud)
我的查询:
所以我的查询是:
回复:
GET /api/docker/{repo-key}/v2/{image name}/tags/list?n=<n from the request>&last=<last tag value from previous response>
Run Code Online (Sandbox Code Playgroud) 我在Artifactory(OpenSource)中有一些工件:
我可以使用jfrog CLI下载工件:
jfrog rt config --user=admin --password=**** --url=http://foo:8081/artifactory
jfrog rt download testproject/01_Develop/01_CI/HPCC-Package-70.zip --flat=true
Run Code Online (Sandbox Code Playgroud)
如何下载LATEST(最高编号)工件?
我正在尝试从jfrog cli检索其他字段:
./jfrog rt s --spec serach_old_spec.json
Run Code Online (Sandbox Code Playgroud)
有规格:
{
"files": [
{
"aql": {
"items.find": {
"repo": "myrepo-deb-local",
"path": "pool",
"name": {"$match": "*.deb"}
},
},
"limit": 1
}
]
}
Run Code Online (Sandbox Code Playgroud)
该请求实际上会起作用,返回文件,但仅返回路径参数。我如何另外返回创建日期参数?
我查看了https://www.jfrog.com/confluence/display/RTF/Artifactory+Query+Language#ArtifactoryQueryLanguage-Usage,我可以在其中找到
fields(可选)有一组用于查询输出的默认字段。此参数允许您指定应包含在输出中的一组不同字段
问题是,我无法理解如何在规范中使用它,并且jfrog cli 没有本机参数https://www.jfrog.com/confluence/display/CLI/CLI+for+JFrog+Artifactory#CLIforJFrogArtifactory-搜索文件
我是否被迫通过 REST 调用手动实现它?
以下是gitlab-ci.yml文件中提到的脚本。此GitLab CI配置有效。但是,当运行CI / CD构建时,作业将失败。与FOR循环语法有关吗?
deploy_dv:
stage: deploy_dv
variables:
GIT_STRATEGY: none
script:
- echo "Deploying Artifacts..."
- echo "Configure JFrog CLI with parameters of your Artifactory instance"
- 'c:\build-tools\JFROG-CLI\jfrog rt config --url %ARTIFACTORY_WEBSITE% --user %ARTIFACTORY_USER% --apikey %APIKEY%'
- 'cd ..\artifacts'
- 'SETLOCAL ENABLEDELAYEDEXPANSION'
- FOR %%i in (*) do (
'c:\build-tools\curl\bin\curl.exe --header "PRIVATE-TOKEN:%HCA_ACCESS_TOKEN%" --insecure https://code.example.com/api/repository/tags/%CI_COMMIT_TAG% | c:\build-tools\jq\jq-win64.exe ".release.description" > temp.txt'
'set /p releasenote=<temp.txt'
'rem del temp.txt'
'set mydate=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%'
'c:\build-tools\JFROG-CLI\jfrog rt u "%%i" %ARTIFACTORY_ROOT_PATH%/%PROJECT_NAME%/%%i --build-name=%%i --build-number=%BUILDVERSION% --props releasenote=%releasenote%;releaseversion=%BUILDVERSION%;releasedate=%mydate% --flat=false'
)
- '%CURL% …Run Code Online (Sandbox Code Playgroud) 我知道 JFrog Artifactory Pro 支持私有 docker 注册表,我们可以使用它来从 Artifactory 推送和拉取 docker 镜像。我想知道 Artifactory OSS 版本是否也提供相同的支持。
谢谢
jfrog-cli 中的错误:尝试加密您的密码时收到以下错误
我正在使用 Powershell DSC 设置 Windows Server 2012 R2 盒子。作为配置过程的一部分,我将配置 jfrog.exe 并作为服务帐户执行配置命令:
jfrog rt config --url=$localArtifactoryInstance --user=$username --apikey=$apikey
Run Code Online (Sandbox Code Playgroud)
此命令按预期在服务帐户的主目录 (C:\Users\$serviceAccount.jfrog.jfrog-cli.conf) 中创建 .jfrog.jfrog-cli.conf,其中包含 URL/用户名/apiKey。
配置后,此服务帐户负责将工件从一个存储库“提升”到另一个存储库:
jfrog rt move '$devRepo/(Org)/(Org.Common.Configuration)/Org.Common.Configuration.1.0.0.nupkg' '$prodRepo/{1}/{2}/'
Run Code Online (Sandbox Code Playgroud)
该命令被拒绝并返回 401:
[Error] Artifactory response: 401 Unauthorized
{
"errors": [
{
"status": 401,
"message": "Bad authentication. Provided username or password are incorrect."
}
]
}
Run Code Online (Sandbox Code Playgroud)
但是,当我将jfrog-cli.conf 中已配置的相同 API 密钥添加到命令中时:
jfrog rt move '$devRepo/(Org)/(Org.Common.Configuration)/Org.Common.Configuration.1.0.0.nupkg' '$prodRepo/{1}/{2}/' --ApiKey $apiKey
Run Code Online (Sandbox Code Playgroud)
成功了,我可以通过 Artifactory UI 验证是否成功。
到现在为止,我使用了Artifactory的REST API来确定Maven构件的最后一个版本(最后一个快照)与groupId和artifactIid:
/api/search/latestVersion?g={groupid}&a={artifactid}
Run Code Online (Sandbox Code Playgroud)
这给了我一个确切的字符串,该字符串具有此工件的最高/最后可用(快照)版本。
但是,有时这确实很慢,因此建议使用Artifactory Query Language(AQL)。
不幸的是,我还没有找到如何在AQL中映射此功能的方法。
有人可以给我一个线索,说明AQL中的相应查询是什么样的吗?
提前致谢!
我构建了 PyPI 包并使用 jfrog CLI 和命令推送到我们的本地 Artifactory:
压缩包
./jfrog rt upload --url https://artifacts.XYZ.com/artifactory '--props=pypi.name=xyz_easysdlc.traceability_matrix_generator;pypi.version=0.0.1.dev20200102111901+dirty.0.g251f725.mock.develop;pypi.normalized.name=xyz-easysdlc-traceability-matrix-generator' --module=xyz_easysdlc.traceability_matrix_generator --user=**** '--password=****' dist/xyz_easysdlc.traceability_matrix_generator-0.0.1.dev20200102111901+dirty.0.g251f725.mock.develop.tar.gz pypi-main-dev/xyz_easysdlc.traceability_matrix_generator/0.0.1.dev20200102111901+dirty.0.g251f725.mock.develop/
Run Code Online (Sandbox Code Playgroud)
车轮
./jfrog rt upload --url https://artifacts.xyz.com/artifactory '--props=pypi.name=xyz_easysdlc.traceability_matrix_generator;pypi.version=0.0.1.dev20200102111901+dirty.0.g251f725.mock.develop;pypi.normalized.name=xyz-easysdlc-traceability-matrix-generator' --module=xyz_easysdlc.traceability_matrix_generator --user=**** '--password=****' dist/xyz_easysdlc.traceability_matrix_generator-0.0.1.dev20200102111901+dirty.0.g251f725.mock.develop-py3-none-any.whl pypi-main-dev/xyz_easysdlc.traceability_matrix_generator/0.0.1.dev20200102111901+dirty.0.g251f725.mock.develop/
Run Code Online (Sandbox Code Playgroud)
两者均已上传成功。
当我通过以下步骤从.whl文件安装 pip 包时,它可以工作:
pip install ~/Downloads/xyz_easysdlc.traceability_matrix_generator-0.0.1.dev20200102111901+dirty.0.g251f725.mock.develop-py3-none-any.whl然后我会期望,简单地
pip install --pre --index-url https://artifacts.xyz.com/artifactory/api/pypi/pypi-main-dev/simple xyz_easysdlc.traceability_matrix_generator
会起作用,但我收到以下错误:
ERROR: Could not find a version that satisfies the requirement xyz_easysdlc.traceability_matrix_generator (from versions: none)
ERROR: No matching distribution found for xyz_easysdlc.traceability_matrix_generator
Run Code Online (Sandbox Code Playgroud)
大家有什么猜测吗?
[更新] 当我在详细模式下运行 pip install 时,我得到以下输出:
Created temporary …Run Code Online (Sandbox Code Playgroud) jfrog-cli ×10
artifactory ×7
docker ×1
docker-tag ×1
gitlab ×1
gitlab-ci ×1
jq ×1
linux ×1
maven ×1
powershell ×1
pypi ×1
python ×1
yaml ×1