Module: Issue

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

Instance Method Summary collapse

Instance Method Details

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



19
20
21
22
23
24
25
26
27
# File 'lib/git/gitlab/issue.rb', line 19

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



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/git/gitlab/issue.rb', line 18

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



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/git/gitlab/issue.rb', line 8

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

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

  per_page = 100
  page = 1

  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

  issues = all_issues(pid, page, per_page)

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

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