@@ -763,86 +763,78 @@ class BasePasterCommand(Command):
from pylons import config as pylonsconfig
self.path_to_ini_file = os.path.realpath(conf)
conf = paste.deploy.appconfig('config:' + self.path_to_ini_file)
pylonsconfig.init_app(conf.global_conf, conf.local_conf)
def _init_session(self):
"""
Inits SqlAlchemy Session
logging.config.fileConfig(self.path_to_ini_file)
from pylons import config
from kallithea.model import init_model
from kallithea.lib.utils2 import engine_from_config
#get to remove repos !!
add_cache(config)
engine = engine_from_config(config, 'sqlalchemy.db1.')
init_model(engine)
def check_git_version():
Checks what version of git is installed in system, and issues a warning
if it's too old for Kallithea to properly work.
if it's too old for Kallithea to work properly.
from kallithea import BACKENDS
from kallithea.lib.vcs.backends.git.repository import GitRepository
from kallithea.lib.vcs.conf import settings
from distutils.version import StrictVersion
if 'git' not in BACKENDS:
return None
stdout, stderr = GitRepository._run_git_command('--version', _bare=True,
_safe=True)
ver = (stdout.split(' ')[-1] or '').strip() or '0.0.0'
if len(ver.split('.')) > 3:
#StrictVersion needs to be only 3 element type
ver = '.'.join(ver.split('.')[:3])
try:
_ver = StrictVersion(ver)
except ValueError:
_ver = StrictVersion('0.0.0')
stderr = traceback.format_exc()
m = re.search("\d+.\d+.\d+", stdout)
if m:
ver = StrictVersion(m.group(0))
else:
ver = StrictVersion('0.0.0')
req_ver = StrictVersion('1.7.4')
req_ver = '1.7.4'
to_old_git = False
if _ver < StrictVersion(req_ver):
to_old_git = True
if 'git' in BACKENDS:
log.debug('Git executable: "%s" version detected: %s'
% (settings.GIT_EXECUTABLE_PATH, stdout))
if stderr:
log.warning('Unable to detect git version, org error was: %r' % stderr)
elif to_old_git:
log.warning('Kallithea detected git version %s, which is too old '
'for the system to function properly. Make sure '
'its version is at least %s' % (ver, req_ver))
return _ver
log.debug('Git executable: "%s" version %s detected: %s'
% (settings.GIT_EXECUTABLE_PATH, ver, stdout))
log.warning('Error detecting git version: %r' % stderr)
elif ver < req_ver:
'for the system to function properly. '
'Please upgrade to version %s or later.' % (ver, req_ver))
return ver
@decorator.decorator
def jsonify(func, *args, **kwargs):
"""Action decorator that formats output for JSON
Given a function that will return content, this decorator will turn
the result into JSON, with a content-type of 'application/json' and
output it.
from pylons.decorators.util import get_pylons
from kallithea.lib.compat import json
pylons = get_pylons(args)
pylons.response.headers['Content-Type'] = 'application/json; charset=utf-8'
data = func(*args, **kwargs)
if isinstance(data, (list, tuple)):
msg = "JSON responses with Array envelopes are susceptible to " \
"cross-site data leak attacks, see " \
"http://wiki.pylonshq.com/display/pylonsfaq/Warnings"
warnings.warn(msg, Warning, 2)
log.warning(msg)
log.debug("Returning JSON wrapped action output")
return json.dumps(data, encoding='utf-8')
Status change: