Skip to main content

Définition des contournements de ruleset pour les migrations de dépôts

Lors de la migration de référentiels avec GitHub Enterprise Importer, l’évaluation des ensembles de règles au niveau de l’organisation et de l’entreprise peut entraîner l’échec des push Git, sauf si les migrations de référentiels sont ajoutées à la liste de contournement avec le mode Exempt .

Contexte

Lorsque vous importez un référentiel avec GitHub Enterprise Importer, un service interne pousse les données Git du référentiel vers GitHub, en regroupant les références pour optimiser les performances. Cela introduit un cas possible où l’évaluation des rulesets au niveau de l’organisation ou de l’entreprise par rapport aux références poussées peut expirer, entraînant l’échec de la migration du dépôt dans son ensemble.

Comme GitHub Enterprise Importer étiquette ses poussées Git comme des opérations de migration, vous pouvez créer des contournements de règles qui s’appliquent uniquement aux migrations de dépôts et non à d’autres acteurs. Cela empêche les évaluations des rulesets d’expirer et de provoquer des échecs de migration.

« Toujours autoriser » ou « Exempter »

Les contournements des règles se déclinent en deux types : « toujours autoriser » et « exemption ». Leurs différences sont subtiles, mais essentielles pour le cas des migrations de référentiels.

ModeComportement
Toujours autoriserL’ensemble de règles sera évalué et le ou les acteurs sélectionnés seront invités à contourner
ExemptésLe ruleset ne sera pas évalué et aucune invite de contournement ne sera affichée

La distinction essentielle, dans le cadre des migrations Git, n’est pas de savoir si le ruleset sera validé ou rejeté (« toujours autoriser  » suffirait dans ce cas), mais s’il est évalué ou non (ce qui nécessite des contournements de type « exempt  »).

Ajout du contournement

Les étapes suivantes vous guident dans la configuration des contournements de l’ensemble de règles requis pour les migrations. Vous aurez besoin des autorisations d’administrateur d’organisation ou d’administrateur d’entreprise pour modifier les ensembles de règles respectifs.

  1. Dans les paramètres de votre organisation, développez la section Référentiel , puis accédez aux ensembles de règles.

  2. Accédez au jeu de règles que vous souhaitez mettre à jour. Dans la section Liste de contournement , vous verrez une liste vide ou des contournements déjà configurés.

  3. Si les migrations de référentiels ne sont pas présentes dans la liste de contournement, cliquez sur Ajouter un contournement. Une liste déroulante s’affiche pour répertorier les acteurs de contournement disponibles ; Cochez la case en regard des migrations de référentiels et notez que l’entrée apparaît dans votre liste de contournement avec un mode par défaut d’Always Allow.

  4. Cliquez sur le menu ··· dans l’entrée migrations du référentiel. Vous verrez deux options en mode et une action de suppression. Sélectionnez Exempt. Ne laissez pas le mode défini sur Toujours autoriser ; comme indiqué ci-dessus, les contournements Toujours autoriser permettent tout de même l’évaluation, ce qui est précisément ce qui expire. La liste des contournements affiche désormais Migrations de référentiel avec le mode Exempt.

  5. Faites défiler vers le bas de la page du jeu de règles, puis cliquez sur Enregistrer les modifications. Le contournement prend effet immédiatement pour les exécutions de migration suivantes.

Effets secondaires et de sécurité

Comme indiqué ci-dessus, GitHub Enterprise Importer utilise un chemin spécifique pour pousser les données Git, et le contournement Migrations de référentiel cible uniquement ce chemin — il n’existe aucun chemin permettant aux utilisateurs ordinaires ou aux pushs Git vers des dépôts existants de contourner les rulesets à l’aide du contournement Migrations de référentiels.

Il est recommandé de conserver tous les contournements Migrations de référentiel en place tant que vous exécutez des migrations. Une fois les migrations terminées, le contournement en place ne pose aucun risque de sécurité.