SonarQube API:具有包含字符串的密钥的项目

Posted

技术标签:

【中文标题】SonarQube API:具有包含字符串的密钥的项目【英文标题】:SonarQube API: projects with key that includes string 【发布时间】:2017-12-16 23:36:13 【问题描述】:

根据api/components/search的documentation,参数q

将搜索限制为包含所提供字符串的组件名称或组件键。

不幸的是,该语句仅适用于名称,使用键搜索需要完整的字符串。是否有任何其他可能仅使用键的子字符串来搜索项目?

在 6.3.1 和 6.4 中试过,两个版本都不行。

【问题讨论】:

【参考方案1】:

目前不支持通过部分键搜索组件

控制这个查询的搜索结果的代码是ComponentMapper.xml中的这个sn-p:

  <if test="query.nameOrKeyQuery!=null">
    and (
      p.kee = #query.nameOrKeyQuery,jdbcType=VARCHAR
      or
      upper(p.name) like #query.nameOrKeyUpperLikeQuery,jdbcType=VARCHAR escape '/'
    )
  </if>

这里,nameOrKeyq参数的值, 由ComponentQuery 管理。 在上面的 sn-p 中,您可以看到该值用于完全匹配项目键,或部分匹配项目名称。

【讨论】:

在我看来,您应该更改服务描述 - 它具有误导性。 @ArturMalinowski 文档的修复将成为即将发布的版本的一部分 (here's the commit) 是否支持按部分键搜索?

以上是关于SonarQube API:具有包含字符串的密钥的项目的主要内容,如果未能解决你的问题,请参考以下文章

Sonarqube API 调用错误响应

Sonarqube API - 通过通配符搜索项目

用于代码气味的 SonarQube Web API - 技术债务计数

如何从SonarQube api获得500多个问题

缺少必需的参数:/ key:[Sonarqube项目密钥]

SonarQube 错误:组件密钥长度超过授权的最大长度