Git & SVN – iceScrum

Documentation Cette documentation ne s'applique qu'à iceScrum v7.
Pour un vieux serveur iceScrum R6, lisez la documentation correspondante ou migrez.

Cette documentation est seulement applicable à iceScrum v7. Si vous voulez vraiment utiliser iceScrum R6, qui sera bientôt obsolète cliquez ici.


Suivez les changements de code en associant vos commits à vos tâches et à vos stories d’utilisateur.

Principes

Cette fonctionnalité est divisée en plusieurs Apps en fonction de votre système de contrôle de version. Vous pourriez également être intéressé par la fonctionnalité d’intégration continue.

Liez vos commits et tâches

Commençons par un exemple. En supposant que je sois responsable de la tâche 18 dans iceScrum nommée « Add car domain », une fois que le code est prêt à être envoyé, j’écris mon message de commit :

New car domain class

Voici comment je lie ce commit à la tâche 18 :

T18 New car domain class

La balise T18 peut être située n’importe où dans le message de commit, donc ce message a le même effet que le précédent :

New car T18 domain class

Une fois le commit envoyé, les informations relatives à celui-ci seront affichées dans les détails de la tâche 18 dans un onglet dédié :

Pour chaque commit, ces informations sont affichées :

  • Auteur: si l’auteur du commit est reconnu dans iceScrum (nom d’utilisateur, nom complet, email) alors le commit est associé à l’utilisateur iceScrum correspondant.
  • Message: les balises de tâches sont supprimées du message d’origine pour le rendre plus lisible.
  • Date: la date du commit.
  • Files: les fichiers ajoutés, supprimés et modifiés dans votre commit.

Vous pouvez référencer autant de tâches que nécessaire dans votre message de commit :

New business object: supplier T21 T22 T23

Les commits ne sont associés à une tâche que si son sprint est « En cours ».

Commits et stories

La vue Détails d’une story fournit également un onglet « Commits » qui agrège tous les commits de ses tâches.

Mettre à jour le temps restant d'une tâche

Vous pouvez optionnellement mettre à jour le temps restant de la tâche à partir de votre message de commit.

Dans cet exemple, je mets à jour le temps restant de la tâche 21 à 1 heure et demie, celui de la tâche 22 à 3 heures et comme il n’y a plus de travail sur la tâche 23, je mets à jour le temps restant à 0 :

New business object: supplier T21-1.5 T22-3 T23-0

Le temps restant est mis à jour en conséquence et la tâche 73 n’a plus de temps restant, elle est donc passée à « Fini » :

Voici les règles de mise à jour :

  • Si le nouveau temps restant est positif et que la tâche n’est pas finie, le temps restant est mis à jour en conséquence.
  • Si le nouveau temps restant n’est pas spécifié ou est positif et que la tâche est « À faire » alors la tâche est déplacée vers « En cours ».
  • Si le nouveau temps restant est 0 alors la tâche est déplacée vers « Fini ».

Liez un repository de code à plusieurs projets iceScrum

À partir de iceScrum 7.27, il est possible de lier les commits d’un repository de code à plusieurs projets iceScrum.

Cette documentation illustre principalement le cas simple où il n’y a qu’un seul projet et que le projet est fourni une fois pour toutes via l’URL configurée pour communiquer avec iceScrum. Ainsi, pour plusieurs projets, la première étape consiste à supprimer cette partie projet (c’est-à-dire /project/$project) de l’URL dans tous les exemples fournis dans cette documentation.

Si vous utilisez les scripts Git ou SVN fournis, vous devrez modifier le code manuellement afin que l’URL générée ne contienne pas cette partie. Sinon, adaptez simplement l’URL saisie.

Par exemple, pour Gitlab, au lieu de :
/ws/project/MYPROJECTKEY/commit/gitlab

Utilisez :
/ws/commit/gitlab

Cependant, iceScrum doit tout de même savoir à quel projet attacher un commit. Ainsi, toutes les balises de tâches doivent être précédées de la clé du projet auquel elles appartiennent:

New car MYPROJECTKEY-T18 domain class

Git

Si vous utilisez GitHub ou GitLab, vous pouvez ignorer cette section et passer directement à la section correspondante.

D’abord, activez l’App Git sur votre projet.

Pour connecter votre référentiel Git au projet iceScrum correspondant vous devez ajouter un script post-réception dans le répertoire YOUR-REPO/.git/hooks/.

Vous pouvez écrire votre propre script mais nous vous recommandons d’utiliser celui-ci : post-receive. Ce script se connecte à pushes reçu par un référentiel Git.

Cela nécessite Ruby et Rubygems (grit et json gems):

$ sudo apt-get install ruby-full
$ sudo apt-get install rubygems
$ sudo gem install grit
$ sudo gem install json

Donnez-lui les autorisations d’exécution :

$ chmod +x post-receive

Ensuite, configurez la connexion à iceScrum en utilisant la commande git config dans votre repository :

$ git config icescrum.url "http://www.example.com/icescrum/"
$ git config icescrum.project "MYFIRSTPROJ"
$ git config icescrum.accesstoken "changeto112323435yourtoken"

Learn to generate an iceScrum API token.

Vous pouvez configurer l’URL Git de manière optionnelle si vous utilisez un outil Web :

$ git config icescrum.giturl "http://localhost:3546/gitweb/"

Cet exemple définit uniquement la configuration pour le référentiel actuel (les paramètres sont écrits dans le fichier .git/config). Si vous souhaitez les appliquer à tous les référentiels de l’utilisateur actuel, utilisez l’option globale (les paramètres globaux sont écrits dans le fichier ~/.gitconfig).

SVN

Tout d’abord, activez l’App SVN sur votre projet iceScrum.

Pour connecter votre référentiel SVN au projet iceScrum correspondant, vous devez ajouter un script post-commit sur votre serveur, dans le répertoire YOUR-REPO/hooks/.

Vous pouvez écrire votre propre script mais nous vous recommandons d’utiliser celui-ci: post-commit

Ce script nécessite Ruby et un Rubygem (json) :

$ sudo apt-get install ruby-full
$ sudo apt-get install rubygems
$ sudo gem install json

Donnez-lui les autorisations d’exécution :

$ chmod +x post-commit

Puis, configurez l’accès à iceScrum en éditant le script :

icescrum_url = "http://www.example.com/icescrum/"
pkey = "MYFIRSTPROJ"
access_token = "changeto112323435yourtoken"

Learn to generate an iceScrum API token.

Vous pouvez optionnellement configurer l’URL SVN si vous utilisez un outil Web :

svnviewer_url = "http://svnviewer/svn-history/"

GitHub

Premièrement, activez l’App GitHub sur votre projet iceScrum.

Remarque: le service GitHub intégré pour iceScrum est uniquement compatible avec iceScrum R6. Pour l’intégration entre GitHub et iceScrum v7, ajoutez simplement un webhook à votre dépôt GitHub comme décrit ci-dessous.

Ajoutez un webhook à votre dépôt GitHub. Dans l’onglet «Paramètres» de votre référentiel GitHub, dans la section «Webhooks», cliquez sur «Ajouter un webhook».

Le payload URL est construit de cette façon :

$server/ws/project/$project/commit/github?icescrum-token=$access_token
  • serveur: l’URL de votre serveur iceScrum. Ou pour une instance iceScrum cloud :
    https://cloud.icescrum.com
  • projet: votre identifiant ou clé de projet iceScrum
  • access_token: token d’accès à l’API iceScrum. Apprenez à générer un token d’API iceScrum.

Exemple de payload URL pour le projet cloud PEETIC :

https://cloud.icescrum.com/ws/project/PEETIC/commit/github?icescrum-token=dad27aff397bfes32fdab987

Pour connecter un référentiel GitHub à un projet iceScrum, remplissez les champs suivants :

  • Payload URL: le payload URL que vous venez de créer.
  • Type de contenu: application/json.
  • Déclencheurs: juste l’évènement push.
  • Actif: de manière surprenante, le web hook n’est actif que si «actif» est coché.

GitLab

Il faut d’abord activer l’App GitLab sur votre projet.

Ensuite, créez un webhook GitLab déclenché sur l’évènement de push : https://docs.gitlab.com/ee/user/project/integrations/webhooks.html.

En supposant que vous avez un projet avec la clé MYPROJECTKEY, l’URL est l’URL de votre serveur iceScrum suivie de :
/ws/project/MYPROJECTKEY/commit/gitlab

Voici un exemple d’URL à configurer pour envoyer les commits GitLab sur un projet hébergé sur notre plateforme Cloud :
https://cloud.icescrum.com/ws/project/MYPROJECTKEY/commit/gitlab

A partir d’iceScrum 7.42, vous devez fournir votre Token iceScrum dans le header X-Gitlab-Token. Le token doit avoir été généré par un utilisateur iceScrum qui a accès au projet.

Visual Studio Team Services

Profitez d’une intégration complète entre iceScrum et Visual Studio Team Services avec un ensemble d’Apps iceScrum dédiées.

  • VSTS work items : Créez des stories dans iceScrum depuis les work items VSTS.
  • VSTS CI : Liez vos builds VSTS avec iceScrum.
  • VSTS code : Liez vos commits VSTS à vos tâches iceScrum.

Vous pouvez relier les commits/changesets de Visual Studio Team Service à vos tâches et stories dans iceScrum. Cela fonctionne pour les contrôles de version Git et Team Foundation Version Control.

Il y a 2 manière de configurer votre environment Visual Studio Team Service. Utilisez de préférence l’extension iceScrum.

avec l'extension iceScrum

Tout d’abord installez l’extension iceScrum pour Visual Studio Team Services depuis le market place Visual Studio.

L’extension iceScrum pour VSTS fonctionne seulement avec les serveurs sécurisés en SSL (l’url doit commencer par https). Si votre serveur n’est pas sécurisé, vous pouvez toujours intégrer les commits de VSTS dans iceScrum en utilisant un service web hook (voir la prochaine section).

Ajoutez simplement un Service Hook à votre projet VSTS. Dans l’onglet paramètre de votre projet VSTS, dans la section Service Hook cliquez sur Create Subscription.

Sélectionnez iceScrum dans la list de service et cliquez sur next.

Vous pouvez filtrez les repos et les branches dont les commits seront poussés à iceScrum.

Sur l’écran suivant on vous demande les paramètres de connexion. Construisez iceScrum API URL comme ceci :

$server/ws/project/$project/commit/vsts
  • server: L’URL de votre serveur iceScrum. Pour les instances iceScrum cloud c’est
    https://cloud.icescrum.com
  • project: ID ou clé de votre projet iceScrum

Exemple d’URL pour le projet cloud PEETIC :

https://cloud.icescrum.com/ws/project/PEETIC/commit/vsts

Vous aurez aussi besoin d’un token d’accès à l’API iceScrum. Apprenez à générer un token d’API iceScrum.

Testez, sauvegardez le web hook et voila !
Lors du test iceScrum doit renvoyer une réponse HTTP au status 204 car le commit de test fourni ne contient aucune référence à une tâche iceScrum dans son message.

avec un service web hook

Si votre serveur iceScrum est sécurisé (l’url commence par https), alors utilisez de préférence l’extension iceScrum pour configurer VSTS.

Ajoutez simplement un service Web Hook à votre projet VSTS. Dans l’onglet paramètre de votre projet VSTS, dans la section « Service Hook » cliquez sur « Create Subscription ».

Sélectionnez « Web Hooks » dans la list de service et cliquez sur « next ». Selectionnez l’event de type « Code Pushed ». Vous pouvez filtrez les repos et les branches dont les commits seront poussés à iceScrum.

Sur l’écran suivant on vous demande les paramètres de connexion. Construisez l’URL de Web Hook comme ceci :

$server/ws/project/$project/commit/vsts
  • server: L’URL de votre serveur iceScrum. Pour les instances iceScrum cloud c’est
    https://cloud.icescrum.com
  • project: ID ou clé de votre projet iceScrum

Exemple d’URL pour le projet cloud PEETIC :

https://cloud.icescrum.com/ws/project/PEETIC/commit/vsts

Vous aurez aussi besoin d’un token d’accès à l’API iceScrum. Apprenez à générer un token d’API iceScrum.

Pour connecter un projet VSTS à iceScrum, voici comment configurer le Web Hook :

  • URL: l’URL décrite ci dessus
  • HTTP headers: x-icescrum-token:$access_token
  • Basic authentication username: pas utilisé.
  • Basic authentication password: pas utilisé.
  • Resource details to send: All.
  • Messages to send: All.
  • Detailed messages to send: All.
  • RESOURCE VERSION: 1.0.

Testez, sauvegardez le web hook et voila !

Lors du test iceScrum doit renvoyer une réponse HTTP au status 204 car le commit de test fourni ne contient aucune référence à une tâche iceScrum dans son message.


Essayez gratuitement dès maintenant
Tout ce dont vous avez besoin pour gérer vos projets agiles