Finalized Confluence Script and Started Skuid

This commit is contained in:
Norm Rasmussen
2022-11-22 17:13:39 -05:00
parent d54f1e926a
commit b0395b5293
18 changed files with 1080 additions and 304 deletions

View File

@ -0,0 +1,116 @@
import markdown
import requests
from requests.auth import HTTPBasicAuth
import json
def readFile(company):
rootdir = "/Users/normrasmussen/Documents/Northpass/Scripts/API_Notes/SampleNotes/"
with open(rootdir+company+".md", "r") as companyfile:
notes = companyfile.read()
notes = markdown.markdown(notes)
getContent(company, notes)
def createNewPage(company, notes):
url = "https://northpass.atlassian.net/wiki/rest/api/content/"
auth = HTTPBasicAuth("nrasmussen@northpass.com", "qf9Il7X4wkthgQKBOIly5737")
headers = {
"X-Atlassian-Token": "no-check",
"Accept": "application/json",
"Content-Type": "application/json"
}
payload = json.dumps( {
"type":"page",
"title": company,
"ancestors":[{"id":2210463745}],
"space":
{"key":"~350535240"},
"body":
{"storage":
{"value": notes,
"representation":"storage"}}
} )
response = requests.request(
"POST",
url,
data=payload,
headers=headers,
auth=auth
)
print("createNewPage function has run")
response = json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": "))
print(response)
exists = "already exists"
if exists in response:
print("This page exists! Updating page instead.")
getContent(company, notes)
def getContent(company, notes):
url = "https://northpass.atlassian.net/wiki/rest/api/content/search?cql=parent=2210463745&expand=body.storage,version"
# Found the answer to this URL here: https://community.atlassian.com/t5/Confluence-questions/How-can-i-get-the-page-version-using-a-specific-page-id/qaq-p/898721
auth = HTTPBasicAuth("nrasmussen@northpass.com", "qf9Il7X4wkthgQKBOIly5737")
headers = {
"Accept": "application/json",
}
response = requests.request("GET", url, headers=headers, auth=auth)
jsonResponse = response.json()
text = json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",",": "))
print(text)
listCompanies = []
for response in jsonResponse['results']:
if response['title'] == company:
print(f"{company} Found.")
version = int(response["version"]["_links"]["self"][-1])
if version == "":
version = 1
else:
pass
id = response['id']
print(id)
print(version)
updatePage(company, notes, id, version)
else:
listCompanies.append(response["title"])
pass
print("Other Companies, not pertinent right now. List of companies:")
print(listCompanies)
def updatePage(company, notes, id, version):
url = f"https://northpass.atlassian.net/wiki/rest/api/content/{id}"
newVersion = version+1
print(newVersion)
auth = HTTPBasicAuth("nrasmussen@northpass.com", "qf9Il7X4wkthgQKBOIly5737")
headers = {
"X-Atlassian-Token": "no-check",
"Accept": "application/json",
"Content-Type": "application/json",
"User-Agent" : "python-requests/2.28.1",
}
payload = json.dumps( {
"version": {
"number": newVersion
},
"type":"page",
"title": company,
"status": "curent",
"ancestors":[{"id": 2210463745}],
"body":
{"storage":
{"value": notes,
"representation":"storage"}}
} )
response = requests.request(
"PUT",
url,
data=payload,
headers=headers,
auth=auth
)
response = json.dumps(json.loads(response.text), sort_keys=True, indent=4, separators=(",", ": "))
print(response)
print("updatePage function has run")
if __name__ == "__main__":
readFile(company="Flink")
#readNewNotes(company="Flink")