github是否提供
脚本通过拉取请求 Hook 运行。
我正在尝试建立一个预筛选机制来捕捉微不足道的错误/错误,这样审阅者就不会为微不足道的错误而烦恼,他们可以更多地关注逻辑/功能。如果预筛选脚本发现有问题的源不符合规范(通常,即使最简单的检查也失败了;例如,具有 >5000 SLoC 的函数,或不安全的 strcpy(),或包含已弃用的头文件等),它应该返回一个失败并且拉取请求本身应该失败,除非满足最低门控标准。
由于代码在 github 而不是本地服务器上,这似乎有点棘手。
我得到了一些指示( here , and here ),但仍然无法完全收集详细信息。代码库由 github 上的多个存储库组成。有没有更好的方法来实现和实现这一目标?请分享您对可能方法的想法。谢谢!
最佳答案
Does GitHub provide hooks to setup scripts to be run on every pull request (where say, one could call a simple static code analyser script) and a provision to reject the pull request, based on the results from that script run via pull request hook.
这应该可以通过 GitHub API 实现,方法是结合 creation of a hook 对于 类型的事件拉请求 , 然后用生成的 修饰提交status .
这是一种相当低级的方法,但是这使您可以完全控制正在执行的操作。例如,您可以自动向拉取请求添加评论,甚至在它们未通过分析过程时关闭它们。
另一种更高级别的方法是利用 Travis CI 通过添加 提供服务.travis.yml 存储库中的文件。 Travis 对开源项目是免费的,也为私有(private)存储库提供付费服务。
设置 Travis 非常简单,调整构建脚本轻而易举。
下面两个示例 Travis 脚本供您引用:
GitHub Commit Status 服务的官方公告可以在 中阅读。 blog post .
关于Github pull request hooks、静态代码分析和临时回滚,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17947381/