/code-review-bot

Code review bot and CLA verifier

Primary LanguageGoApache License 2.0Apache-2.0

Code Review Bot

Build Status Go Report Card API docs

Prerequisites

First, ensure that you have installed Go 1.11 or higher since we need the support for Go modules via go mod.

On Travis CI, we also define the env var GO111MODULE=on to override the Go 1.5 vendor experiment; you may not necessarily need this setting in your environment if you don't have Go 1.5 vendor experiment also enabled.

Building

To build the crbot tool without a cloned repo (assuming that $GOPATH/bin is in your $PATH):

$ go get github.com/google/code-review-bot/cmd/crbot
$ crbot [options]

Or, from a cloned repo:

$ git clone https://github.com/google/code-review-bot.git
$ cd code-review-bot
$ go build ./cmd/crbot
$ ./crbot [options]

Developing

Install GoMock:

$ go get github.com/golang/mock/gomock@v1.3.1
$ go get github.com/golang/mock/mockgen@v1.3.1

Generate the mocks:

$ go generate ./...

This specific version of both gomock and mockgen tools is what's used in this repo, and tests will fail if your version of these tools generates different code, including comments.

To update the versions of these tools used in this repo:

  1. update the version numbers in this file (above) as well as in .travis.yml and go.mod to match
  2. run go mod tidy to update the go.sum file
  3. run the updated go get commands above to get newer versions of the tools
  4. run the go generate command above to regenerate the mocks
  5. run the tests from the top-level of the tree
  6. commit your changes to this file (README.md), go.mod, go.sum, and .travis.yml, making sure that the build passes on Travis CI before merging the change

Testing

Just what you might expect:

$ make test

Contributing

See CONTRIBUTING.md for more details.

License

Apache 2.0; see LICENSE for more details.

Disclaimer

This project is not an official Google project. It is not supported by Google and Google specifically disclaims all warranties as to its quality, merchantability, or fitness for a particular purpose.