Introduction

Gadget's webhooks can analyze any pull request as long as the repo has a proper OTP folder structure. Each tool provides its own way to let you configure it, as you can see below.

Elvis

When the Elvis's webhook runs on your pull request it checks if there's an elvis.config file in your pull request's branch. If there is one then the configuration and the rules defined in that file are used. In case there is none, the default rules are used.

A complete list of rules available can be found here. Not all of these are part of the set of rules included in the default configuration file.

Xref

Xref uses Xref Runner to check your pull requests, that means you can add a xref.config to your path and xref_runner will use it when checking your code.

You can find more info on the format of the xref.config file on xref_runner repository.

Compiler

The Compiler tool tries to compile your project using either Makefile or rebar.

If you have a Makefile file your root folder, the Compiler will execute the following command and collect all compiler warnings.

    $ make

If you don't have Makefile, but you have a rebar.config file instead, the Compiler will then run:

    $ rebar get-deps compile

Dialyzer

Dialyzer only works with erlang.mk based projects for now.

If Dialyzer finds a Makefile in your root folder it will add a gadget.mk file of its own and it will run something very similar to the following list of commands and collect the warnings from the last one of them:

    $ make
    $ make plt
    $ make dialyze