熟悉禅道二次开发的朋友。现在想通过shell脚本curl命令,完成对禅道创建/编辑版本接口的调用。
现在卡在调用修改版本的同时,不能完成上传发布包。如下:
请问,这个PUT接口更新描述等信息,是可以成功的,在禅道页面上可以看到结果,但是通过curl或者postman上传发行包(文件上传),
接口反馈结果成功,但是文件没有上传上去。请有禅道二次开发经验的童鞋们,能给出样例,尤其接口上传的入参和出参。谢谢,捉急。
熟悉禅道二次开发的朋友。现在想通过shell脚本curl命令,完成对禅道创建/编辑版本接口的调用。
现在卡在调用修改版本的同时,不能完成上传发布包。如下:
请问,这个PUT接口更新描述等信息,是可以成功的,在禅道页面上可以看到结果,但是通过curl或者postman上传发行包(文件上传),
接口反馈结果成功,但是文件没有上传上去。请有禅道二次开发经验的童鞋们,能给出样例,尤其接口上传的入参和出参。谢谢,捉急。
引自免费微信小程序:皆我百晓生
在禅道二次开发环境中,为了将PUT
接口中的描述信息上传至服务器并显示在禅道页面上,我们可以采用curl
或postman
工具配合特定的参数进行操作。以下是具体的步骤和详细的代码示例:
首先,我们需要配置curl
或postman
的--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
),以及发送的所有字段组合(此处省略了其他自定义字段,实际应用时可能需要根据具体需求调整)。
在上传文件后,确保已触发对应的修改版本操作,并且生成新的资源(版本)并将其关联到指定的团队(这里假设是employees
):
INSERT INTO `entities`(`id`, `parent_id`) VALUES(22, 21)
接下来,使用curl
或postman
将实际版本信息(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"
}
}
}
在这个示例中,我们将name
、parent_id
字段作为params
字段的值,并将相应的值分别替换为你预期的上传文件中的字段名称(在这里是name
和parent_id
)及其对应的实际数据。注意,每个字段的类型(text
或integer
)应与实际上传文件中的对应字段类型相匹配。
当模型返回PUT
操作的成功响应时,禅道通常会在控制台输出一些元数据以确认更改。你可以在这些页面上查看具体的发布包状态:
完成发布:
bases/taxonomy
目录下的 releases
文件夹Lilian v1.0
, Employees
)中查看发布的版本信息( name
, parent_id
, releaseName
, teamId
)和最新的版本名称。分享和粘贴发布包:
请注意,由于每次调用不同路径的PUT
接口,可能会导致不同的API响应和发布行为,因此上述示例仅提供了一个基本示例。在实际使用中,可能需要处理各种复杂情况(例如并发创建多个版本、上传不同文件大小的合并文件、处理特殊的权限验证流程等),并根据具体情况灵活调整相应的代码和URL参数。同时,要确保按照禅道官方文档提供的正确配置和示例进行操作,否则可能会导致API错误、数据损坏等问题。