5. Passaggio a GitHub

Servizi di Azure DevOps

Al termine della sincronizzazione iniziale, il repository è pronto per il cutover. Completa il cutover entro 21 giorni dall'avvio della sincronizzazione iniziale.

Importante

La fase di cutover si completa in genere in meno di 30 minuti, periodo durante il quale il repository di Azure DevOps è di sola lettura. Mentre il repository è di sola lettura, i push e gli aggiornamenti delle pull request sono bloccati, ma gli utenti possono comunque consultarlo e clonarlo. Inviare una notifica a tutti i team interessati prima di pianificare il cutover.

Prima di pianificare il passaggio

Confermare le condizioni seguenti:

  • Le sincronizzazioni incrementali sono corrette e aggiornate.
  • I rami, i tag e le pull request del repository GitHub sono presenti e corretti.
  • Tutti i team interessati ricevono una notifica.
  • Gli URL di Azure DevOps codificati in modo statico nelle pipeline, negli script e negli strumenti vengono individuati per essere aggiornati.

Annotazioni

La pianificazione, il monitoraggio e l'approvazione del cutover usano l'interfaccia della riga di comando di Azure DevOps. Dopo il cutover, verifichi il repository migrato sul portale GitHub. Per altre informazioni, vedere Completare le attività successive alla migrazione.

Pianifica il cutover

az devops migrations cutover set --org https://dev.azure.com/<org>
                                 --repository-id <repo-guid>
                                 --date "YYYY-MM-DDTHH:MM:SSZ"

Indicazioni sul fuso orario: Aggiungi Z per UTC oppure usa un offset come -08:00 per l'Ora del Pacifico. Se si omette il fuso orario, si presuppone il fuso orario locale. Per evitare ambiguità tra i team, includere Z o un offset esplicito.

Annulla un passaggio programmato

az devops migrations cutover cancel --org https://dev.azure.com/<org>
                                    --repository-id <repo-guid>

Annotazioni

Il cutover cancel comando funziona solo mentre la migrazione è ancora nella fase di sincronizzazione . Quando la fase passa a Cutover, il server rifiuta la richiesta di annullamento e l'interfaccia della riga di comando restituisce un codice di uscita diverso da zero. Se è necessario interrompere un cutover già in corso, usare az devops migrations abandon o contattare il team ELM.

Cosa accade durante il passaggio

  1. Il repository Azure DevOps viene inserito in uno stato di sola lettura controllato.
  2. ELM esegue la sincronizzazione finale. I delta rimanenti vengono applicati in GitHub.
  3. GitHub diventa il sistema di riferimento autorevole.
  4. Viene visualizzato un banner nella pagina del repository Azure DevOps che collega gli utenti al nuovo percorso di GitHub.
  5. Lo stato della migrazione è contrassegnato / comeMigrazione completata.

Monitorare lo stato di avanzamento del cutover

az devops migrations status --org https://dev.azure.com/<org>
                            --repository-id <repo-guid>

Attendere finché la migrazione non visualizza status: Succeeded e stage: Migrated.

Annotazioni

I processi ELM vengono eseguiti ogni 30-60 minuti. Se si programma il cutover non appena la migrazione entra nella fase di cutover, potrebbero trascorrere fino a 60 minuti prima che il processo di cutover si avvii.

Importante

Al termine del cutover, le richieste pull aperte in GitHub non vengono sincronizzate con Azure DevOps.

Revisione per il cutover

Se gli errori non risolti rimangono quando arriva il tempo di cutover pianificato, ELM sposta la migrazione a ReviewForCutover invece di continuare automaticamente. Ad esempio, questa condizione può verificarsi quando non è possibile eseguire la migrazione di alcune richieste pull. In questo stato, è necessario esaminare gli errori e decidere in modo esplicito se procedere.

Rivedi gli errori di transizione

az devops migrations cutover review --org https://dev.azure.com/<org>
                                    --repository-id <repo-guid>

Il comando restituisce un riepilogo degli elementi non risolti:

Campo Description
failedCount Numero di elementi di cui non è stata eseguita la migrazione.
blockedCount Numero di elementi bloccati dalle dipendenze.
pendingCount Numero di elementi ancora in sospeso.
totalUnprocessedCount Totale elementi che richiedono l'approvazione.
failedItems Elenco dettagliato di elementi non elaborati con stato, tipo e URL della richiesta pull.

Esaminare attentamente l'elenco failedItems in modo da comprendere quali elementi non vengono migrati se si sceglie di continuare.

Opzioni in ReviewForCutover

Dopo aver esaminato gli errori, scegliere una delle opzioni seguenti:

Opzione Funzionamento Quando utilizzare
Approva e procedi Accetta gli errori e procede al cutover. Hai esaminato tutti gli errori e accetti di procedere senza tali elementi.
Cancella data di passaggio Reimposta la sincronizzazione. La migrazione continua a essere sincronizzata. Vuoi prima risolvere i problemi e pianificare un nuovo cutover più tardi.
Riprogrammazione del cutover Reimposta la sincronizzazione con una nuova data di cutover. Eseguire az devops migrations cutover set --date <new> di nuovo per impostare una nuova data. Se i problemi vengono risolti entro la nuova data, il passaggio avviene automaticamente. Vuoi più tempo.
Eliminare la migrazione Elimina il record di migrazione. Viene scritto un evento di controllo; il repository di Azure DevOps di origine rimane invariato. Si vuole abbandonare completamente questa migrazione.
Sospendere la migrazione Sospende la sincronizzazione fino a quando non viene ripresa manualmente. È necessario sospendere tutte le attività durante l'analisi.

Approvare il cutover

Se decidi di continuare, approva il cutover accettando il numero di elementi da saltare:

az devops migrations cutover approve --org https://dev.azure.com/<org>
                                     --repository-id <repo-guid>
                                     --accept-failures <N>

Impostare <N> su un valore maggiore o uguale a totalUnprocessedCount dalla revisione del cutover.

Avvertimento

L'approvazione è irreversibile. Non esiste alcuna API per revocare un'approvazione. Se si approva per errore, l'unico percorso di ripristino è az devops migrations abandon seguito dalla ricreazione della migrazione.

Annotazioni

Se si verificano nuovi errori dopo la verifica e prima dell'approvazione, il comando viene rifiutato con un errore HTTP 400, segnalato come CLIError, che indica che il numero di errori non corrisponde più. Esegui di nuovo cutover review, prendi nota del valore aggiornato totalUnprocessedCount e riprova l'approvazione. Gli script e l'automazione possono corrispondere al codice di uscita diverso da zero.

Dopo l'approvazione, la migrazione passa a ReadyForCutover:

  • Se è già pianificata una data di cutover, il passaggio avviene automaticamente all'orario pianificato.
  • Se non è impostata alcuna data di cutover, pianificarne una per continuare.

Passo successivo