【问题标题】:Confluence Rest Update page from file来自文件的 Confluence Rest 更新页面
【发布时间】:2017-04-10 10:34:24
【问题描述】:

我可以成功地创建和更新内容简单的 Confluence wiki 页面。但是,当我尝试使用不仅仅是一个字符串进行更新时出现错误。

我在 git 存储库中有一组以 Markdown 格式格式化的文档。由于遗留需求,我使用 pandoc 将这些转换为 word 以部署在文档系统中。我们正在迁移到 Confluence,因此我想将更新部署为 wiki 页面。

我有页面 ID、版本和标题

echo "update page ${title} - ${pagid}/${pagver}"
content=$(pandoc -t HTML ${file})

json="{"
json+='"id":"'${pagid}'","title":"'${title}'","type":"page",'
json+='"space":{"key":"'${SPACE}'"},'
json+='"version":{"number":"'${pagver}'"},'
json+='"body":{"storage":{"value":"'${content}'","representation":"storage"}}'
json+="}"

${curlcmd} -n -X PUT -H 'Content-Type: application/json' --data-raw "${json}" ${apilb}/content/${pagid} 2>/dev/null

如果我将内容设置为 <p>this is test content</p> 它工作正常。然而复杂的 html 得到这个错误:

{"statusCode":500,"message":"org.codehaus.jackson.JsonParseException: Illegal unquoted character ((CTRL-CHAR, code 10)): has to be escaped using backslash to be included in string value\n at [Source: org.apache.catalina.connector.CoyoteInputStream@22ae1ec8; line: 1, column: 157]"}

有没有更好的方法来发送文件输出来更新 Confluence wiki 页面?

【问题讨论】:

    标签: bash curl confluence


    【解决方案1】:

    我建议在 Confluence 命令行界面 (CLI) 中查看 storePage:

    https://bobswift.atlassian.net/wiki/display/CSOAP/Documentation#Documentation-runFromAttachmentList

    https://marketplace.atlassian.com/plugins/org.swift.confluence.cli/cloud/overview?src=sidebar

    如果你以前没有,你应该能够免费获得这个。

    【讨论】:

    • 我会试一试的。认为 API 会更便携,但一个可行的解决方案会更好。 :)
    猜你喜欢
    • 2017-03-10
    • 2019-01-22
    • 1970-01-01
    • 2022-10-13
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    相关资源
    最近更新 更多