<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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