Skip to main content

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:

  1. Initialize Bento
  2. Run Bento checks on your source code
  3. Fix issues or archive unnecessary warning and errors
  4. Disable undesired checks
  5. Add Bento to git pre-commit hooks
  6. 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 example no-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:

Bento demo

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.

r2c logo

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bento-cli-0.1.0.post1.tar.gz (30.4 kB view details)

Uploaded Source

Built Distribution

bento_cli-0.1.0.post1-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file bento-cli-0.1.0.post1.tar.gz.

File metadata

  • Download URL: bento-cli-0.1.0.post1.tar.gz
  • Upload date:
  • Size: 30.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.2

File hashes

Hashes for bento-cli-0.1.0.post1.tar.gz
Algorithm Hash digest
SHA256 0ec89a2aa84c2df19d2e29695d5e1f852e1f2c23f6893e961db25361f607976e
MD5 d824b8ede95408e1667540a2aeb6c08e
BLAKE2b-256 7f0c7a10ab31413b81a9895cf6fa33036494ec2f678ffd6fe90787fd6ecf289d

See more details on using hashes here.

File details

Details for the file bento_cli-0.1.0.post1-py3-none-any.whl.

File metadata

  • Download URL: bento_cli-0.1.0.post1-py3-none-any.whl
  • Upload date:
  • Size: 36.5 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.2

File hashes

Hashes for bento_cli-0.1.0.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 26784289c5ff518ce6ff2794a014e4fdf255872997aa034eb91a962e7a04762e
MD5 2258c6b7f4b84778df9ce198b7c8210a
BLAKE2b-256 e4c22eb0a61d7d455b391e5a30ec86808ae105a49b53734c3bc0222bff0d2377

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page