一.介绍

sourcegraph是一个开源的代码搜索软件,官方介绍如下:

Sourcegraph 允许开发人员通过将整个代码库的见解直接带入编辑器,来快速搜索、编写和理解代码。在单一平台上搜索整个代码库——包括所有代码托管和存储库,无论规模大小。Code Search 使开发人员能够轻松加入新的代码库,更快地理解代码,并查找和修复安全风险。

二. 使用

2.1 代码搜索

在 https://sourcegraph.com/search 网站上,可以基于整个github仓库对开源项目进行搜索,sourcegraph的优势在于

  • 编辑界面友好,搜索功能强大

如上图所示,搜索的语法很简单,并且都有提示,1min即可快速上手。

context:global:代表搜索为全局,也就是整个github仓库

repo:代表搜索的仓库

file:代表搜索的文件或文件夹

content:代表搜索的内容

  • 支持ai问答

选中代码,即可对代码进行解释等操作。

  • 快速跳转方法引用

2.2 快速查看github项目

除了在官网上直接搜索项目,sourcegraph还提供了chrome插件,可以直接将github项目在sourcegraph中展示。

在谷歌商店安装sourcegraph后,打开github上项目,即可在界面上显示sourcegraph图标。

点击后,即可直接跳转sourcegraph打开项目,方便快捷。

三. 自部署

除了在官方网站上使用外,sourcegraph还提供了自部署的docker镜像,可以在自己服务器上部署。

主要有以下作用:

  1. 可以添加除了github之外的其他仓库,官方支持gitlab等

  2. 可以收藏一些github项目,当做自己的代码仓库

  3. 可以添加私有git仓库,快速在网页查看

3.1 拉取镜像

拉取sourcegraph官方镜像,docker pull sourcegraph/server:insiders

如果在国内拉取不下来,可以参考 阿里云自建docker镜像加速 这篇文章,实现快速拉取

3.2 启动容器

docker run \
--publish 7080:7080 --rm \
--volume /data/sourcegraph/config:/etc/sourcegraph \
--volume /data/sourcegraph/data:/var/opt/sourcegraph \
--env HTTP_PROXY="xxx" \
-d \
--name sourcegraph \
sourcegraph/server:insiders

如果自己服务器有代理的话,可以添加http代理,这样拉取一些github仓库时会很快。

3.3 使用

  1. 配置个人git仓库

由于sourcegpraph并不支持gitea,因此需要使用通用的git添加方法

最新版的sourcegraph镜像中,并没有ssh-keygen命令,因此无法配置git免密。这里采取另一种方式拉取仓库。在url中配置用户名和密码。

repos参数代表你需要拉取的仓库名称

  1. 配置github授权

  • 添加github.com

  • 在github上生成授权token

  • 在sourcegraph添加

    repos:仓库名称,需要拉哪个就配置哪个

    上面也有一些快捷语法,比如按查询条件批量添加等等。建议按需添加,sourcegraph用来收藏一些项目即可,没必要全添加。

    全量的去官方网站即可。