Skip to content

Instantly share code, notes, and snippets.

@wolverian
Created November 19, 2019 14:37
Show Gist options
  • Save wolverian/ca7bd335120fd8cd2e3f11eba2e1d199 to your computer and use it in GitHub Desktop.
Save wolverian/ca7bd335120fd8cd2e3f11eba2e1d199 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import argparse
from typing import List
import github
def delete_repos(
access_token: str, whitelist: List[str] = [], repo_type="owner", doit=False
):
client = github.Github(access_token)
repos = client.get_user().get_repos(type=repo_type)
for repo in repos:
if repo.name in whitelist:
print(f"skip {repo.name}")
continue
print(f"delete {repo.name}")
if doit:
repo.delete()
def comma_separated(flag: str) -> List[str]:
return flag.split(",")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("--access-token", required=True)
parser.add_argument("--whitelist", default=[], type=comma_separated)
parser.add_argument("--type", default="owner")
parser.add_argument("--doit", action="store_true")
args = parser.parse_args()
delete_repos(
access_token=args.access_token,
whitelist=args.whitelist,
repo_type=args.type,
doit=args.doit,
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment