Code Analysis - Awesome Go
Source code analysis tools, also known as Static Application Security Testing (SAST) Tools.
- apicompat - Checks recent changes to a Go project for backwards incompatible changes.
- asty - Converts golang AST to JSON and JSON to AST.
- blanket - blanket is a tool that helps you catch functions which don't have direct unit tests in your Go packages.
- ChainJacking - Find which of your Go lang direct GitHub dependencies is susceptible to ChainJacking attack.
- Chronos - Detects race conditions statically
- dupl - Tool for code clone detection.
- errcheck - Errcheck is a program for checking for unchecked errors in Go programs.
- fatcontext - Fatcontext detects nested contexts in loops or function literals.
- gcvis - Visualise Go program GC trace data in real time.
- go-checkstyle - checkstyle is a style check tool like java checkstyle. This tool inspired by java checkstyle, golint. The style referred to some points in Go Code Review Comments.
- go-cleanarch - go-cleanarch was created to validate Clean Architecture rules, like a The Dependency Rule and interaction between packages in your Go projects.
- go-critic - source code linter that brings checks that are currently not implemented in other linters.
- go-mod-outdated - An easy way to find outdated dependencies of your Go projects.
- go-outdated - Console application that displays outdated packages.
- goast-viewer - Web based Golang AST visualizer.
- goimports - Tool to fix (add, remove) your Go imports automatically.
- golang-ifood-sdk - iFood API SDK.
- golangci-lint β A fast Go linters runner. It runs linters in parallel, uses caching, supports yaml config, has integrations with all major IDE and has dozens of linters included.
- golines - Formatter that automatically shortens long lines in Go code.
- GoPlantUML - Library and CLI that generates text plantump class diagram containing information about structures and interfaces with the relationship among them.
- goreturns - Adds zero-value return statements to match the func return types.
- gostatus - Command line tool, shows the status of repositories that contain Go packages.
- lint - Run linters as part of go test.
- php-parser - A Parser for PHP written in Go.
- revive β ~6x faster, stricter, configurable, extensible, and beautiful drop-in replacement for golint.
- staticcheck - staticcheck is go vet on steroids, applying a ton of static analysis checks you might be used to from tools like ReSharper for C#.
- testifylint β A linter that checks usage of github.com/stretchr/testify.
- tickgit - CLI and go package for surfacing code comment TODOs (in any language) and applying a git blameto identify the author.
- todocheck - Static code analyser which links TODO comments in code with issues in your issue tracker.
- unconvert - Remove unnecessary type conversions from Go source.
- usestdlibvars - A linter that detect the possibility to use variables/constants from the Go standard library.
- vacuum - An ultra-super-fast, lightweight OpenAPI linter and quality checking tool.
- validate - Automatically validates struct fields with tags.
- wrapcheck - A linter to check that errors from external packages are wrapped.