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 に接続する」をご覧ください。
前提条件
プロジェクト要件 : Azure DevOps プロジェクトがある。 プロジェクトがない場合は、作成します。
アクセス許可:
- プロジェクト管理者グループのメンバーである必要があります。 自分でプロジェクトを作成した場合は、アクセス許可を持っています。
- 接続するには、GitHub リポジトリの管理者または所有者である必要があります。 複数の GitHub リポジトリの管理者であれば、それらのリポジトリに接続できます。
認証オプション
接続先の GitHub プラットフォームに基づいて、次の認証オプションがサポートされています。
GitHub.com
GitHub Enterprise Server
Note
PAT を使って GitHub を接続する場合は、GitHub アカウントで PAT 用のシングル サインオン (SSO) を構成します。 この構成は、Security Assertion Markup Language (SAML) SSO 認証が有効になっている組織からリポジトリの一覧を取得するために必要です。
Azure Boards を GitHub リポジトリに接続します。
プロジェクトにサインインします(
https://dev.azure.com/{Your_Organization/Your_Project}
)。[プロジェクトの設定]>[GitHub 接続] の順に選択します。
プロジェクトから初めて接続する場合は、[GitHub アカウントを接続する] を選択し、GitHub アカウントの資格情報を使用します。
それ以外の場合は、[新しい接続] を選択し、[新しい接続] ダイアログから認証方法を選択します。
GitHub アカウントを使って接続するときは、GitHub の資格情報を使って認証を行います。 PAT を使用するには、「PAT を使用して GitHub 接続を追加する」を参照してください。 GitHub Enterprise Server に接続する場合は、「GitHub で Azure DevOps を OAuth アプリとして登録する」を参照してください。
GitHub 資格情報を使用して GitHub 接続を追加する
最大 500 の GitHub リポジトリを Azure Boards プロジェクトに接続することができます。
Azure Boards から GitHub に初めて接続する場合は、GitHub の資格情報を使ってサインインします。 自分が管理するリポジトリのアカウントを選びます。
接続する GitHub アカウントまたは組織を選択します。 自分が所有しているか、管理者になっている組織のみが、一覧に表示されます。
組織のすべてのリポジトリが既に Azure Boards に接続されている場合は、次のメッセージが表示されます。
GitHub の資格情報を入力します。 2 要素認証を有効にしている場合は、GitHub から送られてきた認証コードを入力して、[確認する] を選択します。 それ以外の場合、GitHub アカウントが Azure DevOps Services アカウントに関連付けられているため、GitHub 組織が自動的に認識されます。
GitHub リポジトリを追加する
認証されると、接続するリポジトリを選択できます。
[GitHub リポジトリの追加] ダイアログでは、選択した組織で管理者になっているすべての GitHub.com リポジトリが自動的に表示されて、選択されます。 統合に加えたくないリポジトリの選択を解除します。
ヒント
予期しない AB# メンションのリンクを防ぐために、GitHub リポジトリは 1 つの Azure DevOps 組織のプロジェクトに接続することをお勧めします。 同じ GitHub リポジトリを複数の Azure DevOps 組織のプロジェクトに接続すると、問題が発生する可能性があります。 詳細については、GitHub と Azure Boards 統合のトラブルシューティングに関する記事を参照してください。
すべてのリポジトリが現在の組織または別の組織に既に接続されている場合は、次のメッセージが表示されます。
選択後、[保存] を選択します。
接続を確認する
表示される GitHub ページを確認してから、[Approve, Install, Authorize] (承認、インストール、認可) を選びます。
GitHub のパスワードを入力して確認します。
完了すると、選んだリポジトリとの新しい接続が一覧に表示されます。
構成の変更や、GitHub 用 Azure Boards アプリの管理については、Azure Boards へのリポジトリのアクセスの変更に関する記事をご覧ください。
PAT を使用して GitHub 接続を追加する
GitHub リポジトリに接続するには、GitHub アカウントの資格情報を使うことをお勧めします。 PAT を使用する必要がある場合は、以下の手順を実行します。
ヒント
GitHub PAT を作成するときは、repo, read:user, user:email, admin:repo_hook
のスコープが含まれていることを確認してください。
[個人用アクセス トークン] を選択します。
GitHub PAT を作成するには、[GitHub 開発者の設定] > [個人用アクセス トークン] に移動します。
PAT を入力し、[接続] を選択します。
前の「リポジトリを選択する」で説明されている手順に従って、プロジェクトに接続するリポジトリを選択します。
Azure Boards から GitHub アカウントまたは組織に初めて接続する場合は、GitHub 用の Azure Boards アプリをインストールします。 この記事の前半にある「接続を確認する」をご覧ください。
GitHub で Azure DevOps を OAuth アプリとして登録する
OAuth を使って Azure DevOps を GitHub Enterprise Server に接続するには、まずアプリケーションを OAuth アプリとして登録します。 詳細については、「OAuth アプリの作成」を参照してください。
Azure DevOps Services を登録する
GitHub Enterprise サーバーの Web ポータルにサインインします。
[設定]>[開発者向け設定]>[Oauth アプリ]>[新しい OAuth アプリ] を選択します。
登録情報を入力します。
[ホームページの URL] では、組織の組織 URL を指定します。
[Authorization callback URL] (認可コールバック URL) では、次のパターンを使って URL を作成します。{Azure DevOps Services Organization URL}/_admin/oauth2/callback
次に例を示します。
https://dev.azure.com/fabrikam/_admin/oauth2/callback
[アプリケーションの登録] を選択します。
登録された OAuth アプリケーションのクライアント ID とクライアント シークレット。
Azure DevOps Services で OAuth の構成を登録する
Azure DevOps Services の Web ポータルにサインインします。
GitHub Enterprise Oauth の構成を組織に追加します。
[組織の設定] で、[OAuth の構成]>[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を参照してください。
初めて接続する場合は、[プロジェクト設定]>[GitHub 接続]>[GitHub Enterprise Server] を選択します。
または、[新しい GitHub 接続] ダイアログで [GitHub Enterprise Server] を選びます。
認証方法を選択します。
OAuth で接続する
「Azure DevOps Services で OAuth の構成を登録する」のステップ 4 で設定した構成を選んでから、[接続] を選びます。
個人用アクセス トークンを使用した接続
GitHub Enterprise サーバーの URL と、そのサーバーによって認識される個人用アクセス トークン資格情報を入力します。 次に、[接続] を選択します。
ユーザー名とパスワードで接続
GitHub Enterprise サーバーの URL と、そのサーバーによって認識される管理者アカウントの資格情報を入力し、[接続] を選択します。
ダイアログには、GitHub 管理権限を持つすべてのリポジトリが一覧表示されます。 [自分のもの] と [すべて] を切り替えると、その他を表示するかどうかを決定できます。その後、追加したいものをチェックします。 完了したら、 [保存] を選択します。
ヒント
1 つの GitHub 組織で定義されているリポジトリにのみ接続できます。 別の GitHub 組織で定義されている他のリポジトリにプロジェクトを接続するには、別の接続を追加する必要があります。
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
- ユーザー名とパスワード
Note
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 の統合が期待どおりに機能しない場合は、組織にアクセス権を付与したことを確認します。
GitHub Web ポータルのプロファイル メニューから [設定] を開きます。
[統合]>[認証済み OAuth アプリ]>[Azure Boards] の順に選択し [アプリケーション]を選択します。
[組織のアクセス権] の下で、表示された問題を解決します。 [Access request pending](保留中アクセス要求) があることが示されているすべての組織にアクセスを許可するには、 [許可] を選びます。
アクセスの問題を解決する
Azure Boards から GitHub への接続が失われると、ユーザー インターフェイスに赤色の 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 に関連付けられているコールバック URL が無効になったため、GitHub 内の作業項目のメンションが Azure DevOps Services に遅れて表示されたり、まったく表示されなかったりすることがあります。 次の解決策を検討してください。
接続を削除して作成し直す: 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 組織のプロジェクトに GitHub リポジトリを接続すると、AB# メンションで予期しない結果になることがあります。 作業項目 ID が Azure DevOps 組織間で一意ではないため、AB#12 は Contoso または Fabrikam のいずれかの作業項目を参照している可能性があります。 コミット メッセージまたは pull request で作業項目がメンションされると、両方の組織は ID が一致する作業項目にリンクしようとして、混乱が生じることがあります。
この問題を回避するには、1 つの GitHub リポジトリを 1 つの Azure DevOps 組織にのみ接続します。
Note
GitHub 用の Azure Boards アプリを使用して接続すると、複数の組織に接続されることがなくなります。 GitHub リポジトリが正しくない Azure DevOps 組織に接続されている場合は、その組織の所有者に連絡して接続を削除してもらってから、正しい Azure DevOps 組織にリポジトリを追加します。
選択した作業項目の種類の XML 定義を更新する
組織でホステッド XML またはオンプレミス XML プロセス モデルを使用して作業追跡エクスペリエンスをカスタマイズし、作業項目フォームの [開発] セクションから GitHub リンクの種類にリンクして表示する場合は、作業項目の種類の XML 定義を更新します。
たとえば、Development セクションからユーザー ストーリーやバグを GitHub のコミットや pull request にリンクする場合は、ユーザー ストーリーとバグの XML 定義を更新します。
「ホストされた XML プロセス モデル」で提供されている一連のタスクに従って、XML 定義を更新してください。 作業項目の種類ごとに、Group Label="Development"
セクションを見つけて、GitHub Commit と GitHub Pull Request という外部リンクの種類をサポートするために、次の 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>
よく寄せられる質問
Q: Azure DevOps の一部のユーザーは GitHub ID を持っています。 新しい GitHub ユーザーとして組織に追加する必要がありますか?
A: いいえ。 ユーザーに、新しいブラウザー セッションから一度サインアウトし、その後 GitHub の資格情報を使用して組織にサインインし直してもらいます。 これにより、ユーザーの GitHub ID が確立されます。
Q: 私は組織の管理者であり、GitHub ユーザーを招待するためのポリシーを有効にしました。 新しい GitHub ユーザーを招待できないのはなぜですか?
設定を変更した後、Azure DevOps からサインアウトし、新しいブラウザー セッションから GitHub の資格情報を使用して組織 (dev.azure.com/{organizationName}
または organizationName.visualstudio.com
) にサインインし直します。
Q: GitHub の資格情報でサインインしましたが、GitHub ユーザーを招待できないのはなぜですか?
A: 組織またはプロジェクト管理者のみが、新しいユーザーを組織に招待できます。 新しいユーザーを追加するために必要なアクセス許可がない可能性があります。 管理者に問い合わせて必要なアクセス許可を取得するか、管理者にユーザーを追加するよう依頼してください。