Connessione Azure DevOps Server a GitHub (locale)

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

Quando si connette il progetto Azure DevOps Server ai repository GitHub, è supportato il collegamento tra i commit di GitHub e le richieste pull agli elementi di lavoro. È possibile usare GitHub per lo sviluppo di software durante l'uso di Azure Boards per pianificare e tenere traccia del lavoro.

Nota

Azure DevOps Server 2020 locale supporta l'integrazione con repository GitHub.com e GitHub Enterprise Server. Per connettersi da Azure DevOps Services, vedere Connessione Azure Boards in GitHub.

Quando si connette il progetto Azure DevOps Server ai repository GitHub Enterprise Server, è supportato il collegamento tra i commit di GitHub e le richieste pull agli elementi di lavoro. È possibile usare GitHub Enterprise per lo sviluppo di software durante l'uso di Azure Boards per pianificare e tenere traccia del lavoro.

Nota

Azure DevOps Server 2019 locale supporta l'integrazione con i repository GitHub Enterprise Server. Per connettersi da Azure DevOps Services, vedere Connessione Azure Boards in GitHub.

Prerequisiti

Opzioni di autenticazione

Sono supportate le opzioni di autenticazione seguenti.

Nota

OAuth non è supportato per Azure DevOps Server 2020.

Registrare Azure DevOps in GitHub come app OAuth

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

Registrare Azure DevOps Server

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

    Screenshot of sign in for GitHub Enterprise Server.

  2. Selezionare Impostazioni> Impostazioni sviluppo>App Oauth>Nuova app OAuth.

    Screenshot showing sequence for getting to New OAuth App screen.

  3. Immettere le informazioni per registrare l'applicazione Azure DevOps Server.

    Screenshot of Azure DevOps Server project registration.

    Per l'URL della home page specificare l'URL pubblico della raccolta di progetti. È possibile trovare questo URL quando si apre la console di Amministrazione istration di Azure DevOps e si visualizza il nodo livello applicazione.

    Screenshot of Azure DevOps Server Administration Console, Application Tier.

    Per l'URL di callback di autorizzazione, usare il modello seguente per costruire l'URL.

    {Azure DevOps Server Public Url}/{Collection Name}/_admin/oauth2/callback

    Ad esempio:

    http://contoso/DefaultCollection/_admin/oauth2/callback

    https://tfs.contoso.com/MyCollection/_admin/oauth2/callback

  4. Selezionare Registra applicazione.

  5. Viene visualizzata una pagina che fornisce l'ID client e il segreto client per l'applicazione OAuth registrata.

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

Registrare la configurazione OAuth in Azure DevOps Server

  1. Accedere al portale Web per azure DevOps Server.

  2. Aggiungere la configurazione Oauth di GitHub Enterprise alla raccolta di Azure DevOps Server.

  3. Selezionare Amministrazione impostazioni>Configurazioni>Oauth Aggiungi configurazione Oauth.

    Screenshot showing step sequence to add OAuth configuration.

  4. Immettere le informazioni e quindi selezionare Crea.

    Screenshot of OAuth configuration dialog.

Connessione Azure DevOps Server a GitHub Enterprise Server

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

Nota

Connessione a più di 100 repository GitHub richiede l'aggiornamento di Azure DevOps Server 2020.1 o versione successiva.
Connessione ion per GitHub.com repository richiede Azure DevOps Server 2020.1.1 Patch 2 o versione successiva.

È possibile connettere fino a 100 repository GitHub a un progetto di Azure Boards. Questo limite non può essere modificato.

  1. Aprire il portale Web per il server Azure DevOps.

  2. Selezionare il logo di Azure DevOps per aprire Progetti e quindi scegliere il progetto Azure Boards da configurare per connettersi ai repository GitHub Enterprise.

  1. Selezionare Impostazioni>progetto Connessioni GitHub.

    Screenshot of open Project Settings>GitHub connections.

  2. Se è la prima volta che si effettua una connessione dal progetto, scegliere il metodo di autenticazione da usare per stabilire la connessione:

    Screenshot of first time connecting with GitHub credentials.

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

  1. Selezionare Impostazioni>progetto Connessioni> GitHub Connessione l'account GitHub Enterprise.

    Screenshot of Project settings, selected Integrations.

    In alternativa, scegliere un token di accesso personale o un nome utente e una password, se si usano tali credenziali.

Connessione con OAuth

Scegliere la configurazione configurata nel passaggio 4 di Registrare la configurazione OAuth in Azure DevOps Server. Selezionare Connect (Connetti).

Screenshot fo New GitHub Enterprise connection, OAuth dialog.

Connessione con un token di accesso personale

  1. Per creare un token di accesso personale, vedere Creazione di un token di accesso personale.

    Suggerimento

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

  2. Immettere l'URL per il server GitHub Enterprise e le credenziali del token di accesso personale riconosciute da tale server. Selezionare quindi Connessione.

Screenshot of sign in with PAT.

Connessione con nome utente e password

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

Screenshot of sign in with username and password.

  1. 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, scegliere Salva .

    Screenshot of repositories to select to add.

  2. Per connettersi a un account GitHub o a un'organizzazione da Azure Boards per la prima volta, è anche possibile installare l'app Azure Boards per GitHub. Completare l'integrazione seguendo le procedure descritte in Confermare la connessione.

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.

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.

Quando la connessione di Azure Boards a GitHub non ha più accesso, viene visualizzato lo stato di un avviso nell'interfaccia utente con una X rossa con una descrizione comando, ad esempio Impossibile connettersi a GitHub.

Prendere in considerazione le risoluzioni 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.

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

Se l'organizzazione usa il modello di processo XML ospitato o 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 dell'elemento di lavoro, è 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 aggiornato, 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