1. Jira

Jira est maintenant un système de gestion de projets développé par Atlassian.

jira logo

1.1. Création d’un projet

Se connecter (ou créer un compte) :

jira compte debut

Puis démarrer la création d’un nouveau projet :

jira creer projet 1

On choisit le modèle Kanban :

jira creer projet 2a

jira creer projet 2b

Puis le type de projet :

jira creer projet 3

On précise le nom du projet (et sa clé) :

jira creer projet 4

On connecte le projet à Bitbucket (et éventuellement Confluence) :

jira creer projet 5

Il est possible d’intégrer GitHub (ou GitLab) à la place de Bitbucket.

jira creer projet 6

1.2. Accès à un projet Kanban

La barre latérale :

jira creer projet barre laterale

La vue du tableau :

jira creer projet tableau kanban

Les informations sur le projet :

jira creer projet informations

Les différents types de tickets :

jira creer projet types tickets

Le workflow par défaut :

jira creer projet workflow defaut

Il est possible d’automatiser le flux :

jira tvaira automation 1

jira tvaira automation 2

1.3. Intégration

Jira est capable de se connecter à des outils de développement compatibles pour offrir des fonctionnalités intéressantes.

On utilisera soit :

  • Bitbucket Cloud

jira creer projet code bitbucket

  • GitHub

jira creer projet code github

Smart Commits

Il est possible d’utiliser des messages de « commit intelligent » (Smart Commits) pour faire le lien avec Jira à l’aide de commandes spéciales dans vos messages de validation :

  • commenter (#comment <commentaires>)

  • enregistrer les informations de suivi du temps (#time 1w 2d 4h 30m)

  • faire passer les tickets à n’importe quel statut (par exemple « Résolu ») défini dans le flux de travail du projet Jira (#close)

Au minimum, il faut inclure la clé du ticket au début du message de commit pour faire lien avec Jira (Exemple : git commit -m "JRA-123 <commit message>").

Liens :

2. Bitbucket Cloud

Bitbucket est un service web d’hébergement et de gestion de développement logiciel utilisant le logiciel de gestion de versions Git. Bitbucket est gratuit pour les particuliers et les petites équipes comptant jusqu’à 5 utilisateurs, avec des référentiels publics et privés illimités.

bitbucket logo

L’accès initial à Bitbucket :

jira creer projet bitbucket

On clone le dépôt :

$ git clone https://btssn-avignon-admin@bitbucket.org/btssn-avignon/miniprojet1-team1.git
Clonage dans 'miniprojet1-team1'...
Password for 'https://btssn-avignon-admin@bitbucket.org':
warning: Vous semblez avoir cloné un dépôt vide.

$ cd miniprojet1-team1/

$ git status
Sur la branche master

Aucun commit

rien à valider (créez/copiez des fichiers et utilisez "git add" pour les suivre)

$ git remote -v
origin	https://btssn-avignon-admin@bitbucket.org/btssn-avignon/miniprojet1-team1.git (fetch)
origin	https://btssn-avignon-admin@bitbucket.org/btssn-avignon/miniprojet1-team1.git (push)

$ git push -u origin master

Si le dépôt local existe déjà, on peut le relier au dépôt distant :

$ git remote add origin https://btssn-avignon-admin@bitbucket.org/btssn-avignon/miniprojet1-team1.git

Si besoin, on renomme la branche master en main (l’option -M est un raccourci pour les options --move et --force) :

$ git branch -M main

On peut configurer Git localement :

$ git config --local user.name "vaira"
$ git config --local user.email "vaira@lasalle84.org"

$ cat .git/config
...

On peut installer les extensions git-flow :

$ sudo apt install git-flow

$ git flow help
usage: git flow <subcommand>

Available subcommands are:
   init      Initialize a new git repo with support for the branching model.
   feature   Manage your feature branches.
   bugfix    Manage your bugfix branches.
   release   Manage your release branches.
   hotfix    Manage your hotfix branches.
   support   Manage your support branches.
   version   Shows version information.
   config    Manage your git-flow configuration.
   log       Show log deviating from base branch.

Try 'git flow <subcommand> help' for details.

On initialise le dépôt avec la prise en charge du modèle de branchement Gitflow :

$ git flow init
No branches exist yet. Base branches must be created now.
Branch name for production releases: [master]
Branch name for "next release" development: [develop]

How to name your supporting branch prefixes?
Feature branches? [feature/]
Bugfix branches? [bugfix/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []
Hooks and filters directory? [$HOME/jira/miniprojet1-team1/.git/hooks]

$ git push -u origin develop
Décompte des objets: 2, fait.
Écriture des objets: 100% (2/2), 160 bytes | 160.00 KiB/s, fait.
Total 2 (delta 0), reused 0 (delta 0)
To https://bitbucket.org/btssn-avignon/miniprojet1-team1.git
 * [new branch]      develop -> develop

$ git ls-remote
From https://btssn-avignon-admin@bitbucket.org/btssn-avignon/miniprojet1-team1.git
ddc49adcf578dea85148ff5aa146033b6162e8a6	HEAD
ddc49adcf578dea85148ff5aa146033b6162e8a6	refs/heads/develop
ddc49adcf578dea85148ff5aa146033b6162e8a6	refs/heads/master

Dans les détails du projet, on définit la branche principale (ici master) :

bitbucket details projet

bitbucket branch master

Dans les modèles de branches, on définit la branche de développement (ici develop) :

bitbucket branch develop

On obtient :

bitbucket branches flow

3. GitHub

github logo

Liens :

jira tvaira integrer github 1

jira tvaira integrer github 2

jira tvaira integrer github 3

jira tvaira integrer github 4

jira tvaira integrer github 5

jira tvaira integrer github 6

jira tvaira integrer github 7

jira tvaira integrer github 8

On obtient :

jira tvaira gerer apps

Configuration :

jira creer projet github configuration

jira creer projet code github depot

jira creer projet code github flow

On clone le dépôt :

$ git clone git@github.com:btssn-lasalle84/mp1-team0.git

$ cd mp1-team0/

$ echo "# mp1-team0" >> README.md
$ git add README.md
$ git commit -m "Ajout README.md"

$ git branch -M main

$ git push -u origin main

On installe des extensions git-flow :

$ sudo apt install git-flow

On initialise le dépôt Git avec la prise en charge du modèle de branchement Gitflow :

$ git flow init

Which branch should be used for bringing forth production releases?
   - main
Branch name for production releases: [main]
Branch name for "next release" development: [develop]

How to name your supporting branch prefixes?
Feature branches? [feature/]
Bugfix branches? [bugfix/]
Release branches? [release/]
Hotfix branches? [hotfix/]
Support branches? [support/]
Version tag prefix? []
Hooks and filters directory? [/home/tv/Documents/jira/mp1-team0/.git/hooks]

$ git push -u origin develop
Total 0 (delta 0), reused 0 (delta 0)
remote:
remote: Create a pull request for 'develop' on GitHub by visiting:
remote:      https://github.com/btssn-lasalle84/mp1-team0/pull/new/develop
remote:
To github.com:btssn-lasalle84/mp1-team0.git
 * [new branch]      develop -> develop
La branche 'develop' est paramétrée pour suivre la branche distante 'develop' depuis 'origin'.

4. Visual Studio Code

Visual Studio Code (un des IDE les plus utilisés actuellement) intégre la gestion du contrôle de source (SCM) et inclut par défaut la prise en charge de Git.

Installation de Visual Studio Code :

vscode tp

Liens :

Le contrôle de source (SCM) :

vscode scm

Il existe de nombreuses extensions pour faciliter l’utilisation de Git dont Git Extension Pack qui comprend :

Et quelques autres :

Et pour gitflow :

vscode extension gitflow

Et pour Jira/Bitbucket :

vscode extension jira bitbucket

vscode extension jira settings

5. Les outils graphiques

Il existe de nombreuses interfaces graphiques permettant de gérer des projets Git.

En standard :

  • une interface web avec GitWeb

  • une interface de visualisation détaillée et graphique avec gitk

Il existe également de nombreuses autres applications :

  • qgit propose des outils supplémentaires par rapport à gitk ;

  • Giggle : une interface en GTK+ ;

  • GitExtensions : un client Git graphique pour Windows © ;

  • TortoiseGit : logiciel libre pour Windows reprenant les éléments d’interface de TortoiseSVN (un classique) ;

  • …​

  • SourceTree : un logiciel propriétaire gratuit pour Windows © et macOS © édité par Atlassian ;

SourceTree

  • GitEye : un client graphique pour Windows ©, macOS © et Linux

$ cd ~/Téléchargements/
$ wget -c https://www.collab.net/sites/default/files/downloads/GitEye-2.2.0-linux.x86_64.zip

$ mkdir /tmp/GitEye
$ unzip -d /tmp/GitEye ~/Téléchargements/GitEye-2.2.0-linux.x86_64.zip

$ sudo chown -R root:root /tmp/GitEye
$ sudo mv /tmp/GitEye /opt/GitEye
$ sudo ln -s /opt/GitEye/GitEye /usr/local/bin/GitEye
$ GitEye

GitEye

6. Ressources