{"id":13835593,"url":"https://github.com/rubymem/bundler-leak","last_synced_at":"2025-07-10T08:30:43.637Z","repository":{"id":35079194,"uuid":"201138011","full_name":"rubymem/bundler-leak","owner":"rubymem","description":"Known-leaky gems verification for bundler: `bundle leak` to check your app and find leaky gems in your Gemfile :gem::droplet:","archived":false,"fork":false,"pushed_at":"2022-04-24T18:00:43.000Z","size":341,"stargazers_count":290,"open_issues_count":4,"forks_count":11,"subscribers_count":14,"default_branch":"main","last_synced_at":"2024-11-14T05:26:25.687Z","etag":null,"topics":["bundler-leak","bundler-plugin","hacktoberfest","hacktoberfest2020","memory-leaks","rubygems"],"latest_commit_sha":null,"homepage":"https://www.rubymem.com","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rubymem.png","metadata":{"files":{"readme":"README.md","changelog":"ChangeLog.md","contributing":null,"funding":null,"license":"COPYING.txt","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-07T22:42:19.000Z","updated_at":"2024-11-12T12:19:12.000Z","dependencies_parsed_at":"2022-08-08T04:16:29.657Z","dependency_job_id":null,"html_url":"https://github.com/rubymem/bundler-leak","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubymem%2Fbundler-leak","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubymem%2Fbundler-leak/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubymem%2Fbundler-leak/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rubymem%2Fbundler-leak/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rubymem","download_url":"https://codeload.github.com/rubymem/bundler-leak/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225046685,"owners_count":17412499,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["bundler-leak","bundler-plugin","hacktoberfest","hacktoberfest2020","memory-leaks","rubygems"],"created_at":"2024-08-04T14:01:05.969Z","updated_at":"2024-11-20T20:31:37.252Z","avatar_url":"https://github.com/rubymem.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"# bundler-leak\n\n* [Homepage](https://github.com/rubymem/bundler-leak#readme)\n* [Issues](https://github.com/rubymem/bundler-leak/issues)\n* [Documentation](http://rubydoc.info/gems/bundler-leak/frames)\n* [Email](mailto:oss at ombulabs.com)\n* [![CI](https://github.com/rubymem/bundler-leak/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/rubymem/bundler-leak/actions/workflows/test.yml)\n* [![Code Climate](https://codeclimate.com/github/rubymem/bundler-leak.svg)](https://codeclimate.com/github/rubymem/bundler-leak)\n\n## Description\n\nThe best tool to find leaky gems in your dependencies. Make sure memory leaks\nare not in your gem dependencies.\n\n## Features\n\n* Checks for memory leaks of gems in `Gemfile.lock`\n* Prints memory leak information\n\n## Synopsis\n\nAudit a project's `Gemfile.lock`:\n\n```shell\n    $ bundle leak\n\n    Name: celluloid\n    Version: 0.17.0\n    URL: https://github.com/celluloid/celluloid/issues/670\n    Title: Memory Leak using Celluloid::Future\n    Solution: remove or disable this gem until a patch is available!\n\n    Name: therubyracer\n    Version: 0.12.1\n    URL: https://github.com/cowboyd/therubyracer/pull/336\n    Title: Memory leak in WeakValueMap\n    Solution: upgrade to ~\u003e 0.12.3\n\n    Unpatched versions found!\n```\n\nUpdate the [ruby-mem-advisory-db] that `bundle leak` uses:\n\n```shell\n    $ bundle leak update\n\n    cd data/ruby-mem-advisory-db\n    git pull origin main\n    remote: Enumerating objects: 14, done.\n    remote: Counting objects: 100% (14/14), done.\n    remote: Compressing objects: 100% (4/4), done.\n    remote: Total 9 (delta 5), reused 7 (delta 4), pack-reused 0\n    Unpacking objects: 100% (9/9), done.\n    From github.com:rubymem/ruby-mem-advisory-db\n     * branch            main     -\u003e FETCH_HEAD\n       3254525..c4fc78e  main     -\u003e origin/main\n    Updating 3254525..c4fc78e\n    Fast-forward\n     README.md                 | 68 ++++++++++++++++++++------------------------------------------------\n     gems/therubyracer/336.yml |  4 ++++\n     2 files changed, 24 insertions(+), 48 deletions(-)\n```\n\nUpdate the [ruby-mem-advisory-db] and check `Gemfile.lock` (useful for CI runs):\n\n    $ bundle leak check --update\n\nRake task:\n\n```ruby\nrequire 'bundler/plumber/task'\nBundler::Plumber::Task.new\n\ntask default: 'bundle:leak'\n```\n\n## Requirements\n\n* [ruby] \u003e= 1.9.3\n* [rubygems] \u003e= 1.8\n* [thor] ~\u003e 0.18\n* [bundler] ~\u003e 1.2\n\n## Install\n\n    $ gem install bundler-leak\n\n## Contributing\n\n1. Clone the repo\n1. `./bin/setup` # To populate data dir.\n1. `bundle exec rake`\n\n## License\n\nCopyright (c) 2019 OmbuLabs (hello at ombulabs.com)\n\nCopyright (c) 2013-2016 Hal Brodigan (postmodern.mod3 at gmail.com)\n\nbundler-leak is free software: you can redistribute it and/or modify\nit under the terms of the GNU General Public License as published by\nthe Free Software Foundation, either version 3 of the License, or\n(at your option) any later version.\n\nbundler-leak is distributed in the hope that it will be useful,\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\nGNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License\nalong with bundler-leak.  If not, see \u003chttp://www.gnu.org/licenses/\u003e.\n\n[ruby]: https://ruby-lang.org\n[rubygems]: https://rubygems.org\n[thor]: http://whatisthor.com/\n[bundler]: https://github.com/carlhuda/bundler#readme\n\n[ruby-mem-advisory-db]: https://github.com/rubymem/ruby-mem-advisory-db\n\n## Code of Conduct\n\nEveryone interacting in the bundler-leak project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/rubymem/bundler-leak/code-of-conduct.md).\n\n## FastRuby.io\n![fastruby](https://github.com/rubymem/bundler-leak/raw/main/fastruby-logo.png)\n\n`bundler-leak` is maintained and funded by FastRuby.io, inc. The names and logos for FastRuby.io are trademarks of FastRuby.io, inc.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubymem%2Fbundler-leak","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frubymem%2Fbundler-leak","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frubymem%2Fbundler-leak/lists"}