Versioning
Metasploit::Credential
is versioned using semantic versioning 2.0. Each branch
should set Metasploit::Credential::Version::PRERELEASE
to the branch name, while master should have no PRERELEASE
and the PRERELEASE
section of Metasploit::Credential::VERSION
does not exist.
Documentation
Metasploit::Credential
is documented using YARD. For each ActiveRecord::Base
descendant, it uses RailsERD
to
generate an Entity-Relationship Diagram of all classes to which the descendant has a belongs_to
relationship either
directly or indirectly.
Database Setup
RailsERD
requires access to the database to walk the ActiveRecord::Base
associations, so setup the database.yml
,
create the database, and run the migrations:
cp spec/dummy/config/database.yml.example spec/dummy/config/database.yml
# fill in passwords
edit spec/dummy/config/database.yml
rake db:create db:migrate
Graphviz Setup
In order to generate the diagrams as PNGs, graphviz is used. It will need to be installed using your OS's package manager.
OSX
`brew install graphviz`
Graphviz may have issues when used on OSX Mavericks or later. If rake yard
hangs or you get
'CoreTest performance note'
messages when running 'rake yard', you should reinstall graphviz as follows:
brew reinstall graphviz --with-bindings --with-freetype --with-librsvg --with-pangocairo
.
Generate
rake yard
Reading
open doc/frames.html
ERDs
To view the ERDs, which you can't see on rubydoc.info, you can look
at the docs for Metasploit::Credential
open doc/Metasploit/Credential.html
Installation
Add this line to your application's Gemfile
:
gem 'metasploit-credential'
And then execute:
$ bundle
This gem's Rails::Engine
is not required automatically. You'll need to also add the following to your config/application.rb
:
require 'metasploit/credential/engine'
Or install it yourself as:
$ gem install metasploit-credential
Net::SSH
Metasploit::Credential::SSHKey
depends on 'net/ssh'
, but metasploit-credential
does not declare the net-ssh
gem
as a runtime dependency because metasploit-framework
includes
its own version of 'net/ssh'
which would
conflict with the gem.
If you're not using metasploit-framework
, then you need add the net-ssh
to your Gemfile
:
gem 'net-ssh'
And then execute:
$ bundle
Or install it yourself as:
$ gem install net-ssh
Contributing
See CONTRIBUTING.md
Testing
Metasploit::Credential
is tested using RSpec
Dependencies
Remove your Gemfile.lock
so you test with the latest compatible dependencies as will be done on
github actions
rm Gemfile.lock
bundle install
Database Setup
To run the specs, access to the database is required, so setup the database.yml
, create the database, and run the
migrations:
cp spec/dummy/config/database.yml.example spec/dummy/config/database.yml
# fill in passwords
edit spec/dummy/config/database.yml
rake db:create db:migrate
Running
rake spec