CodeAnalysis
CodeAnalysis copied to clipboard
圈复杂度的codefile报错,代码检测错误codefile正常
背景:仓库有12G,所以使用的是客户端分析上报模式,对应到服务端里面配置OAuth的验证模式
问题:错误处理能获取到codefile的问题,但是圈复杂度codefile报错
详细日志如下:
服务端报错堆栈信息
圈复杂度接口返回400
问题处理接口codefile返回正常没问题
这是什么问题?
麻烦再点击下圈复杂度问题详情,然后看下scmproxy服务日志输出了什么错误信息
上面提的issue里面有这个截图
这个是今天我再次尝试也是一样的
-2024-01-10 16:28:30,699-ERROR-util.scm.base: scmproxy error message: <class 'Exception'>:{method: latest_revision, error_message: [404] 项目可能不存在或没有项目访问权限}
Traceback (most recent call last):
File "/CodeAnalysis/server/projects/main/util/scm/errorcatch.py", line 37, in getattr
value = getattr(self._obj, name)
File "/CodeAnalysis/server/projects/main/util/scm/git.py", line 68, in latest_revision
return self._git_proxy.latest_revision(self._scm_info)
File "/usr/local/lib/python3.7/xmlrpc/client.py", line 1112, in call
return self.__send(self.__name, args)
File "/usr/local/lib/python3.7/xmlrpc/client.py", line 1452, in __request
verbose=self.__verbose
File "/usr/local/lib/python3.7/xmlrpc/client.py", line 1154, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/local/lib/python3.7/xmlrpc/client.py", line 1170, in single_request
return self.parse_response(resp)
File "/usr/local/lib/python3.7/xmlrpc/client.py", line 1342, in parse_response
return u.close()
File "/usr/local/lib/python3.7/xmlrpc/client.py", line 656, in close
raise Fault(**self._stack[0])
xmlrpc.client.Fault: <Fault 1: "<class 'Exception'>:{method: latest_revision, error_message: [404] 项目可能不存在或没有项目访问权限}">
@Lingghh 这个报错,明显有权限的,代码的issue问题接口都没问题,不过我们这个项目有个问题,就是我们gitlab部署的服务端不是80端口,是83端口,我主动去db里面修改了一下codeproj_baserepository 的scm_url字段
已破案,属于分支包含有特殊的/导致获取git revision的url加上了不应该加上的特殊符号 / 如果马上解决的话需要对branch做一次quote
tmp_branch = urllib.parse.quote(self._branch, safe="")
r = self.get(GITLAB_APIS["get_revision"].format(
project_id=self._enquote_project_path, branch_name=tmp_branch))
但是和官方确认,这个不一定会修复,可能引发安全问题,有需要的自己修改
找到跟因,自己解决了