簡體   English   中英

如何為 GitLab CI 克隆私有子模塊 GitHub

[英]How clone private submodule GitHub for GitLab CI

我有以下情況:我正在使用來自 GitHub 的私有子模塊執行 GitLab CI,並在我的管道中獲取下一條消息:

致命:無法讀取“https://github.com”的用戶名:沒有這樣的設備或地址致命:將“https://github.com/username/project”克隆到子模塊路徑“/my_gitlab_username/my_gitlab_project”失敗

致命:無法讀取“https://github.com”的用戶名:沒有這樣的設備或地址致命:將“https://github.com/username/project”克隆到子模塊路徑“/my_gitlab_username/my_gitlab_project”失敗

第二次克隆 'submodule_name' 失敗,中止

如何設置令牌或有助於克隆 GitHub 私人倉庫的東西?

要克隆存儲庫,您可能需要使用令牌:

git 配置 --global credential.helper 存儲

git 克隆 https://your_username:your_github_token@github.com/username/private-repo.git

否則使用 curl api 調用

文檔取自gitlab

當您使用 Git 子模塊時,您的項目應該有一個名為.gitmodules的文件。 您可能需要對其進行修改以在 GitLab CI/CD 作業中工作。

例如,您的.gitmodules配置可能如下所示:

您的項目位於https://gitlab.com/secret-group/my-project 您的項目依賴於https://gitlab.com/group/project ,您希望將其作為子模塊包含在內。 您使用 SSH 地址(例如git@gitlab.com:secret-group/my-project.git查看您的來源。

[submodule "project"]
  path = project
  url = ../../group/project.git

當您的子模塊位於同一 GitLab 服務器上時,您應該在 .gitmodules 文件中使用相對 URL。 然后,您可以在所有 CI/CD 作業中使用 HTTPS 進行克隆。 您還可以使用 SSH 進行所有本地結帳。

以上配置指示 Git 在克隆源時自動推導出 URL 使用。 Git 對 HTTPS 和 SSH 使用相同的配置。 GitLab CI/CD 使用 HTTPS 克隆您的源,您可以繼續使用 SSH 進行本地克隆。

對於不在同一 GitLab 服務器上的子模塊,請使用完整的 URL:

[submodule "project-x"]
  path = project-x
  url = https://gitserver.com/group/project-x.git

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM