2016-05-31 10 views
0

gitリポジトリの変更を定期的にコンフルエントにアップロードするプログラムを作成したいと思います。 これまでのところ: - gitリポジトリから変更を収集するプログラム - あらかじめ定義されたhtmlテンプレートに従ってフォーマットし、テキストファイルに保存します - 後でPythonでJSONオブジェクトとして解析されますPythonでREST API/JSONオブジェクトを使用してConfluenceに子ページをアップロードするには?

問題は、前に休憩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を使用しています。 1つのステップで子ページを作成し、別のステップでそれを更新すると、このソリューションは私には良いことです。しかし、私は1つのステップでそれをやりたかった。また、developers.atlassian.comリンクが壊れています。 –

+0

リンクを更新しました。あなたは添付ファイルをアップロードする必要がありますか? – glls

+0

いいえ、私は新しいページを作成する必要がありますが、既存のページの下にあります。 –

関連する問題