Condividi tramite


Connettere 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 Connettere Azure Boards a 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 Connettere Azure Boards a GitHub.

Prerequisiti

  • Integrazione con GitHub:
    • Connettersi ai repository GitHub.com installando Azure DevOps Server 2020.1.1 Patch 2. Senza questa patch, è possibile connettersi solo ai repository GitHub Enterprise Server.
    • Installare l'app Azure Boards per GitHub nelle organizzazioni o nell'account GitHub.
  • Connessione al progetto: connettersi a un progetto Azure Boards o Azure DevOps. Se non si ha ancora un progetto, crearne uno.
  • Autorizzazioni:
    • Essere membri del gruppo Project Collection Administrators e del gruppo Collaboratori del progetto. Se il progetto è stato creato, si dispone delle autorizzazioni.
    • Essere un amministratore di GitHub Enterprise Server a cui ci si connette.

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

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

    Screenshot che mostra la sequenza per il recupero nella schermata Nuova app OAuth.

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

    Screenshot della registrazione del progetto di Azure DevOps Server.

    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 di Azure DevOps e si visualizza il nodo livello applicazione.

    Screenshot della console di amministrazione del server Azure DevOps, livello applicazione.

    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 dell'ID client e del segreto client per l'applicazione OAuth registrata.

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 Impostazioni>di amministratore Configurazioni>Oauth Aggiungi configurazione Oauth.

    Screenshot che mostra la sequenza di passaggi per aggiungere la configurazione OAuth.

  4. Immettere le informazioni e quindi selezionare Crea.

    Screenshot della finestra di dialogo di configurazione OAuth.

Connettere Azure DevOps Server a GitHub Enterprise Server

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

Nota

La connessione a più di 100 repository GitHub richiede l'aggiornamento di Azure DevOps Server 2020.1 o versione successiva.
La connessione ai repository GitHub.com 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 dell'apertura delle connessioni GitHub delle impostazioni>del progetto.

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

    Screenshot della prima connessione con le credenziali di GitHub.

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

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

    Screenshot delle impostazioni del progetto, selezionate Integrazioni.

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

Connettersi con OAuth

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

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

Connettersi 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. Quindi selezionare Connetti.

Screenshot dell'accesso con PAT.

Connettersi con un nome utente e una password

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

Screenshot dell'accesso con nome utente e 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 dei repository da selezionare per l'aggiunta.

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

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.

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 token di accesso personale potrebbe essere revocato o gli ambiti di autorizzazione necessari sono stati modificati e non sono sufficienti.

    • L'utente potrebbe perdere le autorizzazioni amministrative 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 personalizza il rilevamento del lavoro usando il modello di processo XML ospitato o locale e vuole integrare i tipi di collegamento Di GitHub nella sezione Sviluppo dei moduli degli elementi di lavoro, è necessario aggiornare le definizioni XML per i tipi di elemento di lavoro corrispondenti.

Ad esempio, per collegare le storie utente e i bug ai commit e alle richieste pull di GitHub all'interno della sezione Sviluppo dei moduli degli elementi di lavoro, è necessario aggiornare le definizioni XML per questi tipi di elemento di lavoro.

Per modificare le definizioni XML, eseguire i passaggi descritti in Hosted XML Process Model (Modello di processo XML ospitato). Per ogni tipo di elemento di lavoro:

  1. Individuare la sezione Group Label="Development".
  2. Per supportare i tipi di collegamento esterno, GitHub Commit e GitHub Pull Request, aggiungere le righe di codice seguenti:

Questa integrazione consente di tenere traccia senza problemi delle attività di GitHub direttamente dagli elementi di lavoro in Azure Boards.

             <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