Coverage for kwasa\libs\delete_repos.py: 0%

23 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-14 18:06 +0300

1import requests 

2from dotenv import load_dotenv 

3import os 

4 

5load_dotenv() 

6 

7 

8token = os.environ.get("") 

9 

10username = os.environ.get("") 

11 

12 

13def delete_repositories(repos: list[str] | str = []) -> None: 

14 api_url = "https://api.github.com/repos/{}/{}" 

15 headers = { 

16 "Authorization": f"token {token}", 

17 "Accept": "application/vnd.github.v3+json", 

18 } 

19 

20 if isinstance(repos, list): 

21 for repo in repos_to_delete: 

22 delete_repo(api_url, repo, headers) 

23 else: 

24 delete_repo(api_url, repo, headers) 

25 

26 

27def delete_repo(api_url: str, repo: str, headers: dict[str, str]) -> None: 

28 repo_url = api_url.format(username, repo) 

29 response = requests.delete(repo_url, headers=headers) 

30 

31 if response.status_code == 204: 

32 print(f"Successfully deleted: {repo}") 

33 else: 

34 print(f"Failed to delete {repo}. Status code: {response.status_code}") 

35 print(response.json()) 

36 

37 

38if __name__ == "__main__": 

39 repos_to_delete = [ 

40 "example", 

41 ] 

42 delete_repositories(repos_to_delete)