{"repo":"fe3dback/go-arch-lint","free":true,"listed":false,"github":"https://github.com/fe3dback/go-arch-lint","clone":"git clone https://github.com/fe3dback/go-arch-lint.git","description":"GoLang architecture linter (checker) tool. Will check all project import path and compare with arch rules defined in yml file. Useful for hexagonal / onion / ddd / mvc and other architectural patterns. Tool can by used in your CI","language":"Go","stars":529,"topics":["golang","linter","architecture","checker","arch-lint","arch-rules","yaml","golang-architecture-linter"],"license":"MIT","category":"dev-tools","readme_excerpt":"Linter used to enforce some good project structure and validate top level architecture (code layers) Quick start What exactly is project architecture? You can imagine some simple architecture, for example classic onion part from \"clean architecture\": And describe/declare it as semantic yaml linter config: see config syntax for details. And now linter will check all project code inside internal workdir and show warnings, when code violate this rules. For best experience you can add linter into CI workflow Example of broken code Imagine some main.go , when we provide repository into handler and get some bad flow: Linter will easily found this issue: Install/Run Wia Docker other docker tags and versions From sources It requires go 1.25+ Precompiled binaries see on releases page Usage How to add linter to existing project? Adding a linter to a project takes several steps: 1. Current state of the project 2. Create a .go-arch-lint.yml file describing the ideal project architecture 3. Linter find some issues in the project. Don’t fix them right now, but “legalize” them by adding them to the config and marking todo with the label 4. In your free time, technical debt, etc. fix the code 5. After fixes, clean up config to target state Execute This linter will return: Status Code Description ------------- ---------------------------------- 0 Project has correct architecture 1 Found warnings How is working? Linter will: - match/mark go packages with components - finds all dependencies bet","default_branch":null,"files":null,"tree":[],"storefront":"/r/fe3dback","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/fe3dback/go-arch-lint/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}