suyu/.ci/scripts/merge/apply-patches-by-label.py
Crimson-Hawk e49c779bc0 try three of importing hidden files from legacy
On branch master
 Your branch is up to date with 'origin/master'.

 Changes to be committed:
	new file:   .ci/.DS_Store
	new file:   .ci/scripts/android/build.sh
	new file:   .ci/scripts/android/eabuild.sh
	new file:   .ci/scripts/android/mainlinebuild.sh
	new file:   .ci/scripts/android/upload.sh
	new file:   .ci/scripts/clang/docker.sh
	new file:   .ci/scripts/clang/exec.sh
	new file:   .ci/scripts/clang/upload.sh
	new file:   .ci/scripts/common/post-upload.sh
	new file:   .ci/scripts/common/pre-upload.sh
	new file:   .ci/scripts/format/docker.sh
	new file:   .ci/scripts/format/exec.sh
	new file:   .ci/scripts/format/script.sh
	new file:   .ci/scripts/linux/docker.sh
	new file:   .ci/scripts/linux/exec.sh
	new file:   .ci/scripts/linux/upload.sh
	new file:   .ci/scripts/merge/apply-patches-by-label-private.py
	new file:   .ci/scripts/merge/apply-patches-by-label.py
	new file:   .ci/scripts/merge/check-label-presence.py
	new file:   .ci/scripts/merge/yuzubot-git-config.sh
	new file:   .ci/scripts/transifex/docker.sh
	new file:   .ci/scripts/windows/docker.sh
	new file:   .ci/scripts/windows/exec.sh
	new file:   .ci/scripts/windows/install-vulkan-sdk.ps1
	new file:   .ci/scripts/windows/scan_dll.py
	new file:   .ci/scripts/windows/upload.ps1
	new file:   .ci/scripts/windows/upload.sh
	new file:   .ci/templates/build-mock.yml
	new file:   .ci/templates/build-msvc.yml
	new file:   .ci/templates/build-single.yml
	new file:   .ci/templates/build-standard.yml
	new file:   .ci/templates/build-testing.yml
	new file:   .ci/templates/format-check.yml
	new file:   .ci/templates/merge-private.yml
	new file:   .ci/templates/merge.yml
	new file:   .ci/templates/mergebot-private.yml
	new file:   .ci/templates/mergebot.yml
	new file:   .ci/templates/release-download.yml
	new file:   .ci/templates/release-github.yml
	new file:   .ci/templates/release-private-tag.yml
	new file:   .ci/templates/release-universal.yml
	new file:   .ci/templates/retrieve-artifact-source.yml
	new file:   .ci/templates/retrieve-master-source.yml
	new file:   .ci/templates/sync-source.yml
	new file:   .ci/yuzu-mainline-step1.yml
	new file:   .ci/yuzu-mainline-step2.yml
	new file:   .ci/yuzu-patreon-step1.yml
	new file:   .ci/yuzu-patreon-step2.yml
	new file:   .ci/yuzu-repo-sync.yml
	new file:   .ci/yuzu-verify.yml
	new file:   .codespellrc
	new file:   .git-blame-ignore-revs
	new file:   .gitattributes
	new file:   .gitignore
	new file:   .gitmodules
	new file:   .reuse/dep5
2024-03-05 20:20:29 +08:00

39 lines
1.3 KiB
Python

# SPDX-FileCopyrightText: 2019 yuzu Emulator Project
# SPDX-License-Identifier: GPL-2.0-or-later
# Download all pull requests as patches that match a specific label
# Usage: python apply-patches-by-label.py <Label to Match>
import json, requests, subprocess, sys, traceback
tagline = sys.argv[2]
def check_individual(labels):
for label in labels:
if (label["name"] == sys.argv[1]):
return True
return False
def do_page(page):
url = f"https://api.github.com/repos/yuzu-emu/yuzu/pulls?page={page}"
response = requests.get(url)
response.raise_for_status()
if (response.ok):
j = json.loads(response.content)
if j == []:
return
for pr in j:
if (check_individual(pr["labels"])):
pn = pr["number"]
print(f"Matched PR# {pn}")
print(subprocess.check_output(["git", "fetch", "https://github.com/yuzu-emu/yuzu.git", f"pull/{pn}/head:pr-{pn}", "-f", "--no-recurse-submodules"]))
print(subprocess.check_output(["git", "merge", "--squash", f"pr-{pn}"]))
print(subprocess.check_output(["git", "commit", f"-m\"Merge {tagline} PR {pn}\""]))
try:
for i in range(1,10):
do_page(i)
except:
traceback.print_exc(file=sys.stdout)
sys.exit(-1)