diff --git a/rhodecode/__init__.py b/rhodecode/__init__.py --- a/rhodecode/__init__.py +++ b/rhodecode/__init__.py @@ -51,7 +51,7 @@ PYRAMID_SETTINGS = {} EXTENSIONS = {} __version__ = ('.'.join((str(each) for each in VERSION[:3]))) -__dbversion__ = 85 # defines current db version for migrations +__dbversion__ = 86 # defines current db version for migrations __platform__ = platform.system() __license__ = 'AGPLv3, and Commercial License' __author__ = 'RhodeCode GmbH' diff --git a/rhodecode/lib/dbmigrate/versions/086_version_4_12_0.py b/rhodecode/lib/dbmigrate/versions/086_version_4_12_0.py new file mode 100644 --- /dev/null +++ b/rhodecode/lib/dbmigrate/versions/086_version_4_12_0.py @@ -0,0 +1,39 @@ +import logging + +from sqlalchemy import * + +from rhodecode.model import meta +from rhodecode.lib.dbmigrate.versions import _reset_base, notify + +log = logging.getLogger(__name__) + + +def upgrade(migrate_engine): + """ + Upgrade operations go here. + Don't create your own engine; bind migrate_engine to your metadata + """ + _reset_base(migrate_engine) + from rhodecode.lib.dbmigrate.schema import db_4_11_0_0 as db + + repository_table = db.Repository.__table__ + + push_uri = Column( + "push_uri", db.EncryptedTextValue(), nullable=True, unique=False, + default=None) + + push_uri.create(table=repository_table) + + # issue fixups + fixups(db, meta.Session) + + +def downgrade(migrate_engine): + meta = MetaData() + meta.bind = migrate_engine + + +def fixups(models, _SESSION): + pass + + diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -1557,6 +1557,9 @@ class Repository(Base, BaseModel): clone_uri = Column( "clone_uri", EncryptedTextValue(), nullable=True, unique=False, default=None) + push_uri = Column( + "push_uri", EncryptedTextValue(), nullable=True, unique=False, + default=None) repo_type = Column( "repo_type", String(255), nullable=False, unique=False, default=None) user_id = Column( @@ -1943,6 +1946,7 @@ class Repository(Base, BaseModel): 'repo_name': repo.repo_name, 'repo_type': repo.repo_type, 'clone_uri': repo.clone_uri or '', + 'push_uri': repo.push_uri or '', 'url': RepoModel().get_url(self), 'private': repo.private, 'created_on': repo.created_on, @@ -2077,6 +2081,16 @@ class Repository(Base, BaseModel): clone_uri = url_obj.with_password('*****') return clone_uri + @property + def push_uri_hidden(self): + push_uri = self.push_uri + if push_uri: + import urlobject + url_obj = urlobject.URLObject(cleaned_uri(push_uri)) + if url_obj.password: + push_uri = url_obj.with_password('*****') + return push_uri + def clone_url(self, **override): from rhodecode.model.settings import SettingsModel