Git par UiPath : comment faciliter le développement de robots en équipe.

Article publié le 13 octobre 2021 par  Zélie Brodard  Consultante RPA chez l’Oiseau Rare.



Comment l’implémentation de git par UiPath facilite le développement de robot en équipe ?


Imaginez que vous souhaitiez développer un robot RPA complexe. Pour gagner du temps, vous voulez développer votre robot RPA avec plusieurs développeurs. Vous décidez alors de vous répartir les différentes tâches à automatiser ! (Jusqu’ici, rien de bien compliqué)

La solution la plus basique est d’envoyer le code du robot au fur et à mesure. Ou encore, de l’ajouter sur un drive accessible par tous les développeurs. Mais cela présente un risque : se perdre entre les différentes versions du projet, et de ne pas travailler sur la version la plus à jour. On est d’accord, avec cette méthode on ne sait jamais si la bonne version du projet est la version Vfinalebis ou la version Vfinale2.

Pour éviter ces problèmes et pour que chacun ait à disposition la version la plus actuelle du code, le meilleur moyen de collaborer sur un projet RPA est d’utiliser un logiciel de gestion de version comme Git.



Qu’est-ce qu’un logiciel de gestion de version ?


Un logiciel de gestion de version est un outil utilisé pour gérer la collaboration sur des grands projets RPA. Cela permet à un développeur de suivre les modifications du code, d’examiner l’historique des versions et de revenir à une version antérieure du projet. L’avantage d’un logiciel de gestion de version est que chaque membre de l’équipe peut travailler librement sur n’importe quel fichier. Il peut ensuite intégrer les changements dans une version commune à tous les développeurs au moment voulu.

Git est le logiciel de gestion de version le plus largement utilisé dans la communauté de développeurs aujourd’hui.



Le logiciel de gestion de version Git


Pour se servir des différentes fonctionnalités de Git, il existe différentes commandes que l’on appelle via un interpréteur de ligne de commandes. Par exemple : PowerShell sur Windows ou Terminal sur Linux et MacOS.

  1. On commence par créer un projet avec un outil d’hébergement Git (Gitlab, Github, BitBucket…)
  2. Puis on le récupère en local depuis Git grâce à l’URL du projet : git clone [url]
  3. Après avoir ajoutés ou modifiés des fichiers dans le projet, on enregistre les modifications dans l’historique des versions en local : git commit -m « mon message expliquant mes modifications »
  4. On synchronise ensuite ces changements. Ils seront accessibles aux autres memb.res de l’équipe dans le répertoire distant  : git push.
  5. Un autre développeur de l’équipe peut récupérer la dernière version du projet en local : git pull
  6. Un autre développeur peut aussi créer une nouvelle branche du projet. Il pourra effectuer des changements qui n’impacteront pas la branche principale du projet : git branch [nom-de-branche]
  7. Puis finalement fusionner la branche créée (mabranche) dans la branche principale (master) : git merge mabranche.

Afin d’éviter la propagation d’erreur, un développeur peut demander à faire une « merge request » pour qu’un autre développeur vérifie et valide les changements apportés au code.



L’intégration de Git dans UiPath Studio


Mais si vous n’êtes pas très friand des lignes de commande, UiPath propose depuis la version 2019.10 une implémentation de Git directement dans son studio de développement.

Ce qui nous amène à la meilleure solution (en tout cas selon moi) de collaborer sur un projet RPA : utiliser Git directement depuis le Studio Uipath !

Pour commencer, nous devons connecter notre projet UiPath à Git. Soit en créant un projet sur UiPath Studio et en le liant à un dépôt Git encore vide. Soit en récupérant un projet Git contenant déjà du code grâce à son URL.

Une fois que le projet est connecté à UiPath Studio, toutes les commandes présentées précedemment sont accessibles en un clic droit sur le nom du projet ouvert. Il faut quand même penser à enregistrer les fichiers modifiés, avant d’utiliser les différentes commande. Sinon, les changements effectuées ne pourront pas être détectés.

C’est déjà un gain de temps considérable puisque les commandes n’ont plus à être passées manuellement. Tout est géré depuis UiPath Studio !


Mais la véritable plus-value de l’intégration de Git dans UiPath Studio sont les outils de résolution de conflits et de gestion des branches.

Imaginons que nous avons récupéré en local un projet depuis Git au début de la journée et nous avons commencé à travailler dessus. Entre-temps, un autre membre de l’équipe a aussi récupéré le projet sur Git et il y a apporté des modifications. Cela va générer un conflit lorsque nous allons essayer de déposer notre version du projet sur git.

En pratique, lorsque l’on va choisir la commande « commit and push » depuis UiPath Studio (permettant d’ajouter notre version du projet dans le dépôt Git distant cf plus haut), la fenêtre de résolution de conflits va s’afficher :

Schema article rpa


la fenêtre de résolution de conflits


Cette fenêtre permet de voir les différences entre la version présente sur Git et la nôtre avec un code couleur indiquant les activités qui ont été modifiées, ajoutées ou supprimées. On peut ensuite choisir la version que l’on souhaite garder. « Choose Left » pour celle présente sur Git, « Choose Local » pour celle que l’on voulait ajouter depuis notre projet local.

Il nous manque une fonctionnalité, pouvoir sélectionner chaque activité que l’on souhaite garder dans le cas d’une résolution de conflits, au lieu de devoir choisir entre l’une des deux versions.

UiPath Studio propose aussi une fenêtre « Manage Branches » permettant de gérer les différentes branches du projet. Supposons qu’on souhaite travailler sur des fonctionnalités différentes du projet pour les réunir sur une version commune par la suite. La fenêtre « Manage Branches » permet de gérer les différentes branches existantes dans notre projet, de changer de branche et de créer une nouvelle branche. Cette fenêtre permet aussi de réunir les branches en fusionnant une des branches dans une autre.


Il pourrait également être intéressant d’ajouter la fonctionnalité « merge request » qui n’est pas encore intégrée à la fenêtre « Manage Branches ».

L’intégration de Git dans UiPath présente un gain de temps considérable et facilite la prise en main de l’outil Git. Mais certaines petites fonctionnalités mériteraient d’être ajoutées dans les futures versions de UiPath Studio. Si jamais un commercial UiPath passe par là…