Sfoglia il codice sorgente

improve fetch_milestone.py

Falko Schindler 3 mesi fa
parent
commit
0e39e63571
1 ha cambiato i file con 20 aggiunte e 8 eliminazioni
  1. 20 8
      fetch_milestone.py

+ 20 - 8
fetch_milestone.py

@@ -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)