import os import subprocess if 'TRAVIS' not in os.environ: print 'TRAVIS is not defined; this should run in TRAVIS. Sorry.' exit(127) if os.environ['TRAVIS_PULL_REQUEST'] != 'false': commit_range = ['upstream/' + os.environ['TRAVIS_BRANCH'], 'FETCH_HEAD'] else: try: subprocess.check_call([ 'git', 'log', '-1', '--format=format:', os.environ['TRAVIS_COMMIT_RANGE'], '--', ]) commit_range = os.environ['TRAVIS_COMMIT_RANGE'].split('...') if len(commit_range) == 1: # if it didn't split, it must have been separated by '..' instead commit_range = commit_range[0].split('..') except subprocess.CalledProcessError: print 'TRAVIS_COMMIT_RANGE is invalid. This seems to be a force push. We will just assume it must be against upstream master and compare all commits in between.' commit_range = ['upstream/master', 'HEAD']