【问题标题】:Repository-Webhooks vs Github Apps - which to use?Repository-Webhooks vs Github Apps - 使用哪个?
【发布时间】:2022-05-21 01:54:31
【问题描述】:

用例:我当前的用例是对新问题做出反应并发布自动 cmets。这主要针对一两个存储库。

因此我猜想webhooks 在存储库上以及Github Apps 都可以使用。尽管 Github 在这两个方面都有一些非常好的文档,但我不确定在我的场景中使用哪一个。

比较它们有什么优点/缺点?

  • Github Apps 的一个优点是它们不需要根据这个answer 向存储库添加 WebHook。 - 不知道为什么这是一个优势。
  • 显然,GitHub 应用程序可以安装在不同的存储库中,也可以在市场上发布。但我也可以在不同的存储库中为 Webhook 使用相同的 URL,从而在一定程度上模仿 repository-webhooks 的行为。
  • 还有什么?

【问题讨论】:

    标签: github webhooks github-api


    【解决方案1】:

    主要区别在于 webhook 生成事件并将它们发送到给定的 URL Github。应用有权根据您授予的权限访问您安装它们的存储库。

    如果您有一个每次更新问题时都会触发的 webhook,您将在您指定的 URL 上收到一个事件,但您没有任何权利,例如在 Github 中修改该问题(例如通过 API 调用)。

    如果您在存储库中安装了 Github 应用,并且在应用设置中设置了 webhook URL,那么事件也会发送到该 URL。但是,区别在于:在 webhook URL 后面,您可能会有一个使用 Github 应用凭据(私钥或临时令牌)对您的 Github 存储库进行一些修改的服务。

    一个例子:

    • Webhook -> 记录拉取请求更改
    • Github 应用程序 -> 自动标记新的拉取请求

    【讨论】:

      【解决方案2】:

      还有什么?

      您也可以使用GitHub Actions。对于您的用例,有 issues 事件(实际上是一个 webhook)。它有几种活动类型,包括opened

      on:
        issues:
          types: opened
      

      此工作流程仅在创建问题时运行。之后,您可以使用REST API(例如通过 curl)到GET the newest issuePOST a comment

      正如您所说,这仅与“一个或两个存储库”相关,我认为只需复制和粘贴该工作流程即可。如果回购数量增加,您可能需要create a dedicated action

      说到自定义动作,还有一个现有的Auto Comment action

      on: issues
      jobs:
        run:
          runs-on: ubuntu-latest
          steps:
            - uses: bubkoo/auto-comment@v1
              with:
                GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
                issuesOpened: >
                  Your issue comment goes here.
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-01-26
        • 1970-01-01
        • 2014-12-08
        • 2018-05-14
        • 2018-02-18
        • 2013-01-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多