# Penify CLI
Penify CLI is a command-line tool for managing Git hooks, generating documentation, and streamlining the development workflow. It provides functionality to install and uninstall Git post-commit hooks, generate documentation for files or folders, perform Git commits with automated message generation, and manage authentication.
## Installation
You can install Penify CLI using pip:
```bash
pip install penify-cli
```
## Usage
Penify CLI provides several subcommands for different functionalities:
### Login
To log in and obtain an API token:
```bash
penify-cli login
```
This command will open a browser window for authentication. After successful login, the API key will be saved locally for future use.
### Install Git Hook
To install the Git post-commit hook:
```bash
penify-cli install-hook -l /path/to/git/repo
```
- `-l, --location`: The path to the Git repository where you want to install the hook.
### Uninstall Git Hook
To uninstall the Git post-commit hook:
```bash
penify-cli uninstall-hook -l /path/to/git/repo
```
- `-l, --location`: The path to the Git repository from which you want to uninstall the hook.
### Generate Documentation
To generate documentation for files or folders:
```bash
penify-cli doc-gen [options]
```
Options:
- `-fl, --file_path`: Path to a specific file for which to generate documentation.
- `-cf, --complete_folder_path`: Path to a folder for which to generate documentation for all files.
- `-gf, --git_folder_path`: Path to a Git repository to generate documentation for modified files. Defaults to the current directory.
### Commit Code
To commit code with an automatically generated commit message:
```bash
penify-cli commit -gf /path/to/git/repo [-m "Optional message"] [-e True/False]
```
- `-gf, --git_folder_path`: Path to the Git repository. Defaults to the current directory.
- `-m, --message`: Optional commit message. If not provided, a default message will be used.
- `-e, --terminal`: Set to "True" to open the terminal for editing the commit message. Defaults to "False".
## Authentication
Penify CLI uses an API token for authentication. The token is obtained and used in the following priority:
1. Command-line argument: `-t` or `--token`
2. Environment variable: `PENIFY_API_TOKEN`
3. Stored credentials: `~/.penify` file (created after successful login)
If no token is available, you'll be prompted to log in or provide a token.
## Environment Variables
- `PENIFY_API_TOKEN`: You can set this environment variable with your API token to avoid passing it as an argument each time.
## Development
To set up the development environment:
1. Clone the repository:
```bash
git clone https://github.com/SingularityX-ai/penify-cli.git
```
2. Install the package in editable mode:
```bash
pip install -e .
```
## License
This project is licensed under the MIT License.
## Author
Suman Saurabh (ss.sumansaurabh92@gmail.com)
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## Issues
If you encounter any problems or have suggestions, please file an issue on the [GitHub repository](https://github.com/SingularityX-ai/penify-cli/issues).
## Support
For automated API Documentation, Architecture Documentation, Code Documentation, Pull Request Documentation, or if you need a demo, please join our [Discord support channel](https://discord.gg/wqrc8JeV).
Raw data
{
"_id": null,
"home_page": "https://github.com/SingularityX-ai/penify-cli",
"name": "penify-cli",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Suman Saurabh",
"author_email": "ss.sumansaurabh92@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/1a/d7/ea4a7d39c08fe11b897bacb917eb87d4777e5cc0c556e40a8e30aa0ca408/penify_cli-0.1.5.tar.gz",
"platform": null,
"description": "# Penify CLI\n\nPenify CLI is a command-line tool for managing Git hooks, generating documentation, and streamlining the development workflow. It provides functionality to install and uninstall Git post-commit hooks, generate documentation for files or folders, perform Git commits with automated message generation, and manage authentication.\n\n## Installation\n\nYou can install Penify CLI using pip:\n\n```bash\npip install penify-cli\n```\n\n## Usage\n\nPenify CLI provides several subcommands for different functionalities:\n\n### Login\n\nTo log in and obtain an API token:\n\n```bash\npenify-cli login\n```\n\nThis command will open a browser window for authentication. After successful login, the API key will be saved locally for future use.\n\n### Install Git Hook\n\nTo install the Git post-commit hook:\n\n```bash\npenify-cli install-hook -l /path/to/git/repo\n```\n\n- `-l, --location`: The path to the Git repository where you want to install the hook.\n\n### Uninstall Git Hook\n\nTo uninstall the Git post-commit hook:\n\n```bash\npenify-cli uninstall-hook -l /path/to/git/repo\n```\n\n- `-l, --location`: The path to the Git repository from which you want to uninstall the hook.\n\n### Generate Documentation\n\nTo generate documentation for files or folders:\n\n```bash\npenify-cli doc-gen [options]\n```\n\nOptions:\n- `-fl, --file_path`: Path to a specific file for which to generate documentation.\n- `-cf, --complete_folder_path`: Path to a folder for which to generate documentation for all files.\n- `-gf, --git_folder_path`: Path to a Git repository to generate documentation for modified files. Defaults to the current directory.\n\n### Commit Code\n\nTo commit code with an automatically generated commit message:\n\n```bash\npenify-cli commit -gf /path/to/git/repo [-m \"Optional message\"] [-e True/False]\n```\n\n- `-gf, --git_folder_path`: Path to the Git repository. Defaults to the current directory.\n- `-m, --message`: Optional commit message. If not provided, a default message will be used.\n- `-e, --terminal`: Set to \"True\" to open the terminal for editing the commit message. Defaults to \"False\".\n\n## Authentication\n\nPenify CLI uses an API token for authentication. The token is obtained and used in the following priority:\n\n1. Command-line argument: `-t` or `--token`\n2. Environment variable: `PENIFY_API_TOKEN`\n3. Stored credentials: `~/.penify` file (created after successful login)\n\nIf no token is available, you'll be prompted to log in or provide a token.\n\n## Environment Variables\n\n- `PENIFY_API_TOKEN`: You can set this environment variable with your API token to avoid passing it as an argument each time.\n\n## Development\n\nTo set up the development environment:\n\n1. Clone the repository:\n ```bash\n git clone https://github.com/SingularityX-ai/penify-cli.git\n ```\n\n2. Install the package in editable mode:\n ```bash\n pip install -e .\n ```\n\n## License\n\nThis project is licensed under the MIT License.\n\n## Author\n\nSuman Saurabh (ss.sumansaurabh92@gmail.com)\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## Issues\n\nIf you encounter any problems or have suggestions, please file an issue on the [GitHub repository](https://github.com/SingularityX-ai/penify-cli/issues).\n\n## Support\n\nFor automated API Documentation, Architecture Documentation, Code Documentation, Pull Request Documentation, or if you need a demo, please join our [Discord support channel](https://discord.gg/wqrc8JeV).\n",
"bugtrack_url": null,
"license": null,
"summary": "A penify cli tool to generate Documentation, Commit-summary and Hooks to automate git workflows.",
"version": "0.1.5",
"project_urls": {
"Homepage": "https://github.com/SingularityX-ai/penify-cli"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "9a386dc5388c8606bdea7fdc301ad2f1097a89ef96bb1fa1015d889c9fa70d19",
"md5": "5ac79d94ba462626444f638385f2fc84",
"sha256": "f30831fb0f94f576e8254243d1e406ec8343755056c5eec2b827d1751f555e13"
},
"downloads": -1,
"filename": "penify_cli-0.1.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "5ac79d94ba462626444f638385f2fc84",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 15759,
"upload_time": "2024-10-21T03:06:39",
"upload_time_iso_8601": "2024-10-21T03:06:39.907011Z",
"url": "https://files.pythonhosted.org/packages/9a/38/6dc5388c8606bdea7fdc301ad2f1097a89ef96bb1fa1015d889c9fa70d19/penify_cli-0.1.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1ad7ea4a7d39c08fe11b897bacb917eb87d4777e5cc0c556e40a8e30aa0ca408",
"md5": "af73da925242f435dce5a6d6fe1146c3",
"sha256": "450ccadb85eb0298b047b842efcb45e788446f479cc235ab557e3b554b60fc4d"
},
"downloads": -1,
"filename": "penify_cli-0.1.5.tar.gz",
"has_sig": false,
"md5_digest": "af73da925242f435dce5a6d6fe1146c3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 12203,
"upload_time": "2024-10-21T03:06:41",
"upload_time_iso_8601": "2024-10-21T03:06:41.039769Z",
"url": "https://files.pythonhosted.org/packages/1a/d7/ea4a7d39c08fe11b897bacb917eb87d4777e5cc0c556e40a8e30aa0ca408/penify_cli-0.1.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-21 03:06:41",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "SingularityX-ai",
"github_project": "penify-cli",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "penify-cli"
}