A code review bot for github pull requests
a form of glanders chiefly affecting the skin and superficial lymphatic vessels of horses and mules.
While horses and mules function with farcy, such animals would likely prefer not to have them, and they are an eyesore to those viewing such animals. Unreviewed source code is analogous to farcy for equines, where the resulting execution of the source code will likely work as intended, but may be an eyesore to those working with the source. Farcy attempts to instruct authors of pull requests to remove eyesores they’ve added by commenting on changes introduced in pull requests.
Installation and execution
Farcy is easiest to install using pip:
$ pip install farcy
Farcy is run by specifying a github repository owner (or organization), the repository name, and an optional log level:
$ farcy --level INFO appfolio farcy
Farcy allows to be configured using configuration files. Existence of a configuration file is optional and values can be overwritten by commandline arguments. On boot, Farcy will look for a configuration file at ~/.config/farcy/farcy.conf.
The configuration file can contain a DEFAULT section and a section per repository with specific settings. The DEFAULT section can take an optional repository key.
[DEFAULT] log_level: INFO repository:appfolio/farcy [appfolio/farcy] debug: true exclude_paths: npm_modules, vendor, db limit_users: balloob, bboe pr_issue_report_limit: 32 [appfolio/gemsurance] exclude_users: bboe log_level: WARNING pr_issue_report_limit: 10
Configuration files for the various linters can be placed in ~/.config/farcy/handler_NAME.conf. Replace NAME with the name of the handler.
Optional external packages needed for various file types
Python: farcy will take advantage of two tools for python files: flake8 and pep257. These can be installed alongside farcy via:
$ pip install farcy[python]
Ruby: In order to provide code review of ruby files, rubocop is required. Install via:
$ gem install rubocop
$ npm install -g jsxhint
Farcy is available as a Docker image with all the handlers installed and ready to be used.
To get started, create a config folder with a configuration file
farcy.conf that points at your repository.
[DEFAULT] repository: appfolio/farcy
After that, run the Docker container in interactive mode to setup your GitHub credentials. This will create the file
github_auth in your configuration folder. This file can be reused if you plan on creating multiple containers.
$ docker run -t -i -v /path/to/local/farcy/config:/config appfolio/farcy
After the initial setup, Farcy is ready to go and you can run the Docker container in daemon mode.
$ docker run -d --name="farcy" -v /path/to/local/farcy/config:/config appfolio/farcy
Copyright and license
Source released under the Simplified BSD License.
- Copyright (c), 2014, AppFolio, Inc
- Copyright (c), 2014, Bryce Boe
- Copyright (c), 2015, Paulus Schoutsen
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, Size & Hash SHA256 Hash Help||File Type||Python Version||Upload Date|
(19.5 kB) Copy SHA256 Hash SHA256
|Wheel||3.6||Mar 19, 2018|
(23.3 kB) Copy SHA256 Hash SHA256
|Source||None||Mar 19, 2018|