如何批量删除GitHub仓库

947 阅读1分钟

背景

正常情况下,如果需要删除GitHub上不需要的repos,手动删除的操作有点繁琐。如果只要删除一个还能接受,手动删除多个repos就有点浪费时间了。其实我们可以通过GitHub的API接口来批量删除不需要的repos

实现

vim gitrep

添加一下信息 (你的用户名/项目名称)

shengding1214/advanced-git
shengding1214/animated-resume
shengding1214/Awesome-CV
shengding1214/axios
shengding1214/best-chinese-front-end-blogs
shengding1214/blog
shengding1214/bookKeeping

如果仓库较多可以通过github的API来批量获取

import https from 'https';
​
let chunk = ''
https.get('https://api.github.com/users/你的github用户名/repos?page=1&per_page=100', {
    headers: {
        'User-Agent': 'request'
    }
},res => {
    res.on('data', d => {
        chunk += d.toString();
    })
​
    res.on('end', () => {
        JSON.parse(chunk).forEach(item => {
            console.log(item.full_name)
        })
    })
})

GitHub上申请具有删除repos权限的token

img

vim delete.sh

cat gitrep  | while read line || [[ -n ${line} ]]
do
curl -XDELETE -H "Authorization: token $1" "https://api.github.com/repos/$line";
echo "del--- https://api.github.com/repos/$line---"
done

给脚本执行权限

chmod +x delete.sh

执行脚本(将上边生成的token当做参数传给shell)

./delete.sh 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(你的token)

控制台将打印如下信息:

image-20211112185429178