Manual Deployment Intervention via Email Link

Hi,

I need an approval mechanism in my deployment in the following manner:

  1. When a deployment is started, email a set of users or group with two links, one for approval, one for rejection. This should become a blocking step requiring manual intervention.
  2. From there, the two scenarios
    a. If approval link is clicked, then the deployment can continue, with the deployer being notified.
    b. If rejection link is clicked, then the deployment is stopped/cancelled, with the deployer being notified.

I used these articles as a starting point, but am not seeing a way to connect the 2 together in the manner mentioned above:


Please advise on how I should proceed here.

Thanks!
Jafar

Hi Jafar,

Thanks for getting in touch!

At the moment, there is no explicit mechanism built into Octopus to handle accept/reject links.

That said, as Octopus is API first, everything you can do from the Octopus UI, you can do from your own code. You could easily throw together a basic web app that calls the Octopus API and approves or rejects the change. You can find a PowerShell script in our OctopusDeploy-Api repo that you could translate into your language of choice. The email would just contain the reject & approve links to your app.

Another approach you could use is to use Azure Functions or AWS Lambda in conjunction with subscriptions to send the email and handle the approve/reject links. Keep your eyes peeled - there is a blog post on how to use Azure Functions with Octopus that should go live today.

Hope that helps!

Matt

Hi Matt,

Thanks for the prompt response. That all makes and are good suggestions… though if I’m reading this correctly, there doesn’t seem to be a direct way from the project itself to send an email that has links that would directly handle the actions of taking responsibility and approving the release, correct?

If not, what is the prescribed you would recommend with what’s out of the box for this? I’m thinking something like:

  1. Have a step to send a notification email with a link to the release.
  2. Have a second step for Mnaual Intervention

The idea here being that when the release kicks, I get the email, click on the link to go the release, take ownership of the Manual Intervention step, and then Approve/Abort the release.

Thanks,
Jafar

Hi Jafar,

Thats correct. To send the email with the links, you’d need a “Send an email” step where you create the links to your custom application.

To do this out of the box, you’d add a step that sends an email that includes a link back to the current deployment and has instructions on how to take ownership and approve/abort the release. You can check out an example at http://help.octopusdeploy.com/discussions/questions/1902-hyperlinks-in-email.

Both of these would need a manual intervention step to do the approve/abort part.

Hope that helps,

Matt

I did the exact 2 steps as said,

  1. Have a step to send a notification email with a link to the release.
  2. Have a second step for Mnaual Intervention

But when the approver “deny” the deployment, is there a variable that is set in Octopus deploy. so that i can use that variable to send out an email.

Hi there,

There is no specific output variable set in that scenario (though, it sounds like a good idea).

To achieve this behaviour, you could add a second email step that runs only on failure, and send the “User denied the deployment” email.

Hope that helps.

Regards,
Matt