ec7044437e
Disables allowing the python argparse library from automatically shortening command line arguments, this prevents issues whereby a new command is added and code that wrongly uses the shortened command of an existing argument which is the same as the new command being added will silently change script behaviour. Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>
51 lines
1.4 KiB
Python
Executable file
51 lines
1.4 KiB
Python
Executable file
#!/usr/bin/env python3
|
|
|
|
# Copyright (c) 2022 Nordic Semiconductor ASA
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
# stdlib
|
|
import argparse
|
|
import pickle
|
|
from pathlib import Path
|
|
from typing import List
|
|
|
|
# third party
|
|
from github.Issue import Issue
|
|
|
|
def parse_args() -> argparse.Namespace:
|
|
parser = argparse.ArgumentParser(
|
|
formatter_class=argparse.RawDescriptionHelpFormatter, allow_abbrev=False)
|
|
|
|
parser.add_argument('pickle_file', metavar='PICKLE-FILE', type=Path,
|
|
help='pickle file containing list of issues')
|
|
|
|
return parser.parse_args()
|
|
|
|
def issue_has_label(issue: Issue, label: str) -> bool:
|
|
for lbl in issue.labels:
|
|
if lbl.name == label:
|
|
return True
|
|
return False
|
|
|
|
def is_open_bug(issue: Issue) -> bool:
|
|
return (issue.pull_request is None and
|
|
issue.state == 'open' and
|
|
issue_has_label(issue, 'bug'))
|
|
|
|
def get_bugs(args: argparse.Namespace) -> List[Issue]:
|
|
'''Get the bugs to use for analysis, given command line arguments.'''
|
|
with open(args.pickle_file, 'rb') as f:
|
|
return [issue for issue in pickle.load(f) if
|
|
is_open_bug(issue)]
|
|
|
|
def main() -> None:
|
|
args = parse_args()
|
|
bugs = get_bugs(args)
|
|
for bug in sorted(bugs, key=lambda bug: bug.number):
|
|
title = bug.title.strip()
|
|
print(f'- :github:`{bug.number}` - {title}')
|
|
|
|
if __name__ == '__main__':
|
|
main()
|