🚀 Motorgit
🌟 Overview
Motorgit is a smart tool designed to automate GitHub repository creations and updates with a single command. It simplifies the workflow for developers by integrating common tasks into a streamlined command-line interface.
📋 Table of Contents
✨ Features
- 🆕 Create New Repositories: Quickly create new GitHub repositories from the command line.
- 🔄 Update Repositories: Easily update existing repositories with a single command.
- ⚡ Efficient Workflow: Automates repetitive tasks, saving time and reducing errors.
- 🔍 Tab Completion: Support for Bash, Zsh, and Fish shell completion.
- 🔐 Secure Credentials: Store GitHub credentials securely using system keyring.
⚙️ Installation
📦 Install from pip
To install Motorgit using pip, run:
pip install motorgit
🔑 Configure GitHub Credentials
Motorgit provides multiple secure ways to configure your GitHub credentials:
1. Interactive Setup Wizard (Recommended)
Run the setup wizard to configure your credentials interactively:
motorgit setup
This will prompt for your GitHub username, email, and access token, and store them securely using your system's credential store.
2. Manual Login/Logout
You can also use the login/logout commands to manage your credentials:
# Store credentials securely
motorgit login
# Remove stored credentials
motorgit logout
Note: Use
motorgit setupfor first-time or full configuration (including credentials and other settings). Usemotorgit loginif you only want to update your GitHub credentials without changing other settings.
| Command | Prompts for Credentials | Stores Credentials | Configures Other Settings | Intended Use |
|---|---|---|---|---|
motorgit setup |
Yes | Yes | Yes | First-time or full setup |
motorgit login |
Yes | Yes | No | Update credentials only |
3. Configuration Management
View or update configuration settings:
# View all configuration
motorgit config
# View specific configuration
motorgit config github_username
# Update configuration
motorgit config github_username yourusername
4. Environment Variables (Legacy Method)
For backward compatibility or CI/CD environments, you can still use environment variables. Add the following lines to your .bashrc or .zshrc file:
export GITHUB_ACCESSTOKEN='your_personal_access_token'
export GITHUB_USERNAME='your_github_username'
export GITHUB_USEREMAIL='your_email@example.com'
After adding the lines, reload your shell configuration:
source ~/.bashrc # For bash users
source ~/.zshrc # For zsh users
🔧 Install Locally
To install Motorgit locally from the source code, follow these steps:
1. Clone the repository:
git clone https://github.com/AyushGupta0202/motorgit.git
cd motorgit
2. Install in editable mode:
pip install --editable .
📚 Usage
Usage 🆕 Create a New Repository
To create a new repository, use the following command:
motorgit createNewRepo
This command has optional parameters for folder name and whether it should be made as a private repository or not. And then it will create a new repository on GitHub with the specified settings.
Example
motorgit createNewRepo [-n foldername] [-p privaterepo]
🔄 Update Repository
To update an existing repository with a commit message, use:
motorgit updateRepo -m "Motorgit Commit"
This command will add changes to the repository and commit them with the provided message.
Example
motorgit updateRepo [-m commitmessage] [-b branchname]
🔍 Shell Completion
Motorgit supports shell tab completion for Bash, Zsh, and Fish using Click's built-in shell completion system. To enable shell completion, follow the instructions for your shell:
Bash
Add this to your ~/.bashrc:
eval "$(_MOTORGIT_COMPLETE=bash_source motorgit)"
Or, to generate and source a static script:
_MOTORGIT_COMPLETE=bash_source motorgit > ~/.motorgit-complete.bash
. ~/.motorgit-complete.bash
Zsh
Add this to your ~/.zshrc:
eval "$(_MOTORGIT_COMPLETE=zsh_source motorgit)"
Or, to generate and source a static script:
_MOTORGIT_COMPLETE=zsh_source motorgit > ~/.motorgit-complete.zsh
. ~/.motorgit-complete.zsh
Fish
Add this to ~/.config/fish/completions/motorgit.fish:
_MOTORGIT_COMPLETE=fish_source motorgit > ~/.config/fish/completions/motorgit.fish
After modifying your shell configuration, start a new shell session or source the relevant file to activate completion.
For more details, see the Click Shell Completion documentation.
🤝 Contribution
Contributions are welcome! Please open an issue or submit a pull request on GitHub.
1. 🍴 Fork the repository
2. 🌿 Create a new branch: git checkout -b my-new-feature
3. 💾 Commit your changes: git commit -am 'Add some feature'
4. 📤 Push to the branch: git push origin my-new-feature
5. 🔁 Create a new Pull Request
or after cloning use motorgit commands itself!
📜 License
Motorgit is licensed under the MIT License. See the LICENSE_MOTORGIT.txt file for more details.
Note: The license file was renamed from LICENSE.txt to LICENSE_MOTORGIT.txt to avoid PyPI upload metadata issues. This ensures smooth uploads and full license compliance.
👤 Author
Ayush Gupta
For any inquiries, feel free to contact: ayushg430@gmail.com
Made with ❤️ using click
Metadata
Release files for motorgit 1.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| motorgit-1.0.2.tar.gz | 4.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| motorgit-1.0.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 8.2 kB
Release files / motorgit-1.0.2.tar.gz
| Download URL | motorgit-1.0.2.tar.gz |
|---|---|
| Size | 4.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
864f25f57861192038418b6bc1c84bd8bf6eb3d7df5562c71cc40db498bf546c
|
|
BLAKE2b-256 checksum How to use checksums |
25e36feed84bf9a053f7ec43369c9b68e379a73fbbd76e99f4d0d96e9815ee27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.6
|
Release files / motorgit-1.0.2-py3-none-any.whl
| Download URL | motorgit-1.0.2-py3-none-any.whl |
|---|---|
| Size | 4.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
730b4be99c5ed636faabc843e7df931f17d8122e8fd5be75edbf3794d79cc8cd
|
|
BLAKE2b-256 checksum How to use checksums |
a7ae53ea5e74a14a58547f7377f45d66ebebdf2d0708e70a164efbc1adb06b02
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.9.6
|