> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corgea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Registres de paquets privés

> Connectez Corgea à votre registre de paquets privé pour que l’analyse des dépendances couvre vos paquets internes et tout ce dont ils dépendent. Prend en charge Maven, PyPI et NuGet.

## Vue d’ensemble

* **Fonction** : Corgea se connecte à votre registre de paquets privé afin d’analyser les paquets internes dont dépendent vos projets, ainsi que tous les paquets que ces paquets internes entraînent.

* **Public visé** : les équipes dont les applications dépendent de paquets publiés en interne — bibliothèques partagées, SDK de plateforme, frameworks maison — hébergés sur un registre privé plutôt que sur un registre public comme Maven Central, PyPI ou nuget.org.

### Pourquoi c’est nécessaire

Corgea analyse chaque dépendance en la recherchant dans le registre dont elle provient. Les paquets publics sont accessibles à tous et fonctionnent donc immédiatement. Ce n’est pas le cas des paquets internes : sans identifiants, Corgea ne peut pas les ouvrir, et tout ce qui se trouve derrière reste invisible.

Sans registre connecté, vous constaterez généralement :

* Un avertissement **Dependency Analysis** sur le fichier concerné, dans l’onglet « Errors » de l’analyse.
* Des paquets internes affichés **sans sous-dépendances**, car Corgea n’a pas pu regarder à l’intérieur.
* Des **vulnérabilités manquantes**, car tout ce qui n’est accessible que via un paquet interne n’est jamais analysé.

Une fois connecté, vos paquets internes sont traités comme n’importe quelle autre dépendance : ils apparaissent dans l’arbre de dépendances avec tout ce qu’ils entraînent, et les vulnérabilités qu’ils contiennent sont signalées, priorisées et corrigées comme d’habitude.

## Disponibilité

<Note>
  Les registres de paquets privés sont proposés aux **clients enterprise disposant d’un tenant dédié**. La fonctionnalité est activée par organisation et **désactivée par défaut** : contactez [support@corgea.com](mailto:support@corgea.com) pour l’activer sur votre compte.
</Note>

Tant qu’elle n’est pas activée pour votre organisation, la fonctionnalité est masquée : aucune entrée **Package Registries** sur la page Integrations et aucun panneau de registres dans les paramètres du projet.

## Types de paquets pris en charge

| Type de paquet | Langage             |
| -------------- | ------------------- |
| **Maven**      | Java, Kotlin, Scala |
| **PyPI**       | Python              |
| **NuGet**      | .NET                |

### Registres compatibles

Corgea se connecte via le protocole standard de chaque type de paquet : il n’est donc lié à aucun éditeur. Tout registre qui distribue les paquets comme le client standard l’attend et accepte un nom d’utilisateur et un jeton fonctionnera, notamment :

* Sonatype Nexus Repository
* Azure Artifacts
* GitHub Packages
* Google Artifact Registry
* MyGet
* ProGet
* Serveurs de registre auto-hébergés

## Avant de commencer

Il vous faut :

1. **Un registre accessible depuis Corgea.** Corgea se connecte à votre registre via Internet. Un registre accessible uniquement depuis votre VPN ou votre réseau privé, ou situé derrière une liste d’adresses IP autorisées, ne fonctionnera pas tant que vous n’autorisez pas l’accès.
2. **Un jeton avec accès en lecture.** Corgea télécharge seulement les paquets et lit leurs informations de dépendances. Il ne publie jamais.
3. **Un jeton qui n’expire pas rapidement.** Corgea conserve le jeton fourni et le réutilise à chaque analyse.

<Warning>
  Certains registres émettent des jetons **de courte durée** qui expirent après quelques heures. Ils fonctionnent pour la première analyse puis échouent. Utilisez plutôt un jeton de longue durée, un compte de service ou une clé d’API.
</Warning>

<Tip>
  Créez un compte de service dédié en lecture seule pour Corgea plutôt qu’un jeton personnel. L’accès reste limité au strict nécessaire et la connexion continue de fonctionner lorsqu’une personne quitte l’équipe.
</Tip>

## Configurer un registre

### Étape 1 — Récupérer les informations de votre registre

Dans votre registre, créez un jeton (ou un compte de service) avec un accès en **lecture** aux dépôts que Corgea doit utiliser. Notez le **nom d’utilisateur** associé et l’**URL** du dépôt.

<Tabs>
  <Tab title="Maven">
    Utilisez l’URL du dépôt qui distribue vos artefacts internes, par exemple :

    ```text theme={null}
    https://packages.example.com/repository/maven-releases
    ```
  </Tab>

  <Tab title="PyPI">
    Utilisez l’URL de votre index de paquets, qui se termine généralement par `/simple` :

    ```text theme={null}
    https://packages.example.com/repository/pypi/simple
    ```
  </Tab>

  <Tab title="NuGet">
    Utilisez l’URL d’index de votre flux, qui se termine généralement par `/index.json` :

    ```text theme={null}
    https://packages.example.com/repository/nuget/v3/index.json
    ```
  </Tab>
</Tabs>

### Étape 2 — Ajouter le registre dans Corgea

Allez dans **Integrations → Package Registries** et cliquez sur **Manage**.

<img src="https://mintcdn.com/corgea/CncYiZxwYXM7eJG5/images/package-registries/integrations_entry.png?fit=max&auto=format&n=CncYiZxwYXM7eJG5&q=85&s=74452c9a3af2fccdea375a730928d02e" alt="Section Package Registries sur la page Integrations" width="1908" height="1077" data-path="images/package-registries/integrations_entry.png" />

<Note>
  L’autorisation **Manage Integrations** est nécessaire pour ajouter, modifier ou supprimer un registre. Voir [Autorisations](#permissions).
</Note>

Cliquez sur **Add Registry**.

<img src="https://mintcdn.com/corgea/CncYiZxwYXM7eJG5/images/package-registries/registries_list.png?fit=max&auto=format&n=CncYiZxwYXM7eJG5&q=85&s=7d246e52ce7f5d1a177dc2305ace9408" alt="Liste Package Registries affichant les registres configurés" width="1910" height="1070" data-path="images/package-registries/registries_list.png" />

Remplissez le formulaire :

<img src="https://mintcdn.com/corgea/CncYiZxwYXM7eJG5/images/package-registries/add_registry_structured.png?fit=max&auto=format&n=CncYiZxwYXM7eJG5&q=85&s=4ab913a69898a6ef939e4c984ac04d0a" alt="Formulaire Add Package Registry en mode Structured form" width="1479" height="1080" data-path="images/package-registries/add_registry_structured.png" />

| Champ                       | Obligatoire | Remarques                                                                                                            |
| --------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------- |
| **Name**                    | Oui         | Un libellé pour reconnaître ce registre. Affiché dans la liste et dans les paramètres du projet.                     |
| **Ecosystem**               | Oui         | `Maven`, `PyPI` ou `NuGet`. Choisissez le type de paquet distribué par ce registre.                                  |
| **Setup method**            | Oui         | **Structured form** (par défaut) ou **Paste config file**. Voir [Méthodes de configuration](#setup-methods).         |
| **Repository URL**          | Oui         | L’URL de l’étape 1.                                                                                                  |
| **Additional repositories** | Non         | Autres dépôts du même registre, un par ligne au format `name=url`. Laissez vide pour n’utiliser que l’URL ci-dessus. |
| **Username**                | Oui         | L’utilisateur ou le compte de service auquel appartient le jeton.                                                    |
| **Access token**            | Oui         | Votre jeton ou mot de passe. Stocké chiffré et jamais réaffiché après l’enregistrement.                              |
| **Apply to all projects**   | Non         | Activé par défaut. Voir [Choisir les projets qui utilisent un registre](#choosing-which-projects-use-a-registry).    |
| **Enabled**                 | Non         | Activé par défaut. Désactivez pour cesser d’utiliser le registre sans le supprimer.                                  |

<Warning>
  Chaque entrée de registre couvre **un seul type de paquet**. Si votre registre héberge des dépôts Maven, PyPI et NuGet, ajoutez trois entrées — une par type — chacune avec son URL correspondante.
</Warning>

### Étape 3 — Choisir les projets concernés

Laissez **Apply to all projects** activé pour que tous les projets de votre organisation puissent utiliser ce registre, ou désactivez-le et sélectionnez des projets précis. Voir [Choisir les projets qui utilisent un registre](#choosing-which-projects-use-a-registry).

### Étape 4 — Relancer une analyse et vérifier les résultats

Lancez une nouvelle analyse sur un projet qui dépend d’un paquet interne, puis vérifiez que :

* L’avertissement **Dependency Analysis** pour ce fichier a disparu de l’onglet « Errors ».
* Votre paquet interne affiche désormais des **sous-dépendances** et peut être déplié dans l’[arbre de dépendances](/fr/sca#dependency-tree-view).
* Les vulnérabilités présentes uniquement dans des paquets internes apparaissent.

<Note>
  Connecter un registre ne modifie pas les résultats des analyses précédentes. Lancez une **nouvelle analyse** pour bénéficier de la couverture améliorée.
</Note>

<Note>
  Si Corgea ne parvient pas à joindre votre registre pendant une analyse, celle-ci se termine tout de même avec les paquets publics et affiche un avertissement sur le fichier concerné. Un problème de registre ne fait jamais échouer votre analyse ni ne bloque votre pipeline — mais les résultats resteront sans vos paquets internes jusqu’à résolution.
</Note>

<h2 id="setup-methods">
  Méthodes de configuration
</h2>

### Structured form (recommandé)

Saisissez votre URL, votre nom d’utilisateur et votre jeton : Corgea s’occupe du reste. Utilisez cette option sauf raison particulière.

### Paste config file (avancé)

Si vous maintenez déjà un fichier de configuration de gestionnaire de paquets pour votre registre, vous pouvez le coller à la place. Choisissez cette option lorsque votre registre nécessite des réglages que le formulaire ne couvre pas — mirrors, proxies, ou règles définissant quels paquets proviennent de quelle source.

<img src="https://mintcdn.com/corgea/CncYiZxwYXM7eJG5/images/package-registries/add_registry_raw.png?fit=max&auto=format&n=CncYiZxwYXM7eJG5&q=85&s=709a6d791cbe9c998d3fd8584a78ca71" alt="Formulaire Add Package Registry en mode Paste config file" width="1550" height="1076" data-path="images/package-registries/add_registry_raw.png" />

Collez le fichier de configuration que votre gestionnaire de paquets utilise déjà pour ce registre : un `settings.xml` Maven, un fichier de configuration pip, ou un `NuGet.Config`.

<Warning>
  Le fichier doit contenir des **identifiants fonctionnels**. Si votre fichier utilise un mot de passe chiffré ou fictif, remplacez-le par un vrai jeton avant de coller — Corgea ne peut pas déchiffrer le format de mot de passe propre à votre registre.
</Warning>

<Note>
  Si vous changez la méthode de configuration d’un registre existant, saisissez à nouveau les identifiants pour la nouvelle méthode. Corgea ne conserve que les identifiants de la méthode utilisée.
</Note>

<h2 id="choosing-which-projects-use-a-registry">
  Choisir les projets qui utilisent un registre
</h2>

Les registres sont configurés une fois pour votre organisation, puis appliqués aux projets de deux manières :

* **Apply to all projects** (par défaut) : tous les projets de votre organisation peuvent utiliser le registre. Idéal pour un registre unique à l’échelle de l’entreprise.
* **Projets spécifiques** : uniquement les projets sélectionnés. Utile lorsqu’un registre appartient à une équipe, ou pour un déploiement progressif.

### Vérifier un projet en particulier

Ouvrez un projet et allez dans **Settings → Package Registries** pour voir quels registres s’appliquent :

* Les registres appliqués partout affichent un badge **All projects**. Modifiez-les depuis **Integrations → Package Registries**.
* Les autres registres affichent un **interrupteur** que vous pouvez activer ou désactiver pour ce projet.
* Un registre entièrement désactivé affiche un badge **Disabled**.

<Note>
  Modifier les registres d’un projet nécessite l’autorisation **Change Project**. Si le [contrôle d’accès aux projets](/fr/content-access-management) est activé, vous devez également avoir accès à ce projet.
</Note>

## Utiliser plusieurs registres

Vous pouvez ajouter autant de registres que nécessaire, et un projet peut en utiliser plusieurs simultanément :

* **Plusieurs registres pour le même type de paquet** : les paquets sont recherchés dans tous.
* **Types de paquets différents** : chacun est traité indépendamment.
* **Plusieurs dépôts sur un même registre** : listez-les sous **Additional repositories** au lieu de créer des entrées séparées.

<Note>
  Pour un même type de paquet, utilisez la même méthode de configuration partout. Si certains registres utilisent **Structured form** et d’autres **Paste config file**, les fichiers collés sont ignorés.
</Note>

<h2 id="permissions">
  Autorisations
</h2>

| Action                                              | Autorisation requise    |
| --------------------------------------------------- | ----------------------- |
| Consulter la liste Package Registries               | **View Integrations**   |
| Ajouter, modifier ou supprimer un registre          | **Manage Integrations** |
| Consulter le panneau Package Registries d’un projet | **View SAST Scan**      |
| Modifier les registres utilisés par un projet       | **Change Project**      |

Voir [Groupes d’autorisations](/fr/permission_groups) pour savoir comment les attribuer.

## Sécurité

Vos identifiants de registre sont traités comme des secrets :

* **Stockage chiffré.** Les identifiants sont chiffrés et ne sont jamais réaffichés après enregistrement. Lorsque vous modifiez un registre, le champ du jeton est vide ; le laisser vide conserve votre jeton existant.
* **Utilisés uniquement pendant les analyses.** Les identifiants servent à s’authentifier auprès de votre registre pendant une analyse, et à rien d’autre.
* **Isolés.** Les identifiants et les paquets téléchargés avec eux ne sont jamais partagés avec une autre analyse ni une autre organisation.
* **Jamais dans votre dépôt.** Corgea n’écrit vos identifiants dans aucun fichier qu’il produit.
* **Masqués dans les journaux et les messages.** Les identifiants sont retirés des messages d’erreur et des diagnostics affichés dans Corgea.
* **Accès en lecture seule.** Corgea télécharge uniquement les paquets et lit leurs informations de dépendances.

<h2 id="registries-on-restricted-networks">
  Registres sur réseaux restreints
</h2>

Si votre réseau bloque les registres publics et impose que tous les paquets passent par votre propre registre, pointez Corgea vers un dépôt qui distribue à la fois vos paquets internes **et** relaie les paquets publics. Corgea obtient alors tout ce qu’il lui faut depuis une source unique.

Si votre registre ne distribue que des paquets internes et que les registres publics sont inaccessibles, l’analyse des dépendances ne peut pas aboutir.

## Dépannage

<AccordionGroup>
  <Accordion title="Dependency Analysis could not fully process this file">
    **Signification** : Corgea a trouvé un paquet qu’il n’a pas pu rechercher — généralement un paquet interne sur un registre auquel il ne peut pas se connecter.

    **Que faire** : ajoutez un registre pour ce type de paquet, assurez-vous qu’il s’applique au projet, puis relancez l’analyse. Si un registre est déjà connecté, vérifiez l’URL et la validité du jeton.
  </Accordion>

  <Accordion title="Private package registry auth was enabled but no registry credentials could be loaded">
    **Signification** : le projet est configuré pour utiliser un registre privé, mais aucun registre utilisable n’était disponible au démarrage de l’analyse. En général, le registre a été désactivé, ne s’applique plus au projet, ou a été supprimé.

    **Que faire** : allez dans **Integrations → Package Registries** et vérifiez qu’un registre existe pour ce type de paquet, qu’il est **Enabled**, et qu’il s’applique à tous les projets ou inclut celui-ci.
  </Accordion>

  <Accordion title="Private registry dependency resolution failed">
    **Signification** : Corgea s’est connecté mais n’a pas pu récupérer les paquets. Causes fréquentes : jeton expiré ou révoqué, URL pointant vers le mauvais dépôt, ou paquet absent du registre.

    **Que faire** : vérifiez les identifiants depuis l’extérieur de votre réseau :

    ```bash theme={null}
    curl -u "USERNAME:TOKEN" -I "YOUR_REGISTRY_URL"
    ```

    Un `401` ou `403` signale des identifiants incorrects. Un `404` signale une URL incorrecte.
  </Accordion>

  <Accordion title="Private registry dependency resolution timed out">
    **Signification** : la récupération de vos dépendances a pris trop de temps, généralement un très grand projet ou un registre lent.

    **Que faire** : committez des fichiers de verrouillage lorsque c’est possible, afin de réduire le travail pendant l’analyse, et vérifiez les temps de réponse de votre registre. Relancez ensuite l’analyse.
  </Accordion>

  <Accordion title="Some modules in a large repository were not covered">
    **Signification** : le dépôt contient plus de modules indépendants que Corgea n’en traite au cours d’une même analyse.

    **Que faire** : si les modules non couverts sont importants, séparez-les en projets Corgea distincts, ou committez des fichiers de verrouillage pour eux.
  </Accordion>

  <Accordion title="Private registry CVE scan failed or timed out">
    **Signification** : vos paquets internes ont été récupérés, mais la vérification des vulnérabilités les concernant n’a pas abouti.

    **Que faire** : relancez l’analyse. Les résultats des paquets publics ne sont pas affectés ; seules les vulnérabilités propres aux paquets internes peuvent manquer.
  </Accordion>

  <Accordion title="Dependency analysis fails when public registries are blocked">
    **Signification** : Corgea a besoin de composants disponibles publiquement pour analyser votre projet, et ni votre registre ni Internet ne les fournissent.

    **Que faire** : pointez le registre vers un dépôt qui relaie également les paquets publics. Voir [Registres sur réseaux restreints](#registries-on-restricted-networks).
  </Accordion>

  <Accordion title="Will this interfere with my own package manager configuration?">
    **Signification** : rien à corriger — Corgea ajoute son accès au registre en complément de la configuration présente dans votre dépôt au lieu de la remplacer, vos sources et règles existantes continuent donc de s’appliquer.

    **Que faire** : si des sources semblent toujours manquer, vérifiez que le fichier de configuration présent dans votre dépôt est valide. Corgea laisse intact un fichier qu’il ne peut pas lire plutôt que de risquer de casser votre build.
  </Accordion>

  <Accordion title="My registry uses http instead of https">
    **Signification** : cela fonctionne, mais votre jeton circule en clair.

    **Que faire** : utilisez `https` en dehors des tests locaux.
  </Accordion>

  <Accordion title="I cannot find the feature in Corgea">
    **Signification** : la fonctionnalité est désactivée par défaut et, dans cet état, elle est masquée plutôt qu’affichée comme verrouillée — il n’y a donc rien à cliquer.

    **Que faire** : les registres de paquets privés sont proposés aux clients enterprise disposant d’un tenant dédié. Contactez [support@corgea.com](mailto:support@corgea.com) pour l’activer pour votre organisation, puis rechargez la page Integrations.
  </Accordion>
</AccordionGroup>

## Bonnes pratiques

<Tip>Commencez par un registre sur un seul projet, vérifiez que l’arbre de dépendances est correct, puis appliquez-le à tous les projets.</Tip>

* **Utilisez un compte de service dédié en lecture seule** plutôt qu’un jeton personnel.
* **Utilisez des jetons de longue durée** et suivez leurs dates d’expiration pour que les analyses ne perdent pas discrètement en couverture.
* **Ajoutez une entrée par type de paquet**, chacune avec son URL correspondante.
* **Privilégiez un dépôt qui relaie aussi les paquets publics** — cela fonctionne que votre réseau soit restreint ou non.
* **Privilégiez le formulaire structuré**, et n’utilisez un fichier de configuration collé que pour des réglages qu’il ne couvre pas.
* **Committez les fichiers de verrouillage** quand c’est possible. Les analyses sont plus rapides et les résultats plus stables.
* **Faites tourner les jetons** selon votre calendrier habituel et mettez le registre à jour dans Corgea. Laissez le champ du jeton vide lors d’une modification si vous ne le changez pas.

## Voir aussi

* [Analyse des dépendances (SCA)](/fr/sca) — fonctionnement de l’analyse des dépendances, de l’arbre de dépendances et de l’atteignabilité
* [Groupes d’autorisations](/fr/permission_groups) — attribuer View et Manage Integrations
* [Gestion de l’accès au contenu](/fr/content-access-management) — contrôler qui peut modifier un projet
