问题标签 [jfrog-mission-control]

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 投票
2 回答
67 浏览

json - JFrog Mission Control API 中的 JSON 对象数组

我正在使用任务控制版本 1.1

我尝试与想要创建存储库的 REST API 进行通信。我的 JSON 输入如下:

我已经验证我的配置脚本允许这两个用户变量。当我将用户输入更改为只有一个值时(连同配置脚本):

REST API 工作得很好。

我收到的错误消息很大,但它基本上是一个杰克逊错误,上面写着“无法反序列化 java.util.LinkedHashMap 的实例出 START_ARRAY 令牌”。我以前曾与 Jackson 合作过,当我无法将 JSON 数组对象正确反序列化到我的数据模型中时,我收到了这个,所以我认为这就是这里发生的事情。

有没有其他人遇到过这个问题,或者解决了这个问题?

0 投票
1 回答
123 浏览

linux - 有没有办法提取 Artifactory 的存储摘要?

我们目前在操作系统上使用 Artifactory 版本 4.9.0:Linux。我们知道,从 Artifactory 用户界面中,我们可以看到所有存储库的存储摘要。 https://www.jfrog.com/confluence/display/RTF/Monitoring+Storage

我正在寻找一种编写脚本(shell)并提取存储库密钥和工件大小的摘要报告的方法。

我们需要知道这些信息的存储位置。更具体地说,我们可以在哪个文件中找到此信息。

先感谢您。

0 投票
0 回答
824 浏览

artifactory - ArtifactoryPublish 给出错误:无法执行 gradle 任务

当运行 jenkins 管道并使用 artifactoryPublish 运行 gradle 时,它​​给了我这个错误消息和堆栈跟踪。我使用以下配置:

1 jenkins 管道作业(版本 2.19 jenkins 和 artifactory 插件 2.7.2) 2 脚本:

我们执行以下操作:在管道中(jenkinsfile)

  1. 构建,分级:

buildscript { repositories { jcenter() } dependencies { classpath "org.jfrog.buildinfo:build-info-extractor-gradle:4.4.5" classpath files(bndURI, bndRepoURI) }

}

  1. 詹金斯的输出:

[管道] getArtifactoryServer [管道] newGradleBuild [管道] ArtifactoryGradleBuild [efpi-core] $ /var/jenkins_home/tools/hudson.plugins.gradle.GradleInstallation/Gradle_3.1/bin/gradle clean artifactoryPublish -b build.gradle 错误:无法'不执行 gradle 任务。[Pipeline] } [Pipeline] // 节点 [Pipeline] 管道结束

org.jfrog.hudson.pipeline.steps.ArtifactoryGradleBuild$Execution.run(ArtifactoryGradleBuild.java :124) at org.jfrog.hudson.pipeline.steps.ArtifactoryGradleBuild$Execution.run(ArtifactoryGradleBuild.java:95) at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousStepExecution.start(AbstractSynchronousStepExecution.java:40) at org. jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:184) 在 org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:126) 在 org.jenkinsci.plugins.workflow.cps。 CpsScript.invokeMethod(CpsScript.java:120) 在 org.jfrog.hudson.pipeline.types.GradleBuild.run(GradleBuild.java:66) 在 org.jfrog.hudson.pipeline.types。GradleBuild$run$1.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java: 113)在 org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151) 在 org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21) 在 org.jenkinsci.plugins。 scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149) at org.kohsuke.groovy.sandbox.impl.Checker .checkedCall(Checker.java:146) at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16) at WorkflowScript.run(WorkflowScript:14) atgroovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.kohsuke.groovy.sandbox.impl.Checker$1 .call(Checker.java:151) at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115 ) 在 org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149) 在 org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146) 在 com.cloudbees.groovy .cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16) 在 WorkflowScript.run(WorkflowScript:14) 在groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.kohsuke.groovy.sandbox.impl.Checker$1 .call(Checker.java:151) at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:21) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115 ) 在 org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149) 在 org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146) 在 com.cloudbees.groovy .cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16) 在 WorkflowScript.run(WorkflowScript:14) 在runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151) at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor .java:21) 在 org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149) 在 org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115)在 org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146) 在 com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16) 在 WorkflowScript.run(WorkflowScript:14 ) 在runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:151) at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor .java:21) 在 org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:149) 在 org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115)在 org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146) 在 com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16) 在 WorkflowScript.run(WorkflowScript:14 ) 在onMethodCall(GroovyInterceptor.java:21) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java :149) 在 org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146) 在 com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16) 在 WorkflowScript.run(工作流程脚本:14)在onMethodCall(GroovyInterceptor.java:21) at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:115) at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java :149) 在 org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:146) 在 com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:16) 在 WorkflowScript.run(工作流程脚本:14)在运行(工作流脚本:14)在运行(工作流脚本:14)在 cps.transform(本机方法)在 com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:48) 在 com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109) 在 com .cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82) 在 sun.reflect.GeneratedMethodAccessor186.invoke(Unknown Source) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java .lang.reflect.Method.invoke(Method.java:498) 在 com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72) 在 com.cloudbees.groovy.cps.impl.CollectionLiteralBlock $ContinuationImpl.dispatch(CollectionLiteralBlock.java:55) 在 com.cloudbees.groovy.cps.impl.CollectionLiteralBlock$ContinuationImpl。项目 (CollectionLiteralBlock.java:45) 在 sun.reflect.GeneratedMethodAccessor263.invoke(Unknown Source) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:第 498 章.groovy.cps.Next.step(Next.java:58) at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:154) at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001( SandboxContinuable.java:18) 在 org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:33) 在 org.jenkinsci.plugins.workflow.cps.SandboxContinuable$1.call(SandboxContinuable.java:30) 在 org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108) 在 org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:30) 在 org .jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:164) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:324) at org.jenkinsci.plugins.workflow.cps .CpsThreadGroup.access$100(CpsThreadGroup.java:78) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:236) at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call( CpsThreadGroup.java:224) 在 org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:47) 在 java.util.concurrent.FutureTask.run(FutureTask.java:266) 在 hudson.remoting。SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:112) at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util .concurrent.FutureTask.run(FutureTask.java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在java.lang.Thread.run(Thread.java:745) 完成:失败java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread .java:745) 完成:失败java:266) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread .java:745) 完成:失败

0 投票
2 回答
2092 浏览

rest - 如何使用 REST API 在存储库之间移动工件?

任何人都可以帮助我找到一种方法,使用 curl 将工件从一个 JFROG 存储库复制到另一个存储库。

我找到了一种将文件发送到存储库的方法

curl -u user:pass -X PUT ' http://artifactory:8081/artifactory/test-product/test.txt ' -T filetosend.txt

从存储库中删除文件

curl -u user:pass -X DELETE ' http://artifactory:8081/artifactory/test-product/test.txt '

但我真的不知道如何将文件从一个存储库移动到另一个存储库。我这样做

curl -u user:pass -X MOVE 'http:(slashes)artifactory:8081/artifactory/test-product/test.txt' 'http:(slashes)artifactory:8081/artifactory/test-release/test2.txt'

但它不起作用。

我尝试了不同的方法,但没有任何结果。

非常感谢您提前。

0 投票
4 回答
6926 浏览

docker - 无法从 alpine linux 容器内部运行 jfrog 可执行文件

我正在使用一个alpine linux容器,特别是python:3.4-alpineopenjdk:8-jdk-alpine. 当我尝试执行我放置在可执行文件中的任何脚本或可执行文件时,我得到Not Found错误。

例如。在python:3.4-alpine我要安装的容器中时,jfrog我按照此处的命令(curl通过 apk 安装之后)。此命令下载一个 shell 脚本并将其通过管道传送到 sh,后者下载并创建jfrog具有正确权限的可执行文件。当我试图运行这个可执行文件时,我得到了

bin/sh: ./jfrog: 未找到

更新

我发现bin/ash默认情况下使用的是root用户,我不知道它是什么。所以我bin/sh jfrog手动调用,我得到

/# bin/sh jfrog jfrog: line 1: ELF: not found jfrog: line 1: 语法错误:未终止的引号字符串

知道我做错了什么吗?我怀疑它只与容器中存在的 root 用户有关。

0 投票
1 回答
830 浏览

search - 用于在日期范围内列出文件类型的人工查询语言

我正在尝试列出特定日期范围内的文件类型,因此可以从工件存储中删除这些大文件,如何做到这一点让我感到困惑,所以我想到了使用青蛙 cli 方式使用 --spec 开关,我有一个表达式,但它并不完全有效,我也需要使用相同的表达式进行删除,任何帮助都将是非常可观的。

0 投票
1 回答
392 浏览

nuget - 在 Artifactory 中阻止覆盖 NuGet 工件

此问题涉及 Artifactory Pro 4.14.2 中的本地 NuGet 存储库。

我们使用一个名为的服务帐户DevNetRunnerSvc将 NuGet 工件发布到 Artifactory。此帐户配置了Deploy/Cache权限,没有配置Delete/Overwrite权限

DevNetRunnerSvc 对相关存储库的有效权限

但是,DevNetRunnerSvc仍然能够覆盖此存储库中的工件:

演示 DevNetRunnerSvc 修改的工件

我需要一些帮助来保护工件免受任何和所有覆盖(适用于已发布的 NuGet 包),或者确定这是一个应该转发给 JFrog 的错误。

附加信息:

  • 用于发布工件的(轻微清理的)命令是jfrog rt upload $(Join-Path $env:CI_PROJECT_DIR "$($env:PACKAGE).$($env:VERSION).nupkg") nuget-org-dev/org/$($env:PACKAGE)/$($env:PACKAGE).$($env:VERSION)-$($env:CI_BUILD_REF_SLUG).nupkg
  • 在调试此问题时,我已从DevNetRunnerSvc所有组中删除。
  • 成功删除Deploy/Cache权限DevNetRunnerSvc会阻止其将工件发布到此存储库。
  • 适当地阻止了从该存储库向另一个存储库“提升”已发布的工件:

    [Info] Moving artifact: nuget-org-dev/org/org.Infra.Pipeline/org.Infra.Pipeline.0.2.2-master.nupkg to: nuget-org/org/org.Infra.Pipeline/org.Infra.Pipeline.0.2.2.nupkg [Error] Artifactory response: 409 Conflict { "messages": [ { "level": "ERROR", "message": "User doesn't have permissions to move 'nuget-org-dev:org/org.Infra.Pipeline/org.Infra.Pipeline.0.2.2-master.nupkg'. Needs delete permissions." } ] }

  • 用于执行上述命令的命令是jfrog rt move "nuget-org-dev/(org)/($($env:PACKAGE))/($($env:PACKAGE).$($env:VERSION))-$($env:CI_BUILD_REF_SLUG)(.nupkg)" "nuget-org/{1}/{2}/{3}{4}"

  • 我已将自己添加为该存储库的观察者。覆盖工件时DevNetRunnerSvc,我收到以下事件通知:Thu Apr 13 12:25:34 EDT 2017 [devnetrunnersvc/10.228.128.23] [CREATED] nuget-org-dev/org/org.Infra.Pipeline/org.Infra.Pipeline.0.2.2-master.nupkg
0 投票
1 回答
526 浏览

curl - 无法获取在特定日期范围内创建的工件

我需要使用 REST API 从旧工件中手动清理 Jfrog 工件。

出于这些目的,首先,我必须识别在特定日期范围内创建的工件。

问题是当我使用

我收到这个错误

什么意思,那个方法是不允许的?我该如何处理?

完整的命令是

0 投票
1 回答
393 浏览

java - 如何使用 jenkins 构建后操作将工件从一组工件部署到 jfrog 工件

我的 Maven 组项目层次结构像

当我运行 maven 命令clean package install时,maven_group_project它会给出sub_module_1.jar, sub_module_2.jarsub_module_3.jar.

我只想sub_module_1.jar在工件(jFrog)中发送一个()。

我使用这个插件发送工件https://wiki.jenkins-ci.org/display/JENKINS/Artifactory+Plugin

我如何设置模式以仅发送一个工件或以任何其他方式发送工件。

注意:这是一个 Maven 构建项目

0 投票
2 回答
2601 浏览

maven - 使用属性从 Maven 部署到 JFrog Artifactory

我有一个 Jenkins 工作,它具有 REPOSITORY 和 BRANCH 输入变量,并使用 Invoke 顶级 Maven 目标插件。它使 Maven 干净部署到 jfrog 工件。

但是有一个问题:我不知道如何将属性发送到已部署的工件。我的意思是像这样的属性,我们在 JFROG ARTIFACTORY 中拥有: 在此处输入图像描述

我知道,有Maven3-Artifactory Integration插件可以使用属性进行部署,但在我的情况下它不起作用,因为我的工作应该适用于不同的工件服务器。

我还在Invoke 顶级 Maven 目标中找到了一个参数Properties, 但它什么也没做(已部署工件的属性列表仍然为空) 在此处输入图像描述

如何通过 maven Invoke 顶级 Maven 目标插件向 JFROG ARTIFACTORY 发送属性?提前致谢。