Skip to content
Cette page a été générée et traduite avec l'aide de l'IA. Si vous remarquez des inexactitudes, n'hésitez pas à contribuer. Modifier sur GitHub

Problèmes & Suivi

Les problèmes (également appelés éléments de travail) sont l'unité de travail principale dans OpenPR. Ils représentent des tâches, bugs, fonctionnalités ou tout travail traçable dans un projet.

Champs d'un problème

ChampTypeRequisDescription
TitrestringOuiCourte description du travail
DescriptionmarkdownNonDescription détaillée avec mise en forme
ÉtatenumOuiÉtat du workflow (voir Workflow)
PrioritéenumNonlow, medium, high, urgent
ResponsableutilisateurNonMembre de l'équipe responsable du problème
ÉtiquetteslisteNonTags de catégorisation (voir Étiquettes)
SprintsprintNonCycle de sprint auquel le problème appartient
Date d'échéancedatetimeNonDate de complétion cible
Pièces jointesfichiersNonFichiers joints (images, docs, journaux)

Identifiants de problèmes

Chaque problème a un identifiant lisible composé de la clé du projet et d'un numéro séquentiel :

API-1, API-2, API-3, ...
FRONT-1, FRONT-2, ...

Vous pouvez rechercher n'importe quel problème par son identifiant dans tous les projets de l'espace de travail.

Créer des problèmes

Via l'interface web

  1. Naviguez vers votre projet.
  2. Cliquez sur Nouveau problème.
  3. Remplissez le titre, la description et les champs optionnels.
  4. Cliquez sur Créer.

Via l'API REST

bash
curl -X POST http://localhost:8080/api/projects/<project_id>/issues \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{
    "title": "Implémenter la page de paramètres utilisateur",
    "description": "Ajouter une page de paramètres où les utilisateurs peuvent mettre à jour leur profil.",
    "state": "todo",
    "priority": "medium",
    "assignee_id": "<user_uuid>"
  }'

Via MCP

json
{
  "method": "tools/call",
  "params": {
    "name": "work_items.create",
    "arguments": {
      "project_id": "<project_uuid>",
      "title": "Implémenter la page de paramètres utilisateur",
      "state": "todo",
      "priority": "medium"
    }
  }
}

Commentaires

Les problèmes prennent en charge les commentaires en fil avec mise en forme markdown et pièces jointes :

bash
# Ajouter un commentaire
curl -X POST http://localhost:8080/api/issues/<issue_id>/comments \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <token>" \
  -d '{"content": "Corrigé dans le commit abc123. Prêt pour la révision."}'

Les commentaires sont également disponibles via les outils MCP : comments.create, comments.list, comments.delete.

Fil d'activité

Chaque modification d'un problème est enregistrée dans le fil d'activité :

  • Changements d'état
  • Changements de responsable
  • Ajouts/suppressions d'étiquettes
  • Commentaires
  • Mises à jour de priorité

Le fil d'activité fournit une piste d'audit complète pour chaque problème.

Pièces jointes

Les problèmes et commentaires prennent en charge les pièces jointes incluant des images, documents, journaux et archives. Téléchargement via l'API :

bash
curl -X POST http://localhost:8080/api/v1/upload \
  -H "Authorization: Bearer <token>" \
  -F "[email protected]"

Ou via MCP :

json
{
  "method": "tools/call",
  "params": {
    "name": "files.upload",
    "arguments": {
      "filename": "screenshot.png",
      "content_base64": "<contenu_encodé_base64>"
    }
  }
}

Types de fichiers pris en charge : images (PNG, JPG, GIF, WebP), documents (PDF, TXT), données (JSON, CSV, XML), archives (ZIP, GZ) et journaux.

Recherche

OpenPR fournit une recherche plein texte sur tous les problèmes, commentaires et propositions via PostgreSQL FTS :

bash
# Recherche via l'API
curl -H "Authorization: Bearer <token>" \
  "http://localhost:8080/api/search?q=authentication+bug"

# Recherche via MCP
# work_items.search : recherche dans un projet
# search.all : recherche globale dans tous les projets

Outils MCP

OutilParamètresDescription
work_items.listproject_idLister les problèmes dans un projet
work_items.getwork_item_idObtenir un problème par UUID
work_items.get_by_identifieridentifierObtenir par ID humain (ex. API-42)
work_items.createproject_id, titleCréer un problème
work_items.updatework_item_idMettre à jour n'importe quel champ
work_items.deletework_item_idSupprimer un problème
work_items.searchqueryRecherche plein texte
comments.creatework_item_id, contentAjouter un commentaire
comments.listwork_item_idLister les commentaires
comments.deletecomment_idSupprimer un commentaire
files.uploadfilename, content_base64Télécharger un fichier

Étapes suivantes

Released under the Apache-2.0 License.