Aller au contenu principal

🔧 Alimenter le journal depuis Git

:::note Pour les développeurs Cette section s'adresse aux développeurs qui utilisent Git. Si tu ne sais pas ce que c'est, tu peux passer directement à la section Journal de bord. :::

Chaque fois que tu enregistres une étape de travail dans Git (un "commit"), DockSky peut créer automatiquement une entrée dans ton journal. Tu construis une trace de tes décisions techniques sans rien faire manuellement, juste en travaillant normalement.

:::tip Pourquoi c'est utile pour un cerveau TDA Le TDA vit dans l'instant. Dans trois semaines, tu ne te souviendras plus pourquoi tu as fait tel changement. Le journal automatique construit une trace sans effort. :::


Fonctionnement

Quand tu envoies la requête, une entrée est créée dans ton journal avec :

  • Source : git-commit (distingué des entrées manuelles ou IA)
  • Tags : ["git", "commit"] automatiquement
  • Format : 🔧 [repo@abc12345] Message du commit (dd/mm/yyyy HH:MM)

Exemple d'entrée générée :

🔧 [docksky-api@c330602] Fix: enum journal_source manquait git-commit (23/05/2026 05:42)

Endpoint

POST https://api.docksky.fr/tda/journal/git-commit
Authorization: Bearer <token>
Content-Type: application/json

Corps de la requête

ChampTypeObligatoireDescription
project_idintegerouiID du projet TDA
messagestringouiTexte explicatif (max 500 caractères)
commit_refstringouiHash du commit (max 64 caractères)
commit_datedatetimeouiDate ISO 8601 du commit
repostringnonNom du dépôt (max 100 caractères)

Réponse (201 Created)

{
"id": 172,
"content": "🔧 [docksky-api@c330602] Fix: enum journal_source (23/05/2026 05:42)",
"source": "git-commit",
"tags": ["git", "commit"],
"project_id": 79,
"created_at": "2026-05-23T05:42:00"
}

Hook git post-commit

Crée le fichier .git/hooks/post-commit dans ton dépôt et rends-le exécutable :

chmod +x .git/hooks/post-commit

Contenu du hook :

#!/usr/bin/env bash
set -euo pipefail

TDA_USERNAME="ton-username"
TDA_PASSWORD="ton-mot-de-passe"
TDA_PROJECT_ID=79
TDA_API="https://api.docksky.fr"

# Récupérer le token
TOKEN=$(curl -s -X POST "$TDA_API/auth/login" \
-d "username=$TDA_USERNAME" \
-d "password=$TDA_PASSWORD" \
| grep -o '"access_token":"[^"]*"' | cut -d'"' -f4)

[ -z "$TOKEN" ] && exit 0 # Silencieux si pas de réseau

REPO=$(basename "$(git rev-parse --show-toplevel)")
REF=$(git rev-parse HEAD)
MSG=$(git log -1 --pretty=%s)
DATE=$(git log -1 --pretty=%cI)

curl -s -X POST "$TDA_API/tda/journal/git-commit" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d "{\"project_id\":$TDA_PROJECT_ID,\"message\":\"$MSG\",\"commit_ref\":\"$REF\",\"commit_date\":\"$DATE\",\"repo\":\"$REPO\"}" \
> /dev/null

exit 0

:::note Le hook ne bloque jamais Le script se termine toujours avec exit 0. Si le réseau est absent ou l'API indisponible, le commit se fait normalement. :::


Obtenir un token

curl -X POST https://api.docksky.fr/auth/login \
-d "username=ton-username" \
-d "password=ton-mot-de-passe"

Pour une utilisation en CI/CD ou dans un script automatisé, il est préférable de stocker les credentials dans des variables d'environnement ou un gestionnaire de secrets.


Installer les hooks sur une nouvelle machine

Les hooks git sont locaux (dans .git/hooks/) et ne se poussent pas sur GitHub. Sur un nouveau poste ou après un git clone, il faut les réinstaller.

Un script global gère ça en une commande depuis ~/projets/ :

bash ~/projets/install-git-hooks.sh

Au premier lancement, il demande tes credentials TDA et les stocke dans ~/.tda-credentials (permissions 600). Les lancements suivants réinstallent silencieusement les hooks dans tous les repos détectés.

Les credentials ne sont jamais écrits dans les hooks eux-mêmes ni dans un fichier versionné.


Voir les entrées dans l'application

Les entrées apparaissent dans la vue Journal de DockSky, identifiables par leur emoji 🔧 et leur format [repo@ref]. Elles sont filtrables par projet.