Introduction

Gadget is a service created by Inaka that will integrate with your Github public repositories and check all your Pull Requests with different tools, like dialyzer, xref and elvis.


Usage

Once you've signed up with your Github user, you'll see a grid with a row per repo and a column per tool. To [de]activate a tool for a repo, just click on its On/Off button.

When a tool is activated for a repo, a webhook will be added to that particular repository on Github. Then, each time somebody submits a pull request there, Gadget will check the PR's code with that tool and report any warnings as github comments.


Scope

Gadget will only check public repositories hosted on Github. It does not check private repos because checking repositories (for instance with dialyzer) requires Gadget to clone and compile them on Inaka's servers and that's something that can get very tricky very fast with private repositories.

Gadget's code is not open-source but it's build up using many open-source libraries like:


Erlang Github
Used to integrate with Github
Elvis
Used as a tool
Cowboy
As the web server that provides both the site and the API to integrate with Github
Rebar
To be able to compile rebar based projects
Xref Runner
Used as the Xref tool
Sumo DB
Used for persistency (Gadget keeps track of subscriptions) with a Mnesia backend
EPoCxy
Used to be able to run tool checks concurrently

Customization

If you want to have your own version of Gadget to use on your private repos you can either build it on your own using the open source libraries mentioned above or feel free to contact us by mail at hello@inaka.net or meet as at our open-source hipchat room