Aller au contenu

Git intégré

Un projet Restorm est fait pour vivre dans un dépôt git. L’intégration va plus loin qu’un simple git commit : elle comprend le format et sait résoudre un conflit au niveau des entités métier, pas des lignes de YAML.

Il n’y a rien à configurer. Dès que le fichier .restorm ouvert se trouve dans un dépôt git, les surfaces git s’activent.

Restorm utilise votre git local : ni identifiants à saisir, ni gestion de jetons dans l’application. La règle est simple — si git push fonctionne dans votre terminal, il fonctionne dans Restorm. Git est lancé avec les invites désactivées : un dépôt qui demanderait un mot de passe échoue immédiatement avec le message de git, plutôt que de bloquer l’interface.

Deux boutons, Pousser et Récupérer, chacun portant une pastille (un point, jamais un nombre) quand il y a quelque chose à envoyer ou une version plus récente à récupérer.

Le menu Git de la barre de titre offre les mêmes actions, plus Rafraîchir, Réinitialiser sur la version du serveur et Historique.

La cellule GIT de la barre d'état : Rafraîchir, Pousser et Récupérer, chacun de ces deux derniers portant une pastille, puis Historique. L'infobulle « Pousser sur le dépôt » est ouverte.

La modale de push affiche un message de commit déjà rédigé, généré déterministiquement à partir du diff structurel — sans modèle de langage. Une ligne par entité modifiée (requête, scénario, dossier, dossier de variables), jamais une ligne par champ.

  • Un sélecteur de langue du message, indépendant de la langue de l’interface, avec un interrupteur pour en faire la valeur par défaut.
  • Un titre éditable, avec un compteur indicatif à 72 caractères.
  • Un corps multiligne.

Valider enchaîne : enregistrer, git add, commit, push.

Restorm enregistre d’abord, puis récupère et fusionne.

Fusion propre : l’arbre et les onglets ouverts se rafraîchissent en place.

Conflit : une vue de résolution à quatre panneaux s’ouvre.

La vue de résolution de conflit à quatre panneaux : la liste des conflits à gauche, votre version, la version du serveur — les URL qui divergent sont encadrées en rouge — et le panneau « Résolu » rempli après avoir retenu votre version.

PanneauContenu
Liste des conflitsLes entités en conflit
Votre versionEn lecture seule
Leur versionEn lecture seule
RésoluÉditable — c’est ce qui sera écrit

Le point important : chaque panneau affiche l’entité dans son véritable éditeur — une requête HTTP dans l’éditeur HTTP, un scénario dans l’éditeur de scénarios. Vous ne résolvez pas des marqueurs <<<<<<< dans du YAML, vous comparez deux requêtes.

Un bouton « utiliser cette version » par côté, et les champs qui divergent sont surlignés en rouge — quand un seul champ diffère, le panneau s’ouvre directement sur l’onglet concerné.

La documentation d’API d’un dossier de variables se résout automatiquement (la version la plus récente l’emporte).

Annuler exécute un git merge --abort. Fermer l’application en pleine résolution vous fait proposer, au lancement suivant, d’abandonner la fusion.

Restorm vérifie périodiquement s’il existe une version plus récente — sans jamais fusionner tout seul. Trois déclencheurs : une modification observée dans .git, l’ouverture d’un fichier, et un minuteur dont la fréquence se règle dans Paramètres ▸ Git (Off, 15 min, 30 min, 1 h, 4 h, 12 h, 24 h).

Une notification « Mise à jour disponible » propose alors Pull now.

Si le fichier a changé sur le disque depuis son ouverture, l’enregistrement est refusé et Restorm vous demande de Recharger ou de Garder votre version.

Deux propriétés du format, décrites dans Projets et fichiers .restorm : un ordre de clés canonique, et des identifiants dérivés de façon stable.

Conséquence : ouvrir puis réenregistrer sans rien modifier ne produit aucun diff, et deux personnes qui ajoutent la même requête au même endroit produisent des entités que la fusion sait apparier.

Git ▸ Historique ouvre une vue à deux volets : la liste des commits avec une gouttière de branches, et le détail à droite. Le menu contextuel d’un commit permet de récupérer cette version.

Quatre outils, en édition Pro : git_commit_push (étape 1 sur 2 — renvoie un jeton de revue, le titre, le corps et le diff par entité, sans rien écrire), git_confirm_push (étape 2 sur 2 — refusée si le projet a changé depuis la revue), git_pull et git_resolve_conflicts.

Le découpage en deux étapes est délibéré : un agent ne peut pas pousser sans qu’un diff ait été présenté d’abord.