You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Bamboo Specs中留存计划分支?解决恢复后分支丢失问题

解决Bamboo Specs恢复计划后分支丢失的问题

一、通过Bamboo API导出分支配置与变量

Bamboo提供了API可以直接导出分支的完整配置(包括专属变量),你可以用这些接口提前备份分支数据:

  • 获取分支列表:调用GET /rest/api/latest/plan/{projectKey}-{buildKey}/branch拿到目标计划下所有分支的名称和基本信息。
  • 导出单分支配置:针对每个分支,调用GET /rest/api/latest/plan/{projectKey}-{buildKey}/branch/{branchName},获取分支的触发规则、合并策略等核心配置。
  • 导出分支专属变量:调用GET /rest/api/latest/plan/{projectKey}-{buildKey}/branch/{branchName}/variable,拿到该分支的所有自定义变量。
  • 批量导出:可以写简单脚本循环调用上述接口,把所有分支的配置和变量导出为JSON或CSV文件,和你的Specs代码一起存到版本控制里。

二、在Bamboo Specs中集成分支导入逻辑

把备份的分支数据整合到Specs代码中,恢复计划时就能自动创建分支并加载变量:

  1. 加载备份数据:在Specs代码中读取之前备份的分支配置文件,解析成可使用的数据结构。
  2. 批量创建分支:遍历备份的分支数据,用Bamboo Specs的Branch类创建分支,并设置对应的变量。以Java版Specs为例:
// 示例:从JSON文件加载分支配置
List<BranchBackup> branchBackups = loadBranchBackupData("branch-backups.json");

Plan myPlan = new Plan(new Project("PROJ", "My Project"), "PLAN", "My Plan")
    .planBranchManagement(new PlanBranchManagement()
        .createManualBranches(true)
        .createAutomaticBranches(false))
    .branches(branchBackups.stream().map(backup -> 
        new Branch(backup.getBranchName())
            .trigger(backup.getTriggerConfiguration())
            .variables(backup.getVariables().entrySet().stream()
                .map(entry -> new Variable(entry.getKey(), entry.getValue()))
                .collect(Collectors.toList()))
    ).collect(Collectors.toList()));
  1. 开启分支Specs同步:在Specs中配置planBranchManagement,确保分支的Specs同步功能默认开启,避免手动操作。

三、原生导出导入替代方案

如果不想写额外代码,Bamboo原生的计划导出功能可以完整包含分支和变量:

  • 导出:在计划设置页面选择「导出计划」,保存生成的XML文件。
  • 恢复:删除计划后,在项目设置中选择「导入计划」,上传之前的XML文件,即可完整还原计划、所有分支及对应变量。

关键注意事项

  • 备份的分支配置要和当前Specs版本兼容,避免因API或Specs版本差异导致配置失效。
  • 若分支对应的代码仓库分支已删除,需要先恢复仓库分支,再通过Specs同步创建Bamboo分支。

内容的提问来源于stack exchange,提问作者vsergi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 20:05:30