petitspas/docs/PROCEDURE-API-GITEA.md
Julien Martin c4d93ee458 Merge develop into master (squash)
- Ticket #92: endpoint GET /gestionnaires, dashboard admin données réelles
- Seed données de test, script reset-and-seed-db.sh
- Modèles frontend (Parent, AM), user_service, widgets admin

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-16 22:55:38 +01:00

5.5 KiB
Raw Permalink Blame History

Procédure Utilisation de lAPI Gitea

1. Contexte

  • Instance : https://git.ptits-pas.fr
  • API de base : https://git.ptits-pas.fr/api/v1
  • Projet P'titsPas : dépôt jmartin/petitspas (owner = jmartin, repo = petitspas)

2. Authentification

2.1 Token

Le token est défini dans lenvironnement (ex. ~/.bashrc) :

export GITEA_TOKEN="<votre_token>"

Pour lutiliser dans les commandes :

source ~/.bashrc   # ou : . ~/.bashrc
# Puis utiliser $GITEA_TOKEN dans les curl

2.2 En-tête HTTP

Toutes les requêtes API doivent envoyer le token :

-H "Authorization: token $GITEA_TOKEN"

Exemple :

curl -s -H "Authorization: token $GITEA_TOKEN" \
  "https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas"

3. Endpoints utiles

3.1 Dépôt (repository)

Action Méthode URL
Infos dépôt GET /repos/{owner}/{repo}
Liste dépôts GET /repos/search?q=petitspas

Exemple infos du dépôt :

curl -s -H "Authorization: token $GITEA_TOKEN" \
  "https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas" | jq .

3.2 Issues (tickets)

Action Méthode URL
Liste des issues GET /repos/{owner}/{repo}/issues
Détail dune issue GET /repos/{owner}/{repo}/issues/{index}
Créer une issue POST /repos/{owner}/{repo}/issues
Modifier une issue PATCH /repos/{owner}/{repo}/issues/{index}
Fermer une issue PATCH (même URL, state: "closed")

Paramètres GET utiles pour la liste :

  • state : open ou closed
  • labels : filtre par label (ex. frontend)
  • page, limit : pagination

Exemples :

# Toutes les issues ouvertes
curl -s -H "Authorization: token $GITEA_TOKEN" \
  "https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues?state=open" | jq .

# Issues ouvertes avec label "frontend"
curl -s -H "Authorization: token $GITEA_TOKEN" \
  "https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues?state=open" | \
  jq '.[] | select(.labels[].name == "frontend") | {number, title, state}'

# Détail de lissue #47
curl -s -H "Authorization: token $GITEA_TOKEN" \
  "https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/47" | jq .

# Fermer lissue #31
curl -s -X PATCH -H "Authorization: token $GITEA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"state":"closed"}' \
  "https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/31"

# Créer une issue
curl -s -X POST -H "Authorization: token $GITEA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"title":"Titre du ticket","body":"Description","labels":[1]}' \
  "https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues"

3.3 Pull requests

Action Méthode URL
Liste des PR GET /repos/{owner}/{repo}/pulls
Détail dune PR GET /repos/{owner}/{repo}/pulls/{index}
Créer une PR POST /repos/{owner}/{repo}/pulls
Fusionner une PR POST /repos/{owner}/{repo}/pulls/{index}/merge

Exemples :

# Liste des PR ouvertes
curl -s -H "Authorization: token $GITEA_TOKEN" \
  "https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/pulls?state=open" | jq .

# Créer une PR (head = branche source, base = branche cible)
curl -s -X POST -H "Authorization: token $GITEA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"head":"develop","base":"master","title":"Titre de la PR"}' \
  "https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/pulls"

3.4 Branches

Action Méthode URL
Liste des branches GET /repos/{owner}/{repo}/branches
curl -s -H "Authorization: token $GITEA_TOKEN" \
  "https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/branches" | jq '.[].name'

3.5 Webhooks

Action Méthode URL
Liste webhooks GET /repos/{owner}/{repo}/hooks
Créer webhook POST /repos/{owner}/{repo}/hooks

3.6 Labels

Action Méthode URL
Liste des labels GET /repos/{owner}/{repo}/labels
curl -s -H "Authorization: token $GITEA_TOKEN" \
  "https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels" | jq '.[] | {id, name}'

4. Résumé des URLs pour P'titsPas

Remplacer {owner} par jmartin et {repo} par petitspas :

Ressource URL
Dépôt https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas
Issues https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues
Issue #n https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/issues/{n}
Pull requests https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/pulls
Branches https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/branches
Labels https://git.ptits-pas.fr/api/v1/repos/jmartin/petitspas/labels

5. Documentation officielle

6. Dépannage

  • 401 Unauthorized : vérifier le token et len-tête Authorization: token <TOKEN>.
  • 404 : vérifier owner/repo et lURL (sensible à la casse).
  • 422 / body invalide : pour POST/PATCH, envoyer Content-Type: application/json et un JSON valide.