演習 - GitHub リポジトリの Webhook を設定する

完了

この演習では、GitHub リポジトリの Webhook を設定します。 特定のイベント (このケースでは Gollum イベント) をリッスンする方法と、イベントがトリガーされたときに関数で Webhook のコールバックを行う方法を学習します。

セットアップ

  1. Web ブラウザーを使用して、GitHub アカウントにサインインします。

  2. 左側のメニュー ウィンドウで [新規] を選択して、新しいリポジトリを作成します。 [Create a new repository](新しいリポジトリを作成する) ページが表示されます。

  3. [リポジトリ名] ボックスに、わかりやすい名前 (「LearnWebhookTest」など) を入力します。

  4. [Public](パブリック) を選択して wiki モジュールをアクティブにし、メニューからそれを見つけます。

  5. [Create repository] (リポジトリの作成) を選択します。 [Quick setup](クイック セットアップ) ページが表示されます。

  6. 新しいファイルを作成するリンクを選択します。

  7. 上部のメニュー バーで、[Wiki] を選択して、自分のリポジトリ ("リポジトリ") 内のページを表示します。 ウェルカム ページが表示されます。

  8. [Create the first page](最初のページの作成) を選択します。 [Create new page](新しいページの作成) テンプレートが表示されます。

  9. 何かテキストを追加して、[Save Page](ページの保存) を選択します。 Wiki の最初のページは [ホーム] ページです。

Gollum イベントの Webhook を追加する

Gollum は、リポジトリの Wiki 内でページが作成または更新されるたびに発生する GitHub イベントの名前です。

  1. Wiki ビューのホーム ページには、リポジトリ内のページを一覧表示する [ページ] サイドバーがあります。 [ホーム] を選択して、ホーム ページを表示します。

  2. ホーム ページの上部のメニュー バーで、[設定] を選択します。 [設定] ペインが表示されます。

  3. [設定] サイド バーで、[Webhook] を選択します。 [Webhook] ペインが表示されます。

  4. 右上にある [Webhook の追加] を選択します。 GitHub から、GitHub 用のパスワードの確認を求められる場合があります。

  5. [Webhook/Webhook の追加] ペインで、各設定に対して次の値を入力します。

    設定
    ペイロード URL 前の演習の Azure 関数アプリの URL。 ヘルプについては、次の注を参照してください。
    Content type ドロップダウン リストで、[application/json] を選択します。
    どのイベントによって、この Webhook をトリガーしますか? [Let me select individual events] (個々のイベントを選択させてください) を選択してください。表示されるイベント リストで、下にスクロールし、[Wiki] チェックボックスをオンにします。 その他のチェック ボックスはオフのままにします。
    アクティブ オン。

    ヒント

    コマンド バーから [関数 URL の取得] を選択することで、[Azure HttpTrigger] ペインから関数 URL をコピーします。 URL は次のようになります: https://<your-functionapp-name>.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ==

  6. [Add webhook](Webhook の追加) を選択します。 [Webhook] ペインが表示されます。

  7. 新しい Webhook が表示されることを確認します。 その名前の末尾に (gollum) が付いているはずです。

Webhook をテストする

  1. GitHub の上部のメニュー バーで、[Wiki] を選択します。 先ほど作成した [ホーム] ページが表示されます。

  2. [編集] を選択します。 [Editing Home](ホームの編集中) ペインが表示されます。

  3. ペインのテキスト領域に、次のテキストを入力します。

    Testing Webhook
    
  4. [ページの保存] を選択します。 [ホーム] ページが再び表示されます。

  5. 上部のメニュー バーで、[Settings](設定) を選択します。 [設定] ペインが表示されます。

  6. サイドバーで、[Webhooks] を選択します。 [Webhook] ペインが表示されます。

  7. [編集] を選択します。 [Webhooks/Manage webhook](Webhook/Webhook の管理) ペインが表示されます。

  8. [Recent Deliveries] (最近の配信) タブを選択します (ページの下部までスクロールする必要があることがあります)。

  9. 一覧の一番上 (最新) のデリバリ エントリを選択するには、その省略記号 ([...]) を選択します。

    Event を含むヘッダー セクションが表示されます。

    Request URL: https://testwh123456.azurewebsites.net/api/HttpTrigger1?code=aUjXIpqdJ0ZHPQuB0SzFegxGJu0nAXmsQBnmkCpJ6RYxleRaoxJ8cQ%3D%3D
    Request method: POST
    Accept: */*
    content-type: application/json
    User-Agent: GitHub-Hookshot/16496cb
    X-GitHub-Delivery: 9ed46280-6ab3-11e9-8a19-f1a14922a239
    X-GitHub-Event: gollum
    X-GitHub-Hook-ID: 312141005
    X-GitHub-Hook-Installation-Target-ID: 394459163
    X-GitHub-Hook-Installation-Target-Type: repository
    

    [ペイロード] セクションには、Wiki ページが編集されたことを示す情報が含まれていることもわかります。 ペイロードには pagesrepository、および sender のセクションが含まれており、次の例のようになります。

        "pages": [
            {
                "page_name": "Home",
                "title": "Home",
                "summary": null,
                "action": "edited",
                "sha": "04d012c5f92a95ae3f7721173bf9f2b1b35ea22f",
                "html_url": "https://github.com/.../wiki/Home"
            }
        ],
        "repository" : {
            "id": 176302421,
            "node_id": "MDEwOlJlcG9zaXRvcnkxNzYzMDI0MjE=",
            "name": "tieredstorage",
            ...
        },
        "sender" : {
            ...
        }
    
  10. [Recent Deliveries](最近のデリバリ) タブで、[応答] タブを選択します。

    Azure 関数によって生成された応答メッセージが表示されます。 この例では、本文にメッセージを含める必要があります。 This HTTP triggered function executed successfully. クエリ文字列または要求本文に、パーソナライズされた応答の名前を渡します.