def add_release(group_id, package_id, release_name, *files)
group_id = lookup "group", group_id
package_id = lookup "package", package_id
release_date = @userconfig["release_date"]
release_notes = @userconfig["release_notes"]
release_changes = @userconfig["release_changes"]
preformatted = @userconfig["preformatted"]
release_date ||= Time.now.strftime("%Y-%m-%d %H:%M")
release_notes = IO::read(release_notes) if
test(?e, release_notes) if release_notes
release_changes = IO::read(release_changes) if
test(?e, release_changes) if release_changes
preformatted = preformatted ? 1 : 0
form = {
"release[name]" => release_name,
"release[release_date]" => release_date,
"release[notes]" => release_notes,
"release[changes]" => release_changes,
"release[preformatted]" => preformatted,
}
url = "/packages/#{package_id}/releases"
json = run url, form
release_id = JSON.parse(json)["release_id"].to_i rescue nil
unless release_id then
puts json if $DEBUG
raise "Couldn't get release_id, upload failed?"
end
files.each do |file|
add_file(group_id, package_id, release_id, file)
end
package_name = @autoconfig["package_ids"].invert[package_id]
raise "unknown package name for #{package_id}" if package_name.nil?
@autoconfig["release_ids"][package_name] ||= {}
@autoconfig["release_ids"][package_name][release_name] = release_id
save_autoconfig
release_id
end