Class: PullRequestBuilder::ObsPullRequestPackage

Inherits:
Object
  • Object
show all
Includes:
ActiveModel::Model
Defined in:
lib/pull_request_builder/obs_pull_request_package.rb

Defined Under Namespace

Classes: PullRequest

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#loggerObject

Returns the value of attribute logger.



6
7
8
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6

def logger
  @logger
end

#obs_package_nameObject

Returns the value of attribute obs_package_name.



6
7
8
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6

def obs_package_name
  @obs_package_name
end

#obs_project_nameObject

Returns the value of attribute obs_project_name.



6
7
8
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6

def obs_project_name
  @obs_project_name
end

#obs_project_name_prefixObject

Returns the value of attribute obs_project_name_prefix.



6
7
8
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6

def obs_project_name_prefix
  @obs_project_name_prefix
end

#obs_project_pr_nameObject

Returns the value of attribute obs_project_pr_name.



6
7
8
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6

def obs_project_pr_name
  @obs_project_pr_name
end

#oscObject

Returns the value of attribute osc.



6
7
8
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6

def osc
  @osc
end

#pull_requestObject

Returns the value of attribute pull_request.



6
7
8
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6

def pull_request
  @pull_request
end

#template_directoryObject

Returns the value of attribute template_directory.



6
7
8
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 6

def template_directory
  @template_directory
end

Class Method Details

.all(logger, obs_project_name_prefix, osc = OSC.new) ⇒ Object



10
11
12
13
14
15
16
17
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 10

def self.all(logger, obs_project_name_prefix, osc = OSC.new)
  result = osc.search_project(obs_project_name_prefix)
  xml = Nokogiri::XML(result)
  xml.xpath('//project').map do |project|
    pull_request_number = project.attribute('name').to_s.split('-').last.to_i
    ObsPullRequestPackage.new(pull_request: PullRequest.new(pull_request_number), logger: logger)
  end
end

Instance Method Details

#==(other) ⇒ Object



23
24
25
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 23

def ==(other)
  pull_request.number == other.pull_request.number
end

#commit_shaObject



39
40
41
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 39

def commit_sha
  pull_request.head.sha
end

#createObject



68
69
70
71
72
73
74
75
76
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 68

def create
  if last_commited_sha == commit_sha
    logger.info('Pull request did not change, skipping ...')
    return
  end
  create_project
  create_package
  copy_files
end

#deleteObject



19
20
21
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 19

def delete
  osc.delete_project("source/#{obs_project_name}")
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


27
28
29
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 27

def eql?(other)
  pull_request.number.eql(other.pull_request.number)
end

#hashObject



31
32
33
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 31

def hash
  pull_request.number.hash
end

#last_commited_shaObject



58
59
60
61
62
63
64
65
66
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 58

def last_commited_sha
  # if its a new PR, get_history will fail with a 404 and we have to ignore it

  result = osc.get_history("#{obs_project_pr_name}/#{obs_package_name}")
  node = Nokogiri::XML(result).root
  node.xpath('.//revision/comment').last.content
rescue StandardError, Cheetah::ExecutionFailed
  ''
end

#merge_shaObject



43
44
45
46
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 43

def merge_sha
  # github test merge commit
  pull_request.merge_commit_sha
end

#pull_request_numberObject



35
36
37
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 35

def pull_request_number
  pull_request.number
end

#urlObject

TODO address must be configurable



54
55
56
# File 'lib/pull_request_builder/obs_pull_request_package.rb', line 54

def url
  "https://build.opensuse.org/package/show/#{obs_project_pr_name}/#{obs_package_name}"
end