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.

Options courantes :

  1. Recopier le hook : crée .git/hooks/post-commit (contenu ci-dessus) et chmod +x .git/hooks/post-commit
  2. Script perso : un petit script qui boucle sur tes repos et y pose le même hook (chemins et credentials à toi)
  3. core.hooksPath : un dossier de hooks partagé pour plusieurs dépôts (git config core.hooksPath ~/mes-hooks)

Exemple minimal pour installer le hook dans tous les repos d’un dossier :

#!/usr/bin/env bash
# install-hooks.sh — à adapter (chemins, credentials)
HOOK_SRC="$HOME/mes-hooks/post-commit"
for repo in "$HOME/projets"/*/.git; do
cp "$HOOK_SRC" "$(dirname "$repo")/hooks/post-commit"
chmod +x "$(dirname "$repo")/hooks/post-commit"
done

Stocke les credentials dans des variables d'environnement ou un fichier hors dépôt (permissions 600). Ne les écris jamais dans un hook 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.