Blame scripts/list-fixed-bugs.py

Packit Service 82fcde
#!/usr/bin/python3
Packit Service 82fcde
# Copyright (C) 2015-2018 Free Software Foundation, Inc.
Packit Service 82fcde
# This file is part of the GNU C Library.
Packit Service 82fcde
#
Packit Service 82fcde
# The GNU C Library is free software; you can redistribute it and/or
Packit Service 82fcde
# modify it under the terms of the GNU Lesser General Public
Packit Service 82fcde
# License as published by the Free Software Foundation; either
Packit Service 82fcde
# version 2.1 of the License, or (at your option) any later version.
Packit Service 82fcde
#
Packit Service 82fcde
# The GNU C Library is distributed in the hope that it will be useful,
Packit Service 82fcde
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 82fcde
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 82fcde
# Lesser General Public License for more details.
Packit Service 82fcde
#
Packit Service 82fcde
# You should have received a copy of the GNU Lesser General Public
Packit Service 82fcde
# License along with the GNU C Library; if not, see
Packit Service 82fcde
# <http://www.gnu.org/licenses/>.
Packit Service 82fcde
Packit Service 82fcde
"""List fixed bugs for the NEWS file.
Packit Service 82fcde
Packit Service 82fcde
This script takes a version number as input and generates a list of
Packit Service 82fcde
bugs marked as FIXED with that milestone, to be added to the NEWS file
Packit Service 82fcde
just before release.  The output is in UTF-8.
Packit Service 82fcde
"""
Packit Service 82fcde
Packit Service 82fcde
import argparse
Packit Service 82fcde
import json
Packit Service 82fcde
import sys
Packit Service 82fcde
import textwrap
Packit Service 82fcde
import urllib.request
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
def get_parser():
Packit Service 82fcde
    """Return an argument parser for this module."""
Packit Service 82fcde
    parser = argparse.ArgumentParser(description=__doc__)
Packit Service 82fcde
    parser.add_argument('version',
Packit Service 82fcde
                        help='Release version to look up')
Packit Service 82fcde
    return parser
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
def list_fixed_bugs(version):
Packit Service 82fcde
    """List the bugs fixed in a given version."""
Packit Service 82fcde
    url = ('https://sourceware.org/bugzilla/rest.cgi/bug?product=glibc'
Packit Service 82fcde
           '&resolution=FIXED&target_milestone=%s'
Packit Service 82fcde
           '&include_fields=id,component,summary' % version)
Packit Service 82fcde
    response = urllib.request.urlopen(url)
Packit Service 82fcde
    json_data = response.read().decode('utf-8')
Packit Service 82fcde
    data = json.loads(json_data)
Packit Service 82fcde
    for bug in data['bugs']:
Packit Service 82fcde
        desc = '[%d] %s: %s' % (bug['id'], bug['component'], bug['summary'])
Packit Service 82fcde
        desc = textwrap.fill(desc, width=76, initial_indent='  ',
Packit Service 82fcde
                             subsequent_indent='    ') + '\n'
Packit Service 82fcde
        sys.stdout.buffer.write(desc.encode('utf-8'))
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
def main(argv):
Packit Service 82fcde
    """The main entry point."""
Packit Service 82fcde
    parser = get_parser()
Packit Service 82fcde
    opts = parser.parse_args(argv)
Packit Service 82fcde
    list_fixed_bugs(opts.version)
Packit Service 82fcde
Packit Service 82fcde
Packit Service 82fcde
if __name__ == '__main__':
Packit Service 82fcde
    main(sys.argv[1:])