Focus sur le dernier né d’Atlassian : STASH !


Publié par
Clément CAPIAUX

26 juin 2012

Aujourd’hui, nous vous proposons une présentation du petit nouveau de la série des produits Atlassian : Stash – Git Repository Management for Enterprise Teams

Mais avant de parler de Stash, connaissez vous Git ?

Git ? Qu’est ce que c’est ?

Git est un logiciel de gestion de versions créé en 2005 par Linus Torvalds (notamment connu pour avoir créé le noyau Linux), qui est à classer parmi les systèmes de type décentralisés. En effet, contrairement à SVN (de type centralisé), chaque développeur possède l’historique des modifications, ce qui permet en théorie de se passer de serveur (bien qu’on utilise quasi toujours un serveur pour des raisons pratiques d’inter-connectabilité)

Ces dernières années, Git s’est imposé comme une des références des systèmes de type DCVS (Distributed Concurrent Versions System), car il est très rapide, et présente un système de gestion des branches extrêmement puissant et flexible.
En effet, il est très simple de tester un code en local dans une nouvelle branche, puisque la création des branches et les commits, avant d’être « pushés » sur le serveur, sont sauvegardés localement sur le poste du développeur. Il devient donc très simple de « revert »/ »edit »/ »delete » un commit sur le code en cours de développement avant d’accéder publiquement au serveur !

Si vous désirez obtenir plus d’informations sur Git, nous vous invitons à vous rendre sur le site officiel de ce projet : le Site officiel ainsi que la documentation.

Stash ? Pourquoi ? Pour qui ?

Nous avons donc vu que Git est très puissant, et permet une autonomie des équipes de développement puisque tout le monde possède l’historique des sources.
Néanmoins, et les administrateurs Git sauront vous en dire quelque chose, l’administration de ce type de serveur, la gestion des repositories de sources, les permissions associées, peuvent devenir plutôt techniques et complexes.

C’est là que Stash, la toute dernière application web produite par Atlassian, entre en jeu.

Gestion des repositories

Stash vous permettra de créer et d’organiser vos repositories par projet Stash. Si vous connaissez déjà Atlassian JIRA, vous ne devriez pas être dépaysés.
De plus, il vous sera proposé un tutoriel dedié par projet, afin de pouvoir configurer la synchronisation de vos sources (déjà versionnées dans Git ou non) avec Stash.

Gestion des utilisateurs

Lorsque vous intégrerez Stash, suivant la taille de vos équipes ainsi que la diversité des projets de développement que possédez, vous vous poserez sûrement la question : comment gérer les utilisateurs ayant accès aux sources synchronisées avec Git ?
Eh bien Stash, comme toute la suite des outils Atlassian, vous proposera plusieurs solutions pour la gestion de vos utilisateurs :

  • Gestion interne dans Stash uniquement
  • Délégation de la gestion à une JIRA existant
  • Délégation de la gestion à un CROWD
  • Délégation à un annulaire LDAP

L’une ou l’autre de ces solutions devrait tout à fait convenir à votre besoin !

Permissions

Stash vous permettra là encore d’être de façon très rapide, de mettre en place une gestion fine et efficace des permissions qu’auront vos utilisateurs sur les sources synchronisées avec Git.

En effet, encore une fois à la mode de JIRA, Stash présente des permissions globales (haut niveau) ainsi qu’un système de permissions par projet. De cette façon il sera très simple d’ajouter/retirer les permissions Stash à un utilisateur ou un groupe, suivant le contexte d’accès.

Voici un résumé des permissions qu’expose Stash :

  • (Permission globale) System Administrator : contrôle complet de l’instance Stash
  • (Permission globale) Administrator : accès administrateur partiel
  • (Permission globale) Project Creator : créateur/administrateur projet Stash
  • (Permission globale) User : utilisateur simple de Stash
  • (Permission projet) Project Administrator
  • (Permission projet) Contributor : peut clôner, « puller » depuis les repositories de ce projet, mais également « pusher »
  • (Permission projet) Observer : droit de lecture sur tous les repositories se trouvant dans le projet (clone et push également, mais pas de push)


Références :

Consultation des sources

Il est clair que la navigation dans les sources et leur historique via Git n’est pas aisé. De plus, la ligne de commande peut vite s’avérer fastidieux (pour les reviewers de code par exemple).
Stash vous permettra d’avoir rapidement les idées claires sur l’évolution des sources de votre projet, avec différentes vues de vos fichiers :

  • « Source view » : permet de visualiser les sources d’un fichier sur un commit spécifique
  • « Diff to previous » : permet d’évaluer les modifications effectuées sur un fichier entre 2 commits
  • Commits : historique des commits sur un repository

Intégration JIRA

Comme vous pouvez le voir dans les précédents screenshots, il est possible lier Stash avec votre instance JIRA afin de tracer vos développements.

En effet, que vous soyez en train de réaliser une session de développements d’évolutions sur un produits, ou bien que vous traitiez un bug en urgence sur un projet, si ces tâches sont listées sous forme de tickets dans votre instance JIRA, il est très simple de lier les commits à ces tickets.
De cette façon, les tickets liés à un commit seront listés dans Stash, et inversement dans JIRA vous pourrez trouver dans l’onglet « Source » d’un ticket, tous les commits associés. Un gain de temps énorme pour la traçabilité de vos développements !

Environnement d’installation

Du fait que Stash est un outil Atlassian, et est donc basé sur la même architecture que ses ainés comme JIRA et Confluence, Stash s’intègrera très facilement sur toute les plateformes existantes que vous pourriez posséder.

Conclusion

Atlassian Stash est tout neuf et n’en est qu’à ses débuts, mais a réellement un fort potentiel de développement tellement le gain apporté aux administrateurs de repositories Git est énorme.
La consultation de sources Git via une interface web ravira très certainement un bon nombre de développeurs, reviewers et chefs de projets.

Dépêchez-vous de l’essayer, une remise de 25% vous sera offerte pour toute commande de Stash avant le 30 Juin 2012 !