Class: T1k::Repositories::Bitbucket
- Inherits:
-
Object
- Object
- T1k::Repositories::Bitbucket
- Defined in:
- lib/t1k/repositories/bitbucket.rb
Defined Under Namespace
Classes: Issue
Constant Summary collapse
- @@user =
""
- @@repo =
""
- @@repo_owner =
""
- @@password =
""
- @@messages =
[]
- @@errors =
[]
Class Method Summary collapse
- .create_issue(title) ⇒ Object
- .get_issue(number) ⇒ Object
- .get_issue_number(html_url) ⇒ Object
- .get_repo_owner_for(me) ⇒ Object
- .issue_url_from(issue) ⇒ Object
- .login ⇒ Object
- .setup {|_self| ... } ⇒ Object
- .valid_keys? ⇒ Boolean
Class Method Details
.create_issue(title) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/t1k/repositories/bitbucket.rb', line 27 def self.create_issue title puts 'Creating issue' me = self.login self.repo_owner = Bitbucket.get_repo_owner_for me issue = me.issues.create(self.repo_owner, self.repo, { title: title }) issue_number = self.send(:issue_url_from, issue) issue_number end |
.get_issue(number) ⇒ Object
42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/t1k/repositories/bitbucket.rb', line 42 def self.get_issue number if number.nil? puts "You should pass a issue number" exit 1 end puts 'Recovering existent issue' me = self.login self.repo_owner = Bitbucket.get_repo_owner_for me issue = me.issues.find(self.repo_owner, self.repo, number ) issue_number = self.send(:issue_url_from, issue) issue_number end |
.get_issue_number(html_url) ⇒ Object
58 59 60 61 62 63 64 |
# File 'lib/t1k/repositories/bitbucket.rb', line 58 def self.get_issue_number html_url exit 1 if html_url.nil? code = html_url[html_url.rindex('/')+1..html_url.size] Issue.new(code, "Link to code: [#{code}](#{html_url})") end |
.get_repo_owner_for(me) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/t1k/repositories/bitbucket.rb', line 73 def self.get_repo_owner_for me unless me.kind_of? BitBucket::Client puts "You should pass a valid user." exit 1 end project = me.repos.all.select {|hash| hash.name == self.repo } # /1.0/repositories/OWNER/REPO # > 1. /repositories/ # > 2. OWNER project[0]['resource_uri'].match(/(\/\w+\/)(\w+)/)[2] end |
.issue_url_from(issue) ⇒ Object
66 67 68 69 70 71 |
# File 'lib/t1k/repositories/bitbucket.rb', line 66 def self.issue_url_from issue issue_number = issue["resource_uri"].match(/issues\/\d+$/)[0] if issue["resource_uri"] issue_url = "https://bitbucket.org/#{self.repo_owner}/#{self.repo}/#{issue_number}" issue_url end |
.login ⇒ Object
38 39 40 |
# File 'lib/t1k/repositories/bitbucket.rb', line 38 def self.login BitBucket.new basic_auth: "#{self.user}:#{self.password}" end |
.setup {|_self| ... } ⇒ Object
88 89 90 |
# File 'lib/t1k/repositories/bitbucket.rb', line 88 def self.setup &block yield(self) if block_given? end |
.valid_keys? ⇒ Boolean
92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/t1k/repositories/bitbucket.rb', line 92 def self.valid_keys? me = Bitbucket.login begin has_project = me.repos.all.select {|hash| hash.name == self.repo } unless has_project.empty? @@messages << "Wecolme #{self.user} - BitBucket" end return not(has_project.empty?) rescue Exception => e @@errors << e. return false end end |