Push a readme.md to confluence using confluence APIs
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Push a readme.md to confluence using confluence APIs
Hello,
So I'm trying to push readme to confluence, except that Confluence APIs accepts the body as json, but my readme is a multiline text.. In confluence I have a waiting plugin to convert the text into a well-formed readme 🙂
So I'm trying to convert a multiline text into a single line so that I can automate pushing all readme to confluence.
One of my problem now is to locate the carriage return , and convert it into "\\n" but I'm new to groovy and I don't know how to do that.
One of the future struggle is going to be : how to parse through directories to locate readme.
many thanks
pizzaTime
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Groovy supports multi line text
def multiLine = '''line1 text next line and one more line''' //Show as is log.info multiLine //Remove new lines / carriage returns def newString = multiLine.replaceAll('\n', '').replaceAll('\r', '') //See the diff with multiLine log.info newString
Regards,
Rao.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Yes, but as I am using confluence API to send back : so I have this body to fill
Especially the value in which I am replacing ${Properties#body} by the readme.md text
{ "id" : "${Properties#pageId}", "type" : "page", "status" : "current", "title" : "Markdown test", "body" : { "storage" : { "value" : "<ac:structured-macro ac:name=\"markdown\" ac:schema-version=\"1\" ac:macro-id=\"1234\"><ac:plain-text-body><![CDATA[${Properties#body}]]></ac:plain-text-body></ac:structured-macro>", "representation" : "storage", "_expandable" : { "content" : "/rest/api/content/${Properties#pageId}" } } }, "version":{"number":${Properties#pageVersion}} }
To be more precise I have this readme:
## Title text ## Another Title another text
That I want to convert into :
## Title \n text \n ## Another Title \n another text
So that it can be supplied in the body in my request.
Best regards,
pizzaTime
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Regards,
Rao.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@pizzaTime , could you please attach any screenshot of error for better understanding of problem.:)
Click "Accept as Solution" if my answer has helped,
Remember to give "Kudos" 🙂 ↓↓↓↓↓
Thanks and Regards,
Himanshu Tayal
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Let's say this is the readme I want to update :
## Test description This test verifiy : - lorem text
The error is that what the API expects from a readme is :
## Test description \n This test verifiy :\n - lorem text
So from my groovy script I tried to put it in the request.
{ "id" : "${Properties#pageId}", "type" : "page", "status" : "current", "title" : "Markdown test", "body" : { "storage" : { "value" : "<ac:structured-macro ac:name=\"markdown\" ac:schema-version=\"1\" ac:macro-id=\"1234\"><ac:plain-text-body><![CDATA[${Properties#body}]]></ac:plain-text-body></ac:structured-macro>", "representation" : "storage", "_expandable" : { "content" : "/rest/api/content/${Properties#pageId}" } } }, "version":{"number":${Properties#pageVersion}} }
With :
def carriageReturn= '\\n ' fileContents = fileContents.replaceAll('\n',carriageReturn).replaceAll(' \r',"")
Except '\\n' is interpreted as the a carriage return when i want it to be litteraly '\n'
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Regards,
Rao.
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Nope, and I tried different things
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
@pizzaTime : Is your problem resolved?
Click "Accept as Solution" if my answer has helped,
Remember to give "Kudos" 🙂 ↓↓↓↓↓
Thanks and Regards,
Himanshu Tayal
- Bookmark
- Subscribe
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
In the request "raw form" :
I see the body on one line, but when I copy-paste it, it is multi-lined.
So my problem is that I want literally the characters "\n" and not it interpreted as 'newline'.
