创建批量删除仓库的token
- 登录Github,按导航
Settings
---> Developer settings
---> Personal access tokens
---> 点击Generate new token按钮
---> 勾选delete_repo
, 生成一个token(建议尽可能设置小范围,并且操作完成后立即删除该token
)
删除Python脚本如下
from time import sleep
import requests
# 这里将xxxxxxxx替换为生成的token
headers = {
"Accept": "application/vnd.github.v3+json",
"Authorization": "token xxxxxxxx",
"X-OAuth-Scopes": "repo"
}
with open('./repos.txt', 'r', encoding='utf-8') as f:
data = f.readlines()
url = "https://api.github.com/repos/{}/{}"
urls = []
for line in data:
name, repo = line.strip().split("/")
urls.append(url.format(name, repo))
for l in urls:
requests.delete(url=l, headers=headers)
sleep(2)
- 将上述脚本保存到
deleteRepos.py
(文件名可以随便取)文件中
构建要删除的仓库列表文件
- 构建仓库列表文件,并保存为
.txt
文件,文件格式如下:
username/repo1
username/repo2
username/repo3
- 将仓库列表文件保存为
repo.txt
文件,如果不是此名称记得调整脚本
开始批量删除
- 将
deleteRepos.py
文件和repos.txt
文件放在同一个文件夹xxx内
- cd到xxx文件夹内
- 执行脚本
python3 ./deleteRepos.py
,等待脚本执行完毕即可
补充:利用正则表达式快速过滤出要删除的仓库列表
- 我使用的是
Sublime Text
工具
- 按导航
Settings - Repositories
,拷贝Repositories下的仓库名称,如下图
- 利用正则快速过滤出要删除的仓库列表
- 开启正则开关
- 在
Find What:
中设置正则表达式\s(username.*?)\s(.*?\n.*?\n)
,关于正则表达式的含义请参考这篇文章
- 在
Replace With:
中设置正则表达式$1
- 点击
Replace All
按钮
- 过滤后的效果如下,
部分没有过滤到的手动调整一下