Integrated with GitHub

GolangCI works with GitHub pull requests. It comments lines in a changed code with found issues.

Demo of integration of GolangCI with GitHub Pull Requests

GolangCI sets a GitHub pull request status: success or failure (issues were found).

Demo of integration of GolangCI with GitHub Commit Statuses

Automated Code Fixes

For some linters, we can automatically fix your source code.

GolangCI suggested changes in GitHub Pull Requests

Convenient Control Panel

Connect or disconnect GolangCI for repos. See repository reports. Filter repos by name or language.

GolangCI control panel

Analysis Reports

We provide reports for performed analyses. See an example of a report for analysis without found issues below.

GolangCI successful report

You can click on a Details link in a pull request status to view a report.

GolangCI link to report in a pull request details

We do reports for pull requests and repos (default branch in GitHub settings of the repo). See an example of a repo analysis report with found issues below.

GolangCI report for the repo with found issues

Reports contain a build log to get insights on how an analysis was performed: all commands, environments vars, etc.

GolangCI build log in a report

Custom Build Steps

You can customize via .golangci.yml how we run an analysis for a repo: install needed dependencies, generate code, etc.

GolangCI custom build steps by .golangci.yml

Why us?

You will get the perfect Go code review because we are focused only on one language - Go. We are fine-tuning our tools for the best go code analysis.

GolangCI is built by developers for developers. We believe in open source and GolangCI is an open source project.

Why do you need it?

Reduce time spent on reviews

GolangCI automatically detects issues and writes comments in GitHub pull request. It dramatically saves a reviewer’s time.

Reduce the cost of code support

When every line of code is written in the same style, the whole codebase becomes easier to read, understand and debug.

Make your customers happy

Reduce the number of bugs in production and testing environment.

Reduce release cycle time

Review faster, merge faster, and deliver software faster. With competitors increasingly able to release new features within days or even hours, companies can no longer afford unpredictable, lengthy, and inefficient release processes.

Linters

We support the following linters:

go vet

Vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.

errcheck

Errcheck is a program for checking for unchecked errors in go programs. These unchecked errors can be critical bugs in some cases.

golint

Golint differs from gofmt. Gofmt reformats Go source code, whereas golint prints out style mistakes.

staticcheck

Staticcheck is go vet on steroids, applying a ton of static analysis checks.

go-critic

The most opinionated Go source code linter.
We run the aforementioned linters by running golangci-lint on analyzed code in this way:
golangci-lint run --new-from-patch=/path/to/patch/for/pull/request
By default, only some of these linters are enabled. You can create .golangci.yml to enable additional linters, disable some of the default linters and customize their settings.

Thousands of companies trust GolangCI

Google Logo
Facebook Logo
AWS Logo
Netflix Logo
Yahoo! Logo
IBM Logo
Xiaomi Logo
Samsung Logo
Istio Logo
Zalando Logo
Red Hat Logo
The New York Times Logo

Some random connected to GolangCI repos: michaelmure/git-bug, dgraph-io/dgraph, avelino/awesome-go