Docs Menu
Docs Home
/ /
Atlas App Services
/ /

Github Service [非推奨]

項目一覧

  • Overview
  • 構成パラメータ
  • サービス アクション
  • 受信 Webhook
  • 構成
  • リクエスト ペイロード
  • Webhook 関数の例
  • Github設定
  • Githubリポジトリへの Webhook の追加

重要

サードパーティ サービスとプッシュ通知の廃止

Atlas App Services のサードパーティ サービスとプッシュ通知は非推奨となり、代わりに関数内の外部依存関係を使用する HTTP エンドポイントを作成できるようになりました。

Webhook はHTTPS endpointsに名前変更され、動作は変更されません。 既存の Webhook を移行する必要があります。

既存のサービスは、 30、2025 まで引き続き機能します。

サードパーティ サービスとプッシュ通知は非推奨になったため、App Services UI からデフォルトで削除されました。 既存のサードパーティ サービスまたはプッシュ通知を管理する必要がある場合は、次の操作を実行して構成を UI に追加できます。

  • 左側のナビゲーションの [ App Settings Manageセクションの下にある [] をクリックします。

  • Temporarily Re-Enable 3rd Party Servicesの横にあるトグル スイッチを有効にし、変更を保存します。

Githubは、Git リポジトリをホスティングおよび確認するためのウェブベースの開発プラットフォームです。

Atlas App Services Githubサービスを使用すると、アプリケーションは新しいプル リクエストや問題など、 Reactリポジトリ内のイベントにGithubできます。

Githubサービスインターフェイスを作成するときは、次のパラメータに値を指定する必要があります。

<Service Name><サービス名/config.json
{
"name": "<Service Name>",
"type": "github",
"config": {}
}
Parameter
説明
Service Name
config.name
このGithubサービス インターフェイスの名前。 これは、アプリケーション内の他のすべてのサービス インターフェースと一意である必要があります。

Github Services では、サービス アクションは提供されません。 リポジトリ内のイベントに応答するには、 受信 WebhookGithub を使用します。

注意

Github Webhook のエンドポイントへの変換

Github Service Webhook は非推奨となり、代わりに カスタムHTTPS endpointsが採用されるようになりました。 既存のGithub Webhook をエンドポイントに移行する方法については、「 Webhook をHTTPS endpointsに変換する 」を参照してください。

Githubは、リポジトリで特定のイベントが発生するたびに、1 つ以上の Webhook を呼び出すことができます。 GithubGithubイベントタイプに関する詳細な参照情報を含む、Github の Webhook 機能の詳細については、 の Webhook を参照してください。 ドキュメント。

Github受信 Webhook を構成するときは、次のパラメータに値を指定する必要があります。

Github受信 Webhook を構成するときは、次の形式の構成ファイルを提供する必要があります。

{
"name": <string>,
"respond_result": <boolean>,
"run_as_user_id": <string>,
"run_as_user_id_script_source": <string>,
"options": {
"secret": <string>
},
}
構成値
説明
Webhook Name
name
必須。 Webhook の名前。 Githubサービス インターフェース内の各受信 Webhook には一意の名前が必要です。
Respond With Result
respond_result
必須。 true{0 の場合、App ServicesGithub は Webhook 関数の戻り値をレスポンス本文で に送信します。
Run Webhook As
run_as_user_id
run_as_user_id_script_source

任意。 Webhook が呼び出されるときに Webhook 関数を実行するApp Services ユーザーの ID。

実行ユーザーを構成するには、次の 3 つの方法があります。

  • System: 実行ユーザーはシステムユーザーです。このユーザーは MongoDB CRUD と Aggregation API へのフルアクセス権を持ち、すべてのルールとスキーマの検証をバイパスします。

  • User Id: 関数を実行する特定のアプリケーション ユーザーを選択します。

  • Script: 実行ユーザーのidを返す関数を定義します。

でユーザー を直接指定することも、ID run_as_user_idで Webhook ペイロードを受け入れ、ユーザーAtlas Function を返す文字列化されたID run_as_user_id_script_sourceを提供することもできます。特定のユーザー ID またはユーザー ID に解決される関数を指定しない場合、App Services は MongoDB CRUD および集計 API へのフルアクセス権を持つシステムユーザーとして Webhook 関数を実行し、すべてのルールとスキーマの検証をバイパスします。

Request Validation
config.secret
GitHub SecretstringGithubリクエストが有効であることを証明するために が受信リクエストに含める 。Webhook を指定するときに リポジトリの設定でこの値を指定する必要があります。GithubURL

App Services は、受信する Webhook 関数の最初の引数としてpayloadドキュメントを自動的に渡します。 Github Service 受信 Webhook では、payload オブジェクトは、Gitthub がGithubを呼び出す原因となったGithubイベントを表します。

注意

Github payload ドキュメントの正確な内容は、表すイベントの種類によって異なります。 特定のイベントタイプのペイロード ドキュメントの詳細については、Github の イベントタイプとペイロード を参照してください。 ドキュメント。

次の Webhook 関数は、受信データを MongoDB コレクションに挿入します。

exports = function(payload) {
const mongodb = context.services.get("mongodb-atlas");
const requestlogs = mongodb.database("test").collection("requestlogs");
return requestlogs
.insertOne({
"commits": payload.commits,
"pushed_by": payload.pusher,
"repo": payload.repository.html_url
})
.then(({ insertedId }) => `Inserted document with _id: ${insertedId}`)
}

payload ドキュメントはGithubサービスによって渡され、リクエストの情報が含まれています。

  1. Githubにログインします。

  2. サブスクライブするリポジトリに移動します。

  3. リポジトリの [ Settings ] タブをクリックし、左側のメニューから [ Webhooks ] を選択します。

  4. [Add Webhook] をクリックします。

  5. Webhook URL をPayload URLフィールドに追加します。

  6. コンテンツタイプをapplication/jsonに設定します。

  7. Enter the GitHub Secret. これは、Webhook 構成で指定した値と一致する必要があります。

  8. サブスクライブするイベントのタイプを選択します。

  9. [Add webhook] をクリックします。

戻る

Amazon Web Services