From f871f899dfd95f781bc76084ad3235f72e2ebff0 Mon Sep 17 00:00:00 2001
From: Egor Tensin <Egor.Tensin@gmail.com>
Date: Sat, 27 Mar 2021 11:38:13 +0300
Subject: add the "ssh" config entry

---
 cgit/repos/main.py | 5 +++++
 cgit/repos/repo.py | 9 +++++++--
 2 files changed, 12 insertions(+), 2 deletions(-)

(limited to 'cgit/repos')

diff --git a/cgit/repos/main.py b/cgit/repos/main.py
index bc8fa72..e5e390f 100644
--- a/cgit/repos/main.py
+++ b/cgit/repos/main.py
@@ -77,6 +77,10 @@ class Config:
     def default_owner(self):
         return self.impl.get('DEFAULT', 'owner', fallback=None)
 
+    @property
+    def via_ssh(self):
+        return self.impl.getboolean('DEFAULT', 'ssh', fallback=Repo.DEFAULT_VIA_SSH)
+
     @property
     def github_username(self):
         return self.impl.get('GITHUB', 'username', fallback=None)
@@ -87,6 +91,7 @@ class Config:
 
     def set_defaults(self):
         Repo.DEFAULT_OWNER = self.default_owner
+        Repo.DEFAULT_VIA_SSH = self.via_ssh
         GithubRepo.DEFAULT_USER = self.github_username
         BitbucketRepo.DEFAULT_USER = self.bitbucket_username
 
diff --git a/cgit/repos/repo.py b/cgit/repos/repo.py
index a128dbf..7d0c4a5 100644
--- a/cgit/repos/repo.py
+++ b/cgit/repos/repo.py
@@ -8,6 +8,7 @@ import os.path
 
 class Repo:
     DEFAULT_OWNER = None
+    DEFAULT_VIA_SSH = True
 
     @staticmethod
     def extract_repo_name(repo_id):
@@ -36,13 +37,15 @@ class GithubRepo(Repo):
     DEFAULT_USER = None
 
     def __init__(self, repo_id, clone_url=None, owner=None, desc=None,
-                 homepage=None, user=DEFAULT_USER, via_ssh=True):
+                 homepage=None, user=DEFAULT_USER, via_ssh=None):
         if user is None:
             if GithubRepo.DEFAULT_USER is None:
                 raise RuntimeError('neither explicit or default GitHub username was provided')
             user = GithubRepo.DEFAULT_USER
         name = Repo.extract_repo_name(repo_id)
         if clone_url is None:
+            if via_ssh is None:
+                via_ssh = Repo.DEFAULT_VIA_SSH
             if via_ssh:
                 clone_url = self.build_clone_url_ssh(user, name)
             else:
@@ -69,13 +72,15 @@ class BitbucketRepo(Repo):
     DEFAULT_USER = None
 
     def __init__(self, repo_id, clone_url=None, owner=None, desc=None,
-                 homepage=None, user=DEFAULT_USER, via_ssh=True):
+                 homepage=None, user=DEFAULT_USER, via_ssh=None):
         if user is None:
             if BitbucketRepo.DEFAULT_USER is None:
                 raise RuntimeError('neither explicit or default Bitbucket username was provided')
             user = BitbucketRepo.DEFAULT_USER
         name = Repo.extract_repo_name(repo_id)
         if clone_url is None:
+            if via_ssh is None:
+                via_ssh = Repo.DEFAULT_VIA_SSH
             if via_ssh:
                 clone_url = self.build_clone_url_ssh(user, name)
             else:
-- 
cgit v1.2.3