diff --git a/docs/changelog.rst b/docs/changelog.rst --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -36,6 +36,7 @@ news - added linking of changesets in commit messages - new compact changelog with expandable commit messages - firstname and lastname are optional in user creation +- #348 added post-create repository hook fixes ----- diff --git a/rhodecode/lib/hooks.py b/rhodecode/lib/hooks.py --- a/rhodecode/lib/hooks.py +++ b/rhodecode/lib/hooks.py @@ -123,3 +123,33 @@ def log_push_action(ui, repo, **kwargs): commit=True) return 0 + + +def log_create_repository(repository_dict, created_by, **kwargs): + """ + Post create repository Hook. This is a dummy function for admins to re-use + if needed + + :param repository: dict dump of repository object + :param created_by: username who created repository + :param created_date: date of creation + + available keys of repository_dict: + + 'repo_type', + 'description', + 'private', + 'created_on', + 'enable_downloads', + 'repo_id', + 'user_id', + 'enable_statistics', + 'clone_uri', + 'fork_id', + 'group_id', + 'repo_name' + + """ + + + return 0 \ No newline at end of file diff --git a/rhodecode/model/repo.py b/rhodecode/model/repo.py --- a/rhodecode/model/repo.py +++ b/rhodecode/model/repo.py @@ -33,6 +33,7 @@ from vcs.backends import get_backend from rhodecode.lib import safe_str from rhodecode.lib.caching_query import FromCache +from rhodecode.lib.hooks import log_create_repository from rhodecode.model import BaseModel from rhodecode.model.db import Repository, UserRepoToPerm, User, Permission, \ @@ -70,7 +71,6 @@ class RepoModel(BaseModel): "get_repo_%s" % repo_name)) return repo.scalar() - def get_users_js(self): users = self.sa.query(User).filter(User.active == True).all() @@ -131,7 +131,6 @@ class RepoModel(BaseModel): return defaults - def update(self, repo_name, form_data): try: cur_repo = self.get_by_repo_name(repo_name, cache=False) @@ -262,7 +261,6 @@ class RepoModel(BaseModel): self.sa.add(repo_to_perm) - if fork: if form_data.get('copy_permissions'): repo = Repository.get(fork_parent_id) @@ -291,6 +289,8 @@ class RepoModel(BaseModel): # now automatically start following this repository as owner ScmModel(self.sa).toggle_following_repo(new_repo.repo_id, cur_user.user_id) + log_create_repository(new_repo.get_dict(), + created_by=cur_user.username) return new_repo except: log.error(traceback.format_exc())