Bento is a free command-line tool that finds the bugs that matter to you
Project description
Bento
Bento finds the bugs that matter to you.
Bento automatically tailors linters and static analysis with sane defaults on a per-project basis, letting you focus on writing code rather than configuring tools. Bento is free, fully-featured, and you can run Bento on as many projects as you like.
Installation
Requirements
Bento is supported on macOS Mojave (10.14) and Ubuntu 18.04+, and requires Python version 3.6 or later and pip3. For JS projects, bento requires Node.js with version recommended in here.
- Node.js 8 (8.10.0 and above)
- Node.js 10 (10.13.0 and above)
- Anything above Node.js 11.10.1
Bento supports npm-packaged JavaScript and Python, and is ideal for monorepos.
Installing Bento
Run
pip3 install bento-cli
Usage
The workflow for Bento is:
- Initialize Bento
- Run Bento checks on your source code
- Fix issues or archive unnecessary warning and errors
- Disable undesired checks
- Add Bento to git pre-commit hooks
- Add Bento to the CI pipeline (e.g., CircleCI)
Initialize Bento for a project:
To set up for a project, navigate to the root of your project (e.g., where your .git
directory is located).
Then run:
bento init
This will install and configure Bento for your project.
For git
Add this to your .gitignore
:
.bento
Analyze your source code
To trigger Bento to analyze your project, run:
bento check
Archive outstanding issues
The archive
command whitelists outstanding issues to fix later. This lets you continue coding with a clean slate without having to address all your tech debt as soon as you adopt a new tool. New issues introduced from this point forward will be reported by Bento until the next time you run the archive
command.
bento archive
and commit the resulting .bento-baseline.yml
file.
Disable and enable individual checks
Enable/disable a specific check by running:
bento enable [OPTIONS] TOOL CHECK
or
bento disable [OPTIONS] TOOL CHECK
where:
TOOL
refers to the tool that includes the check, for example,r2c.eslint
CHECK
refers to the label for the check you want to enable, for exampleno-console
Example:
bento enable r2c.eslint no-console
You can find the tool and check names in the output of bento check
. Bento currently supports the following tools:
Language | Supported Tools |
---|---|
Python | Bandit, Flake8 |
JavaScript | ESLint |
If there are tools you'd like us to add, please let us know by creating an issue on GitHub.
Install Bento as a pre-commit hook
Bento can install itself as a pre-commit hook, so it runs before each commit and blocks on failures.
To install bento as a pre-commit hook, simply run:
bento install-hook
Demo
Here’s a short preview of Bento in action:
Community
Join the Bento channel in our community Slack to receive and give support, talk with other users, and share things about Bento. The r2c team is there and ready to help!
Terms of service and privacy
Please refer to the terms and privacy document.
License
Copyright (c) r2c.
Changelog
This project adheres to Semantic Versioning.
[0.2.0] - 2019-10-23
Changed
- Results are cached between runs. This means that an immediate rerun of
bento
will be much faster. - Broadened library compatibility, especially for common packages:
- attrs from 18.2.0
- packaging from 14.0
- pre-commit from 1.0.0
r2c.eslint
ignores.min.js
files. Bento should only report issues in code, not built artifacts.- Telemetry endpoint uses
bento.r2c.dev
.
Added
- Bento check will optionally run only on passed paths, using
bento check [path] ...
. - Add
r2c.pyre
as a configurable tool. To enable, it must be manually configured in.bento.yml
. - Formatters can be specified with short names, and these appear in the help text. For example,
bento check --formatter json
. bento
version is passed to telemetry backend.
Fixed
- Tool does not crash if a git user does not have an email configured.
- Fixed a regression that caused progress bars to hang after first tool completed.
- Made fully compatible with Python 3.6.
- Tool does not mangle .gitignore when that file lacks a trailing newline.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file bento-cli-0.2.0.tar.gz
.
File metadata
- Download URL: bento-cli-0.2.0.tar.gz
- Upload date:
- Size: 37.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1c2ab45fa2858f9d43e4e053dac6f3b344cc7ab90feddc0aaf926abfd5a3aec8 |
|
MD5 | f6d9c643523164bf9a3df4950e7be28d |
|
BLAKE2b-256 | 58fc8b05c9fbe566eb600957da45f30be05683278a5f9213b419bc920a014b7b |
File details
Details for the file bento_cli-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: bento_cli-0.2.0-py3-none-any.whl
- Upload date:
- Size: 48.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/2.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f3bc040b913d3dd35f0a45378ab557747cc0817d0824a639c6018c75ca5f639 |
|
MD5 | b7660f09a424ebd457e0023715505307 |
|
BLAKE2b-256 | ff01fe44d2b9b5b78130973aa80f706b29f7bdb91aacc20086653e9fc3caffec |