如何启用 Google 云函数以供 GitHub Webhook 调用

How to enable a Google Cloud Function to be invoked by GitHub Webhook

我设置了一个 GitHub Webhook,它是我的 Cloud Function 的触发器,因此每当使用此 GithHub Webhook 对存储库进行更改时,都会调用 Cloud Function。它适用于未经身份验证的访问,但在使用经过身份验证的访问时,必须完成一些设置。

我已经尝试在 GCP 中使用服务帐户,其中服务帐户只能调用特定的 Cloud Function,但问题是我无法明确地将此服务帐户分配给 GitHub's网络钩子。

注意:我考虑过使用 Bearer Token 并将其添加到我的 Cloud Function 中,这将提供一层安全性,但这不会阻止调用 Cloud Function,对吗?

是的,您需要使用 Google 帐户(服务帐户或用户帐户)进行身份验证,并获得 IAM 授权才能调用该功能。遗憾的是 Github webhook 不支持服务帐户密钥文件来生成安全令牌,然后安全地调用您的 Cloud Functions。

但是,您可以使用 API 键(您可以将其添加到 WebHook 的 URL 中)。我写了 an article that also work today with API Gateway(我文章中使用的 ESPv2 托管版本)