class Sentry::Client

Attributes

base_url[RW]
prefix[RW]
slug[RW]
token[RW]

Public Class Methods

new(token, slug) click to toggle source
# File lib/sentry/client.rb, line 7
def initialize(token, slug)
  self.token = token
  self.slug = slug
  self.base_url = "https://sentry.io/api/0/projects/"
end

Public Instance Methods

create_release(version) click to toggle source
# File lib/sentry/client.rb, line 13
def create_release(version)
  response = Typhoeus.get(
    "#{base_url}/#{slug}/releases/#{version}/",
    headers: {
      "Authorization" => "Bearer #{token}",
      "Content-Type" =>  "application/json"
    }
  )
  if response.response_code == 200
    # Release already present, skipping...
    return response
  end

  Typhoeus.post(
    "#{base_url}/#{slug}/releases/",
    headers: {
      "Authorization" => "Bearer #{token}",
      "Content-Type" =>  "application/json"
    },
    body: JSON.dump({ version: version })
  )
end
upload_release_artifact(version, artifact_path, filename_prefix = "") click to toggle source
# File lib/sentry/client.rb, line 36
def upload_release_artifact(version, artifact_path, filename_prefix = "")
  Typhoeus.post(
    "#{base_url}/#{slug}/releases/#{version}/files/",
    headers: { "Authorization" => "Bearer #{token}" },
    body: {
      file: File.open(artifact_path, "r"),
      name: "#{filename_prefix}#{File.basename(artifact_path)}"
    }
  )
end