fr-fr/about_DevDirManager.help.txt

SUJET
    about_DevDirManager
 
DESCRIPTION COURTE
    DevDirManager est un module PowerShell pour gérer et organiser les répertoires
    de développement contenant des référentiels Git. Il fournit des outils pour
    analyser les structures de répertoires, maintenir des inventaires de référentiels
    et automatiser les opérations de clonage de référentiels.
 
DESCRIPTION LONGUE
    Le module DevDirManager aide les développeurs à gérer de grandes collections de
    référentiels Git à travers plusieurs structures de répertoires. Il offre des
    fonctionnalités pour :
 
    * Analyser les arborescences de répertoires pour découvrir les référentiels Git
    * Exporter les inventaires de référentiels vers plusieurs formats de fichiers (CSV, JSON, XML)
    * Importer et restaurer les collections de référentiels en préservant les dispositions des dossiers
    * Synchroniser les listes de référentiels avec le contenu réel des répertoires
    * Publier les inventaires de référentiels sur GitHub Gists
    * Configurer le comportement via le système de configuration PSFramework
 
    Le module utilise un algorithme de recherche en largeur pour analyser efficacement
    les grandes structures de répertoires et prend en charge les formats de sortie
    personnalisés pour les données de référentiels.
 
SYSTÈME DE CONFIGURATION
    DevDirManager exploite le système de configuration PSFramework pour fournir des
    paramètres flexibles et personnalisables par l'utilisateur. Les valeurs de
    configuration peuvent être définies à l'aide de la cmdlet Set-PSFConfig et
    persistent entre les sessions PowerShell.
 
    Paramètres de configuration disponibles :
 
    DevDirManager.Git.Executable
        Chemin vers l'exécutable git utilisé pour les opérations de clonage.
        Valeur par défaut : git.exe
        Exemple : Set-PSFConfig -FullName 'DevDirManager.Git.Executable' -Value 'C:\Program Files\Git\cmd\git.exe'
 
    DevDirManager.Git.RemoteName
        Nom du distant Git par défaut à interroger lors de l'analyse des référentiels.
        Valeur par défaut : origin
        Exemple : Set-PSFConfig -FullName 'DevDirManager.Git.RemoteName' -Value 'upstream'
 
    DevDirManager.DefaultOutputFormat
        Format de fichier par défaut pour l'exportation/importation des listes de référentiels.
        Valeurs valides : CSV, JSON, XML
        Valeur par défaut : CSV
        Exemple : Set-PSFConfig -FullName 'DevDirManager.DefaultOutputFormat' -Value 'JSON'
 
    Pour afficher les valeurs de configuration actuelles :
        Get-PSFConfig -Module DevDirManager
 
    Les valeurs de configuration sont automatiquement récupérées par les fonctions du
    module et n'ont pas besoin d'être spécifiées en tant que paramètres sauf si vous
    souhaitez remplacer les valeurs par défaut configurées pour une opération spécifique.
 
FONCTIONS PRINCIPALES
    Découverte de référentiels
    --------------------------
    Get-DevDirectory
        Analyse une arborescence de répertoires pour découvrir tous les référentiels Git
        et récupère leurs URLs distantes et leur configuration utilisateur. Renvoie des
        objets DevDirManager.Repository avec :
        - RootPath : Répertoire de base qui a été analysé
        - RelativePath : Chemin du référentiel relatif à RootPath
        - FullPath : Chemin absolu vers le référentiel
        - RemoteName : Nom du distant Git (par ex., 'origin')
        - RemoteUrl : URL du référentiel distant
        - UserName : Configuration git user.name locale au référentiel
        - UserEmail : Configuration git user.email locale au référentiel
        - StatusDate : Date du commit le plus récent ou de l'activité du référentiel
        - IsRemoteAccessible : Booléen indiquant si l'URL distante est accessible
          (null si -SkipRemoteCheck a été utilisé)
 
        Paramètres :
        - RootPath : Répertoire à analyser pour les référentiels (par défaut : emplacement actuel)
        - SkipRemoteCheck : Ignore la vérification de l'accessibilité distante, améliorant
          les performances mais ne marquant pas les référentiels inaccessibles
 
    Gestion des listes de référentiels
    -----------------------------------
    Export-DevDirectoryList
        Exporte une collection d'objets référentiels vers un fichier au format CSV, JSON ou
        XML. Détecte automatiquement le format à partir de l'extension de fichier ou utilise
        le format par défaut configuré.
 
    Import-DevDirectoryList
        Importe des listes de référentiels depuis des fichiers CSV, JSON ou XML. Préserve
        les informations de type DevDirManager.Repository pour une intégration transparente
        avec d'autres fonctions du module.
 
    Opérations sur les référentiels
    --------------------------------
    Restore-DevDirectory
        Clone les référentiels à partir d'un fichier de liste de référentiels, en préservant
        la structure de répertoires d'origine. Crée les répertoires parents nécessaires et
        prend en charge le clonage récursif des sous-modules. Si les métadonnées du référentiel
        incluent les propriétés UserName et UserEmail, ces valeurs sont configurées dans le
        référentiel cloné à l'aide de 'git config --local', garantissant que le référentiel
        cloné conserve la même identité utilisateur que l'original.
 
        Paramètres :
        - DestinationPath : Répertoire racine où les référentiels seront restaurés
        - Force : Écrase les répertoires existants en les supprimant avant le clonage
        - SkipExisting : Ignore les référentiels dont le répertoire cible existe déjà
        - ShowGitOutput : Affiche la sortie des commandes git au lieu de la supprimer
 
    Sync-DevDirectoryList
        Effectue une synchronisation bidirectionnelle entre une structure de répertoires
        et un fichier de liste de référentiels. Peut mettre à jour le fichier avec de nouveaux
        référentiels trouvés dans le répertoire, ou cloner les référentiels manquants depuis
        le fichier. Lors de la fusion des métadonnées, les valeurs de référentiel locales pour
        UserName, UserEmail et StatusDate sont privilégiées par rapport aux valeurs du fichier
        pour garantir l'exactitude.
 
        Paramètres :
        - DirectoryPath : Répertoire racine contenant les référentiels Git
        - RepositoryListPath : Chemin vers le fichier de liste de référentiels
        - Force : Transmet à Restore-DevDirectory pour écraser les répertoires existants
        - SkipExisting : Transmet à Restore-DevDirectory pour ignorer les existants
        - ShowGitOutput : Transmet à Restore-DevDirectory pour afficher la sortie git
        - PassThru : Renvoie la liste de référentiels fusionnée après la synchronisation
 
    Intégration GitHub
    ------------------
    Publish-DevDirectoryList
        Publie une liste de référentiels sur GitHub en tant que Gist public ou privé.
        Convertit automatiquement les fichiers CSV et XML en JSON pour la compatibilité
        Gist. Nécessite un jeton d'accès personnel GitHub avec la portée gist.
 
PRISE EN CHARGE DES FORMATS DE FICHIERS
    DevDirManager prend en charge trois formats de fichiers pour les inventaires de référentiels :
 
    CSV (Valeurs séparées par des virgules)
        - Format tabulaire lisible par l'homme
        - Encodage UTF8 pour la prise en charge des caractères internationaux
        - Idéal pour la visualisation dans les applications de tableur
        - Les informations de type sont ajoutées lors de l'importation
 
    JSON (JavaScript Object Notation)
        - Format de données structuré
        - Encodage UTF8
        - Idéal pour les applications web et les API
        - Sérialisation de profondeur 5 pour les propriétés imbriquées
        - Les informations de type sont ajoutées lors de l'importation
 
    XML (PowerShell CLIXML)
        - Format de sérialisation natif PowerShell
        - Préserve automatiquement les informations de type
        - Idéal pour l'échange de données PowerShell-à-PowerShell
        - Gère les structures d'objets complexes
 
    Détection automatique du format
        Lorsqu'aucun format explicite n'est spécifié, DevDirManager détermine le format
        en utilisant cette priorité :
        1. Valeur explicite du paramètre -Format
        2. Extension de fichier (.csv, .json, .xml)
        3. Format par défaut configuré (DevDirManager.DefaultOutputFormat)
        4. Erreur si impossible de déterminer le format
 
    Les paramètres de format acceptent les valeurs en majuscules et minuscules (CSV, csv,
    Json, JSON, etc.) et sont normalisés en majuscules en interne.
 
TYPES PERSONNALISÉS
    DevDirManager.Repository
        Représente un référentiel Git découvert lors d'une analyse de répertoire. Contient :
        - RootPath [string] : Répertoire de base qui a été analysé
        - RelativePath [string] : Chemin relatif à RootPath
        - FullPath [string] : Chemin absolu complet
        - RemoteName [string] : Nom du distant Git
        - RemoteUrl [string] : URL du référentiel distant
        - UserName [string] : git user.name local au référentiel (depuis .git/config)
        - UserEmail [string] : git user.email local au référentiel (depuis .git/config)
        - StatusDate [datetime] : Date du commit le plus récent ou de l'activité du référentiel
 
        La vue de format personnalisée affiche : RelativePath, RemoteName, RemoteUrl, UserName,
        UserEmail, StatusDate
 
        Remarque : UserName et UserEmail sont extraits exclusivement du fichier .git/config
        local du référentiel. Les valeurs de configuration git globales et système sont
        intentionnellement ignorées pour garantir un suivi précis de l'identité par référentiel.
 
    DevDirManager.CloneResult
        Représente le résultat d'une opération de clonage de référentiel. Contient :
        - Status [string] : Success, Failed, ou Skipped
        - TargetPath [string] : Chemin du répertoire de destination
        - RemoteUrl [string] : URL du référentiel source
 
    DevDirManager.GistResult
        Représente un Gist GitHub publié. Contient :
        - Description [string] : Description du Gist
        - Public [bool] : Gist public ou privé
        - GistId [string] : Identifiant unique du Gist
        - HtmlUrl [string] : URL du navigateur pour le Gist
 
EXEMPLES
    Exemple 1 : Découvrir les référentiels dans un répertoire
        PS C:\> Get-DevDirectory -RootPath C:\Projects -Recurse
 
        Analyse C:\Projects de manière récursive et renvoie tous les référentiels Git avec
        leurs URLs distantes.
 
    Exemple 2 : Exporter la liste de référentiels en CSV
        PS C:\> Get-DevDirectory -RootPath C:\Projects -Recurse |
                Export-DevDirectoryList -Path C:\Temp\repos.csv
 
        Exporte les référentiels découverts vers un fichier CSV en utilisant l'encodage UTF8.
 
    Exemple 3 : Exporter en JSON avec format explicite
        PS C:\> Get-DevDirectory -RootPath C:\Projects -Recurse |
                Export-DevDirectoryList -Path C:\Temp\repos.txt -Format JSON
 
        Exporte au format JSON même si l'extension de fichier est .txt.
 
    Exemple 4 : Importer la liste de référentiels et afficher le type
        PS C:\> $repos = Import-DevDirectoryList -Path C:\Temp\repos.csv
        PS C:\> $repos[0].PSObject.TypeNames
 
        Importe les référentiels depuis CSV et affiche les informations de type.
 
    Exemple 5 : Cloner les référentiels depuis une liste
        PS C:\> Restore-DevDirectory -RepositoryListPath C:\Temp\repos.csv -TargetDirectory D:\Projects
 
        Clone tous les référentiels du fichier CSV vers D:\Projects, en préservant la
        structure de répertoires d'origine.
 
    Exemple 6 : Synchroniser le répertoire avec la liste de référentiels
        PS C:\> Sync-DevDirectoryList -RepositoryListPath C:\Temp\repos.csv -Path C:\Projects -Recurse
 
        Compare C:\Projects avec repos.csv et ajoute de nouveaux référentiels au fichier.
 
    Exemple 7 : Configurer le format par défaut en JSON
        PS C:\> Set-PSFConfig -FullName 'DevDirManager.DefaultOutputFormat' -Value 'JSON'
        PS C:\> Get-DevDirectory -RootPath C:\Projects -Recurse |
                Export-DevDirectoryList -Path C:\Temp\repos
 
        Exporte au format JSON car aucune extension n'est fournie et le défaut est JSON.
 
    Exemple 8 : Publier la liste de référentiels sur GitHub Gist
        PS C:\> $token = Read-Host -AsSecureString -Prompt "GitHub Token"
        PS C:\> Publish-DevDirectoryList -FromPath C:\Temp\repos.csv -Description "My Repositories" -GitHubToken $token
 
        Publie la liste de référentiels en tant que Gist public sur GitHub.
 
    Exemple 9 : Modifier le chemin de l'exécutable Git
        PS C:\> Set-PSFConfig -FullName 'DevDirManager.Git.Executable' -Value 'C:\PortableGit\bin\git.exe'
 
        Configure DevDirManager pour utiliser une installation Git portable.
 
    Exemple 10 : Analyser les référentiels en utilisant un distant différent
        PS C:\> Set-PSFConfig -FullName 'DevDirManager.Git.RemoteName' -Value 'upstream'
        PS C:\> Get-DevDirectory -RootPath C:\Forks -Recurse
 
        Analyse les référentiels et récupère l'URL du distant 'upstream' au lieu de 'origin'.
 
    Exemple 11 : Afficher la configuration utilisateur du référentiel
        PS C:\> Get-DevDirectory -RootPath C:\Projects | Select-Object RelativePath, UserName, UserEmail, StatusDate
 
        Affiche les référentiels avec leur configuration utilisateur locale et leur date d'activité.
        UserName et UserEmail sont extraits du fichier .git/config du référentiel
        (configuration locale uniquement, la config globale/système est ignorée).
 
    Exemple 12 : Cloner les référentiels avec préservation de l'identité utilisateur
        PS C:\> Import-DevDirectoryList -Path C:\Temp\repos.csv | Restore-DevDirectory -DestinationPath D:\Projects
 
        Clone les référentiels vers D:\Projects. Si les métadonnées du référentiel incluent les
        propriétés UserName et UserEmail, celles-ci sont automatiquement configurées dans chaque
        référentiel cloné à l'aide de 'git config --local user.name' et 'git config --local user.email'.
 
MODÈLES DE WORKFLOW
    Modèles DevDirManager courants :
 
    Inventaire et sauvegarde
        1. Analyser vos répertoires de développement
        2. Exporter en CSV/JSON pour sauvegarde
        3. Optionnellement publier sur GitHub Gist pour sauvegarde cloud
 
    Restaurer l'environnement de développement
        1. Obtenir la liste de référentiels (depuis sauvegarde ou Gist)
        2. Utiliser Restore-DevDirectory pour cloner tous les référentiels
        3. Maintient la structure de dossiers d'origine
 
    Maintenir l'inventaire à jour
        1. Utiliser Sync-DevDirectoryList périodiquement
        2. Ajoute automatiquement les nouveaux référentiels à votre inventaire
        3. Optionnellement cloner les référentiels manquants
 
    Synchronisation multi-machines
        1. Exporter la liste de référentiels depuis la machine principale
        2. Publier sur GitHub Gist
        3. Télécharger le Gist sur d'autres machines
        4. Restaurer les référentiels pour refléter la configuration
 
DÉTAILS TECHNIQUES
    Algorithme de recherche
        DevDirManager utilise un algorithme de recherche en largeur (BFS) lors de l'analyse
        des structures de répertoires. Cette approche :
        - Minimise la profondeur de récursion pour les grandes arborescences de répertoires
        - Fournit une utilisation de la mémoire prévisible
        - Gère efficacement les hiérarchies profondes
        - Ignore les répertoires .git pour éviter d'analyser les éléments internes du référentiel
 
    Encodage UTF8
        Toutes les opérations de fichiers utilisent l'encodage UTF8 pour garantir :
        - Prise en charge des caractères internationaux
        - Compatibilité multiplateforme
        - Comportement cohérent sur Windows, Linux et macOS
 
    Préservation du type
        Les objets référentiels maintiennent leurs informations de type à travers la sérialisation :
        - Format XML : Automatique via Export-Clixml/Import-Clixml
        - Format CSV : Type inséré lors d'Import-DevDirectoryList
        - Format JSON : Type inséré lors d'Import-DevDirectoryList
 
    Vue de format personnalisée
        Les objets DevDirManager.Repository ont une vue de table personnalisée qui affiche :
        - RelativePath (pour identification facile)
        - RemoteName (pour montrer quel distant)
        - RemoteUrl (pour vérification)
        - UserName (identité utilisateur locale au référentiel)
        - UserEmail (email utilisateur local au référentiel)
        - StatusDate (activité la plus récente)
        Les autres propriétés sont disponibles mais masquées par défaut dans la vue tableau.
 
    Suivi de l'identité utilisateur
        DevDirManager extrait et préserve l'identité utilisateur locale au référentiel :
        - UserName et UserEmail sont lus uniquement de la section [user] de .git/config
        - La configuration git globale et système est intentionnellement ignorée
        - Lors du clonage de référentiels, Restore-DevDirectory définit automatiquement
          user.name et user.email dans le référentiel cloné si ces valeurs sont présentes
          dans les métadonnées du référentiel
        - Cela garantit que chaque référentiel maintient son identité de commit prévue
        - Utile pour gérer des référentiels avec différentes identités d'auteur
 
    Date d'activité du référentiel
        La propriété StatusDate représente l'activité la plus récente du référentiel :
        - Extraite de l'horodatage du commit de la référence HEAD actuelle
        - Lit .git/HEAD pour déterminer la référence de branche actuelle
        - Utilise l'heure de modification du fichier de référence de branche comme date de commit
        - Se rabat sur l'heure de modification du dossier .git si HEAD n'est pas disponible
        - Fournit un moyen simple d'identifier les référentiels récemment actifs
 
SYSTÈME DE JOURNALISATION
    DevDirManager utilise le système de journalisation PSFramework pour fournir des
    informations de diagnostic complètes. Tous les messages de journalisation prennent
    en charge l'internationalisation, avec des localisations disponibles en anglais (en-us),
    français (fr-fr) et espagnol (es-es).
 
    Niveaux de journalisation
        Le module utilise les niveaux de journalisation de PSFramework pour catégoriser les messages :
        - Debug : Informations de diagnostic détaillées pour le dépannage
        - Verbose : Messages informatifs sur les opérations normales
        - System : Opérations de configuration et au niveau système
        - Warning : Problèmes non critiques qui n'arrêtent pas l'exécution
        - Error : Erreurs qui peuvent empêcher l'achèvement des opérations
 
    Affichage des messages de journalisation
        Utilisez les paramètres communs de PowerShell pour contrôler la visibilité des journaux :
        - -Verbose : Affiche les messages de niveau Verbose et supérieurs
        - -Debug : Affiche les messages de niveau Debug et tous les autres niveaux
 
        Exemple :
        PS C:\> Get-DevDirectory -RootPath C:\Projects -Verbose
 
    Fonctionnalités de journalisation PSFramework
        DevDirManager exploite les capacités de journalisation avancées de PSFramework :
        - Création automatique de fichiers journaux pour les diagnostics persistants
        - Journalisation structurée avec balises pour le filtrage
        - Modèles de messages pour une internationalisation cohérente
        - Configuration à l'exécution des fournisseurs de journalisation
 
        Configurer les fournisseurs de journalisation :
        PS C:\> Set-PSFLoggingProvider -Name logfile -FilePath C:\Logs\DevDirManager.log
        PS C:\> Set-PSFLoggingProvider -Name logfile -Enabled $true
 
        Afficher les messages enregistrés :
        PS C:\> Get-PSFMessage | Where-Object ModuleName -eq 'DevDirManager'
 
    Internationalisation
        Les messages de journalisation sont automatiquement localisés en fonction de la
        culture actuelle de PowerShell ($PSCulture). Langues prises en charge :
        - Anglais (en-us) : Par défaut
        - Français (fr-fr) : Français
        - Espagnol (es-es) : Español
 
        Remplacer la culture pour les tests :
        PS C:\> [System.Threading.Thread]::CurrentThread.CurrentUICulture = 'fr-fr'
        PS C:\> Get-DevDirectory -RootPath C:\Projects -Verbose
 
    Modèles de journalisation courants
        Opérations d'analyse de référentiels :
        - GetDevDirectory.ScanStart : Lorsque l'analyse du répertoire commence
        - GetDevDirectory.RepositoryFound : Chaque fois qu'un référentiel est découvert
        - GetDevDirectory.ScanComplete : Résumé lorsque l'analyse se termine
 
        Opérations d'import/export :
        - ImportDevDirectoryList.Start : L'opération d'importation commence
        - ExportDevDirectoryList.FormatResolved : Format de fichier déterminé
        - ImportDevDirectoryList.CompleteCSV/JSON/XML : Succès de l'importation
 
        Opérations de clonage/restauration :
        - RestoreDevDirectory.CloneFailed : Erreurs de git clone
        - RestoreDevDirectory.Complete : Résumé lorsque la restauration se termine
 
        Opérations de synchronisation :
        - SyncDevDirectoryList.SyncStart : Le processus de synchronisation commence
        - SyncDevDirectoryList.RemoteUrlMismatch : Conflits d'URL détectés
        - SyncDevDirectoryList.Complete : Compte final de référentiels
 
    Dépannage avec les journaux
        En cas de problèmes :
        1. Réexécuter la commande avec -Verbose pour voir la progression détaillée
        2. Utiliser -Debug pour un maximum de détails de diagnostic
        3. Vérifier les journaux PSFramework : Get-PSFMessage | Where-Object Level -eq Error
        4. Examiner les balises d'opération spécifiques pour le dépannage ciblé
        5. Activer la journalisation de fichiers pour les enregistrements de diagnostic persistants
 
        Exemple de workflow de dépannage :
        PS C:\> Get-DevDirectory -RootPath C:\Projects -Verbose -Debug
        PS C:\> Get-PSFMessage | Where-Object Tag -contains "GetDevDirectory"
        PS C:\> Get-PSFMessage | Where-Object Level -eq Error | Format-List *
 
MOTS-CLÉS
    Git, Référentiel, DevOps, Contrôle de source, Gestion de répertoires, Inventaire,
    Sauvegarde, Restauration, Synchronisation, GitHub, Gist, PSFramework, Configuration,
    Journalisation, Internationalisation
 
VOIR AUSSI
    Get-DevDirectory
    Export-DevDirectoryList
    Import-DevDirectoryList
    Restore-DevDirectory
    Sync-DevDirectoryList
    Publish-DevDirectoryList
    about_PSFramework_Configuration
    Get-PSFConfig
    Set-PSFConfig