Connessione Azure Boards in 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. Connessione 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 Connessione Azure DevOps Server a GitHub Enterprise Server.

Prerequisiti

  • È necessario avere un progetto Azure Boards o Azure DevOps. Se non si ha ancora un progetto, crearne uno.
  • È necessario essere membri del gruppo Project Amministrazione istrators. Se il progetto è stato creato, si dispone delle autorizzazioni.
  • Per connettersi, è necessario essere un amministratore o un proprietario del repository GitHub. È 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 PAT, assicurarsi di configurare l'accesso Single Sign-On (SSO) per il pat nell'account GitHub. Questa operazione è necessaria per ottenere un elenco di repository di un'organizzazione con l'autenticazione SSO SAML (Security Assertion Markup Language) configurata.

Connessione Azure Boards in un repository GitHub.

  1. Accedere al progetto Azure DevOps.

  2. Selezionare Impostazioni>progetto Connessioni GitHub.

    Screenshot of open Project Settings>GitHub connections.

  3. Se è la prima volta che si effettua una connessione dal progetto, scegliere Connessione account GitHub per usare le credenziali dell'account GitHub.

    Screenshot of first time connecting with GitHub credentials.

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

    Quando ci si connette usando l'account GitHub, usare le credenziali dell'account GitHub per l'autenticazione. Per usare pat, vedere Aggiungere una connessione GitHub tramite PAT. Per connettersi 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, viene chiesto di accedere usando le credenziali di GitHub. Scegliere un account per il quale si è un amministratore del repository.

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

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

    Screenshot of message where no more repositories exist to connect.

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

Scegliere i repository

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

  1. La finestra di dialogo Aggiungi repository GitHub visualizza e seleziona automaticamente tutti i repository GitHub.com per cui si è amministratori per l'organizzazione selezionata. Deselezionare tutti i repository che non si desidera partecipare all'integrazione.

    Screenshot showing GitHub repos.

    Suggerimento

    È consigliabile connettere un repository GitHub solo ai progetti definiti in una singola organizzazione di Azure DevOps. Connessione lo stesso repository GitHub per i progetti definiti in due o più organizzazioni Di Azure DevOps possono causare imprevisti Collegamento di menzioni AB#. 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 ad altra organizzazione, viene visualizzato il messaggio seguente.

    Screenshot of message where no more repositories exist to connect.

  2. Al termine, seleziona Salva.

Confermare la connessione

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

    Screenshot showing confirming GitHub repositories.

  2. Specificare la password di GitHub per confermare.

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

Screenshot of list of connected repositories.

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. Tuttavia, se è necessario usare un token di accesso personale, seguire queste procedure.

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 of New GitHub connection dialog, choosing Personal Access Token.

    Per creare un token di accesso personale di GitHub, passare a GitHub Developer Impostazioni > Token di accesso personali.

  2. Immettere il pat e scegliere Connessione.

    Screenshot showing entered PAT.

  3. Scegliere 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, è necessario installare anche l'app Azure Boards per GitHub. Verificare la connessione in precedenza in questo articolo.

Registrare Azure DevOps in GitHub come app OAuth

Se si prevede di usare OAuth per connettere Azure DevOps con GitHub Enterprise Server, è prima necessario registrare 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 of sign in for GitHub Enterprise server.

  2. Aprire le impostazioni>di Impostazioni> Developer Oauth Apps>New OAuth App (Nuova app OAuth).

    Screenshot showing sequence for New OAuth App.

  3. Immettere le informazioni per registrare l'applicazione.

    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 showing app to register.

  4. Selezionare Registra applicazione.

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

    Screenshot of Client ID and Client Secret for the registered OAuth application.

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 of Open Organization Settings, OAuth configurations.

  4. Immettere le informazioni e quindi selezionare Crea.

    OAuth configurations dialog.

Connessione Azure DevOps Services a GitHub Enterprise Server

Importante

Per connettere Azure DevOps Services a GitHub Enterprise Server, gitHub Enterprise Server deve essere sufficientemente accessibile da Internet. Assicurarsi che DNS di Azure possa risolvere il nome del server GitHub Enterprise e 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. Si è verificato un messaggio di errore comune quando si verificano problemi di connettività:

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

Se si verifica questo errore, verificare che il server sia accessibile. 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.

    First connection, choose GitHub Enterprise Server.

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

    Screenshot of New GitHub connection dialog, choose GitHub Enterprise Server.

  2. Selezionare il metodo di autenticazione.

    Screenshot showing authentication method dialog.

    Connessione con OAuth

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

    Screenshot of New GitHub Enterprise connection, OAuth connection dialog.

    Connessione 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 Connessione.

    Screenshot of New GitHub Enterprise connection, Personal access token connection dialog.

    Connessione con nome utente e password

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

    Screenshot of New GitHub Enterprise connection screen, User Name connection dialog.

  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 of repositories listed.

    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 si basa su vari protocolli di autenticazione per supportare la connessione. Le modifiche apportate all'ambito di autorizzazione o alle credenziali di autenticazione di un utente possono causare la revoca dei 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 seguenti sono supportate in base alla piattaforma GitHub a cui ci si vuole connettere.

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 supportano l'integrazione con GitHub.com e repository GitHub Enterprise Server. Azure DevOps Servers 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 di GitHub aprire Impostazioni dal menu del profilo.
    Screenshot of open profile, choose Settings.

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

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

    Screenshot of Organization access with organizations without access.

Risolvere i problemi di accesso

Quando la connessione di Azure Boards a GitHub non ha più accesso, viene visualizzato lo stato di avviso nell'interfaccia utente con un rosso-X. Passare il puntatore del mouse sull'avviso e indica che le credenziali non sono più valide. Per risolvere il problema, rimuovere la connessione e ricreare una nuova connessione.

Screenshot of failed connection.

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 pat può essere stato revocato o gli ambiti di autorizzazione necessari sono stati modificati e non sono sufficienti.

    • L'utente potrebbe aver perso le autorizzazioni di amministratore nel 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 non funzionerà come previsto. Le menzioni degli elementi di lavoro all'interno di GitHub possono essere ritardate o mai visualizzate in Azure DevOps Services. Questo problema si verifica 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 forniti in Connessione dalla documentazione di Azure Boards.

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

Connessione a più organizzazioni di Azure DevOps

Se si connette il repository GitHub a due o più progetti definiti in più organizzazioni di Azure DevOps, ad esempio dev.azure.com/Contoso e dev.azure.com/Fabrikam, è possibile ottenere risultati imprevisti quando si usano menzioni AB# per collegarsi agli elementi di lavoro. Questo problema si verifica perché gli ID degli elementi di lavoro non sono univoci nelle organizzazioni di Azure DevOps, quindi AB#12 può fare riferimento a un elemento di lavoro nell'organizzazione Contoso o Fabrikam. Pertanto, quando un elemento di lavoro viene menzionato in un messaggio di commit o in una richiesta pull, entrambe le organizzazioni tentano di creare un collegamento a un elemento di lavoro con un ID corrispondente (se presente).

In generale, un utente intende collegare una menzione AB# a un singolo elemento di lavoro in uno dei progetti. Tuttavia, se un elemento di lavoro dello stesso ID esiste in entrambi gli account, i collegamenti vengono creati per entrambi gli elementi di lavoro, causando probabilmente confusione.

Attualmente, non è possibile risolvere questo problema, quindi è consigliabile connettere un singolo repository GitHub solo a una singola organizzazione di Azure DevOps.

Nota

Quando si effettua la connessione usando l'app Azure Boards per GitHub, l'app impedisce la connessione a due organizzazioni diverse. Se un repository GitHub non è connesso correttamente all'organizzazione Azure DevOps errata, è necessario contattare il proprietario dell'organizzazione per rimuovere la connessione prima di poter aggiungere il repository all'organizzazione Azure DevOps corretta.

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

Se l'organizzazione usa il modello di processo XML ospitato o XML locale per personalizzare l'esperienza di rilevamento del lavoro e si vuole collegare e visualizzare i tipi di collegamento GitHub dalla sezione Sviluppo nei moduli degli elementi di lavoro, sarà necessario aggiornare le definizioni XML per i tipi di elemento di lavoro.

Ad esempio, se si vogliono collegare storie utente e bug ai commit e alle richieste pull di GitHub dalla sezione Sviluppo , è necessario 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 di codice seguente per supportare i tipi di collegamenti esterni: GitHub Commit e GitHub Pull Request.

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

Quando viene aggiornata, 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>  

Passaggi successivi