# Git Commit Chart
A web application that visualizes commit history for GitHub repositories using interactive charts. The application shows commit patterns over the last 30 days of any public GitHub repository, with both overall commit trends and per-user contribution breakdowns.
## Features
- View total commits per day with a line chart
- Analyze commits by user with a stacked bar chart
- Interactive GitHub-styled legend with user filtering
- Responsive design that works on all devices
- Easy navigation between different views
- URL sharing support for specific repositories
## Installation
```sh
pipx install git-commit-chart
```
Run:
```sh
git-commit-chart --host 0.0.0.0 --port 8000 --production
```
### Local Installation (Current Method)
1. Clone the repository:
```bash
git clone https://github.com/yourusername/git-commit-chart.git
cd git-commit-chart
```
2. Create a virtual environment:
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
```
3. Install the package:
```bash
pip install -e .
```
### Development Installation
For development, install with additional development dependencies:
```bash
pip install -e ".[dev]"
```
## Usage
### Command Line Interface
After installation, you can run the application using the `git-commit-chart` command:
```bash
# Run in development mode (default)
git-commit-chart
# Run in production mode
git-commit-chart --production
# Specify host and port
git-commit-chart --host 0.0.0.0 --port 8000
```
### Options
- `--port`: Port to run the application on (default: 5000)
- `--host`: Host to run the application on (default: 127.0.0.1)
- `--production/--development`: Run in production mode with Waitress server (default: development)
### Using the Web Interface
1. Start the application using one of the methods above
2. Open your web browser and navigate to the displayed URL (default: http://127.0.0.1:5000)
3. Enter a GitHub repository owner and name (e.g., "facebook" and "react")
4. Click "Generate Chart" to view the commit history
5. Use the navigation links to switch between total commits and per-user views
### URL Parameters
You can share specific repository visualizations by including the owner and repo in the URL:
```
http://localhost:5000/?owner=facebook&repo=react
http://localhost:5000/by-user?owner=facebook&repo=react
```
## Development
### Requirements
- Python 3.9 or higher
- pip (Python package installer)
### Development Tools
The development installation includes:
- pytest: For running tests
- black: For code formatting
- flake8: For code linting
- build: For building distribution packages
- twine: For publishing to PyPI
### Running Tests
The package includes comprehensive tests for all major components. To run the tests:
```bash
# Install development dependencies first
pip install -e ".[dev]"
# Run all tests
pytest
# Run tests with coverage report
pytest --cov=git_commit_chart
# Run specific test files
pytest tests/test_api.py
pytest tests/test_routes.py
pytest tests/test_cli.py
```
The tests cover:
- API Functions: Testing GitHub API integration
- Routes: Testing Flask endpoints and responses
- CLI: Testing command-line interface options
- Error Handling: Testing invalid inputs and error cases
### Building the Package
To build the package for distribution:
```bash
python -m build
```
This will create both wheel and source distribution in the `dist/` directory.
## Docker Support
Build and run using Docker:
```bash
# Build the image
docker build -t git-commit-chart .
# Run the container
docker run -p 5000:5000 git-commit-chart
```
## Kubernetes Deployment
Kubernetes manifests are provided in the `k8s` directory. Deploy using:
```bash
kubectl apply -f k8s/deployment.yaml
```
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Notes
- The application only shows commits from the last 30 days
- Only public repositories are supported
- GitHub API has rate limiting for unauthenticated requests # git-commit-chart
Raw data
{
"_id": null,
"home_page": "https://github.com/jessegoodier/git-commit-chart",
"name": "git-commit-chart",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "github, commits, visualization, chart",
"author": "Jesse Goodier",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/ad/7a/0eb3a6e399a9760b77fe21e2f53b36ea5e42ffc07203bb2cd046eb72166e/git_commit_chart-0.1.2.tar.gz",
"platform": null,
"description": "# Git Commit Chart\n\nA web application that visualizes commit history for GitHub repositories using interactive charts. The application shows commit patterns over the last 30 days of any public GitHub repository, with both overall commit trends and per-user contribution breakdowns.\n\n## Features\n\n- View total commits per day with a line chart\n- Analyze commits by user with a stacked bar chart\n- Interactive GitHub-styled legend with user filtering\n- Responsive design that works on all devices\n- Easy navigation between different views\n- URL sharing support for specific repositories\n\n## Installation\n\n```sh\npipx install git-commit-chart\n```\n\nRun:\n```sh\ngit-commit-chart --host 0.0.0.0 --port 8000 --production\n```\n\n### Local Installation (Current Method)\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/yourusername/git-commit-chart.git\ncd git-commit-chart\n```\n\n2. Create a virtual environment:\n```bash\npython -m venv venv\nsource venv/bin/activate # On Windows: venv\\Scripts\\activate\n```\n\n3. Install the package:\n```bash\npip install -e .\n```\n\n### Development Installation\n\nFor development, install with additional development dependencies:\n```bash\npip install -e \".[dev]\"\n```\n\n## Usage\n\n### Command Line Interface\n\nAfter installation, you can run the application using the `git-commit-chart` command:\n\n```bash\n# Run in development mode (default)\ngit-commit-chart\n\n# Run in production mode\ngit-commit-chart --production\n\n# Specify host and port\ngit-commit-chart --host 0.0.0.0 --port 8000\n```\n\n### Options\n\n- `--port`: Port to run the application on (default: 5000)\n- `--host`: Host to run the application on (default: 127.0.0.1)\n- `--production/--development`: Run in production mode with Waitress server (default: development)\n\n### Using the Web Interface\n\n1. Start the application using one of the methods above\n2. Open your web browser and navigate to the displayed URL (default: http://127.0.0.1:5000)\n3. Enter a GitHub repository owner and name (e.g., \"facebook\" and \"react\")\n4. Click \"Generate Chart\" to view the commit history\n5. Use the navigation links to switch between total commits and per-user views\n\n### URL Parameters\n\nYou can share specific repository visualizations by including the owner and repo in the URL:\n\n```\nhttp://localhost:5000/?owner=facebook&repo=react\nhttp://localhost:5000/by-user?owner=facebook&repo=react\n```\n\n## Development\n\n### Requirements\n\n- Python 3.9 or higher\n- pip (Python package installer)\n\n### Development Tools\n\nThe development installation includes:\n- pytest: For running tests\n- black: For code formatting\n- flake8: For code linting\n- build: For building distribution packages\n- twine: For publishing to PyPI\n\n### Running Tests\n\nThe package includes comprehensive tests for all major components. To run the tests:\n\n```bash\n# Install development dependencies first\npip install -e \".[dev]\"\n\n# Run all tests\npytest\n\n# Run tests with coverage report\npytest --cov=git_commit_chart\n\n# Run specific test files\npytest tests/test_api.py\npytest tests/test_routes.py\npytest tests/test_cli.py\n```\n\nThe tests cover:\n- API Functions: Testing GitHub API integration\n- Routes: Testing Flask endpoints and responses\n- CLI: Testing command-line interface options\n- Error Handling: Testing invalid inputs and error cases\n\n### Building the Package\n\nTo build the package for distribution:\n```bash\npython -m build\n```\n\nThis will create both wheel and source distribution in the `dist/` directory.\n\n## Docker Support\n\nBuild and run using Docker:\n\n```bash\n# Build the image\ndocker build -t git-commit-chart .\n\n# Run the container\ndocker run -p 5000:5000 git-commit-chart\n```\n\n## Kubernetes Deployment\n\nKubernetes manifests are provided in the `k8s` directory. Deploy using:\n\n```bash\nkubectl apply -f k8s/deployment.yaml\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Notes\n\n- The application only shows commits from the last 30 days\n- Only public repositories are supported\n- GitHub API has rate limiting for unauthenticated requests # git-commit-chart\n",
"bugtrack_url": null,
"license": null,
"summary": "A web application to visualize GitHub repository commit history, written by cursor AI",
"version": "0.1.2",
"project_urls": {
"Homepage": "https://github.com/jessegoodier/git-commit-chart"
},
"split_keywords": [
"github",
" commits",
" visualization",
" chart"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "630dafa376320d733907d59096241294de1ba53f0b09ce301dc01d7d63e2283e",
"md5": "bb29c90eee2ebf6bc8003551ab2c07f9",
"sha256": "c540e8496b492d185cdd00cdef9a89d82f217538ea436492b369e0fa7a861604"
},
"downloads": -1,
"filename": "git_commit_chart-0.1.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "bb29c90eee2ebf6bc8003551ab2c07f9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 12983,
"upload_time": "2025-03-04T02:42:23",
"upload_time_iso_8601": "2025-03-04T02:42:23.941426Z",
"url": "https://files.pythonhosted.org/packages/63/0d/afa376320d733907d59096241294de1ba53f0b09ce301dc01d7d63e2283e/git_commit_chart-0.1.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ad7a0eb3a6e399a9760b77fe21e2f53b36ea5e42ffc07203bb2cd046eb72166e",
"md5": "57de7f32da4fe1bd00f272ca76090087",
"sha256": "a4dc8d31d08646857f44acd6ca25d5eaef13b97f0c8ad07ba6389ef1d9c30327"
},
"downloads": -1,
"filename": "git_commit_chart-0.1.2.tar.gz",
"has_sig": false,
"md5_digest": "57de7f32da4fe1bd00f272ca76090087",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 13109,
"upload_time": "2025-03-04T02:42:26",
"upload_time_iso_8601": "2025-03-04T02:42:26.066534Z",
"url": "https://files.pythonhosted.org/packages/ad/7a/0eb3a6e399a9760b77fe21e2f53b36ea5e42ffc07203bb2cd046eb72166e/git_commit_chart-0.1.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-03-04 02:42:26",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jessegoodier",
"github_project": "git-commit-chart",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "Flask",
"specs": [
[
"==",
"3.0.2"
]
]
},
{
"name": "requests",
"specs": [
[
"==",
"2.31.0"
]
]
},
{
"name": "python-dotenv",
"specs": [
[
"==",
"1.0.1"
]
]
},
{
"name": "waitress",
"specs": [
[
"==",
"2.1.2"
]
]
}
],
"lcname": "git-commit-chart"
}