在 SonarQube 项目上设置自定义属性

问题描述 投票:0回答:1

我正在按照 Sonarqube Web API 上的文档获取/设置属性。我想在项目 pi_core 上设置一个属性,属性名称为“appName”,值为“UCFE”。最终,我想通过 PowerShell 完全自动化此操作,但现在我只是尝试像文档一样使用curl 来验证概念。我的命令是:

curl -u myID:myPassword -X POST http://myServer.ad1.prod:9000/api/properties?id=appName&value=UCFE&resource=pi_core

我已通过执行需要管理员授权的其他通用 Web API 调用来验证我的 ID 和密码是否有效。当我尝试运行上面的代码时,我得到:

{"err_code":200,"err_msg":"property created"}'value' is not recognized as an internal or external command, operable program or batch file.
'resource' is not recognized as an internal or external command, operable program or batch file.

有什么想法为什么这个命令(在我看来除了值之外与文档相同)会出现上述错误?

curl sonarqube sonarqube-web
1个回答
1
投票

首先,将 URI 用引号引起来;

curl -u myID:myPassword -X POST 'http://myServer.ad1.prod:9000/api/properties?id=appName&value=UCFE&resource=pi_core'
  • 如果您不将其包含并从 shell 运行,则启动的

    &
    将会向后台发送 3 个命令

  • API 文档常常不完整、测试有限、被拼凑在一起,甚至在博客上显示时无意中陷入转义过程。

在命令行上使用curl时,请记住

shell
首先解释命令。

因此,上面的arg7arg8被发送到

cURL
作为参数。 cURL 不知道“value=UCFE”的含义,因此出现错误:

“值”不被识别为内部或外部命令

当您在要作为one参数发送的文本块周围加上引号时(例如,

cURL
的URL),它看起来像这样:


旁注 - 为了完成;

单引号或双引号通常并不重要,但它们不同。

  • 单引号的情况:某些 API 中带有

    $
    符号。例如 MYOB 有很多参数,如下所示;在这种情况下,如果有很多,使用单引号可能更容易:

    '?$filter=DateOccurred%20ge%20datetime%272016-07-25%2'
    。在这种情况下,如果有很多,使用单引号可能会更容易。

  • 双引号的情况:很多变量:

    "?id=$id&refresh=true¶mlist=$params&authredirect=$authlevel"

© www.soinside.com 2019 - 2024. All rights reserved.