Allow people to write plug-ins/add-ons with an SDK
Potentially create some kind of SDK to allow for hooking into various parts of Octopus. e.g.: permissions/users could be given a custom implementation and provided by active directory.
~~~~~~~~
Example plugins we should build:
https://github.com/OctopusDeploy/Issues/issues/511
https://github.com/OctopusDeploy/Issues/issues/312

We’re going to start on this very soon. I’d love to collect more examples of what people want to do with plugins (not so much how the plugin would work/what kind of extensibility, but the actual problem you want to solve)
15 comments
-
Darrell Tunnell commented
I assume this was put on hold?
-
Some support for this is underway, see https://github.com/OctopusDeploy/Issues/issues/2593
-
Matt Richardson commented
A plugin model for deployment targets could be very useful. That way we could easily create a deployment targets such as:
* a single Azure subscription
* a single Azure subscription in a region
* an AWS target
etc -
Chris Barr commented
I would like to write a plug-in that uses the API (if available) through AJAX look ups to prepopulate or 'intellisensify' step variables... I create and set octopus variables from a step and use them in downstream steps.. but I always have to go back to the step to either remember the name, or go to another step to remember the actual syntax of getting to it. It would be nice to have htis handy... like a predefined list of 'step outputs'.
-
Thaddaeus Parker commented
A plugin for Reporting would be very nice and helpful. By using the security features in OD, it would help winnow down the number of entries returned based on a standard canned query against an index.
-
Justin commented
Ive used uDeploy before and they have a suite of native plugins. For instance, if I wanted to run a Sql Command I would like the ability to add a SqlCmd plugin for one of the steps which would have all the fields on the form that require filling in. You would then be able to add parameters for each field if required.
Currently you have to use powershell so there could be multiple variations of this. A plug in would be fully tested and have a defined scope. I would like to see this as an option for a step vs Nuget/powershell.
-
Brent commented
I would like to be able to do some backend things for each deployment. Currently we do this via a machine in the environment that just runs our scripts for certain things we want to record. I would like to be able to hook into post deploy actions and run tasks for certain things at a global level. An example would be posting analytics about a deployment or posting events that happen to external services like datadog, pagerduty, or an internal site.
-
Darrell Tunnell commented
I would like to be able to extend the octopus UI itself, for example by displaying my own menu item, that when clicked, would take me to my own page (html and javascript content) within octopus. This could be useful for a number of scenarios. In addition to this, i would like octopus to expose a nice client side / javascript API for my javascript to leverage so I could make my custom page do fancy things with the system.
-
Raffaele Garofalo commented
Actually in TFS I use the concept of Plugin (Code activity) to execute custom .NET code within the process.
It would be nice to have the same concept, I build a .NET plugin and execute custom code within my deployment. -
Joshua Smith commented
Yet another plug in for customizing the display of the dashboard!
-
Joshua Smith commented
I would also like a plug in for doing additional things with promoting a release, such as pulling the differences between the two releases to list for the user before the promote. We are putting the git SHA in the release notes so that we can then look at the SHA in both environments and compare the two for the diffs on promote. A plug in that would allow us to add that compare functionality in the process would be great!
-
Joshua Smith commented
I would like to create a new "step type", such as Deploy to Amazon WS, that allows me to build my own plugin for doing this.
-
Rob Waldron commented
I'd like to be able to have custom tasks per project. Something like being able execute some powershell commands set up for a specific project. For example - I want to refresh our test environment with production data. I want to go to the project - select tasks - and run the task that will do something (sync, restore db, etc). This maybe something that is beyond the scope of Octopus Deploy, but if the plug-in system is extensible enough, this is something I'd look to hook into it.
-
David Roberts commented
Custom steps: In our case we'd like to be able to have a step that would check the ticket manager (MS Service Manager here) to verify that either a ticket exists for this promotion or just create a ticket based on the Octopus Variables to reduce processing lag.
It can be done with powershell but sometimes it's nicer to be in the C# development side and potentially share the plugins as a NuGet if possible.
-
Shaw Innes commented
I'd like to be able to add my own custom deploy or upload plugins for systems where you either can't install or use a tentacle, or for things like uploading to mobile app testing sites (eg. inbeta.io, hockeyapp, etc)