如何在 jenkins confluence 插件的 confluence 页面上包含一个宏?

How can I include a macro on a confluence page from the jenkins confluence plugin?

我正在使用 Jenkins(版本 1.642.4)中的 confluence 插件将构建结果发布到 Confluence (6.0.7)

我正在使用 jenkins 插件 "Confluence Publisher 1.8"。

Jenkins 构建作业中的一个脚本会为某些类型的评论解析一些 Git 分支。从该日志中,它会创建一个文本文件 (CHANGELOG-jenkins.md),并将其发布到 Confluence。

为了以友好的方式显示文本,我使用了 Confluence Markdown 宏。 result for the page I create 我添加了宏,并添加了一个标记文本 {jenkins-marker:Release_Notes_Generator_Confluence}。 用于 confluence 的 jenkins 插件然后可以在 Markdown 宏中写入并且文本被正确呈现。

但是,我需要 jenkins 来创建一个新的 confluence 页面(每个构建),所以我需要一种方法来自动执行宏插入和标记

jenkins 插件已经创建了一个页面,如果它不存在的话。所以我需要能够在创建新页面后将 markdown 宏添加到它。然后我还需要将标记文本添加到宏中。

到目前为止我还没有找到任何方法来做到这一点。似乎要手动插入宏 "have"

https://confluence.atlassian.com/conf53/working-with-macros-411108564.html

如果有人感兴趣,我最终找到了一个替代方案(并且可能是长期 运行 中更好的解决方案)

我正在使用 confluence 的 REST API 将 markdown 宏添加到页面。 我 t able to find any doc on JSON needed to add it, but luckily, it 是一个非常简单的宏,因此发现所需字段并不难。这是最低要求。

<ac:structured-macro ac:name=\"markdown\">
    <ac:plain-text-body><![CDATA[<b>This is my code</b>]]></ac:plain-text-body>
</ac:structured-macro> 

请求URL和正文

https://<confluence_url>:443/rest/api/content/12944217


{
    "id": "12944217",
    "type": "page",
    "status": "current",
    "title": "Release Notes From Jenkins",
    "space": {
        "key": "THEKEY",
        "metadata": {}
    },
        "version": {
        "number": 51,
        "minorEdit": false,
        "hidden": false
    },
    "ancestors": [],
    "operations": [],
    "body": {
        "storage": {
            "value":"<p></ac:structured-macro></p><p><ac:structured-macro ac:name=\"markdown\"><ac:plain-text-body><![CDATA[<b>jenkins-marker:Release_Notes_Generator_Confluence</b>]]></ac:plain-text-body></ac:structured-macro></p>",
        "representation": "storage"
        }
},
"metadata": {}

}