How do you upload custom import plugins into Dradis Pro?

Hi @rachkor,

Where are the other plugins stored? As their appears to be multiple instances referencing plugins?
As it should be easy enough to just duplicate one that already works and tweak that.

Check out /opt/dradispro/dradispro/current/Gemfile for a list of those plugins and to see how they’re referenced. They’re all being pulled in as a .gem file the same way this plugin is theoretically being pulled in.

The reason we recommend that you put your custom plugin into that separate Gemfile.plugins is so that the other plugins can get overwritten/upgraded when you upgrade Dradis but your custom plugin won’t be changed.

Does that make sense?

Hi @rachkor,

This does make sense, however, is there a method to upload a custom plugin locally rather than pulling it down as a gem file? The plugin I have developed is quite specific, so as such would not want to make it publicly available if I can avoid it.
As in the CE version I used a plugin that was stored locally and used this in order to create my plugin.
Hope this makes sense.

Hi @joshua

If you want to skip the “gem”, you may:

  • scp your plugin somewhere you like in your Dradis VM (like /opt/dradispro/dradispro/shared/)
  • then in your Gemfile.plugins file use:
    gem 'dradis-NEW', path: '/opt/dradispro/dradispro/shared/dradis-NEW'
  • and run again:
    RAILS_ENV=production bundle install --local --without development test
    god restart dradispro-unicorn

Then I would enter the console with:

cd /opt/dradispro/dradispro/current
RAILS_ENV=production bin/rails console

and type: Dradis::Plugins::NEW::Engine
That should not error out if the plugin is loaded.

What @xavi suggessted would work and your plugin will survive Pro upgrades.

For initial testing though, you can generate a .gem file in your laptop (via bundle exec rake build) and copy that into /opt/dradispro/dradispro/current/vendor/cache/.

After that adding your plugin to Gemfile.plugins should work, as bundle install should find the .gem in your ./vendor/cache/ folder.