#!/usr/bin/env python3
from pathlib import Path
import subprocess,json,argparse
ap=argparse.ArgumentParser(); ap.add_argument('--workspace',default='workspace'); a=ap.parse_args(); ws=Path(a.workspace).resolve(); repo=ws/'repo'
meta=json.loads((ws/'fixture_metadata.json').read_text())
def g(*args): return subprocess.check_output(['git',*args],cwd=repo,text=True).strip()
out={'branch':g('branch','--show-current'),'head':g('rev-parse','HEAD'),'target_ref':meta['target_ref'],'target_tip':g('rev-parse',meta['target_ref']),'source_bugfix_commit':meta['source_bugfix_commit'],'merge_base_source_target':g('merge-base',meta['source_bugfix_commit'],meta['target_ref']),'candidate_tag_target':g('rev-parse','v1.4.1-candidate^{}'),'status':g('status','--porcelain=v1'),'log':g('log','--oneline','--decorate','--graph','--all','-n','12')}
print(json.dumps(out,indent=2)); print('\n'+out['log'])
