Class: T1k::Repositories::Bitbucket

Inherits:
Object
  • Object
show all
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

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.
  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.
  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

.loginObject



38
39
40
# File 'lib/t1k/repositories/bitbucket.rb', line 38

def self.
  BitBucket.new basic_auth:  "#{self.user}:#{self.password}"
end

.setup {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



88
89
90
# File 'lib/t1k/repositories/bitbucket.rb', line 88

def self.setup &block
  yield(self) if block_given?
end

.valid_keys?Boolean

Returns:

  • (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.

  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.message
    return false
  end
end