Utilisons la version Python du module API Confluence.

J'ai essayé d'utiliser la version Python du module API Confluence, je vais donc la présenter.

Introduction / 20171227 Addendum

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)

Le fait que le référentiel soit Bitbucket est comme python & Atlassian!

Installation

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...

Obtenez de la documentation sur la ligne de commande

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.

À propos de l'écriture

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.

Fonctionnement de la page

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.

Écriture de blog

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")

Couvert par l'API REST

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.

En fait, j'ai capturé le processus exécuté à partir de l'écran Confluence et j'ai recherché quelque chose comme "Quel type de demande envoyez-vous?" (C'est étrange)

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

Utilisons la version Python du module API Confluence.
Utilisons l'API de la fenêtre générale des statistiques gouvernementales (e-Stat)
Utilisons les données ouvertes de "Mamebus" en Python
[Python] Utilisez l'API Face de Microsoft Cognitive Services
Tester la version du module argparse
pyenv-changer la version python de virtualenv
Utilisez l'API Flickr de Python
Touchons l'API de Netatmo Weather Station avec Python. #Python #Netatmo
Quelle est la version TLS par défaut du module de requêtes python?
Passez le chemin du module python importé
À propos de l'environnement virtuel de Python version 3.7
[Python] Essayez pydash de la version Python de lodash
Vérifiez le chemin du module importé Python
Essai du parseur d'emacs-org orgparse pour python
[Python] Exécutons le module régulièrement en utilisant schedule
Utilisez la dernière version de PyCharm sur Ubuntu
Utilisez OpenSeesPy quel que soit le système d'exploitation ou la version de Python
[Python] Une compréhension approximative du module de journalisation
Essayez d'utiliser le module de collections (ChainMap) de python3
Utilisons différentes versions de SQLite3 de Python3!
Utilisez le module Python nghttp2 de Homebrew de Python de pyenv
[Python] Récupérez le texte de la loi à partir de l'API e-GOV law
[python] Récupère la liste des classes définies dans le module
Décomposons les bases du code Python de TensorFlow
[Python] Changeons l'URL du site administrateur de Django
Aligner la version de chromedriver_binary
Voyons comment utiliser def en python
Utilisons Python Janome facilement
Utiliser l'API Trello avec python
Vers la retraite de Python2
Utiliser l'API Twitter avec Python
À propos du module Python venv
Mise à jour automatique du module Python
Mise à niveau de python Anaconda
Vérifiez la version OpenSSL de python 2.6
Appelez l'API avec python3.
Utiliser l'API subsonique avec python3
À propos des fonctionnalités de Python
Utilisez l'API e-Stat de Python
Le pouvoir des pandas: Python
Module [Python of Hikari-] Chapitre 08-03 (Importation et utilisation de la bibliothèque standard)
Mettez la dernière version de Python dans Linux (Debian) du Chromebook
Pourquoi puis-je utiliser le module en important avec python?
Facilitez la compréhension de l'affichage des exceptions du module Python
Afficher à l'aide du module python du backend mobile Nifty Cloud
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
Utilisons rapidement l'expression distribuée des mots avec fastText!
2015-11-26 python> Afficher la liste des fonctions du module> import math> dir (math)
Affiche automatiquement les paroles de la chanson en cours de lecture sur iTunes en Python (version améliorée)
[Python] Version Taple du menu déroulant de la préfecture
Utilisons usercustomize.py au lieu de sitecustomize.py
L'histoire selon laquelle la version de python 3.7.7 n'était pas adaptée à Heroku
L'histoire de Python et l'histoire de NaN
Élever la version de pyenv elle-même
Comment utiliser le module optparse
Envelopper (partie de) la bibliothèque AtCoder en Cython pour une utilisation en Python
[Python] La pierre d'achoppement de l'importation
First Python 3 ~ Le début de la répétition ~
Frappez l'API Sesami en Python