Back to Gitlabhq

API des rôles de membre

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

19.1.016.2 KB
Original Source

{{< details >}}

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

{{< /details >}}

{{< history >}}

{{< /history >}}

Utilisez cette API pour interagir avec les rôles de membre de vos groupes GitLab.com ou de l'ensemble de votre instance GitLab Self-Managed.

Gérer les rôles de membre d'instance {#manage-instance-member-roles}

{{< details >}}

  • Édition : Ultimate
  • Offre : GitLab Self-Managed, GitLab Dedicated

{{< /details >}}

Prérequis :

Obtenir tous les rôles de membre d'instance {#get-all-instance-member-roles}

Récupère tous les rôles de membre d'une instance.

plaintext
GET /member_roles

Exemple de requête :

shell
curl --request GET \
  --header "Authorization: Bearer <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/member_roles"

Exemple de réponse :

json
[
  {
    "id": 2,
    "name": "Instance custom role",
    "description": "Custom guest that can read code",
    "group_id": null,
    "base_access_level": 10,
    "admin_cicd_variables": false,
    "admin_compliance_framework": false,
    "admin_group_member": false,
    "admin_merge_request": false,
    "admin_push_rules": false,
    "admin_terraform_state": false,
    "admin_vulnerability": false,
    "admin_web_hook": false,
    "archive_project": false,
    "manage_deploy_tokens": false,
    "manage_group_access_tokens": false,
    "manage_merge_request_settings": false,
    "manage_project_access_tokens": false,
    "manage_security_policy_link": false,
    "read_code": true,
    "read_runners": false,
    "read_dependency": false,
    "read_vulnerability": false,
    "remove_group": false,
    "remove_project": false
  }
]

Créer un rôle de membre d'instance {#create-an-instance-member-role}

Crée un rôle de membre à l'échelle de l'instance.

plaintext
POST /member_roles

Attributs pris en charge :

AttributTypeObligatoireDescription
namestringouiLe nom du rôle de membre.
descriptionstringnonLa description du rôle de membre.
base_access_levelentierouiNiveau d'accès de base pour le rôle configuré. Les valeurs valides sont 10 (Guest), 15 (Planificateur), 20 (Reporter), 25 (Responsable sécurité), 30 (Developer), 40 (Maintainer) ou 50 (Owner).
admin_cicd_variablesbooleannonAutorisation de créer, lire, mettre à jour et supprimer des variables CI/CD.
admin_compliance_frameworkbooleannonAutorisation d'administrer les frameworks de conformité.
admin_group_memberbooleannonAutorisation d'ajouter, de supprimer et d'assigner des membres dans un groupe.
admin_merge_requestbooleannonAutorisation d'approuver des merge requests.
admin_push_rulesbooleannonAutorisation de configurer les règles de push pour les dépôts au niveau du groupe ou du projet.
admin_terraform_statebooleannonAutorisation d'administrer l'état terraform du projet.
admin_vulnerabilitybooleannonAutorisation de modifier l'objet vulnérabilité, y compris le statut et la liaison avec un ticket.
admin_web_hookbooleannonAutorisation d'administrer les webhooks.
archive_projectbooleannonAutorisation d'archiver des projets.
manage_deploy_tokensbooleannonAutorisation de gérer les jetons de déploiement.
manage_group_access_tokensbooleannonAutorisation de gérer les jetons d'accès de groupe.
manage_merge_request_settingsbooleannonAutorisation de configurer les paramètres des merge requests.
manage_project_access_tokensbooleannonAutorisation de gérer les jetons d'accès au projet.
manage_security_policy_linkbooleannonAutorisation de lier des projets de politique de sécurité.
read_codebooleannonAutorisation de lire le code du projet.
read_runnersbooleannonAutorisation de consulter les runners de projet.
read_dependencybooleannonAutorisation de lire les dépendances du projet.
read_vulnerabilitybooleannonAutorisation de lire les vulnérabilités du projet.
remove_groupbooleannonAutorisation de supprimer ou de restaurer un groupe.
remove_projectbooleannonAutorisation de supprimer un projet.

Pour plus d'informations sur les autorisations disponibles, consultez les autorisations personnalisées.

Exemple de requête :

shell
curl --request POST \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer <your_access_token>" \
  --data '{"name" : "Custom guest (instance)", "base_access_level" : 10, "read_code" : true}' \
  --url "https://gitlab.example.com/api/v4/member_roles"

Exemple de réponse :

json
{
  "id": 3,
  "name": "Custom guest (instance)",
  "group_id": null,
  "description": null,
  "base_access_level": 10,
  "admin_cicd_variables": false,
  "admin_compliance_framework": false,
  "admin_group_member": false,
  "admin_merge_request": false,
  "admin_push_rules": false,
  "admin_terraform_state": false,
  "admin_vulnerability": false,
  "admin_web_hook": false,
  "archive_project": false,
  "manage_deploy_tokens": false,
  "manage_group_access_tokens": false,
  "manage_merge_request_settings": false,
  "manage_project_access_tokens": false,
  "manage_security_policy_link": false,
  "read_code": true,
  "read_runners": false,
  "read_dependency": false,
  "read_vulnerability": false,
  "remove_group": false,
  "remove_project": false
}

Supprimer un rôle de membre d'instance {#delete-an-instance-member-role}

Supprime un rôle de membre de l'instance.

plaintext
DELETE /member_roles/:member_role_id

Attributs pris en charge :

AttributTypeObligatoireDescription
member_role_identierouiL'ID du rôle de membre.

En cas de succès, renvoie 204 et une réponse vide.

Exemple de requête :

shell
curl --request DELETE \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/member_roles/1"

Gérer les rôles de membre de groupe {#manage-group-member-roles}

{{< details >}}

  • Édition : Ultimate
  • Offre : GitLab.com

{{< /details >}}

Prérequis :

  • Vous devez avoir le rôle Owner pour le groupe.

Obtenir tous les rôles de membre de groupe {#get-all-group-member-roles}

plaintext
GET /groups/:id/member_roles

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneouiL'ID ou le chemin encodé en URL du groupe

Exemple de requête :

shell
curl --request GET \
  --header "Authorization: Bearer <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/84/member_roles"

Exemple de réponse :

json
[
  {
    "id": 2,
    "name": "Guest + read code",
    "description": "Custom guest that can read code",
    "group_id": 84,
    "base_access_level": 10,
    "admin_cicd_variables": false,
    "admin_compliance_framework": false,
    "admin_group_member": false,
    "admin_merge_request": false,
    "admin_push_rules": false,
    "admin_terraform_state": false,
    "admin_vulnerability": false,
    "admin_web_hook": false,
    "archive_project": false,
    "manage_deploy_tokens": false,
    "manage_group_access_tokens": false,
    "manage_merge_request_settings": false,
    "manage_project_access_tokens": false,
    "manage_security_policy_link": false,
    "read_code": true,
    "read_runners": false,
    "read_dependency": false,
    "read_vulnerability": false,
    "remove_group": false,
    "remove_project": false
  },
  {
    "id": 3,
    "name": "Guest + security",
    "description": "Custom guest that can read and administer security entities",
    "group_id": 84,
    "base_access_level": 10,
    "admin_cicd_variables": false,
    "admin_compliance_framework": false,
    "admin_group_member": false,
    "admin_merge_request": false,
    "admin_push_rules": false,
    "admin_terraform_state": false,
    "admin_vulnerability": true,
    "admin_web_hook": false,
    "archive_project": false,
    "manage_deploy_tokens": false,
    "manage_group_access_tokens": false,
    "manage_merge_request_settings": false,
    "manage_project_access_tokens": false,
    "manage_security_policy_link": false,
    "read_code": true,
    "read_runners": false,
    "read_dependency": true,
    "read_vulnerability": true,
    "remove_group": false,
    "remove_project": false
  }
]

Ajouter un rôle de membre à un groupe {#add-a-member-role-to-a-group}

{{< history >}}

  • Possibilité d'ajouter un nom et une description lors de la création d'un rôle personnalisé introduite dans GitLab 16.3.

{{< /history >}}

Ajoute un rôle de membre à un groupe. Vous pouvez uniquement ajouter des rôles de membre au niveau racine du groupe.

plaintext
POST /groups/:id/member_roles

Paramètres :

AttributTypeObligatoireDescription
identier ou chaîneouiL'ID ou le chemin encodé en URL du groupe.
admin_cicd_variablesbooleannonAutorisation de créer, lire, mettre à jour et supprimer des variables CI/CD.
admin_compliance_frameworkbooleannonAutorisation d'administrer les frameworks de conformité.
admin_group_memberbooleannonAutorisation d'ajouter, de supprimer et d'assigner des membres dans un groupe.
admin_merge_requestbooleannonAutorisation d'approuver des merge requests.
admin_push_rulesbooleannonAutorisation de configurer les règles de push pour les dépôts au niveau du groupe ou du projet.
admin_terraform_statebooleannonAutorisation d'administrer l'état terraform du projet.
admin_vulnerabilitybooleannonAutorisation d'administrer les vulnérabilités du projet.
admin_web_hookbooleannonAutorisation d'administrer les webhooks.
archive_projectbooleannonAutorisation d'archiver des projets.
manage_deploy_tokensbooleannonAutorisation de gérer les jetons de déploiement.
manage_group_access_tokensbooleannonAutorisation de gérer les jetons d'accès de groupe.
manage_merge_request_settingsbooleannonAutorisation de configurer les paramètres des merge requests.
manage_project_access_tokensbooleannonAutorisation de gérer les jetons d'accès au projet.
manage_security_policy_linkbooleannonAutorisation de lier des projets de politique de sécurité.
read_codebooleannonAutorisation de lire le code du projet.
read_runnersbooleannonAutorisation de consulter les runners de projet.
read_dependencybooleannonAutorisation de lire les dépendances du projet.
read_vulnerabilitybooleannonAutorisation de lire les vulnérabilités du projet.
remove_groupbooleannonAutorisation de supprimer ou de restaurer un groupe.
remove_projectbooleannonAutorisation de supprimer un projet.

Exemple de requête :

shell
curl --request POST \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer <your_access_token>" \
  --data '{"name" : "Custom guest", "base_access_level" : 10, "read_code" : true}' \
  --url "https://gitlab.example.com/api/v4/groups/84/member_roles"

Exemple de réponse :

json
{
  "id": 3,
  "name": "Custom guest",
  "description": null,
  "group_id": 84,
  "base_access_level": 10,
  "admin_cicd_variables": false,
  "admin_compliance_framework": false,
  "admin_group_member": false,
  "admin_merge_request": false,
  "admin_push_rules": false,
  "admin_terraform_state": false,
  "admin_vulnerability": false,
  "admin_web_hook": false,
  "archive_project": false,
  "manage_deploy_tokens": false,
  "manage_group_access_tokens": false,
  "manage_merge_request_settings": false,
  "manage_project_access_tokens": false,
  "manage_security_policy_link": false,
  "read_code": true,
  "read_runners": false,
  "read_dependency": false,
  "read_vulnerability": false,
  "remove_group": false,
  "remove_project": false
}

Dans GitLab 16.3 et versions ultérieures, vous pouvez utiliser l'API pour :

  • Ajouter un nom (obligatoire) et une description (facultative) lorsque vous créez un nouveau rôle personnalisé.
  • Mettre à jour le nom et la description d'un rôle personnalisé existant.

Supprimer le rôle de membre d'un groupe {#remove-member-role-of-a-group}

Supprime un rôle de membre d'un groupe.

plaintext
DELETE /groups/:id/member_roles/:member_role_id
AttributTypeObligatoireDescription
identier ou chaîneouiL'ID ou le chemin encodé en URL du groupe.
member_role_identierouiL'ID du rôle de membre.

En cas de succès, renvoie 204 et une réponse vide.

Exemple de requête :

shell
curl --request DELETE \
  --header "Content-Type: application/json" \
  --header "Authorization: Bearer <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/84/member_roles/1"