【问题标题】:Accessing SonarQube quality gate API for private projects访问私有项目的 SonarQube 质量门 API
【发布时间】:2019-08-13 23:51:07
【问题描述】:

如果是私人项目,我如何访问 SonarQube 质量门 API?我尝试将用户的“用户令牌”作为Authorization Bearer 令牌和基本登录名发送。但是,它没有用。我可以访问它的唯一方法是在用户登录时从浏览器,即存在登录令牌。也可以从 Postman 进行这样的访问。那么我如何获得令牌,这是访问 API 的正确方法吗?

【问题讨论】:

    标签: api sonarqube access-token


    【解决方案1】:

    令牌确实是访问 API 的正确方式。

    1) 您可以通过以下方式获取新令牌 管理 > 安全 > 令牌下的用户(单击列表图标)然后输入名称并单击生成

    确保复制令牌,因为关闭后您将无法看到它。

    2) Postman 可以选择根据请求生成代码(单击“代码”选项)。如果它通过 Postman 工作,它应该可以在您的代码中使用复制的请求。

    3) 作为最后的手段,如果它不起作用,这是我编写的用于发送 Get 请求的 Groovy 函数。

    // Returns response of SonarQube web API call with admin auth in text format
    def getFromApi(String getURL){
    
        def Res = ("curl -u "+AuthenticationToken+": "+getURL).execute().text
    
        if (Res){
            return Res
        }
    
        else{ 
            return "error"
        }
    }
    

    对于发布请求,您只需在身份验证令牌之前添加 -X POST。修改它以满足您的需要。 希望对您有所帮助!

    【讨论】:

    • 我能够解决这个问题,但是我使用了 Powershell 的 Invoke-RestMethod cmdlet(不幸的是,SQ 服务器位于 Windows 服务器上)。我无法使用 curl -u 令牌登录,但我能够使用 curl -u user:password 登录。它可以在 Ubuntu 上运行,但是,在 Windows 上,我必须创建凭据对象等。我不完全确定我做了什么,但它现在可以工作了。我仍然更喜欢发送 curl -u - 像 groovy 中的请求。
    猜你喜欢
    • 2015-02-11
    • 2017-01-24
    • 2021-02-18
    • 2021-05-06
    • 1970-01-01
    • 2021-08-26
    • 2015-07-05
    • 2016-08-11
    • 2016-03-07
    相关资源
    最近更新 更多