|
5 | 5 | import yaml |
6 | 6 |
|
7 | 7 | import httpx |
8 | | -from git import Repo |
| 8 | +from git import Repo, GitCommandError |
9 | 9 | from mkdocs.config import Config, config_options |
10 | 10 | from mkdocs.config.defaults import MkDocsConfig |
11 | 11 | from mkdocs.plugins import event_priority, get_plugin_logger, BasePlugin |
@@ -252,7 +252,10 @@ def on_files(self, files: Files, /, *, config: MkDocsConfig) -> Files | None: |
252 | 252 |
|
253 | 253 | repository_dir = self.repositories_dir / repository.path |
254 | 254 | git_repository_dir = self.repositories_dir / Path(repository.path).parts[0] |
255 | | - git_branch = Repo(git_repository_dir).active_branch.name |
| 255 | + try: |
| 256 | + git_branch = Repo(git_repository_dir).active_branch.name |
| 257 | + except TypeError: |
| 258 | + git_branch = None |
256 | 259 | repository_parent_dir = repository_dir.parent |
257 | 260 | repository_docs_dir = repository_dir / "staging_docs" |
258 | 261 | if repository_docs_dir.exists(): |
@@ -281,7 +284,7 @@ def on_files(self, files: Files, /, *, config: MkDocsConfig) -> Files | None: |
281 | 284 | else: |
282 | 285 | src_uri = abs_src_path.relative_to(repository_parent_dir) |
283 | 286 | log.debug(f"Adding {abs_src_path} as {src_uri}.") |
284 | | - if repository.git_url: |
| 287 | + if repository.git_url and git_branch: |
285 | 288 | git_relpath = abs_src_path.relative_to(git_repository_dir) |
286 | 289 | pulp_meta["edit_url"] = ( |
287 | 290 | f"{repository.git_url}/edit/{git_branch}/{git_relpath}" |
@@ -314,9 +317,16 @@ def on_files(self, files: Files, /, *, config: MkDocsConfig) -> Files | None: |
314 | 317 | ) |
315 | 318 | ) |
316 | 319 | repository_nav.add(src_uri) |
317 | | - api_json = pulp_docs_git_repository.git.show( |
318 | | - f"docs-data:data/openapi_json/{repository.rest_api}-api.json" |
319 | | - ) |
| 320 | + try: |
| 321 | + api_json = pulp_docs_git_repository.git.show( |
| 322 | + f"docs-data:data/openapi_json/{repository.rest_api}-api.json" |
| 323 | + ) |
| 324 | + except GitCommandError: |
| 325 | + # Try again on the first remote. |
| 326 | + remote = pulp_docs_git_repository.remotes[0] |
| 327 | + api_json = pulp_docs_git_repository.git.show( |
| 328 | + f"{remote}/docs-data:data/openapi_json/{repository.rest_api}-api.json" |
| 329 | + ) |
320 | 330 | src_uri = (repository_dir / "api.json").relative_to( |
321 | 331 | repository_parent_dir |
322 | 332 | ) |
|
0 commit comments