Skip to content

About

Application Python avec interface Tkinter pour gérer des espaces et pages Confluence via l'API REST d'Atlassian (GET, POST, PUT, DELETE).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Consommation de l'API Confluence — 2 exemples

Mini-application Python démontrant la consommation de l'API REST Confluence à travers 2 exemples concrets, dans le cadre du stage.

1. Structure du projet

confluence_2_exemples/
├── config.py                              # Chargement de la configuration (.env)
├── confluence_client.py                   # Classe ConfluenceClient : tous les appels API
├── exemple1_lister_espaces_et_pages.py    # Exemple 1 : GET + GET enchaînés
├── exemple2_rechercher_et_creer_page.py   # Exemple 2 : GET + POST
├── requirements.txt                       # Dépendances Python
├── .env.example                           # Modèle de fichier de configuration
└── README.md

2. Installation

# 1. Se placer dans le dossier du projet
cd confluence_2_exemples

# 2. (Recommandé) Créer un environnement virtuel
python3 -m venv venv
source venv/bin/activate        # sous Linux/Mac
venv\Scripts\activate           # sous Windows

# 3. Installer les dépendances
pip install -r requirements.txt

3. Configuration (obtenir tes accès API)

  1. Va sur https://id.atlassian.com/manage-profile/security/api-tokens
  2. Clique sur "Create API token", donne-lui un nom (ex: "stage-app"), copie le token généré
  3. Copie le fichier modèle et remplis-le avec tes infos :
cp .env.example .env

Puis édite .env :

ATLASSIAN_BASE_URL=https://ton-site.atlassian.net
ATLASSIAN_EMAIL=ton.email@exemple.com
ATLASSIAN_API_TOKEN=le_token_que_tu_viens_de_copier

⚠️ Le .env contient des informations sensibles : ne le partage jamais, ne le mets jamais sur Git (ajoute-le à ton .gitignore).

4. Les 2 exemples

Exemple 1 — Lister les espaces et leurs pages

python exemple1_lister_espaces_et_pages.py

Ce qu'il fait :

  1. GET /rest/api/space → récupère tous les espaces Confluence accessibles
  2. Pour chaque espace, GET /rest/api/content?spaceKey=... → récupère ses pages

Cas d'usage : explorer la documentation existante avant d'y ajouter ou d'y chercher quelque chose.

Exemple 2 — Rechercher puis créer une page (évite les doublons)

python exemple2_rechercher_et_creer_page.py

Ce qu'il fait :

  1. GET /rest/api/content/search (avec une requête CQL) → vérifie si une page sur ce sujet existe déjà
  2. Si non trouvée, POST /rest/api/content → crée automatiquement la page

⚠️ Avant de tester, modifie la variable SPACE_KEY en haut du fichier avec la vraie clé de ton espace Confluence.

Cas d'usage concret pour ton stage : avant de créer automatiquement une page de documentation depuis ton appli Laravel (ex: fiche d'un contrôle INN), on vérifie qu'elle n'existe pas déjà pour éviter les doublons.

5. Comment ça fonctionne (résumé technique)

Étape Détail
Authentification Basic Auth avec (email, api_token) — envoyée à chaque requête
Format des échanges JSON (envoi et réception)
Méthodes HTTP utilisées GET pour lire, POST pour créer
Gestion des erreurs raise_for_status() intercepte les codes 400/401/404/500
Endpoints utilisés /wiki/rest/api/space, /wiki/rest/api/content, /wiki/rest/api/content/search

6. Pour aller plus loin

  • Ajouter la suppression ou la modification de page (DELETE/PUT /content/{id})
  • Lier automatiquement la page créée à un ticket Jira (traçabilité, comme vu dans le cours)
  • Brancher ce client sur ton appli Laravel/React : le backend Laravel pourrait appeler ces mêmes endpoints pour générer automatiquement de la documentation liée aux 4 domaines métier (flotte, opérations maritimes, contrôle INN, usines/négoce)

About

Application Python avec interface Tkinter pour gérer des espaces et pages Confluence via l'API REST d'Atlassian (GET, POST, PUT, DELETE).

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages