def get_project(self, **kwargs) -> "PagureProject": if "username" in kwargs: return PagureProject(service=self, **kwargs) else: return PagureProject( service=self, username=self.user.get_username(), **kwargs )
def project_create( self, repo: str, namespace: Optional[str] = None, description: Optional[str] = None, ) -> PagureProject: request_url = self.get_api_url("new") parameters = {"name": repo, "description": description, "wait": True} if not description: parameters["description"] = repo if namespace: parameters["namespace"] = namespace try: self.call_api(request_url, "POST", data=parameters) except PagureAPIException as ex: if ( ex.pagure_response and ex.pagure_response["errors"]["namespace"][0] == "Not a valid choice" ): raise OgrException( f"Cannot create project in given namespace ({namespace})." ) raise ex return PagureProject(repo=repo, namespace=namespace, service=self)
def get_projects(self) -> List["PagureProject"]: user_url = self.service.get_api_url("user", self.get_username()) raw_projects = self.service.call_api(user_url)["repos"] return [ PagureProject( repo=project["name"], namespace=project["namespace"], service=self.service, ) for project in raw_projects ]
def get_forks(self) -> List["PagureProject"]: user_url = self.service.get_api_url("user", self.get_username()) raw_forks = self.service.call_api(user_url)["forks"] return [ PagureProject( repo=fork["name"], namespace=fork["namespace"], service=self.service, is_fork=True, ) for fork in raw_forks ]
def project_create( self, repo: str, namespace: Optional[str] = None, description: Optional[str] = None, ) -> PagureProject: request_url = self.get_api_url("new") parameters = {"name": repo, "description": description, "wait": True} if not description: parameters["description"] = repo if namespace: parameters["namespace"] = namespace try: self.call_api(request_url, "POST", data=parameters) except PagureAPIException as ex: self.__handle_project_create_fail(ex, namespace) return PagureProject(repo=repo, namespace=namespace, service=self)