| | |
| | from huggingface_hub import HfApi |
| | import argparse |
| | import os |
| |
|
| | api = HfApi() |
| |
|
| | GOD_TOKEN = os.environ.get("GOD_TOKEN") |
| |
|
| | def close_or_merge_pr(pr_link, merge_all_open): |
| | |
| | repo_id = pr_link.replace("https://huggingface.co/", "") |
| | repo_id = repo_id.replace("https://hf.co/", "") |
| | repo_id = repo_id.replace("hf.co/", "") |
| | repo_id = repo_id.replace("huggingface.co/", "") |
| |
|
| | discussion_num = int(repo_id.split("/")[-1]) |
| | repo_id = "/".join(repo_id.split("/")[:2]) |
| | discussion = api.get_discussion_details(repo_id, discussion_num=discussion_num) |
| |
|
| | if discussion.status == "merged": |
| | print(f"PR: {pr_link} was merged") |
| | elif discussion.status == "closed": |
| | print(f"PR: {pr_link} was closed") |
| | elif discussion.status == "open": |
| | print(f"PR: {pr_link} was left open") |
| |
|
| | if merge_all_open: |
| | api.merge_pull_request(repo_id, discussion_num, token=GOD_TOKEN) |
| |
|
| | if __name__ == "__main__": |
| | parser = argparse.ArgumentParser(description="Close or merge a pull request on the Hugging Face Hub") |
| | parser.add_argument("--pr_link", type=str, required=True, help="Link to the pull request") |
| | parser.add_argument("--merge_all_open", action="store_true", help="Merge all open pull requests") |
| |
|
| | args = parser.parse_args() |
| |
|
| | close_or_merge_pr(args.pr_link, args.merge_all_open) |
| |
|