A tool for managing GitHub repositories, available in both a desktop (GTK-based) and web (Flask-based) version. It allows users to fetch, transfer, or delete their repositories with ease, leveraging the GitHub API.
GitHub Repo Manager is an open-source application available both as a desktop app and a web app. It is designed to simplify bulk repository management tasks on GitHub, such as transferring repositories to new owners or deleting repositories. The project uses the GitHub API to perform these operations.
- Fetch Repositories: Retrieve a list of all repositories associated with your GitHub account.
- Transfer Ownership: Transfer selected repositories to another GitHub user.
- Delete Repositories: Delete selected repositories from your account.
- Cross-Platform: Available as a GTK desktop app and a Flask web app.
- Light/Dark Mode: (Desktop version) Toggle between light and dark themes.
The desktop version is built with Python and GTK 4 and provides a graphical user interface for managing repositories.
- Personal Access Token: Enter your GitHub PAT to authenticate.
- Username: Input your GitHub username to fetch repositories.
- Transfer Repositories: Select repositories to transfer ownership.
- Delete Repositories: Select repositories to delete from your account.
-
Personal Access Token Setup:
- Go to GitHub and generate a Personal Access Token with
repo
anddelete_repo
scopes.
- Go to GitHub and generate a Personal Access Token with
-
Installation: See the Installation section below for instructions on setting up the desktop app.
-
Running the Desktop App: After installation, run the app using
python3 main.py
.
The web version provides the same functionality as the desktop app but is accessible via a web browser. It is built with Flask and allows users to manage their GitHub repositories through a web interface.
- Fetch Repositories: Enter your GitHub username and token to fetch repositories.
- Transfer Repositories: Transfer a repository to another GitHub user.
- API-based Operations: Transfer and delete repositories via GitHub API using POST requests.
/get_repos
: POST request to fetch repositories./transfer
: POST request to transfer a repository.
- Python 3.x
- GTK 4 and LibAdwaita (for GUI components)
-
Clone the repository:
git clone https://github.com/linxford/github-repo-manager.git cd github-repo-manager
-
Install dependencies:
pip install requests PyGObject
-
Run the desktop app:
python3 main.py
- Python 3.x
- Flask (for the web framework)
- GitHub API Personal Access Token (PAT)
-
Clone the repository:
git clone https://github.com/linxford/github-repo-manager.git cd github-repo-manager
-
Install dependencies:
pip install requests Flask
-
Run the web app:
python3 app.py
-
Access the app: Open your web browser and go to
http://127.0.0.1:5000
to interact with the web-based version of the GitHub Repo Manager.
If you'd like to deploy the Flask app to a live server, you can use platforms like Heroku or PythonAnywhere. Follow the respective platform's guidelines for deploying Flask applications.
We welcome contributions from the community to help improve GitHub Repo Manager! Here's how you can get involved:
-
Fork the Repository: Click on "Fork" at the top right of this page.
-
Clone Your Fork: Clone the repository to your local machine.
git clone https://github.com/linxford/github-repo-manager.git cd github-repo-manager
-
Create a New Branch: For any new feature or bug fix, create a new branch.
git checkout -b feature/my-feature
-
Make Your Changes: Edit the files and implement your feature or fix.
-
Commit and Push: Once you've made your changes, commit them and push to your forked repository.
git add . git commit -m "Added a new feature" git push origin feature/my-feature
-
Submit a Pull Request: Go to the original repository and open a Pull Request with a description of your changes.
- Code Style: Follow Python's PEP8 guidelines.
- Commit Messages: Provide clear and descriptive commit messages.
- Testing: Ensure that your code works and doesn't break any existing features.
- Documentation: If you add new features, update the documentation accordingly.
This project is licensed under the MIT License. See the LICENSE file for more details.