| Name | gitdo JSON |
| Version |
0.2.4
JSON |
| download |
| home_page | None |
| Summary | Simple CLI tool to plan your work |
| upload_time | 2025-11-04 15:28:13 |
| maintainer | None |
| docs_url | None |
| author | None |
| requires_python | >=3.12 |
| license | None |
| keywords |
cli
git
planning
productivity
task
|
| VCS |
 |
| bugtrack_url |
|
| requirements |
No requirements were recorded.
|
| Travis-CI |
No Travis.
|
| coveralls test coverage |
No coveralls.
|
# GitDo
[](https://github.com/s0b0lev/gitdo/actions/workflows/ci.yml)
[](https://codecov.io/gh/s0b0lev/gitdo)
[](https://badge.fury.io/py/gitdo)
Simple CLI tool to plan your work. Tasks are stored locally in a `.gitdo/` folder.
## Installation
```bash
pip install gitdo
```
## Usage
```bash
$ gitdo [command] [options]
```
## Commands
- `init`: Initialize a new GitDo project
- `add <task>`: Add a new task to your project
- `list`: List all tasks (use `--all` to show completed tasks)
- `complete <task_id>`: Mark a task as completed
- `remove <task_id>`: Remove a task from your project
## Example
```bash
# Initialize GitDo in your project
$ gitdo init
✓ GitDo initialized successfully!
# Add some tasks
$ gitdo add "Implement user authentication"
✓ Added task: Implement user authentication
ID: a1b2c3d4
$ gitdo add "Write unit tests"
✓ Added task: Write unit tests
ID: e5f6g7h8
# List all pending tasks
$ gitdo list
# Complete a task (you can use just the first few characters of the ID)
$ gitdo complete a1b2
# List all tasks including completed ones
$ gitdo list --all
# Remove a task
$ gitdo remove e5f6
```
## Development
### Setup
This project uses [uv](https://docs.astral.sh/uv/) for dependency management.
1. Install uv:
```bash
curl -LsSf https://astral.sh/uv/install.sh | sh
```
2. Clone the repository:
```bash
git clone https://github.com/yourusername/gitdo.git
cd gitdo
```
3. Install dependencies:
```bash
uv sync --extra dev
```
### Running Tests
```bash
# Run all tests
uv run pytest
# Run with coverage
uv run pytest --cov=gitdo --cov-report=html
# Run specific test file
uv run pytest tests/test_cli.py
# Run tests in watch mode (requires pytest-watch)
uv run ptw
```
### Code Quality
This project uses Ruff for linting and formatting:
```bash
# Check code
uv run ruff check .
# Format code
uv run ruff format .
# Check and fix
uv run ruff check --fix .
```
### Project Structure
```
gitdo/
├── src/
│ └── gitdo/
│ ├── __init__.py
│ ├── cli.py # CLI interface
│ ├── models.py # Data models
│ └── storage.py # Storage handling
├── tests/
│ ├── conftest.py # Pytest fixtures
│ ├── test_cli.py # CLI tests
│ ├── test_models.py # Model tests
│ └── test_storage.py # Storage tests
├── pyproject.toml # Project configuration
└── README.md
```
### Releasing to PyPI
This project uses GitHub Actions for automated publishing to PyPI. Releases are triggered by pushing version tags.
#### Automated Release (Recommended)
Use the release script to create a new version:
```bash
# Create a new release (e.g., 0.2.0)
./scripts/release.sh 0.2.0
# Push to trigger the release
git push origin main --tags
```
The script will:
1. Update version in `pyproject.toml` and `__init__.py`
2. Create a git commit
3. Create a version tag (e.g., `v0.2.0`)
When you push the tag, GitHub Actions will:
1. Extract version from the tag
2. Build the package
3. Publish to PyPI using [Trusted Publishing](https://docs.pypi.org/trusted-publishers/)
#### Manual Build (Testing)
```bash
# Build the package locally
uv build
# Check the built package
ls -la dist/
```
## License
MIT
Raw data
{
"_id": null,
"home_page": null,
"name": "gitdo",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "cli, git, planning, productivity, task",
"author": null,
"author_email": "Your Name <your.email@example.com>",
"download_url": "https://files.pythonhosted.org/packages/ed/4d/0171199e3c480757713e59443871e925016ec0ae534ef15cf871e96916b5/gitdo-0.2.4.tar.gz",
"platform": null,
"description": "# GitDo\n\n[](https://github.com/s0b0lev/gitdo/actions/workflows/ci.yml)\n[](https://codecov.io/gh/s0b0lev/gitdo)\n[](https://badge.fury.io/py/gitdo)\n\nSimple CLI tool to plan your work. Tasks are stored locally in a `.gitdo/` folder.\n\n## Installation\n\n```bash\npip install gitdo\n```\n\n## Usage\n\n```bash\n$ gitdo [command] [options]\n```\n\n## Commands\n\n- `init`: Initialize a new GitDo project\n- `add <task>`: Add a new task to your project\n- `list`: List all tasks (use `--all` to show completed tasks)\n- `complete <task_id>`: Mark a task as completed\n- `remove <task_id>`: Remove a task from your project\n\n## Example\n\n```bash\n# Initialize GitDo in your project\n$ gitdo init\n\u2713 GitDo initialized successfully!\n\n# Add some tasks\n$ gitdo add \"Implement user authentication\"\n\u2713 Added task: Implement user authentication\nID: a1b2c3d4\n\n$ gitdo add \"Write unit tests\"\n\u2713 Added task: Write unit tests\nID: e5f6g7h8\n\n# List all pending tasks\n$ gitdo list\n\n# Complete a task (you can use just the first few characters of the ID)\n$ gitdo complete a1b2\n\n# List all tasks including completed ones\n$ gitdo list --all\n\n# Remove a task\n$ gitdo remove e5f6\n```\n\n## Development\n\n### Setup\n\nThis project uses [uv](https://docs.astral.sh/uv/) for dependency management.\n\n1. Install uv:\n ```bash\n curl -LsSf https://astral.sh/uv/install.sh | sh\n ```\n\n2. Clone the repository:\n ```bash\n git clone https://github.com/yourusername/gitdo.git\n cd gitdo\n ```\n\n3. Install dependencies:\n ```bash\n uv sync --extra dev\n ```\n\n### Running Tests\n\n```bash\n# Run all tests\nuv run pytest\n\n# Run with coverage\nuv run pytest --cov=gitdo --cov-report=html\n\n# Run specific test file\nuv run pytest tests/test_cli.py\n\n# Run tests in watch mode (requires pytest-watch)\nuv run ptw\n```\n\n### Code Quality\n\nThis project uses Ruff for linting and formatting:\n\n```bash\n# Check code\nuv run ruff check .\n\n# Format code\nuv run ruff format .\n\n# Check and fix\nuv run ruff check --fix .\n```\n\n### Project Structure\n\n```\ngitdo/\n\u251c\u2500\u2500 src/\n\u2502 \u2514\u2500\u2500 gitdo/\n\u2502 \u251c\u2500\u2500 __init__.py\n\u2502 \u251c\u2500\u2500 cli.py # CLI interface\n\u2502 \u251c\u2500\u2500 models.py # Data models\n\u2502 \u2514\u2500\u2500 storage.py # Storage handling\n\u251c\u2500\u2500 tests/\n\u2502 \u251c\u2500\u2500 conftest.py # Pytest fixtures\n\u2502 \u251c\u2500\u2500 test_cli.py # CLI tests\n\u2502 \u251c\u2500\u2500 test_models.py # Model tests\n\u2502 \u2514\u2500\u2500 test_storage.py # Storage tests\n\u251c\u2500\u2500 pyproject.toml # Project configuration\n\u2514\u2500\u2500 README.md\n```\n\n### Releasing to PyPI\n\nThis project uses GitHub Actions for automated publishing to PyPI. Releases are triggered by pushing version tags.\n\n#### Automated Release (Recommended)\n\nUse the release script to create a new version:\n\n```bash\n# Create a new release (e.g., 0.2.0)\n./scripts/release.sh 0.2.0\n\n# Push to trigger the release\ngit push origin main --tags\n```\n\nThe script will:\n1. Update version in `pyproject.toml` and `__init__.py`\n2. Create a git commit\n3. Create a version tag (e.g., `v0.2.0`)\n\nWhen you push the tag, GitHub Actions will:\n1. Extract version from the tag\n2. Build the package\n3. Publish to PyPI using [Trusted Publishing](https://docs.pypi.org/trusted-publishers/)\n\n\n#### Manual Build (Testing)\n\n```bash\n# Build the package locally\nuv build\n\n# Check the built package\nls -la dist/\n```\n\n## License\n\nMIT",
"bugtrack_url": null,
"license": null,
"summary": "Simple CLI tool to plan your work",
"version": "0.2.4",
"project_urls": {
"Homepage": "https://github.com/s0b0lev/gitdo",
"Repository": "https://github.com/s0b0lev/gitdo"
},
"split_keywords": [
"cli",
" git",
" planning",
" productivity",
" task"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "76d9c88f5db9687cf6ae6a05f988c4b818c0086735e3144f106191d623e0abdc",
"md5": "96304e2b3836d02d4eeaf9f2b974b889",
"sha256": "e182db41e44723b8e016038b220735434dafcf0f3cbc0e73e3717353d971e91a"
},
"downloads": -1,
"filename": "gitdo-0.2.4-py3-none-any.whl",
"has_sig": false,
"md5_digest": "96304e2b3836d02d4eeaf9f2b974b889",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 8990,
"upload_time": "2025-11-04T15:28:11",
"upload_time_iso_8601": "2025-11-04T15:28:11.612614Z",
"url": "https://files.pythonhosted.org/packages/76/d9/c88f5db9687cf6ae6a05f988c4b818c0086735e3144f106191d623e0abdc/gitdo-0.2.4-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "ed4d0171199e3c480757713e59443871e925016ec0ae534ef15cf871e96916b5",
"md5": "23ddbeac63de6f51e1e5906378360d46",
"sha256": "042ad3eea20a76fbe72758b339e5abbc6d7bd018b0f2da49f406e9ee38e89ad0"
},
"downloads": -1,
"filename": "gitdo-0.2.4.tar.gz",
"has_sig": false,
"md5_digest": "23ddbeac63de6f51e1e5906378360d46",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 27732,
"upload_time": "2025-11-04T15:28:13",
"upload_time_iso_8601": "2025-11-04T15:28:13.039799Z",
"url": "https://files.pythonhosted.org/packages/ed/4d/0171199e3c480757713e59443871e925016ec0ae534ef15cf871e96916b5/gitdo-0.2.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-11-04 15:28:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "s0b0lev",
"github_project": "gitdo",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "gitdo"
}