fork-purger 1.0.1

Creator: bradpython12

Last updated:

Add to Cart

Description:

forkpurger 1.0.1

Fork Purger
>> Delete all of your forked repositories on Github <<



Installation


Install using pip:
pip install fork-purger



Exploration


Create and collect your Github user access token.


Inspect the --help menu. Run:
fork-purger --help

This will print the following:
+-+-+-+-+ +-+-+-+-+-+-+
|F|o|r|k| |P|u|r|g|e|r|
+-+-+-+-+ +-+-+-+-+-+-+

Usage: fork-purger [OPTIONS]

Options:
--username TEXT Your Github username. [required]
--token TEXT Your Github access token with delete permission.
[required]
--debug / --no-debug See full traceback in case of HTTP error.
--delete Delete the forked repos.
--help Show this message and exit.



By default, fork-purger runs in dry mode and doesn't do anything other than just listing the repositories that are about to be deleted. Run:
fork-purger --username <gh-username> --token <gh-access-token>

You'll see the following output:
+-+-+-+-+ +-+-+-+-+-+-+
|F|o|r|k| |P|u|r|g|e|r|
+-+-+-+-+ +-+-+-+-+-+-+

These forks will be deleted:
=============================

https://api.github.com/repos/<gh-username>/ddosify
https://api.github.com/repos/<gh-username>/delete-github-forks
https://api.github.com/repos/<gh-username>/dependabot-core
https://api.github.com/repos/<gh-username>/fork-purger



To delete the listed repositories, run the CLI with the --delete flag:
fork-purger --username <gh-username> --token <gh-access-token> --delete

The output should look similar to this:
+-+-+-+-+ +-+-+-+-+-+-+
|F|o|r|k| |P|u|r|g|e|r|
+-+-+-+-+ +-+-+-+-+-+-+

Deleting forked repos:
=======================

Deleting... https://api.github.com/repos/<gh-username>/ddosify
Deleting... https://api.github.com/repos/<gh-username>/delete-github-forks
Deleting... https://api.github.com/repos/<gh-username>/dependabot-core
Deleting... https://api.github.com/repos/<gh-username>/fork-purger



In case of exceptions, if you need more information, you can run the CLI with the --debug flag. This will print out the Python stack trace on the stdout.
fork-purger --username <gh-username> --token <gh-access-token> --delete --debug



Architecture
Internally, fork-purger leverages Python's coroutine objects to collect the URLs of the forked repositories from GitHub and delete them asynchronously. Asyncio coordinates this workflow in a producer-consumer orientation which is choreographed in the orchestrator function. The following diagram can be helpful to understand how the entire workflow operates:

Here, the square boxes are async functions and each one of them is dedicated to carrying out a single task.
In the first step, an async function calls a GitHub GET API to collect the URLs of the forked repositories. The enqueue function then aggregates those URLs and puts them in a queue. The dequeue function pops the URLs from the queue and sends them to multiple worker functions to achieve concurrency. Finally, the worker functions leverage a DELETE API to purge the forked repositories.

✨ 🍰 ✨

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.