Skip to content

Instantly share code, notes, and snippets.

@songtianlun
Created December 20, 2022 09:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save songtianlun/ee2fc7118b38faf9047d68b809227614 to your computer and use it in GitHub Desktop.
Save songtianlun/ee2fc7118b38faf9047d68b809227614 to your computer and use it in GitHub Desktop.
批量删除 gitee 代码仓库
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Bench delete gitee repos
# 批量删除 gitee 代码仓库
# Author: TianLun Song <tianlun.song at foxmail.com>
# License: MIT
# Path: bench-delete-gitee-repo.py
# require: requests
# usage: python3 delete.py
# install requests: pip3 install requests
import requests
import json
AccessToken = '<YOUR GITEE ACCESS TOKEN>'
BaseHost = 'https://gitee.com/api/v5'
def get_all_repos(repos=None):
if repos is None:
repos = []
page = 1
while True:
reposRaw = get_repos(page)
if len(reposRaw) == 0:
break
repos += parse_repos_raw(reposRaw)
page += 1
return repos
def get_repos(page=1):
r = requests.get(BaseHost + '/user/repos',
params={
'access_token': AccessToken,
'page': page
})
return json.loads(r.text)
def parse_repos_raw(reposRaw, rapos=None):
if rapos is None:
rapos = []
repos = []
for repo in reposRaw:
repos.append(
{
'name': repo['name'],
'owner': repo['owner']['login'],
'full_name': repo['full_name']
}
)
return repos
if __name__ == '__main__':
repos = []
print('Start to get all repos...')
repos = get_all_repos(repos)
for repo in repos:
print("'%s'," % (repo['name']))
print('Start to delete repo: ' + repo['full_name'])
r = requests.delete(BaseHost + '/repos/' + repo['full_name'],
params={
'access_token': AccessToken,
'owner': repo['owner'],
'repo': repo['name']
})
print(r.text)
print('repos count: %d' % len(repos))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment