class PT::Client

Constants

STORY_FIELDS

Attributes

client[R]
config[R]
limit[R]
total_record[R]

Public Class Methods

new() click to toggle source
# File lib/pt/client.rb, line 12
def initialize
  @client = TrackerApi::Client.new(token: Settings[:pivotal_api_key])
  @limit = Settings[:limit] || 10
end

Public Instance Methods

add_label(task, label) click to toggle source
# File lib/pt/client.rb, line 119
def add_label(task, label)
  task.add_label(label)
  task.save
end
assign_story(story, owner) click to toggle source
# File lib/pt/client.rb, line 114
def assign_story(story, owner)
  story.add_owner(owner)
  story.save
end
comment_task(story, comment) click to toggle source
# File lib/pt/client.rb, line 124
def comment_task(story, comment)
  story.create_comment(text: comment)
end
create_story(args) click to toggle source
# File lib/pt/client.rb, line 128
def create_story(args)
  project.create_story(args)
end
current_page() click to toggle source
# File lib/pt/client.rb, line 22
def current_page
  offset = @client.last_response.env.response_headers["X-Tracker-Pagination-Offset"]
  offset ? ((offset.to_f/limit)+1).to_i.ceil : 1
end
estimate_story(task, points) click to toggle source
# File lib/pt/client.rb, line 109
def estimate_story(task, points)
  task.estimate = points
  task.save
end
find_member(query) click to toggle source
# File lib/pt/client.rb, line 93
def find_member(query)
  project.memberships.detect do |m|
    m.person.name.downcase.start_with?(query.downcase) || m.person.initials.downcase == query.downcase
  end
end
get_member(query) click to toggle source
# File lib/pt/client.rb, line 88
def get_member(query)
  member = project.memberships.select{ |m| m.person.name.downcase.start_with?(query.downcase) || m.person.initials.downcase == query.downcase }
  member.empty? ? nil : member.first
end
get_members() click to toggle source
# File lib/pt/client.rb, line 99
def get_members
  project.memberships fields: ':default,person'
end
get_stories(params={}) click to toggle source
# File lib/pt/client.rb, line 72
def get_stories(params={})
  limit = @limit || 10
  page = params[:page] || 0
  offset = page*limit
  filter = params[:filter] || '-state=accepted'
  project.stories limit: limit, fields: STORY_FIELDS, auto_paginate: false, offset: offset, filter: filter
end
get_stories_from_iteration(params={}) click to toggle source
# File lib/pt/client.rb, line 80
def get_stories_from_iteration(params={})
  page = params[:page] || 0
  puts "page #{page}"
  scope = params[:scope] || 'current'
  project.iterations(scope: scope, fields: ":default,stories(#{STORY_FIELDS})")[page]&.stories || []
end
get_stories_to_accept(params={}) click to toggle source
# File lib/pt/client.rb, line 57
def get_stories_to_accept(params={})
  params[:filter] =  "owner:#{Settings[:user_name]} -state:accepted"
  get_stories(params)
end
get_stories_to_assign(params={}) click to toggle source
# File lib/pt/client.rb, line 67
def get_stories_to_assign(params={})
  params[:filter] =  "-state:accepted"
  get_stories(params)
end
get_stories_to_deliver(params={}) click to toggle source
# File lib/pt/client.rb, line 52
def get_stories_to_deliver(params={})
  params[:filter] =  "owner:#{Settings[:user_name]} -state:delivered,accepted,rejected"
  get_stories(params)
end
get_stories_to_estimate(params={}) click to toggle source
# File lib/pt/client.rb, line 31
def get_stories_to_estimate(params={})
  params[:filter] =  "owner:#{Settings[:user_name]} type:feature estimate:-1"
  get_stories(params)
end
get_stories_to_finish(params={}) click to toggle source
# File lib/pt/client.rb, line 47
def get_stories_to_finish(params={})
  params[:filter] =  "owner:#{Settings[:user_name]} -state:unscheduled,rejected"
  get_stories(params)
end
get_stories_to_reject(params={}) click to toggle source
# File lib/pt/client.rb, line 62
def get_stories_to_reject(params={})
  params[:filter] =  "owner:#{Settings[:user_name]} -state:rejected"
  get_stories(params)
end
get_stories_to_start(params={}) click to toggle source
# File lib/pt/client.rb, line 41
def get_stories_to_start(params={})
  params[:filter] =  "owner:#{Settings[:user_name]} type:feature,bug state:unscheduled,rejected,unstarted"
  tasks = get_stories(params)
  tasks.reject{ |t| (t.story_type == 'feature') && (!t.estimate) }
end
get_stories_to_unstart(params={}) click to toggle source
# File lib/pt/client.rb, line 36
def get_stories_to_unstart(params={})
  params[:filter] =  "owner:#{Settings[:user_name]} -state:unstarted"
  get_stories(params)
end
mark_task_as(task, state) click to toggle source
# File lib/pt/client.rb, line 104
def mark_task_as(task, state)
  task.current_state = state
  task.save
end
project() click to toggle source
# File lib/pt/client.rb, line 27
def project
  @client.project(Settings[:project_id])
end
total_page() click to toggle source
# File lib/pt/client.rb, line 17
def total_page
  @total_record = @client.last_response.env.response_headers["X-Tracker-Pagination-Total"]
  @total_record ? (@total_record.to_f/limit).ceil : 1
end