J'ai essayé d'utiliser la version Python du module API Confluence, je vais donc la présenter.
Pour ceux qui sont arrivés à cet article en pensant qu'il existe un module python pour Confluence.
En décembre 2017, le référentiel qui se trouvait dans Bitbucket au moment de la rédaction de cet article a été migré vers GitHub. Ce sera le référentiel suivant.
En passant sur GitHub, je pense qu'il est devenu plus facile de vérifier les mises à jour et d'émettre des pull requests!
Python API to Confluence
--Package (pypi): https://pypi.python.org/pypi/confluence --Documentation: Documentation du module de confluence Python (via Sphinx)
Je peux le mettre avec pip ~ (je suis désolé pour l'omission ...)
% sudo pip install confluence
Password:
Downloading/unpacking confluence
Downloading confluence-0.1.tar.gz
…
Successfully installed confluence
Cleaning up...
Les informations d'identification peuvent être omises en créant un fichier de configuration appelé config.ini. Cette fois, je préciserai les paramètres lors de la création de l'objet.
La Confluence cible est Confluence pour Jenkins.
python
>>> from confluence import Confluence
>>> conf = Confluence(profile=None, url="https://wiki.jenkins-ci.org", username="xxx", password="xxxx")
>>> o = conf.getPage("Session d'étude Jenkins","JA")
>>>
>>> print o['title']
Session d'étude Jenkins
>>>
>>> print o['content'][0:100]
h2.Session d'étude Jenkins
h3.Tokyo
* [1ère session d'étude Hudson|Session d'étude Hudson]
* [2e groupe d'étude Jenkins]
* [Le 3e groupe d'étude Jenkins]
* [4ème Jenkins
>>> o['id']
'58000672'
>>>
Confluence for Jenkins semble être la version 3.4.7, mais c'était correct pour la lecture.
Le package d'origine (https://pypi.python.org/pypi/confluence) est principalement Page, pas pour publier / mettre à jour des blogs, seulement des blogs de base.
Dans l'exemple ci-dessus, si vous modifiez la partie contenu de l'objet Page et que vous le définissez sur conf.storePageContent (o), il sera écrasé et mis à jour. S'il n'y a pas d'identifiant, ce sera une nouvelle inscription.
Eh bien, puisque l'API Confluence d'origine est simple, j'ai mis celle correspondant à la méthode pour Blog dans mon référentiel. (J'ai également ajouté une méthode pour forcer un autre utilisateur spécifié à regarder la page terminée)
Cliquez ici pour un échantillon.
#Créer un objet à publier
newPost = {}
newPost['content'] = content
newPost['title'] = title
newPost['space'] = '~moi même'
newPost['author'] = 'Mon compte de connexion'
#S'inscrire en tant que blog
res = conf.storeBlogEntry(newPost)
print res['id']
#Joindre des balises (page),Blog commun)
conf.addLabelByName(u'Calendrier de l'Avent',res['id'])
#Laissez-moi regarder le contenu que j'ai été obligé de faire (page),Blog commun)
conf.watchPageForUser(res['id'], "Compte de la personne que vous souhaitez regarder")
Il existe des méthodes qui ne sont pas implémentées dans XML-RPC / SOAP de l'API Confluence, mais je vais les présenter un peu car elles peuvent être exploitées en utilisant REST.
Sur la ligne de commande, procédez comme suit pour vous authentifier avec votre compte-> Comme le contenu spécifié.
bash
curl https://URL de confluence/rest/likes/1.0/content/__ID__/likes -X POST --user user:passwd
python
import requests
# res['id']Est l'ID de contenu
url = "https://URL de confluence/rest/likes/1.0/content/%s/likes" % res['id']
requests.post(url, auth=(Compte,mot de passe))
Bien! Le retrait est OK si vous le modifiez pour ne pas aimer.
Recommended Posts