import subprocess,json,time,sys
from pathlib import Path
D=Path(sys.argv[1])
def api(endpoint,method='GET',**fields):
 a=['glab','api',endpoint,'--method',method]
 for k,v in fields.items(): a+=['-f',f'{k}={v}']
 return json.loads(subprocess.check_output(a))
name='mr-fork-slot-proof-'+str(int(time.time()))
p=api('projects','POST',name=name,namespace_id=131484201,initialize_with_readme='true',default_branch='main')
pid=p['id']; api(f'projects/{pid}/repository/branches','POST',branch='feature',ref='main')
api(f'projects/{pid}/repository/files/original.txt','POST',branch='feature',content='Original feature\n',commit_message='Original branch feature')
m=api(f'projects/{pid}/merge_requests','POST',source_branch='feature',target_branch='main',title='Original branch MR')
f=api(f'projects/{pid}/fork','POST',namespace='julius54')
for _ in range(30):
 f=api('projects/'+str(f['id']))
 if f.get('import_status')=='finished': break
 time.sleep(2)
api(f"projects/{f['id']}/repository/files/fork.txt",'POST',branch='feature',content='Different fork feature\n',commit_message='Fork feature')
n=api(f"projects/{f['id']}/merge_requests",'POST',source_branch='feature',target_branch='main',target_project_id=pid,title='Newer fork branch MR')
(D/'fixture.json').write_text(json.dumps({'project':pid,'fork':f['id'],'url':p['http_url_to_repo'],'original':m['web_url'],'forkMr':n['web_url']},indent=2))
print((D/'fixture.json').read_text())
