Skip to content

Instantly share code, notes, and snippets.



Last active Oct 22, 2018
What would you like to do?
Notify Sentry of a new release via Capistrano
# This task will notify Sentry via their API[1] that you have deployed
# a new release. It uses the release timestamp as the `version`
# (like 20151113182847) and the git ref as the optional `ref` value.
# This task requires several environment variables be set (or just
# hardcode the values in here if you like living on the edge):
# ENV['SENTRY_ORG'] : the organization for this app
# ENV['SENTRY_PROJECT'] : the project for this app
# ENV['SENTRY_API_KEY'] : your API key (not DSN) [2]
# [1]:
# [2]:
# For Rails app, this goes in config/deploy.rb
namespace :sentry do
task :notify_deployment do
run_locally do
require 'uri'
require 'net/https'
puts "Notifying Sentry of release..."
http =, uri.port)
http.use_ssl = true
req ="/api/0/projects/#{ENV['SENTRY_ORG']}/#{ENV['SENTRY_PROJECT']}/releases/", initheader={'Content-Type' =>'application/json'})
req.basic_auth(ENV['SENTRY_API_KEY'], '')
req.body = %Q[{"version":"#{fetch(:release_timestamp)}","ref":"#{fetch(:current_revision)}"}]
response = http.start { |h| h.request(req) }
puts "Sentry response: #{response.body}"
# If you want deployments to be published in every Rails environment, put this
# in config/deploy.rb, otherwise put it your environment-specific deploy file
# i.e. config/deploy/production.rb
after 'deploy:published', 'sentry:notify_deployment'

This comment has been minimized.

Copy link

@pablopaul pablopaul commented Aug 24, 2017

thanks @cannikin, a fork with auth token (instead of api key) can be found here

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.