Linux中國

使用 Sourcegraph 搜索 34000 多個 Fedora 倉庫

在 2021 年 10 月,一個 Fedora Linux 用戶 問了一個關於許可的問題。Fedora 項目負責人 Matthew Miller 回復道:「我不能快速地檢查(這個問題),因為我們沒有一個完整的、龐大的、可搜索的存儲庫來檢索 Fedora 中所有軟體包。」

接著他說:「……或許我們可以付錢給 Sourcegraph,讓他們幫我們做這個。他們看起來樂於助人。」 他說的沒錯,我們(Sourcegraph)的確是樂於助人,而且我們還不想要你的錢,相反,我們想與 Fedora 社區合作。

Fedora 社區現在可以在他們的開源代碼世界中盡情搜索 —— 目前有超過 34,000 個存儲庫,而且還在不斷增加。

代碼搜索簡介

如果你還不熟悉 代碼搜索 的概念,我現在就來告訴你。代碼搜索可以讓團隊更快地掌握一個新的代碼庫,在裡面找到答案,幫助團隊識別安全風險,以及許多其他用例。Sourcegraph 已經在 GitHub 和 GitLab 等多個代碼託管服務上,索引了 200 多萬個存儲庫。本文只關注 src.fedoraproject.org 的代碼搜索。Sourcegraph 同時提供了一個 Web 應用命令行客戶端

使用 Web 應用

在使用 Sourcegraph Web 應用 時,你需要先輸入初始字元串 repo:^src.fedoraprojects.org,然後再開始查詢。這個 Web 應用 鏈接中包括了上面的初始字元串,點擊這個鏈接後,搜索界面如下圖所示:

Sourcegraph Web 應用界面

下面我將提供幾個使用 Web 應用程序進行搜索的例子,大家可能會對它們感興趣。

查找使用流行的經 OSI 批准的許可證的存儲庫

下面的查詢語句將掃描所有兼容 「 開源定義 Open Source Definition 」(OSD) 的軟體存儲庫。

repo:^src.fedoraproject.org/ lang:"RPM Spec" License: ^.*apache|bsd|gpl|lgpl|mit|mpl|cddl|epl.*$

許可證搜索

試一下!

查找帶有 TODO 的文件

下面的查詢語句將在 34,000 多個倉庫中找到 TODO 文件。對於那些希望為需要幫助的項目做出貢獻的人來說,是一個非常棒的功能。

repo:^src.fedoraproject.org/ "TODO"

搜索 TODO

試一下!

查找 FTP 伺服器上的文件

我的一個前同事告訴我 「FTP 是一個死協議」。真的是這樣嗎?你也可以在這個查詢中加入任何其他協議,如 irc、https 等。

repo:^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)漏洞的文件(可能會有誤報)。你也可以搜索其他漏洞,然後報告給項目維護者。

repo:^src.fedoraproject.org/ org.apache.logging.log4j 2.((0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15)(.[0-9]+)) count:all

搜索 log4j

試一下!

使用命令行

Sourcegraph 還有一個叫做 src 的命令行客戶端,它可以讓你完成我剛才提到的所有事情。此外,它還有其他一些有用的命令。比如說,它可以把結果用 JSON 格式輸出,方便你在編程中使用。

src search -json 'repo:^src.fedoraproject.org/ lang:"RPM Spec" License: ^.*apache|bsd|gpl|lgpl|mit|mpl|cddl|epl.*$'

輸出 JSON

輸出 JSON

試一下!

搜索語法

就入門而言,上面的例子是很好的起點,但 Sourcegraph 還支持更多的查詢語句。你可以 查看所有的搜索查詢語法,並根據需要創建你自己的查詢語句。

總結

正如你所看到的,有了 Sourcegraph,Fedora Linux 社區現在可以快速搜索託管在 src.fedoraproject.org 上的所有代碼,無論是使用普通查詢還是複雜的正則查詢。

感謝 Fedora Linux 社區的慷慨幫助和熱情歡迎。如果你有任何想補充的內容或問題,我和我的團隊都會在下面的評論區回復。你也可以 在 Slack 上找到我們

特別感謝 Vanesa Ortiz 促成了這次合作,還有 Ben Venker 幫助修復了我的正則表達式(多次),以及 Rebecca DoddNick Moore 在編輯上的幫助。

via: https://fedoramagazine.org/using-sourcegraph-to-search-34000-fedora-repositories/

作者:Justin Dorfman 選題:lujun9972 譯者:lkxed 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國