diff --git a/sk/devops.py b/sk/devops.py index 2b3a678..543f1b4 100644 --- a/sk/devops.py +++ b/sk/devops.py @@ -96,7 +96,10 @@ class Organization(): def projects(self): if not hasattr(self, "_projects"): # Create Project objects - self._projects = [Project(org=self, **proj) for proj in self.get_path("_apis/projects").json().get("value", [])] + self._projects = [] + for proj in self.get_path("_apis/projects").json().get("value", []): + p = Project(org=self, **proj) + self._projects.append(p) return self._projects def __getitem__(self, key: str) -> Project: @@ -151,7 +154,12 @@ class Project(): @property def repositories(self): if not hasattr(self, "_repositories"): - self._repositories = [Repository(org=self._org, **repo) for repo in self._org.get_path(f"{self._id}/_apis/git/repositories").json().get("value", [])] + self._repositories = [] + for repo in self._org.get_path(f"{self._id}/_apis/git/repositories").json().get("value", []): + # Remove unnecessary nested project info + if "project" in repo: + del repo["project"] + self._repositories.append(Repository(project=self, **repo)) return self._repositories def __getitem__(self, key: str) -> Repository: @@ -271,8 +279,8 @@ class Item(): raise ValueError("Child items can only be fetched for folder items.") # Fetch child objects - objects = self._repository._project.organization.get_path( - path=f"{self._repository._project.id}/_apis/git/repositories/{self._repository.id}/items", + objects = self._repository.project.organization.get_path( + path=f"{self._repository.project.id}/_apis/git/repositories/{self._repository.id}/items", params={ "scopePath": self.path, "recursionLevel": "oneLevel"