<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_job_statuses(github_token, api_url, build_id, polling_interval, job_number):
 """Wait for all the travis jobs to complete. Once the other jobs are complete, return a list of booleans, indicating whether or not the job was successful. Ignore jobs marked "allow_failure". """

    auth = get_json('{api_url}/auth/github'.format(api_url=api_url),
                    data={'github_token': github_token})['access_token']

    while True:
        build = get_json('{api_url}/builds/{build_id}'.format(
            api_url=api_url, build_id=build_id), auth=auth)
        jobs = [job for job in build['jobs']
                if job['number'] != job_number and
                not job['allow_failure']]  # Ignore allowed failures
        if all(job['finished_at'] for job in jobs):
            break  # All the jobs have completed
        elif any(job['state'] != 'passed'
                 for job in jobs if job['finished_at']):
            break  # Some required job that finished did not pass

        print('Waiting for jobs to complete: {job_numbers}'.format(
            job_numbers=[job['number'] for job in jobs
                         if not job['finished_at']]))
        time.sleep(polling_interval)

    return [job['state'] == 'passed' for job in jobs]