diff options
author | Egor Tensin <Egor.Tensin@gmail.com> | 2021-08-01 16:49:35 +0300 |
---|---|---|
committer | Egor Tensin <Egor.Tensin@gmail.com> | 2021-08-01 16:49:35 +0300 |
commit | 3cb857219881668bfddafcade1cecb1113f32de6 (patch) | |
tree | 10b50b60c3e9bec866c55f6913a9b0cc24284757 /cgit | |
parent | workflows/ci: separate job for examples/cgitize.toml (diff) | |
download | cgitize-3cb857219881668bfddafcade1cecb1113f32de6.tar.gz cgitize-3cb857219881668bfddafcade1cecb1113f32de6.zip |
support setting "dir" for individual repositories
Diffstat (limited to '')
-rw-r--r-- | cgitize/config.py | 8 | ||||
-rw-r--r-- | cgitize/repo.py | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/cgitize/config.py b/cgitize/config.py index 35ba05f..2f074bb 100644 --- a/cgitize/config.py +++ b/cgitize/config.py @@ -130,6 +130,10 @@ class HostedRepo: def id(self): return self._impl['id'] + @property + def dir(self): + return self._impl.get('dir') + class Config: DEFAULT_PATH = '/etc/cgitize/cgitize.toml' @@ -155,7 +159,7 @@ class Config: github = GitHub(self.github.access_token) for r in self.github.repositories.enum_repositories(): r = HostedRepo(r) - yield Repo.from_github(github.get_repo(r), self) + yield Repo.from_github(github.get_repo(r), self, r.dir) for u in self.github.users.enum_users(): u = User(u) yield from (Repo.from_github(r, self, u.dir) for r in github.get_user_repos(u)) @@ -164,7 +168,7 @@ class Config: bitbucket = Bitbucket(self.bitbucket.username, self.bitbucket.app_password) for r in self.bitbucket.repositories.enum_repositories(): r = HostedRepo(r) - yield Repo.from_bitbucket(bitbucket.get_repo(r), self) + yield Repo.from_bitbucket(bitbucket.get_repo(r), self, r.dir) for u in self.bitbucket.users.enum_users(): u = User(u) yield from (Repo.from_bitbucket(r, self, u.dir) for r in bitbucket.get_user_repos(u)) diff --git a/cgitize/repo.py b/cgitize/repo.py index cce3209..133cdc8 100644 --- a/cgitize/repo.py +++ b/cgitize/repo.py @@ -20,7 +20,9 @@ class Repo: if 'clone_url' not in src: raise ValueError("every repository must have 'clone_url'") clone_url = src['clone_url'] - return Repo(name, clone_url, owner=owner, desc=desc, homepage=homepage) + subdir = src.get('dir') + return Repo(name, clone_url, owner=owner, desc=desc, homepage=homepage, + subdir=subdir) @staticmethod def from_github(src, config, subdir=None): |