ci时sonar提示没有权限

  • Choerodon平台版本:0.21.0

  • 运行环境:自主搭建

  • 问题描述:

    ci时进行代码质量管理,如图报错信息:



    账号密码在devops-service里配置的admin,请问是什么问题

用你配置的admin能登录sonar吗?

image


choerodon和默认的adin都是可以登录的

请问是我该如何排查

SERVICES_SONARQUBE_URL: http://example.com
SERVICES_SONARQUBE_USERNAME: admin
SERVICES_SONARQUBE_PASSWORD: admin

你对照这个配置来 好好检查一下配置

配置是在 devops-service中

我检查了配置,在devops里确实有这个,也重新执行了ci还是不行


在ci中加入以下指令:
echo ${SONAR_URL}
echo ${SONAR_LOGIN}
你自己确认下有效吗, 不用发出来

这2个都有值,SONAR_URL是正确的地址,SONAR_LOGIN是一串数字,我百度了下说sonar新版本是获取的token,且我执行CI多次SONAR_LOGIN的值是一致的,
我怎么确定SONAR_LOGIN的有效性呢,使用choerodon登录了sonar,在my account里查看如下:


这里并没有查看到token

你用的是用户名密码的方式扫描 所以这里没有token是正常的

我按官网的这2步都配置了,为什么还是报这个错

你自己生成一个sonar 的token, 本地跑sonar, 看看有没有问题

我使用choerodon-admin登录sonar,在账号下创建了一个token,在本地跑ci里的sonar语句,执行成功了,且sonar以及choerodon页面里都可以看到相应的视图,那现在怎么办,使用SONAR_LOGIN参数获取的值应该是不对了,请问这个值是怎么来的,在哪里可以设置正确

select dc.config
from devops_config dc
where dc.type = 'sonar' and dc.name = 'sonar_default';

上面这条sql查的就是sonar的token, 不用发出来, 你先保留原来的token, 手动改下数据库吧

改了数据库的值以后可以执行了,那之前的值是从哪来的呢

之前的值是启动时如果没有那条纪录会去创建一个sonar token来插入纪录, 你一直都是用的这一个sonar吗?或者说你的sonar数据清除过吗?

没有,按文档一次安装的sonar,不过我是先启动的devops 后安装的sonar不知道有影响没,正常的情况是不是devops_config里有一个token,并且安装sonar也会自动生成一个token(或者手动创建)

并不是的, devops-service有个启动任务, 根据sonar配置创token然后存数据库