class JenkinsPivotal::Client

Attributes

connection[R]

Public Class Methods

new(options) click to toggle source
# File lib/jenkins_pivotal/client.rb, line 8
def initialize(options)
  @options = options
  @connection = build_connection options[:token]
  load_acceptor if options[:acceptor_token]
end

Public Instance Methods

api_url() click to toggle source
# File lib/jenkins_pivotal/client.rb, line 43
def api_url
  'https://www.pivotaltracker.com/services/v5'
end
deliver_to_acceptor(project, story_id) click to toggle source
# File lib/jenkins_pivotal/client.rb, line 30
def deliver_to_acceptor(project, story_id)
  return unless @acceptor_id

  begin
    endpoint = "projects/#{project}/stories/#{story_id}"
    payload = { owned_by_id: @acceptor_id }
    connection[endpoint].put payload.to_json
  rescue => e
    puts e.message
    puts e.http_body
  end
end
load_acceptor() click to toggle source
# File lib/jenkins_pivotal/client.rb, line 14
def load_acceptor
  acceptor_conn = build_connection @options[:acceptor_token]
  json = JSON.parse acceptor_conn['/me'].get
  @acceptor_id = json['id']
  @acceptor_name = json['name']
end
post_source_commits(payload) click to toggle source
# File lib/jenkins_pivotal/client.rb, line 21
def post_source_commits(payload)
  begin
    connection['/source_commits'].post payload.to_json
  rescue => e
    puts e.message
    puts e.http_body
  end
end

Private Instance Methods

build_connection(token) click to toggle source
# File lib/jenkins_pivotal/client.rb, line 49
def build_connection(token)
  headers = {
    'X-TrackerToken' => token,
    'Content-Type' => 'application/json'
  }

  RestClient::Resource.new api_url, headers: headers
end