diff --git a/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py b/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py index 2681985716..06299b43ba 100755 --- a/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py +++ b/playbooks/roles/gitea-git-repos/library/gitea_create_repos.py @@ -86,22 +86,24 @@ class Gitea(object): self.log("Added gerrit to team:", org) def get_org_repo_list(self, org): - return self.get('/api/v1/orgs/{org}/repos'.format(org=org)).json() + return [x['full_name'] for x in + self.get('/api/v1/orgs/{org}/repos'.format(org=org)).json()] def get_csrf_token(self): resp = self.get('/') return urllib.parse.unquote(resp.cookies.get('_csrf')) - def make_gitea_project(self, project, csrf_token): + def make_gitea_project(self, project, csrf_token, create_project=True): org, repo = project['project'].split('/', 1) - resp = self.post( - '/api/v1/org/{org}/repos'.format(org=org), - json=dict( - auto_init=True, - description=project.get('description', '')[:255], - name=repo, - private=False, - readme='Default')) + if create_project: + resp = self.post( + '/api/v1/org/{org}/repos'.format(org=org), + json=dict( + auto_init=True, + description=project.get('description', '')[:255], + name=repo, + private=False, + readme='Default')) self.log("Created repo:", project['project']) if project.get('use-storyboard'): external_tracker_url = SB_REPO.format(org=org, repo=repo) @@ -158,8 +160,12 @@ class Gitea(object): csrf_token = self.get_csrf_token() for project in self.projects: - if project['project'] not in gitea_repos or self.always_update: - self.make_gitea_project(project, csrf_token) + if project['project'] in gitea_repos: + create = False + else: + create = True + if create or self.always_update: + self.make_gitea_project(project, csrf_token, create) def ansible_main():