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
Accedere al portale Web per il server GitHub Enterprise.
Selezionare Impostazioni Impostazioni>App>Oauth>Nuova app OAuth.
Immettere le informazioni per registrare l'applicazione 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.
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
Selezionare Registra applicazione.
Viene visualizzata una pagina che fornisce l'ID client e il segreto client per l'applicazione OAuth registrata.
Registrare la configurazione OAuth in Azure DevOps Server
Accedere al portale Web per azure DevOps Server.
Aggiungere la configurazione Oauth di GitHub Enterprise alla raccolta di Azure DevOps Server.
Selezionare Impostazioni>di amministratore Configurazioni>Oauth Aggiungi configurazione Oauth.
Immettere le informazioni e quindi selezionare Crea.
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.
Aprire il portale Web per il server Azure DevOps.
Selezionare il logo di Azure DevOps per aprire Progetti e quindi scegliere il progetto Azure Boards da configurare per connettersi ai repository GitHub Enterprise.
Selezionare Impostazioni>progetto Connessioni GitHub.
Se è la prima volta che si effettua una connessione dal progetto, scegliere il metodo di autenticazione da usare per stabilire la connessione:
- Token di accesso personale, per informazioni dettagliate, vedere Connettersi usando un token di accesso personale.
- Nome utente e password, vedere Connettersi con un nome utente e una password.
In caso contrario, selezionare Nuova connessione e selezionare il metodo di autenticazione nella finestra di dialogo Nuova connessione.
Selezionare Impostazioni>progetto Connessioni>GitHub Connettere l'account GitHub Enterprise.
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).
Connettersi con un token di accesso personale
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
.Immettere l'URL per il server GitHub Enterprise e le credenziali del token di accesso personale riconosciute da tale server. Quindi selezionare Connetti.
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. Quindi scegliere Connetti.
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 .
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.
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:
- Individuare la sezione
Group Label="Development"
. - 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>