Back to Gitlabhq

API d'import et d'export de groupes

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

19.1.04.9 KB
Original Source

{{< details >}}

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

{{< /details >}}

Utilisez cette API pour migrer la structure d'un groupe. Lorsque vous utilisez cette API avec l'API d'import et d'export de projets, vous pouvez préserver les relations au niveau du groupe, comme les connexions entre les tickets de projet et les epics de groupe.

Les exports de groupe incluent les éléments suivants :

  • Jalons de groupe
  • Tableaux de groupe
  • Labels de groupe
  • Badges de groupe
  • Membres du groupe
  • Événements de groupe
  • Wikis de groupe (Premium et Ultimate uniquement)
  • Sous-groupes. Chaque sous-groupe inclut toutes les données précédentes de la liste.

Pour préserver les relations au niveau du groupe à partir des projets importés, vous devez d'abord exécuter l'export et l'import du groupe. De cette façon, vous pouvez importer les exports de projets dans la structure de groupe souhaitée.

En raison du ticket 405168, les groupes importés ont un niveau de visibilité private sauf si vous les importez dans un groupe parent. Par défaut, si vous importez des groupes dans un groupe parent, les sous-groupes héritent du même niveau de visibilité que le parent.

Pour préserver la liste des membres et leurs autorisations respectives sur les groupes importés, vérifiez les utilisateurs de ces groupes. Assurez-vous que ces utilisateurs existent avant d'importer les groupes souhaités.

Créer un export de groupe {#create-a-group-export}

Crée un export de groupe pour un groupe spécifié.

plaintext
POST /groups/:id/export
AttributTypeObligatoireDescription
idEntier ou chaîneOuiID du groupe.
shell
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/groups/1/export"
json
{
  "message": "202 Accepted"
}

Récupérer un téléchargement d'export de groupe {#retrieve-a-group-export-download}

Récupère l'archive exportée pour un groupe spécifié.

plaintext
GET /groups/:id/export/download
AttributTypeObligatoireDescription
idEntier ou chaîneOuiID du groupe.
shell
group=1
token=secret

curl --request GET \
  --header "PRIVATE-TOKEN: ${token}" \
  --output download_group_${group}.tar.gz \
  --url "https://gitlab.example.com/api/v4/groups/${group}/export/download"
shell
ls *export.tar.gz
2020-12-05_22-11-148_namespace_export.tar.gz

Le temps consacré à l'export d'un groupe peut varier en fonction de la taille du groupe. Cet endpoint renvoie :

  • L'archive exportée (lorsqu'elle est disponible)
  • Un message 404

Créer un import de groupe {#create-a-group-import}

Crée un import de groupe en téléchargeant un fichier.

La taille maximale du fichier d'import peut être définie par l'administrateur sur GitLab Self-Managed (la valeur par défaut est 0 (illimitée)). En tant qu'administrateur, vous pouvez modifier la taille maximale du fichier d'import :

Pour obtenir des informations sur la taille maximale des fichiers d'import sur GitLab.com, consultez les paramètres de compte et de limites.

plaintext
POST /groups/import
AttributTypeObligatoireDescription
fileChaîneOuiLe fichier à télécharger.
nameChaîneOuiLe nom du groupe à importer.
pathChaîneOuiNom et chemin du nouveau groupe.
parent_idEntierNonID d'un groupe parent dans lequel importer le groupe. Correspond par défaut à l'espace de nommage de l'utilisateur actuel si non renseigné.

Pour télécharger un fichier depuis votre système de fichiers, utilisez l'argument --form. Cela amène cURL à publier des données en utilisant l'en-tête Content-Type: multipart/form-data. Le paramètre file= doit pointer vers un fichier sur votre système de fichiers et être précédé de @. Par exemple :

shell
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --form "name=imported-group" \
  --form "path=imported-group" \
  --form "file=@/path/to/file" \
  --url "https://gitlab.example.com/api/v4/groups/import"