风往北吹哈 2024-03-28 12:01 采纳率: 0%
浏览 13
已结题

禅道二次开发编辑版本,上传不了发行包

熟悉禅道二次开发的朋友。现在想通过shell脚本curl命令,完成对禅道创建/编辑版本接口的调用。
现在卡在调用修改版本的同时,不能完成上传发布包。如下:

img

请问,这个PUT接口更新描述等信息,是可以成功的,在禅道页面上可以看到结果,但是通过curl或者postman上传发行包(文件上传),

img

接口反馈结果成功,但是文件没有上传上去。请有禅道二次开发经验的童鞋们,能给出样例,尤其接口上传的入参和出参。谢谢,捉急。

  • 写回答

23条回答 默认 最新

  • 专家-皆知 2024-03-28 12:01
    关注
    获得0.15元问题酬金

    引自免费微信小程序:皆我百晓生

    在禅道二次开发环境中,为了将PUT接口中的描述信息上传至服务器并显示在禅道页面上,我们可以采用curlpostman工具配合特定的参数进行操作。以下是具体的步骤和详细的代码示例:

    1. 前置工作

    首先,我们需要配置curlpostman--upload-file选项,以便将上传的文件(例如ZIP或JSON格式的压缩包)作为URL的参数传递到禅道的API端点。以下是在curl中设置这一选项的示例:

    curl -X POST \
        --url "https://your-database-server.com/api/v2/bases/taxonomy?repository=your-repository-name&api-key=your-api-key&file=file.zip" \
        -H 'Content-Type: application/json' \
        -F 'description=Update my release version with documentation.' \
        -F 'author=michael@example.com' \
        -F 'read-count=2458' \
        -F 'token=YOUR_TOKEN' \
        -F 'name=Lilian' \
        -F 'build-id=21' \
        -F 'source-code-path=/path/to/subversion/repository' \
        -F 'download-url=https://example.com/my-release-version.zip' \
        -F 'package-name=Lilian' \
        -F 'subdirectory=' + ${#document} + ' releases'
    

    在这个例子中,我们指定了服务器地址(your-database-server.com),API密钥(your-api-key),提交文件的位置(file.zip),开发者信息( michael@example.com),读取次数(2458),认证令牌(YOUR_TOKEN),项目名称(Lilian),构建ID(21),源代码路径(/path/to/subversion/repository),下载地址(https://example.com/my-release-version.zip),包名称(Lilian),子目录数量(由${#document}变量确定,假设#document = 5),以及发送的所有字段组合(此处省略了其他自定义字段,实际应用时可能需要根据具体需求调整)。

    2. 提交功能

    在上传文件后,确保已触发对应的修改版本操作,并且生成新的资源(版本)并将其关联到指定的团队(这里假设是employees):

    INSERT INTO `entities`(`id`, `parent_id`) VALUES(22, 21)
    

    接下来,使用curlpostman将实际版本信息(scmPath, filePath, downloadUrl等)以JSON格式传递到服务器端的相应路由,其中 Employees 是关联到的数据库表名。以下是一个基于postman的示例:

    {
      "data": {
        "operation": "create",
        "params": {
          "service": "your-database-server.com",
          "endpoint": "/bases/taxonomy",
          "fields": [
            { "name": "name", "type": "text" },
            { "name": "parent_id", "type": "integer" }
          ],
          "branchName": "my-release-version",
          "department": "your-department-name",
          "organization": "your-organization-name",
          "project": "your-project-name",
          "product": "your-product-name",
          "productBranch": "your-product-branch-name",
          "releaseName": "Lilian v1.0",
          "teamId": "employees"
        }
      }
    }
    

    在这个示例中,我们将nameparent_id字段作为params字段的值,并将相应的值分别替换为你预期的上传文件中的字段名称(在这里是nameparent_id)及其对应的实际数据。注意,每个字段的类型(textinteger)应与实际上传文件中的对应字段类型相匹配。

    3. 查看和上传发布包

    当模型返回PUT操作的成功响应时,禅道通常会在控制台输出一些元数据以确认更改。你可以在这些页面上查看具体的发布包状态:

    1. 完成发布:

      • 登录禅道后台管理界面(https://your-database-server.com)
      • 找到发布库(即目标仓库)所在的 bases/taxonomy目录下的 releases文件夹
      • 在当前操作的相关页(例如,Lilian v1.0, Employees)中查看发布的版本信息( name, parent_id, releaseName, teamId)和最新的版本名称。
    2. 分享和粘贴发布包:

      • 选中发布包以显示其详细结构(包含任何添加的文件和注释)。
      • 鼠标右键点击发布包选择“分享”或“复制链接”,然后粘贴到其他地方(例如,FTP服务器、邮件客户端、Git仓库,或者在禅道内部使用版签功能)。
      • 从分享或复制链接的用户那里粘贴到禅道首页的版本页面,或在禅道管理员平台发布新版本。

    请注意,由于每次调用不同路径的PUT接口,可能会导致不同的API响应和发布行为,因此上述示例仅提供了一个基本示例。在实际使用中,可能需要处理各种复杂情况(例如并发创建多个版本、上传不同文件大小的合并文件、处理特殊的权限验证流程等),并根据具体情况灵活调整相应的代码和URL参数。同时,要确保按照禅道官方文档提供的正确配置和示例进行操作,否则可能会导致API错误、数据损坏等问题。

    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 4月5日
  • 赞助了问题酬金15元 3月28日
  • 创建了问题 3月28日

悬赏问题

  • ¥20 wireshark抓不到vlan
  • ¥20 关于#stm32#的问题:需要指导自动酸碱滴定仪的原理图程序代码及仿真
  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来