adchpp-docker/src/committed_released.py

42 lines
1.1 KiB
Python

# use launchpadlib to change bugs that have a "Fix Committed" status to "Fix Released".
# authorize as "Change non-private data" when Launchpad asks for it.
from optparse import OptionParser
parser = OptionParser(usage = '%prog version [bugs_to_exclude]')
options, args = parser.parse_args()
if len(args) < 1:
parser.error('No version defined')
message = 'Fixed in ADCH++ ' + args[0] + '.'
exclude = list()
if len(args) > 1:
exclude = [int(str) for str in args[1:]]
from launchpadlib.launchpad import Launchpad
from launchpadlib.errors import HTTPError
launchpad = Launchpad.login_with('ADCH++ release script', 'production')
project = launchpad.projects['adchpp']
bug_tasks = project.searchTasks(status = 'Fix Committed')
changed = 0
unchanged = list()
total = 0
for bug_task in bug_tasks:
if bug_task.bug.id in exclude:
continue
total = total + 1
try:
bug_task.status = 'Fix Released'
bug_task.bug.newMessage(content = message)
bug_task.lp_save()
changed = changed + 1
except HTTPError:
unchanged.append(bug_task.bug.id)
print '%d/%d bugs have been changed.' % (changed, total)
for id in unchanged:
print 'Bug #%d could not be changed.' % id