[英]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.