Mercurial > kallithea
annotate rhodecode/lib/hooks.py @ 2310:83e4447077d3 beta
Improved i18n for the comment count (use of ngettext for pluralisation).
author | Vincent Duvert <vincent@duvert.net> |
---|---|
date | Sun, 20 May 2012 10:47:33 +0200 |
parents | 37c143aa8616 |
children | a437a986d399 1dbf07735af4 |
rev | line source |
---|---|
913
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
1 # -*- coding: utf-8 -*- |
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
2 """ |
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
3 rhodecode.lib.hooks |
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
4 ~~~~~~~~~~~~~~~~~~~ |
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
5 |
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
6 Hooks runned by rhodecode |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1114
diff
changeset
|
7 |
913
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
8 :created_on: Aug 6, 2010 |
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
9 :author: marcink |
1824
89efedac4e6c
2012 copyrights
Marcin Kuzminski <marcin@python-works.com>
parents:
1814
diff
changeset
|
10 :copyright: (C) 2010-2012 Marcin Kuzminski <marcin@python-works.com> |
913
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
11 :license: GPLv3, see COPYING for more details. |
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
12 """ |
1206
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
13 # This program is free software: you can redistribute it and/or modify |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
14 # it under the terms of the GNU General Public License as published by |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
15 # the Free Software Foundation, either version 3 of the License, or |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
16 # (at your option) any later version. |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1114
diff
changeset
|
17 # |
392
b27d32cb3157
Implemented hooks system,
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
18 # This program is distributed in the hope that it will be useful, |
b27d32cb3157
Implemented hooks system,
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
b27d32cb3157
Implemented hooks system,
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
b27d32cb3157
Implemented hooks system,
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
21 # GNU General Public License for more details. |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1114
diff
changeset
|
22 # |
392
b27d32cb3157
Implemented hooks system,
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
23 # You should have received a copy of the GNU General Public License |
1206
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
24 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
913
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
25 import os |
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
26 import sys |
392
b27d32cb3157
Implemented hooks system,
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
27 |
1415
677408ee9355
fixed hooks for mercurial 1.9
Marcin Kuzminski <marcin@python-works.com>
parents:
1307
diff
changeset
|
28 from mercurial.scmutil import revrange |
654
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
29 from mercurial.node import nullrev |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
30 from rhodecode import EXTENSIONS |
654
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
31 from rhodecode.lib import helpers as h |
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
32 from rhodecode.lib.utils import action_logger |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
33 from inspect import isfunction |
392
b27d32cb3157
Implemented hooks system,
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
34 |
1307 | 35 |
2196
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
36 def _get_scm_size(alias, root_path): |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
37 |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
38 if not alias.startswith('.'): |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
39 alias += '.' |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
40 |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
41 size_scm, size_root = 0, 0 |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
42 for path, dirs, files in os.walk(root_path): |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
43 if path.find(alias) != -1: |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
44 for f in files: |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
45 try: |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
46 size_scm += os.path.getsize(os.path.join(path, f)) |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
47 except OSError: |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
48 pass |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
49 else: |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
50 for f in files: |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
51 try: |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
52 size_root += os.path.getsize(os.path.join(path, f)) |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
53 except OSError: |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
54 pass |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
55 |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
56 size_scm_f = h.format_byte_size(size_scm) |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
57 size_root_f = h.format_byte_size(size_root) |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
58 size_total_f = h.format_byte_size(size_root + size_scm) |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
59 |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
60 return size_scm_f, size_root_f, size_total_f |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
61 |
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
62 |
392
b27d32cb3157
Implemented hooks system,
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
63 def repo_size(ui, repo, hooktype=None, **kwargs): |
1722
e7eef7a1db6a
#235 forking page repo group selection
Marcin Kuzminski <marcin@python-works.com>
parents:
1416
diff
changeset
|
64 """ |
e7eef7a1db6a
#235 forking page repo group selection
Marcin Kuzminski <marcin@python-works.com>
parents:
1416
diff
changeset
|
65 Presents size of repository after push |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1114
diff
changeset
|
66 |
913
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
67 :param ui: |
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
68 :param repo: |
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
69 :param hooktype: |
d173938d711b
filled in some docs for hooks
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
70 """ |
392
b27d32cb3157
Implemented hooks system,
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
71 |
2196
7ccf403b9c3f
made repo-size hook more generic
Marcin Kuzminski <marcin@python-works.com>
parents:
2109
diff
changeset
|
72 size_hg_f, size_root_f, size_total_f = _get_scm_size('.hg', repo.root) |
1814
9de452afbe01
small change for post update hook that displays repository size
Marcin Kuzminski <marcin@python-works.com>
parents:
1722
diff
changeset
|
73 |
9de452afbe01
small change for post update hook that displays repository size
Marcin Kuzminski <marcin@python-works.com>
parents:
1722
diff
changeset
|
74 last_cs = repo[len(repo) - 1] |
9de452afbe01
small change for post update hook that displays repository size
Marcin Kuzminski <marcin@python-works.com>
parents:
1722
diff
changeset
|
75 |
9de452afbe01
small change for post update hook that displays repository size
Marcin Kuzminski <marcin@python-works.com>
parents:
1722
diff
changeset
|
76 msg = ('Repository size .hg:%s repo:%s total:%s\n' |
9de452afbe01
small change for post update hook that displays repository size
Marcin Kuzminski <marcin@python-works.com>
parents:
1722
diff
changeset
|
77 'Last revision is now r%s:%s\n') % ( |
9de452afbe01
small change for post update hook that displays repository size
Marcin Kuzminski <marcin@python-works.com>
parents:
1722
diff
changeset
|
78 size_hg_f, size_root_f, size_total_f, last_cs.rev(), last_cs.hex()[:12] |
9de452afbe01
small change for post update hook that displays repository size
Marcin Kuzminski <marcin@python-works.com>
parents:
1722
diff
changeset
|
79 ) |
9de452afbe01
small change for post update hook that displays repository size
Marcin Kuzminski <marcin@python-works.com>
parents:
1722
diff
changeset
|
80 |
9de452afbe01
small change for post update hook that displays repository size
Marcin Kuzminski <marcin@python-works.com>
parents:
1722
diff
changeset
|
81 sys.stdout.write(msg) |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
82 |
1307 | 83 |
654
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
84 def log_pull_action(ui, repo, **kwargs): |
1722
e7eef7a1db6a
#235 forking page repo group selection
Marcin Kuzminski <marcin@python-works.com>
parents:
1416
diff
changeset
|
85 """ |
e7eef7a1db6a
#235 forking page repo group selection
Marcin Kuzminski <marcin@python-works.com>
parents:
1416
diff
changeset
|
86 Logs user last pull action |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1114
diff
changeset
|
87 |
654
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
88 :param ui: |
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
89 :param repo: |
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
90 """ |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
91 |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
92 extras = dict(repo.ui.configitems('rhodecode_extras')) |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
93 username = extras['username'] |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
94 repository = extras['repository'] |
2203
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
95 scm = extras['scm'] |
654
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
96 action = 'pull' |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
97 |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
98 action_logger(username, action, repository, extras['ip'], commit=True) |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
99 # extension hook call |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
100 callback = getattr(EXTENSIONS, 'PULL_HOOK', None) |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
101 |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
102 if isfunction(callback): |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
103 kw = {} |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
104 kw.update(extras) |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
105 callback(**kw) |
654
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
106 return 0 |
503
3d6d548ad3cc
Added user action mapper to map push to changeset.
Marcin Kuzminski <marcin@python-works.com>
parents:
392
diff
changeset
|
107 |
1307 | 108 |
654
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
109 def log_push_action(ui, repo, **kwargs): |
1722
e7eef7a1db6a
#235 forking page repo group selection
Marcin Kuzminski <marcin@python-works.com>
parents:
1416
diff
changeset
|
110 """ |
e7eef7a1db6a
#235 forking page repo group selection
Marcin Kuzminski <marcin@python-works.com>
parents:
1416
diff
changeset
|
111 Maps user last push action to new changeset id, from mercurial |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1114
diff
changeset
|
112 |
604
5cc96df705b9
fixed @repo into :repo for docs
Marcin Kuzminski <marcin@python-works.com>
parents:
547
diff
changeset
|
113 :param ui: |
2236
37c143aa8616
fixes issue #436 git push error
Marcin Kuzminski <marcin@python-works.com>
parents:
2203
diff
changeset
|
114 :param repo: repo object containing the `ui` object |
503
3d6d548ad3cc
Added user action mapper to map push to changeset.
Marcin Kuzminski <marcin@python-works.com>
parents:
392
diff
changeset
|
115 """ |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
116 |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
117 extras = dict(repo.ui.configitems('rhodecode_extras')) |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
118 username = extras['username'] |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
119 repository = extras['repository'] |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
120 action = extras['action'] + ':%s' |
2203
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
121 scm = extras['scm'] |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
122 |
2203
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
123 if scm == 'hg': |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
124 node = kwargs['node'] |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
125 |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
126 def get_revs(repo, rev_opt): |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
127 if rev_opt: |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
128 revs = revrange(repo, rev_opt) |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
129 |
2203
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
130 if len(revs) == 0: |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
131 return (nullrev, nullrev) |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
132 return (max(revs), min(revs)) |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
133 else: |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
134 return (len(repo) - 1, 0) |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
135 |
2203
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
136 stop, start = get_revs(repo, [node + ':']) |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
137 |
2203
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
138 revs = (str(repo[r]) for r in xrange(start, stop + 1)) |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
139 elif scm == 'git': |
d9972f76322e
added emulation of pull hook for git-backend, and dummy git-push hook
Marcin Kuzminski <marcin@python-works.com>
parents:
2196
diff
changeset
|
140 revs = [] |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
141 |
654
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
142 action = action % ','.join(revs) |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
143 |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
144 action_logger(username, action, repository, extras['ip'], commit=True) |
675
59670f091c76
bugfix, repo_size crashed when broken symlinks where inside a repository.
Marcin Kuzminski <marcin@python-works.com>
parents:
654
diff
changeset
|
145 |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
146 # extension hook call |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
147 callback = getattr(EXTENSIONS, 'PUSH_HOOK', None) |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
148 if isfunction(callback): |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
149 kw = {'pushed_revs': revs} |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
150 kw.update(extras) |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
151 callback(**kw) |
654
7f5976da192c
#48 rewrite action loggers into hooks with all changesets that are inside a push
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
152 return 0 |
1972
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
153 |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
154 |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
155 def log_create_repository(repository_dict, created_by, **kwargs): |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
156 """ |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
157 Post create repository Hook. This is a dummy function for admins to re-use |
2109 | 158 if needed. It's taken from rhodecode-extensions module and executed |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
159 if present |
1972
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
160 |
1982
87f0800abc7b
#227 Initial version of repository groups permissions system
Marcin Kuzminski <marcin@python-works.com>
parents:
1972
diff
changeset
|
161 :param repository: dict dump of repository object |
1972
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
162 :param created_by: username who created repository |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
163 :param created_date: date of creation |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
164 |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
165 available keys of repository_dict: |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
166 |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
167 'repo_type', |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
168 'description', |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
169 'private', |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
170 'created_on', |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
171 'enable_downloads', |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
172 'repo_id', |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
173 'user_id', |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
174 'enable_statistics', |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
175 'clone_uri', |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
176 'fork_id', |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
177 'group_id', |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
178 'repo_name' |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
179 |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
180 """ |
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
181 |
2105
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
182 callback = getattr(EXTENSIONS, 'CREATE_REPO_HOOK', None) |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
183 if isfunction(callback): |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
184 kw = {} |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
185 kw.update(repository_dict) |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
186 kw.update({'created_by': created_by}) |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
187 kw.update(kwargs) |
926f55b038bc
added initial rc-extension module
Marcin Kuzminski <marcin@python-works.com>
parents:
1982
diff
changeset
|
188 return callback(**kw) |
1972
27abf546aa8a
#348 added post-create repository hook
Marcin Kuzminski <marcin@python-works.com>
parents:
1824
diff
changeset
|
189 |
1982
87f0800abc7b
#227 Initial version of repository groups permissions system
Marcin Kuzminski <marcin@python-works.com>
parents:
1972
diff
changeset
|
190 return 0 |