Acabei indo pela rota da API REST, usando jq para analisar o JSON de entrada
Primeiro, pegue o ID da página:
pageID=$(curl -u $Confluence_UserID:$Confluence_Password -X GET \
"https://redacted.atlassian.net/wiki/rest/api/content?title=$PageTitle&spaceKey=$Space" \
| jq -r .results[].id \
)
Em seguida, obtenha a versão (o número da versão deve ser fornecido e incrementado ou a chamada de atualização falhará!)
pageVersion=$(curl -u $Confluence_UserID:$Confluence_Password \
"https://redacted.atlassian.net/wiki/rest/api/content/$pageID?expand=version" \
| jq .version.number \
)
((pageVersion++))
Anteriormente no job do jenkins, ele gerava o HTML da página de confluência em um arquivo no espaço de trabalho. Carregue isso para usar abaixo
htmlOutput=$(<myHTMLSnippet.txt)
E a parte final, enviando a atualização da página
curl -u $Confluence_UserID:$Confluence_Password \
-X PUT -H 'Content-Type: application/json' \
https://redacted.atlassian.net/wiki/rest/api/content/$pageID \
--data @- <<END;
{
"id": "$pageID",
"type": "page",
"title": "$PageTitle",
"space": {
"key": "$Space"
},
"body": {
"storage": {
"value": "$htmlOutput",
"representation": "storage"
}
},
"version": {
"number": $pageVersion,
"minorEdit": true
}
}
END