module Polisher::KojiDiff::ClassMethods

Public Instance Methods

diff(tag1, tag2) click to toggle source

Return diff between list of packages in two tags in koji

# File lib/polisher/targets/koji/diff.rb, line 14
def diff(tag1, tag2)
  #                                   tag event inherit prefix latest
  builds1 = client.call('listTagged', tag1, nil, false, nil, true)
  builds2 = client.call('listTagged', tag2, nil, false, nil, true)
  builds  = {}
  builds1.each do |build|
    name         = build['package_name']
    build2       = builds2.detect { |b| b['name'] == name }
    version1     = build['version']
    version2     = build2 && build2['version']
    builds[name] = {tag1 => version1, tag2 => version2}
  end

  builds2.each do |build|
    name = build['package_name']
    next if builds.key?(name)

    version = build['version']
    builds[name] = {tag1 => nil, tag2 => version}
  end

  builds
end