git-profile-cli


Namegit-profile-cli JSON
Version 1.0.2 PyPI version JSON
download
home_pageNone
SummaryGit-Profile-cli is a CLI tool that simplifies switching between multiple Git profiles—user names, emails, and SSH keys—ideal for developers working on various projects or with multiple organizations.
upload_time2024-10-13 15:49:48
maintainerNone
docs_urlNone
authorNone
requires_python>=3.6
licenseMIT License Copyright (c) [2024] [Walid Karray] Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords git profile management cli
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # git-profile-cli

git-profile-cli is a command-line tool that simplifies the management of multiple Git profiles. It allows developers to effortlessly switch between different Git configurations, including user names, email addresses, and SSH keys. This tool is perfect for developers who work on various projects or contribute to multiple organizations.

## Features

- Manage multiple Git profiles with ease
- Switch between profiles quickly
- Automatically update Git global configuration
- Configure SSH keys for different profiles
- Interactive profile selection and management
- Extensible and modular codebase

## Installation

### From PyPI (Recommended)

```bash
pip install git-profile-cli
```

### From Source

1. Clone the repository:
   ```bash
   git clone https://github.com/tux86/git-profile-cli.git
   cd git-profile-cli
   ```

2. Install the package:
   ```bash
   pip install .
   ```

## Usage

After installation, you can use Git profile cli with the `git-profile` command:

### List all profiles

```bash
git-profile list
```

### Display the current profile

```bash
git-profile current
```

### Add a new profile

```bash
git-profile add
```

You'll be prompted to enter the profile details interactively.

### Modify an existing profile

```bash
git-profile modify <profile_name>
```

### Select a profile

```bash
git-profile [select] [profile_name]
```

You can use this command in several ways:
- `git-profile select work`: Directly selects the 'work' profile
- `git-profile select`: Prompts you to choose a profile interactively
- `git-profile`: Same as `git-profile select`, prompts you to choose a profile interactively

Examples:
```bash
git-profile select work  # Directly selects the 'work' profile
git-profile select  # Prompts you to choose a profile interactively
git-profile  # Also prompts you to choose a profile interactively
```

Note: Running `git-profile` without any command is equivalent to `git-profile select` and will prompt you to choose a profile interactively.

### Delete a profile

```bash
git-profile delete
```

You'll be prompted to select the profile to delete.

### Specify a custom configuration file

You can use a custom configuration file by using the `--config` or `-c` option:

```bash
git-profile -c /path/to/custom/config.yaml <command>
```

## Configuration

Git-Profile-Cli uses a YAML configuration file to store profile information. By default, it's located at `~/.git-profile/config.yaml`. Each profile in the configuration file has the following structure:

```yaml
profiles:
  - name: work
    user_name: John Doe
    user_email: john.doe@company.com
    ssh_key_path: ~/.ssh/id_rsa_work
  - name: personal
    user_name: John Doe
    user_email: john.doe@gmail.com
    ssh_key_path: ~/.ssh/id_rsa_personal
```

## Development

To set up the development environment:

1. Clone the repository
2. Create a virtual environment:
   ```bash
   python -m venv venv
   source venv/bin/activate  # On Windows use `venv\Scripts\activate`
   ```
3. Install development dependencies:
   ```bash
   pip install -r requirements.txt
   ```

### Running Tests

To run tests, use:

```bash
python -m unittest discover tests
```

### Building the Package

To build the package, use:

```bash
python -m build
```

## Contributing

Contributions are welcome! Here are some ways you can contribute to this project:

1. Report bugs and suggest features by opening issues.
2. Submit pull requests with bug fixes or new features.
3. Improve documentation or add examples.
4. Share the project and help others.

## Authors

* **Walid Karray** - [tux86](https://github.com/tux86)

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- Thanks to all contributors who have helped to improve this project.
- Inspired by the need for easy management of multiple Git profiles.
- Hat tip to anyone whose code was used as inspiration.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "git-profile-cli",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "git, profile, management, cli",
    "author": null,
    "author_email": "Walid Karray <walid.karray@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/73/ee/dc7238b609f8d6c26814cd15c5e3f5aa39267ed3b6a71b5b190b2ef37efa/git_profile_cli-1.0.2.tar.gz",
    "platform": null,
    "description": "# git-profile-cli\n\ngit-profile-cli is a command-line tool that simplifies the management of multiple Git profiles. It allows developers to effortlessly switch between different Git configurations, including user names, email addresses, and SSH keys. This tool is perfect for developers who work on various projects or contribute to multiple organizations.\n\n## Features\n\n- Manage multiple Git profiles with ease\n- Switch between profiles quickly\n- Automatically update Git global configuration\n- Configure SSH keys for different profiles\n- Interactive profile selection and management\n- Extensible and modular codebase\n\n## Installation\n\n### From PyPI (Recommended)\n\n```bash\npip install git-profile-cli\n```\n\n### From Source\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/tux86/git-profile-cli.git\n   cd git-profile-cli\n   ```\n\n2. Install the package:\n   ```bash\n   pip install .\n   ```\n\n## Usage\n\nAfter installation, you can use Git profile cli with the `git-profile` command:\n\n### List all profiles\n\n```bash\ngit-profile list\n```\n\n### Display the current profile\n\n```bash\ngit-profile current\n```\n\n### Add a new profile\n\n```bash\ngit-profile add\n```\n\nYou'll be prompted to enter the profile details interactively.\n\n### Modify an existing profile\n\n```bash\ngit-profile modify <profile_name>\n```\n\n### Select a profile\n\n```bash\ngit-profile [select] [profile_name]\n```\n\nYou can use this command in several ways:\n- `git-profile select work`: Directly selects the 'work' profile\n- `git-profile select`: Prompts you to choose a profile interactively\n- `git-profile`: Same as `git-profile select`, prompts you to choose a profile interactively\n\nExamples:\n```bash\ngit-profile select work  # Directly selects the 'work' profile\ngit-profile select  # Prompts you to choose a profile interactively\ngit-profile  # Also prompts you to choose a profile interactively\n```\n\nNote: Running `git-profile` without any command is equivalent to `git-profile select` and will prompt you to choose a profile interactively.\n\n### Delete a profile\n\n```bash\ngit-profile delete\n```\n\nYou'll be prompted to select the profile to delete.\n\n### Specify a custom configuration file\n\nYou can use a custom configuration file by using the `--config` or `-c` option:\n\n```bash\ngit-profile -c /path/to/custom/config.yaml <command>\n```\n\n## Configuration\n\nGit-Profile-Cli uses a YAML configuration file to store profile information. By default, it's located at `~/.git-profile/config.yaml`. Each profile in the configuration file has the following structure:\n\n```yaml\nprofiles:\n  - name: work\n    user_name: John Doe\n    user_email: john.doe@company.com\n    ssh_key_path: ~/.ssh/id_rsa_work\n  - name: personal\n    user_name: John Doe\n    user_email: john.doe@gmail.com\n    ssh_key_path: ~/.ssh/id_rsa_personal\n```\n\n## Development\n\nTo set up the development environment:\n\n1. Clone the repository\n2. Create a virtual environment:\n   ```bash\n   python -m venv venv\n   source venv/bin/activate  # On Windows use `venv\\Scripts\\activate`\n   ```\n3. Install development dependencies:\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n### Running Tests\n\nTo run tests, use:\n\n```bash\npython -m unittest discover tests\n```\n\n### Building the Package\n\nTo build the package, use:\n\n```bash\npython -m build\n```\n\n## Contributing\n\nContributions are welcome! Here are some ways you can contribute to this project:\n\n1. Report bugs and suggest features by opening issues.\n2. Submit pull requests with bug fixes or new features.\n3. Improve documentation or add examples.\n4. Share the project and help others.\n\n## Authors\n\n* **Walid Karray** - [tux86](https://github.com/tux86)\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- Thanks to all contributors who have helped to improve this project.\n- Inspired by the need for easy management of multiple Git profiles.\n- Hat tip to anyone whose code was used as inspiration.\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) [2024] [Walid Karray]  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Git-Profile-cli is a CLI tool that simplifies switching between multiple Git profiles\u2014user names, emails, and SSH keys\u2014ideal for developers working on various projects or with multiple organizations.",
    "version": "1.0.2",
    "project_urls": {
        "Bug Tracker": "https://github.com/tux86/git-profile-cli/issues",
        "Homepage": "https://github.com/tux86/git-profile-cli"
    },
    "split_keywords": [
        "git",
        " profile",
        " management",
        " cli"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7333031b51b336b5d106413833d9c90ccf8392dc0d3759f13fb770e4251f003a",
                "md5": "074053cb37e0b34277e648170488c5c1",
                "sha256": "c97b04d306c77da5e6620b7f41ca574b1aec2a921aefbe82f70831d49021d5eb"
            },
            "downloads": -1,
            "filename": "git_profile_cli-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "074053cb37e0b34277e648170488c5c1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 8523,
            "upload_time": "2024-10-13T15:49:47",
            "upload_time_iso_8601": "2024-10-13T15:49:47.406837Z",
            "url": "https://files.pythonhosted.org/packages/73/33/031b51b336b5d106413833d9c90ccf8392dc0d3759f13fb770e4251f003a/git_profile_cli-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "73eedc7238b609f8d6c26814cd15c5e3f5aa39267ed3b6a71b5b190b2ef37efa",
                "md5": "10dcf6dcb0d10f1cbf85e8795f7c2906",
                "sha256": "861ebe537f1291c3e06952373cb7d55134c397f84c43ae8746e33602169be9d7"
            },
            "downloads": -1,
            "filename": "git_profile_cli-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "10dcf6dcb0d10f1cbf85e8795f7c2906",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 9650,
            "upload_time": "2024-10-13T15:49:48",
            "upload_time_iso_8601": "2024-10-13T15:49:48.734255Z",
            "url": "https://files.pythonhosted.org/packages/73/ee/dc7238b609f8d6c26814cd15c5e3f5aa39267ed3b6a71b5b190b2ef37efa/git_profile_cli-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-10-13 15:49:48",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "tux86",
    "github_project": "git-profile-cli",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "git-profile-cli"
}
        
Elapsed time: 9.80497s