使用 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 應用 連結中包括了上面的初始字串,點選這個連結後,搜尋介面如下圖所示:
下面我將提供幾個使用 Web 應用程式進行搜尋的例子,大家可能會對它們感興趣。
查詢使用流行的經 OSI 批准的許可證的儲存庫
下面的查詢語句將掃描所有相容 “ 開源定義 ”(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"
查詢 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
使用命令列
Sourcegraph 還有一個叫做 src 的命令列客戶端,它可以讓你完成我剛才提到的所有事情。此外,它還有其他一些有用的命令。比如說,它可以把結果用 JSON 格式輸出,方便你在程式設計中使用。
src search -json 'repo:^src.fedoraproject.org/ lang:"RPM Spec" License: ^.*apache|bsd|gpl|lgpl|mit|mpl|cddl|epl.*$'
輸出 JSON
搜尋語法
就入門而言,上面的例子是很好的起點,但 Sourcegraph 還支援更多的查詢語句。你可以 檢視所有的搜尋查詢語法 ,並根據需要建立你自己的查詢語句。
總結
正如你所看到的,有了 Sourcegraph,Fedora Linux 社群現在可以快速搜尋託管在 src.fedoraproject.org 上的所有程式碼,無論是使用普通查詢還是複雜的正則查詢。
感謝 Fedora Linux 社群的慷慨幫助和熱情歡迎。如果你有任何想補充的內容或問題,我和我的團隊都會在下面的評論區回覆。你也可以 在 Slack 上找到我們 。
特別感謝 Vanesa Ortiz 促成了這次合作,還有 Ben Venker 幫助修復了我的正則表示式(多次),以及 Rebecca Dodd 和 Nick Moore 在編輯上的幫助。
via: https://fedoramagazine.org/using-sourcegraph-to-search-34000-fedora-repositories/
作者: Justin Dorfman 選題: lujun9972 譯者: lkxed 校對: wxy
本文由 LCTT 原創編譯,Linux中國榮譽推出
- GNOME 43 釋出,標誌性的版本
- systemd 已可用於 WSL | Linux 中國
- 在 Arch Linux 和其他發行版中使用終端連線到 WiFi | Linux 中國
- Arch Linux 已從儲存庫中徹底移除 Python 2
- 關於 Linux 和 Git 的創造者 Linus Torvalds 的 20 件趣事 | Linux 中國
- FreeDOS 的 16 種顏色的由來 | Linux 中國
- CubyText:一個正在開發中的快速的跨平臺開源知識管理應用
- U 盤啟動盤建立工具 Rufus 在 Linux 上不能使用?這裡有 6 個替代品
- 11 個有趣的 Firefox 瀏覽器擴充套件,改善你的瀏覽體驗 | Linux 中國
- 深度 deepin 開源自研程式語言:Unilang
- 哇!Torvalds 為自己的 Apple M2 Macbook 專門修改了 Fedora Linux | Linux 中國
- Linus Torvalds 談工作與生活、Rust 和他的 M2 MacBook Air | Linux 中國
- 如何在瀏覽器中啟用深色模式 | Linux 中國
- Mesa 新補丁大幅優化 CS:GO for Linux 的啟動時間
- 如何在 Ubuntu 桌面中應用強調色 | Linux 中國
- Unix 歷史:一個偉大作品的誕生
- 10 大可以摧毀你的 Linux 的命令 | Linux 中國
- 在 Linux 中使用 Etcher 建立可啟動 USB – 下載和使用指南 | Linux 中國
- 開源貢獻者翻譯組 LCTT 九歲啦 | Linux 中國
- 微軟宣佈 SQL Server 2022 RC 0 在 Linux 上的可用性