次の方法で共有


Azure DevOps Serverを GitHub (オンプレミス) に接続する

Azure DevOps Server |Azure DevOps Server 2022

Azure DevOps Server プロジェクトをGitHub リポジトリに接続する場合は、GitHubコミットと作業項目への pull request の間のリンクをサポートします。 GitHubを使用してソフトウェア開発を行い、Azure Boardsを使用して作業を計画および追跡できます。

Note

Azure DevOps Server では、GitHub.com および GitHub Enterprise Server リポジトリとの統合がサポートされています。 Azure DevOps Services から接続するには、「connect Azure Boards to GitHub」を参照してください。

Prerequisites

Category Requirements
Permissions - プロジェクト コレクション管理者 グループ のメンバーと、プロジェクト 共同作成者グループ。 自分でプロジェクトを作成した場合は、アクセス許可を持っています。
接続先の GitHub Enterprise Server の - Administrator
プロジェクト メンバーシップ プロジェクト メンバー。
GitHubとの統合 - Azure DevOps Server 2020.1.1 Patch 2. このパッチを適用しないと、GitHub Enterprise Server リポジトリにのみ接続できます。
Azure Boards GitHubGitHubの組織またはアカウントにインストールされます。

認証オプション

次の認証オプションがサポートされています。

Note

Azure DevOps Server 2020 では OAuth はサポートされていません。

Azure DevOps Serverを GitHub Enterprise Server に接続する

最大 250 個のGitHub リポジトリをAzure Boards プロジェクトに接続できます。

  1. Azure DevOps Serverの Web ポータルを開きます。

  2. Azure DevOps ロゴを選択して Projects を開き、GitHub Enterprise リポジトリに接続するように構成するAzure Boards プロジェクトを選択します。

  3. Project 設定>GitHub の接続 を選択します。

    プロジェクト設定とGitHub接続が開いているスクリーンショット

  4. プロジェクトからの接続を初めて行う場合は、接続を確立するために使用する認証方法を選択します。

    • GitHub 個人用アクセス トークン: 詳細については、「GitHub PAT を使用した接続」を参照してください。
    • GitHub資格情報: 詳細については、「GitHub資格情報を使用した接続を参照してください。

    初めてGitHubの認証情報で接続する場合のスクリーンショット

    それ以外の場合は、[新しい接続] を選択し、[新しい接続] ダイアログから認証方法を選択します。

GitHub個人用アクセス トークンを使用してAzure DevOps Serverを接続する

  1. GitHub PAT を作成するには、「GitHub PAT

    Tip

    GitHub PAT を作成するときは、repo, admin:repo_hook, read:user, user:email のスコープが含まれていることを確認します。

  2. GitHub Enterprise サーバーの URL と、そのサーバーによって認識される Personal アクセス トークン資格情報を入力します。 次に、 [接続] を選択します。

    GitHub PATでサインインする際のスクリーンショット。

GitHub資格情報を使用してAzure DevOps Serverを接続する

  1. GitHub Enterprise サーバーの URL と、そのサーバーによって認識される管理者アカウントの資格情報を入力します。 次に、[接続] を選択します。

    GitHub の認証情報を使用したサインインのスクリーンショット

  2. このダイアログには、GitHub管理者権限を持つすべてのリポジトリが一覧表示されます。 [自分のもの] と [すべて] を切り替えると、その他を表示するかどうかを決定できます。その後、追加したいものをチェックします。 終わったら [保存] を選択します。

    追加するリポジトリが選択されているスクリーンショット。

  3. Azure BoardsからGitHubアカウントまたは組織に初めて接続するには、GitHub用のAzure Boards アプリもインストールします。 「接続を確認する」に記載されている手順に従って、統合を完了します。

接続に関する問題の解決

Azure Boards GitHub統合は、接続をサポートするためにさまざまな認証プロトコルに依存します。 ユーザーのアクセス許可スコープまたは認証資格情報を変更すると、Azure Boardsに接続されているGitHub リポジトリが失効する可能性があります。

GitHub用Azure Boards アプリがサポートする統合の概要については、Azure Boards-GitHub 統合を参照してください。

GitHubへのAzure Boards接続がアクセスできなくなった場合は、ユーザー インターフェイスにアラートの状態が赤 X で表示されます。 アラートをポイントすると、資格情報が無効になっていることが示されます。 この問題を解決するには、接続を削除して、新しい接続を作成し直します。

失敗した接続のスクリーンショット。

次の解決策を検討してください。

  • 接続で OAuth を使っている場合:

    • Azure Boards アプリケーションは、いずれかのリポジトリに対してアクセスが拒否されました。

    • GitHubは使用できないか、到達できない可能性があります。 このように利用できなくなるのは、サービスの停止またはオンプレミスのインフラストラクチャやネットワークの問題が原因である可能性があります。 サービスの状態は、次のリンクからチェックできます。

      GitHub リポジトリへの接続を削除して再作成します。 この再作成された接続により、GitHubはAzure Boardsの再認証を求められます。

  • 接続が GitHub PAT を使用している場合:

    • GitHub PAT が取り消されたか、必要なアクセス許可スコープが変更され、不十分です。

    • ユーザーは、GitHub リポジトリの管理アクセス許可を失った可能性があります。

      GitHub PAT を再作成し、トークンのスコープに必要なアクセス許可 (repo, read:user, user:email, admin:repo_hook) が含まれていることを確認します。

選択した作業項目の種類の XML 定義を更新する

組織で、Hosted XML またはオンプレミスの XML プロセス モデルを使用して作業追跡をカスタマイズし、GitHubリンク型を作業項目フォームの開発セクションに統合する場合は、対応する作業項目の種類の XML 定義を更新する必要があります。

たとえば、作業項目フォームのDevelopmentセクション内でユーザーストーリーやバグをGitHubのコミットおよびプルリクエストにリンクするには、これらの作業項目タイプのXML定義を更新する必要があります。

XML 定義を変更するには、「ホストされた XML プロセス モデル」に記載されている手順を実行します。 作業項目の種類ごとに、以下の操作を行います。

  1. セクションを見つけます。
  2. 外部リンクの種類である GitHub Commit および GitHub Pull Request をサポートするには、次のコード行を追加します。

この統合により、Azure Boardsの作業項目から直接GitHubアクティビティをシームレスに追跡できます。

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

更新すると、セクションは次のように表示されるはずです。

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

次のステップ