集成git,包括2项配置,一项为“推送git地址”,用于配置gitlab仓库的地址,实现离线开发任务提交上线时,自动提交将任务包、调度设置、报警设置全部提交至git仓库,同时也支持配置开启拉取,用于将任务的的代码从git上拉取到任务中。

第二项为“拉取git地址”,用于将任务的的代码从git上拉取到任务中,一般用于跨环境场景下,从git上讲别的项目推送的代码,拉取到本环境项目的任务中。当前,仅支持已有任务,按照任务标识和任务名称进行匹配,并仅支持拉取SQL、Shell、Perl和逻辑数据源节点(如MySQL、Oracel、GreenPlum等)的代码。

推送git地址

权限控制:当前仅项目负责人和管理员可以配置。

  • Git仓库地址:支持填写gitlab的仓库地址

  • SSH私钥:支持填写Git仓库的SSH私钥,需要分支管理、tag管理、合并主分支权限。

  • 主分支:根据输入的Git仓库和SSH私钥自动拉取所有分支,优先匹配main,如果没有则匹配master,如果没有则再匹配字典序asc第一个分支。

  • Git文件分组:

    • 1)不分组:平台长久使用后,任务量都会小于10,000的项目;
    • 2)任务标识首字母分组:平台长久使用后,任务量都会小于160,000的项目;
    • 3)任务标识哈希分组:支持进行自定义数量分组,平台长久使用后,任任务量为n*10000时,则设置为n。
  • 支持拉取:默认为关,开启后,支持配置可选分支。开,标识离线开发任务支持从该git仓库的分支中拉取任务。

  • 可选分支:支持拉取打开后,可选择git仓库中支持拉取的分支,配置后,在离线开发任务中可选择此处配置的可选分支。

  • 拉取路径:默认显示为系统指定的默认路径。其中,当前项目开通了多个集群时,git拉取的路径会自动基于集群标识替换。

代码扫描 - 图1

任务提交上线时将会把任务资源提交到git上的任务目录,包含任务所有节点、任务系统文件(.info,.precheck,.properties,.flow,.project,.schedule)、任务配置、作业资源(txt、csv、xml、json、sh、py、pl、pm格式等)、关联的jira和备注。其中关联的jira(如有)和备注会放到git commit的备注中,同时将author设置为操作人。

任务删除时,也会将git上的对应任务目录删除。

Git上的任务的存储目录如下(以“任务标识首字母分组”为例):{git工程名字}/easydata/task/{项目名称}/{集群名称}/{任务uuid首字母}/{任务uuid$任务名称}。

代码扫描 - 图2

当任务提交到git无法操作成功或超时,将通过报警渠道通知操作人。

拉取git地址

权限控制:当前仅项目负责人和管理员可以配置。

  • Git仓库地址:支持填写gitlab的仓库地址

  • SSH私钥:支持填写Git仓库的SSH私钥,需要有拉取权限。

  • 可选分支:可选择git仓库中支持拉取的分支,配置后,在离线开发任务中可选择此处配置的可选分支。

  • 拉取路径:指选择分支后,系统会基于默认路径拉取符合特定规则(1-128位任务名称+“$$”+32位UUID)的文件夹。当前项目开通了多个集群时,需要对每个集群配置一个默认路径。对于本平台推送的任务,任务路径为“/easy-data/task/{项目名称}/{集群标识}”。

代码扫描 - 图3