From 2ef75a579784b4f0009fe4b11902fa0659acc1b8 Mon Sep 17 00:00:00 2001 From: Breee Date: Fri, 20 Dec 2019 13:26:37 +0100 Subject: [PATCH] handle 409: empty repository when fetching commits --- gitea/exceptions.py | 3 +++ gitea/gitea.py | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/gitea/exceptions.py b/gitea/exceptions.py index 381cb68..cc9d706 100644 --- a/gitea/exceptions.py +++ b/gitea/exceptions.py @@ -5,4 +5,7 @@ class NotFoundException(Exception): pass class ObjectIsInvalid(Exception): + pass + +class ConflictException(Exception): pass \ No newline at end of file diff --git a/gitea/gitea.py b/gitea/gitea.py index 58ebbf2..7064455 100644 --- a/gitea/gitea.py +++ b/gitea/gitea.py @@ -187,7 +187,12 @@ class Repository(GiteaApiObject): def get_commits(self) -> List[GiteaApiObject]: """Get all the Commits of this Repository.""" - results = self.gitea.requests_get(Repository.REPO_COMMITS % (self.owner.username, self.name)) + try: + results = self.gitea.requests_get(Repository.REPO_COMMITS % (self.owner.username, self.name)) + except ConflictException as err: + logging.warning(err) + logging.warning('Repository %s/%s is Empty' % (self.owner.username, self.name)) + results = [] return [Commit.parse_response(self.gitea, result) for result in results] def get_issues_state(self, state) -> List[GiteaApiObject]: @@ -469,6 +474,8 @@ class Gitea: if request.status_code in [403]: raise Exception( "Unauthorized: %s - Check your permissions and try again! (%s)" % (request.url, message)) + if request.status_code in [409]: + raise ConflictException(message) raise Exception(message) return self.parse_result(request)