#11558: Introduce GIT_PATH configuration setting

This commit is contained in:
jeremystretch 2023-03-22 11:25:03 -04:00
parent 2fc79af4c7
commit a098c3b0c1
3 changed files with 15 additions and 3 deletions

View File

@ -73,6 +73,14 @@ Determines if localization features are enabled or not. This should only be enab
---
## GIT_PATH
Default: `git`
The system path to the `git` executable, used by the synchronization backend for remote git repositories.
---
## HTTP_PROXIES
Default: None

View File

@ -99,7 +99,7 @@ class GitBackend(DataBackend):
url = self.url
# Compile git arguments
args = ['git', 'clone', '--depth', '1']
args = [settings.GIT_PATH, 'clone', '--depth', '1']
if branch := self.params.get('branch'):
args.extend(['--branch', branch])
args.extend([url, local_path.name])
@ -112,10 +112,13 @@ class GitBackend(DataBackend):
logger.debug(f"Cloning git repo: {' '.join(args)}")
try:
subprocess.run(args, check=True, capture_output=True, env=env_vars)
except subprocess.CalledProcessError as e:
except FileNotFoundError as e:
raise SyncError(
f"Fetching remote data failed: {e.stderr}"
f"Unable to fetch: git executable not found. Check that the git executable exists at the "
f"configured path: {settings.GIT_PATH}"
)
except subprocess.CalledProcessError as e:
raise SyncError(f"Fetching remote data failed: {e.stderr}")
yield local_path.name

View File

@ -92,6 +92,7 @@ EMAIL = getattr(configuration, 'EMAIL', {})
EXEMPT_VIEW_PERMISSIONS = getattr(configuration, 'EXEMPT_VIEW_PERMISSIONS', [])
FIELD_CHOICES = getattr(configuration, 'FIELD_CHOICES', {})
FILE_UPLOAD_MAX_MEMORY_SIZE = getattr(configuration, 'FILE_UPLOAD_MAX_MEMORY_SIZE', 2621440)
GIT_PATH = getattr(configuration, 'GIT_PATH', 'git')
HTTP_PROXIES = getattr(configuration, 'HTTP_PROXIES', None)
INTERNAL_IPS = getattr(configuration, 'INTERNAL_IPS', ('127.0.0.1', '::1'))
JINJA2_FILTERS = getattr(configuration, 'JINJA2_FILTERS', {})