This is an automated email from the ASF dual-hosted git repository.

klesh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git


The following commit(s) were added to refs/heads/main by this push:
     new a215ca424 use non-admin token for sonarQube (#8731)
a215ca424 is described below

commit a215ca4246cb36778255cbeea1621ef1607fa1f2
Author: Joshua Smith <[email protected]>
AuthorDate: Thu Feb 26 08:00:45 2026 -0700

    use non-admin token for sonarQube (#8731)
---
 backend/plugins/sonarqube/api/blueprint_v200.go     | 3 ++-
 backend/plugins/sonarqube/api/remote_api.go         | 3 ++-
 config-ui/src/plugins/register/sonarqube/config.tsx | 6 +++++-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/backend/plugins/sonarqube/api/blueprint_v200.go 
b/backend/plugins/sonarqube/api/blueprint_v200.go
index e4804534b..3bcf47785 100644
--- a/backend/plugins/sonarqube/api/blueprint_v200.go
+++ b/backend/plugins/sonarqube/api/blueprint_v200.go
@@ -131,7 +131,8 @@ func GetApiProject(
        }
        query := url.Values{}
        query.Set("q", projectKey)
-       res, err := apiClient.Get("projects/search", query, nil)
+       // Use components/search_projects for consistency and normal-token 
(Browse) support.
+       res, err := apiClient.Get("components/search_projects", query, nil)
        if err != nil {
                return nil, err
        }
diff --git a/backend/plugins/sonarqube/api/remote_api.go 
b/backend/plugins/sonarqube/api/remote_api.go
index 704cdabf5..d782a02cf 100644
--- a/backend/plugins/sonarqube/api/remote_api.go
+++ b/backend/plugins/sonarqube/api/remote_api.go
@@ -48,7 +48,8 @@ func querySonarqubeProjects(
        if page.Page == 0 {
                page.Page = 1
        }
-       res, err := apiClient.Get("projects/search", url.Values{
+       // Use components/search_projects so non-admin (Browse) tokens can list 
projects.
+       res, err := apiClient.Get("components/search_projects", url.Values{
                "p":  {fmt.Sprintf("%v", page.Page)},
                "ps": {fmt.Sprintf("%v", page.PageSize)},
                "q":  {keyword},
diff --git a/config-ui/src/plugins/register/sonarqube/config.tsx 
b/config-ui/src/plugins/register/sonarqube/config.tsx
index 5da394d20..966ce8bf5 100644
--- a/config-ui/src/plugins/register/sonarqube/config.tsx
+++ b/config-ui/src/plugins/register/sonarqube/config.tsx
@@ -55,7 +55,11 @@ export const SonarQubeConfig: IPluginConfig = {
           setErrors={setErrors}
         />
       ),
-      'token',
+      {
+        key: 'token',
+        subLabel:
+          'A token with Browse permission on the projects you want is 
sufficient for listing projects and collecting issues, hotspots, and file 
metrics. Listing Accounts (users) may require a system admin token on some 
SonarQube instances.',
+      },
       'proxy',
       {
         key: 'rateLimitPerHour',

Reply via email to