|
22 | 22 | from tempfile import TemporaryDirectory
|
23 | 23 |
|
24 | 24 | import dacite
|
| 25 | +import git |
25 | 26 | from git import Repo
|
26 | 27 | from jinja2 import Template
|
27 | 28 | from urllib3 import request
|
@@ -55,23 +56,32 @@ def get_projects_metadata(
|
55 | 56 | with concurrent.futures.ProcessPoolExecutor() as executor:
|
56 | 57 | return executor.map(
|
57 | 58 | get_metadata,
|
58 |
| - *zip(*map(get_language_repo_and_completion, completion_progress)), |
| 59 | + *zip( |
| 60 | + *map(get_language_repo_branch_and_completion, completion_progress) |
| 61 | + ), |
59 | 62 | itertools.repeat(clones_dir),
|
60 | 63 | )
|
61 | 64 |
|
62 | 65 |
|
63 | 66 | def get_metadata(
|
64 |
| - language: Language, repo: str | None, completion: float, clones_dir: str |
| 67 | + language: Language, |
| 68 | + repo: str | None, |
| 69 | + branch: str | None, |
| 70 | + completion: float, |
| 71 | + clones_dir: str, |
65 | 72 | ) -> int:
|
| 73 | + if repo: |
| 74 | + clone_path = Path(clones_dir, repo) |
| 75 | + git.Repo.clone_from(f'https://github.com/{repo}.git', clone_path, branch=branch) |
66 | 76 | return (
|
67 | 77 | repo and completion and build_warnings.number(clones_dir, repo, language.code)
|
68 | 78 | ) or 0
|
69 | 79 |
|
70 | 80 |
|
71 |
| -def get_language_repo_and_completion( |
| 81 | +def get_language_repo_branch_and_completion( |
72 | 82 | project: LanguageProjectData,
|
73 |
| -) -> tuple[Language, str | None, float]: |
74 |
| - return project.language, project.repository, project.completion |
| 83 | +) -> tuple[Language, str | None, str | None, float]: |
| 84 | + return project.language, project.repository, project.branch, project.completion |
75 | 85 |
|
76 | 86 |
|
77 | 87 | if __name__ == '__main__':
|
|
0 commit comments