---
sourceDocument: Xanadu IT Service Management
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/it-service-management

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu IT Service Management

ft:clusterId :

    - itsm

bundleId :

    - itsm

workflow :

    - Technology


---

# DevOps チェンジベロシティへのオンボードGitHub ---ワークスペース

# DevOps チェンジベロシティへのオンボードGitHub ---ワークスペース {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：12分

DevOps 変更ワークスペースプレイブックを使用して GitHub インスタンスに接続し、リポジトリ、計画、パイプラインを検出、構成、インポートします。

## 始める前に

[DevOps チェンジベロシティの開始](https://servicenow-prod.fluidtopics.net/s8GHuoTgErYFkOgrtbBZFw "ツールチェーンとの統合を構成する前に必要な DevOps チェンジベロシティ のセットアッププロセスについて説明します。")トピックで指定されたタスクを完了します。

必要なロール:sn_devops.admin または sn_devops.tool_owner

## 手順

1. 移動先 ワークスペースDevOps 変更ワークスペース をクリックし、次のいずれかのオプションを使用してプレイブックを開き、 GitHubオンボーディングします。

   | オプション | ステップ |
   | ホームページ | 1. \[ ツールを接続\] を選択します。 2. \[ツールに接続\] モーダルで、適切なカテゴリ (オーケストレーション、コード、プラン、またはソフトウェア品質) からツールを選択します。たとえば、コーディングツールとして GitHub に接続する場合は、\[ コーディングツール \] カテゴリを選択します。 {#playbook-enter-github-instance-details__ol_e5j_4y1_fwb} |
   | アプリケーションモジュール | 1. プライマリナビゲーションから \[アプリケーション \] ![(アプリケーションアイコン]()) を選択します。 2. 既存のアプリケーションを選択するか、アプリケーションを作成します。アプリケーションを作成するには、「 app-create-workspace.html」を参照してください。 3. \[推奨アクション\] ペインから、\[ ツールの接続 \] カードを選択します。 4. \[ツールに接続\] モーダルで、適切なカテゴリからツールを選択します。たとえば、コーディングツールとしてGitHubに接続する場合は、\[コード\] カテゴリで \[GitHub\] を選択します。 {#playbook-enter-github-instance-details__ol_u24_mz1_fwb} |
   | ツールモジュール | 1. プライマリナビゲーションから \[ツール \] ![(\[ツール\] アイコン]()) を選択します。 2. \[機能\] リストから、適切なカテゴリを選択します。たとえば、コーディングツールとして GitHub に接続する場合は、 コーディング カテゴリを選択します。 3. \[ ツールを接続\] を選択します。 4. \[ツールに接続\] モーダルで、\[ GitHub\] を選択します。 {#playbook-enter-github-instance-details__ol_fjs_k1b_fwb} |
   |-|-|

   {#playbook-enter-github-instance-details__choicetable_m3t_ky1_fwb}  
   重要:  
   ツールへの接続中にパイプライン、計画、リポジトリなどのツールオブジェクトを検出して追跡する場合は、アプリケーションモジュールからツールを接続する必要があります。
2. \[ツール名\] フィールドに、ツールの名前を入力します。  
3. \[Next (次へ)\] をクリックします。  
   オンボーディングタスクを完了するのに役立つ DevOps プレイブックが開きます。
4. プレイブックを使用して接続と構成を完了します。
   1. \[ 認証情報タイプ \] フィールドで、次のいずれかの認証情報タイプを選択します。  
      * ベーシック認証
      {#playbook-enter-github-instance-details__ul_uvd_2dg_fwb}
   2. 認証情報を入力します。  
      {#playbook-enter-github-instance-details__table_uxp_shk_ybc__entry__1}{#playbook-enter-github-instance-details__table_uxp_shk_ybc__entry__3}{#playbook-enter-github-instance-details__table_uxp_shk_ybc__entry__5}

      | ベーシック認証 | GitHubインスタンスのユーザー名とパスワード/アクセストークンを入力します。 |
      | 認証コード付き OAuth 2.0 | 既存の認証コード付き OAuth 2.0 認証情報レコードを選択するか、認証コード付き OAuth 2.0 認証情報レコードを作成します。詳細については、「[GitHubアプリプロバイダー (認証コード) の認証情報レコードを作成します](https://servicenow-prod.fluidtopics.net/up66Ctap4aV6r4ZveiEAYw#dev-ops-create-cred-github-auth "アクションを許可するために、以前に作成した GitHub アプリプロバイダーに認証情報レコードを作成します。")」を参照してください。 注: GitHub アプリを使用して接続していて、権限チェックで問題が発生している場合は、GitHub アプリのクライアント ID プレフィックスが DevOps プロパティの GitHub アプリのクライアント ID 指定子で利用可能であることを確認してください。詳細については、「[DevOps プロパティにクライアント ID を追加](https://servicenow-prod.fluidtopics.net/up66Ctap4aV6r4ZveiEAYw#github-app-property "GitHub アプリを構成したら、クライアント ID プリフィックス (ID の最初の 3 文字以上) が DevOps プロパティに追加されていることを確認する必要があります: GitHub アプリのクライアント ID 指定子。")」を参照してください。 |
      | JSON Web トークン (JWT) を含む OAuth 2.0 | JWT で OAuth 2.0 を使用して接続するには、最初に次を実行する必要があります。 * [GitHub アプリの作成と構成](https://servicenow-prod.fluidtopics.net/5gQXEVqzbT1DdCYAVrLvjA#dev-ops-config-github-acct-jwt "GitHub アカウントからカスタム GitHub アプリを作成し、ServiceNow インスタンスで OAuth 2.0 認証を有効にします。") * [の Java KeyStore 証明書の生成 GitHub](https://servicenow-prod.fluidtopics.net/5gQXEVqzbT1DdCYAVrLvjA#dev-ops-generate-jks-cert-github "JWT 認証用の Java KeyStore (JKS) 証明書を生成します。") * [GitHub Java KeyStore 証明書をインスタンスに添付する](https://servicenow-prod.fluidtopics.net/5gQXEVqzbT1DdCYAVrLvjA#dev-ops-attach-jks-cert-github "有効な GitHub Java KeyStore (JKS) 証明書を ServiceNow インスタンスに添付して、JWT ベアラー権限許可トークン認証を有効にします。") {#playbook-enter-github-instance-details__ul_irn_hlk_ybc} 前提条件を満たしたら、 DevOps チェンジベロシティ コネクトプレイブックアクティビティを続行できます。 1. 既存の JWT 認証情報レコードを使用する場合は、\[既存の JWT 認証情報レコードを使用 \] オプションを選択します。このオプションが選択されていない場合は、新しい JWT 認証情報レコードを作成するフィールドが表示されます。次の手順に進みます。 2. \[ JKS 証明書 \] フィールドで、既存の JKS 証明書を選択します。これは、JWT プロバイダーを一意に識別するために入力した名前です。JKS 証明書は、シェルコマンドを使用して作成され、sys_certificateレコードを作成します。 詳細については、「[GitHub JKS 証明書の JWT 署名キーの作成](https://servicenow-prod.fluidtopics.net/5gQXEVqzbT1DdCYAVrLvjA#dev-ops-create-jwt-key-github "GitHub Java KeyStore 証明書にアサインする JSON Web トークン (JWT) 署名キーを作成します。")」を参照してください。 3. \[ 署名キー\] フィールドに、JKS 証明書に割り当てる署名キーを入力します。[JKS 証明書の生成](https://servicenow-prod.fluidtopics.net/5gQXEVqzbT1DdCYAVrLvjA#dev-ops-generate-jks-cert-github "JWT 認証用の Java KeyStore (JKS) 証明書を生成します。")時に入力したエクスポートパスワードです。 4. \[GitHub アプリ ID\] フィールドで、GitHub アプリのアプリ ID を選択します (GitHub の GitHub アプリ構成の \[関連情報\] セクションで利用可能)。次の画像は、GitHub アプリ ID、クライアント ID、クライアントシークレットにアクセスできる GitHub アプリ構成の \[関連情報\] セクションの例を示しています。 5. \[ クライアント ID \] フィールドで、GitHub アプリのクライアント ID を選択します (GitHub の GitHub アプリ構成の \[関連情報\] セクションで利用可能)。 6. \[ クライアント シークレット \] フィールドで、GitHub アプリのクライアント シークレット (GitHub の GitHub アプリ構成の \[バージョン情報\] セクションで利用可能) を選択します。 7. \[ トークン URL \] フィールドで、インスタンスがトークンを取得および更新するために使用するトークンエンドポイントの場所を選択します。 クラウドバージョンの場合は、「 <kbd class="ph userinput">https://api.github.com/app/installations/&lt;installation_id&gt;/access_tokens</kbd>」と入力します。 Enterprise バージョンの場合は、「 <kbd class="ph userinput">https://&lt;HOST_URL&gt;/api/v3/app/installations/&lt;installation_id&gt;/access_tokens</kbd>」と入力します。 インストール ID については、GitHub の GitHub アプリ構成の \[アプリのインストール\] セクションに移動し、歯車アイコンを選択してアプリを構成します。インストール ID は Web ページの URL に含まれます。たとえば、https://github.com/settings/installations/\<installation_id\> などです。 {#playbook-enter-github-instance-details__ol_fpn_kkt_vyb} OAuth 認証情報が GitHub Apps - JWT を使用して作成されている場合、ツールレコードページで \[GitHub App で構成 \] オプションが利用可能になります。 注: GitHub アプリを使用して接続していて、権限チェックで問題が発生している場合は、GitHub アプリのクライアント ID プレフィックスが DevOps プロパティの GitHub アプリのクライアント ID 指定子で利用可能であることを確認してください。詳細については、「[DevOps プロパティにクライアント ID を追加](https://servicenow-prod.fluidtopics.net/5gQXEVqzbT1DdCYAVrLvjA#github-app-property-jwt "GitHub アプリを構成したら、クライアント ID プリフィックス (ID の最初の 3 文字以上) が DevOps プロパティに追加されていることを確認する必要があります: GitHub アプリのクライアント ID 指定子。")」を参照してください。 |
      |-|-|
      [ ]

      {#playbook-enter-github-instance-details__table_uxp_shk_ybc}

      OAuth2.0 認証情報の詳細については、「 [の GitHub OAuth 2.0 認証情報の設定 DevOps チェンジベロシティ](https://servicenow-prod.fluidtopics.net/t9qKmVwjz1YWzgLIvxesYA "GitHub アプリまたは OAuth アプリの OAuth 2.0 認証情報を作成し、それらを使用して GitHub インスタンスに接続します。")」を参照してください。
   3. **オプション:** GitHubインスタンスがMID サーバーに接続されている場合は、\[MID サーバー\] オプションを選択して、その詳細を入力します。  
      MID サーバーの詳細については、「 [MID サーバーの選択](https://www.servicenow.com/docs/access?context=c_MIDServerSelector&version=xanadu&pubname=xanadu-servicenow-platform&ft:locale=en-US)」を参照してください。  
      注:  
      GitHub Enterprise Server (オンプレミスインスタンス) の場合、MID サーバーを使用して接続している場合、OAuth はサポートされません。
   4. \[接続\] を選択します。  
   5. 入力した認証情報に対して権限チェックが実行されます。  
      必要な権限と利用可能な権限が表示されます。より適切なアクセス許可を持つ資格情報を入力する場合は、 \[ 資格情報の再入力\] を選択します。必要なすべての権限の詳細については、「[DevOpsツールに必要な権限](https://servicenow-prod.fluidtopics.net/Z3voSLQ0YDLAsUDhvGM0NA "サードパーティツールで DevOps チェンジベロシティ に接続するために必要な権限。") のGitHub権限」を参照してください。

      OAuth 2.0 では、 GitHub アプリのスラッグ名を入力していない場合、権限要件を確認せずにツールが接続されます。
   6. \[Next (次へ)\] をクリックします。  
   {#playbook-enter-github-instance-details__substeps_wdp_x1b_fwb}
5. ツールのアクセス権を指定します。  
   1. ツールへのアクセスを制御する場合は、ツールへのアクセス権を付与する必要があるグループを \[保守担当者 \] フィールドに追加します。  
      グループ内のこれらのユーザーが実行できるタスクは、割り当てられたロールによって異なります。
      * DevOps ツールオーナーロール:ツールを表示および編集できます。
      * DevOps アプリオーナーロール:ツールを表示し、ツールのオブジェクト (プラン、リポジトリ、パイプラインなど) の関連付け、検出、履歴データのインポート、パイプラインステップの変更 (該当する場合) を実行できます。
      * DevOps 管理者ロール:すべてのツールを編集できます。
      * その他の DevOps ロール:ツールを表示できます。
      {#playbook-enter-github-instance-details__ul_csp_h5c_xwb}  
      注:  
      グループを選択せずにこの手順をスキップすると、 DevOps ツールオーナーロールを持つすべてのユーザーがツールを編集できます。
   2. ツールへのアクセスを制御することを選択した場合は、\[ すべてのアプリ所有者がツールオブジェクトを表示してアプリケーションに関連付けることができる \]オプションを選択できるようになります。

      このオプションを使用すると、 DevOps アプリオーナーロールを持つすべてのユーザーがツールにアクセスできます。選択すると、ツールのオブジェクトの表示、関連付け、検出、履歴データのインポート、およびパイプライン ステップの変更 (該当する場合) が可能になります。
   3. \[アサイン\] を選択します。

   {#playbook-enter-github-instance-details__ol_slg_2tz_cxb}

6. GitHub インスタンスで Webhook を自動的に構成して、DevOps チェンジベロシティ にデータを送信します。  
   このアクションにより、次の Webhook が構成されます。
   * push:リポジトリのコミット、ブランチ、およびタグを収集します
   * workflow_job:パイプラインデータを収集します
   * issues:問題 (作業アイテム) データを収集するため
   {#playbook-enter-github-instance-details__ul_k4d_sbb_fwb}  
   注:  
   リアルタイム通知は、特に変更要求を自動化する場合に最新の情報を維持するのに理想的であるため、このタスクの一部として構成を完了することをお勧めします。それ以外の場合は、 Enable Polling プロパティを \[はい\] に設定して、夜間ポーリングを有効にして追跡対象のリポジトリまたはパイプラインのデータシステムをフェッチすることで、後で手動で構成することで Webhook を設定できます。

   Webhook を構成するリポジトリを選択し、 \[ 構成\] を選択します。

   重要:  
   * ホームページまたはツールモジュールから接続している場合は、接続が完了し、\[概要\] ページに移動します。
   * アプリケーションモジュールから接続している場合は、利用可能なリポジトリとパイプラインが検出されます。それらから履歴データを追跡してインポートできます。
   {#playbook-enter-github-instance-details__ul_yfy_zz1_bzb}
7. 追跡する計画を選択します。  
   1. 更新を追跡してアプリケーションに関連付ける計画を選択します。

      ツールのオンボーディングが完了すると、選択したこれらの計画の作業アイテムのみが自動的にインポートされます。
   2. \[Next (次へ)\] をクリックします。

   {#playbook-enter-github-instance-details__ol_zlk_1jc_bzb}
8. 追跡するリポジトリを選択します。  
   1. 更新を追跡してアプリケーションに関連付けるリポジトリを選択します。
   2. \[Next (次へ)\] をクリックします。

   3. リポジトリ データをインポートする場合は、日付範囲を選択して \[送信\] を選択します。

      最大 90 日分のデータをインポートできます。リポジトリに関連付けられているワークフローもインポートされます。
   {#playbook-enter-github-instance-details__ol_r1g_3jc_bzb}
9. 追跡するパイプラインを選択します。  
   1. 更新を追跡し、アプリケーションに関連付けるパイプラインを選択します。

   2. \[Next (次へ)\] をクリックします。

   3. 選択したパイプラインごとに、最後に成功した実行のすべてのステップまたはステージがインポートされます。\[パイプラインステップにサービスをアサイン\] アクティビティでは、各パイプラインステップに対して以下を選択できます。  
      1. パイプラインステップタイプ:サービスを割り当てるステップタイプを選択します。

         ヒント:  
         本番展開を表すステップには少なくとも Prod deploy ステップタイプを指定して、成功したパイプライン実行を本番展開として識別できるように DevOps します。
      2. サービス:パイプラインステップがマップされる CMDB アプリケーションサービスを選択します。

         アプリケーションサービスは環境に近似的にマッピングされます。同じパイプラインステップを使用して異なる環境に展開する場合は、フィールドを空のままにします。サービス情報により、 DevOps インシデントや機能停止などの運用評価指標を識別してレポートすることができます。
      {#playbook-enter-github-instance-details__ol_aty_ftk_zxb}
   4. \[Next (次へ)\] をクリックします。

   {#playbook-enter-github-instance-details__ol_sgy_rjc_bzb}
10. \[概要\] ページで \[ツール レコードの表示\] を選択して、接続されている GitHub ツールの詳細を確認します。  

    GitHub Actionsパイプラインの場合は、シークレットの作成、GitHub でのワークフロー構成の定義など、いくつかの追加手順を実行する必要があります。詳細については、「[GitHub Actions構成](https://servicenow-prod.fluidtopics.net/Ikv9aMPIyISZ1YQdAtoH~Q#github-actions-integration-with-devops "シークレット、ワークフロー、制限など、 GitHub Actionsに関する構成情報。")」を参照してください。

## タスクの結果

GitHub ツールが正常にオンボーディングされてDevOps チェンジベロシティされました。

## 次のタスク

GitHub ツールがオンボーディングされた後でも、計画を手動で検出できます。GitHub には計画エンティティがないため、ServiceNow で対応する計画レコードを検出するためにリポジトリが検討されます。

1. ツールレコードページから、 \[検出 \] を選択して計画を検出します。
2. \[構成\] を選択します。計画が追跡され、作業アイテムのリアルタイム通知を送信する issues と呼ばれる Webhook が作成されます。

{#playbook-enter-github-instance-details__ol_vkw_znt_qzb}  
対応する問題が GitHub で更新されると、ServiceNow の作業アイテムの次の情報が更新されます。

* 問題のタイトルの変更
* アサイニーの更新
* 転送の問題  
  注:  
  課題が転送されると、転送元のリポジトリで同じ課題が転送済みとしてマークされ、転送先のリポジトリで開かれます。
* 問題を削除  
  注:  
  GitHub で問題が削除されても、対応する作業アイテムは ServiceNow で削除されませんが、作業アイテムのステータスは削除済みとしてマークされます。
{#playbook-enter-github-instance-details__ul_zcb_ptt_qzb}

アップグレードするお客様の場合は、定期的に検出するスケジュール済みジョブまたは手動検出を通じて、リポジトリの計画が検出されます。計画が検出されたら、 sn_devops.track.github.issues プロパティを有効にして以前に構成したすべてのリポジトリを一度に再構成し、すべての計画が追跡され、作業アイテムの問題 Webhook が作成されるようにすることができます。  
注:  
計画の履歴インポートはサポートされていません。
**関連タスク**   

* [ツールレコードから Webhook を構成](https://servicenow-prod.fluidtopics.net/47~cUH0P4BLJ29wyMLQZAw "ツールレコードから Webhook を構成して、ツールが接続された後に DevOps チェンジベロシティ にデータを送信します。")

