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 接続] の順に選択します。

    Screenshot of open Project Settings>GitHub connections.

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

    Screenshot of first time connecting with GitHub credentials.

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

    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 に接続されている場合は、次のメッセージが表示されます。

    Screenshot of message where no more repositories exist to connect.

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

リポジトリを選択する

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

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

    Screenshot showing GitHub repos.

    ヒント

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

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

    Screenshot of message where no more repositories exist to connect.

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

接続を確認する

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

    Screenshot showing confirming GitHub repositories.

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

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

Screenshot of list of connected repositories.

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

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

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

ヒント

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

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

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

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

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

    Screenshot showing entered 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 ポータルにサインインします。

    Screenshot of sign in for GitHub Enterprise server.

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

    Screenshot showing sequence for New OAuth App.

  3. アプリケーションを登録するための情報を入力します。

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

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

    次に例を示します。

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

    Screenshot showing app to register.

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

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

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

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

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

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

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

    Screenshot of Open Organization Settings, OAuth configurations.

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

    OAuth configurations dialog.

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] を選択します。

    First connection, choose GitHub Enterprise Server.

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

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

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

    Screenshot showing authentication method dialog.

    OAuth で接続する

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

    Screenshot of New GitHub Enterprise connection, OAuth connection dialog.

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

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

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

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

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

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

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

    Screenshot of repositories listed.

    ヒント

    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 ポータルのプロファイル メニューから [設定] を開きます。
    Screenshot of open profile, choose Settings.

  2. [統合]>[認可された OAuth アプリ]>[Azure Boards][アプリケーション] を選択します。

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

    Screenshot of Organization access with organizations without access.

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

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

Screenshot of failed connection.

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

  • 接続で 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 のリポジトリ設定ページに移動し、Webhook の URL を編集して、移行後の Azure DevOps Services 組織の URL (https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview) を指すようにします

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

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

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

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

Note

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

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

組織でホストされた XML またはオンプレミス XML のプロセス モデルを使って作業追跡エクスペリエンスをカスタマイズしている場合、作業項目フォームの Development セクションから 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>  

次のステップ