如何将Gitlab self managed上的子模块连接到deepsource.io
Deepsource 访问自托管 Gitlab 子模块的 SSH 公钥配置方案
优先选择将公钥绑定到对应子模块仓库的部署密钥,遵循权限最小化原则,安全性更高,两种配置方案操作步骤如下:
方案1:绑定到子模块仓库(推荐)
- 登录你的自托管 Gitlab 实例(git.server.com),进入子模块对应的仓库主页
- 侧边栏选择「设置」→「仓库」→「部署密钥」
- 点击「新增部署密钥」,自定义填写密钥名称(比如
Deepsource 子模块只读访问方便后续识别),把 Deepsource 生成的 SSH 公钥完整粘贴到密钥输入框 - 不要勾选「授予写入权限」,Deepsource 仅需要代码拉取的只读权限即可完成扫描
- 点击保存即可完成配置
方案2:绑定到个人 Gitlab 账号(不推荐)
该方案会让该公钥拥有你的 Gitlab 账号下所有授权仓库的访问权限,仅适合临时测试使用:
- 登录自托管 Gitlab 实例,点击右上角个人头像进入「偏好设置」→「SSH 密钥」页面
- 粘贴 Deepsource 生成的 SSH 公钥,可按需设置密钥有效期,点击保存即可
配置验证
配置完成后需要确认主仓库根目录下 .gitmodules 文件中,对应子模块的 URL 为 SSH 格式(示例:git@git.server.com:group/submodule-repo.git)而非 HTTPS 格式,否则 SSH 配置不会生效。确认无误后在 Deepsource 重新触发一次仓库扫描,即可验证子模块能否正常拉取。
内容的提问来源于stack exchange,提问作者chraebsli
相关产品推荐
相关产品推荐

