You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用SonarQube API生成GLOBAL_ANALYSIS_TOKEN提示'name'参数缺失

SonarQube API生成GLOBAL_ANALYSIS_TOKEN报错:name参数缺失

环境配置

  • SonarQube版本:Enterprise Edition Version 9.9.1 (build 69595)
  • 接口地址:https://quality-analysis.my-company.io/sonar/api/user_tokens/generate
  • HTTP方法:POST

请求负载

发送的JSON负载:

{
    "name": "TestingfromAPI",
    "login": "ghassen@my-company.io",
    "projectKey": "demo",
    "type": "GLOBAL_ANALYSIS_TOKEN",
    "expirationDate": "2023-10-30"
}

错误信息

返回错误:

{
    "errors": [
        {
            "msg": "The 'name' parameter is missing"
        }
    ]
}

疑问

  1. 已在JSON负载中指定name参数,为何仍提示该参数缺失?
  2. name参数是否有特定的格式或编码要求?
  3. 是否存在版本相关的限制导致此问题?

问题1:为何提示name参数缺失

SonarQube的api/user_tokens/generate接口不支持JSON格式的请求体,它要求参数以application/x-www-form-urlencoded格式传递(即表单键值对)。你用JSON发送参数,服务端无法解析到name字段,所以报错缺失。

问题2:name参数的格式要求

name参数仅需满足:

  • 长度在1到255字符之间
  • 允许包含字母、数字、空格、下划线、连字符、点号
    没有特殊编码要求,你当前的TestingfromAPI完全符合规范。

问题3:版本相关限制

SonarQube 9.9.1版本的api/user_tokens/generate接口,生成GLOBAL_ANALYSIS_TOKEN的逻辑没有特殊限制,但注意:

  • 全局分析令牌不需要指定projectKey(该参数仅用于项目分析令牌),你当前请求里的projectKey会被忽略
  • 生成全局分析令牌需要请求发起者具备全局管理员权限,如果权限不足也可能引发参数相关的误导性报错(建议先确认权限)

修正后的请求示例

将参数改为表单格式传递:

POST /sonar/api/user_tokens/generate
Content-Type: application/x-www-form-urlencoded

name=TestingfromAPI&login=ghassen@my-company.io&type=GLOBAL_ANALYSIS_TOKEN&expirationDate=2023-10-30

如果用curl命令:

curl -X POST "https://quality-analysis.my-company.io/sonar/api/user_tokens/generate" \
  -u "你的管理员账号:密码" \
  -d "name=TestingfromAPI" \
  -d "login=ghassen@my-company.io" \
  -d "type=GLOBAL_ANALYSIS_TOKEN" \
  -d "expirationDate=2023-10-30"

内容的提问来源于stack exchange,提问作者Ghassen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 14:25:12