GitHub スポーク

  • リリースバージョン: Xanadu
  • 更新日 2024年08月01日
  • 所要時間:15分
  • ServiceNow インスタンスから、 GitHub で分散バージョン制御とソースコードを管理します。ServiceNow でフローを作成して、GitHub にあるプロジェクトのバグ、機能要求、タスク等の追跡などの共同機能を管理します。GitHub Enterprise Cloud と GitHub Enterprise Server ソフトウェアサブスクリプションの役に立つ使用状況データを表示および分析することで、古いライセンスを再利用できるようにします。

    ストアでアプリを要求する

    ServiceNow Store Web サイトにアクセスして利用可能なすべてのアプリを表示し、ストアにリクエストを送信する方法について確認してください。リリースされたすべてのアプリのリリースノート情報については、「ServiceNow Storeバージョン履歴のリリースノート」を参照してください。

    統合ハブサブスクリプション

    このスポークには Integration Hub のサブスクリプションが必要です。詳細については、「法務スケジュール - 統合ハブの概要」を参照てください。

    スポークバージョン

    GitHub スポーク v3.0.0 が最新バージョンです。

    サポートされているバージョン

    このスポークは GitHub API バージョン v3 用にビルドされていますが、それ以降のバージョンと互換性がある可能性があります。

    スポークの要件

    • GitHub アカウント
    • アドミン認証情報を持つユーザー
    • ServiceNow インスタンスを認証するためのトークン
    次を参照してください。 GitHub ドキュメント GitHub アカウントの作成とトークンの生成の手順。

    GitHub Webhook モジュール

    双方向 Webhook をセットアップして、必須イベントに関する通知を受けることができます。ルーティングポリシーでは、ServiceNow アプリに通知するために満たすべき条件を定義します。こうした条件は、通知の受信を希望する GitHub のイベントに基づいています。条件が満たされると、ルーティングポリシーが関連するサブフローをトリガーし、GitHub タスクを自動化します。

    双方向 Webhook には別途セットアップが必要で、スポークアクションを使用しないで単独で使用できます。デフォルトでは、GitHub Webhook アプリケーションが GitHub スポークで利用可能で、次のモジュールがあります。
    • GitHub Webhook レジストリ
    • GitHub Webhook ルーティングポリシー
    GitHub Webhook レジストリモジュールを使用してトークンを割り当て、API パスを指定します。コールバック URL を生成し、この URL を GitHub アカウントに入力する必要があります。デフォルトのルーティングポリシーは、GitHub WebHook ルーティングポリシーモジュールで提供されます。デフォルトのルーティングポリシーは、次の GitHub フィールドをサポートしています。
    サポートされている GitHub フィールド
    アクション プロジェクトカードの作成者 参照
    ベース参照 プロジェクトカードのメモ 参照タイプ
    コミットのコメント本文 プロジェクトカードの前のメモ リリース資産
    コミットのコメント作成日 プロジェクトカードの更新日 リリース作成者
    コミットのコメントのパス プロジェクト列の作成日 リリース本文
    コミットのコメント更新日 プロジェクト列名 リリース作成日
    コミットのコメントのユーザー プロジェクト列の前の名前 リリースドラフト
    プッシュを強制 プロジェクト列の更新日 リリース名
    GitHub インスタンス URL プロジェクトの作成日 リリース公開日
    問題の担当者 プロジェクト名 リリースタグ名
    問題のアサイニー プロジェクトの前の本文 リリースターゲットのコミット
    問題の本文 プロジェクトの前の名前 アーカイブ化済みリポジトリ
    問題のクローズ日 プロジェクトのステータス リポジトリの作成日
    問題のコメント プロジェクトの更新日 リポジトリの説明
    問題のコメント数 プル要求の担当者 リポジトリが非アクティブ
    問題コメントの作成日 プル要求のアサイニー リポジトリのフルネーム
    問題コメントの更新日 プル要求の本文 リポジトリに問題があります
    問題の作成日 プル要求のクローズ日 リポジトリにプロジェクトがあります
    問題のラベル付け先 プル要求のコメント数 リポジトリのインポートステータス
    問題ラベル プル要求の作成日 リポジトリライセンス
    ロックされた問題 プル要求ドラフト リポジトリのオープンな問題の数
    問題のマイルストーン プル要求のラベル付け先 リポジトリオーナー
    問題の前の本文 プル要求ラベル リポジトリプライベート
    問題の前のコメント ロックされたプル要求 リポジトリプッシュ日
    問題の前のマイルストーン 結合可能なプル要求 リポジトリの星印付け日
    問題の前のタイトル 結合済みプル要求 リポジトリ更新日
    問題の前の担当者 プル要求の結合日 リポジトリ脆弱性アラートの影響を受ける範囲
    問題の前のラベル付け先 プル要求マイルストーン リポジトリ脆弱性アラートの外部識別子
    問題ステータス プル要求の前の本文 修正済みのリポジトリ脆弱性アラート
    問題のタイトル プル要求の前のタイトル リポジトリ脆弱性アラートパッケージ名
    問題更新日 プル要求の前の担当者 セキュリティアドバイザリーの説明
    問題のユーザー プル要求の前のラベル付け先 セキュリティアドバイザリー ID
    マイルストーンのクローズ日 リベース可能なプル要求 セキュリティアドバイザリーのプッシュ日
    マイルストーン作成日 プル要求レビューの本文 セキュリティアドバイザリーの重大度
    マイルストーン作成者 プル要求レビューのコメント セキュリティアドバイザリーサマリー
    マイルストーンの説明 プル要求レビューのコメント数 セキュリティアドバイザリーの更新日
    マイルストーン期日 プル要求レビューのコメント作成日 セキュリティアドバイザリーの取り消し日
    マイルストーンステータス プル要求レビューコメントのファイルパス 送信者ログイン
    マイルストーンタイトル プル要求レビューコメントの前のコメント ステータスコミットメッセージ
    マイルストーン更新日 プル要求レビューのコメント更新日 ステータスコンテキスト
    組織の説明 プル要求レビューの前の本文 ステータス作成日
    組織ログイン プル要求レビューステータス ステータスの説明
    プレリリース プル要求ステータス ステータス名
    プロジェクト本文 プル要求タイトル ステータス状態
    アーカイブ化済みプロジェクトカード プル要求の更新日 ステータス更新日
    プロジェクトカードの作成日 プル要求ユーザー Webhook イベント

    ルーティングポリシーの他の条件を使用するには、GitHub WebHook ルーティングポリシーモジュールにルーティングポリシーを作成し、要件に従って条件を指定します。Webhook の設定と構成の詳細については、「GitHub スポーク用の双方向 Webhook の設定」を参照してください。

    スポークのトリガー

    ServiceNow は、トリガーを作成する、GitHub 上の特定のイベントをサポートしています。最初に、サポートされているトリガー定義を含むフローを構成する必要があります。GitHub でイベント (プッシュ要求など) が発生すると、Webhook を介して ServiceNow インスタンスにペイロードが送信されます。その後、ワークフローを自動化するために構成したフローが ServiceNow インスタンスでトリガーされます。サポートされているイベントは次のとおりです。

    カテゴリ トリガー 説明
    分岐管理 分岐作成 GitHub で分岐を作成すると、フローがトリガーされます。
    リポジトリ管理 プル要求オープン GitHub で新しいプル要求を開始すると、フローがトリガーされます。
    プル要求編集 GitHub でプル要求を更新すると、フローがトリガーされます。
    プル要求クローズ GitHub でプル要求をクローズすると、フローがトリガーされます。
    プル要求アサイン GitHub でユーザーにプル要求をアサインすると、フローがトリガーされます。
    プル要求再オープン GitHub でプル要求を再オープンすると、フローがトリガーされます。
    リポジトリフォーク GitHub でリポジトリをフォークすると、フローがトリガーされます。
    リポジトリプッシュ GitHub でリポジトリにプッシュすると、フローがトリガーされます。
    リリース管理 リリース作成 GitHub でリリースの詳細が作成されると、フローがトリガーされます。
    リリース編集 GitHub でリリースの詳細が更新されると、フローがトリガーされます。
    リリース削除 GitHub でリリースが削除されると、フローがトリガーされます。
    リリース公開 GitHub でリリースが公開されると、フローがトリガーされます。

    GitHub スポークのトリガーの設定については、「ServiceNow インスタンスでのトリガー定義のアクティブ化」を参照してください。インバウンド統合の詳細については、「条件付きおよびイベント駆動型のインバウンド統合」を参照してください。

    スポークのサブフロー

    GitHub スポークでは、さまざまな GitHub Webhook イベントを処理するためのサンプルサブフローが提供されます。利用可能なサンプルサブフローは次のとおりです。
    表 : 1. スポークのサブフロー
    サブフロー 説明 サポートされている GitHub イベント
    GitHub 分岐とタグ Webhook イベントを処理 (Process GitHub Branch and Tag Webhook Events) 分岐とタグ Webhook イベントを処理します。 分岐とタグ
    GitHub コミット Webhook イベントを処理 (Process GitHub Commit Webhook Events) コミット Webhook イベントを処理します。 コミット
    GitHub 問題 Webhook イベントを処理 (Process GitHub Issue Webhook Events) 問題 Webhook イベントを処理します。 問題
    GitHub マイルストーン Webhook イベントを処理 (Process GitHub Milestone Webhook Events) マイルストーン Webhook イベントを処理します。 マイルストーン
    GitHub プロジェクト Webhook イベントを処理 (Process GitHub Project Webhook Events) プロジェクト Webhook イベントを処理します。 プロジェクト
    GitHub プル要求 Webhook イベントを処理 (Process GitHub Pull Request Webhook Events) プル要求 Webhook イベントを処理します。 プル要求
    GitHub プッシュ Webhook イベントを処理 (Process GitHub Push Webhook Events) プッシュ要求 Webhook イベントを処理します。 プッシュ要求
    GitHub リリース Webhook イベントを処理 (Process GitHub Release Webhook Events) リリース Webhook イベントを処理します。 リリース
    GitHub リポジトリ Webhook イベントを処理 (Process GitHub Repository Webhook Events) リポジトリ Webhook イベントを処理します。 リポジトリ
    GitHub セキュリティ Webhook イベントを処理 (Process GitHub Security Webhook Events) セキュリティ Webhook イベントを処理します。 セキュリティ
    GitHub Webhook イベントを処理 (Process GitHub Webhook Events) すべての GitHub Webhook イベントを処理します。
    注:
    このサブフローは、すべての GitHub イベントを処理します。このサブフローをカスタマイズして、デフォルトでサポートされていない他の GitHub Webhook イベントを処理することができます。

    他の GitHub Webhook イベントを処理するサブフローを作成するか、サポートされている GitHub Webhook イベントを異なる方法で処理するには、[GitHub Webhook イベントを処理 (Process GitHub Webhook Events)] サブフローをカスタマイズします。これを行うには、サブフローのコピーを作成し、ペイロードを解析して、要件に従ってサブフローをカスタマイズする必要があります。ペイロードは、サブフローへの入力の 1 つです。

    サブフローをカスタマイズするときは、サブフローが無限ループを回避するように構成されていることを確認する必要があります。

    注:
    • スポークサブフローを使用するように Webhook を設定する必要があります。Webhook の設定と構成の詳細については、「GitHub スポーク用の双方向 Webhook の設定」を参照してください。
    • デフォルトで、サンプルサブフローはユーザーとして実行されます。これをシステムとして実行するように設定できます。
    • GitHub スポークはアプリケーション/json ペイロードをサポートしています。GitHub Webhook を適宜設定します。次を参照してください。 GitHub 開発者 Webhook を作成および構成する手順に関するドキュメント。

    スポークのアクション

    GitHub スポークは、ServiceNow で イベントが発生したときに、分岐、問題、リポジトリ、およびソースコードを管理するアクションを提供します。使用可能なアクションは次のとおりです。

    カテゴリ アクション 説明
    分岐管理 分岐を作成 特定のコミット SHA に基づいて GitHub に分岐を作成します。
    分岐を削除 GitHub リポジトリから分岐を削除します。
    分岐を取得 GitHub リポジトリ内の分岐の詳細を取得します。
    分岐の保護を取得 必要な分岐の制限の詳細を取得します。
    分岐をリスト リポジトリ内のすべての分岐のリストを取得します。
    分岐の保護を削除 必要な分岐の保護を削除します。
    分岐の保護を更新 必要な分岐の保護を更新します。
    問題管理 問題のコメントを作成 必要な問題に関するコメントを作成します。
    問題を作成 必要なリポジトリの問題を作成します。
    問題のコメントを削除 必要な問題に関するコメントを削除します。
    問題をロック 必要な問題をロックします。これにより、会話は協力者のみに制限されます。
    問題に関するコメントを検索 問題に関するコメントのリストを取得します。
    問題を検索 リポジトリの問題のリストを取得します。
    問題のロックを解除 必要な問題のロックを解除します。これにより、すべてのユーザーに対して会話が開かれます。
    問題のコメントを更新 問題のコメントを更新します。
    問題を更新 必要な問題の詳細を更新します。
    メタデータの取得 アクションでフィールドを検索 GitHub フィールドテーブル内のアクションフィルターに関するフィールドのリストを取得します。
    分岐メタデータを検索 分岐のメタデータを取得します。
    問題のメタデータを検索 問題のメタデータを取得します。
    マイルストーンメタデータを検索 マイルストーンのメタデータを取得します。
    プル要求メタデータを検索 プル要求のメタデータを取得します。
    組織管理 組織の計画を取得 組織の計画名を取得します。
    組織メンバーのリスト 組織内のすべてのメンバーのリストを取得します。
    組織リポジトリをリスト 組織内のすべてのリポジトリのリストを取得します。
    組織メンバーを削除 組織からユーザーを削除します。
    組織のイベントストリームを検索 指定された過去の日付に基づいて、組織内のイベントのリストを取得します。
    組織の外部協力者ストリームを検索 組織内の外部協力者のリストを取得します。
    組織の外部協力者を削除 組織から外部協力者を削除します。
    組織の処理待ち外部協力者ストリームを検索 リポジトリ内の処理待ちの協力者のリストを取得します。
    組織の招待ストリームを検索 組織内の招待のリストを取得します。
    リポジトリ管理 協力者を追加 必要なリポジトリに協力者を追加します。
    プル要求に関するコメントを作成 プル要求に関するレビューコメントを作成します。
    マイルストーンを作成 必要なリポジトリのマイルストーンを作成します。
    プル要求を作成 リポジトリのプル要求を作成します。
    プル要求レビューのコメントに対する返信を作成 プル要求のレビューコメントに対する返信を作成します。
    リポジトリを作成 GitHub にリポジトリを作成します。
    プル要求に関するコメントを削除 プル要求のレビューコメントを削除します。
    マイルストーンを削除 必要なリポジトリからマイルストーンを削除します。
    プル要求のコメントをリスト プル要求のすべてのレビューコメントのリストを取得します。
    マイルストーンをリスト リポジトリ内のすべてのマイルストーンのリストを取得します。
    リポジトリイベントをリスト リポジトリ全体のイベントのリストを取得します。
    プル要求を検索 リポジトリのプル要求の詳細を取得します
    リポジトリを検索 特定のユーザーまたは組織に基づいてリポジトリの詳細を取得します。
    プル要求を結合 プル要求をリポジトリに結合します。
    協力者を削除 リポジトリから協力者を削除します。
    プル要求に関するコメントを更新 プル要求に提供されたレビューコメントを更新します。
    マイルストーンを更新 リポジトリ内のマイルストーンの詳細を更新します。
    プル要求を更新 リポジトリ内のプル要求の詳細を更新します。
    リポジトリを更新 GitHub でリポジトリの詳細を更新します。
    ソースコード管理 コミット時にコメントを作成 SHA を使用して、要求されたコミットのコメントを作成します。
    ファイルを作成または更新 ファイルを作成するか、リポジトリ内の既存のファイルを更新します。
    コミット ID でコメントを取得 単一のコミットに提供されたコメントを取得します。
    ID でコミット情報を取得 要求されたコミット参照の内容を取得します。
    ファイルコンテンツを取得 リポジトリ内のファイルのコンテンツを取得します。
    注:
    このアクションは、最大 1 MB のファイルサイズのファイルをサポートします。
    リポジトリ上のコミットをリスト リポジトリで行われたすべてのコミットの詳細を取得します。
    ユーザー管理 エンタープライズサーバーのすべてのユーザーを取得 すべての GitHub エンタープライズサーバーのユーザーのリストを取得します。
    認証ユーザーの組織をリスト ログインしているユーザーがメンバーとなっている組織のリストを取得します。
    ユーザーを一時停止 GitHub ユーザーアカウントを一時停止します。
    認証ユーザーを検索 認証されたユーザーに関する情報を取得します。

    スポークモジュール

    GitHub スポークは、次のモジュールを ServiceNow インスタンスに追加します。
    モジュール 説明
    GitHub 所有者 作成した GitHub 所有者レコードを表示します。
    GitHub リポジトリ GitHub 所有者に関連付けられた GitHub リポジトリの詳細を表示します。

    接続および資格情報エイリアスの要件

    統合ハブ は、エイリアスを使用して、接続情報および認証情報、および OAuth 認証情報を管理します。エイリアスを使用することで、複数の環境を使用する場合に、複数の認証情報と接続情報プロファイルを構成する必要がなくなります。接続または認証情報が変更された場合、接続を使用するどのアクションも更新する必要はありません。

    スポークの設定については、「 GitHub スポークの設定