0

0

Jira API如何上传XML格式的issue数据

幻夢星雲

幻夢星雲

发布时间:2026-02-17 10:44:02

|

383人浏览过

|

来源于php中文网

原创

jira rest api 不支持直接上传 xml 格式 issue 数据,仅接受 application/json;xml 仅能通过 server/data center 的 project import 或 backup restore 流程处理,且需符合内部格式、管理员权限及 multipart 表单提交;cloud 完全不支持 xml 导入;正确做法是将 xml 解析为 json 后调用 rest api,并注意 adf 描述格式、自定义字段 id 差异、速率限制等约束。

jira api如何上传xml格式的issue数据

Jira REST API 不支持直接上传 XML 格式 issue 数据

Jira 官方 REST API(包括 Cloud 和 Server/Data Center 8.0+)只接受 application/json 请求体,不接收、不解析、不处理 XML 格式的 issue 创建或导入请求。如果你尝试用 POST /rest/api/3/issue 发送 XML,会收到 415 Unsupported Media Type 错误,或更常见的 400 Bad Request 并提示 “Invalid JSON”。

XML 数据只能通过 Jira 的专用导入工具处理

真正能消费 XML 的路径是 Jira 自带的 Project ImportBackup Restore 流程,但它们有严格前提:

  • XML 必须符合 Jira 内部导出格式(如 entities.xml + activeobjects.xml),不是任意结构的自定义 XML
  • 仅限管理员操作,需通过 Web UI(/secure/admin/ProjectImportSummary.jspa)或 jira-importers-plugin 后台任务触发
  • 不能用普通 API Token 或 Basic Auth 调用;必须登录后以 session 方式提交 multipart 表单(含 importFile 文件字段)
  • Server/Data Center 才支持完整 XML 导入;Jira Cloud 完全移除了 XML 导入能力,仅保留 CSV/JSON 导入

正确做法:把 XML 转成 JSON 再调用 REST API

这是最可控、可自动化、兼容 Cloud 和 Server 的方案。关键步骤如下:

网奇Eshop网络商城系统
网奇Eshop网络商城系统

网奇.NET网络商城系统是基于.Net平台开发的免费商城系统。功能强大,操作方便,设置简便。无需任何设置,上传到支持asp.net的主机空间即可使用。系统特色功能:1、同时支持Access和SqlServer数据库;2、支持多语言、多模板3、可定制缺货处理功能4、支持附件销售功能5、支持会员组批发功能6、提供页面设计API函数7、支持预付款功能8、配送价格分地区按数学公式计算9、商品支持多类别,可

下载
  • 用 Python、Node.js 等解析原始 XML(例如用 xml.etree.ElementTreefast-xml-parser
  • 按 Jira REST API 的 issue 创建规范映射字段:
    summary<summary></summary>
    description<description></description>
    — 自定义字段需用 customfield_10052 这类 ID,不能用字段名
  • 注意必填字段:project.keyissuetype.name 必须存在且有效(建议先查 GET /rest/api/3/project/{key}/issuetypes
  • 附件需单独调用 POST /rest/api/3/issue/{issueIdOrKey}/attachments,不能塞进 issue body
import xml.etree.ElementTree as ET
import requests

root = ET.parse("issues.xml").getroot()
for item in root.findall("issue"):
    summary = item.find("summary").text
    desc = item.find("description").text or ""
    
    payload = {
        "fields": {
            "project": {"key": "PROJ"},
            "summary": summary,
            "description": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": desc}]}]},
            "issuetype": {"name": "Bug"}
        }
    }
    
    resp = requests.post(
        "https://your-domain.atlassian.net/rest/api/3/issue",
        json=payload,
        headers={"Authorization": "Bearer YOUR_API_TOKEN", "Content-Type": "application/json"}
    )

容易被忽略的关键限制

即使 XML 转 JSON 成功,仍有几个硬性约束常导致失败:

  • description 字段在 Cloud 上强制要求使用 Atlassian Document Format(ADF),纯字符串会报错 Field 'description' cannot be set.
  • 自定义字段 ID 在不同实例间不通用;Server 实例的 customfield_10100 到 Cloud 可能变成 customfield_10062,必须动态查 Schema
  • 批量导入时,Jira Cloud 对速率有限制(默认 1000 req/hour),且无事务回滚 —— 某条失败不影响其余成功项
  • XML 中的时间戳(如 <created>2023-01-01T12:00:00Z</created>)要转成 ISO 8601 字符串再填入 created 字段,但该字段仅对管理员在创建时覆盖时间有效,普通用户无法设置

实际落地时,别试图绕过 JSON 协议去“骗过” API —— 解析 XML 是一次性成本,而适配 XML 导入流程反而要维护两套环境逻辑。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

442

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

544

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

322

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

81

2025.09.10

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

865

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

448

2024.06.27

session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

326

2023.10.17

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

772

2023.10.18

pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法
pixiv网页版官网登录与阅读指南_pixiv官网直达入口与在线访问方法

本专题系统整理pixiv网页版官网入口及登录访问方式,涵盖官网登录页面直达路径、在线阅读入口及快速进入方法说明,帮助用户高效找到pixiv官方网站,实现便捷、安全的网页端浏览与账号登录体验。

283

2026.02.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号