Skip to main content
Archived

This project has been archived by its maintainers, and is no longer receiving any updates.

https://travis-ci.org/appfolio/farcy.svg?branch=master https://coveralls.io/repos/appfolio/farcy/badge.svg?branch=master

Definition:

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

Configuration

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

JavaScript: jsxhint is used to provide code review for JavaScript and JSX files. Install via:

$ npm install -g jsxhint

Docker

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

Release files for farcy 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for farcy 1.3.0
File Size Uploaded
farcy-1.3.0.tar.gz 24.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for farcy 1.3.0
File Interpreter ABI Platform
farcy-1.3.0-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 41.7 kB

Release files / farcy-1.3.0.tar.gz

Download URL farcy-1.3.0.tar.gz
Size 24.8 kB
Tags Source
SHA-256 checksum
How to use checksums
9a6db4684fd60c2a3bf008f94ff950e9d01c43e7305ce44270990703b7d6eb7a
BLAKE2b-256 checksum
How to use checksums
3281a14bcbc8c8e14b8fd68590a46b0774c20b1bc0a0c5e70a7919610c9e81cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.7

Release files / farcy-1.3.0-py2.py3-none-any.whl

Download URL farcy-1.3.0-py2.py3-none-any.whl
Size 16.9 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
c01279731d9546e2b766e53c7f28a4992e0d72494e25ca01ee1322cec05d28cc
BLAKE2b-256 checksum
How to use checksums
65a047fae36fb382f8a9d7221c6b21ebed5027f66f9208f893466687ec3e1ae2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via Python-urllib/3.7
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page