2016-05-31 30 views
0

我想創建一個程序,將git repo中的更改定期上傳到合流中。 到目前爲止,我有這些: - 該程序從git存儲庫收集更改 - 根據預定義的html模板格式化並將其保存爲文本文件 - 稍後使用python將其解析爲JSON對象如何使用REST Api/JSON對象與python上載子頁面到Confluence?

問題是我之前沒有使用過rest API,我不知道如何使用它將更改作爲子頁面上傳到合流中的現有頁面。 我已經搜索了很多,但我還沒有找到適合我需求的解決方案,或者由於缺乏這方面的知識而無法理解它們。

回答

0

匯流REST API的文檔可以here

按您需要更新文件,下面的URI來執行你的要求是必要的:

/rest/api/content/{contentId} 

如果你從未做過的API請求使用Python,有幾個庫可用,取決於你使用的是什麼版本的Python。 requestsHttp.clienturllib 1,2,3等等等等。

進行簡單的身份驗證的請求,你將最有可能需要通過融合或管理員憑據提供的令牌:

請求的例子可以發現在developers.atlassian.com 添加評論到頁面:

import requests, json 

def printResponse(r): 
    print '{} {}\n'.format(json.dumps(r.json(), sort_keys=True, indent=4, separators=(',', ': ')), r) 

r = requests.get('http://localhost:8080/confluence/rest/api/content', 
    params={'title' : 'Page title to comment on'}, 
    auth=('admin', 'admin')) 

printResponse(r) 

parentPage = r.json()['results'][0] 

pageData = {'type':'comment', 'container':parentPage, 
    'body':{'storage':{'value':"<p>A new comment</p>",'representation':'storage'}}} 
r = requests.post('http://localhost:8080/confluence/rest/api/content', 
    data=json.dumps(pageData), 
    auth=('admin','admin'), 
    headers=({'Content-Type':'application/json'})) 

printResponse(r) 
+0

,我想孩子頁面上傳到已有的頁面,不更新其內容的問題。另外我正在使用Python 2.7。如果我在一個步驟中創建子頁面並在另一個步驟中更新它,那麼您寫的這個解決方案對我來說很有用。但我想一步到位。另外developers.atlassian.com鏈接已損壞。 –

+0

我已更新鏈接,所以。你需要上傳附件? – glls

+0

不,我必須創建一個新頁面,但在現有頁面下。 –

相關問題