# HG changeset patch # User Mads Kiilerich # Date 1576785033 -3600 # Node ID d2319cb2ba9b8e068af5d7a45cfa5fc746cc5a7a # Parent e8e9f33e9ff600e67b901563a95623603e285d9b# Parent 01dbd21d206c724952cba54063bc5835981b356f Merge stable diff -r e8e9f33e9ff6 -r d2319cb2ba9b kallithea/bin/ldap_sync.py --- a/kallithea/bin/ldap_sync.py Sat Nov 23 22:47:35 2019 +0100 +++ b/kallithea/bin/ldap_sync.py Thu Dec 19 20:50:33 2019 +0100 @@ -32,6 +32,7 @@ from ConfigParser import ConfigParser import ldap + from kallithea.lib.compat import json diff -r e8e9f33e9ff6 -r d2319cb2ba9b kallithea/i18n/ru/LC_MESSAGES/kallithea.po --- a/kallithea/i18n/ru/LC_MESSAGES/kallithea.po Sat Nov 23 22:47:35 2019 +0100 +++ b/kallithea/i18n/ru/LC_MESSAGES/kallithea.po Thu Dec 19 20:50:33 2019 +0100 @@ -80,7 +80,7 @@ msgid "You can only delete files with revision being a valid branch" msgstr "" -"Вы можете удалять файлы только в ревизии, связанной с существующей веткой " +"Вы можете удалять файлы только в ревизии, являющейся корректной веткой" msgid "Deleted file %s via Kallithea" msgstr "Файл %s удалён с помощью Kallithea" @@ -94,7 +94,7 @@ msgid "You can only edit files with revision being a valid branch" msgstr "" "Вы можете редактировать файлы только в ревизии, связанной с существующей " -"веткой " +"веткой" msgid "Edited file %s via Kallithea" msgstr "Файл %s отредактирован с помощью Kallithea" @@ -711,9 +711,9 @@ msgid "%d second" msgid_plural "%d seconds" -msgstr[0] "%d секунды" +msgstr[0] "%d секунда" msgstr[1] "%d секунды" -msgstr[2] "%d секунды" +msgstr[2] "%d секунд" msgid "in %s" msgstr "в %s" @@ -837,7 +837,7 @@ msgstr "Группа \"%(group_name)s\" уже существует" msgid "Repository with name \"%(group_name)s\" already exists" -msgstr "Репозитарий с именем \"%(group_name)s\" уже существует" +msgstr "Репозиторий с именем «%(group_name)s» уже существует" msgid "Invalid characters (non-ascii) in password" msgstr "Недопустимые символы (не ascii) в пароле" diff -r e8e9f33e9ff6 -r d2319cb2ba9b kallithea/lib/ssh.py --- a/kallithea/lib/ssh.py Sat Nov 23 22:47:35 2019 +0100 +++ b/kallithea/lib/ssh.py Thu Dec 19 20:50:33 2019 +0100 @@ -66,6 +66,8 @@ >>> parse_pub_key(''' ssh-rsa AAAAB3NzaC1yc2EAAAALVGhpcyBpcyBmYWtlIQ== and a comment ... ''') ('ssh-rsa', '\x00\x00\x00\x07ssh-rsa\x00\x00\x00\x0bThis is fake!', 'and a comment\n') + >>> parse_pub_key('''ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIP1NA2kBQIKe74afUXmIWD9ByDYQJqUwW44Y4gJOBRuo''') + ('ssh-ed25519', '\x00\x00\x00\x0bssh-ed25519\x00\x00\x00 \xfdM\x03i\x01@\x82\x9e\xef\x86\x9fQy\x88X?A\xc86\x10&\xa50[\x8e\x18\xe2\x02N\x05\x1b\xa8', '') """ if not ssh_key: raise SshKeyParseError(_("SSH key is missing")) @@ -86,7 +88,7 @@ except binascii.Error: raise SshKeyParseError(_("Incorrect SSH key - failed to decode base64 part %r") % keyvalue) - if not decoded.startswith('\x00\x00\x00\x07' + str(keytype) + '\x00'): + if not decoded.startswith('\x00\x00\x00' + chr(len(keytype)) + str(keytype) + '\x00'): raise SshKeyParseError(_("Incorrect SSH key - base64 part is not %r as claimed but %r") % (str(keytype), str(decoded[4:].split('\0', 1)[0]))) return keytype, decoded, comment diff -r e8e9f33e9ff6 -r d2319cb2ba9b kallithea/templates/admin/settings/settings_visual.html --- a/kallithea/templates/admin/settings/settings_visual.html Sat Nov 23 22:47:35 2019 +0100 +++ b/kallithea/templates/admin/settings/settings_visual.html Thu Dec 19 20:50:33 2019 +0100 @@ -58,6 +58,8 @@ ${h.text('clone_ssh_tmpl', size=80, class_='form-control')} ${_('''Schema for constructing SSH clone URL, eg. 'ssh://{system_user}@{hostname}/{repo}'.''')} + %else: + ${h.hidden('clone_ssh_tmpl', size=80, class_='form-control')} %endif diff -r e8e9f33e9ff6 -r d2319cb2ba9b scripts/make-release --- a/scripts/make-release Sat Nov 23 22:47:35 2019 +0100 +++ b/scripts/make-release Thu Dec 19 20:50:33 2019 +0100 @@ -19,7 +19,7 @@ . "$venv/bin/activate" echo "Install/verify tools needed for building and uploading stuff" -pip install --upgrade -e . -r dev_requirements.txt twine +pip install --upgrade -e . -r dev_requirements.txt twine python-ldap python-pam echo "Cleanup and update copyrights ... and clean checkout" scripts/run-all-cleanup