GitHub開源原本內部使用的Super Linter,該工具可以避免把有問題的程式碼上傳到主分支中,也能幫助建立多種語言的程式碼最佳實踐,以自動化流程簡化程式碼審查,並建構程式碼布局和格式準則,讓開發者可以交付更乾淨穩定的程式碼。目前Super Linter支援Dockerfile、JavaScript、Markdown、Python3、TypeScript和Ruby等多種熱門程式語言,未來GitHub還會加入更多語言支援。

GitHub提到,要在新的儲存庫,設定適用不同類型程式碼的Linter耗時且繁瑣,開發者需要從眾多選項中,找出適用的工具和配置,而且通常需要一個以上的Linter,才能滿足多種語言的需求。Super Linter是由GitHub服務DevOps工程團隊開發,目的是要用來維持文件和程式碼的一致性,讓企業內的交流和協作更有效率。

而Super Linter其實就是一個打包成為Docker容器的原始碼儲存庫,可被GitHub Actions呼叫,而這樣便可讓在GitHub.com上的所有儲存庫,都能夠使用Super Linter,分析儲存庫中的程式碼。當開發者在儲存庫完成配置之後,在任何時候打開拉取請求,Super Linter便會開始檢查和整理程式碼,並透過Status API回傳結果。

當Super Linter更改任何程式碼或是偵測到錯誤,都會告知開發者位置以及內容,之後開發者便能回到分支修正錯誤,並重新推送拉取請求,而這時Super Linter便會再次驗證更新後的程式碼。開發者可以配置分支保護規則,確保在所有程式碼通過驗證後,才能進行合併動作。

官方表示,要在Super Linter中標準化規則並不容易,因為每個開發者編寫程式碼的方法,都是獨一無二的,因此Super Linter讓開發者可以自己配置適於儲存庫的Linter規則,不過當還沒有定義之前,官方便須提供預設標準,Ruby和Rails的規則集來自Ruby gem: rubocop-github,並遵循用於GitHub.com的規則和版本控制,而其他語言則預設選用coffeelint、yamllint、Markdownlint和pylint。開發者可以立刻開始使用Super Linter,並在需要的時候進行額外的客製化。


Advertisement

更多 iThome相關內容