|
@@ -13,12 +13,18 @@ parser.add_argument('milestone_title', help='Title of the milestone to fetch.')
|
|
|
args = parser.parse_args()
|
|
|
milestone_title: str = args.milestone_title
|
|
|
|
|
|
-milestones = requests.get(f'{BASE_URL}/milestones', timeout=5).json()
|
|
|
-matching_milestones = [milestone for milestone in milestones if milestone['title'] == milestone_title]
|
|
|
-if not matching_milestones:
|
|
|
- print(f'Milestone "{milestone_title}" not found!')
|
|
|
- sys.exit(1)
|
|
|
-milestone_number = matching_milestones[0]['number']
|
|
|
+page = 0
|
|
|
+while True:
|
|
|
+ page += 1
|
|
|
+ response = requests.get(f'{BASE_URL}/milestones?state=all&page={page}&per_page=100', timeout=5)
|
|
|
+ milestones = response.json()
|
|
|
+ if not milestones:
|
|
|
+ print(f'Milestone "{milestone_title}" not found!')
|
|
|
+ sys.exit(1)
|
|
|
+ matching = [m for m in milestones if m['title'] == milestone_title]
|
|
|
+ if matching:
|
|
|
+ milestone_number = matching[0]['number']
|
|
|
+ break
|
|
|
|
|
|
|
|
|
def link(number: int) -> str:
|
|
@@ -32,14 +38,18 @@ notes: Dict[str, List[str]] = {
|
|
|
'New features and enhancements': [],
|
|
|
'Bugfixes': [],
|
|
|
'Documentation': [],
|
|
|
+ 'Dependencies': [],
|
|
|
'Others': [],
|
|
|
}
|
|
|
for issue in issues:
|
|
|
title: str = issue['title']
|
|
|
- user: str = issue['user']['login']
|
|
|
+ user: str = issue['user']['login'].replace('[bot]', '')
|
|
|
body: str = issue['body'] or ''
|
|
|
labels: List[str] = [label['name'] for label in issue['labels']]
|
|
|
- number_patterns = [r'#(\d+)', r'https://github.com/zauberzeug/nicegui/(?:issues|discussions|pulls)/(\d+)']
|
|
|
+ if user == 'dependabot':
|
|
|
+ number_patterns = []
|
|
|
+ else:
|
|
|
+ number_patterns = [r'#(\d+)', r'https://github.com/zauberzeug/nicegui/(?:issues|discussions|pulls)/(\d+)']
|
|
|
numbers = [issue['number']] + [int(match) for pattern in number_patterns for match in re.findall(pattern, body)]
|
|
|
numbers_str = ', '.join(link(number) for number in sorted(numbers))
|
|
|
note = f'{title.strip()} ({numbers_str} by @{user})'
|
|
@@ -49,6 +59,8 @@ for issue in issues:
|
|
|
notes['New features and enhancements'].append(note)
|
|
|
elif 'documentation' in labels:
|
|
|
notes['Documentation'].append(note)
|
|
|
+ elif 'dependencies' in labels:
|
|
|
+ notes['Dependencies'].append(note)
|
|
|
else:
|
|
|
notes['Others'].append(note)
|
|
|
|