Anslut Azure Boards till GitHub (moln)

Azure DevOps Services

Använd GitHub.com lagringsplatser för din programvaruutveckling och ditt Azure Boards-projekt för att planera och spåra ditt arbete. Anslut projektet och lagringsplatsen så att dina GitHub-incheckningar och pull-begäranden länkas till dina arbetsobjekt i Azure Boards.

Kommentar

Azure Boards och Azure DevOps Services stöder integrering med GitHub.com- och GitHub Enterprise Server-lagringsplatser. Om du vill ansluta från en lokal Azure DevOps Server kan du läsa Anslut Azure DevOps Server till GitHub Enterprise Server.

Förutsättningar

  • Du måste ha ett Azure Boards- eller Azure DevOps-projekt. Om du inte har något projekt än skapar du ett.
  • Du måste vara medlem i gruppen Projektadministratörer. Om du har skapat projektet har du behörighet.
  • Du måste vara administratör eller ägare av GitHub-lagringsplatsen för att ansluta till. Du kan ansluta till flera GitHub-lagringsplatser så länge du är administratör för dessa lagringsplatser.

Autentiseringsalternativ

Följande autentiseringsalternativ stöds baserat på den GitHub-plattform som du vill ansluta till.

GitHub.com

GitHub Enterprise Server

Kommentar

Om du väljer att ansluta Github till PAT kontrollerar du att du konfigurerar enkel inloggning (SSO) för PAT på ditt GitHub-konto. Detta krävs för att kunna hämta en lista över lagringsplatser för en organisation med SAML-autentisering (Security Assertion Markup Language) konfigurerad.

Anslut Azure Boards till en GitHub-lagringsplats.

  1. Logga in på ditt Azure DevOps-projekt.

  2. Välj Projektinställningar>GitHub-anslutningar.

    Screenshot of open Project Settings>GitHub connections.

  3. Om det är första gången du upprättar en anslutning från projektet väljer du Anslut ditt GitHub-konto för att använda dina autentiseringsuppgifter för GitHub-kontot.

    Screenshot of first time connecting with GitHub credentials.

    Annars väljer du Ny anslutning och väljer din autentiseringsmetod i dialogrutan Ny Anslut ion.

    När du ansluter med ditt GitHub-konto använder du dina autentiseringsuppgifter för GitHub-kontot för att autentisera. Information om hur du använder PAT finns i Lägga till en GitHub-anslutning med HJÄLP av PAT. Information om hur du ansluter till en GitHub Enterprise Server finns i Registrera Azure DevOps i GitHub som en OAuth-app.

Lägga till en GitHub-anslutning med GitHub-autentiseringsuppgifter

Du kan ansluta upp till 500 GitHub-lagringsplatser till ett Azure Boards-projekt.

  1. Om det är första gången du ansluter till GitHub från Azure Boards uppmanas du att logga in med dina GitHub-autentiseringsuppgifter. Välj ett konto som du är lagringsplatsadministratör för.

  2. Välj det GitHub-konto eller den organisation som du vill ansluta till. Endast de organisationer som du äger eller är administratör för visas.

    Om alla lagringsplatser för en organisation redan har anslutits till Azure Boards visas följande meddelande.

    Screenshot of message where no more repositories exist to connect.

  3. Ange dina GitHub-autentiseringsuppgifter. Om du har tvåfaktorautentisering aktiverat anger du autentiseringskoden som GitHub skickade till dig och väljer Verifiera. Annars identifierar systemet automatiskt din GitHub-organisation eftersom ditt GitHub-konto tidigare har associerats med ditt Azure DevOps Services-konto.

Välj lagringsplatserna

När du har autentiserats kan du välja de lagringsplatser som du vill ansluta till.

  1. Dialogrutan Lägg till GitHub-lagringsplatser visas automatiskt och markerar alla GitHub.com lagringsplatser som du är administratör för för den organisation som du har valt. Avmarkera alla lagringsplatser som du inte vill delta i integreringen.

    Screenshot showing GitHub repos.

    Dricks

    Vi rekommenderar att du endast ansluter en GitHub-lagringsplats till projekt som definierats i en enda Azure DevOps-organisation. Anslut samma GitHub-lagringsplats till projekt som definierats i två eller flera Azure DevOps-organisationer kan leda till oväntade AB#-omnämnandelänk. Mer information finns i Felsöka Integrering av GitHub och Azure Boards.

    Om alla lagringsplatser redan är anslutna till den aktuella eller andra organisationen visas följande meddelande.

    Screenshot of message where no more repositories exist to connect.

  2. När du är klar väljer du Spara.

Bekräfta anslutningen

  1. Granska GitHub-sidan som visas och välj sedan Godkänn, Installera och auktorisera.

    Screenshot showing confirming GitHub repositories.

  2. Ange ditt GitHub-lösenord för att bekräfta.

  3. När du är klar bör du se den nya anslutningen med de valda lagringsplatserna i listan.

Screenshot of list of connected repositories.

Information om hur du ändrar konfigurationen eller hanterar Azure Boards-appen för GitHub finns i Ändra lagringsplatsåtkomst till Azure Boards.

Lägga till en GitHub-anslutning med hjälp av PAT

Vi rekommenderar att du använder dina autentiseringsuppgifter för GitHub-kontot för att ansluta till din GitHub-lagringsplats. Men om du behöver använda en PAT gör du det genom att följa dessa procedurer.

Dricks

När du skapar din GitHub PAT kontrollerar du att du inkluderar dessa omfång: repo, read:user, user:email, admin:repo_hook.

  1. Välj Personlig åtkomsttoken.

    Screenshot of New GitHub connection dialog, choosing Personal Access Token.

    Om du vill skapa en GitHub PAT går du till GitHub Developer Inställningar > Personliga åtkomsttoken.

  2. Ange PAT och välj Anslut.

    Screenshot showing entered PAT.

  3. Välj de lagringsplatser som du vill ansluta till projektet genom att följa de procedurer som beskrivs i Välj lagringsplatserna tidigare i den här artikeln.

  4. Om det är första gången du ansluter till ett GitHub-konto eller en organisation från Azure Boards måste du också installera Azure Boards-appen för GitHub. Bekräfta anslutningen tidigare i den här artikeln.

Registrera Azure DevOps i GitHub som en OAuth-app

Om du planerar att använda OAuth för att ansluta Azure DevOps till din GitHub Enterprise Server måste du först registrera programmet som en OAuth-app. Mer information finns i Skapa en OAuth-app.

Registrera Azure DevOps Services

  1. Logga in på webbportalen för din GitHub Enterprise-server.

    Screenshot of sign in for GitHub Enterprise server.

  2. Öppna Inställningar> Developer-inställningar>Oauth Apps>Ny OAuth-app.

    Screenshot showing sequence for New OAuth App.

  3. Ange information för att registrera ditt program.

    För webbadressen till startsidan anger du organisationens organisations-URL.
    För url: en för återanrop av auktorisering använder du följande mönster för att konstruera URL:en.

    {Azure DevOps Services Organization URL}/_admin/oauth2/callback

    Till exempel:

    https://dev.azure.com/fabrikam/_admin/oauth2/callback

    Screenshot showing app to register.

  4. Välj Registrera program.

  5. Klient-ID och klienthemlighet för ditt registrerade OAuth-program visas.

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

Registrera din OAuth-konfiguration i Azure DevOps Services

  1. Logga in på webbportalen för Azure DevOps Services.

  2. Lägg till GitHub Enterprise Oauth-konfigurationen i din organisation.

  3. I Organisationsinställningar väljer du Oauth-konfigurationer>Lägg till Oauth-konfiguration.

    Screenshot of Open Organization Settings, OAuth configurations.

  4. Ange din information och välj sedan Skapa.

    OAuth configurations dialog.

Anslut Azure DevOps Services till GitHub Enterprise Server

Viktigt!

Om du vill ansluta Azure DevOps Services till din GitHub Enterprise Server måste GitHub Enterprise Server vara tillräckligt tillgänglig från Internet. Kontrollera att Azure DNS kan matcha ditt GitHub Enterprise Server-namn och att brandväggen tillåter åtkomst från Azure Data Center IP-adresser. Information om hur du fastställer IP-adressintervallet finns i Ip-intervall för Microsoft Azure Data Center. Ett vanligt felmeddelande som uppstår när det finns anslutningsproblem är:

Det gick inte att matcha fjärrnamnet: "github-enterprise-server.contoso.com"

Om det här felet uppstår kontrollerar du att servern är tillgänglig. Mer information finns i Vanliga frågor och svar om Azure DNS.

  1. Välj Projektinställningar>GitHub-anslutningar>GitHub Enterprise Server för en förstagångsanslutning.

    First connection, choose GitHub Enterprise Server.

    Eller välj GitHub Enterprise Server i dialogrutan Ny GitHub-anslutning.

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

  2. Välj autentiseringsmetod.

    Screenshot showing authentication method dialog.

    Anslut med OAuth

    Välj den konfiguration som du konfigurerade i steg 4 i Registrera din OAuth-konfiguration i Azure DevOps Services och välj sedan Anslut.

    Screenshot of New GitHub Enterprise connection, OAuth connection dialog.

    Anslut med en personlig åtkomsttoken

    Ange URL:en för din GitHub Enterprise-server och autentiseringsuppgifterna för personlig åtkomsttoken som identifieras av servern. Välj sedan Anslut.

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

    Anslut med användarnamn och lösenord

    Ange URL:en för din GitHub Enterprise-server och autentiseringsuppgifterna för administratörskontot som identifieras av servern och välj sedan Anslut.

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

  3. I dialogrutan visas alla lagringsplatser som du har GitHub-administrationsbehörighet för. Du kan växla mellan Min och Alla för att avgöra om andra visas och sedan kontrollera de som du vill lägga till. Välj Spara när du är klar.

    Screenshot of repositories listed.

    Dricks

    Du kan bara upprätta en anslutning till lagringsplatser som definierats under en GitHub-organisation. Om du vill ansluta ett projekt till andra lagringsplatser som definierats i en annan GitHub-organisation måste du lägga till en annan anslutning.

  4. Om det är första gången du ansluter till ett GitHub-konto eller en organisation från Azure Boards installerar du även Azure Boards-appen för GitHub. Bekräfta anslutningen tidigare i den här artikeln.

Lös anslutningsproblem

Azure Boards-GitHub-integreringen förlitar sig på olika autentiseringsprotokoll för att stödja anslutningen. Ändringar i en användares behörighetsomfång eller autentiseringsuppgifter kan orsaka återkallande av GitHub-lagringsplatser som är anslutna till Azure Boards.

En översikt över den integrering som Azure Boards-appen för GitHub stöder finns i Azure Boards-GitHub-integrering.

Autentiseringsalternativ som stöds

Följande autentiseringsalternativ stöds baserat på den GitHub-plattform som du vill ansluta till.

Plattform

GitHub.com

GitHub Enterprise Server

Azure DevOps Services

  • GitHub.com användarkonto
  • Personlig åtkomsttoken (PAT)
  • OAuth
  • PAT
  • Användarnamn plus lösenord

Azure DevOps Server 2020

Inte tillämpligt

  • PAT
  • Användarnamn plus lösenord

Azure DevOps Server 2019

Inte tillämpligt

  • OAuth
  • PAT
  • Användarnamn plus lösenord

Kommentar

Med Azure Boards-appen för GitHub stöder Azure Boards och Azure DevOps Services integrering med GitHub.com- och GitHub Enterprise Server-lagringsplatser. Azure DevOps Servers 2019 och senare versioner stöder endast integrering med GitHub Enterprise Server-lagringsplatser. Integrering med andra Git-lagringsplatser stöds inte.

Bevilja åtkomst till Azure Boards-organisationen

Om integreringen mellan Azure Boards och GitHub inte fungerar som förväntat kontrollerar du att du har beviljat organisationsåtkomst.

  1. Öppna Inställningar från din profilmeny från GitHub-webbportalen.
    Screenshot of open profile, choose Settings.

  2. Välj Program under Integreringar>Auktoriserade OAuth Apps Azure Boards>.

  3. Under Organisationsåtkomst löser du eventuella problem som kan uppstå. Välj Bevilja för att bevilja åtkomst till organisationer som visar sig ha en väntande åtkomstbegäran.

    Screenshot of Organization access with organizations without access.

Lösa åtkomstproblem

När Azure Boards-anslutningen till GitHub inte längre har åtkomst visas en aviseringsstatus i användargränssnittet med en red-X. Hovra över aviseringen och det anger att autentiseringsuppgifterna inte längre är giltiga. Åtgärda problemet genom att ta bort anslutningen och återskapa en ny anslutning.

Screenshot of failed connection.

Du kan lösa problemet genom att tänka på följande:

  • Om anslutningen använder OAuth:

    • Azure Boards-programmet fick åtkomst nekad för en av lagringsplatserna.

    • GitHub kan vara otillgängligt/oåtkomligt. Den här otillgängligheten kan bero på ett avbrott i antingen tjänsten eller ett infrastruktur-/nätverksproblem lokalt. Du kan kontrollera tjänststatus från följande länkar:

      Ta bort och återskapa anslutningen till GitHub-lagringsplatsen. Den här återskapade anslutningen gör att GitHub uppmanas att auktorisera Azure Boards igen.

  • Om anslutningen använder en PAT:

    • PAT kan ha återkallats eller de behörighetsomfång som krävs har ändrats och är otillräckliga.

    • Användaren kan ha förlorat administratörsbehörigheter på GitHub-lagringsplatsen.

      Återskapa PAT och se till att omfånget för token innehåller de behörigheter som krävs: repo, read:user, user:email, admin:repo_hook.

Lösa en bruten GitHub Enterprise Server-anslutning

Om du har migrerat från Azure DevOps Server till Azure DevOps Services med en befintlig GitHub Enterprise Server-anslutning fungerar inte din befintliga anslutning som förväntat. Omnämnanden av arbetsobjekt i GitHub kan fördröjas eller aldrig visas i Azure DevOps Services. Det här problemet beror på att motringnings-URL:en som är associerad med GitHub inte längre är giltig.

Överväg följande lösningar:

  • Ta bort och återskapa anslutningen: Ta bort och återskapa anslutningen till GitHub Enterprise Server-lagringsplatsen. Följ stegen i dokumentationen för Anslut från Azure Boards.

  • Åtgärda webhooks-URL:en: Gå till GitHubs sida för lagringsplatsinställningar och redigera webhooks-URL:en för att peka på url:en för den migrerade Azure DevOps Services-organisationen: https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview

Anslut till flera Azure DevOps-organisationer

Om du ansluter din GitHub-lagringsplats till två eller flera projekt som har definierats i mer än en Azure DevOps-organisation, till exempel dev.azure.com/Contoso och dev.azure.com/Fabrikam, kan du få oväntade resultat när du använder AB# -omnämnanden för att länka till arbetsobjekt. Det här problemet beror på att arbetsobjekts-ID:t inte är unika för Azure DevOps-organisationer, så AB#12 kan referera till ett arbetsobjekt i antingen Contoso- eller Fabrikam-organisationen. När ett arbetsobjekt nämns i ett incheckningsmeddelande eller en pull-begäran försöker båda organisationerna skapa en länk till ett arbetsobjekt med ett matchande ID (om det finns ett).

I allmänhet avser en användare att ett AB# -omnämnande länkar till ett enda arbetsobjekt i ett av projekten. Men om det finns ett arbetsobjekt med samma ID i båda kontona skapas länkar för båda arbetsobjekten, vilket sannolikt orsakar förvirring.

För närvarande finns det inget sätt att kringgå det här problemet, så vi rekommenderar att du ansluter en enda GitHub-lagringsplats endast till en enda Azure DevOps-organisation.

Kommentar

När du upprättar anslutningen med hjälp av Azure Boards-appen för GitHub hindrar appen dig från att ansluta till två olika organisationer. Om en GitHub-lagringsplats är felaktigt ansluten till fel Azure DevOps-organisation måste du kontakta organisationens ägare för att ta bort anslutningen innan du kan lägga till lagringsplatsen i rätt Azure DevOps-organisation.

Uppdatera XML-definitioner för utvalda typer av arbetsobjekt

Om din organisation använder den värdbaserade XML- eller lokala XML-processmodellen för att anpassa arbetsspårningsmiljön och du vill länka till och visa GitHub-länktyperna från avsnittet Utveckling i arbetsobjektformulären måste du uppdatera XML-definitionerna för arbetsobjekttyperna.

Om du till exempel vill länka användarberättelser och buggar till GitHub checkar in och hämtar begäranden från avsnittet Utveckling måste du uppdatera XML-definitionerna för användarberättelser och buggar.

Följ sekvensen med uppgifter som tillhandahålls i värdbaserad XML-processmodell för att uppdatera XML-definitionerna. För varje typ av arbetsobjekt letar du upp Group Label="Development" avsnittet och lägger till följande två rader i följande kodsyntax för att stödja de externa länktyperna: GitHub Commit och GitHub Pull Request.

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

När den uppdateras bör avsnittet visas på följande sätt.

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

Nästa steg