3434
3535def get_projects_metadata (
3636 completion_progress : Sequence [LanguageProjectData ],
37- ) -> Iterator [tuple [int , int ]]:
37+ ) -> Iterator [tuple [int , int , datetime | None ]]:
3838 with concurrent .futures .ProcessPoolExecutor () as executor :
3939 return executor .map (
4040 get_metadata ,
@@ -45,17 +45,18 @@ def get_projects_metadata(
4545
4646def get_metadata (
4747 language : Language , repo : str | None , completion : float , clones_dir : str
48- ) -> tuple [int , int ]:
49- if repo and (repo_path := Path (clones_dir , 'translations' , repo )).exists ():
50- Repo (repo_path ).git .checkout ()
48+ ) -> tuple [int , int , datetime | None ]:
49+ if not repo or not (repo_path := Path (clones_dir , 'translations' , repo )).exists ():
50+ return 0 , 0 , None
51+ (clone_repo := Repo (repo_path )).git .checkout ()
52+ latest_commit = clone_repo .head .commit .committed_datetime
53+ if not completion :
54+ return 0 , 0 , latest_commit
5155 return (
52- repo
53- and completion
54- and (
55- build_warnings .number (clones_dir , repo , language .code ),
56- sphinx_lint .store_and_count_failures (clones_dir , repo , language .code ),
57- )
58- ) or (0 , 0 )
56+ build_warnings .number (clones_dir , repo , language .code ),
57+ sphinx_lint .store_and_count_failures (clones_dir , repo , language .code ),
58+ latest_commit ,
59+ )
5960
6061
6162def get_language_repo_and_completion (
0 commit comments