【问题标题】:How to address the issue of a particular GitHub Integration being not reachable如何解决无法访问特定 GitHub 集成的问题
【发布时间】:2020-05-14 04:28:42
【问题描述】:

如果 GitHub 集成失败,一般会发生什么。 假设我们有一个验证拉取请求的 GitHub 应用程序。如果该应用程序宕机了,GitHub 是否会显示一些关于它的消息。

当应用未启动时,拉取请求似乎通过了。 这是相当危险的。我的意思是,GitHub 是否为 GitHub 集成提供了任何后备机制。

编辑 1:开始

我只是想知道,由于 webhook 是从 GitHub 端发送到我们在应用设置中配置的 webhook url,如果 webhook url 无法访问,GitHub 有没有办法通知用户。

编辑 1:结束

【问题讨论】:

    标签: github github-api github-app probot


    【解决方案1】:

    当应用未启动时,拉取请求似乎通过了。这是相当危险的。我的意思是,GitHub 是否为 GitHub 集成提供了任何后备机制。

    您可以做的是使用分支保护设置来强制执行该特定集成的成功状态。如果集成失败,则状态将保持挂起。

    如果集成恢复,您可以重新触发它,例如通过推送另一个提交。如果集成持续较长时间,您仍然可以在本地验证拉取请求,然后使用管理员授权覆盖所需的状态

    另请参阅:https://help.github.com/en/github/administering-a-repository/about-required-status-checks

    【讨论】:

    • 欣赏。这听起来确实很棒。检查api!我从来没有能够在我的 probot 应用程序中实现它们。这个例子是用 ruby​​ 编写的,从初学者的角度来看,这很令人困惑。我只是迷失在文档中。刚弄糊涂了。今天看到你的回复后我也试过了,但不知何故无法通过它。我不断收到错误。我会发布一个不同的 OP,看看我是否能在这方面得到任何帮助。
    • 仅供大家参考,我在这里发布了我的问题:stackoverflow.com/questions/61810089/… 可能是我遗漏了什么,但真的很难处理。
    • 经过几天的反复试验,我克服了这个问题。我关闭了集成(我托管的 GitHub 应用程序)并尝试创建拉取请求。我可以看到 PR 页面上的状态检查现在显示“ Expected — Waiting for status to be reported”。然后我尝试再次启动该应用程序。但状态保持不变。这种行为很自然,因为 GitHub 不检查集成状态。但是,除非检查完成,否则开发人员如何知道他需要执行的操作,因为检查标题和摘要本身中提供了详细信息,但现在没有显示。
    【解决方案2】:

    我的意思是,GitHub 是否为 GitHub 集成提供了任何后备机制。

    那将是 GitHub Actions 就像那些:因为它们是在 GitHub 端执行的,遵循源代码的 .github/workflows/ci.yml(例如 actions/create-release ci.yml)部分,如果 GitHub 关闭,PR 将不会去因为验证步骤尚未完成。

    这与 WebHook 不同,其中 GitHub 发送 JSon 有效负载,而不关心是否收到这些有效负载。

    【讨论】:

    • 那么,这意味着我们无法为 GitHub 端的 GitHub 应用程序做任何事情来处理这种情况,对吧?您有什么解决方法可以建议我可以从我身边尝试吗?我也无法想到不断检查(可能通过 ping)应用程序的运行状态,因为当会引发数千个并发请求时,这听起来并不可行。
    • @AsifKamranMalick 没错,这就是为什么我建议在 GitHub 上做一些事情。
    • 好的。最后一个后续问题:市场上有大量的 GitHub 应用程序。应用程序所有者如何处理这种情况。只是好奇。
    • @AsifKamranMalick 我怀疑通过githubstatus.com/api的投票
    • @AsifKamranMalick 右:那将是 developer.github.com/v3/checksdeveloper.github.com/v3/repos/statuses(状态仅适用于 GitHub 应用程序)
    猜你喜欢
    • 1970-01-01
    • 2020-06-10
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-16
    相关资源
    最近更新 更多