c7n如何通过api创建项目和分支

  • Choerodon平台版本:0.16.0

  • 运行环境:自主搭建

  • 问题描述:

    为了把本地平台上的gitlab项目迁移到c7n上的gitlab,我想保留gitlab所有的commit记录和相关信息,之前写了一个脚本来做这个事,对于c7n平台的项目和分支是通过直接往c7n-mysql库里面插入数据实现的,然后调用了gitlab的api来创建对应的项目,提交mirror来实现效果的,现在平台更新到了0.16,发现c7n-mysql库的表结构有了新的变化,增加了harbor和chart的信息,感觉不是很方便了,想寻求一下c7n的api接口,直接通过api来创建项目和对应的分支。

  • 寻求c7n api手册,或者关于api创建项目和分支的信息,谢谢!
    ps: c7n平台里面的api接口测试看见了,但是太多了,搜索不易,求方法,谢谢

1 个赞

求脚本分享下 应该有很多同学需要

这个脚本只适合0.14版本的,现在升级到最新的0.16后,不太适合了,c7n-mysql库的表结构有变化,不仅关联了gitlab还添加了harbor和charts的信息,不知道能不能找到对应的api获取对应的信息,不能话就只能通过c7n的api来创建项目和分支

分享下我们参考下

迁移已有gitlab到choerodon的gitlab,我不知道你们的脚本是怎样的,迁移数据的话,

  1. 要保证gitlab的用户关联平台的用户,表为
    image
    2.gitlab的group关联平台的项目,表为
    image
    3.gitlab的project 关联平台的应用,表为,而且要到对应的gitab project里面创建ci token, webhook,harbor和chart为空不影响
    image
    4.分支表,表为
    image

目前choerodon是不建议迁移gitlab数据到另外一个gitlab,因为关联关系比较多,容易在使用中造成一些bug,如果只是迁移gitlab project 建议使用平台的导入应用功能

现在其他表的问题都解决了,关键问题点在于创建应用,本来手动创建应用也是可以的,但是迁移的应用比较多,手动创建效率太低,想通过api接口,脚本创建,本来c7n client也能实现这个需求,不过,貌似现在有问题,也不知道什么时候能用得上

另外,如果大佬能方便告诉下devops_service库里面的devops_application表新增字段对应的值,应该也可能找到新的解决办法

大佬到时候 迁移脚本分享下 很多同学需要。。。

等这边问题处理完成后会分享脚本的

我通过github拉取c7nctl的源码,找到了devops创建项目的api,但是在使用的时候应该是key-value不全,导致报错了,数据库里面写入了项目的值,但是不全,想问下,这样操作可行吗?
创建App的api:/devops/v1/projects/%d/apps

json串:
image

使用api创建项目:

结果:

希望能 c7n 能跟进下 脚本自动化迁移gitlab 确实为 落地 解决了一个大事情