Show More
@@ -405,6 +405,31 class ScmModel(BaseModel): | |||||
405 | self.sa.add(repo) |
|
405 | self.sa.add(repo) | |
406 | return repo |
|
406 | return repo | |
407 |
|
407 | |||
|
408 | def _handle_rc_scm_extras(self, username, repo_name, repo_alias, | |||
|
409 | action=None): | |||
|
410 | from rhodecode import CONFIG | |||
|
411 | from rhodecode.lib.base import _get_ip_addr | |||
|
412 | try: | |||
|
413 | from pylons import request | |||
|
414 | environ = request.environ | |||
|
415 | except TypeError: | |||
|
416 | # we might use this outside of request context, let's fake the | |||
|
417 | # environ data | |||
|
418 | from webob import Request | |||
|
419 | environ = Request.blank('').environ | |||
|
420 | extras = { | |||
|
421 | 'ip': _get_ip_addr(environ), | |||
|
422 | 'username': username, | |||
|
423 | 'action': action or 'push_local', | |||
|
424 | 'repository': repo_name, | |||
|
425 | 'scm': repo_alias, | |||
|
426 | 'config': CONFIG['__file__'], | |||
|
427 | 'server_url': get_server_url(environ), | |||
|
428 | 'make_lock': None, | |||
|
429 | 'locked_by': [None, None] | |||
|
430 | } | |||
|
431 | _set_extras(extras) | |||
|
432 | ||||
408 | def _handle_push(self, repo, username, action, repo_name, revisions): |
|
433 | def _handle_push(self, repo, username, action, repo_name, revisions): | |
409 | """ |
|
434 | """ | |
410 | Triggers push action hooks |
|
435 | Triggers push action hooks | |
@@ -415,31 +440,9 class ScmModel(BaseModel): | |||||
415 | :param repo_name: name of repo |
|
440 | :param repo_name: name of repo | |
416 | :param revisions: list of revisions that we pushed |
|
441 | :param revisions: list of revisions that we pushed | |
417 | """ |
|
442 | """ | |
418 | from rhodecode import CONFIG |
|
443 | self._handle_rc_scm_extras(username, repo_name, repo_alias=repo.alias) | |
419 | from rhodecode.lib.base import _get_ip_addr |
|
444 | _scm_repo = repo._repo | |
420 | try: |
|
|||
421 | from pylons import request |
|
|||
422 | environ = request.environ |
|
|||
423 | except TypeError: |
|
|||
424 | # we might use this outside of request context, let's fake the |
|
|||
425 | # environ data |
|
|||
426 | from webob import Request |
|
|||
427 | environ = Request.blank('').environ |
|
|||
428 |
|
||||
429 | #trigger push hook |
|
445 | # trigger push hook | |
430 | extras = { |
|
|||
431 | 'ip': _get_ip_addr(environ), |
|
|||
432 | 'username': username, |
|
|||
433 | 'action': 'push_local', |
|
|||
434 | 'repository': repo_name, |
|
|||
435 | 'scm': repo.alias, |
|
|||
436 | 'config': CONFIG['__file__'], |
|
|||
437 | 'server_url': get_server_url(environ), |
|
|||
438 | 'make_lock': None, |
|
|||
439 | 'locked_by': [None, None] |
|
|||
440 | } |
|
|||
441 | _scm_repo = repo._repo |
|
|||
442 | _set_extras(extras) |
|
|||
443 | if repo.alias == 'hg': |
|
446 | if repo.alias == 'hg': | |
444 | log_push_action(_scm_repo.ui, _scm_repo, node=revisions[0]) |
|
447 | log_push_action(_scm_repo.ui, _scm_repo, node=revisions[0]) | |
445 | elif repo.alias == 'git': |
|
448 | elif repo.alias == 'git': | |
@@ -471,7 +474,10 class ScmModel(BaseModel): | |||||
471 | if repo.alias == 'git': |
|
474 | if repo.alias == 'git': | |
472 | repo.fetch(clone_uri) |
|
475 | repo.fetch(clone_uri) | |
473 | else: |
|
476 | else: | |
|
477 | self._handle_rc_scm_extras(username, dbrepo.repo_name, | |||
|
478 | repo.alias, action='push_remote') | |||
474 | repo.pull(clone_uri) |
|
479 | repo.pull(clone_uri) | |
|
480 | ||||
475 | self.mark_for_invalidation(repo_name) |
|
481 | self.mark_for_invalidation(repo_name) | |
476 | except Exception: |
|
482 | except Exception: | |
477 | log.error(traceback.format_exc()) |
|
483 | log.error(traceback.format_exc()) |
General Comments 0
You need to be logged in to leave comments.
Login now