Confluence のページを API から作成してみた

前提

Confluence とは

Atlassian の wiki みたいなもの。

やりたかったこと

1日の終わりにやったこと等の一覧をまとめたページを自動作成し、追記することで自分用の日報的なまとめを作りたかった。

やったこと

Python で requests を使うとこんな感じになった。

    response = requests.post(
        f'https://{atlassian_domain}/wiki/rest/api/content',
        data=json.dumps({
            'title': title,
            'type': confluence_type,
            'space': {'key': space},
            'ancestors': [{'id': parent_id}],
            'body': {
                'storage': {
                    'value': body,
                    'representation': 'storage',
                }
            },
            'metadata': {
                'properties': {
                    'editor' : {
                        'value' : 'v2'
                    }
                }
            },
        }),
        auth=(user, password),
        headers={
            'Content-Type': 'application/json',
            'X-Atlassian-Token': 'no-check',
        }
    )

ポイントは metadata で editor のバージョンを指定すること。 editor のバージョンが v2 になっていれば、 Jira の URL を a タグでリンクにしておくだけで読み込み時にタイトルとステータスが展開される。 Jira のマクロを使う必要はない。

この meadata は Confluence のページ作成のドキュメントには言及がない。これに辿り着いた Community の人たちすごい… community.atlassian.com

何かと新しいエディタを推してくるので最初はなぜ古いエディタになるのかわからず、body の storage じゃなくて違うやつに入れるのか??など悩んでしまった。