{"id":37084237,"url":"https://github.com/getbento/bentodev","last_synced_at":"2026-01-14T10:17:56.642Z","repository":{"id":20338908,"uuid":"87115088","full_name":"getbento/bentodev","owner":"getbento","description":"Tool for working with BentoBox Themes locally","archived":false,"fork":false,"pushed_at":"2022-12-27T15:00:27.000Z","size":132,"stargazers_count":7,"open_issues_count":8,"forks_count":0,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-09-21T15:48:28.334Z","etag":null,"topics":["bentobox","bentodev","developers","theme-development","theme-support"],"latest_commit_sha":null,"homepage":"https://www.getbento.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getbento.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-04-03T19:56:46.000Z","updated_at":"2021-11-08T14:44:55.000Z","dependencies_parsed_at":"2023-01-13T20:55:15.904Z","dependency_job_id":null,"html_url":"https://github.com/getbento/bentodev","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/getbento/bentodev","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getbento%2Fbentodev","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getbento%2Fbentodev/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getbento%2Fbentodev/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getbento%2Fbentodev/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getbento","download_url":"https://codeload.github.com/getbento/bentodev/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getbento%2Fbentodev/sbom","scorecard":{"id":424089,"data":{"date":"2025-08-11","repo":{"name":"github.com/getbento/bentodev","commit":"872912add294a0eca18e3e971ed0bc6fb8f3b14e"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":1.5,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 2/26 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":-1,"reason":"no dependencies found","details":null,"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"License","score":0,"reason":"license file not detected","details":["Warn: project does not have a license file"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"50 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2020-28 / GHSA-m6xf-fq7q-8743","Warn: Project is vulnerable to: PYSEC-2020-27 / GHSA-q65m-pv3f-wr5r","Warn: Project is vulnerable to: PYSEC-2020-340 / GHSA-vqhp-cxgc-6wmm","Warn: Project is vulnerable to: PYSEC-2021-865 / GHSA-vv2x-vrpj-qqpq","Warn: Project is vulnerable to: PYSEC-2022-42986 / GHSA-43fp-rhv2-5gv8","Warn: Project is vulnerable to: PYSEC-2023-135 / GHSA-xqr8-7jwr-rhp7","Warn: Project is vulnerable to: PYSEC-2023-62 / GHSA-m2qf-hxjv-5gpq","Warn: Project is vulnerable to: PYSEC-2024-4 / GHSA-2mqj-m65w-jghx","Warn: Project is vulnerable to: PYSEC-2023-165 / GHSA-cwvm-v4w8-q58c","Warn: Project is vulnerable to: PYSEC-2022-42992 / GHSA-hcpj-qp55-gfph","Warn: Project is vulnerable to: PYSEC-2023-137 / GHSA-pr76-5cm5-w9cj","Warn: Project is vulnerable to: PYSEC-2023-161 / GHSA-wfm5-v35h-vwf4","Warn: Project is vulnerable to: PYSEC-2024-60 / GHSA-jjg7-2v4v-x38h","Warn: Project is vulnerable to: PYSEC-2019-217 / GHSA-462w-v97r-4m45","Warn: Project is vulnerable to: GHSA-cpwx-vrp4-4pq7","Warn: Project is vulnerable to: PYSEC-2021-66 / GHSA-g3rq-g295-4j3m","Warn: Project is vulnerable to: GHSA-h5c8-rqwp-cp95","Warn: Project is vulnerable to: GHSA-h75v-3vvj-5mfj","Warn: Project is vulnerable to: GHSA-q2x7-8rv6-6q7h","Warn: Project is vulnerable to: PYSEC-2021-140 / GHSA-9w8r-397f-prfh","Warn: Project is vulnerable to: PYSEC-2023-117 / GHSA-mrwq-x4v8-fh7p","Warn: Project is vulnerable to: PYSEC-2021-141 / GHSA-pq64-v7f5-gqh8","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2023-74 / GHSA-j8r2-6x86-q33q","Warn: Project is vulnerable to: GHSA-g7vv-2v7x-gj9p","Warn: Project is vulnerable to: GHSA-34jh-p97f-mpxf","Warn: Project is vulnerable to: PYSEC-2023-212 / GHSA-g4mx-q9vg-27p4","Warn: Project is vulnerable to: PYSEC-2023-207 / GHSA-gwvm-45gx-3cf8","Warn: Project is vulnerable to: PYSEC-2019-133 / GHSA-mh33-7rrq-662w","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v","Warn: Project is vulnerable to: PYSEC-2019-132 / GHSA-r64q-w8jr-g9qp","Warn: Project is vulnerable to: PYSEC-2023-192 / GHSA-v845-jxx5-vc9f","Warn: Project is vulnerable to: PYSEC-2020-148 / GHSA-wqvq-5m8c-6g24","Warn: Project is vulnerable to: PYSEC-2021-108","Warn: Project is vulnerable to: GHSA-2g68-c3qc-8985","Warn: Project is vulnerable to: GHSA-f9vj-2wh5-fj8j","Warn: Project is vulnerable to: PYSEC-2019-140 / GHSA-gq9m-qvpx-68hc","Warn: Project is vulnerable to: PYSEC-2023-221 / GHSA-hrfv-mqp8-q5rw","Warn: Project is vulnerable to: GHSA-j544-7q9p-6xp8","Warn: Project is vulnerable to: PYSEC-2023-57 / GHSA-px8h-6qxv-m22q","Warn: Project is vulnerable to: GHSA-q34m-jh98-gwm2","Warn: Project is vulnerable to: PYSEC-2023-58 / GHSA-xg9f-g7g7-2323","Warn: Project is vulnerable to: PYSEC-2022-203","Warn: Project is vulnerable to: PYSEC-2021-437 / GHSA-5xp3-jfq3-5q8x","Warn: Project is vulnerable to: PYSEC-2020-173 / GHSA-gpvv-69j7-gwj8","Warn: Project is vulnerable to: PYSEC-2023-228 / GHSA-mq26-g339-26xf","Warn: Project is vulnerable to: PYSEC-2025-49 / GHSA-5rjg-fvgr-3xxf","Warn: Project is vulnerable to: GHSA-cx63-2mw6-8hw5","Warn: Project is vulnerable to: PYSEC-2022-43012 / GHSA-r9hx-vwmv-q579"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-19T01:53:57.879Z","repository_id":20338908,"created_at":"2025-08-19T01:53:57.879Z","updated_at":"2025-08-19T01:53:57.879Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28416853,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T08:38:59.149Z","status":"ssl_error","status_checked_at":"2026-01-14T08:38:43.588Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bentobox","bentodev","developers","theme-development","theme-support"],"created_at":"2026-01-14T10:17:56.103Z","updated_at":"2026-01-14T10:17:56.628Z","avatar_url":"https://github.com/getbento.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"BentoDev - BentoBox Local Theme Editor\r\n######################################\r\n\r\n.. contents::\r\n\r\n.. section-numbering::\r\n\r\n\r\nMain Features\r\n=============\r\n\r\n* Edit BentoBox themes locally\r\n* Uses real data when making themes\r\n* Use Flask to act as a proxy between server requests\r\n* Uses Jinja2 to rigidly enforce template edits\r\n\r\nInstallation\r\n============\r\n\r\nNOTE: This package is currently only supported on POSIX systems. For those on Windows it is recommended to create a new Vagrant box before installing.\r\n\r\nIt is recommended to install `bentodev` on a seperate Python 3 virtual environment.\r\n\r\nFor use with `Pipenv`\r\n\r\n.. code-block:: bash\r\n\r\n  $ pipenv --three\r\n  $ pipenv install bentodev\r\n\r\nFor use with `venv`\r\n\r\n.. code-block:: bash\r\n\r\n  $ python3 -m venv venv\r\n  $ source venv/bin/activate\r\n  $ pip install bentodev\r\n\r\nUsage\r\n===========\r\nBentoDev functions are activated via a command line interface.\r\n\r\n.. code-block:: bash\r\n\r\n    $ bentodev\r\n    Usage: bentodev [OPTIONS] COMMAND [ARGS]...\r\n\r\n    BentoDev Used to develop themes locally for BentoBox sites!\r\n\r\n    Options:\r\n    --version  Show the version and exit.\r\n    --help     Show this message and exit.\r\n\r\n    Commands:\r\n      clone   Clone an account you have access too.\r\n      config  Base configuration\r\n      list    List accounts and themes you have access too.\r\n      start   Begin running the development server\r\n\r\nSetup\r\n-----\r\nUpon using BentoDev for the first time you will be prompted to use add your BentoBox account.\r\n\r\nYou may also be asked for a password to get a remote token for your session.\r\n\r\n\r\nCloning Themes\r\n--------------\r\nBy using the command ``bentodev list`` or ``bentodev start`` you will see the list of available Accounts and their current associated theme.\r\n\r\nIf you do not see any Accounts/Themes you need to create an Account that is associated to your User through the BentoBox website.\r\n\r\nTo work on an Account's theme you must first clone the theme. To do so use:\r\n\r\n.. code-block:: bash\r\n\r\n  $ bentodev clone \u003ctheme_name\u003e\r\n\r\nYou may be prompted to connect your GitHub account to BentoBox if you have not done so previously.\r\n\r\nThe theme will then be cloned to the ``~/bentodev/sites/\u003ctheme_name\u003e`` folder, where you can then push edits with standard git commands.\r\n\r\nWorking on Themes\r\n-----------------\r\nOnce a theme has been cloned you can then run a small local server that will handle making requests to BentoBox.\r\n\r\n.. code-block:: bash\r\n\r\n   $ bentodev start \u003caccount_name\u003e\r\n\r\nYou should then see the server run, where you can connect at `localhost:5000 \u003chttp://localhost:5000\u003e`_\r\n\r\nLocal Development\r\n=================\r\n\r\nWorking with Local BentoBox\r\n---------------------------\r\nTo use all debugging tools, create new features, or use local data, we can switch which server `bentodev` gets data from. The `--local` flag will use the `HOST` and `PORT` user configuration to access a local BentoBox Django server. Example below:\r\n\r\n.. code-block:: bash\r\n\r\n   $ bentodev start \u003caccount_name\u003e --local\r\n\r\nWorking on `bentodev`\r\n---------------------\r\n\r\nSetup for Local Development\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~~\r\nTo make changes to `bentodev` please clone the repository, then with a separate virtual environment, install it as a local dependency.\r\n\r\n.. code-block:: bash\r\n\r\n   $ git clone git@github.com:getbento/bentodev.git\r\n   $ mkdir bentodev-local/ \u0026\u0026 cd bentodev-local \u0026\u0026 pipenv --three \u0026\u0026 pipenv shell\r\n   $ pipenv install -e ../path/to/cloned/pipenv\r\n\r\nThis will clone bentodev, create a new virtualenv, and install the local bentodev to that environment.\r\n\r\nThen, changes made will be reflected in the running application when using the newly created virtual environment.\r\n\r\nDeploying bentodev Changes\r\n~~~~~~~~~~~~~~~~~~~~~~~~~~\r\n\r\nTO DEPLOY THOSE CHANGES to the `bentodev PyPi repo \u003chttps://pypi.org/project/bentodev/\u003e`_, ensure that the dev dependencies from `bentodev`s Pipfile are installed to a virtual environment or are on your system. Mainly, `setuptools` and `twine` are required for deployment. Bump the version inside: `bentodev/__version__.py`.\r\n\r\nAssuming deps and PyPi configuration is complete, run the following to update the repository:\r\n\r\n.. code-block:: bash\r\n\r\n   $ python setup.py upload\r\n\r\nUser Configuration\r\n==================\r\n\r\nAdditional user settings can be added to the user config file at ``~/bentodev/config.json``. Default settings include:\r\n\r\n.. code-block:: javascript\r\n\r\n  {\r\n    \"BENTO_USER\": \"\u003cuser_name\u003e\"\r\n  }\r\n\r\nAdditional settings can be added by hand. These include\r\n\r\n.. code-block:: javascript\r\n\r\n  {\r\n    \"DEV_ROOT\": \"\u003cdir_pat\u003e\", (ie. \"/Users/\u003cuser\u003e/test_folder/\")\r\n    \"HOST\": \"\u003chost_value\u003e\", (i.e and default \"0.0.0.0\")\r\n    \"PORT\": \"\u003cport_value\u003e\", (i.e and default \"8000\")\r\n  }\r\n\r\nMeta\r\n====\r\n\r\nUser support\r\n------------\r\n\r\nPlease use the following support channels:\r\n\r\n* `GitHub issues \u003chttps://github.com/getbento/bentodev/issues\u003e`_\r\n  for bug reports and feature requests.\r\n* `StackOverflow \u003chttps://stackoverflow.com\u003e`_\r\n  to ask questions (please make sure to use the\r\n  `bentodev \u003chttp://stackoverflow.com/questions/tagged/bentodev\u003e`_ tag).\r\n* Tweet directly to `@bentoboxnyc \u003chttps://twitter.com/bentoboxnyc\u003e`_.\r\n\r\nRelated projects\r\n----------------\r\n\r\nBentoBox\r\n~~~~~~~~~~~~\r\nThe entire utility is completely coupled to the `BentoBox Django Application \u003chttps://www.github.com/getbento/bentobox\u003e`_.\r\n\r\nIt pulls data from the production (or a local) BentoBox instance and allows real data to displayed as engineers/designers edit themes that are displayed on the getbento.com domain.\r\n\r\nDependencies\r\n~~~~~~~~~~~~\r\n\r\n* `Flask \u003chttps://http://flask.pocoo.org\u003e`_\r\n* `Jinja2 \u003chttp://jinja.pocoo.org/\u003e`_\r\n* `Requests \u003chttps://python-requests.org\u003e`_\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetbento%2Fbentodev","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetbento%2Fbentodev","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetbento%2Fbentodev/lists"}