说明
从gitlab 11.2引入此功能。
GitLab 允许根据manifest清单文件(如 Android 存储库使用的清单文件)导入所需的 Git 存储库。
使用manifest得要求
- GitLab 必须对其数据库使用 PostgreSQL。
- 至少是要导入到的目标组上的维护者角色。将开发人员角色用于此目的已在 GitLab 15.8 中弃用,并将在 GitLab 16.0 中删除。
- manifest是基于用户来区别的,也就是说如果你在gitlab上已经成功导入过,那要想再次导入只能通过别的用户再导入。
Manifest 格式
- manifest清单必须是 XML 文件。
- 必须有一个
remote的tag,并且里面的review属性包含指向 Git 服务器的 URL。 - 每个项目
project的tag需要有name和path属性。GitLab 通过将remotetag中的 URL 与项目名称组合来构建存储库的 URL。路径属性用于表示 GitLab 中的项目路径。
演示示例
AOSP示例文件:https://android.googlesource.com/platform/manifest/+/2d6f081a3b05d8ef7a2b1b52b0d536b2b74feab4/default.xml
案例如下:
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<remote review="https://gitlabjh.bdeet.top/group/" />
<project path="test/group/agent" name="agent.git" />
<project path="test/group/codeowners" name="codeowners.git"/>
<project path="test/group/ds-c" name="ds-c.git" />
<project path="test/group/ds-c-2" name="ds-c-2.git" />
<project path="test/group/ds-c-4" name="ds-c-4.git" />
<project path="test/group/Frontendy" name="Frontend.git" />
<project path="test/group/terrafrom" name="terrafrom.git" />
</manifest>
导入的过程如下:


批量导入私有项目
上述的案例中,主要讲述的是将公开的项目基于manifest文件导入到gitlab中,而如果项目是私有的情况下,应该如果处理认证呢。
很简单,基于http的认证方式,我们可以在http的链接中拼接用户名和密码的方式。如http://username:password@url。关于具体的案例应用,可以参考 基于manifest文件批量将coding的仓库导入gitlab中,里面有详细的说明。

5376

被折叠的 条评论
为什么被折叠?



