Mercurial > kallithea
comparison rhodecode/lib/hooks.py @ 2165:dc2584ba5fbc
merged beta into default branch
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 28 Mar 2012 19:54:16 +0200 |
parents | 82a88013a3fd 8ecfed1d8f8b |
children | a437a986d399 |
comparison
equal
deleted
inserted
replaced
2097:8fd6650bb436 | 2165:dc2584ba5fbc |
---|---|
25 import os | 25 import os |
26 import sys | 26 import sys |
27 | 27 |
28 from mercurial.scmutil import revrange | 28 from mercurial.scmutil import revrange |
29 from mercurial.node import nullrev | 29 from mercurial.node import nullrev |
30 | 30 from rhodecode import EXTENSIONS |
31 from rhodecode.lib import helpers as h | 31 from rhodecode.lib import helpers as h |
32 from rhodecode.lib.utils import action_logger | 32 from rhodecode.lib.utils import action_logger |
33 from inspect import isfunction | |
33 | 34 |
34 | 35 |
35 def repo_size(ui, repo, hooktype=None, **kwargs): | 36 def repo_size(ui, repo, hooktype=None, **kwargs): |
36 """ | 37 """ |
37 Presents size of repository after push | 38 Presents size of repository after push |
76 | 77 |
77 :param ui: | 78 :param ui: |
78 :param repo: | 79 :param repo: |
79 """ | 80 """ |
80 | 81 |
81 extra_params = dict(repo.ui.configitems('rhodecode_extras')) | 82 extras = dict(repo.ui.configitems('rhodecode_extras')) |
82 username = extra_params['username'] | 83 username = extras['username'] |
83 repository = extra_params['repository'] | 84 repository = extras['repository'] |
84 action = 'pull' | 85 action = 'pull' |
85 | 86 |
86 action_logger(username, action, repository, extra_params['ip'], | 87 action_logger(username, action, repository, extras['ip'], commit=True) |
87 commit=True) | 88 # extension hook call |
89 callback = getattr(EXTENSIONS, 'PULL_HOOK', None) | |
88 | 90 |
91 if isfunction(callback): | |
92 kw = {} | |
93 kw.update(extras) | |
94 callback(**kw) | |
89 return 0 | 95 return 0 |
90 | 96 |
91 | 97 |
92 def log_push_action(ui, repo, **kwargs): | 98 def log_push_action(ui, repo, **kwargs): |
93 """ | 99 """ |
95 | 101 |
96 :param ui: | 102 :param ui: |
97 :param repo: | 103 :param repo: |
98 """ | 104 """ |
99 | 105 |
100 extra_params = dict(repo.ui.configitems('rhodecode_extras')) | 106 extras = dict(repo.ui.configitems('rhodecode_extras')) |
101 username = extra_params['username'] | 107 username = extras['username'] |
102 repository = extra_params['repository'] | 108 repository = extras['repository'] |
103 action = extra_params['action'] + ':%s' | 109 action = extras['action'] + ':%s' |
104 node = kwargs['node'] | 110 node = kwargs['node'] |
105 | 111 |
106 def get_revs(repo, rev_opt): | 112 def get_revs(repo, rev_opt): |
107 if rev_opt: | 113 if rev_opt: |
108 revs = revrange(repo, rev_opt) | 114 revs = revrange(repo, rev_opt) |
117 | 123 |
118 revs = (str(repo[r]) for r in xrange(start, stop + 1)) | 124 revs = (str(repo[r]) for r in xrange(start, stop + 1)) |
119 | 125 |
120 action = action % ','.join(revs) | 126 action = action % ','.join(revs) |
121 | 127 |
122 action_logger(username, action, repository, extra_params['ip'], | 128 action_logger(username, action, repository, extras['ip'], commit=True) |
123 commit=True) | |
124 | 129 |
130 # extension hook call | |
131 callback = getattr(EXTENSIONS, 'PUSH_HOOK', None) | |
132 if isfunction(callback): | |
133 kw = {'pushed_revs': revs} | |
134 kw.update(extras) | |
135 callback(**kw) | |
125 return 0 | 136 return 0 |
126 | 137 |
127 | 138 |
128 def log_create_repository(repository_dict, created_by, **kwargs): | 139 def log_create_repository(repository_dict, created_by, **kwargs): |
129 """ | 140 """ |
130 Post create repository Hook. This is a dummy function for admins to re-use | 141 Post create repository Hook. This is a dummy function for admins to re-use |
131 if needed | 142 if needed. It's taken from rhodecode-extensions module and executed |
143 if present | |
132 | 144 |
133 :param repository: dict dump of repository object | 145 :param repository: dict dump of repository object |
134 :param created_by: username who created repository | 146 :param created_by: username who created repository |
135 :param created_date: date of creation | 147 :param created_date: date of creation |
136 | 148 |
149 'group_id', | 161 'group_id', |
150 'repo_name' | 162 'repo_name' |
151 | 163 |
152 """ | 164 """ |
153 | 165 |
166 callback = getattr(EXTENSIONS, 'CREATE_REPO_HOOK', None) | |
167 if isfunction(callback): | |
168 kw = {} | |
169 kw.update(repository_dict) | |
170 kw.update({'created_by': created_by}) | |
171 kw.update(kwargs) | |
172 return callback(**kw) | |
154 | 173 |
155 return 0 | 174 return 0 |