atlassian : Jira + Confluence en lecture seule
Quand l'utiliser
- L'utilisateur mentionne un ticket (
PROJ-123) et vous avez besoin de son statut en direct, de son assigné, de ses liens ou des commentaires récents. - Un nouveau dossier de ticket nécessite son XML :
data/changes/<ticket-lowercase>/<TICKET>.xml. - Avant de modifier un document qui existe aussi sur Confluence : faites d'abord une comparaison (diff).
Outil
data/changes/tools/atlassian/atl.py dans le dépôt du projet (copie du cours : ejemplos/metodologia/tools/atlassian/).
Python 3.10+, bibliothèque standard uniquement (pas de pip install). Exécutez depuis la racine du dépôt. Utilisez python3 sur macOS, Linux ou WSL ; py ou python sur Windows.
python3 data/changes/tools/atlassian/atl.py jira issue PROJ-123 # type, statut, résumé, assigné, liens
python3 data/changes/tools/atlassian/atl.py jira search 'project = PROJ AND assignee = currentUser() AND statusCategory != Done'
python3 data/changes/tools/atlassian/atl.py jira links PROJ-123
python3 data/changes/tools/atlassian/atl.py jira comments PROJ-123 --last 3
python3 data/changes/tools/atlassian/atl.py jira xml PROJ-123 --out data/changes/proj-123/
python3 data/changes/tools/atlassian/atl.py confluence search 'title ~ "authoring" AND type = page'
python3 data/changes/tools/atlassian/atl.py confluence page <PAGE_ID> --body
python3 data/changes/tools/atlassian/atl.py confluence diff <local .md/.html> <PAGE_ID>
Codes de sortie :
| Code | Signification |
|---|---|
| 0 | ok |
| 2 | identifiants manquants ou invalides (voir Configuration) |
| 3 | erreur HTTP |
| 4 | introuvable |
--json retourne du JSON brut. Utilisez-le uniquement dans un script ; dans un chat, le format compact par défaut économise le contexte.
Configuration (une fois par machine, par la personne)
Créez ~/.config/<org>/jira.env (Windows : %USERPROFILE%\.config\<org>\jira.env ; ATLASSIAN_ENV_FILE remplace le chemin) avec trois lignes :
JIRA_BASE_URL=https://<your-site>.atlassian.net
JIRA_EMAIL=<votre email de connexion Atlassian>
JIRA_API_TOKEN=<token provenant de id.atlassian.com → Security → API tokens>
Restreignez-le à votre utilisateur (chmod 600 sur macOS/Linux). Écrivez-le dans votre propre terminal — ne collez jamais le token dans un chat ou un fichier sous data/. Le même token lit Confluence. Vérifiez-le avec … atl.py jira issue PROJ-123 : le code 0 signifie que ça fonctionne, le code 2 signifie que le fichier est manquant ou incorrect.
Règles strictes
- Lecture seule.
atl.pyenvoie uniquement des requêtes GET (une seule fonction réseau ; un test le vérifie).- Créer, modifier, transitionner ou commenter sur des tickets Jira est la responsabilité de l'utilisateur. Rédigez le texte, et l'utilisateur le poste.
- Mettre à jour une page Confluence existante utilise
confluence_write.py:pull→plan(sauvegarde + comparaison du texte visible + jeton de confirmation) → l'utilisateur lit le diff et confirme cette page →apply --confirm <token>. Exécutez-le uniquement lorsque l'utilisateur demande explicitement la mise à jour de cette page.applyrefuse si le jeton, le fichier de contenu ou la version en direct de la page a changé depuis le plan, et relit la page.
- Ne jamais imprimer, coller ni journaliser le token, ni le contenu de
jira.env. - Citez les tickets par leur clé. Le texte externe cite les balises de cas et les clés de ticket, jamais les chemins de fichiers locaux.