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 dell'apertura delle connessioni project Impostazioni> GitHub.

  3. Se è la prima volta che si effettua una connessione dal progetto, scegliere Connessione 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 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à connessi ad Azure Boards, viene 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 scegliere Verifica. In caso contrario, il sistema riconosce automaticamente l'organizzazione GitHub perché l'account GitHub è associato all'account 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 che mostra i repository GitHub.

    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 del messaggio in cui non esistono più repository per la connessione.

  2. Al termine, seleziona 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. 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 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 Impostazioni > Token di accesso personali.

  2. Immettere il pat e scegliere Connessione.

    Screenshot che mostra il pat immesso.

  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 dell'accesso per il server GitHub Enterprise.

  2. Aprire le impostazioni>di Impostazioni> Developer Oauth Apps>New OAuth App (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 di Open Organization Impostazioni, configurazioni OAuth.

  4. Immettere le informazioni e quindi selezionare Crea.

    Finestra di dialogo Configurazioni OAuth.

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.

    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.

    Connessione con OAuth

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

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

    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 della finestra di dialogo Nuova connessione GitHub Enterprise, connessione al token di accesso personale.

    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 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 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 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 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 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 non funziona come previsto. Le menzioni degli elementi di lavoro all'interno di GitHub potrebbero 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, puntando all'URL dell'organizzazione azure DevOps 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# che collegano 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. Quando un elemento di lavoro viene menzionato in un messaggio di commit o in una richiesta pull, entrambe le organizzazioni possono tentare 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

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 visualizzare i tipi di collegamento GitHub dalla sezione Sviluppo nei moduli dell'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>  

Domande frequenti (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 da una nuova sessione del browser accedere all'organizzazione con le credenziali di GitHub personali. Questa azione consentirà di stabilire gli utenti con identità GitHub valide.

D: Sono un'organizzazione Amministrazione istrator e ho attivato i criteri che consentono di 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 da una nuova sessione del browser, accedere di nuovo all'organizzazione dev.azure.com/{organizationName} o organizationName.visualstudio.com con le credenziali di GitHub.

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

R: solo le organizzazioni o i Amministrazione istrator possono invitare nuovi utenti a partecipare all'organizzazione. Potrebbe non essere necessaria l'autorizzazione necessaria per aggiungere nuovi utenti. Collaborare con l'amministratore per ottenere le autorizzazioni appropriate o chiedere loro di aggiungere l'utente.

Passaggi successivi