如何将第三方代码仓库迁移至 CODING?
CODING 代码托管提供便捷的一键导入外部仓库功能,能够帮助开发者快速将 GitHub、GitLab、Gitee、云效等第三方代码仓库导入至 CODING 进行管理,开启高效的代码协作与一站式 DevOps 实践。你可以通过本文快速了解迁移流程。
概述
在迁移之前,了解以下信息可以帮助你更好地开展代码仓库迁移工作。
CODING 项目与仓库的关系
在 CODING 中,项目是实践 DevOps 的最小单位。项目内不可创建子项目,而支持创建多个代码仓库。我们推荐你充分利用 CODING 的产品特点实现高效协作:
- 研发团队最小化:将项目作为研发团队的工作单元,统一在项目内进行协作。
- 复杂业务扁平化管理:在复杂业务场景下(如涉及多个业务层级),推荐按照业务线情况创建多个项目,一个项目对应一个具体的业务,简化业务管理。
支持导入的信息
目前,第三方代码仓库(GitHub、GitLab、Gitee、云效)支持导入 CODING 代码仓库的信息如下:
第三方仓库信息 | 是否可以直接导入至 CODING | 第三方仓库信息 | 是否可以直接导入至 CODING |
---|---|---|---|
Repo Name 仓库名称 | ✅ | Branch Protection Rule 分支保护规则 | ❌ |
Code 代码 | ✅ | About 仓库描述 | ❌ |
Branch 分支 | ✅ | Issues/Issue 问题 | ❌ |
Default Branch 默认分支 | ✅ | Pipelines/Action 流水线 | ❌ |
Tag 标签 | ✅ | Project 项目 | ❌ |
OWNERS 代码所属配置 | ✅ | Wiki | ❌ |
Releases 版本 | ❌ | Secure/Security | ❌ |
Pull Request 合并请求 | ❌ | Analyze/Insights | ❌ |
迁移思路
要完成从第三方代码仓库迁移至 CODING,整体思路如下:
- 在 CODING 创建项目或用户组,映射第三方代码仓库服务的相关概念。比如:
- 在 CODING 项目内添加成员,映射第三方代码仓库服务中的已有成员。
- 在 CODING 新建对应的权限组,映射第三方代码仓库服务中的已有权限配置。
- 在 CODING 内完成团队与项目、项目与成员、项目与仓库等权限配置。
- 由「各仓库负责人」通过界面功能或本地命令将第三方代码仓库导入到 CODING 对应的项目里。
迁移准备步骤
根据团队已有组织部门或产品项目,明确在 CODING 内计划创建的项目、计划迁移的代码仓库与各项目的所属关系、项目内具体人员与部门、代码仓库负责人等信息。你可以通过文档建立维护组织架构拓扑图等方式进行规划明确。
创建项目
根据前面的规划,在团队内创建对应项目。
- 登录团队之后,点击左侧导航栏「项目」进入项目管理页面,再单击右上角的「创建项目」。
选择 DevOps 全功能项目模板即可。你也可以按需选择所需功能(代码迁移场景下,请务必选择“代码托管”功能)。
指定项目名称及描述。建议你选择一个简洁、有意义且易于理解的项目名称,支持使用小写字母、连字符或下划线来分隔单词。
配置用户组(可选)
用户组代表一类用户的集合。你可以将需要授权相同权限的成员编排为一个用户组(比如按照角色划分),便于映射第三方代码仓库服务的对应概念( 如 GitHub 中的 “team” 、Gitee 或云效中的 “组织” ),实现批量授权。
你可以按需选择是否配置用户组,具体配置方法请参考配置用户组。
添加成员至项目
根据前面的规划,用以下任一方式将对应成员加入对应项目。
- 项目数量较少的情况下:
进入指定项目,点击左下角「项目设置」->「项目与成员」,在成员管理页面点击「添加成员」按钮添加成员。
该种方式需要依次进入每个项目内添加成员。
- 项目数量较多的情况下:
点击导航栏左下角设置按钮进入团队设置中心,在「团队设置中心」->「全局设置」->「项目权限方案」的「项目成员管理」页面添加项目成员。
该种方式无需进入任何项目,直接在下述界面依次为每个项目添加成员即可。
你可以将指定用户、用户组或部门加入项目并设置权限。
配置成员权限
根据 CODING 代码仓库的使用场景与功能定位,你需要配置的权限类型包含「团队权限方案」、「项目权限方案」及「单仓库权限方案」三种类型。
- 团队权限方案
仓库设置、团队部署公钥、团队仓库规范归属于团队级权限管理。团队负责人/管理员需前往「团队设置中心」->「全局设置」->「团队权限方案」进行权限组配置。
完成团队权限组配置后,通过右上角「添加成员」添加成员至团队权限组,以分配对应的团队权限。
- 项目权限方案
项目权限组用于控制项目成员使用代码仓库协作的各项功能,包含保护分支、标签与版本创建等各项权限点。团队负责人/管理员需前往「团队设置中心」->「全局设置」->「项目权限方案」进行权限组配置。
完成项目权限组配置后,在「项目成员管理」页面为成员关联权限组,以分配对应的项目权限。
- 单仓库权限方案(可选)
除了采用项目权限方案,还支持在单个代码仓库内配置仓库权限方案,满足同一个项目下不同代码仓库间的开发流程安全性要求,详细配置说明请参考配置资源权限方案。
代码仓库资源权限组创建完成后,仓库管理员前往仓库设置中调整“权限方案”即可。具体操作可参考仓库权限方案。
迁移代码
完成上述迁移准备步骤后,可以正式迁移代码。请根据实际情况选择阅读对应的迁移方法。
GitLab
你可以通过网页操作或本地命令行将 GitLab 仓库导入至 CODING 完成迁移。
通过网页操作(推荐)
- 导入 GitLab SaaS 仓库
- 在代码仓库页面,选择「导入外部仓库」。
在导入外部仓库界面,选择「GitLab」。
在授权界面,同意 CODING 的授权申请。
选择需要导入的仓库(支持私有仓库与公开仓库),并确定 CODING 仓库的命名与权限范围。
导入完成后,点击「查看新仓库」可查看导入的外部仓库。
- 导入私有 GitLab 仓库
导入私有 GitLab 仓库需要在 GitLab 创建应用然后由团队管理员绑定私有 GitLab 服务。具体操作请参考绑定私有 GitLab。
通过本地命令行操作
本地仓库设置远程仓库地址。
在终端打开本地第三方仓库所在路径,执行git remote set-url
命令,修改远端地址,比如:git remote set-url origin git@e.coding.net:devops/project-example/coding-repo.git
修改远端地址完成后,执行git remote -v
命令,确认远端地址修改成功:
GitHub
你可以通过网页操作或本地命令行将云效仓库导入至 CODING 完成迁移。
通过网页操作(推荐)
- 在代码仓库页面,选择「导入外部仓库」。
在导入外部仓库界面,选择「GitHub」。
在授权界面,同意 CODING 的授权申请。
选择需要导入的仓库(支持私有仓库与公开仓库),并确定 CODING 仓库的命名与权限范围。
导入完成后,点击「查看新仓库」可查看导入的外部仓库。
通过本地命令行操作
通过本地命令行迁移 GitHub 仓库的操作同通过命令行迁移 GitLab 仓库。
Gitee
你可以通过网页操作或本地命令行将云效仓库导入至 CODING 完成迁移。
通过网页操作(推荐)
- 在代码仓库页面,选择「导入外部仓库」。
在导入外部仓库界面,选择「Gitee」。
在授权界面,同意 CODING 的授权申请。
选择需要导入的仓库(支持私有仓库与公开仓库),并确定 CODING 仓库的命名与权限范围。
导入完成后,点击「查看新仓库」可查看导入的外部仓库。
通过本地命令行操作
通过本地命令行迁移 Gitee 仓库的操作同通过命令行迁移 GitLab 仓库。
云效
你可以通过网页操作或本地命令行将云效仓库导入至 CODING 完成迁移。
通过网页操作(推荐)
- 在代码仓库页面,选择「导入外部仓库」。
在导入外部仓库界面,选择「URL 导入」。
在导入界面,输入云效代码仓库的地址,并确认是否开源。
输入云效的用户名和密码进行验证。
导入完成后,点击「查看新仓库」可查看导入的外部仓库。
通过本地命令行操作
通过本地命令行迁移云效仓库的操作同通过命令行迁移 GitLab 仓库。
后续配置
完成上述仓库导入后,你可以根据实际情况进行以下操作,让项目成员更好、更规范地进行协作。
仓库设置
为了保证仓库的有序、安全操作,仓库管理员可以在代码仓库的「设置」->「分支设置」中:
导入 issue 为 CODING 事项
你可以将第三方代码仓库(如 GitHub/GitLab/Gitee/云效) 上的 issue 导出为 Excel 或者 CSV 文件,然后通过导入事项功能,将 issue 同步迁移至 CODING 进行管理。
CODING 内史诗、需求、任务、缺陷统称为「事项」,支持批量导入导出。
CODING 事项与代码仓库关联
CODING 提供便捷的资源引用(关联)能力。你可以在事项详情页面通过引用资源功能关联对应的合并请求,或在代码提交时通过提交信息自动关联事项。
在阅读中是否遇到以下问题?*
您希望我们如何改进?*
如果您希望得到回复,请留下您的邮箱地址。