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

Azure DevOps サービス

コミットとプル要求が作業項目に自動的にリンクされるように、Azure Boards プロジェクトを GitHub.com リポジトリに接続します。 この統合により、チームが GitHub で開発している間に、Azure Boards で作業を計画および追跡できます。

接続後、次のことができます。

  • コミット、ブランチ、プル要求を作業項目に自動的にリンクする
  • Azure Boards から開発の進行状況を直接監視する
  • AI 支援開発のための作業項目で GitHub Copilot を使用する

Note

Azure Boards では、GitHub.com と GitHub Enterprise Server の両方との統合がサポートされています。 オンプレミスの Azure DevOps Server から接続するには、「 Azure DevOps Server を GitHub Enterprise Server に接続する」を参照してください。

Prerequisites

Category Requirements
Permissions - プロジェクト コレクション管理者 グループのメンバー プロジェクトを作成した場合、アクセス許可があります。
接続するGitHubリポジトリの- 管理者または所有者。 これらのリポジトリの管理者であれば、複数のGitHub リポジトリに接続できます。
プロジェクト メンバーシップ プロジェクト メンバー

認証オプション

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

GitHub.com

GitHub エンタープライズサーバー

Note

PAT を使用して接続する場合は、GitHub アカウントでそれに対してシングル サインオン (SSO) を構成します。 SAML 認証を使用する組織のリポジトリを一覧表示するには、SSO が必要です。

Azure BoardsをGitHub リポジトリに接続する

  1. プロジェクトにサインインします(https://dev.azure.com/{Your_Organization/Your_Project})。

  2. プロジェクト設定>GitHub 接続 を選択します。

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

  3. 初めて接続する場合は、[ GitHub アカウントを接続 する] を選択して、GitHub 資格情報で認証します。

    GitHub のクレデンシャルで初めて接続する際のスクリーンショット

    後続の接続の場合は、 [新しい接続 ] を選択し、認証方法を選択します。

    代わりに PAT を使用して接続するには、「 PAT を使用して GitHub 接続を追加する」を参照してください。 GitHub Enterprise Server については、 GitHub の Azure DevOps を OAuth アプリとして登録するを参照してください。

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

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

  1. GitHub 資格情報を使用してサインインします。 リポジトリ管理者であるアカウントを選択します。

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

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

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

  3. GitHub資格情報を入力します。 2 要素認証を有効にしている場合は、GitHub によって送信されたコードを入力し、[ 確認] を選択します。

GitHub リポジトリを追加する

認証が完了したら、接続するリポジトリを選択します。

  1. [ GitHub リポジトリの追加 ] ダイアログでは、選択した組織の管理者であるすべてのリポジトリが表示され、事前選択されます。 接続しないリポジトリをクリアします。

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

    Tip

    予期しない AB# メンション リンクを回避するために、各 GitHub リポジトリを 1 つの Azure DevOps 組織のプロジェクトに接続します。 詳細については、「接続の 問題を解決する」を参照してください。

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

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

  2. 保存を選びます。

接続を確認する

  1. GitHub ページで、[承認]、[インストール]、および[承認]を選択します。

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

  2. GitHub の資格情報を入力して確認します。

  3. 選択したリポジトリが一覧表示された新しい接続が表示されます。

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

GitHubの構成を変更したり、Azure Boards アプリを管理したりするには、「change repository access to Azure Boards」を参照してください。

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

Important

より安全なMicrosoft Entraトークンを、リスクの高い個人アクセス トークンよりも使用することを検討してください。 詳細については、「 PAT 使用量の削減」を参照してください認証ガイダンスを確認して、ニーズに適した認証メカニズムを選択します。

GitHubでは、きめ細かくクラシックな AT がサポートされます。 きめ細かい AT により、リポジトリのアクセスとアクセス許可をより細かく制御できます。

詳細な PAT アクセス許可

きめ細かい PAT を作成するアカウントには、接続する各リポジトリへの管理者アクセス権が必要です。 詳細な PAT を作成するときに、接続するリポジトリを選択し、次のリポジトリのアクセス許可を付与します。

許可 Access 用途
Metadata 読み 取り 専用 リポジトリ メタデータへのアクセス。 GitHubリポジトリのアクセス許可を選択すると、このアクセス許可が自動的に必要になります。
内容 読み取りと書き込み 作業項目にリンクするためのコミットを一覧表示し、作業項目からブランチを作成します。
Webhook 読み取りと書き込み 接続の更新とシークレットローテーションのための Webhook の作成と管理。
プルリクエスト 読み取りと書き込み 作業項目のコメントにリンクまたはメンションするプル要求を一覧表示し、 AB# リンクを追加して pull request の説明を追加します。
問題 読み取りと書き込み Optional. GitHub問題の一覧を表示し、AB# リンクを問題の説明に追加するために必要です。

詳細な PAT のリソース所有者がGitHub組織である場合は、次の組織のアクセス許可も付与します。

許可 Access 用途
メンバー 読み 取り 専用 接続管理中に組織を一覧表示します。

Important

詳細な PAT アクセス許可では、トークン所有者に追加のリポジトリ アクセス権は付与されません。 Azure Boardsが webhook を管理し、webhook シークレットをローテーションできるように、トークン所有者は接続されている各リポジトリへの管理者アクセス権を持っている必要があります。 GitHub組織のポリシーでは、きめ細かい AT の承認をさらに制限または要求できます。

必要なアクセス許可がない場合は、一部の統合機能のみが機能する可能性があります。 アクセス許可の変更は、遅延後にも有効になります。 たとえば、 Webhook の 書き込みアクセス権を削除した後、既存の Webhook は次の webhook シークレットローテーションまで引き続き機能します。

クラシック PAT スコープ

クラシック PAT の場合は、次のスコープを含めます: repo, read:user, user:email, admin:repo_hook

PAT 接続の制限事項

詳細な PAT を使用する接続を含む PAT 接続では、次の機能はサポートされていません。

接続を作成する

  1. [新しい接続] ダイアログで [個人用アクセス トークン] を選択します。

    新しいGitHub接続ダイアログのスクリーンショット、個人用アクセス トークンを選択している状態です。

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

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

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

  3. 接続するリポジトリを選択します。 詳細については、「 GitHub リポジトリの追加」を参照してください。

  4. 初めて接続する場合は、GitHub 用の Azure Boards アプリをインストールします。 接続の確認を参照してください。

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

OAuth を使用して Azure DevOps を GitHub Enterprise Server に接続するには、アプリケーションを OAuth アプリとして登録します。 詳細については、「OAuth アプリの作成」を参照してください。

Azure DevOps サービスを登録する

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

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

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

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

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

    • ホームページ URL — 組織の URL。
    • 承認コールバック URL — パターン {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. [組織の設定>Oauth 構成>Oauth 構成の追加を選択します。

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

  3. 情報を入力し、[ 作成] を選択します。

    OAuth の構成ダイアログ。

Azure DevOps サービスを GitHub Enterprise Server に接続する

Important

GitHub Enterprise Server にはインターネットからアクセスできる必要があります。 Azure DNS がサーバー名を解決できることと、ファイアウォールで Azure Data Center の IP 範囲からのアクセスが許可されていることを確認します。 一般的なエラーは次のとおりです。

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

このエラーが表示された場合は、サーバーのアクセシビリティを確認してください。 詳細については、「Azure DNS FAQ」を参照してください。

  1. 初回接続の場合は、Project settings>GitHub connections>GitHub Enterprise Server を選択します。

    最初の接続、GitHub Enterprise Server オプション。

    後続の接続については、[新しい GitHub 接続] ダイアログから GitHub Enterprise Server を選択します。

    新しいGitHub接続ダイアログのスクリーンショット、GitHub Enterprise Serverを選択します。

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

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

    OAuth を使用して接続 する — OAuth 構成の登録で登録した OAuth 構成を選択し、[ 接続] を選択します。

    新しい GitHub Enterprise 接続のスクリーンショット,OAuth 接続ダイアログ.

    個人用アクセス トークンを使用して接続 する - GitHub Enterprise Server の URL と PAT を入力し、[ 接続] を選択します。

    新しいGitHubエンタープライズ接続のスクリーンショット,個人用アクセス トークン接続ダイアログ.

    GitHub 資格情報を使用して接続する - GitHub Enterprise Server の URL と管理者の資格情報を入力し、[ 接続] を選択します。

    新規GitHubエンタープライズ接続画面のスクリーンショット,ユーザー名接続ダイアログ.

  3. このダイアログには、管理者権限を持つすべてのリポジトリが一覧表示されます。 [マイニング] と [すべて] を切り替えて、追加するリポジトリを選択し、[保存] を選択します

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

    Tip

    各接続でサポートされている GitHub 組織は 1 つだけです。 別の組織からリポジトリを接続するには、別の接続を追加します。

  4. 初めて接続する場合は、GitHub 用の Azure Boards アプリをインストールします。 接続の確認を参照してください。

接続に関する問題の解決

Azure Boards-GitHub 統合では、接続を維持するために複数の認証プロトコルが使用されます。 アクセス許可スコープまたは資格情報を変更すると、リンクされた GitHub リポジトリを切断できます。

統合の概要については、 Azure Boards-GitHub 統合に関するページを参照してください。

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

次のサポートされている認証オプションは、接続先のGitHub プラットフォームによって異なります。

プラットフォーム

GitHub.com

GitHub エンタープライズサーバー

Azure DevOps サービス

  • GitHub.com ユーザーアカウント
  • 個人用アクセス トークン (PAT)
  • OAuth
  • PAT
  • GitHubの資格情報

Azure DevOps Server 2020

適用なし

  • PAT
  • GitHubの資格情報

Note

GitHub統合サポート:

  • Azure DevOps Services: GitHub用のAzure Boards アプリを使用して、GitHub.com およびGitHub Enterprise Server リポジトリの両方と統合します。
  • Azure DevOps Server 2020 以降: GitHub Enterprise Server リポジトリとの統合のみをサポートします。
  • その他の Git リポジトリ: 統合はサポートされていません。

Azure Boards の組織アクセス権を付与する

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

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

  2. アプリケーションIntegrations>Authorized OAuth Apps>Azure Boards を選択します。

  3. 組織のアクセス で、アクセス要求保留中と表示されている任意の組織のために 許可 を選択します。

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

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

GitHub への Azure Boards 接続がアクセスできなくなると、UI に赤色の X アラートが表示されます。 アラートにカーソルを合わせて、資格情報が無効であることを確認します。 接続を削除し、新しい接続を作成します。

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

  • OAuth 接続

    • いずれかのリポジトリに対して Azure Boards のアクセスが拒否されました。

    • サービスの停止またはネットワークの問題により、GitHub または Azure DevOps に到達できない可能性があります。 状態の確認: GitHub | Azure DevOps

      接続を削除して再作成します。 GitHub では、Azure Boards の再認証を求められます。

  • PAT 接続:

    • PAT が取り消されたか、そのアクセス許可スコープが不十分です。

    • ユーザーは、GitHub リポジトリに対する管理者アクセス許可を持っていない可能性があります。

      必要なスコープ ( repo, read:user, user:email, admin:repo_hook) を使用して PAT を再作成します。 詳細については、「PAT を使用するためのベスト プラクティス」を参照してください。

GitHub Enterprise Server の接続障害を解決する

既存の GitHub Enterprise Server 接続を使用して Azure DevOps Server から Azure DevOps Services に移行した場合、コールバック URL が無効になったため、GitHub の作業項目のメンションが遅延または欠落する可能性があります。

  • 接続を削除して再作成する - 「Azure DevOps Services を GitHub Enterprise Server に接続する」の手順に従います。

  • Webhook URL を修正 する - GitHub リポジトリの設定で、移行された組織を指すように webhook URL を更新します。 https://dev.azure.com/{OrganizationName}/_apis/work/events?api-version=5.2-preview

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

GitHub リポジトリを複数の Azure DevOps 組織 (dev.azure.com/Contoso や dev.azure.com/Fabrikam など) のプロジェクトに接続すると、予期しない AB# メンション動作が発生する可能性があります。 作業項目 ID は組織間で一意ではありません。そのため、 AB#12 はどちらの組織の作業項目にも一致する可能性があります。 どちらの組織も、一致する ID へのリンクを試み、混乱を招く可能性があります。

この問題を回避するには、各 GitHub リポジトリを 1 つの Azure DevOps 組織にのみ接続します。

Note

GitHub 用の Azure Boards アプリは、複数の組織への接続を禁止します。 リポジトリが間違った組織に接続されている場合は、正しい組織に追加する前に、その組織の所有者に連絡して接続を削除してください。

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

組織で Hosted XML またはオンプレミスの XML プロセス モデルを使用している場合は、作業項目の種類の XML 定義を更新して、作業項目フォームの 開発 セクションに GitHub リンクの種類を表示します。

たとえば、ユーザー ストーリーやバグを GitHub コミットにリンクし、[ 開発 ] セクションから要求をプルするには、それらの作業項目の種類の XML 定義を更新します。

Hosted XML プロセス モデルの手順に従います。 作業項目の種類ごとに、 Group Label="Development" セクションを見つけ、 GitHub CommitGitHub Pull Request のリンクの種類をサポートする次の行を追加します。

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

FAQs

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

A: いいえ。 ユーザーにサインアウトさせ、新しいブラウザー セッションから GitHub 資格情報を使用して組織にサインインし直します。

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

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

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

A: 組織またはプロジェクトの管理者のみが新しいユーザーを招待できます。 管理者と協力してアクセス許可を取得するか、ユーザーの追加を依頼します。

Q: GitHub Enterprise ユーザーはAzure DevOpsに無料でアクセスできますか?

A: 詳細については、「ユーザーとアクセス許可の管理に関する FAQ/GitHub Enterpriseを参照してください。

次のステップ