Github组件报错:合规配置仍提示未找到匹配URL与分支的仓库
完全按照Hygieia官方文档完成配置后,点击对话框「保存」按钮时,底部弹出错误提示:No repos found with matching url and branch,但对应的GitHub仓库(https://github.com/githubtraining/hellogitworld.git)实际存在。
API服务器日志显示,系统尝试在collector items集合中针对options.url字段执行查询,但该集合的条目并未配置此字段,日志详情如下:
2022-11-14 05:11:31,089 [http-nio-8080-exec-6] DEBUG o.s.data.mongodb.core.MongoDbUtils - Getting Mongo Database name=[dashboarddb] 2022-11-14 05:11:31,107 [http-nio-8080-exec-6] INFO c.c.d.a.t.JwtAuthenticationFilter - correlation_id=NULL application=hygieia, service=api, requester=admin, duration=135, uri=/api/collector/item/type/searchField/scm, request_method=GET, status=200, client_ip=127.0.0.1, x-forwarded-for=null, request_params=search:[https://github.com/githubtraining/hellogitworld.git],searchField:[options.url],size:[20]
报错界面截图:
检查SCM Collector字段映射
确认SCM Collector配置文件中,仓库URL的存储字段是否为options.url。部分Hygieia版本中,SCM Collector会将仓库URL直接存在url字段而非嵌套的options.url下,需调整配置让Collector的存储字段与API查询字段匹配。手动修正MongoDB集合数据
连接到dashboarddb数据库,找到collector items集合,为目标SCM Collector条目添加options.url字段,执行示例命令:db.getCollection('collector items').updateOne( { type: "scm", name: "你的SCM Collector名称" }, { $set: { "options.url": "https://github.com/githubtraining/hellogitworld.git" } } )重启Collector同步数据
重启SCM Collector服务,触发仓库数据重新同步,确保options.url字段被正确写入集合。校验API查询逻辑
若上述操作无效,检查Hygieia API代码,确认搜索SCM仓库的查询字段是否与Collector实际存储字段一致。若API硬编码options.url作为查询字段,而Collector存储在url字段,需修改API或Collector的字段映射规则。
内容的提问来源于stack exchange,提问作者John Difool

