一.介绍
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镜像,可以在自己服务器上部署。
主要有以下作用:
可以添加除了github之外的其他仓库,官方支持gitlab等
可以收藏一些github项目,当做自己的代码仓库
可以添加私有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 使用
配置个人git仓库
由于sourcegpraph并不支持gitea,因此需要使用通用的git添加方法
最新版的sourcegraph镜像中,并没有ssh-keygen命令,因此无法配置git免密。这里采取另一种方式拉取仓库。在url中配置用户名和密码。
repos参数代表你需要拉取的仓库名称
配置github授权
添加github.com
在github上生成授权token
在sourcegraph添加
repos:仓库名称,需要拉哪个就配置哪个
上面也有一些快捷语法,比如按查询条件批量添加等等。建议按需添加,sourcegraph用来收藏一些项目即可,没必要全添加。
全量的去官方网站即可。