aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/cgit
diff options
context:
space:
mode:
authorEgor Tensin <Egor.Tensin@gmail.com>2021-08-01 16:49:35 +0300
committerEgor Tensin <Egor.Tensin@gmail.com>2021-08-01 16:49:35 +0300
commit3cb857219881668bfddafcade1cecb1113f32de6 (patch)
tree10b50b60c3e9bec866c55f6913a9b0cc24284757 /cgit
parentworkflows/ci: separate job for examples/cgitize.toml (diff)
downloadcgitize-3cb857219881668bfddafcade1cecb1113f32de6.tar.gz
cgitize-3cb857219881668bfddafcade1cecb1113f32de6.zip
support setting "dir" for individual repositories
Diffstat (limited to '')
-rw-r--r--cgitize/config.py8
-rw-r--r--cgitize/repo.py4
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):