{"id":34092057,"url":"https://github.com/dencold/blt","last_synced_at":"2026-04-07T17:31:59.395Z","repository":{"id":13569290,"uuid":"16261685","full_name":"dencold/blt","owner":"dencold","description":"blt - provides simple CLI superpowers.","archived":false,"fork":false,"pushed_at":"2015-04-11T18:29:48.000Z","size":159,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-16T18:33:00.786Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dencold.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-01-26T20:58:43.000Z","updated_at":"2025-06-13T12:53:02.000Z","dependencies_parsed_at":"2022-09-09T08:11:05.905Z","dependency_job_id":null,"html_url":"https://github.com/dencold/blt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dencold/blt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dencold%2Fblt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dencold%2Fblt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dencold%2Fblt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dencold%2Fblt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dencold","download_url":"https://codeload.github.com/dencold/blt/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dencold%2Fblt/sbom","scorecard":{"id":333866,"data":{"date":"2025-08-11","repo":{"name":"github.com/dencold/blt","commit":"834d585071fc91071629c2ff0766b6fdf0cf6d53"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3,"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":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"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":"Code-Review","score":0,"reason":"Found 0/5 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":"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":"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":"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":"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":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"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":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"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":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"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"}}]},"last_synced_at":"2025-08-18T04:13:00.791Z","repository_id":13569290,"created_at":"2025-08-18T04:13:00.791Z","updated_at":"2025-08-18T04:13:00.791Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31522271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":[],"created_at":"2025-12-14T14:57:46.630Z","updated_at":"2026-04-07T17:31:59.382Z","avatar_url":"https://github.com/dencold.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# blt: provides simple CLI superpowers\n\n**blt** is a python package that aims to make it easier for application\ndevelopers to wrap command line interfaces for the various tools they use day\nto day. blt was inspired by Heroku's toolbelt, fabric, and clint. We hope\nto stand on the shoulders of giants.\n\n## Overview\n\nAt blt's root is the concept of a ``tool``, blt provides several tools out of\nthe box. Currently we have support for:\n\n* AWS (S3)\n* Django\n* Heroku\n* South (django database migrations)\n\nThese tools encapsulate commands that you would want to interface with each\nsystem. For example, you might want to be able to push files to an S3 bucket\nwith the AWS tool, or you might want to run a migration using the South tool.\nblt standardizes the interface for running the command and handles things like\nconfiguration injection so you can easily differentiate between dev/staging/prod\nsettings when running a command.\n\n## Real-world Example\n\nLet's take a quick look at a practical example of blt in action. Here is a sample\ncommand for running an AWS S3 sync on our staging environment:\n\n```bash\nblt e:staging aws.sync_s3 /path/to/my/dir\n```\n\nThat's it! Running that command will pick up the staging environment\nconfiguration, connect to S3, determine the changed files between the S3 bucket\nand the files in /path/to/my/dir, and push them up to AWS. blt is able to\nautomatically grab things like AWS authentication keys for staging and inject\nthe settings into the runtime so blt can connect to the bucket. Pretty sweet!\n\n## blt Grammar\n\nblt has an opinionated command grammar and enforces a strict way of running\ncommands for tools. blt was designed to have a consistent run style so that no\nmatter what tool you are running commands for, it will have the same basic\nformat.  Let's break down the aws run from above:\n\n         blt          e:staging     aws       .       sync_s3    /path/to/my/dir\n          ^               ^          ^        ^          ^              ^\n          |               |          |        |          |              |\n          |               |          |        |          |              |\n\n    blt executable   environment    tool   separator  command         args\n\n## Installation\n\nblt is available on [PyPi](https://pypi.python.org/pypi/blt) and installable through pip:\n\n```bash\n$ pip install blt\n```\n\n## More to come!\n\nMore documentaion/examples to come down the road!\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdencold%2Fblt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdencold%2Fblt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdencold%2Fblt/lists"}