Python 用于在 Cloud Confluence 上创建 Space 的脚本

Python script for creating Space on Cloud Confluence

我有 700 多个项目需要在 Confluence Cloud 上创建空间。手动执行此操作是不可行的。必须想出一些脚本或工具来从文本文件中读取信息并创建空格。我有编程背景 - Python 和 Java。有人可以提出实现此目标的解决方案吗?

这是从 excel 读取 space 和页面名称并在 Confluence 云中创建它们的代码片段 -

import requests
import json
from requests.auth import HTTPBasicAuth
from openpyxl import load_workbook
from collections import defaultdict

filename = "path/PjtExport.xlsx"
wb = load_workbook(filename)
sheet = wb["Sheet1"]
confdict = defaultdict(list)

for i1 in range(2,10) :
    if(str(sheet.cell(row=i1, column=1).value) != "None") :
        spaceName = str(sheet.cell(row=i1, column=1).value)
        keyName = spaceName.replace(" ","")
        #print(keyName)
        if not(confdict.keys().__contains__(spaceName)):
            confdict.setdefault(keyName,spaceName)
            #print(spaceName)

            url = 'https://domain.atlassian.net/wiki/rest/api/space'
            auth = HTTPBasicAuth('xxx@yyy.com', 'abcabcabc')

            headers = {
                "Accept": "application/json",
                "Content-Type": "application/json"
            }
            payload = json.dumps({
                "key": keyName,
                "name": spaceName,
                "description": {
                    "plain": {
                        "value": "Test space created in Python - XL Int",
                        "representation": "storage"
                    }
                },
            })
            response = requests.request(
               "POST",
               url,
               data=payload,
               headers=headers,
                auth=auth
            )
            res_data = response.json()
            spaceID = str((res_data["homepage"]["id"]))
            pageName = str(sheet.cell(row=i1, column=2).value)

            url = "https://domain.atlassian.net/wiki/rest/api/content/aaaa/pagehierarchy/copy"
            auth = HTTPBasicAuth('xxx@yyy.com', 'abcabcabc')
            headers = {
                "Content-Type": "application/json"
            }
            payload = json.dumps({
                "copyAttachments": True,
                "copyPermissions": True,
                "copyProperties": True,
                "copyLabels": True,
                "copyCustomContents": True,
                "destinationPageId": spaceID,
                "titleOptions": {
                    "prefix": pageName + "  ",
                    "replace": "",
                    "search": ""
                }
            })
            response = requests.request(
                "POST",
                url,
                data=payload,
                headers=headers,
                auth=auth
            )
            page_data = response.json()
            #spaceID = str((res_data["homepage"]["id"]))

            print(page_data)