fonctionnalitesGitlab.tex 6.22 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
\begin{frame}
	\frametitle{Qu'est-ce qu'une forge?}
  \begin{block}{Forge}
		C'est un logiciel complémentaire à Git qui, en plus de gérer les versions, propose:
    \begin{itemize}
      \item L'hébergement de repos
      \item La gestion des bugs, de la documentation, des tâches à accomplir...
      \item La protection du repo (mot de passe et clés, droits de l'utilisateur...)
      \item Un réseau social permettant à une communauté d'interagir avec le repo
    \end{itemize}
	\end{block}
  L'UTC héberge une instance de la forge \textbf{Gitlab}. Il existe aussi Github, qui est une énorme forge centralisée.
\end{frame}

15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
\begin{frame}
\frametitle{Actions sur des commits}
Les commits étant constitués de diffs, on peut commenter ces diffs:
\begin{minipage}[t]{.5\linewidth}
Cliquer sur un commit:
	\begin{figure}[h]
		\centering
		\includegraphics[width=100px]{imgs/gitlab_commits_history.png}
	\end{figure}
	Les diffs s'affichent. Cliquer sur un numéro de ligne et commenter.
\end{minipage}%
\begin{minipage}[t]{.5\linewidth}
	\begin{figure}[h]
		\centering
		\includegraphics[width=120px]{imgs/gitlab_comment_diff.png} \\ \includegraphics[width=200px]{imgs/gitlab_comment_done.png}
	\end{figure}
\end{minipage}

\end{frame}

35
36
37
38
39
40
41
42
43
44
45
\begin{frame}
  \frametitle{Les issues: demander des améliorations}
  Pour chaque repo, Gitlab tient une liste d'issues. Une issue est un problème ou une demande sur le code. Tout le monde peut déposer des issues mais on peut changer ce comportement.
  \begin{block}{}
		\centering
		\enquote{A quoi ça sert de faire ça sur Gitlab? Je peux très bien tenir la liste des choses à faire sur mon 3310!}
	\end{block}
  Il y a plusieurs intérêts, par exemple:
  \begin{itemize}
		\item On peut commenter des fichiers et des diff sans les modifier
		\item Cela facilite la communication entre les différents développeurs et permet d'assurer un suivi
46
47
		\item On peut assigner (confier) une issue à un développeur
		\item On peut référencer les issues dans les messages de commit.
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
  \end{itemize}
\end{frame}

\begin{frame}
	\frametitle{Les issues: la pratique}
	Pour créer une issue, rien de plus simple: on clique sur issues puis sur new.

	\begin{minipage}[t]{.5\linewidth}
		\begin{figure}[h]
			\centering
			\includegraphics[width=150px]{imgs/gitlab_sidebar.png}
		\end{figure}
	\end{minipage}%
	\begin{minipage}[t]{.5\linewidth}
		\begin{figure}[h]
			\centering
			\includegraphics[width=90px]{imgs/gitlab_new_issue.png} \\
			\includegraphics[width=150px]{imgs/gitlab_fill_issue.png}
		\end{figure}
	\end{minipage}
	Une méthodologie de travail possible est de lister toutes les tâches à réaliser sous la forme d'issues. On peut aussi s'en servir pour faire remonter les bugs trouvés par les utilisateurs.
\end{frame}

71
72
73
74
75
76
77
\begin{frame}{Les issues - vision globale}
	\includegraphics[width=\linewidth]{imgs/gitlab_issues.png}
\end{frame}

\begin{frame}[fragile]{Les issues - tableau}
	Il est possible de gérer les issues sous une forme de tableau Kanban (ToDoList) :

78
79
	\begin{figure}[h]
		\centering
80
		\includegraphics[scale=.2]{imgs/gitlab_issues_tableau.png}
81
	\end{figure}
82
83
84
85

	\verb+https://fr.wikipedia.org/wiki/Tableau_kanban+
\end{frame}

86
87
88
89
90
91
92
93
94
95
96
\begin{frame}{Les issues : gérer son projet}
	Les issues ne sont pas seulement une façon de remonter des problèmes !
	Elles peuvent également être utilisées pour gérer son projet :
	\begin{itemize}
		\item Chaque tâche identifiée est matérialisée par une issue ;
		\item Les issues sont assignées à chaque collaborateur ;
		\item Les issues peuvent servir d'espace de discussion sur les points de travail ;
		\item Une fois les travaux terminés, les issues sont fermées.
	\end{itemize}
\end{frame}

97
98
99
\begin{frame}{Les jalons}
	Les jalons permettent de regrouper les issues et de visualiser l'avancée globale du projet.

100
101
	\begin{figure}[h]
		\centering
102
		\includegraphics[scale=.3]{imgs/gitlab_milestones.png}
103
104
	\end{figure}

105
	A la fin du jalon, une \emph{merge request} (ça arrive juste après) peut être ouverte.
106
107
108
109
110
111
\end{frame}

\begin{frame}
\frametitle{Les merge request}
Les merge request permettent à des développeurs tiers (n'ayant pas d'accès en écriture au repo) de proposer leurs modifications. \\

112
113
114
Ils peuvent ainsi travailler sur une autre branche (voire une autre remote) puis demander aux propriétaires de merge leurs commits. \\

Certaines branches peuvent être \textbf{protégées}: seuls certains utilisateurs peuvent y écrire. \\
115
116
117
118
119
120
121
122
123
124
\end{frame}
\begin{frame}
\frametitle{Les merge request}
Pour faire une merge request, il suffit de sélectionner les deux branches dans l'interface graphique. Gitlab peut même prédir si le `git merge` fonctionnera automatiquement ou s'il y aura des conflits. \\

\begin{figure}[h]
	\centering
	\includegraphics[width=270px]{imgs/gitlab_branches.png} \\
	\includegraphics[width=200px]{imgs/gitlab_merge_request.png} \\
\end{figure}
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
\end{frame}

\begin{frame}
\frametitle{Gestion des droits}
 \framesubtitle{Visibilité}
 Quand on crée un repo, on choisit sa visibilité. Il y en a 3 sur gitlab: Private, Internal et Public.
 \includegraphics[width=220px]{imgs/gitlab_create_projet.png}
\end{frame}

\begin{frame}
\frametitle{Gestion des droits}
 \framesubtitle{Rôles}
 On peut ensuite ajouter des membres habilités à écrire dans le repo via l'onglet members. A l'UTC, on peut trouver des personnes par nom ou login CAS.\\
\includegraphics[width=220px]{imgs/gitlab_add_member.png} \\
 Chaque membre a un rôle parmi les suivants :
 \begin{itemize}
 	\item \textbf{Guest} : peut écrire des commentaires et des issues
	\item \textbf{Reporter} : peut lire le code et modérer les commentaires et issues
	\item \textbf{Developer} : peut créer des branches et y push du code.
	\item \textbf{Maintainer} : peut gérer les branches
	\item \textbf{Owner} : toutes les autres permissions
 \end{itemize}
\end{frame}

\begin{frame}
\frametitle{Gestion des droits}
 \framesubtitle{Groupes}
Les projets gitlab (c'est-à-dire les repos et les infos liées à ces repos) peuvent être rangées dans des groupes et des sous-groupes. Les groupes permettent de représenter des équipes de développeurs, de segmenter leurs droits, d'organiser les repo par thématique. \newline
153

154
155
Voici un extrait de l'arborescence de Picasoft: \\
\includegraphics[width=130px]{imgs/gitlab_groups_tree.png} \\
156
\end{frame}