Azure Boards を GitHub に接続する (クラウド)

Azure DevOps Services

ソフトウェア開発と Azure Boards プロジェクトに GitHub.com リポジトリを使用して、作業を計画および追跡します。 プロジェクトとリポジトリを接続すると、GitHub のコミットおよび pull request が Azure Boards の作業項目にリンクされます

Note

Azure Boards と Azure DevOps Services は、GitHub.com および GitHub Enterprise Server リポジトリとの統合をサポートしています。 オンプレミスの Azure DevOps Server から接続する場合は、「Azure DevOps Server を GitHub Enterprise Server に接続する」をご覧ください。

前提条件

  • AAzure Boards または Azure DevOps プロジェクトが必要です。 プロジェクトがまだない場合は、作成します。
  • プロジェクト管理者グループのメンバーである必要があります。 自分でプロジェクトを作成した場合は、アクセス許可を持っています。
  • 接続するには、GitHub リポジトリの管理者または所有者である必要があります。 複数の GitHub リポジトリの管理者であれば、それらのリポジトリに接続できます。

認証オプション

接続先の GitHub プラットフォームに基づいて、次の認証オプションがサポートされています。

GitHub.com

GitHub Enterprise Server

注意

PAT を使って Github を接続する場合は、GitHub アカウントで PAT 用のシングル サインオン (SSO) が構成されていることを確認してください。 Security Assertion Markup Language (SAML) で SSO 認証が構成された組織のリポジトリの一覧を取得できるためには、これが必要です。

Azure Boards を GitHub リポジトリに接続します。

  1. Azure DevOps プロジェクトにサインインします。

  2. [プロジェクトの設定]>[GitHub 接続] の順に選択します。

    [プロジェクト設定] > [GitHub 接続] を開くスクリーンショット。

  3. プロジェクトから初めて接続する場合は、[GitHub アカウントを接続する] を選んで GitHub アカウントの資格情報を使います。

    GitHub 資格情報を使用して初めて接続する場合のスクリーンショット。

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

    GitHub アカウントを使って接続するときは、GitHub アカウントの資格情報を使って認証を行います。 PAT を使用するには、「PAT を使用して GitHub 接続を追加する」を参照してください。 GitHub Enterprise Server に接続する場合は、「GitHub で Azure DevOps を OAuth アプリとして登録する」をご覧ください。

GitHub 資格情報を使用して GitHub 接続を追加する

最大 500 の GitHub リポジトリを Azure Boards プロジェクトに接続することができます。

  1. Azure Boards から GitHub に初めて接続する場合は、GitHub の資格情報を使ってサインインするように求められます。 自分が管理するリポジトリのアカウントを選びます。

  2. 接続する GitHub アカウントまたは組織を選択します。 自分が所有しているか、管理者になっている組織のみが、一覧に表示されます。

    組織のすべてのリポジトリが既に Azure Boards に接続されている場合は、次のメッセージが表示されます。

    接続するリポジトリが存在しないことを示すメッセージのスクリーンショット。

  3. GitHub の資格情報を入力します。 2 要素認証を有効にしている場合は、GitHub から送られてきた認証コードを入力して、[確認する] を選びます。 それ以外の場合、GitHub アカウントが Azure DevOps Services アカウントに関連付けられているため、システムは GitHub 組織を自動的に認識します。

リポジトリを選択する

認証されると、接続するリポジトリを選択できます。

  1. [GitHub リポジトリの追加] ダイアログでは、ユーザーが選んだ組織でユーザーが管理者になっているすべての GitHub.com リポジトリが自動的に表示されて、選択されます。 統合に加えたくないリポジトリの選択を解除します。

    GitHub リポジトリを示すスクリーンショット。

    ヒント

    1 つの Azure DevOps 組織だけで定義されているプロジェクトに GitHub リポジトリを接続することをお勧めします。 2 つ以上の Azure DevOps 組織に定義されているプロジェクトに同じ GitHub リポジトリを接続すると、予期しない AB# メンション リンクが発生する可能性があります。 詳細については、GitHub と Azure Boards 統合のトラブルシューティングに関する記事を参照してください。

    すべてのリポジトリが現在の組織または他の組織に既に接続されている場合は、次のメッセージが表示されます。

    接続するリポジトリが存在しないことを示すメッセージのスクリーンショット。

  2. 終了したら、 [保存] を選択します。

接続を確認する

  1. 表示される GitHub ページを確認してから、[Approve, Install, Authorize] (承認、インストール、認可) を選びます。

    GitHub リポジトリの確認を示すスクリーンショット。

  2. GitHub のパスワードを入力して確認します。

  3. 完了すると、選んだリポジトリとの新しい接続が一覧に表示されます。

接続済みリポジトリの一覧のスクリーンショット

構成の変更や、GitHub 用 Azure Boards アプリの管理については、Azure Boards へのリポジトリのアクセスの変更に関する記事をご覧ください。

PAT を使用して GitHub 接続を追加する

GitHub リポジトリに接続するには、GitHub アカウントの資格情報を使うことをお勧めします。 ただし、PAT を使う必要がある場合は、次の手順のようにします。

ヒント

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

  1. [個人用アクセス トークン] を選択します。

    [新しい GitHub 接続] ダイアログで [個人用アクセス トークン] が選択されているスクリーンショット。

    GitHub PAT を作成するには、[GitHub 開発者の設定] > [個人用アクセス トークン] に移動します。

  2. PAT を入力して、[接続] を選びます。

    PAT が入力されたスクリーンショット。

  3. 前の「リポジトリを選択する」で説明されている手順のようにして、プロジェクトに接続するリポジトリを選びます。

  4. Azure Boards から GitHub アカウントまたは組織に初めて接続する場合は、GitHub 用の Azure Boards アプリもインストールする必要があります。 この記事の前半にある「接続を確認する」をご覧ください。

GitHub で Azure DevOps を OAuth アプリとして登録する

OAuth を使って Azure DevOps を GitHub Enterprise Server に接続する予定の場合は、まずアプリケーションを OAuth アプリとして登録する必要があります。 詳細については、「OAuth アプリの作成」を参照してください。

Azure DevOps Services を登録する

  1. GitHub Enterprise サーバーの Web ポータルにサインインします。

    GitHub Enterprise サーバーのサインインのスクリーンショット。

  2. [設定]>[開発者向け設定]>[Oauth アプリ]>[新しい OAuth アプリ] を選択します。

    新しい OAuth アプリのシーケンスを示すスクリーンショット。

  3. 登録情報を入力します。

    [ホームページの URL] では、組織の組織 URL を指定します。
    [Authorization callback URL] (認可コールバック URL) では、次のパターンを使って URL を作成します。

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

    次に例を示します。

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

    登録するアプリを示すスクリーンショット。

  4. [アプリケーションの登録] を選択します。

  5. 登録された OAuth アプリケーションのクライアント IDクライアント シークレット

    登録済み OAuth アプリの クライアント ID と Client Secret のスクリーンショット。

Azure DevOps Services で OAuth の構成を登録する

  1. Azure DevOps Services の Web ポータルにサインインします。

  2. GitHub Enterprise Oauth の構成を組織に追加します。

  3. [組織の設定] で、[OAuth の構成]>[OAuth の構成を追加].

    [組織を開く] 設定 と OAuth 構成のスクリーンショット。

  4. プロジェクト情報を入力し、[作成]を選択します。

    OAuth の構成ダイアログ。

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

重要

Azure DevOps Services を GitHub Enterprise Server に接続するには、GitHub Enterprise Server にインターネットから十分にアクセスできる必要があります。 Azure DNS で GitHub Enterprise Server の名前を解決でき、ファイアウォールで Azure データ センターの IP アドレスからのアクセスが許可されていることを確認します。 IP アドレス範囲を確認するには、「Microsoft Azure データ センターの IP 範囲」を参照してください 。 接続の問題が存在する場合に発生する一般的なエラー メッセージは次のとおりです。

リモート名を解決できませんでした: 'github-enterprise-server.contoso.com'

このエラーが発生する場合は、サーバーにアクセスできることをチェックします。 詳細については、Azure DNS に関する FAQ を参照してください。

  1. 初めて接続する場合は、[プロジェクト設定]>[GitHub 接続]>[GitHub Enterprise Server] を選択します。

    初回接続、GitHub Enterprise Server を選ぶ。

    または、[新しい GitHub 接続] ダイアログで [GitHub Enterprise Server] を選びます。

    [新しい GitHub 接続] ダイアログ で [GitHub Enterprise Server] が選択されているスクリーンショット。

  2. 認証方法を選択します。

    認証方法ダイアログを示すスクリーンショット。

    OAuth で接続する

    「Azure DevOps Services で OAuth の構成を登録する」のステップ 4 で設定した構成を選んでから、[接続] を選びます。

    [新しい GitHub Enterprise 接続]、[OAuth 接続] ダイアログのスクリーンショット。

    個人用アクセス トークンを使用した接続

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

    新しい GitHub Enterprise 接続の [個人用アクセス トークン接続] ダイアログのスクリーンショット。

    ユーザー名とパスワードで接続

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

    [新しい GitHub Enterprise 接続] 画面の [ユーザー名接続] ダイアログのスクリーンショット。

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

    一覧表示されているリポジトリのスクリーンショット。

    ヒント

    1 つの GitHub 組織で定義されているリポジトリにのみ接続できます。 別の GitHub 組織で定義されている他のリポジトリにプロジェクトを接続するには、別の接続を追加する必要があります。

  4. Azure Boards から GitHub アカウントまたは組織に初めて接続する場合は、GitHub 用の Azure Boards アプリもインストールします。 この記事の前半にある「接続を確認する」をご覧ください。

接続に関する問題の解決

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

GitHub 用の Azure Boards アプリがサポートする統合の概要については、Azure Boards と GitHub の統合に関する記事をご覧ください。

サポートされている認証オプション

接続先の GitHub プラットフォームに基づいて、次の認証オプションがサポートされています。

プラットフォーム

GitHub.com

GitHub Enterprise Server

Azure DevOps Services

  • GitHub.com ユーザー アカウント
  • 個人用アクセス トークン (PAT)
  • OAuth
  • PAT
  • ユーザー名とパスワード

Azure DevOps Server 2020

適用なし

  • PAT
  • ユーザー名とパスワード

Azure DevOps Server 2019

適用なし

  • OAuth
  • PAT
  • ユーザー名とパスワード

注意

GitHub 用の Azure Boards アプリを使用すると、Azure Boards と Azure DevOps Services が、GitHub.com および GitHub Enterprise Server リポジトリとの統合をサポートします。 Azure DevOps Server 2019 以降のバージョンでは、GitHub Enterprise Server リポジトリとの統合のみがサポートされています。他の Git リポジトリとの統合はサポートされていません。

Azure Boards 組織にアクセスを許可する

Azure Boards と GitHub の統合が期待どおりに機能しない場合は、組織にアクセス権を付与したことを確認します。

  1. GitHub Web ポータルのプロファイル メニューから [設定] を開きます。
    開いているプロファイルのスクリーンショット、[設定] を選ぶ。

  2. [統合]>[認証済み OAuth アプリ]>[Azure Boards] の順に選択し [アプリケーション]を選択します。

  3. [組織のアクセス権] の下で、表示された問題を解決します。 [Access request pending] (保留中アクセス要求) があることが示されているすべての組織にアクセスを許可するには、[許可] を選びます。

    アクセス権のない組織の [Organization access] (組織のアクセス) のスクリーンショット。

アクセスの問題を解決する

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

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

この問題を解決するには、次の項目を考慮してください。

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

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

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

      GitHub リポジトリへの接続を削除して作成し直します。 接続を作成し直すと、GitHub で Azure Boards の再認証を求めるメッセージが表示されます。

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

    • PAT が取り消されたか、必要なアクセス許可範囲が変更されたりして、不十分である可能性があります。

    • ユーザーは、GitHub リポジトリに対する管理者権限を持っていない場合があります。

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

GitHub Enterprise Server の壊れた接続を解決する

既存の GitHub Enterprise Server 接続を使用して Azure DevOps Server から Azure DevOps Services に移行した場合、既存の接続は期待どおりに機能しません。 GitHub 内の作業項目のメンションが遅れたり、Azure DevOps Services に表示されなかったりする場合があります。 この問題は、GitHub に関連付けられているコールバック URL が無効になったために発生します。

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

  • 接続を削除して作成し直す: GitHub Enterprise Server リポジトリへの接続を削除して作成し直します。 Azure Boards からの接続に関するドキュメントに記載されている手順のようにしてください。

  • Webhook URL を修正する: [GitHub のリポジトリ設定] ページに移動し、移行された Azure DevOps 組織の URL を指すWebhook URL を編集します。https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview

複数の Azure DevOps 組織に接続する

dev.azure.com/Contoso やdev.azure.com/Fabrikam, など、複数の Azure DevOps 組織で定義されている 2 つ以上のプロジェクトに GitHub リポジトリを接続し、作業項目にリンクされている AB# メンションを使用すると予期しない結果が生じる場合があります。 この問題は、作業項目 ID が Azure DevOps 組織間で一意でないため、AB#12 が Contoso または Fabrikam 組織いずれかの作業項目を参照する可能性があるために発生します。 作業項目がコミット メッセージまたはプル要求でメンションされると、両方の組織は、一致する ID を持つ作業項目へのリンク (存在する場合) の作成を試みることができます。

一般に、ユーザーは、AB# メンションで、プロジェクトの 1 つの作業項目にリンクすることを意図しています。 しかし、同じ ID の作業項目が両方のアカウントに存在する場合は、両方の作業項目に対してリンクが作成され、混乱が生じる可能性があります。

現時点では、この問題を回避する方法はないため、1 つの GitHub リポジトリは 1 つの Azure DevOps 組織にのみ接続することをお勧めします。

Note

GitHub 用の Azure Boards アプリを使って接続すると、2 つの異なる組織に接続できなくなります。 GitHub リポジトリが誤って正しくない Azure DevOps 組織に接続された場合は、その組織の所有者に連絡して接続を削除してもらう必要があり、その後で正しい Azure DevOps 組織にリポジトリを追加できるようになります。

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

組織でホステッド XML またはオンプレミス XML プロセス モデルを使用して作業追跡エクスペリエンスをカスタマイズし、作業項目フォームの [開発] セクションから GitHub リンクの種類にリンクして表示する場合は、作業項目の種類の XML 定義を更新します。

たとえば、Development セクションからユーザー ストーリーやバグを GitHub のコミットや pull request にリンクする場合は、ユーザー ストーリーとバグの XML 定義を更新する必要があります。

ホストされた XML プロセス モデル」で提供されている一連のタスクに従って、XML 定義を更新してください。 外部リンクの種類 (GitHub CommitGitHub Pull Request) をサポートするには、作業項目の種類ごとに、Group Label="Development" セクションを見つけて、次のコード構文の 2 行を追加します。

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

よく寄せられる質問 (FAQ)

Q: Azure DevOps の一部のユーザーは GitHub ID を持っています。 新しい GitHub ユーザーとして組織に追加する必要がありますか?

A: いいえ。 ユーザーにサインアウトを依頼し、新しいブラウザー セッションから GitHub 資格情報を使用して組織にサインインし直します。 このアクションは、有効な GitHub ID を持つユーザーを確立するのに役立ちます。

Q: 私は組織の管理者で、GitHub ユーザーの招待を有効にするポリシーを有効にしました。 新しい GitHub ユーザーを招待できないのはなぜですか?

A: 設定が変更されたら、Azure DevOps からサインアウトし、新しいブラウザー セッションから、組織にサインインする dev.azure.com/{organizationName}organizationName.visualstudio.com、GitHub 資格情報を使用してサインインし直します。

Q: GitHub の資格情報でサインインしましたが、GitHub ユーザーを招待できないのはなぜですか?

A: 組織またはプロジェクト管理者のみが、新しいユーザーを組織に招待できます。 新しいユーザーを追加するために必要なアクセス許可をお持ちでない可能性があります。 管理者と協力して適切なアクセス許可を取得するか、管理者にユーザーを追加するよう依頼してください。

次のステップ