{"id":20445845,"url":"https://github.com/rapid7/metasploit-yard","last_synced_at":"2025-04-13T00:44:31.473Z","repository":{"id":16790430,"uuid":"19548935","full_name":"rapid7/metasploit-yard","owner":"rapid7","description":"The YARD tasks used across metasploit projects","archived":false,"fork":false,"pushed_at":"2025-02-13T14:47:47.000Z","size":138,"stargazers_count":4,"open_issues_count":1,"forks_count":4,"subscribers_count":65,"default_branch":"master","last_synced_at":"2025-04-13T00:44:24.785Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rapid7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-05-07T20:19:10.000Z","updated_at":"2025-02-13T14:47:50.000Z","dependencies_parsed_at":"2025-02-14T12:46:44.795Z","dependency_job_id":null,"html_url":"https://github.com/rapid7/metasploit-yard","commit_stats":{"total_commits":105,"total_committers":12,"mean_commits":8.75,"dds":0.3904761904761904,"last_synced_commit":"48bd2216da5db6cf8187d53d1f244f31dba46961"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapid7%2Fmetasploit-yard","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapid7%2Fmetasploit-yard/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapid7%2Fmetasploit-yard/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rapid7%2Fmetasploit-yard/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rapid7","download_url":"https://codeload.github.com/rapid7/metasploit-yard/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248650419,"owners_count":21139672,"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":[],"created_at":"2024-11-15T10:14:50.816Z","updated_at":"2025-04-13T00:44:31.445Z","avatar_url":"https://github.com/rapid7.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Metasploit::Yard [![Build Status](https://travis-ci.org/rapid7/metasploit-yard.svg?branch=master)](https://travis-ci.org/rapid7/metasploit-yard)[![Code Climate](https://codeclimate.com/github/rapid7/metasploit-yard.png)](https://codeclimate.com/github/rapid7/metasploit-yard)[![Test Coverage](https://codeclimate.com/github/rapid7/metasploit-yard/badges/coverage.svg)](https://codeclimate.com/github/rapid7/metasploit-yard)[![Coverage Status](https://img.shields.io/coveralls/rapid7/metasploit-yard.svg)](https://coveralls.io/r/rapid7/metasploit-yard)[![Dependency Status](https://gemnasium.com/rapid7/metasploit-yard.svg)](https://gemnasium.com/rapid7/metasploit-yard)[![Gem Version](https://badge.fury.io/rb/metasploit-yard.svg)](http://badge.fury.io/rb/metasploit-yard)[![Inline docs](http://inch-ci.org/github/rapid7/metasploit-yard.svg?branch=master)](http://inch-ci.org/github/rapid7/metasploit-yard)[![PullReview stats](https://www.pullreview.com/github/rapid7/metasploit-yard/badges/master.svg)](https://www.pullreview.com/github/rapid7/metasploit-yard/reviews/master)\n\n`metasploit-yard` holds the YARD rake task, in [`lib/tasks/yard.rake`](lib/tasks.yard.rake) used across all\n`metasploit-*` projects.  The rake task is defined here to prevent code duplication and task redefinitions in a gem's\ndependencies leading to duplicate task actions, which led to yard docs being generated up to 6 times in some projects.\n\n## Versioning\n\n`Metasploit::Yard` is versioned using [semantic versioning 2.0](http://semver.org/spec/v2.0.0.html).  Each branch\nshould set `Metasploit::Yard::Version::PRERELEASE` to the branch name, while master should have no `PRERELEASE`\nand the `PRERELEASE` section of `Metasploit::Yard::VERSION` does not exist.\n\n## Documentation\n\n`Metasploit::Yard` is documented using YARD.  In fact, it uses the same rake task as it exports for other gems to use.\n\n### Generate\n\n   rake yard\n   \n### Reading\n\n   open doc/frames.html\n\n## Installation\n\n### Project with only a Gemfile\n\nAdd this line to your application's `Gemfile`:\n\n    gem 'metasploit-yard', group: :development\n\nAnd then execute:\n\n    $ bundle\n\n### Project with a gemspec\n\nAdd this line to your gem's gemspec:\n\n    spec.add_development_dependency 'metasploit-yard'\n\nAnd then execute:\n\n   $ bundle\n   \n### Otherwise\n\nOr install it yourself as:\n\n    $ gem install metasploit-yard\n\n## Setup\n\n### In a Rails::Application\n\n`metasploit-yard` has a `Rails::Railtie`, [`Metasploit::Yard::Railtie`](lib/metasploit/yard/railtie) that will\nautomatically be loaded if `Rails` is defined when `metasploit/yard` is required.  `Metasploit::Yard::Railtie` will\nautomatically load [`yard.rake`](lib/tasks/yard.rake) for your Rails project.\n\n### In a Rails::Engine or non-Rails gem\n\nAdd the following to your `Rakefile` to load `yard.rake` from `metasploit-yard`\n\n    # Use find_all_by_name instead of find_by_name as find_all_by_name will return pre-release versions\n    gem_specification = Gem::Specification.find_all_by_name('metasploit-yard').first\n\n    Dir[File.join(gem_specification.gem_dir, 'lib', 'tasks', '**', '*.rake')].each do |rake|\n      load rake\n    end\n\n## Usage\n\n    $ rake yard\n\n### CI Integration\n\n`rake yard` will automatically call `rake yard:stats`.  `rake yard:stats` will exit with status `0` only if there are\nno undocumented objects.  If there are undocumented objects, then `rake yard:stats` will exist with status `1`.  If\nyou want to lower the threshold of undocumented objects that are allowed from `100.0` percentage, set the value in\n`config/yard-stats-threshold` as a float.\n\nBy adding `rake yard:stats` to the tasks run by your CI server, you can have your build fail if documentation slips\nbelow the threshold.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md)\n\n## Testing\n\n`Metasploit::Yard` is tested using [RSpec](https://github.com/rspec/rspec)\n\n### Dependencies\n\nRemove your `Gemfile.lock` so you test with the latest compatible dependencies as will be done on\n[travis-ci](https://travis-ci.org/rapid7/metasploit-yard)\n\n    rm Gemfile.lock\n    bundle install\n\n### Database Setup\n\nTo run the specs, access to the database is required, so setup the `database.yml`, create the database, and run the\nmigrations:\n\n    cp spec/dummy/config/database.yml.example spec/dummy/config/database.yml\n    # fill in passwords\n    edit spec/dummy/config/database.yml\n    rake db:create db:migrate\n\n### Running\n\n    rake spec\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapid7%2Fmetasploit-yard","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frapid7%2Fmetasploit-yard","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frapid7%2Fmetasploit-yard/lists"}