def pull_changes(self, repo, username): dbrepo = self.__get_repo(repo) clone_uri = dbrepo.clone_uri if not clone_uri: raise Exception("This repository doesn't have a clone uri") repo = dbrepo.scm_instance try: extras = { 'ip': '', 'username': username, 'action': 'push_remote', 'repository': dbrepo.repo_name, 'scm': repo.alias, } Repository.inject_ui(repo, extras=extras) if repo.alias == 'git': repo.fetch(clone_uri) else: repo.pull(clone_uri) self.mark_for_invalidation(dbrepo.repo_name) except: log.error(traceback.format_exc()) raise