Back to Gitlabhq

API des invitations

doc-locale/fr-fr/api/invitations.md

19.3.08.9 KB
Original Source

{{< details >}}

  • Édition : Gratuite, GitLab Premium, GitLab Ultimate
  • Offre : GitLab.com, GitLab Self-Managed, GitLab Dedicated

{{< /details >}}

Utilisez cette API pour gérer les invitations et ajouter des utilisateurs à un groupe ou à un projet.

Ajouter un membre à un groupe ou à un projet {#add-a-member-to-a-group-or-project}

Ajoute un nouveau membre. Vous pouvez spécifier un ID utilisateur ou inviter un utilisateur par e-mail.

Prérequis :

plaintext
POST /groups/:id/invitations
POST /projects/:id/invitations
AttributTypeObligatoireDescription
identier ou chaîne de caractèresouiL'ID ou le chemin encodé par URL du projet ou du groupe
emailstringoui (si user_id n'est pas fourni)L'e-mail du nouveau membre ou plusieurs e-mails séparés par des virgules.
user_identier ou chaîne de caractèresoui (si email n'est pas fourni)L'ID du nouveau membre ou plusieurs ID séparés par des virgules.
access_levelintegerouiUn niveau d'accès valide. Valeurs possibles : 0 (Aucun accès), 5 (Accès minimum), 10 (Guest), 15 (Planificateur), 20 (Reporter), 25 (Responsable sécurité), 30 (Developer), 40 (Maintainer) ou 50 (Owner). Par défaut : 30.
expires_atstringnonUne chaîne de date au format YEAR-MONTH-DAY
invite_sourcestringnonLa source de l'invitation qui lance le processus de création de membre.
member_role_idintegernonAttribue le nouveau membre au rôle personnalisé fourni. (Introduit) dans GitLab 16.6. Ultimate uniquement.
shell
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/invitations" \
  --data "[email protected]&user_id=1&access_level=30"
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/invitations" \
  --data "[email protected]&user_id=1&access_level=30"

Exemples de réponses :

Lorsque tous les e-mails ont été envoyés avec succès :

json
{  "status":  "success"  }

Lorsque des erreurs se sont produites lors de l'envoi de l'e-mail :

json
{
  "status": "error",
  "message": {
               "[email protected]": "Invite email has already been taken",
               "[email protected]": "User already exists in source",
               "test_username": "Access level is not included in the list"
             }
}

Pour activer Manage non-billable promotions, vous devez d'abord activer le paramètre d'application enable_member_promotion_management.

Exemple de réponse :

json
{
  "queued_users": {
    "username_1": "Request queued for administrator approval."
  },
  "status": "success"
}

Lister toutes les invitations en attente pour un groupe ou un projet {#list-all-pending-invitations-for-a-group-or-project}

Liste toutes les invitations en attente visibles par l'utilisateur authentifié. Renvoie les invitations aux membres directs uniquement, et non via les groupes d'ancêtres hérités.

Cette fonction utilise les paramètres de pagination page et per_page pour restreindre la liste des membres.

plaintext
GET /groups/:id/invitations
GET /projects/:id/invitations
AttributTypeObligatoireDescription
identier ou chaîne de caractèresouiL'ID ou le chemin encodé par URL du projet ou du groupe
pageintegernonPage à récupérer
per_pageintegernonNombre d'invitations de membres à retourner par page
querystringnonUne chaîne de requête pour rechercher des membres invités par e-mail d'invitation. Le texte de la requête doit correspondre exactement à l'adresse e-mail. Lorsqu'elle est vide, retourne toutes les invitations.
shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/:id/[email protected]"
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/[email protected]"

Exemple de réponse :

json
 [
   {
     "id": 1,
     "invite_email": "[email protected]",
     "created_at": "2020-10-22T14:13:35Z",
     "access_level": 30,
     "expires_at": "2020-11-22T14:13:35Z",
     "user_name": "Raymond Smith",
     "created_by_name": "Administrator"
   },
]

Mettre à jour une invitation à un groupe ou à un projet {#update-an-invitation-to-a-group-or-project}

Met à jour une invitation en attente à un groupe ou à un projet.

plaintext
PUT /groups/:id/invitations/:email
PUT /projects/:id/invitations/:email
AttributTypeObligatoireDescription
identier ou chaîne de caractèresouiL'ID ou le chemin encodé par URL du projet ou du groupe.
emailstringouiL'adresse e-mail à laquelle l'invitation a été précédemment envoyée.
access_levelintegernonUn niveau d'accès valide. Valeurs possibles : 0 (Aucun accès), 5 (Accès minimum), 10 (Guest), 15 (Planificateur), 20 (Reporter), 25 (Responsable sécurité), 30 (Developer), 40 (Maintainer) ou 50 (Owner). Par défaut : 30.
expires_atstringnonUne chaîne de date au format ISO 8601 (YYYY-MM-DDTHH:MM:SSZ).
shell
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/55/invitations/[email protected]?access_level=40"
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/55/invitations/[email protected]?access_level=40"

Exemple de réponse :

json
{
  "expires_at": "2012-10-22T14:13:35Z",
  "access_level": 40,
}

Supprimer une invitation à un groupe ou à un projet {#delete-an-invitation-to-a-group-or-project}

Supprime une invitation en attente à l'adresse e-mail spécifiée.

plaintext
DELETE /groups/:id/invitations/:email
DELETE /projects/:id/invitations/:email
AttributTypeObligatoireDescription
identier ou chaîne de caractèresouiL'ID ou le chemin encodé par URL du projet ou du groupe
emailstringouiL'adresse e-mail à laquelle l'invitation a été précédemment envoyée
shell
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/55/invitations/[email protected]"
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/55/invitations/[email protected]"
  • Retourne 204 et aucun contenu en cas de succès.
  • Retourne 403 forbidden si non autorisé à supprimer l'invitation.
  • Retourne 404 not found si autorisé et qu'aucune invitation n'est trouvée pour cette adresse e-mail.
  • Retourne 409 si la requête était valide mais que l'invitation n'a pas pu être supprimée.