LoginSignup
0

posted at

updated at

APIでコンフルエンスのグループを取得してExcelに書き出す

はじめに

コンフルエンスのグループ情報を取得してExcelに書き出す処理の実装です。
実務で地味に使ってるので記事にしました。

その内Githubに集約していきます。

数年前に書いたモノなので恥ずかしいコードになってるのはご容赦ください。


ライブラリ

openpyxlはpipで追加インストール

requests、json、astは標準ライブラリです。

コード

getgroups.py
import openpyxl
import requests
import json
import ast

auth = ("hogehoge@hoge.co.jp", "APIキー情報")

def GetGroups():
    wb = openpyxl.load_workbook("test.xlsx")
    sht = wb['Sheet1']
    url = "https://xxxx.atlassian.net/wiki/rest/api/group"

    headers = {
        "Accept": "application/json"
    }

    query = {
    'limit': 500 #500 #取得するグループのリミット数
    }

    response = requests.request(
        "GET",
        url,
        auth=auth,
        headers=headers,
        params=query
    )

    parse_response = json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": "))

    group_name_dict = {}

    dict_response = json.loads(parse_response)

    dict_convert_lists = dict_response['results']

    i = 0

    for value in dict_convert_lists:

        con_dict_value = ast.literal_eval(str(value))

        group_name_dict[i] = con_dict_value['name']
        print(con_dict_value['name'])

        i += 1

        sht.cell(i, 1).value = con_dict_value['name']

    wb.save("test.xlsx")

こんな感じに出力されます。
image.png


詳細

コンフルでAPIキーを作成して認証情報を組み込みます
auth = ("hogehoge@hoge.co.jp", "APIキー情報")

def GetGroups():
  書き出すExcelファイルとシートを記述
    wb = openpyxl.load_workbook("test.xlsx")
    sht = wb['Sheet1']

  confluence urlを記述
  url = "https://xxxx.atlassian.net/wiki/rest/api/group"

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
0