当前位置: 首页 > 科技观察

使用Sourcegraph搜索34000+个Fedora存储库

时间:2023-03-13 12:54:32 科技观察

2021年10月,一位FedoraLinux用户询问了有关许可的问题。Fedora项目负责人MatthewMiller回答说:“我无法快速检查(问题),因为我们没有一个完整的、大型的、可搜索的存储库来检索Fedora中的所有软件包。”他接着说:“……也许我们可以付钱让Sourcegraph帮我们做这件事。他们似乎很有帮助。”他是对的,我们(Sourcegraph)很有帮助,我们还不想要你的钱,相反,我们想与Fedora社区合作。Fedora社区现在可以随心所欲地搜索他们的开源代码世界——目前有超过34,000个存储库并且还在增加。代码搜索简介如果您不熟悉代码搜索的概念,现在让我告诉您。代码搜索可以让团队更快地掌握新的代码库,在其中找到答案,帮助团队识别安全风险,以及许多其他用例。Sourcegraph在GitHub和GitLab等多个代码托管服务上索引了超过200万个存储库。本文仅关注src.fedoraproject.org的代码搜索。Sourcegraph提供了一个Web应用程序和命令行客户端。使用WebApp使用SourcegraphWebApp时,您需要在开始查询之前输入初始字符串repo:^src.fedoraprojects.org。以上初始字符串包含在web申请链接。点击此链接后,搜索界面如下图:兴趣。使用流行的OSI批准的许可证查找存储库下面的查询扫描所有开放源代码定义(OSD)兼容的软件存储库。repo:^src.fedoraproject.org/lang:"RPMSpec"License:^.*apache|bsd|gpl|lgpl|mit|mpl|cddl|epl.*$LicenseSearchFindfileswithTODOs查询下面的语句将找到TODO超过34,000个存储库中的文件。对于那些希望为需要帮助的项目做出贡献的人来说,这是一个很棒的功能。repo:^src.fedoraproject.org/"TODO"SearchTODO在FTP服务器上查找文件我的一位前同事告诉我“FTP是一个死协议”。真的是这样吗?您还可以在此查询中包括任何其他协议,如irc、https等。回购:^src.fedoraproject.org/(?:ftp)://[A-Za-z0-9-]{0,63}(.[A-Za-z0-9-]{0,63})+(:d{1,4})?/*(/*[A-Za-z0-9-._]+/*)*(?.*)?(#.*)?使用具有易受攻击的Log4j版本的文件进行搜索协议查找此查询将查找可能易受CVE-2021-44228(又名Log4j)攻击(可能是误报)的任何文件。您还可以搜索其他错误并将其报告给项目维护人员。回购:^src.fedoraproject.org/org.apache.logging.log4j2.((0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15)(.[0-9]+))count:allSearchlog4j使用命令行Sourcegraph还有一个名为src的命令行客户端可以让你做我刚才提到的所有事情。此外,它还有一些其他有用的命令。比如可以将结果输出为JSON格式,方便你在编程中使用。srcsearch-json'repo:^src.fedoraproject.org/lang:"RPMSpec"License:^.*apache|bsd|gpl|lgpl|mit|mpl|cddl|epl.*$'输出JSON输出JSON试试!搜索语法至于入门,上面的例子是一个很好的起点,但Sourcegraph还支持更多的查询语句。您可以查看所有搜索查询语法并根据需要创建自己的语法。总结如您所见,借助Sourcegraph,FedoraLinux社区现在可以快速搜索托管在src.fedoraproject.org上的所有代码,无论是使用普通查询还是复杂的常规查询。