Class: RepoProvider::Gitlab

Inherits:
Object
  • Object
show all
Defined in:
lib/git-issues/providers/gitlab.rb

Overview

API documentation: api.gitlab.org/

Constant Summary collapse

URL_PATTERNS =
[
  /^(ssh:\/\/)?git@(?<host>[^:]*):(?<user>[^\/]+)\/(?<repo>.+)\.git$/
]

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.get_repo(url) ⇒ Object



12
13
14
15
# File 'lib/git-issues/providers/gitlab.rb', line 12

def self.get_repo url
  # find the url pattern that matches the url
  URL_PATTERNS.map{|p| p.match url }.compact.first
end

Instance Method Details

#issue_close(id) ⇒ Object



33
34
35
# File 'lib/git-issues/providers/gitlab.rb', line 33

def issue_close id
  gitlab.close_issue gl_project_id, id
end

#issue_create(title, content) ⇒ Object



25
26
27
# File 'lib/git-issues/providers/gitlab.rb', line 25

def issue_create title, content
  gitlab.create_issue gl_project_id, title, description: content
end

#issue_delete(id) ⇒ Object



37
38
39
# File 'lib/git-issues/providers/gitlab.rb', line 37

def issue_delete id
  log.warn "You can't delete issues on Gitlab anymore, it is deprecated. Please close/resolve them instead."
end

#issue_reopen(id) ⇒ Object



29
30
31
# File 'lib/git-issues/providers/gitlab.rb', line 29

def issue_reopen id
  gitlab.reopen_issue gl_project_id, id
end

#issues_list(opts = {}) ⇒ Object



17
18
19
20
21
22
23
# File 'lib/git-issues/providers/gitlab.rb', line 17

def issues_list opts = {}
  issues = gitlab.issues gl_project_id
  # filter out closed issues if desired
  issues = issues.find_all{|i| i.state != 'closed' } if not opts[:all]
  # return issues
  format_issues( issues )
end

#providerObject



41
42
43
# File 'lib/git-issues/providers/gitlab.rb', line 41

def provider
  gitlab
end