GitHub Super Linterは、GitHubリポジトリの設定プロセスを自動化して、プルリクエストが作成されるたびに適切なlintを使用することを目的としている。
GitHubによれば、Super Linterを使用すると、開発者は壊れたコードがマスターブランチに入らないようにすることが容易になる。Super Linterを使用する場合は、
プルリクエストを開くと、コードが静的解析(lint)され、Status APIを介して戻ります。コードの変更が成功したか、エラーが検出されたか、それらがどこにあり、何であるかを通知します。
検出されたすべての問題を修正した後、開発者はプルリクエストを更新できる。Super Linterが追加の問題を検出しない場合、プルリクエストが作成される。
GitHub Super Linterは基本的に、GitHubリポジトリを構成して、新しいプルリクエストごとにGitHubアクションを実行する。これは、以前から利用可能であった多数のオープンソースのlintを、GitHubアクションによって呼び出されるDockerコンテナーにパッケージ化する。Super Linterは、JavaScript、Python3、Perl、TypeScript、Golangなど、多くの言語をサポートしている。
Super Linterを組織のガイドラインに適合させるために、使用するlintのテンプレートルールファイルを.github/linters
にコピーして提供できる。カスタムルールファイルが提供されていない場合、Super Linterは独自のデフォルトルールファイルを使用する。同様に、Super Linterでは、特定のlintやルールを無効にして、特定のエラーや警告を無視することができる。
Super Linterには、環境変数を使用して設定できる多くのカスタマイズオプションも含まれている。たとえば、VALIDATE_ALL_CODEBASE
をtrue
に設定すると、新しいファイルや変更されたファイルだけではなく、すべてのファイルを静的解析(lint)する。いくつかのフラグを使用すると、言語ごとにlintを有効または無効にできる。
GitHubによれば、Super Linterは言語間で適切なコーディングプラクティスを確立するのに役立ち、プルリクエストに費やされる作業量を減らすことでコラボレーションをより効果的にするだろう。
GitHubのライバルであるGitLabも、Code Qualityコンポーネントを通じてGitHub Super Linterと同様の機能をサポートしている。 GitLabは、マスターにマージする前に、CodeClimateエンジンに依存して自動コードレビューを提供する。GitLabのソリューションはSuper Linterほど多くの言語をサポートしていないが、GitLabはCode Qualityの言語サポートの拡張に取り組んでいると述べている。
最後に、GitHub Super Linterは、IDE全体をクラウドに移行するためのもう1つのステップと見なすことができる。同じように、数か月前にGitHubはGitHub内に完全に構成されたVisual Studio Codeベースの環境を提供するGitHub Codespacesを導入した。