class Backlog::Cli::Core
Constants
- DOMAIN
Public Class Methods
new(profile)
click to toggle source
# File lib/backlog/cli/core.rb, line 12 def initialize(profile) info = YAML.load_file("#{ENV['HOME']}/.backlogrc")[profile] @user = info['user'] @space = info['space'] @password = info['password'] @assigner_id = info['assigner_id'] api_url = "https://#{@user}:#{@password}@#{@space}.#{DOMAIN}/XML-RPC" @server = XMLRPC::Client.new2(api_url) end
Public Instance Methods
add_comment(options)
click to toggle source
# File lib/backlog/cli/core.rb, line 29 def add_comment(options) args = { key: options[:key], content: options[:content] } @server.call('backlog.addComment', args) end
create_issue(project_key, options)
click to toggle source
# File lib/backlog/cli/core.rb, line 22 def create_issue(project_key, options) args = options.dup args[:projectId] = get_project(project_key)['id'] args[:assignerId] = options[:assigner_id].nil? ? @assigner_id : options[:assigner_id] @server.call('backlog.createIssue', args) end
find_issue(project_key, options)
click to toggle source
# File lib/backlog/cli/core.rb, line 48 def find_issue(project_key, options) args = options.dup args[:projectId] = get_project(project_key)['id'] args[:statusId] = [1, 2, 3] args[:sort] = 'UPDATED' if options[:all] args.delete(:assignerId) else args[:assignerId] = @assigner_id end @server.call('backlog.findIssue', args) end
get_comments(options)
click to toggle source
# File lib/backlog/cli/core.rb, line 34 def get_comments(options) issue_id = get_issue(options)['id'] @server.call('backlog.getComments', issue_id) end
get_issue(options)
click to toggle source
# File lib/backlog/cli/core.rb, line 44 def get_issue(options) @server.call('backlog.getIssue', options[:key]) end
get_project_summaries()
click to toggle source
# File lib/backlog/cli/core.rb, line 65 def get_project_summaries @server.call('backlog.getProjectSummaries') end
get_projects()
click to toggle source
# File lib/backlog/cli/core.rb, line 61 def get_projects @server.call('backlog.getProjects') end
get_rss(project_key)
click to toggle source
# File lib/backlog/cli/core.rb, line 73 def get_rss(project_key) feed = FeedNormalizer::FeedNormalizer.parse open( "https://#{@space}.#{DOMAIN}/rss/#{project_key}", http_basic_authentication: [@user, @password] ) feed.items end
get_users(project_key)
click to toggle source
# File lib/backlog/cli/core.rb, line 69 def get_users(project_key) @server.call('backlog.getUsers', get_project(project_key)['id']) end
update_issue(options)
click to toggle source
# File lib/backlog/cli/core.rb, line 39 def update_issue(options) args = { key: options[:key], comment: options[:comment] } @server.call('backlog.updateIssue', args) end
urls(body)
click to toggle source
# File lib/backlog/cli/core.rb, line 80 def urls(body) regex = /https?\:\/\/[-_.!~*'()a-zA-Z0-9;\/?:@&=+$,%#]+/ body.scan(regex).uniq.sort.reverse end
Private Instance Methods
get_project(project_key)
click to toggle source
# File lib/backlog/cli/core.rb, line 87 def get_project(project_key) @server.call('backlog.getProject', project_key) end