有时候GitHub社区看到好的仓库就fork一下,时间久了有些仓库过时了,有些是作者不维护了,有些和自己现在的工作内容相差太远,想删除一些无用过期的仓库,但是看了一下,没有批量操作的捷径,一个个操作感觉太麻烦,于是网上找了一下还真有对应的方法。
背景
自己的仓库 太多,一个个删除麻烦
下面就把步骤记录一下:
步骤
创建token
登录Github,按导航 “Settings/Developer settings”,切换到Tab “Personal access tokens”, 新生成一个token。选择 scope, “delelete_repo”,然后复制 token 内容。后面有用。一次性操作,建议scope尽可能设置小范围,并且操作后删除该token。
配置删除repo列表
按导航“settings/repositories”,选取并复制所有repo,粘贴到一个“repos.txt”文本文件,处理后得到一个自己准备删除的repo列表。
比如我的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| jsroads/d3 jsroads/FNT-Creator jsroads/cocos2d-js-1 jsroads/cocos2d-js jsroads/cocos-docs jsroads/ProtoBuf.js jsroads/flow jsroads/Cocos2d-x-js-3-docs jsroads/jikexueyuanSecret jsroads/cocos2d-java jsroads/JavaScriptLessons20140305 jsroads/physics-example jsroads/egf-protobuf jsroads/cocos_creator_resource
|
API文档中的删除接口(了解即可)
构建请求脚本(Example:python)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| from time import sleep import requests
headers = { "Accept": "application/vnd.github.v3+json", "Authorization": "token XXXXXXXXXXXXXXXXXXXXXX", "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)
|
然后填写 自己的 复制的token 替换 脚本内的 XXXXXXXXXXXXXXXXXXXXXX
运行脚本 等待结束
重新刷新网页:
仓库已经被删除。
删除我们创建的token
此时我们的工作完成了,上面申请的token 没用了,为了避免后面减少不必要的麻烦,还是去删除掉。
参考