docs: def push_repository(self,
  	                    repository,
  	                    docker_executable='docker',
  	                    shutit_pexpect_child=None,
  	                    expect=None,
  	                    note=None,
  	                    loglevel=logging.INFO):
  		"""Pushes the repository.
  
  		@param repository:          Repository to push.
  		@param docker_executable:   Defaults to 'docker'
  		@param expect:              See send()
  		@param shutit_pexpect_child:               See send()
  
  		@type repository:           string
  		@type docker_executable:    string
  		"""
  		shutit_global.shutit_global_object.yield_to_draw()
  		self.handle_note(note)
  		shutit_pexpect_child = shutit_pexpect_child or self.get_shutit_pexpect_session_from_id('host_child').pexpect_child
  		expect               = expect or self.expect_prompts['ORIGIN_ENV']
  		send                 = docker_executable + ' push ' + self.repository['user'] + '/' + repository
  		timeout              = 99999
  		self.log('Running: ' + send,level=logging.INFO)
  		self.multisend(docker_executable + ' login',
  		               {'Username':self.repository['user'], 'Password':self.repository['password'], 'Email':self.repository['email']},
  		               shutit_pexpect_child=shutit_pexpect_child,
  		               expect=expect)
  		self.send(send,
  		          shutit_pexpect_child=shutit_pexpect_child,
  		          expect=expect,
  		          timeout=timeout,
  		          check_exit=False,
  		          fail_on_empty_before=False,
  		          loglevel=loglevel)
  		self.handle_note_after(note)
  		return True