如何将 Gitlab 自管理子模块连接到 deepsource.io

How to connect a Gitlab self managed submodule to deepsource.io

I want to connect a git Submodule to deepsource.io. It says I need to connect it via SSH. The main repository is hosted on Github, and the Submodule is hosted by Git lab self-managed (git.server.com).

我必须在哪里粘贴来自 deepsource.io 的 public SSH 密钥?我必须在我的帐户或子模块上连接它吗?

在 deepsource.io 上生成 SSH 密钥后(通过导航到存储库的设置 > SSH 访问 > 生成 SSH 密钥对),复制提供的 public 密钥并将其添加为部署密钥到您的 GitLab 子模块存储库(设置 > 存储库 > 部署密钥)。不要授予对密钥的写入权限。

参考:How to enable deploy keys on GitLab.

如果您使用 HTTPS URL 指定子模块(查看存储库根目录中的 .gitmodules 文件),则需要将它们更改为 SSH URL。为此,您可以

  1. 直接编辑 .gitmodules 文件:如果文件如下所示:
[submodule "screamer"]
    path = screamer
    url = https://git.myserver.com/org/screamer.git

你可以把它改成

[submodule "screamer"]
    path = screamer
    url = git@git.myserver.com:org/screamer.git
  1. 运行 像这样的命令:
git config --local url.git@git.myserver.com:.insteadOf https://git.myserver.com/

这将更改您的 .git/config 文件,如下所示:

[url "git@git.myserver.com:"]
    insteadOf = https://git.myserver.com/