Back to Gitlabhq

API des miroirs distants de projet

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

19.1.019.0 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 miroirs distants. Vous pouvez interroger et modifier l'état de ces miroirs avec l'API de miroir distant.

Pour des raisons de sécurité, l'attribut url dans la réponse de l'API est toujours expurgé des informations de nom d'utilisateur et de mot de passe.

[!note] Les miroirs pull utilisent un point de terminaison d'API différent pour les afficher et les mettre à jour.

Lister tous les miroirs distants d'un projet {#list-all-remote-mirrors-for-a-project}

{{< history >}}

  • Attribut host_keys introduit dans GitLab 18.4.

{{< /history >}}

Liste tous les miroirs distants d'un projet spécifié.

plaintext
GET /projects/:id/remote_mirrors

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneOuiID ou chemin encodé dans l'URL du projet.

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

AttributTypeDescription
auth_methodstringMéthode d'authentification utilisée pour le miroir.
enabledbooleanSi true, le miroir est activé.
host_keystableauTableau des empreintes de clés d'hôte SSH pour le miroir distant.
identierID du miroir distant.
keep_divergent_refsbooleanSi true, les refs divergentes sont conservées lors de la mise en miroir.
last_errorstringMessage d'erreur de la dernière tentative de miroir. null si réussie.
last_successful_update_atstringHorodatage de la dernière mise à jour réussie du miroir. Format ISO 8601.
last_update_atstringHorodatage de la dernière tentative de miroir. Format ISO 8601.
last_update_started_atstringHorodatage du début de la dernière tentative de miroir. Format ISO 8601.
only_protected_branchesbooleanSi true, seules les branches protégées sont mises en miroir.
update_statusstringStatut de la mise à jour du miroir. Valeurs possibles : none, scheduled, started, finished, failed.
urlstringURL du miroir avec les identifiants expurgés pour des raisons de sécurité.

Exemple de requête :

shell
curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/42/remote_mirrors"

Exemple de réponse :

json
[
  {
    "enabled": true,
    "id": 101486,
    "auth_method": "ssh_public_key",
    "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",
    "only_protected_branches": true,
    "keep_divergent_refs": true,
    "update_status": "finished",
    "url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git",
    "host_keys": [
      {
        "fingerprint_sha256": "SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw"
      }
    ]
  }
]

Récupérer un miroir distant pour un projet {#retrieve-a-remote-mirror-for-a-project}

{{< history >}}

  • Attribut host_keys introduit dans GitLab 18.4.

{{< /history >}}

Récupère un miroir distant spécifié pour un projet.

plaintext
GET /projects/:id/remote_mirrors/:mirror_id

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneOuiID ou chemin encodé dans l'URL du projet.
mirror_identierOuiID du miroir distant.

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

AttributTypeDescription
enabledbooleanSi true, le miroir est activé.
identierID du miroir distant.
host_keystableauTableau des empreintes de clés d'hôte SSH pour le miroir distant.
keep_divergent_refsbooleanSi true, les refs divergentes sont conservées lors de la mise en miroir.
last_errorstringMessage d'erreur de la dernière tentative de miroir. null si réussie.
last_successful_update_atstringHorodatage de la dernière mise à jour réussie du miroir. Format ISO 8601.
last_update_atstringHorodatage de la dernière tentative de miroir. Format ISO 8601.
last_update_started_atstringHorodatage du début de la dernière tentative de miroir. Format ISO 8601.
only_protected_branchesbooleanSi true, seules les branches protégées sont mises en miroir.
update_statusstringStatut de la mise à jour du miroir. Valeurs possibles : none, scheduled, started, finished, failed.
urlstringURL du miroir avec les identifiants expurgés pour des raisons de sécurité.

Exemple de requête :

shell
curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/42/remote_mirrors/101486"

Exemple de réponse :

json
{
  "enabled": true,
  "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",
  "only_protected_branches": true,
  "keep_divergent_refs": true,
  "update_status": "finished",
  "url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git",
  "host_keys": [
    {
      "fingerprint_sha256": "SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw"
    }
  ]
}

Récupérer une clé publique pour un miroir distant {#retrieve-a-public-key-for-a-remote-mirror}

{{< history >}}

{{< /history >}}

Récupère la clé publique d'un miroir distant spécifié qui utilise l'authentification SSH.

plaintext
GET /projects/:id/remote_mirrors/:mirror_id/public_key

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneOuiID ou chemin encodé dans l'URL du projet.
mirror_identierOuiID du miroir distant.

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

AttributTypeDescription
public_keystringClé publique du miroir distant.

Exemple de requête :

shell
curl --request GET \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/42/remote_mirrors/101486/public_key"

Exemple de réponse :

json
{
  "public_key": "ssh-rsa AAAAB3NzaC1yc2EA..."
}

Créer un miroir pull {#create-a-pull-mirror}

Apprenez à configurer un miroir pull en utilisant l'API de mise en miroir pull de projet.

Créer un miroir push {#create-a-push-mirror}

{{< history >}}

{{< /history >}}

[!note] Chaque projet peut avoir un maximum de 10 miroirs push activés. Pour plus d'informations, consultez le nombre maximum de miroirs push de projet.

Créez un miroir push pour un projet. La mise en miroir push est désactivée par défaut. Pour l'activer, incluez le paramètre facultatif enabled lors de la création du miroir.

plaintext
POST /projects/:id/remote_mirrors

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneOuiID ou chemin encodé dans l'URL du projet.
urlstringOuiURL cible vers laquelle le dépôt est mis en miroir.
auth_methodstringNonMéthode d'authentification du miroir. Valeurs acceptées : ssh_public_key, password.
enabledbooleanNonSi true, le miroir est activé.
host_keystableau de chaînesNonClés d'hôte SSH au format simple (ssh-ed25519 AAAA...) ou au format complet known_hosts (hostname ssh-ed25519 AAAA...). Les clés simples utilisent le nom d'hôte de l'URL du miroir.
keep_divergent_refsbooleanNonSi true, les refs divergentes sont conservées lors de la mise en miroir.
mirror_branch_regexstringNonExpression régulière pour les noms de branches à mettre en miroir. Seules les branches dont les noms correspondent à l'expression régulière sont mises en miroir. Nécessite que only_protected_branches soit désactivé. Premium et Ultimate uniquement.
only_protected_branchesbooleanNonSi true, seules les branches protégées sont mises en miroir.

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

AttributTypeDescription
auth_methodstringMéthode d'authentification utilisée pour le miroir.
enabledbooleanSi true, le miroir est activé.
host_keystableauTableau des empreintes de clés d'hôte SSH pour le miroir distant.
identierID du miroir distant.
keep_divergent_refsbooleanSi true, les refs divergentes sont conservées lors de la mise en miroir.
last_errorstringMessage d'erreur de la dernière tentative de miroir. null si réussie.
last_successful_update_atstringHorodatage de la dernière mise à jour réussie du miroir. Format ISO 8601.
last_update_atstringHorodatage de la dernière tentative de miroir. Format ISO 8601.
last_update_started_atstringHorodatage du début de la dernière tentative de miroir. Format ISO 8601.
only_protected_branchesbooleanSi true, seules les branches protégées sont mises en miroir.
update_statusstringStatut de la mise à jour du miroir. Valeurs possibles : none, scheduled, started, finished, failed.
urlstringURL du miroir avec les identifiants expurgés pour des raisons de sécurité.

Exemple de requête :

shell
curl --request POST \
  --data "url=https://username:[email protected]/gitlab/example.git" \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/42/remote_mirrors"

Exemple de réponse :

json
{
    "enabled": false,
    "id": 101486,
    "auth_method": "password",
    "last_error": null,
    "last_successful_update_at": null,
    "last_update_at": null,
    "last_update_started_at": null,
    "only_protected_branches": false,
    "keep_divergent_refs": false,
    "update_status": "none",
    "url": "https://*****:*****@example.com/gitlab/example.git",
    "host_keys": [
      {
        "fingerprint_sha256": "SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw"
      }
    ]
}

Mettre à jour un miroir distant dans un projet {#update-a-remote-mirror-in-a-project}

{{< history >}}

  • Champ auth_method introduit dans GitLab 16.10.
  • Attribut host_keys introduit dans GitLab 18.4.

{{< /history >}}

Met à jour la configuration ou le statut opérationnel d'un miroir distant spécifié.

plaintext
PUT /projects/:id/remote_mirrors/:mirror_id

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneOuiID ou chemin encodé dans l'URL du projet.
mirror_identierOuiID du miroir distant.
auth_methodstringNonMéthode d'authentification du miroir. Valeurs acceptées : ssh_public_key, password.
enabledbooleanNonSi true, le miroir est activé.
host_keystableau de chaînesNonClés d'hôte SSH au format simple (ssh-ed25519 AAAA...) ou au format complet known_hosts (hostname ssh-ed25519 AAAA...). Les clés simples utilisent le nom d'hôte de l'URL du miroir.
keep_divergent_refsbooleanNonSi true, les refs divergentes sont conservées lors de la mise en miroir.
mirror_branch_regexstringNonExpression régulière pour les noms de branches à mettre en miroir. Seules les branches dont les noms correspondent à l'expression régulière sont mises en miroir. Ne fonctionne pas avec only_protected_branches activé. Premium et Ultimate uniquement.
only_protected_branchesbooleanNonSi true, seules les branches protégées sont mises en miroir.

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

AttributTypeDescription
auth_methodstringMéthode d'authentification utilisée pour le miroir.
enabledbooleanSi true, le miroir est activé.
host_keystableauTableau des empreintes de clés d'hôte SSH pour le miroir distant.
identierID du miroir distant.
keep_divergent_refsbooleanSi true, les refs divergentes sont conservées lors de la mise en miroir.
last_errorstringMessage d'erreur de la dernière tentative de miroir. null si réussie.
last_successful_update_atstringHorodatage de la dernière mise à jour réussie du miroir. Format ISO 8601.
last_update_atstringHorodatage de la dernière tentative de miroir. Format ISO 8601.
last_update_started_atstringHorodatage du début de la dernière tentative de miroir. Format ISO 8601.
only_protected_branchesbooleanSi true, seules les branches protégées sont mises en miroir.
update_statusstringStatut de la mise à jour du miroir. Valeurs possibles : none, scheduled, started, finished, failed.
urlstringURL du miroir avec les identifiants expurgés pour des raisons de sécurité.

Exemple de requête :

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

Exemple de réponse :

json
{
    "enabled": false,
    "id": 101486,
    "auth_method": "password",
    "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",
    "only_protected_branches": true,
    "keep_divergent_refs": true,
    "update_status": "finished",
    "url": "https://*****:*****@gitlab.com/gitlab-org/security/gitlab.git",
    "host_keys": [
      {
        "fingerprint_sha256": "SHA256:HbW3g8zUjNSksFbqTiUWPWg2Bq1x8xdGUrliXFzSnUw"
      }
    ]
}

Forcer la mise à jour du miroir push {#force-push-mirror-update}

{{< history >}}

{{< /history >}}

Forcer une mise à jour d'un miroir push.

plaintext
POST /projects/:id/remote_mirrors/:mirror_id/sync

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneOuiID ou chemin encodé dans l'URL du projet.
mirror_identierOuiID du miroir distant.

En cas de succès, renvoie 204 No Content.

Exemple de requête :

shell
curl --request POST \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/42/remote_mirrors/101486/sync"

Supprimer un miroir distant d'un projet {#delete-a-remote-mirror-from-a-project}

Supprime un miroir distant spécifié d'un projet.

plaintext
DELETE /projects/:id/remote_mirrors/:mirror_id

Attributs pris en charge :

AttributTypeObligatoireDescription
identier ou chaîneOuiID ou chemin encodé dans l'URL du projet.
mirror_identierOuiID du miroir distant.

En cas de succès, renvoie 204 No Content.

Exemple de requête :

shell
curl --request DELETE \
  --header "PRIVATE-TOKEN: <your_access_token>" \
  --url "https://gitlab.example.com/api/v4/projects/42/remote_mirrors/101486"