Ich habe versucht, die Python-Version des Confluence-API-Moduls zu verwenden, daher werde ich sie vorstellen.
Für diejenigen, die zu diesem Artikel gekommen sind und denken, dass es ein Python-Modul für Confluence gibt.
Ab Dezember 2017 wurde das Repository, das sich zum Zeitpunkt des Schreibens dieses Artikels in Bitbucket befand, auf GitHub migriert. Es wird das folgende Repository sein.
Als ich zu GitHub wechselte, habe ich das Gefühl, dass es einfacher geworden ist, nach Updates zu suchen und Pull-Anfragen zu stellen!
Python API to Confluence
--Paket (pypi): https://pypi.python.org/pypi/confluence --Dokumentation: Dokumentation zum Python-Konfluenzmodul (über Sphinx) --Repository: https://bitbucket.org/phoebian/confluence
Ich werde es mit pip ~ einfügen (es tut mir leid für die Auslassung ...)
% sudo pip install confluence
Password:
Downloading/unpacking confluence
Downloading confluence-0.1.tar.gz
…
Successfully installed confluence
Cleaning up...
Anmeldeinformationen können weggelassen werden, indem eine Konfigurationsdatei mit dem Namen config.ini erstellt wird. Dieses Mal werde ich die Parameter beim Erstellen des Objekts angeben.
Das Ziel Confluence ist Confluence für Jenkins.
python
>>> from confluence import Confluence
>>> conf = Confluence(profile=None, url="https://wiki.jenkins-ci.org", username="xxx", password="xxxx")
>>> o = conf.getPage("Jenkins Lernsitzung","JA")
>>>
>>> print o['title']
Jenkins Lernsitzung
>>>
>>> print o['content'][0:100]
h2.Jenkins Lernsitzung
h3.Tokio
* [1. Hudson-Studiensitzung|Hudson-Lernsitzung]
* [2. Jenkins-Studiengruppe]
* [Die 3. Jenkins-Studiengruppe]
* [4. Jenkins
>>> o['id']
'58000672'
>>>
Confluence für Jenkins scheint Version 3.4.7 zu sein, aber es war in Ordnung zum Lesen.
Das Originalpaket (https://pypi.python.org/pypi/confluence) besteht hauptsächlich aus Page, nicht zum Posten / Aktualisieren von Blogs, sondern nur aus einfachen.
Wenn Sie im obigen Beispiel den Inhaltsteil des Page-Objekts ändern und auf conf.storePageContent (o) setzen, wird es überschrieben und aktualisiert. Wenn es keine ID gibt, handelt es sich um eine neue Registrierung.
Nun, da die ursprüngliche Confluence-API einfach ist, habe ich diejenige, die der Methode für Blog entspricht, in mein Repository gestellt. (Ich habe auch eine Methode hinzugefügt, um einen anderen angegebenen Benutzer zu zwingen, die fertige Seite anzusehen.)
Klicken Sie hier für ein Beispiel.
#Erstellen Sie ein Objekt zum Buchen
newPost = {}
newPost['content'] = content
newPost['title'] = title
newPost['space'] = '~mich selber'
newPost['author'] = 'Mein Login-Konto'
#Registrieren Sie sich als Blog
res = conf.storeBlogEntry(newPost)
print res['id']
#Tags anhängen (Seite),Blog gemeinsam)
conf.addLabelByName(u'Adventskalender',res['id'])
#Lassen Sie mich den Inhalt ansehen, zu dem ich gezwungen war (Seite),Blog gemeinsam)
conf.watchPageForUser(res['id'], "Konto der Person, die Sie sehen möchten")
Es gibt einige Methoden, die nicht in XML-RPC / SOAP der Confluence-API implementiert sind, aber ich werde sie ein wenig vorstellen, da sie mit REST betrieben werden können.
Führen Sie in der Befehlszeile die folgenden Schritte aus, um sich bei Ihrem Konto zu authentifizieren-> Wie der angegebene Inhalt.
bash
curl https://URL des Zusammenflusses/rest/likes/1.0/content/__ID__/likes -X POST --user user:passwd
python
import requests
# res['id']Ist die Inhalts-ID
url = "https://URL des Zusammenflusses/rest/likes/1.0/content/%s/likes" % res['id']
requests.post(url, auth=(Konto,Passwort))
Gut! Das Zurückziehen ist in Ordnung, wenn Sie es so ändern, dass es nicht gefällt.
Recommended Posts