GitHub 服务 [已弃用]
重要
第三方服务和推送通知弃用
App Services 中的第三方服务和推送通知已弃用,转而创建在函数中使用外部依赖项的 HTTP 端点。
Webhook 已重命名为 HTTPS 端点,行为没有发生变化。您应该迁移现有的 Webhook。
现有服务将继续运行到 9 月30 ,2025 。
由于第三方服务和推送通知现已弃用,因此,默认将其从 App Services 用户界面中删除。如果您需要管理现有的第三方服务或推送通知,可以执行以下操作以将配置重新添加到用户界面中:
在左侧导航栏中的 Manage(管理)部分下面,单击 App Settings(应用设置)。
启用 Temporarily Re-Enable 3rd Party Services(暂时重新启用第三方服务)旁边的切换开关,然后保存更改。
Overview
GitHub 是一个基于 Web 的开发平台,用于托管和审核 Git 存储库。
Atlas App Services Github 服务允许您的应用程序对 Github 存储库中的事件React,例如新的请求或问题。
配置参数
{ "name": "<Service Name>", "type": "github", "config": {} }
Parameter | 说明 |
---|---|
Service Name config.name | 此 GitHub 服务接口的名称。 它必须不同于应用程序中的所有其他服务接口。 |
服务操作
Github服务不提供任何服务操作。 使用 传入 Webhook响应Github库中的事件。
和传入网络钩子,
注意
将 GitHub Webhook 转换为端点
Github 服务 webhook 已弃用,取而代之的是自定义 HTTPS endpoints。要了解如何将现有 Github Webhook 迁移到端点,请参阅将 Webhook 转换为 HTTPS endpoints。
每当存储库中发生特定事件时, Github都可以调用一个或多个 Webhook。 如果您想了解有关Github 的 Webhook 功能的更多信息,包括有关Github 事件类型的详细参考信息,请参阅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 ,则 App Services 将 Webhook 函数的返回值在响应正文中发送到 GitHub。 |
Run Webhook As run_as_user_id run_as_user_id_script_source | 可选。 调用 Webhook 时执行 Webhook 函数的App Services 用户的 ID。 您可以直接在 |
Request Validation config.secret | GitHub 在传入请求中包含的GitHub Secret字符串,用于证明请求有效。 提供 Webhook URL 时,必须在 GitHub 存储库的设置中指定此值。 |
请求有效负载
App Services 会自动将payload
文档作为第一个参数传递给传入的 Webhook 函数。 在 GitHub 服务传入的 Webhook 中, payload
对象表示导致 GitHub 调用 Webhook 的 GitHub 事件。
注意
Github payload
文档的确切内容因其代表的事件类型而异。 有关特定事件类型有效负载文档的详细说明,请参阅Github 的 事件类型和有效 负载 文档。
Webhook 函数示例
以下 Webhook 函数将传入数据插入 MongoDB collection。
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 服务传递,包含请求中的信息。
配置 GitHub
将 Webhook 添加到 GitHub 存储库
登录Github 。
导航到要订阅的存储库。
单击存储库的Settings标签页,然后从左侧菜单中选择Webhooks 。
单击 Add Webhook(连接)。
将 Webhook URL 添加到Payload URL字段。
将内容类型设置为
application/json
。输入GitHub Secret 。 这应该与您在 Webhook 配置中提供的值匹配。
选择您要订阅的事件类型。
单击 Add webhook(连接)。