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