Mercurial > kallithea
comparison rhodecode/model/scm.py @ 3826:00e2c162d8bc beta
move out setting rc_extras for in-memory-push handlers to separate function
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 08 May 2013 23:04:24 +0200 |
parents | 910ad1ffee99 |
children | 14a6e9ffd9c8 |
comparison
equal
deleted
inserted
replaced
3825:3306bdd95f11 | 3826:00e2c162d8bc |
---|---|
422 raise Exception("Cannot set repository as fork of itself") | 422 raise Exception("Cannot set repository as fork of itself") |
423 repo.fork = fork | 423 repo.fork = fork |
424 self.sa.add(repo) | 424 self.sa.add(repo) |
425 return repo | 425 return repo |
426 | 426 |
427 def _handle_push(self, repo, username, action, repo_name, revisions): | 427 def _handle_rc_scm_extras(self, username, repo_name, repo_alias): |
428 """ | |
429 Triggers push action hooks | |
430 | |
431 :param repo: SCM repo | |
432 :param username: username who pushes | |
433 :param action: push/push_loca/push_remote | |
434 :param repo_name: name of repo | |
435 :param revisions: list of revisions that we pushed | |
436 """ | |
437 from rhodecode import CONFIG | 428 from rhodecode import CONFIG |
438 from rhodecode.lib.base import _get_ip_addr | 429 from rhodecode.lib.base import _get_ip_addr |
439 try: | 430 try: |
440 from pylons import request | 431 from pylons import request |
441 environ = request.environ | 432 environ = request.environ |
442 except TypeError: | 433 except TypeError: |
443 # we might use this outside of request context, let's fake the | 434 # we might use this outside of request context, let's fake the |
444 # environ data | 435 # environ data |
445 from webob import Request | 436 from webob import Request |
446 environ = Request.blank('').environ | 437 environ = Request.blank('').environ |
447 | |
448 #trigger push hook | |
449 extras = { | 438 extras = { |
450 'ip': _get_ip_addr(environ), | 439 'ip': _get_ip_addr(environ), |
451 'username': username, | 440 'username': username, |
452 'action': 'push_local', | 441 'action': 'push_local', |
453 'repository': repo_name, | 442 'repository': repo_name, |
454 'scm': repo.alias, | 443 'scm': repo_alias, |
455 'config': CONFIG['__file__'], | 444 'config': CONFIG['__file__'], |
456 'server_url': get_server_url(environ), | 445 'server_url': get_server_url(environ), |
457 'make_lock': None, | 446 'make_lock': None, |
458 'locked_by': [None, None] | 447 'locked_by': [None, None] |
459 } | 448 } |
449 _set_extras(extras) | |
450 | |
451 def _handle_push(self, repo, username, action, repo_name, revisions): | |
452 """ | |
453 Triggers push action hooks | |
454 | |
455 :param repo: SCM repo | |
456 :param username: username who pushes | |
457 :param action: push/push_loca/push_remote | |
458 :param repo_name: name of repo | |
459 :param revisions: list of revisions that we pushed | |
460 """ | |
461 self._handle_rc_scm_extras(username, repo_name, repo_alias=repo.alias) | |
460 _scm_repo = repo._repo | 462 _scm_repo = repo._repo |
461 _set_extras(extras) | 463 # trigger push hook |
462 if repo.alias == 'hg': | 464 if repo.alias == 'hg': |
463 log_push_action(_scm_repo.ui, _scm_repo, node=revisions[0]) | 465 log_push_action(_scm_repo.ui, _scm_repo, node=revisions[0]) |
464 elif repo.alias == 'git': | 466 elif repo.alias == 'git': |
465 log_push_action(None, _scm_repo, _git_revs=revisions) | 467 log_push_action(None, _scm_repo, _git_revs=revisions) |
466 | 468 |