Connettere Azure Boards a GitHub (cloud)

Servizi di Azure DevOps

Usare GitHub.com repository per lo sviluppo software e il progetto di Azure Boards per pianificare e tenere traccia del lavoro. Connettere il progetto e il repository in modo che i commit e le richieste pull di GitHub vengano collegati agli elementi di lavoro in Azure Boards.

Nota

Azure Boards e Azure DevOps Services supportano l'integrazione con repository GitHub.com e GitHub Enterprise Server. Per connettersi da un server Azure DevOps locale, vedere Connettere Azure DevOps Server a GitHub Enterprise Server.

Prerequisiti

  • Requisiti del progetto: avere un progetto Azure DevOps. Se non si ha un progetto, crearne uno.

  • Autorizzazioni:

    • Essere un membro del gruppo Project Administrators. Se il progetto è stato creato, si dispone delle autorizzazioni.
    • Essere un amministratore o proprietario del repository GitHub a cui connettersi. È possibile connettersi a più repository GitHub, purché si sia un amministratore per tali repository.

Opzioni di autenticazione

Le opzioni di autenticazione seguenti sono supportate in base alla piattaforma GitHub a cui ci si vuole connettere.

GitHub.com

GitHub Enterprise Server

Nota

Se si sceglie di connettere GitHub con un pat, configurare l'accesso Single Sign-On (SSO) per il pat nell'account GitHub. Questa configurazione è necessaria per recuperare un elenco di repository da un'organizzazione con l'autenticazione SSO SAML (Security Assertion Markup Language) abilitata.

Connettere Azure Boards a un repository GitHub.

  1. Accedere al progetto (https://dev.azure.com/{Your_Organization/Your_Project}).

  2. Selezionare Impostazioni>progetto Connessioni GitHub.

    Screenshot dell'apertura delle connessioni GitHub delle impostazioni>del progetto.

  3. Se è la prima volta che ci si connette dal progetto, selezionare Connetti l'account GitHub per usare le credenziali dell'account GitHub.

    Screenshot della prima connessione con le credenziali di GitHub.

    In caso contrario, scegliere Nuova connessione e selezionare il metodo di autenticazione nella finestra di dialogo Nuova connessione.

    Quando ci si connette con l'account GitHub, usare le credenziali di GitHub per l'autenticazione. Per usare un token di accesso personale, vedere Aggiungere una connessione GitHub tramite PAT. Per la connessione a un server GitHub Enterprise, vedere Registrare Azure DevOps in GitHub come app OAuth.

Aggiungere una connessione GitHub con le credenziali di GitHub

È possibile connettere fino a 500 repository GitHub a un progetto di Azure Boards.

  1. Se è la prima volta che ci si connette a GitHub da Azure Boards, accedere usando le credenziali di GitHub. Scegliere un account per il quale si è un amministratore del repository.

  2. Selezionare l'account GitHub o l'organizzazione da connettere. Vengono elencate solo le organizzazioni di cui si è proprietari o di cui si è amministratori.

    Se tutti i repository per un'organizzazione sono già connessi ad Azure Boards, verrà visualizzato il messaggio seguente:

    Screenshot del messaggio in cui non esistono più repository per la connessione.

  3. Immettere le credenziali di GitHub. Se è abilitata l'autenticazione a due fattori, immettere il codice di autenticazione inviato da GitHub e selezionare Verifica. In caso contrario, il sistema riconoscerà automaticamente l'organizzazione GitHub perché l'account GitHub è associato all'account Azure DevOps Services.

Aggiungere repository GitHub

Dopo l'autenticazione, è possibile selezionare i repository da connettere.

  1. La finestra di dialogo Aggiungi repository GitHub viene visualizzata automaticamente e seleziona tutti i repository GitHub.com per cui si è amministratori nell'organizzazione selezionata. Deselezionare tutti i repository che non si desidera includere nell'integrazione.

    Screenshot che mostra i repository GitHub.

    Suggerimento

    Per evitare collegamenti di riferimento AB# imprevisti, è consigliabile connettere un repository GitHub ai progetti all'interno di una singola organizzazione di Azure DevOps. La connessione dello stesso repository GitHub ai progetti in più organizzazioni di Azure DevOps può causare problemi. Per altre informazioni, vedere Risolvere i problemi di integrazione di GitHub e Azure Boards.

    Se tutti i repository sono già connessi all'organizzazione corrente o a un'altra organizzazione, viene visualizzato il messaggio seguente:

    Screenshot del messaggio in cui non esistono più repository per la connessione.

  2. Dopo aver effettuato le selezioni, selezionare Salva.

Confermare la connessione

  1. Esaminare la pagina GitHub visualizzata e quindi scegliere Approva, Installa e Autorizza.

    Screenshot che mostra la conferma dei repository GitHub.

  2. Specificare la password di GitHub per confermare.

  3. Al termine, verrà visualizzata la nuova connessione con i repository selezionati elencati.

Screenshot dell'elenco dei repository connessi.

Per modificare la configurazione o gestire l'app Azure Boards per GitHub, vedere Modificare l'accesso al repository in Azure Boards.

Aggiungere una connessione GitHub tramite PAT

È consigliabile usare le credenziali dell'account GitHub per connettersi al repository GitHub. Se è necessario usare un token di accesso personale, seguire questa procedura.

Suggerimento

Quando si crea il pat di GitHub, assicurarsi di includere questi ambiti: repo, read:user, user:email, admin:repo_hook.

  1. Scegliere Token di accesso personale.

    Screenshot della finestra di dialogo Nuova connessione GitHub, scegliendo Token di accesso personale.

    Per creare un token di accesso personale di GitHub, passare a GitHub Developer Settings > Personal access tokens (Token di accesso personali).

  2. Immettere pat e selezionare Connetti.

    Screenshot che mostra il pat immesso.

  3. Selezionare i repository da connettere al progetto seguendo le procedure descritte in Scegliere i repository in precedenza in questo articolo.

  4. Se è la prima volta che ci si connette a un account GitHub o a un'organizzazione da Azure Boards, installare l'app Azure Boards per GitHub. Verificare la connessione in precedenza in questo articolo.

Registrare Azure DevOps in GitHub come app OAuth

Per usare OAuth per connettere Azure DevOps con GitHub Enterprise Server, registrare prima l'applicazione come app OAuth. Per altre informazioni, vedere Creare un'app OAuth.

Registrare Azure DevOps Services

  1. Accedere al portale Web per il server GitHub Enterprise.

    Screenshot dell'accesso per il server GitHub Enterprise.

  2. Aprire Impostazioni Impostazioni>App>Oauth>Nuova app OAuth.

    Screenshot che mostra la sequenza per La nuova app OAuth.

  3. Immettere le informazioni di registrazione.

    Per l'URL della home page specificare l'URL organizzazione dell'organizzazione.
    Per l'URL di callback di autorizzazione, usare il modello seguente per costruire l'URL.

    {Azure DevOps Services Organization URL}/_admin/oauth2/callback

    Ad esempio:

    https://dev.azure.com/fabrikam/_admin/oauth2/callback

    Screenshot che mostra l'app da registrare.

  4. Selezionare Registra applicazione.

  5. Vengono visualizzati l'ID client e il segreto client per l'applicazione OAuth registrata.

    Screenshot dell'ID client e del segreto client per l'applicazione OAuth registrata.

Registrare la configurazione OAuth in Azure DevOps Services

  1. Accedere al portale Web per Azure DevOps Services.

  2. Aggiungere la configurazione Oauth di GitHub Enterprise all'organizzazione.

  3. In Impostazioni organizzazione selezionare Configurazioni>Oauth Aggiungi configurazione Oauth.

    Screenshot delle configurazioni OAuth aperte delle impostazioni dell'organizzazione.

  4. Immettere le informazioni e quindi selezionare Crea.

    Finestra di dialogo Configurazioni OAuth.

Connettere Azure DevOps Services a GitHub Enterprise Server

Importante

Per connettere Azure DevOps Services a GitHub Enterprise Server, assicurarsi che GitHub Enterprise Server sia accessibile da Internet. Verificare che DNS di Azure sia in grado di risolvere il nome di GitHub Enterprise Server e che il firewall consenta l'accesso dagli indirizzi IP del data center di Azure. Per determinare l'intervallo di indirizzi IP, vedere Intervalli IP del data center di Microsoft Azure. Un messaggio di errore comune per i problemi di connettività è:

Impossibile risolvere il nome remoto: 'github-enterprise-server.contoso.com'

Se si verifica questo errore, controllare l'accessibilità del server. Per altre informazioni, vedere Domande frequenti su DNS di Azure.

  1. Selezionare Impostazioni>progetto Connessioni>GitHub GitHub Enterprise Server per una connessione per la prima volta.

    Prima connessione scegliere GitHub Enterprise Server.

    In alternativa, nella finestra di dialogo Nuova connessione GitHub selezionare GitHub Enterprise Server.

    Screenshot della finestra di dialogo Nuova connessione GitHub, scegliere GitHub Enterprise Server.

  2. Selezionare il metodo di autenticazione.

    Screenshot che mostra la finestra di dialogo del metodo di autenticazione.

    Connettersi con OAuth

    Scegliere la configurazione configurata nel passaggio 4 di Registrare la configurazione OAuth in Azure DevOps Services e quindi scegliere Connetti.

    Screenshot della finestra di dialogo Nuova connessione GitHub Enterprise, connessione OAuth.

    Connettersi con un token di accesso personale

    Immettere l'URL per il server GitHub Enterprise e le credenziali del token di accesso personale riconosciute da tale server. Quindi scegliere Connetti.

    Screenshot della finestra di dialogo Nuova connessione GitHub Enterprise, connessione al token di accesso personale.

    Connettersi con un nome utente e una password

    Immettere l'URL per il server GitHub Enterprise e le credenziali dell'account amministratore riconosciute da tale server e quindi selezionare Connetti.

    Screenshot della schermata Nuova connessione GitHub Enterprise, finestra di dialogo Connessione nome utente.

  3. La finestra di dialogo elenca tutti i repository per i quali si dispone dei diritti di amministrazione di GitHub. È possibile passare da Mine a All per determinare se vengono visualizzati altri utenti e quindi controllare quelli che si desidera aggiungere. Al termine, seleziona Salva.

    Screenshot dei repository elencati.

    Suggerimento

    È possibile stabilire una connessione ai repository definiti in un'unica organizzazione GitHub. Per connettere un progetto ad altri repository definiti in un'altra organizzazione GitHub, è necessario aggiungere un'altra connessione.

  4. Se è la prima volta che ci si connette a un account GitHub o a un'organizzazione da Azure Boards, si installa anche l'app Azure Boards per GitHub. Verificare la connessione in precedenza in questo articolo.

Risolvere i problemi di connessione

L'integrazione di Azure Boards-GitHub usa vari protocolli di autenticazione per mantenere la connessione. Le modifiche apportate all'ambito di autorizzazione o alle credenziali di autenticazione di un utente possono revocare i repository GitHub connessi ad Azure Boards.

Per una panoramica dell'integrazione supportata dall'app Azure Boards per GitHub, vedere Integrazione di Azure Boards-GitHub.

Opzioni di autenticazione supportate

Le opzioni di autenticazione supportate seguenti dipendono dalla piattaforma GitHub a cui ci si connette:

Piattaforma

GitHub.com

GitHub Enterprise Server

Servizi di Azure DevOps

  • GitHub.com account utente
  • Token di accesso personale
  • OAuth
  • Token di accesso personali
  • Nome utente e password

Azure DevOps Server 2020

Non applicabile

  • Token di accesso personali
  • Nome utente e password

Azure DevOps Server 2019

Non applicabile

  • OAuth
  • Token di accesso personali
  • Nome utente e password

Nota

Con l'app Azure Boards per GitHub, Azure Boards e Azure DevOps Services si integrano con repository GitHub.com e GitHub Enterprise Server. Azure DevOps Server 2019 e versioni successive supportano l'integrazione solo con i repository GitHub Enterprise Server. L'integrazione con altri repository Git non è supportata.

Concedere l'accesso all'organizzazione di Azure Boards

Se l'integrazione tra Azure Boards e GitHub non funziona come previsto, verificare di aver concesso l'accesso all'organizzazione.

  1. Dal portale Web GitHub aprire Impostazioni dal menu del profilo.
    Screenshot del profilo aperto, scegliere Impostazioni.

  2. Selezionare Applicazioni in Integrazioni app>OAuth autorizzate>di Azure Boards.

  3. In Accesso all'organizzazione risolvere eventuali problemi che potrebbero verificarsi. Selezionare Concedi per concedere l'accesso a tutte le organizzazioni che mostrano la presenza di una richiesta di Accesso in sospeso.

    Screenshot dell'accesso dell'organizzazione con le organizzazioni senza accesso.

Risolvere i problemi di accesso

Quando la connessione di Azure Boards a GitHub perde l'accesso, lo stato di un avviso con una X rossa viene visualizzato nell'interfaccia utente. Passare il puntatore del mouse sull'avviso per verificare che le credenziali non siano più valide. Per risolvere il problema, rimuovere la connessione e crearne una nuova.

Screenshot della connessione non riuscita.

Per risolvere questo problema, prendere in considerazione gli elementi seguenti:

  • Se la connessione usa OAuth:

    • L'applicazione Azure Boards ha negato l'accesso per uno dei repository.

    • GitHub potrebbe non essere disponibile/non raggiungibile. Questa indisponibilità potrebbe essere dovuta a un'interruzione del servizio o a un problema di infrastruttura/rete in locale. È possibile controllare lo stato del servizio dai collegamenti seguenti:

      Eliminare e ricreare la connessione al repository GitHub. Questa connessione ricreata fa sì che GitHub chiede di riautorizzare Azure Boards.

  • Se la connessione usa un token di accesso personale:

    • Il token di accesso personale potrebbe essere revocato o gli ambiti di autorizzazione necessari sono stati modificati e non sono sufficienti.

    • L'utente potrebbe non avere autorizzazioni di amministratore per il repository GitHub.

      Ricreare il pat e assicurarsi che l'ambito per il token includa le autorizzazioni necessarie: repo, read:user, user:email, admin:repo_hook.

Risolvere la connessione a GitHub Enterprise Server interrotta

Se è stata eseguita la migrazione da Azure DevOps Server ad Azure DevOps Services con una connessione GitHub Enterprise Server esistente, la connessione esistente potrebbe non funzionare come previsto. Le menzioni degli elementi di lavoro all'interno di GitHub potrebbero essere ritardate o mai visualizzate in Azure DevOps Services perché l'URL di callback associato a GitHub non è più valido. Prendere in considerazione le risoluzioni seguenti:

  • Rimuovere e ricreare la connessione: rimuovere e ricreare la connessione al repository GitHub Enterprise Server. Seguire la sequenza di passaggi descritti nella documentazione di Connect from Azure Boards (Connettersi da Azure Boards ).

  • Correggere l'URL del webhook: passare alla pagina delle impostazioni del repository di GitHub e modificare l'URL del webhook, puntando all'URL dell'organizzazione azure DevOps migrato: https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview

Connettersi a più organizzazioni di Azure DevOps

La connessione del repository GitHub ai progetti in più organizzazioni Di Azure DevOps, ad esempio dev.azure.com/Contoso e dev.azure.com/Fabrikam, può causare risultati imprevisti con menzioni AB# . Gli ID elemento di lavoro non sono univoci nelle organizzazioni di Azure DevOps, quindi AB#12 può fare riferimento a un elemento di lavoro in Contoso o Fabrikam. Quando un elemento di lavoro viene menzionato in un messaggio di commit o in una richiesta pull, entrambe le organizzazioni potrebbero tentare di collegarsi a un elemento di lavoro con l'ID corrispondente, causando confusione.

Per evitare questo problema, connettere un singolo repository GitHub a una sola organizzazione di Azure DevOps.

Nota

Quando ci si connette usando l'app Azure Boards per GitHub, l'app impedisce le connessioni a più organizzazioni. Se un repository GitHub è connesso all'organizzazione Azure DevOps errata, contattare il proprietario dell'organizzazione per rimuovere la connessione prima di aggiungere il repository all'organizzazione Azure DevOps corretta.

Aggiornare le definizioni XML per i tipi di elemento di lavoro selezionati

Aggiornare le definizioni XML per i tipi di elemento di lavoro se l'organizzazione usa il modello di processo XML ospitato o XML locale per personalizzare l'esperienza di rilevamento del lavoro e collegarsi e visualizzare i tipi di collegamento GitHub dalla sezione Sviluppo nei moduli dell'elemento di lavoro.

Ad esempio, per collegare le storie utente e i bug ai commit e alle richieste pull di GitHub dalla sezione Sviluppo , aggiornare le definizioni XML per le storie utente e i bug.

Seguire la sequenza di attività fornite nel modello di processo XML ospitato per aggiornare le definizioni XML. Per ogni tipo di elemento di lavoro, trovare la Group Label="Development" sezione e aggiungere le due righe seguenti nella sintassi del codice per supportare i tipi di collegamento esterno: GitHub Commit e GitHub Pull Request.

             <ExternalLinkFilter Type="GitHub Pull Request" />  
             <ExternalLinkFilter Type="GitHub Commit" />  

Dopo l'aggiornamento, la sezione dovrebbe essere visualizzata nel modo seguente.

<Group Label="Development">  
   <Control Type="LinksControl" Name="Development">  
      <LinksControlOptions ViewMode="Dynamic" ZeroDataExperience="Development" ShowCallToAction="true">  
         <ListViewOptions GroupLinks="false">   
         </ListViewOptions>  
         <LinkFilters>  
             <ExternalLinkFilter Type="Build" />  
             <ExternalLinkFilter Type="Integrated in build" />  
             <ExternalLinkFilter Type="Pull Request" />  
             <ExternalLinkFilter Type="Branch" />  
             <ExternalLinkFilter Type="Fixed in Commit" />  
             <ExternalLinkFilter Type="Fixed in Changeset" />  
             <ExternalLinkFilter Type="Source Code File" />  
             <ExternalLinkFilter Type="Found in build" />  
             <ExternalLinkFilter Type="GitHub Pull Request" />  
             <ExternalLinkFilter Type="GitHub Commit" />  
         </LinkFilters>  
      </LinksControlOptions>  
   </Control>  
</Group>  

Domande frequenti

D: Alcuni utenti di Azure DevOps hanno identità GitHub. È necessario aggiungerli come nuovi utenti di GitHub all'organizzazione?

R: No. Chiedere agli utenti di disconnettersi e quindi accedere di nuovo all'organizzazione con le credenziali di GitHub da una nuova sessione del browser. Questa azione stabilirà le identità di GitHub.

D: Sono un amministratore dell'organizzazione e ho abilitato i criteri per invitare gli utenti di GitHub. Perché non è possibile invitare nuovi utenti di GitHub?

R: Dopo aver modificato l'impostazione, disconnettersi da Azure DevOps e quindi accedere di nuovo all'organizzazione (dev.azure.com/{organizationName} o organizationName.visualstudio.com) con le credenziali di GitHub da una nuova sessione del browser.

D: È stato eseguito l'accesso con le credenziali di GitHub, ma perché non è possibile invitare gli utenti di GitHub?

R: Solo gli amministratori dell'organizzazione o del progetto possono invitare nuovi utenti a partecipare all'organizzazione. È possibile che non si disponga delle autorizzazioni necessarie per aggiungere nuovi utenti. Collaborare con l'amministratore per ottenere le autorizzazioni necessarie o chiedere loro di aggiungere l'utente.

Passaggi successivi