Module: GitlabApi::ApiClient::Issue

Included in:
GitlabKernel
Defined in:
lib/git/gitlab/api/issue.rb

Constant Summary collapse

PER_PAGE =
100
PAGE =
1

Instance Method Summary collapse

Instance Method Details

#_issues(list, pid, page, per_page) ⇒ Object



50
51
52
53
54
55
56
57
58
# File 'lib/git/gitlab/api/issue.rb', line 50

def _issues(list, pid, page, per_page)
	i = @client.issues(pid, :page => page, :per_page => per_page)
	if i.count < per_page
		list + i
	else
		_issues(list + i, pid, page + 1, per_page)
	end

end

#all_issues(pid, page, per_page) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/git/gitlab/api/issue.rb', line 49

def all_issues(pid, page, per_page)
	def _issues(list, pid, page, per_page)
		i = @client.issues(pid, :page => page, :per_page => per_page)
		if i.count < per_page
			list + i
		else
			_issues(list + i, pid, page + 1, per_page)
		end

	end

	i = @client.issues(pid, :page => page, :per_page => per_page)
	if i.count < per_page
		i
	else
		_issues(i, pid, page + 1, per_page)
	end
end

#issue(id) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/git/gitlab/api/issue.rb', line 12

def issue(id)
	pid = @repository.config["gitlab.projectid"].to_i

	if pid == 0
		raise "Please set 'git config gitlab.projectid ${Gitlab Project id}'"
	end

	issues = all_issues(pid, PAGE, PER_PAGE)

	specfied_issue = issues.select { |issue|
		issue.iid == id.to_i
	}.first

	if specfied_issue == nil
		raise GitlabApi::Error::IssueNotFound, "Issue not find"
	else
		specfied_issue
	end
end

#issues(with_closed) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/git/gitlab/api/issue.rb', line 32

def issues(with_closed)
	pid = @repository.config["gitlab.projectid"].to_i

	if pid == 0
		raise "Please set 'git config gitlab.projectid ${Gitlab Project id}'"
	end

	issues = all_issues(pid, PAGE, PER_PAGE)
	if with_closed
		issues
	else
		issues.select { |i|
			i.state == "opened"
		}
	end
end