一般情况下,应用程序中使用的每种语言都需要单独的linter,很多本可以利用自动化工具完成的操作,这时只能手动操作,费时费力。
GitHub Services DevOps工程团队为了文档和代码的一致性,同时提升整个公司之间的交流和协作的效率,开源了Super Linter。开源短短几天,就已经在Github上标星4.6K,Fork累计173个。
Linters是用于查找源代码中的Bug错误,格式错误,构建不良的结构以及其他可能导致效率低下的代码问题的工具。
Super Linter通过自动化解决了许多需求。其特性包括:
- 防止将损坏的代码上传到主分支;
- 帮助建立多种语言的编码最佳实践;
- 制订代码布局和格式的指南;
- 自动化流程以帮助简化代码审查;
- 有了这些基础标准后,我们就能在内部 / 向客户和合作伙伴交付更好、更整洁、更稳定的代码。
Super Linter本身是一个打包在Docker容器中的代码存储库,任何在GitHub上具有存储库的人都可以使用GitHub Action对其进行调用。
Super Linter可以设置为在打开拉取请求时运行,它会通知你是否通过代码更改,或者检测代码Bug,然后开发人员就可以返回其分支,修复Bug,并创建一个新的拉取请求。
从代码库的README上看,Super Linter目前已支持Go、JavaScript、JSON、Markdown、Python3、Ruby等18种编程语言,并将于后续添加更多编程语言的支持:
但是,Super Linter也有一定的局限性:
- 因为它是运行时打包,所以无法更新依赖项
- Super Linter不会从JSON包中读取其他详细信息
- 用户无法从专用存储库下载其他代码库作为依赖项。