Back to Gitlabhq

API de mise en miroir pull

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

19.2.010.9 KB
Original Source

{{< details >}}

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

{{< /details >}}

Utilisez cette API pour gérer la mise en miroir pull des projets.

Récupérer les détails du miroir pull d'un projet {#retrieve-project-pull-mirror-details}

{{< history >}}

  • Réponse étendue pour inclure les informations de configuration du miroir dans GitLab 17.5. Les paramètres de configuration suivants sont inclus : enabled, mirror_trigger_builds, only_mirror_protected_branches, mirror_overwrites_diverged_branches et mirror_branch_regex.

{{< /history >}}

Récupère les détails du miroir pull pour un projet spécifié.

plaintext
GET /projects/:id/mirror/pull

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneOuiID ou chemin encodé en URL du projet.

En cas de succès, renvoie 200 OK et les attributs de réponse suivants :

AttributTypeDescription
enabledbooleanSi true, le miroir est actif.
identierIdentifiant unique de la configuration du miroir.
last_errorchaîne ou nullMessage d'erreur le plus récent, le cas échéant. null si aucune erreur ne s'est produite.
last_successful_update_atstringHorodatage de la dernière mise à jour réussie du miroir.
last_update_atstringHorodatage de la tentative de mise à jour du miroir la plus récente.
last_update_started_atstringHorodatage du démarrage du dernier processus de mise à jour du miroir.
mirror_branch_regexchaîne ou nullModèle d'expression régulière pour filtrer les branches à mettre en miroir. null si non défini.
mirror_overwrites_diverged_branchesbooleanSi true, écrase les branches divergentes lors de la mise en miroir.
mirror_trigger_buildsbooleanSi true, déclenche des builds pour les mises à jour du miroir.
only_mirror_protected_branchesbooléen ou nullSi true, seules les branches protégées sont mises en miroir. Si non défini, la valeur est null.
update_statusstringStatut du processus de mise à jour du miroir. Valeurs possibles : none, scheduled, started, finished, failed ou canceled.
urlstringURL du dépôt mis en miroir.

Exemple de requête :

shell
curl --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"

Exemple de réponse :

json
{
  "id": 101486,
  "last_error": null,
  "last_successful_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_started_at": "2020-01-06T17:31:55.864Z",
  "update_status": "finished",
  "url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git",
  "enabled": true,
  "mirror_trigger_builds": true,
  "only_mirror_protected_branches": null,
  "mirror_overwrites_diverged_branches": false,
  "mirror_branch_regex": null
}

Mettre à jour les paramètres de mise en miroir pull du projet {#update-project-pull-mirroring-settings}

{{< history >}}

{{< /history >}}

Met à jour les paramètres de mise en miroir pull pour un projet.

plaintext
PUT /projects/:id/mirror/pull

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneOuiID ou chemin encodé en URL du projet.
auth_passwordstringNonMot de passe utilisé pour l'authentification d'un projet auprès du miroir pull.
auth_userstringNonNom d'utilisateur utilisé pour l'authentification d'un projet auprès du miroir pull.
enabledbooleanNonSi true, active la mise en miroir pull sur le projet lorsque défini sur true.
mirror_branch_regexstringNonContient une expression régulière. Seules les branches dont le nom correspond à l'expression régulière sont mises en miroir. Nécessite que only_mirror_protected_branches soit désactivé.
mirror_overwrites_diverged_branchesbooleanNonSi true, écrase les branches divergentes.
mirror_trigger_buildsbooleanNonSi true, déclenche des pipelines pour les mises à jour du miroir.
only_mirror_protected_branchesbooleanNonSi true, limite la mise en miroir aux seules branches protégées.
urlstringNonURL du dépôt distant mis en miroir.

En cas de succès, renvoie 200 OK et la configuration du miroir pull mise à jour.

Exemple de requête pour ajouter la mise en miroir pull :

shell
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --data '{
    "enabled": true,
    "url": "https://gitlab.example.com/group/project.git",
    "auth_user": "user",
    "auth_password": "password"
  }' \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"

Exemple de requête pour supprimer la mise en miroir pull :

shell
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "enabled=false" \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"

Exemple de réponse :

json
{
  "id": 101486,
  "last_error": null,
  "last_successful_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_at": "2020-01-06T17:32:02.823Z",
  "last_update_started_at": "2020-01-06T17:31:55.864Z",
  "update_status": "finished",
  "url": "https://gitlab.example.com/group/project.git",
  "enabled": true,
  "mirror_trigger_builds": false,
  "only_mirror_protected_branches": null,
  "mirror_overwrites_diverged_branches": false,
  "mirror_branch_regex": null
}

Mettre à jour la mise en miroir pull pour un projet (déprécié) {#update-pull-mirroring-for-a-project-deprecated}

{{< history >}}

{{< /history >}}

[!warning] Cette option de configuration a été dépréciée dans GitLab 17.6 et est prévue pour suppression dans la v5 de l'API. Utilisez plutôt la nouvelle configuration et le nouvel endpoint. Ce changement est un changement avec rupture de compatibilité.

Si le dépôt distant est accessible publiquement ou utilise l'authentification username:token, utilisez l'API pour configurer la mise en miroir pull lors de la création ou de la mise à jour d'un projet.

Si votre dépôt HTTP n'est pas accessible publiquement, vous pouvez ajouter les informations d'authentification à l'URL. Par exemple, https://username:[email protected]/group/project.gittoken est un jeton d'accès personnel avec la portée api activée.

Attributs pris en charge :

AttributTypeObligatoireDescription
import_urlstringOuiURL du dépôt distant mis en miroir (avec user:token si nécessaire).
mirrorbooleanOuiSi true, active la mise en miroir pull.
mirror_branch_regexstringNonContient une expression régulière. Seules les branches dont le nom correspond à l'expression régulière sont mises en miroir. Nécessite que only_mirror_protected_branches soit désactivé.
mirror_trigger_buildsbooleanNonSi true, déclenche des pipelines pour les mises à jour du miroir.
only_mirror_protected_branchesbooleanNonSi true, limite la mise en miroir aux seules branches protégées.

Exemple de création d'un projet avec la mise en miroir pull :

shell
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --header "Content-Type: application/json" \
  --data '{
    "name": "new_project",
    "namespace_id": "1",
    "mirror": true,
    "import_url": "https://username:[email protected]/group/project.git"
  }' \
  --url "https://gitlab.example.com/api/v4/projects/"

Exemple d'ajout de la mise en miroir pull :

shell
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "mirror=true&import_url=https://username:[email protected]/group/project.git" \
  --url "https://gitlab.example.com/api/v4/projects/:id"

Exemple de suppression de la mise en miroir pull :

shell
curl --request PUT \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --data "mirror=false" \
  --url "https://gitlab.example.com/api/v4/projects/:id"

Démarrer le processus de mise en miroir pull pour un projet {#start-the-pull-mirroring-process-for-a-project}

Démarrez le processus de mise en miroir pull pour un projet.

plaintext
POST /projects/:id/mirror/pull

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneOuiID ou chemin encodé en URL du projet.

En cas de succès, renvoie 202 Accepted.

Exemple de requête :

shell
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/:id/mirror/pull"