AI prompts
base on Leaky gems advisory database # Ruby Leaky Gems Database
The [RubyMem](https://www.rubymem.com) Database is a community effort to compile all known memory leaks that are relevant to Ruby gems.
You can check your own Gemfile.locks against this database by using [bundler-leak](https://github.com/rubymem/bundler-leak).
## Support Our RubyMem Initiative!
This project has been a community effort since the beginning. The more reports we track, the more value we can provide to your future projects!
### How You Can Help
Do you know about a known memory leak that isn't [listed in this database](https://www.rubymem.com/advisories)? Open an issue, submit a PR, or [use this form](https://rubymem.com/advisories/new) which will email the maintainers.
## Directory Structure
The database is a list of directories that match the names of Ruby libraries on
[rubygems.org]. Within each directory are one or more files
for the Ruby library. These files can be named however you want, in this example it is named after the PR number in github.
gems/:
celluloid/:
612.yml
## Format
Each file contains the information in [YAML] format:
```yaml
---
gem: celluloid
url: https://github.com/celluloid/celluloid/issues/670
title: Memory Leak using Celluloid::Future
date: 2015-08-31
description: |
The Celluloid::Group::Spawner appears to never clean up the completed Threads
that it creates.
leaky_versions:
- "> 0.16.0, < 0.17.2"
patched_versions:
- ">= 0.17.3"
```
### Schema
* `gem` \[String\]: Name of the affected gem.
* `framework` \[String\] (optional): Name of the framework which the affected
gem belongs to.
* `platform` \[String\] (optional): If this vulnerability is platform-specific, name of platform this vulnerability affects (e.g. jruby)
* `url` \[String\]: The URL to the full advisory.
* `title` \[String\]: The title of the advisory or individual vulnerability.
* `date` \[Date\]: The public disclosure date of the advisory.
* `description` \[String\]: One or more paragraphs describing the vulnerability.
* `leaky_versions` \[String\]: The version requirement of the gem with a known memory leak.
* `unaffected_versions` \[Array\<String\>\] (optional): The version requirements for the
unaffected versions of the Ruby library.
* `patched_versions` \[Array\<String\>\]: The version requirements for the
patched versions of the Ruby library.
## Tests
Prior to submitting a pull request, run the tests:
```
bundle install
bundle exec rspec
```
## Credits
Please see [CONTRIBUTORS.md].
[rubygems.org]: https://rubygems.org/
[YAML]: http://www.yaml.org/
[CONTRIBUTORS.md]: https://github.com/rubymem/ruby-mem-advisory-db/blob/master/CONTRIBUTORS.md
", Assign "at most 3 tags" to the expected json: {"id":"3631","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"