|
|
|
[:arrow_backward: Authentification par ligne de commande ou via un IDE](Authentification%20par%20ligne%20de%20commande%20ou%20via%20un%20IDE) | [Gestion des branches et des tags :arrow_forward:](Gestion%20des%20branches%20et%20des%20tags)
|
|
|
|
|
|
|
|
Dans Gitlab, chaque projet appartient à un groupe. Les projets et les groupes ont une notion de membres et de rôles.
|
|
|
|
|
|
|
|
[[_TOC_]]
|
|
|
|
|
|
|
|
## Gestion des groupes
|
|
|
|
|
|
|
|
### Créer un groupe à la racine
|
|
|
|
|
|
|
|
Pour créer un groupe à la racine, il suffit de cliquer sur le bouton :heavy_plus_sign: dans la barre d'outils et de sélectionner _New group_ puis _Create group_ :
|
|
|
|
|
|
|
|
![image](uploads/a3ebfba2f544ff469bde02a7495e66a6/image.png)
|
|
|
|
|
|
|
|
Un groupe est identifié par son nom et son url.
|
|
|
|
|
|
|
|
Une visibilité est associée au groupe :
|
|
|
|
|
|
|
|
- _Private_ : seuls les membres du groupes ont accès au groupe
|
|
|
|
- _Internal_ : seuls les utilisateurs authentifiés ont accès au groupe
|
|
|
|
- _Public_ : il n'est pas nécessaire d'être authentifié pour accéder au groupe
|
|
|
|
|
|
|
|
![image](uploads/7dc4b8ed208984132b8b39a02888676b/image.png)
|
|
|
|
|
|
|
|
### Créer un sous-groupe
|
|
|
|
|
|
|
|
Un groupe peut contenir d'autres groupes. Pour créer un sous-groupe, il faut d'abord se rendre dans le groupe parent, puis cliquer sur le bouton _New subgroup_ :
|
|
|
|
|
|
|
|
![image](uploads/b9dd658d6961ae3ac7736d44fc54403d/image.png)
|
|
|
|
|
|
|
|
On peut alors voir dans la page de création de ce groupe qu'il sera un sous-groupe :
|
|
|
|
|
|
|
|
![image](uploads/9353a3b68e701c76bbb54dbd6b2151da/image.png)
|
|
|
|
|
|
|
|
### Administrer un groupe ou sous-groupe
|
|
|
|
|
|
|
|
Dans la section _Settings_ > _General_ > _Advanced_, il est possible entre autre de :
|
|
|
|
|
|
|
|
- déplacer vers un autre groupe parent
|
|
|
|
- supprimer
|
|
|
|
|
|
|
|
## Gestion des projets
|
|
|
|
|
|
|
|
### Créer un projet
|
|
|
|
|
|
|
|
La création d'un projet peut se faire _via_ le bouton :heavy_plus_sign: puis _New project/repository_, ou en cliquant sur le bouton _New project_ dans un groupe ou sous-groupe.
|
|
|
|
|
|
|
|
Il est possible de créer un projet vierge, un projet à partir d'un template proposé par Gitlab, ou d'importer un projet issu d'un export de projet (par exemple d'une autre instance de Gitlab).
|
|
|
|
|
|
|
|
Lors de la création d'un projet vierge, il est possible de spécifier dans quel groupe ou sous-groupe ce projet doit être créé :
|
|
|
|
|
|
|
|
![image](uploads/33ab59b39c3bf04a3665a89555e80d04/image.png)
|
|
|
|
|
|
|
|
A noter qu'il est possible de créer un projet dans son espace personnel (le "groupe" situé sous _Users_ dans la capture d'écran ci-dessus).
|
|
|
|
|
|
|
|
Une visibilité est associée au projet:
|
|
|
|
|
|
|
|
- _Private_ : seuls les membres du groupes ont accès au projet
|
|
|
|
- _Internal_ : seuls les utilisateurs authentifiés ont accès au projet
|
|
|
|
- _Public_ : il n'est pas nécessaire d'être authentifié pour accéder au projet
|
|
|
|
|
|
|
|
### Administrer un projet
|
|
|
|
|
|
|
|
Dans la section _Settings_ > _General_ > _Advanced_, il est possible entre autre de :
|
|
|
|
|
|
|
|
- exporter un projet (fichier zip pouvant être importé sur une autre instance de Gitlab)
|
|
|
|
- archiver un projet (il n'est pas supprimé, mais n'est plus visible dans les recherches et est en lecture seule)
|
|
|
|
- déplacer vers un autre groupe parent
|
|
|
|
- supprimer
|
|
|
|
|
|
|
|
## Gestion de la visibilité des groupes et projets
|
|
|
|
|
|
|
|
### Notions générales
|
|
|
|
|
|
|
|
La notion de visibilité des groupes et projets est importante pour bien définir qui a accès au projet. La visibilité d'un groupe restreint le choix des visibilités possibles pour les sous-groupes et projets de ce groupe :
|
|
|
|
| Visibilité du groupe parent | Visibilités des sous-groupes et projets de ce groupe parent |
|
|
|
|
|-----------------------------|-------------------------------------------------------------|
|
|
|
|
| _Public_ | _Public_, _Internal_, _Private_ |
|
|
|
|
| _Internal_ | _Internal, Private_ |
|
|
|
|
| _Private_ | _Private_ |
|
|
|
|
|
|
|
|
Il est possible de modifier la visibilité d'un groupe ou d'un projet :
|
|
|
|
|
|
|
|
- Pour un groupe, aller dans _Settings_ > _General_ > _Naming, visibility_ puis sélectionner la nouvelle visibilité.
|
|
|
|
|
|
|
|
![image](uploads/f54f28ac34ac385549c6ceee3213362a/image.png)
|
|
|
|
|
|
|
|
A noter qu'il n'est pas possible de passer à une visibilité plus restreinte si un élément a une visibilité plus large. Par exemple, si un groupe de visibilité _Internal_ possède un projet avec une visibilité _Internal_, alors il n'est pas possible de passer la visibilité du groupe à _Private_ (ce qui serait conflictuel avec la visibilité du projet)
|
|
|
|
|
|
|
|
- Pour un projet, aller dans _Settings_ > _General_ > _Visibility, project features, permissions_ puis sélectionner la nouvelle visibilité :
|
|
|
|
|
|
|
|
![image](uploads/7cc5d2b912f2878844982ffa4a05a017/image.png)
|
|
|
|
|
|
|
|
A noter qu'il n'est pas possible de sélectionner une visibilité pour un projet plus large que la visibilité du groupe le contenant. Par exemple, si un groupe de visibilité _Internal_ possède un projet, alors il n'est pas possibilité de passer la visibilité de ce projet à _Public_.
|
|
|
|
|
|
|
|
### Cas particulier pour les projets _Internal_
|
|
|
|
|
|
|
|
Quand un projet est _Internal_, les utilisateurs authentifiés peuvent accéder au projet, mais ne peuvent pas y écrire. Si par exemple un utilisateur tente de modifier un fichier avec le bouton _Edit_ ou _Web IDE_, il a ce message d'erreur :
|
|
|
|
|
|
|
|
![image](uploads/a3cb0b58b8fe94b59ddbf9bd37f05502/image.png)
|
|
|
|
|
|
|
|
Cependant, si la case _Users can request access_ est cochée dans le choix de la visibilité _Internal_ :
|
|
|
|
|
|
|
|
![image](uploads/f12056c2779f26802b22b9afe7820659/image.png)
|
|
|
|
|
|
|
|
L'utilisateur peut alors demander l'accès à ce projet _Internal_ en cliquant sur le lien _Request Access_ à côté de l'identifiant du projet :
|
|
|
|
|
|
|
|
![image](uploads/935d3091ee675e9b811c44a31d4e3c9b/image.png)
|
|
|
|
|
|
|
|
Le message suivant s'affiche alors :
|
|
|
|
|
|
|
|
![image](uploads/43acaf18ee187f8b98045f93cffceaf2/image.png)
|
|
|
|
|
|
|
|
Comme indiqué dans la [documentation de Gitlab](https://docs.gitlab.com/ee/user/project/members/#request-access-to-a-project), les _Maintainers_ les plus récemment actifs sont notifiés.
|
|
|
|
|
|
|
|
Un _Maintainer_ peut alors valider ou refuser la demande en se rendant dans la liste des membres du projet, onglet _Access requests_ :
|
|
|
|
|
|
|
|
![image](uploads/1b8051e6a675b02e32fc44fd46091b2a/image.png)
|
|
|
|
|
|
|
|
## Gestion des membres
|
|
|
|
|
|
|
|
Il est possible d'affecter des membres à un groupe, sous-groupe ou projet. Être membre d'un groupe ou sous-groupe implique automatiquement le fait d'être membre des sous-groupes ou projets.
|
|
|
|
|
|
|
|
Par exemple, considérons les groupes, sous-groupes et projets suivants :
|
|
|
|
|
|
|
|
```plaintext
|
|
|
|
G1
|
|
|
|
|- G2
|
|
|
|
| `- P1
|
|
|
|
`- P2
|
|
|
|
```
|
|
|
|
|
|
|
|
- Être membre de G1 implique être membre de G2, P1 et P2
|
|
|
|
- Être membre de G2 implique être membre de P1
|
|
|
|
- Il est possible d'être membre uniquement de P1 ou P2
|
|
|
|
|
|
|
|
### Liste des membres
|
|
|
|
|
|
|
|
Les membres d'un groupe (ou sous-groupe) sont accessibles dans le menu _Group information_ > _Members_.
|
|
|
|
|
|
|
|
![image](uploads/8c79cbbb33b3128438c913ca64faf17f/image.png)
|
|
|
|
|
|
|
|
Pour un projet, ils sont accessibles dans _Project information_ > _Members_.
|
|
|
|
|
|
|
|
![image](uploads/359647ad97b7111214af02fa94428370/image.png)
|
|
|
|
|
|
|
|
Dans les deux cas, la liste des membres est disponible en bas de la page, avec les informations suivantes :
|
|
|
|
|
|
|
|
- _Account_ : compte utilisateur du membre
|
|
|
|
- _Source_ : permet de savoir si le membre est présent car il a été ajouté explicitement sur ce groupe ou projet, ou s'il est présent car il est membre d'un groupe parent (et si oui, quel groupe)
|
|
|
|
- _Access granted_ : que le membre a été ajouté
|
|
|
|
- _Max role_ : rôle du membre dans ce groupe ou projet
|
|
|
|
- _Expiration_ : date d'expiration de l'appartenance de ce membre à ce groupe ou projet
|
|
|
|
|
|
|
|
![image](uploads/7347d590b5c181155f7974b9a7102af5/image.png)
|
|
|
|
|
|
|
|
Il existe aussi une liste de groupes dont les membres sont ajoutés à ce groupe ou projet. Pour les visualiser, il faut sélectionner l'onglet _Groups_ :
|
|
|
|
|
|
|
|
![image](uploads/dee89af543e39aeb34f9bb28a05153fe/image.png)
|
|
|
|
|
|
|
|
### Ajouter des membres
|
|
|
|
|
|
|
|
Pour ajouter des membres, il faut que les utilisateurs aient déjà un compte dans Gitlab. Cela signifie qu'ils doivent s'être authentifié au moins une fois pour que leur compte soit créé.
|
|
|
|
|
|
|
|
Il est possible de sélectionner plusieurs comptes à ajouter en même temps :
|
|
|
|
|
|
|
|
![image](uploads/d1788723df8c2fc9a14989a6e97800d9/image.png)
|
|
|
|
|
|
|
|
Il est également possible d'ajouter les membres d'un groupe existant à un groupe ou projet. Pour cela, il faut aller dans l'onglet _Invite group_ :
|
|
|
|
|
|
|
|
![image](uploads/ec28d1e28ac17217705d0df117e8cbb1/image.png)
|
|
|
|
|
|
|
|
### Restreindre les droits
|
|
|
|
|
|
|
|
Un utilisateur peut donc être membre d'un groupe ou projet, car il est membre d'un groupe parent.
|
|
|
|
|
|
|
|
**Il n'est pas possible de restreindre les droits**. On ne peut qu'étendre les droits.
|
|
|
|
|
|
|
|
Par exemple, l'utilisateur _Demo user 1_ est membre de _Groupe Test_ avec le rôle _Developer_. Il donc aussi membre de _Projet Test_, projet appartenant au groupe _Groupe Test_.
|
|
|
|
|
|
|
|
Il est alors possible d'élargir les droits de _Demo user 1_ dans _Projet Test_. Pour cela, il faut aller dans le projet et faire comme si on ajouter un nouveau membre en sélectionnant _Demo user 1_ :
|
|
|
|
|
|
|
|
![image](uploads/0a56199b2177324cabd3f11c066e3071/image.png)
|
|
|
|
|
|
|
|
Si on sélectionne un rôle plus restreint, comme par exemple _Guest_ dans notre cas, alors on a cette erreur :
|
|
|
|
|
|
|
|
![image](uploads/76d8a1367b320f6dc8d2567aa17790fc/image.png)
|
|
|
|
|
|
|
|
Par contre, il est possible de donner un rôle plus large, comme _Maintainer_ :
|
|
|
|
|
|
|
|
![image](uploads/f30aa46e8460479e931db47689e5b053/image.png)
|
|
|
|
|
|
|
|
Il apparait alors dans la liste des membres avec le rôle sélectionné, et en tant que _Direct member_.
|
|
|
|
|
|
|
|
![image](uploads/5c6690a0e016f9f4961d0e1214951652/image.png)
|
|
|
|
|
|
|
|
### Supprimer des membres
|
|
|
|
|
|
|
|
Il suffit de se rendre dans le projet ou groupe dans lequel le membre a été ajouté (regarder la colonne _Source_ du tableau des membres si nécessaire, puis cliquer sur le bouton _Remove user_ :
|
|
|
|
|
|
|
|
![image](uploads/2239dc89d4070b2acdd5a4e32cd657cd/image.png)
|
|
|
|
|
|
|
|
A noter que si le rôle de cet utilisateur a été étendu (c.f. paragraphe précédent), alors il n'est pas supprimé du projet, il retrouve simplement le rôle du groupe parent dont il est membre.
|
|
|
|
|
|
|
|
## Organisation des groupes, sous-groupes et projets
|
|
|
|
|
|
|
|
Le découpage en groupes, sous-groupes et projets permet de cloisonner et partager les droits d'accès aux différents projets. Par exemple, il est intéressant de mettre tous les projets d'une même équipe dans le même groupe, ce qui permet d'ajouter les utilisateurs à ce groupe uniquement pour leur donner accès à tous les projets.
|
|
|
|
|
|
|
|
On peut avoir une arborescence de groupes et sous-groupes, avec par exemple des membres _Reporter_ dans les groupes de haut niveau afin qu'ils aient une vision en lecture à tous les sous-projets, puis, au cas par cas, des droits plus large (_Developer_, _Maintainer_) sur certains sous-groupes ou projets.
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
[:arrow_backward: Authentification par ligne de commande ou via un IDE](Authentification%20par%20ligne%20de%20commande%20ou%20via%20un%20IDE) | [Gestion des branches et des tags :arrow_forward:](Gestion%20des%20branches%20et%20des%20tags) |
|
|
|
\ No newline at end of file |