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

如何通过cURL在Jenkins UI中创建版本文件夹?

如何通过cURL成功创建Jenkins文件夹?

我来帮你搞定这个问题!你当前的命令有几个关键问题导致创建失败,咱们一步步修正它:

问题根源

Jenkins的文件夹(Folder)本质是一种特殊的Job类型,创建它时必须向API提交对应的XML配置数据——你的原命令没有提供任何配置,Jenkins根本不知道要创建什么类型的项,自然会失败。另外,原命令的Content-Type写法也有问题,需要调整。

正确的实现方法

方法1:使用本地XML配置文件(推荐)

  1. 先创建一个名为folder-config.xml的文件,内容是Jenkins文件夹的基础配置(你可以根据需求修改描述等字段):
<?xml version='1.1' encoding='UTF-8'?>
<com.cloudbees.hudson.plugins.folder.Folder>
  <description>这是通过cURL创建的测试文件夹</description>
  <properties/>
  <folderViews class="com.cloudbees.hudson.plugins.folder.views.DefaultFolderViewHolder">
    <views>
      <hudson.model.AllView>
        <owner class="com.cloudbees.hudson.plugins.folder.Folder" reference="../../../.."/>
        <name>All</name>
        <filterExecutors>false</filterExecutors>
        <filterQueue>false</filterQueue>
        <properties class="hudson.model.View$PropertyList"/>
      </hudson.model.AllView>
    </views>
    <tabBar class="hudson.views.DefaultViewsTabBar"/>
  </folderViews>
  <healthMetrics>
    <com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
      <nonRecursive>false</nonRecursive>
    </com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric>
  </healthMetrics>
  <icon class="com.cloudbees.hudson.plugins.folder.icons.StockFolderIcon"/>
</com.cloudbees.hudson.plugins.folder.Folder>
  1. 执行以下cURL命令提交配置:
curl -X POST "http://MyJenkinsURL/createItem?name=TestingFolder" \
  --user "MyUsername:API token" \
  -H "Content-Type: application/xml" \
  --data-binary @folder-config.xml

方法2:直接嵌入XML内容(适合快速测试)

如果不想单独保存文件,也可以把XML内容直接写在命令里:

curl -X POST "http://MyJenkinsURL/createItem?name=TestingFolder" \
  --user "MyUsername:API token" \
  -H "Content-Type: application/xml" \
  --data-binary '<?xml version="1.1" encoding="UTF-8"?><com.cloudbees.hudson.plugins.folder.Folder><description>测试文件夹</description><properties/><folderViews class="com.cloudbees.hudson.plugins.folder.views.DefaultFolderViewHolder"><views><hudson.model.AllView><owner class="com.cloudbees.hudson.plugins.folder.Folder" reference="../../../.."/><name>All</name><filterExecutors>false</filterExecutors><filterQueue>false</filterQueue><properties class="hudson.model.View$PropertyList"/></hudson.model.AllView></views><tabBar class="hudson.views.DefaultViewsTabBar"/></folderViews><healthMetrics><com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric><nonRecursive>false</nonRecursive></com.cloudbees.hudson.plugins.folder.health.WorstChildHealthMetric></healthMetrics><icon class="com.cloudbees.hudson.plugins.folder.icons.StockFolderIcon"/></com.cloudbees.hudson.plugins.folder.Folder>'

关键修正点说明

  • 新增--data-binary参数:用来提交文件夹的XML配置,这是创建文件夹的核心要求,Jenkins通过这个配置识别要创建的是Folder类型的项
  • 修正Content-Type:改为application/xml,并且用引号包裹,避免shell解析出错
  • 引号包裹敏感内容:URL、认证信息都用双引号包裹,防止特殊字符(比如API token里的符号)导致命令解析失败

小技巧

如果你的Jenkins使用了特殊的文件夹插件,或者需要更复杂的配置,最简单的方式是先在Jenkins UI手动创建一个符合需求的文件夹,然后访问http://MyJenkinsURL/job/你的文件夹名/config.xml获取它的配置XML,以此作为模板修改后使用,这样能保证配置完全符合你的Jenkins环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:26:37