Curl SonarQube 5.6恢复质量档案

Curl SonarQube 5.6恢复质量档案,curl,sonarqube,Curl,Sonarqube,我正在尝试使用curl在新安装的SonarQube v.5.6.4 over Web API上恢复质量概要文件 在c:\temp中,我从运行Sonar中导出了Sonar way配置文件,并将其重命名为test.xml,在内部,名称也更改为test,以便两个配置文件都不同 在c:\temp位置,我使用了以下curl命令: curl -v -X POST -u admin:admin --header "Content-Type: application/xml" "http://loca

我正在尝试使用curl在新安装的SonarQube v.5.6.4 over Web API上恢复质量概要文件

在c:\temp中,我从运行Sonar中导出了Sonar way配置文件,并将其重命名为test.xml,在内部,名称也更改为test,以便两个配置文件都不同

在c:\temp位置,我使用了以下curl命令:

curl -v -X POST -u admin:admin --header "Content-Type: application/xml" "http://localhost:9000/api/qualityprofiles/restore" -d backup=test.xml 答复是:

500 Internal Server Error If you are the administrator of this website, then please read this web application's log file to find out what went wrong. 无论我如何使用不同的内容类型、使用-F参数、使用@before file name更改curl命令,我都无法解决这个问题

此外,我检查了声纳记录,如下所示:

2017.01.30 14:13:14 ERROR web[rails] /!\ FAILSAFE /!\ Mon Jan 30 14:13:14 +0100 2017 Status: 500 Internal Server Error undefined method `name' for nil:NilClass C:/bin/sonarqube-5.6.4/web/WEB-INF/gems/gems/activesupport-2.3.15/lib/active_support/xml_mini/rexml.rb:29:in `merge_element!' C:/bin/sonarqube-5.6.4/web/WEB-INF/gems/gems/activesupport-2.3.15/lib/active_support/xml_mini/rexml.rb:18:in `parse' org/jruby/RubyKernel.java:2227:in `send' C:1:in `parse' C:/bin/sonarqube-5.6.4/web/WEB-INF/gems/gems/activesupport-2.3.15/lib/active_support/core_ext/hash/conversions.rb:171:in `from_xml' C:/bin/sonarqube-5.6.4/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/params_parser.rb:34:in `parse_formatted_parameters' C:/bin/sonarqube-5.6.4/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/params_parser.rb:11:in `call' file:/C:/bin/sonarqube-5.6.4/lib/server/jruby-rack-1.1.13.2.jar!/jruby/rack/session_store.rb:70:in `context' C:/bin/sonarqube-5.6.4/web/WEB-INF/gems/gems/rack-1.1.6/lib/rack/session/abstract/id.rb:58:in `call' C:/bin/sonarqube-5.6.4/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/failsafe.rb:26:in `call' C:/bin/sonarqube-5.6.4/web/WEB-INF/gems/gems/actionpack-2.3.15/lib/action_controller/dispatcher.rb:106:in `call' file:/C:/bin/sonarqube-5.6.4/lib/server/jruby-rack-1.1.13.2.jar!/rack/adapter/rails.rb:34:in `serve_rails' file:/C:/bin/sonarqube-5.6.4/lib/server/jruby-rack-1.1.13.2.jar!/rack/adapter/rails.rb:39:in `call' file:/C:/bin/sonarqube-5.6.4/lib/server/jruby-rack-1.1.13.2.jar!/rack/handler/servlet.rb:22:in `call' 5.6.4版有什么问题吗


提前感谢您的反馈。

我的问题的答案是以下命令:

curl -v POST -u admin:admin "http://localhost:9000/api/qualityprofiles/restore" --form backup=@test.xml 看起来我以前没试过这个组合

回答是200 OK:

HTTP/1.1 100 Continue HTTP/1.1 200 OK Server: Apache-Coyote/1.1 Set-Cookie: JSESSIONID=A20898D27A0D843EEC6ED9791CABEB49; Path=/; HttpOnly X-Runtime: 265 ETag: "7cce49c3a8a16a16c8c48cc4942df042" Cache-Control: no-cache, no-store, must-revalidate X-Frame-Options: SAMEORIGIN X-XSS-Protection: 1; mode=block X-Content-Type-Options: nosniff Content-Type: application/json;charset=utf-8 Content-Length: 166 Date: Mon, 30 Jan 2017 14:19:51 GMT
如果所有xml备份文件都在一个目录中,则可以通过以下方式仅使用一个命令还原所有xml备份文件: C:>for/R.%1 IN*.xml DO curl.exe-v-X POST-u admin:admin\u密码 -表单备份=@%1

干杯


Massimo

似乎不需要POST选项。-form选项将导致curl使用POST。出于安全目的,应在~/.curlrc中提供身份验证-u admin:admin,以防止密码显示在命令历史记录中。或者,删除密码,让curl以-u admin的形式提示输入密码:我刚刚注意到我需要@才能让curl工作。谢谢