{"action":"created","comment":{"url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/comments/50185096","id":50185096,"diff_hunk":"@@ -11,6 +11,10 @@\n # Must be explicit as activerecord is optional dependency\n require 'active_record/railtie'\n \n+unless File.exist?('config/database.yml')","path":"spec/spec_helper.rb","position":4,"original_position":4,"commit_id":"b45e22b64d254e8e23e1540053771912700bb01e","original_commit_id":"aaa1174ca599089229e560ff3fba6e3dfa7d984b","user":{"login":"FireFart","id":105281,"avatar_url":"https://avatars.githubusercontent.com/u/105281?v=3","gravatar_id":"","url":"https://api.github.com/users/FireFart","html_url":"https://github.com/FireFart","followers_url":"https://api.github.com/users/FireFart/followers","following_url":"https://api.github.com/users/FireFart/following{/other_user}","gists_url":"https://api.github.com/users/FireFart/gists{/gist_id}","starred_url":"https://api.github.com/users/FireFart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FireFart/subscriptions","organizations_url":"https://api.github.com/users/FireFart/orgs","repos_url":"https://api.github.com/users/FireFart/repos","events_url":"https://api.github.com/users/FireFart/events{/privacy}","received_events_url":"https://api.github.com/users/FireFart/received_events","type":"User","site_admin":false},"body":"i would rather hardcode the paths than catching a generic `TypeError` because this can hide some other errors. Rails.application is not available at this moment because the application is initialized later a few lines below and throws the exception :(","created_at":"2016-01-19T22:18:12Z","updated_at":"2016-01-19T22:18:12Z","html_url":"https://github.com/rapid7/metasploit-framework/pull/6484#discussion_r50185096","pull_request_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6484","_links":{"self":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/comments/50185096"},"html":{"href":"https://github.com/rapid7/metasploit-framework/pull/6484#discussion_r50185096"},"pull_request":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6484"}}},"pull_request":{"url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6484","id":56513747,"html_url":"https://github.com/rapid7/metasploit-framework/pull/6484","diff_url":"https://github.com/rapid7/metasploit-framework/pull/6484.diff","patch_url":"https://github.com/rapid7/metasploit-framework/pull/6484.patch","issue_url":"https://api.github.com/repos/rapid7/metasploit-framework/issues/6484","number":6484,"state":"open","locked":false,"title":"fix rspec + rake errors without database","user":{"login":"FireFart","id":105281,"avatar_url":"https://avatars.githubusercontent.com/u/105281?v=3","gravatar_id":"","url":"https://api.github.com/users/FireFart","html_url":"https://github.com/FireFart","followers_url":"https://api.github.com/users/FireFart/followers","following_url":"https://api.github.com/users/FireFart/following{/other_user}","gists_url":"https://api.github.com/users/FireFart/gists{/gist_id}","starred_url":"https://api.github.com/users/FireFart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FireFart/subscriptions","organizations_url":"https://api.github.com/users/FireFart/orgs","repos_url":"https://api.github.com/users/FireFart/repos","events_url":"https://api.github.com/users/FireFart/events{/privacy}","received_events_url":"https://api.github.com/users/FireFart/received_events","type":"User","site_admin":false},"body":"Currently rspec fails when no database connection is present (just delete database.yml). The cause is `Rails::Paths::Path` (http://api.rubyonrails.org/classes/Rails/Paths/Path.html) methods not checking for nil and passing the value to other APIs thus all fails badly.\r\n\r\n# Before\r\n## RSPEC\r\n```\r\nmacbook:metasploit-framework firefart$ rspec\r\nCoverage report generated for RSpec to /Users/firefart/Coding/metasploit-framework/coverage. 17583 / 92557 LOC (19.0%) covered.\r\n/Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:189:in `expand_path': no implicit conversion of nil into String (TypeError)\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:189:in `block in expanded'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:163:in `each'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:163:in `each'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:188:in `expanded'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:139:in `first'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/application/configuration.rb:103:in `database_configuration'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activerecord-4.0.13/lib/active_record/railtie.rb:175:in `block (2 levels) in <class:Railtie>'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activesupport-4.0.13/lib/active_support/lazy_load_hooks.rb:38:in `instance_eval'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activesupport-4.0.13/lib/active_support/lazy_load_hooks.rb:38:in `execute_hook'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activesupport-4.0.13/lib/active_support/lazy_load_hooks.rb:45:in `block in run_load_hooks'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activesupport-4.0.13/lib/active_support/lazy_load_hooks.rb:44:in `each'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activesupport-4.0.13/lib/active_support/lazy_load_hooks.rb:44:in `run_load_hooks'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activerecord-4.0.13/lib/active_record/base.rb:322:in `<module:ActiveRecord>'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activerecord-4.0.13/lib/active_record/base.rb:22:in `<top (required)>'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/metasploit_data_models-1.2.10/config/initializers/arel_helper.rb:4:in `<top (required)>'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:223:in `load'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:223:in `block in load'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:214:in `load_dependency'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/activesupport-4.0.13/lib/active_support/dependencies.rb:223:in `load'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/engine.rb:609:in `block (2 levels) in <class:Engine>'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/engine.rb:608:in `each'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/engine.rb:608:in `block in <class:Engine>'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/initializable.rb:30:in `instance_exec'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/initializable.rb:30:in `run'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/initializable.rb:55:in `block in run_initializers'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:226:in `block in tsort_each'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:348:in `block (2 levels) in each_strongly_connected_component'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:418:in `block (2 levels) in each_strongly_connected_component_from'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:427:in `each_strongly_connected_component_from'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:417:in `block in each_strongly_connected_component_from'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/initializable.rb:44:in `each'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/initializable.rb:44:in `tsort_each_child'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:411:in `call'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:411:in `each_strongly_connected_component_from'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:347:in `block in each_strongly_connected_component'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:345:in `each'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:345:in `call'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:345:in `each_strongly_connected_component'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:224:in `tsort_each'\r\n\tfrom /Users/firefart/.rvm/rubies/ruby-2.1.7/lib/ruby/2.1.0/tsort.rb:205:in `tsort_each'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/initializable.rb:54:in `run_initializers'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/application.rb:215:in `initialize!'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/railtie/configurable.rb:30:in `method_missing'\r\n\tfrom /Users/firefart/Coding/metasploit-framework/config/environment.rb:5:in `<top (required)>'\r\n\tfrom /Users/firefart/Coding/metasploit-framework/spec/spec_helper.rb:14:in `require'\r\n\tfrom /Users/firefart/Coding/metasploit-framework/spec/spec_helper.rb:14:in `<top (required)>'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1280:in `require'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1280:in `block in requires='\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1280:in `each'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1280:in `requires='\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration_options.rb:109:in `block in process_options_into'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration_options.rb:108:in `each'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration_options.rb:108:in `process_options_into'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration_options.rb:21:in `configure'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:101:in `setup'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:88:in `run'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:73:in `run'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:41:in `invoke'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/exe/rspec:4:in `<top (required)>'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/bin/rspec:23:in `load'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/bin/rspec:23:in `<main>'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/bin/ruby_executable_hooks:15:in `eval'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/bin/ruby_executable_hooks:15:in `<main>'\r\n```\r\n## RAKE\r\n```\r\nmacbook:metasploit-framework firefart$ rake -T\r\nrake aborted!\r\nTypeError: no implicit conversion of nil into String\r\n/Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:189:in `expand_path'\r\n/Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:189:in `block in expanded'\r\n/Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:163:in `each'\r\n/Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:163:in `each'\r\n/Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:188:in `expanded'\r\n/Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/railties-4.0.13/lib/rails/paths.rb:139:in `first'\r\n/Users/firefart/Coding/metasploit-framework/lib/metasploit/framework/require.rb:52:in `optionally_active_record_railtie'\r\n/Users/firefart/Coding/metasploit-framework/Rakefile:10:in `<top (required)>'\r\n/Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/bin/ruby_executable_hooks:15:in `eval'\r\n/Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/bin/ruby_executable_hooks:15:in `<main>'\r\n(See full trace by running task with --trace)\r\n```\r\n\r\n# After\r\n\r\n## RSPEC\r\n```\r\nmacbook:metasploit-framework firefart$ rspec\r\nCoverage report generated for RSpec to /Users/firefart/Coding/metasploit-framework/coverage. 0.0 / 0.0 LOC (100.0%) covered.\r\n/Users/firefart/Coding/metasploit-framework/spec/spec_helper.rb:15:in `<top (required)>': RSPEC currently needs a configured database (RuntimeError)\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1280:in `require'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1280:in `block in requires='\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1280:in `each'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1280:in `requires='\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration_options.rb:109:in `block in process_options_into'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration_options.rb:108:in `each'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration_options.rb:108:in `process_options_into'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/configuration_options.rb:21:in `configure'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:101:in `setup'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:88:in `run'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:73:in `run'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:41:in `invoke'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/gems/rspec-core-3.3.2/exe/rspec:4:in `<top (required)>'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/bin/rspec:23:in `load'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/bin/rspec:23:in `<main>'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/bin/ruby_executable_hooks:15:in `eval'\r\n\tfrom /Users/firefart/.rvm/gems/ruby-2.1.7@metasploit-framework/bin/ruby_executable_hooks:15:in `<main>'\r\n```\r\n## RAKE\r\n```\r\nmacbook:metasploit-framework firefart$ rake -T\r\nCould not find database.yml, so database support will be disabled.\r\nrake about                                             # List versions of all Rails frameworks and the environment\r\nrake cache_digests:dependencies                        # Lookup first-level dependencies for TEMPLATE (like messages/show or comments/_comment.html)\r\nrake cache_digests:nested_dependencies                 # Lookup nested dependencies for TEMPLATE (like messages/show or comments/_comment.html)\r\nrake cucumber                                          # Alias for cucumber:ok\r\nrake cucumber:all                                      # Run all features\r\nrake cucumber:boot                                     # Run features that should pass\r\nrake cucumber:ok                                       # Run features that should pass\r\nrake cucumber:rerun                                    # Record failing features and run only them if any exist\r\nrake cucumber:wip                                      # Run features that are being worked on\r\nrake doc:app                                           # Generate docs for the app -- also available doc:rails, doc:guides (options: TEMPLATE=/rdoc-template.rb, TITLE=\"Custom Title\")\r\nrake log:clear                                         # Truncates all *.log files in log/ to zero bytes (specify which logs with LOGS=test,development)\r\nrake metasploit_credential_engine:install:migrations   # Copy migrations from metasploit_credential_engine to application\r\nrake metasploit_data_models_engine:install:migrations  # Copy migrations from metasploit_data_models_engine to application\r\nrake middleware                                        # Prints out your Rack middleware stack\r\nrake notes                                             # Enumerate all annotations (use notes:optimize, :fixme, :todo for focus)\r\nrake notes:custom                                      # Enumerate a custom annotation, specify with ANNOTATION=CUSTOM\r\nrake rails:template                                    # Applies the template supplied by LOCATION=(/path/to/template) or URL\r\nrake rails:update                                      # Update configs and some other initially generated files (or use just update:configs, update:bin, or update:application_controller)\r\nrake routes                                            # Print out all defined routes in match order, with names\r\nrake secret                                            # Generate a cryptographically secure secret key (this is typically used to generate a secret for cookie sessions)\r\nrake spec                                              # Run all specs in spec directory (excluding plugin specs)\r\nrake spec:lib                                          # Run the code examples in spec/lib\r\nrake spec:models                                       # Run the code examples in spec/models\r\nrake spec:modules                                      # Run the code examples in spec/modules\r\nrake spec:tools                                        # Run the code examples in spec/tools\r\nrake stats                                             # Report code statistics (KLOCs, etc) from the application\r\nrake time:zones:all                                    # Displays all time zones, also available: time:zones:us, time:zones:local -- filter with OFFSET parameter, e.g., OFFSET=-6\r\nrake tmp:clear                                         # Clear session, cache, and socket files from tmp/ (narrow w/ tmp:sessions:clear, tmp:cache:clear, tmp:sockets:clear)\r\nrake tmp:create                                        # Creates tmp directories for sessions, cache, sockets, and pids\r\nrake yard                                              # Generate YARD documentation\r\nrake yard:doc                                          # Generate YARD Documentation\r\nrake yard:stats                                        # Shows stats for YARD Documentation including listing undocumented modules, classes, constants, and methods\r\n```","created_at":"2016-01-19T19:33:01Z","updated_at":"2016-01-19T22:18:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"51af38dd29f17cefc784e5311f8e0b97f2ff60ae","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6484/commits","review_comments_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6484/comments","review_comment_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/comments{/number}","comments_url":"https://api.github.com/repos/rapid7/metasploit-framework/issues/6484/comments","statuses_url":"https://api.github.com/repos/rapid7/metasploit-framework/statuses/b45e22b64d254e8e23e1540053771912700bb01e","head":{"label":"FireFart:rspec_fail","ref":"rspec_fail","sha":"b45e22b64d254e8e23e1540053771912700bb01e","user":{"login":"FireFart","id":105281,"avatar_url":"https://avatars.githubusercontent.com/u/105281?v=3","gravatar_id":"","url":"https://api.github.com/users/FireFart","html_url":"https://github.com/FireFart","followers_url":"https://api.github.com/users/FireFart/followers","following_url":"https://api.github.com/users/FireFart/following{/other_user}","gists_url":"https://api.github.com/users/FireFart/gists{/gist_id}","starred_url":"https://api.github.com/users/FireFart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FireFart/subscriptions","organizations_url":"https://api.github.com/users/FireFart/orgs","repos_url":"https://api.github.com/users/FireFart/repos","events_url":"https://api.github.com/users/FireFart/events{/privacy}","received_events_url":"https://api.github.com/users/FireFart/received_events","type":"User","site_admin":false},"repo":{"id":4253686,"name":"metasploit-framework","full_name":"FireFart/metasploit-framework","owner":{"login":"FireFart","id":105281,"avatar_url":"https://avatars.githubusercontent.com/u/105281?v=3","gravatar_id":"","url":"https://api.github.com/users/FireFart","html_url":"https://github.com/FireFart","followers_url":"https://api.github.com/users/FireFart/followers","following_url":"https://api.github.com/users/FireFart/following{/other_user}","gists_url":"https://api.github.com/users/FireFart/gists{/gist_id}","starred_url":"https://api.github.com/users/FireFart/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/FireFart/subscriptions","organizations_url":"https://api.github.com/users/FireFart/orgs","repos_url":"https://api.github.com/users/FireFart/repos","events_url":"https://api.github.com/users/FireFart/events{/privacy}","received_events_url":"https://api.github.com/users/FireFart/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/FireFart/metasploit-framework","description":"Metasploit Framework","fork":true,"url":"https://api.github.com/repos/FireFart/metasploit-framework","forks_url":"https://api.github.com/repos/FireFart/metasploit-framework/forks","keys_url":"https://api.github.com/repos/FireFart/metasploit-framework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/FireFart/metasploit-framework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/FireFart/metasploit-framework/teams","hooks_url":"https://api.github.com/repos/FireFart/metasploit-framework/hooks","issue_events_url":"https://api.github.com/repos/FireFart/metasploit-framework/issues/events{/number}","events_url":"https://api.github.com/repos/FireFart/metasploit-framework/events","assignees_url":"https://api.github.com/repos/FireFart/metasploit-framework/assignees{/user}","branches_url":"https://api.github.com/repos/FireFart/metasploit-framework/branches{/branch}","tags_url":"https://api.github.com/repos/FireFart/metasploit-framework/tags","blobs_url":"https://api.github.com/repos/FireFart/metasploit-framework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/FireFart/metasploit-framework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/FireFart/metasploit-framework/git/refs{/sha}","trees_url":"https://api.github.com/repos/FireFart/metasploit-framework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/FireFart/metasploit-framework/statuses/{sha}","languages_url":"https://api.github.com/repos/FireFart/metasploit-framework/languages","stargazers_url":"https://api.github.com/repos/FireFart/metasploit-framework/stargazers","contributors_url":"https://api.github.com/repos/FireFart/metasploit-framework/contributors","subscribers_url":"https://api.github.com/repos/FireFart/metasploit-framework/subscribers","subscription_url":"https://api.github.com/repos/FireFart/metasploit-framework/subscription","commits_url":"https://api.github.com/repos/FireFart/metasploit-framework/commits{/sha}","git_commits_url":"https://api.github.com/repos/FireFart/metasploit-framework/git/commits{/sha}","comments_url":"https://api.github.com/repos/FireFart/metasploit-framework/comments{/number}","issue_comment_url":"https://api.github.com/repos/FireFart/metasploit-framework/issues/comments{/number}","contents_url":"https://api.github.com/repos/FireFart/metasploit-framework/contents/{+path}","compare_url":"https://api.github.com/repos/FireFart/metasploit-framework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/FireFart/metasploit-framework/merges","archive_url":"https://api.github.com/repos/FireFart/metasploit-framework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/FireFart/metasploit-framework/downloads","issues_url":"https://api.github.com/repos/FireFart/metasploit-framework/issues{/number}","pulls_url":"https://api.github.com/repos/FireFart/metasploit-framework/pulls{/number}","milestones_url":"https://api.github.com/repos/FireFart/metasploit-framework/milestones{/number}","notifications_url":"https://api.github.com/repos/FireFart/metasploit-framework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/FireFart/metasploit-framework/labels{/name}","releases_url":"https://api.github.com/repos/FireFart/metasploit-framework/releases{/id}","created_at":"2012-05-07T20:23:48Z","updated_at":"2015-12-23T09:16:33Z","pushed_at":"2016-01-19T22:16:20Z","git_url":"git://github.com/FireFart/metasploit-framework.git","ssh_url":"git@github.com:FireFart/metasploit-framework.git","clone_url":"https://github.com/FireFart/metasploit-framework.git","svn_url":"https://github.com/FireFart/metasploit-framework","homepage":"http://www.metasploit.com/","size":294363,"stargazers_count":9,"watchers_count":9,"language":"Ruby","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"open_issues_count":0,"forks":3,"open_issues":0,"watchers":9,"default_branch":"master"}},"base":{"label":"rapid7:master","ref":"master","sha":"a03017957717ba97576fd26c0db55cac3e51875c","user":{"login":"rapid7","id":1013671,"avatar_url":"https://avatars.githubusercontent.com/u/1013671?v=3","gravatar_id":"","url":"https://api.github.com/users/rapid7","html_url":"https://github.com/rapid7","followers_url":"https://api.github.com/users/rapid7/followers","following_url":"https://api.github.com/users/rapid7/following{/other_user}","gists_url":"https://api.github.com/users/rapid7/gists{/gist_id}","starred_url":"https://api.github.com/users/rapid7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rapid7/subscriptions","organizations_url":"https://api.github.com/users/rapid7/orgs","repos_url":"https://api.github.com/users/rapid7/repos","events_url":"https://api.github.com/users/rapid7/events{/privacy}","received_events_url":"https://api.github.com/users/rapid7/received_events","type":"Organization","site_admin":false},"repo":{"id":2293158,"name":"metasploit-framework","full_name":"rapid7/metasploit-framework","owner":{"login":"rapid7","id":1013671,"avatar_url":"https://avatars.githubusercontent.com/u/1013671?v=3","gravatar_id":"","url":"https://api.github.com/users/rapid7","html_url":"https://github.com/rapid7","followers_url":"https://api.github.com/users/rapid7/followers","following_url":"https://api.github.com/users/rapid7/following{/other_user}","gists_url":"https://api.github.com/users/rapid7/gists{/gist_id}","starred_url":"https://api.github.com/users/rapid7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rapid7/subscriptions","organizations_url":"https://api.github.com/users/rapid7/orgs","repos_url":"https://api.github.com/users/rapid7/repos","events_url":"https://api.github.com/users/rapid7/events{/privacy}","received_events_url":"https://api.github.com/users/rapid7/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/rapid7/metasploit-framework","description":"Metasploit Framework","fork":false,"url":"https://api.github.com/repos/rapid7/metasploit-framework","forks_url":"https://api.github.com/repos/rapid7/metasploit-framework/forks","keys_url":"https://api.github.com/repos/rapid7/metasploit-framework/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rapid7/metasploit-framework/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rapid7/metasploit-framework/teams","hooks_url":"https://api.github.com/repos/rapid7/metasploit-framework/hooks","issue_events_url":"https://api.github.com/repos/rapid7/metasploit-framework/issues/events{/number}","events_url":"https://api.github.com/repos/rapid7/metasploit-framework/events","assignees_url":"https://api.github.com/repos/rapid7/metasploit-framework/assignees{/user}","branches_url":"https://api.github.com/repos/rapid7/metasploit-framework/branches{/branch}","tags_url":"https://api.github.com/repos/rapid7/metasploit-framework/tags","blobs_url":"https://api.github.com/repos/rapid7/metasploit-framework/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rapid7/metasploit-framework/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rapid7/metasploit-framework/git/refs{/sha}","trees_url":"https://api.github.com/repos/rapid7/metasploit-framework/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rapid7/metasploit-framework/statuses/{sha}","languages_url":"https://api.github.com/repos/rapid7/metasploit-framework/languages","stargazers_url":"https://api.github.com/repos/rapid7/metasploit-framework/stargazers","contributors_url":"https://api.github.com/repos/rapid7/metasploit-framework/contributors","subscribers_url":"https://api.github.com/repos/rapid7/metasploit-framework/subscribers","subscription_url":"https://api.github.com/repos/rapid7/metasploit-framework/subscription","commits_url":"https://api.github.com/repos/rapid7/metasploit-framework/commits{/sha}","git_commits_url":"https://api.github.com/repos/rapid7/metasploit-framework/git/commits{/sha}","comments_url":"https://api.github.com/repos/rapid7/metasploit-framework/comments{/number}","issue_comment_url":"https://api.github.com/repos/rapid7/metasploit-framework/issues/comments{/number}","contents_url":"https://api.github.com/repos/rapid7/metasploit-framework/contents/{+path}","compare_url":"https://api.github.com/repos/rapid7/metasploit-framework/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rapid7/metasploit-framework/merges","archive_url":"https://api.github.com/repos/rapid7/metasploit-framework/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rapid7/metasploit-framework/downloads","issues_url":"https://api.github.com/repos/rapid7/metasploit-framework/issues{/number}","pulls_url":"https://api.github.com/repos/rapid7/metasploit-framework/pulls{/number}","milestones_url":"https://api.github.com/repos/rapid7/metasploit-framework/milestones{/number}","notifications_url":"https://api.github.com/repos/rapid7/metasploit-framework/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rapid7/metasploit-framework/labels{/name}","releases_url":"https://api.github.com/repos/rapid7/metasploit-framework/releases{/id}","created_at":"2011-08-30T06:13:20Z","updated_at":"2016-01-19T21:51:41Z","pushed_at":"2016-01-19T22:16:24Z","git_url":"git://github.com/rapid7/metasploit-framework.git","ssh_url":"git@github.com:rapid7/metasploit-framework.git","clone_url":"https://github.com/rapid7/metasploit-framework.git","svn_url":"https://github.com/rapid7/metasploit-framework","homepage":"http://www.metasploit.com/","size":468778,"stargazers_count":5128,"watchers_count":5128,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":3679,"mirror_url":null,"open_issues_count":262,"forks":3679,"open_issues":262,"watchers":5128,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6484"},"html":{"href":"https://github.com/rapid7/metasploit-framework/pull/6484"},"issue":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/issues/6484"},"comments":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/issues/6484/comments"},"review_comments":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6484/comments"},"review_comment":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/pulls/6484/commits"},"statuses":{"href":"https://api.github.com/repos/rapid7/metasploit-framework/statuses/b45e22b64d254e8e23e1540053771912700bb01e"}}}}