Class: LabClient::Issues

Inherits:
Common
  • Object
show all
Defined in:
lib/labclient/issues/list.rb,
lib/labclient/issues/move.rb,
lib/labclient/issues/show.rb,
lib/labclient/issues/todo.rb,
lib/labclient/issues/notes.rb,
lib/labclient/issues/create.rb,
lib/labclient/issues/delete.rb,
lib/labclient/issues/update.rb,
lib/labclient/issues/closed_by.rb,
lib/labclient/issues/subscribe.rb,
lib/labclient/issues/time_stats.rb,
lib/labclient/issues/unsubscribe.rb,
lib/labclient/issues/agent_detail.rb,
lib/labclient/issues/group_issues.rb,
lib/labclient/issues/participants.rb,
lib/labclient/issues/project_issues.rb,
lib/labclient/issues/related_merge_requests.rb

Overview

Specifics

Constant Summary

Constants included from AccessLevel

AccessLevel::HUMAN_ACCESS_LEVELS, AccessLevel::MACHINE_ACCESS_LEVELS

Instance Attribute Summary

Attributes inherited from Common

#client

Instance Method Summary collapse

Methods inherited from Common

#api_methods, #api_methods_help, #format_id, #format_query_id, #format_query_ids, #format_time?, #group_name, #help, #initialize, #inspect, #klass, #protected_query_access_level, #query_access_level, #query_format_time

Methods included from Docs

#demo, #desc, #doc, docs, #example, #group_name, #help, json, #markdown, #navigation, #option, #result, #subtitle, #title

Methods included from AccessLevel

#human_access_level, #human_protected_access_level, #machine_access_level, #machine_protected_access_level

Constructor Details

This class inherits a constructor from LabClient::Common

Instance Method Details

#add_spent_time(project_id, mr_id, duration) ⇒ Object



60
61
62
63
64
65
66
# File 'lib/labclient/issues/time_stats.rb', line 60

def add_spent_time(project_id, mr_id, duration)
  project_id = format_id(project_id)
  mr_id = format_id(mr_id)

  duration = ChronicDuration.output(ChronicDuration.parse(duration.to_s), format: :short)
  client.request(:post, "projects/#{project_id}/issues/#{mr_id}/add_spent_time", nil, duration: duration)
end

#agent_detail(project_id, issue_id) ⇒ Object

Show Specific



26
27
28
29
# File 'lib/labclient/issues/agent_detail.rb', line 26

def agent_detail(project_id, issue_id)
  project_id = format_id(project_id)
  client.request(:get, "projects/#{project_id}/issues/#{issue_id}/user_agent_detail")
end

#closed_by(project_id, issue_id) ⇒ Object



22
23
24
25
# File 'lib/labclient/issues/closed_by.rb', line 22

def closed_by(project_id, issue_id)
  project_id = format_id(project_id)
  client.request(:get, "projects/#{project_id}/issues/#{issue_id}/closed_by", MergeRequest)
end

#create(project_id, query = {}) ⇒ Object



34
35
36
37
38
39
# File 'lib/labclient/issues/create.rb', line 34

def create(project_id, query = {})
  project_id = format_id(project_id)
  format_query_id(:assignee_id, query)

  client.request(:post, "projects/#{project_id}/issues", Issue, query)
end

#delete(project_id, issue_id) ⇒ Object



21
22
23
24
# File 'lib/labclient/issues/delete.rb', line 21

def delete(project_id, issue_id)
  project_id = format_id(project_id)
  client.request(:delete, "projects/#{project_id}/issues/#{issue_id}")
end

#group_issues(group_id, query = {}) ⇒ Object



22
23
24
25
26
27
# File 'lib/labclient/issues/group_issues.rb', line 22

def group_issues(group_id, query = {})
  query[:created_after] = query[:created_after].to_time.iso8601 if format_time?(query[:created_after])
  query[:created_before] = query[:created_before].to_time.iso8601 if format_time?(query[:created_before])

  client.request(:get, "groups/#{group_id}/issues", Issue, query)
end

#list(query = {}) ⇒ Object



51
52
53
54
55
56
# File 'lib/labclient/issues/list.rb', line 51

def list(query = {})
  query[:created_after] = query[:created_after].to_time.iso8601 if format_time?(query[:created_after])
  query[:created_before] = query[:created_before].to_time.iso8601 if format_time?(query[:created_before])

  client.request(:get, 'issues', Issue, query)
end

#move(project_id, issue_id, target_id) ⇒ Object



21
22
23
24
25
26
# File 'lib/labclient/issues/move.rb', line 21

def move(project_id, issue_id, target_id)
  project_id = format_id(project_id)
  target_id = format_id(target_id)

  client.request(:post, "projects/#{project_id}/issues/#{issue_id}/move", Issue, to_project_id: target_id)
end

#participants(project_id, issue_id = nil) ⇒ Object

Show Specific



29
30
31
32
33
# File 'lib/labclient/issues/participants.rb', line 29

def participants(project_id, issue_id = nil)
  project_id = format_id(project_id)

  client.request(:get, "projects/#{project_id}/issues/#{issue_id}/participants", User)
end

#project_issues(project_id, query = {}) ⇒ Object



22
23
24
25
26
27
28
29
# File 'lib/labclient/issues/project_issues.rb', line 22

def project_issues(project_id, query = {})
  project_id = format_id(project_id)

  query[:created_after] = query[:created_after].to_time.iso8601 if format_time?(query[:created_after])
  query[:created_before] = query[:created_before].to_time.iso8601 if format_time?(query[:created_before])

  client.request(:get, "projects/#{project_id}/issues", Issue, query)
end


23
24
25
26
27
28
# File 'lib/labclient/issues/related_merge_requests.rb', line 23

def related_merge_requests(project_id, issue_id)
  project_id = format_id(project_id)
  issue_id = format_id(issue_id)

  client.request(:get, "projects/#{project_id}/issues/#{issue_id}/related_merge_requests", MergeRequest)
end

#reset_spent_time(project_id, issue_id) ⇒ Object



150
151
152
153
154
155
# File 'lib/labclient/issues/time_stats.rb', line 150

def reset_spent_time(project_id, issue_id)
  project_id = format_id(project_id)
  issue_id = format_id(issue_id)

  client.request(:post, "projects/#{project_id}/issues/#{issue_id}/reset_spent_time")
end

#reset_time_estimate(project_id, issue_id) ⇒ Object



126
127
128
129
130
131
# File 'lib/labclient/issues/time_stats.rb', line 126

def reset_time_estimate(project_id, issue_id)
  project_id = format_id(project_id)
  issue_id = format_id(issue_id)

  client.request(:post, "projects/#{project_id}/issues/#{issue_id}/reset_time_estimate")
end

#show(project_id, issue_id) ⇒ Object

Show



14
15
16
17
18
19
# File 'lib/labclient/issues/show.rb', line 14

def show(project_id, issue_id)
  project_id = format_id(project_id)
  issue_id = format_id(issue_id)

  client.request(:get, "projects/#{project_id}/issues/#{issue_id}", Issue)
end

#subscribe(project_id, issue_id) ⇒ Object



24
25
26
27
28
29
# File 'lib/labclient/issues/subscribe.rb', line 24

def subscribe(project_id, issue_id)
  project_id = format_id(project_id)
  issue_id = format_id(issue_id)

  client.request(:post, "projects/#{project_id}/issues/#{issue_id}/subscribe", Issue)
end

#time_estimate(project_id, mr_id, duration) ⇒ Object



99
100
101
102
103
104
105
# File 'lib/labclient/issues/time_stats.rb', line 99

def time_estimate(project_id, mr_id, duration)
  project_id = format_id(project_id)
  mr_id = format_id(mr_id)

  duration = ChronicDuration.output(ChronicDuration.parse(duration.to_s), format: :short)
  client.request(:post, "projects/#{project_id}/issues/#{mr_id}/time_estimate", nil, duration: duration)
end

#time_stats(project_id, issue_id) ⇒ Object



22
23
24
25
26
27
# File 'lib/labclient/issues/time_stats.rb', line 22

def time_stats(project_id, issue_id)
  project_id = format_id(project_id)
  issue_id = format_id(issue_id)

  client.request(:get, "projects/#{project_id}/issues/#{issue_id}/time_stats")
end

#todo(project_id, issue_id) ⇒ Object



24
25
26
27
28
29
# File 'lib/labclient/issues/todo.rb', line 24

def todo(project_id, issue_id)
  project_id = format_id(project_id)
  issue_id = format_id(issue_id)

  client.request(:post, "projects/#{project_id}/issues/#{issue_id}/todo", Todo)
end

#unsubscribe(project_id, issue_id) ⇒ Object



24
25
26
27
28
29
# File 'lib/labclient/issues/unsubscribe.rb', line 24

def unsubscribe(project_id, issue_id)
  project_id = format_id(project_id)
  issue_id = format_id(issue_id)

  client.request(:post, "projects/#{project_id}/issues/#{issue_id}/unsubscribe", Issue)
end

#update(project_id, issue_id, query = {}) ⇒ Object



55
56
57
58
59
60
# File 'lib/labclient/issues/update.rb', line 55

def update(project_id, issue_id, query = {})
  project_id = format_id(project_id)
  issue_id = format_id(issue_id)

  client.request(:put, "projects/#{project_id}/issues/#{issue_id}", Issue, query)
end