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