@@ -920,6 +920,18 @@ def gather_insights(repo, insights, since):
920920 else :
921921 insights ["open_issues" ].append (issue ["html_url" ])
922922
923+ # get milestones for core repo
924+ if repo ["name" ] == "circuitpython" :
925+ params = {"state" : "open" }
926+ response = github .get ("/repos/adafruit/circuitpython/milestones" , params = params )
927+ if not response .ok :
928+ output_handler ("Failed to get core milestone insights." )
929+ else :
930+ milestones = response .json ()
931+ for milestone in milestones :
932+ #print(milestone)
933+ insights ["milestones" ][milestone ["title" ]] = milestone ["open_issues" ]
934+
923935def repo_is_on_pypi (repo ):
924936 """returns True when the provided repository is in pypi"""
925937 is_on = False
@@ -979,6 +991,7 @@ def run_library_checks():
979991 core_insights [k ] = set ()
980992 if isinstance (core_insights [k ], list ):
981993 core_insights [k ] = []
994+ core_insights ["milestones" ] = dict ()
982995 repo_needs_work = []
983996 since = datetime .datetime .now () - datetime .timedelta (days = 7 )
984997 repos_by_error = {}
@@ -1021,6 +1034,12 @@ def run_library_checks():
10211034 print_issue_overview (core_insights )
10221035 output_handler ("* {} open issues" .format (len (core_insights ["open_issues" ])))
10231036 output_handler (" * https://github.com/adafruit/circuitpython/issues" )
1037+ output_handler ("* {} active milestones" .format (len (core_insights ["milestones" ])))
1038+ ms_count = 0
1039+ for milestone in sorted (core_insights ["milestones" ].keys ()):
1040+ ms_count += core_insights ["milestones" ][milestone ]
1041+ output_handler (" * {0}: {1} open issues" .format (milestone , core_insights ["milestones" ][milestone ]))
1042+ output_handler (" * {} issues not assigned a milestone" .format (len (core_insights ["open_issues" ]) - ms_count ))
10241043 output_handler ()
10251044 print_circuitpython_download_stats ()
10261045
0 commit comments