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 リポジトリに接続する
プロジェクトにサインインします(
https://dev.azure.com/{Your_Organization/Your_Project})。プロジェクト設定>GitHub 接続 を選択します。
初めて接続する場合は、[ GitHub アカウントを接続 する] を選択して、GitHub 資格情報で認証します。
後続の接続の場合は、
[新しい接続 ] を選択し、認証方法を選択します。代わりに PAT を使用して接続するには、「 PAT を使用して GitHub 接続を追加する」を参照してください。 GitHub Enterprise Server については、 GitHub の Azure DevOps を OAuth アプリとして登録するを参照してください。
GitHub資格情報を使用してGitHub接続を追加する
Azure Boards プロジェクトには、最大 1,000 個のGitHub リポジトリを接続できます。
GitHub 資格情報を使用してサインインします。 リポジトリ管理者であるアカウントを選択します。
接続する GitHub アカウントまたは組織を選択します。 所有または管理している組織のみが一覧に表示されます。
組織のすべてのリポジトリが既に接続されている場合は、次のメッセージが表示されます。
GitHub資格情報を入力します。 2 要素認証を有効にしている場合は、GitHub によって送信されたコードを入力し、[ 確認] を選択します。
GitHub リポジトリを追加する
認証が完了したら、接続するリポジトリを選択します。
[ GitHub リポジトリの追加 ] ダイアログでは、選択した組織の管理者であるすべてのリポジトリが表示され、事前選択されます。 接続しないリポジトリをクリアします。
Tip
予期しない AB# メンション リンクを回避するために、各 GitHub リポジトリを 1 つの Azure DevOps 組織のプロジェクトに接続します。 詳細については、「接続の 問題を解決する」を参照してください。
すべてのリポジトリが現在または別の組織に既に接続されている場合は、次のメッセージが表示されます。
保存を選びます。
接続を確認する
GitHub ページで、[承認]、[インストール]、および[承認]を選択します。
GitHub の資格情報を入力して確認します。
選択したリポジトリが一覧表示された新しい接続が表示されます。
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 接続では、次の機能はサポートされていません。
- プル要求の状態チェック。GitHubアプリ接続が必要です。
- GitHub Copilotアプリ認証を必要とするAzure Boardsとの統合GitHub。
接続を作成する
[新しい接続] ダイアログで [個人用アクセス トークン] を選択します。
新しいGitHub接続ダイアログのスクリーンショット、個人用アクセス トークンを選択している状態です。 GitHub PAT を作成するには、GitHub 開発者向け設定 > 個人用アクセス トークン に移動します。
PAT を入力し、[接続] を選択します。
接続するリポジトリを選択します。 詳細については、「 GitHub リポジトリの追加」を参照してください。
初めて接続する場合は、GitHub 用の Azure Boards アプリをインストールします。 接続の確認を参照してください。
GitHub に OAuth アプリとしてAzure DevOpsを登録する
OAuth を使用して Azure DevOps を GitHub Enterprise Server に接続するには、アプリケーションを OAuth アプリとして登録します。 詳細については、「OAuth アプリの作成」を参照してください。
Azure DevOps サービスを登録する
GitHub Enterprise Server の Web ポータルにサインインします。
GitHub Enterprise サーバーのサインインのスクリーンショット [設定]>[開発者向け設定]>[Oauth アプリ]>[新しい OAuth アプリ] を選択します。
登録情報を入力します。
- ホームページ URL — 組織の URL。
-
承認コールバック URL — パターン
{Organization URL}/_admin/oauth2/callbackを使用します。 例:https://dev.azure.com/fabrikam/_admin/oauth2/callback
[ アプリケーションの登録] を選択します。
登録済みの OAuth アプリケーションに表示される クライアント ID と クライアント シークレット をコピーします。
Azure DevOps Services に OAuth 構成を登録する
Azure DevOps Services の Web ポータルにサインインします。
[組織の設定>Oauth 構成>Oauth 構成の追加を選択します。
情報を入力し、[ 作成] を選択します。
Azure DevOps サービスを GitHub Enterprise Server に接続する
Important
GitHub Enterprise Server にはインターネットからアクセスできる必要があります。 Azure DNS がサーバー名を解決できることと、ファイアウォールで Azure Data Center の IP 範囲からのアクセスが許可されていることを確認します。 一般的なエラーは次のとおりです。
リモート名を解決できませんでした: 'github-enterprise-server.contoso.com'
このエラーが表示された場合は、サーバーのアクセシビリティを確認してください。 詳細については、「Azure DNS FAQ」を参照してください。
初回接続の場合は、Project settings>GitHub connections>GitHub Enterprise Server を選択します。
後続の接続については、[新しい GitHub 接続] ダイアログから GitHub Enterprise Server を選択します。
認証方法を選択します。
OAuth を使用して接続 する — OAuth 構成の登録で登録した OAuth 構成を選択し、[ 接続] を選択します。
個人用アクセス トークンを使用して接続 する - GitHub Enterprise Server の URL と PAT を入力し、[ 接続] を選択します。
GitHub 資格情報を使用して接続する - GitHub Enterprise Server の URL と管理者の資格情報を入力し、[ 接続] を選択します。
このダイアログには、管理者権限を持つすべてのリポジトリが一覧表示されます。 [マイニング] と [すべて] を切り替えて、追加するリポジトリを選択し、[保存] を選択します。
Tip
各接続でサポートされている GitHub 組織は 1 つだけです。 別の組織からリポジトリを接続するには、別の接続を追加します。
初めて接続する場合は、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 の組織アクセス権を付与する
統合が期待どおりに動作しない場合は、組織のアクセス権を付与したことを確認します。
GitHub Web ポータルで、プロファイル メニューから [設定] を 開きます。
アプリケーションIntegrations>Authorized OAuth Apps>Azure Boards を選択します。
組織のアクセス で、アクセス要求保留中と表示されている任意の組織のために 許可 を選択します。
アクセスの問題を解決する
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 Commit と GitHub 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を参照してください。