[O] Manually commit for deleted PR
This commit is contained in:
parent
2850674070
commit
8278b92e12
1 changed files with 65 additions and 48 deletions
|
@ -11,56 +11,9 @@ from github import Github
|
||||||
upstream = 'dylanaraps/neofetch'
|
upstream = 'dylanaraps/neofetch'
|
||||||
my_fork = 'hykilpikonna/hyfetch'
|
my_fork = 'hykilpikonna/hyfetch'
|
||||||
my_base = 'master'
|
my_base = 'master'
|
||||||
# gh_token = os.environ['GH_TOKEN']
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
def copy_comment():
|
||||||
parser = argparse.ArgumentParser(description='Helper for accepting upstream pull requests')
|
|
||||||
parser.add_argument('pull', type=int, help='Pull request number')
|
|
||||||
args = parser.parse_args()
|
|
||||||
pr = args.pull
|
|
||||||
|
|
||||||
print(f'Accepting pull request {pr}...')
|
|
||||||
|
|
||||||
# Fetch original pr's information
|
|
||||||
info = requests.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}').json()
|
|
||||||
# print(info)
|
|
||||||
head = info['head']['repo']['full_name']
|
|
||||||
head_br = info['head']['ref']
|
|
||||||
head_lbl = info['head']['label']
|
|
||||||
user = info['user']['login']
|
|
||||||
print()
|
|
||||||
print('Original Pull Request Info:')
|
|
||||||
print('> State:', info['state'])
|
|
||||||
print('> Title:', info['title'])
|
|
||||||
print('> User:', user)
|
|
||||||
print('> Created:', info['created_at'])
|
|
||||||
print('> Head:', head, head_br, head_lbl)
|
|
||||||
|
|
||||||
# Fetch commit information
|
|
||||||
commits = requests.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}/commits').json()
|
|
||||||
author = commits[0]['commit']['author']
|
|
||||||
|
|
||||||
# Fetch head branch
|
|
||||||
print()
|
|
||||||
print('Fetching head branch...')
|
|
||||||
os.system(f'git fetch https://github.com/{head} {head_br}')
|
|
||||||
|
|
||||||
# Merge head branch
|
|
||||||
print()
|
|
||||||
print('Merging fetch_head...')
|
|
||||||
title = info["title"].replace('"', '\\"')
|
|
||||||
os.system(f'git merge FETCH_HEAD --no-ff --no-edit '
|
|
||||||
f'-m "[PR] {upstream}#{pr} from {user} - {title}" '
|
|
||||||
f'-m "Upstream PR: https://github.com/{upstream}/pull/{pr} \n'
|
|
||||||
f'Thanks to @{user}\n\n'
|
|
||||||
f'Co-authored-by: {author["name"]} <{author["email"]}>"')
|
|
||||||
|
|
||||||
# Push
|
|
||||||
print()
|
|
||||||
print('Pushing...')
|
|
||||||
os.system('git push')
|
|
||||||
|
|
||||||
# Get commit SHA
|
# Get commit SHA
|
||||||
sha = check_output(shlex.split('git rev-parse --short HEAD')).decode().strip()
|
sha = check_output(shlex.split('git rev-parse --short HEAD')).decode().strip()
|
||||||
|
|
||||||
|
@ -78,3 +31,67 @@ Read the ["Running Updated Original Neofetch" section](https://github.com/hykilp
|
||||||
print()
|
print()
|
||||||
print('Done!')
|
print('Done!')
|
||||||
print('Comment response copied to clipboard.')
|
print('Comment response copied to clipboard.')
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
parser = argparse.ArgumentParser(description='Helper for accepting upstream pull requests')
|
||||||
|
parser.add_argument('pull', type=int, help='Pull request number')
|
||||||
|
args = parser.parse_args()
|
||||||
|
pr = args.pull
|
||||||
|
|
||||||
|
print(f'Accepting pull request {pr}...')
|
||||||
|
|
||||||
|
# Fetch original pr's information
|
||||||
|
info = requests.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}').json()
|
||||||
|
user = info['user']['login']
|
||||||
|
|
||||||
|
# Fetch commit information
|
||||||
|
commits = requests.get(f'https://api.github.com/repos/{upstream}/pulls/{pr}/commits').json()
|
||||||
|
author = commits[0]['commit']['author']
|
||||||
|
|
||||||
|
# Create commit message
|
||||||
|
title = info["title"].replace('"', '\\"')
|
||||||
|
msg = (f'-m "[PR] {upstream}#{pr} from {user} - {title}" '
|
||||||
|
f'-m "Upstream PR: https://github.com/{upstream}/pull/{pr} \n'
|
||||||
|
f'Thanks to @{user}\n\n'
|
||||||
|
f'Co-authored-by: {author["name"]} <{author["email"]}>"')
|
||||||
|
|
||||||
|
# head could be null, if the pr repo is deleted
|
||||||
|
if info['head'] is None or info['head']['repo'] is None:
|
||||||
|
print(f'Original repo is deleted. Please manually merge.')
|
||||||
|
input('Press any key to continue when the changes are made...')
|
||||||
|
|
||||||
|
# Commit with merge
|
||||||
|
print()
|
||||||
|
print('Committing merge...')
|
||||||
|
os.system(f'git commit -a {msg}')
|
||||||
|
|
||||||
|
# Automatically merge
|
||||||
|
else:
|
||||||
|
head = info['head']['repo']['full_name']
|
||||||
|
head_br = info['head']['ref']
|
||||||
|
head_lbl = info['head']['label']
|
||||||
|
print()
|
||||||
|
print('Original Pull Request Info:')
|
||||||
|
print('> State:', info['state'])
|
||||||
|
print('> Title:', info['title'])
|
||||||
|
print('> User:', user)
|
||||||
|
print('> Created:', info['created_at'])
|
||||||
|
print('> Head:', head, head_br, head_lbl)
|
||||||
|
|
||||||
|
# Fetch head branch
|
||||||
|
print()
|
||||||
|
print('Fetching head branch...')
|
||||||
|
os.system(f'git fetch https://github.com/{head} {head_br}')
|
||||||
|
|
||||||
|
# Merge head branch
|
||||||
|
print()
|
||||||
|
print('Merging fetch_head...')
|
||||||
|
os.system(f'git merge FETCH_HEAD --no-ff --no-edit {msg}')
|
||||||
|
|
||||||
|
# Push
|
||||||
|
print()
|
||||||
|
print('Pushing...')
|
||||||
|
os.system('git push')
|
||||||
|
|
||||||
|
copy_comment()
|
||||||
|
|
Loading…
Reference in a new issue