Skip to content
This repository was archived by the owner on Dec 2, 2024. It is now read-only.

Commit 2ac0d13

Browse files
Patch 1 fixing create project (#17)
* More care at handling private projects and JsonApi exceptions not defining 'detail'. * ---
1 parent 8de3c34 commit 2ac0d13

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed

pytransifex/api.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -62,18 +62,36 @@ def create_project(
6262
project_name = project_slug
6363

6464
try:
65-
res = tx_api.Project.create(
66-
name=project_name,
67-
slug=project_slug,
68-
source_language=source_language,
69-
private=private,
70-
organization=self.organization,
71-
)
65+
if private:
66+
return tx_api.Project.create(
67+
name=project_name,
68+
slug=project_slug,
69+
source_language=source_language,
70+
private=private,
71+
organization=self.organization,
72+
)
73+
else:
74+
if repository_url := kwargs.get("repository_url", None):
75+
return tx_api.Project.create(
76+
name=project_name,
77+
slug=project_slug,
78+
source_language=source_language,
79+
private=private,
80+
repository_url=repository_url,
81+
organization=self.organization,
82+
)
83+
else:
84+
raise ValueError(
85+
f"Private projects need to pass a 'repository_url' (non-empty string) argument."
86+
)
87+
7288
logging.info("Project created!")
73-
return res
89+
7490
except JsonApiException as error:
75-
if "already exists" in error.detail: # type: ignore
91+
if hasattr(error, "detail") and "already exists" in error.detail: # type: ignore
7692
return self.get_project(project_slug=project_slug)
93+
else:
94+
logging.error(f"Unable to create project; API replied with {error}")
7795

7896
@ensure_login
7997
def get_project(self, project_slug: str) -> None | Resource:

0 commit comments

Comments
 (0)