【问题标题】:Reject Pull Request creation request if PR message body validation fails如果 PR 消息正文验证失败,则拒绝 Pull Request 创建请求
【发布时间】:2020-04-13 01:24:24
【问题描述】:

如果某些条件失败,我们是否可以拒绝创建拉取请求? 我正在 nodejsprobot 中开发 GitHub 应用程序,并希望在开发人员单击 “创建拉取请求” 时拒绝创建拉取请求> 如果验证 按钮(例如检查拉取请求正文中是否存在某些模式) 拉取请求正文失败。

因此,从根本上说,如果某些验证失败,则不应首先创建拉取请求(并且应将用户带回 PR 创建页面)。

即如果拉取请求正文(或任何其他逻辑)的验证失败,则位于同一拉取请求创建页面上。

【问题讨论】:

    标签: github github-api probot github-app octokit-js


    【解决方案1】:

    因此,从根本上说,不应该首先创建拉取请求

    这是不可能的。拉取请求的创建是一个原子操作,它不会暂停检查,例如 Git 中的预接收钩子,您可以在其中分析提交的有效负载,然后根据响应它枯萎失败或被添加到回购。

    您在此处的最佳选择是自动关闭拉取请求,并提供说明和失败原因的注释。我知道这可能会导致很多“空” PR,但这是您最接近的解决方案。

    您可以做的另一件事是最近几天才有可能做的事情是,如果您的逻辑失败,则将拉取请求保持打开状态并将其转换为草稿。只有当用户将拉取请求更正为您的标准时,您才会将其切换为非草稿:https://developer.github.com/v3/pulls/#update-a-pull-request。当然,在这种情况下,您必须监视更改拉取请求的事件。

    【讨论】:

    • 谢谢@bitoiu。我将对此进行检查并分享我的发现
    • 隔了很久才评论。不知何故错过了它。尝试了您的建议,在我的实施中,如果验证失败,我将关闭 PR。我也相信这是一种解决方法,听起来不是一个好方法。但它有效。另外,我遇​​到了“GitHub Checks”的概念,并期待着尝试一下。至于您在验证失败时将 PR 转换为草稿 PR 的第二个建议,我只是找不到使用您提到的其余端点“update-a-pull-request”更改为草稿的任何方法。状态采用两个值“open”或“close”,“draft”没有。
    猜你喜欢
    • 2022-11-21
    • 1970-01-01
    • 2015-03-25
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多