Skip to main content

Simple CLI tool to plan your work

Project description

GitDo

CI codecov PyPI version

Simple CLI tool to plan your work. Tasks are stored locally in a .gitdo/ folder.

Installation

pip install gitdo

Usage

$ 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

# 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 for dependency management.

  1. Install uv:

    curl -LsSf https://astral.sh/uv/install.sh | sh
    
  2. Clone the repository:

    git clone https://github.com/yourusername/gitdo.git
    cd gitdo
    
  3. Install dependencies:

    uv sync --extra dev
    

Running Tests

# 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:

# 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:

# 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

Manual Build (Testing)

# Build the package locally
uv build

# Check the built package
ls -la dist/

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gitdo-0.2.3.tar.gz (26.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gitdo-0.2.3-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file gitdo-0.2.3.tar.gz.

File metadata

  • Download URL: gitdo-0.2.3.tar.gz
  • Upload date:
  • Size: 26.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitdo-0.2.3.tar.gz
Algorithm Hash digest
SHA256 ae59c67fb475335c3eeeb49d96e0a1edf7100085f6ddbad750133da91f781752
MD5 f443e9a791da765897baa893cb5d173d
BLAKE2b-256 139bd90bafb12f70177cc76a9b6250b94540df0320addb187ebf16d0fa027d04

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitdo-0.2.3.tar.gz:

Publisher: publish.yml on s0b0lev/gitdo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file gitdo-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: gitdo-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 8.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for gitdo-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 4504fa70bdcb77847a24f423678f3d8644dae958a2aeaadcd12fcfbcaa709744
MD5 25188e978b591c307142a3b5239b7c81
BLAKE2b-256 221024656045a5fc2cfaa47f3e375ff4e00efd315a99d00b43fc4e6726d1b66a

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitdo-0.2.3-py3-none-any.whl:

Publisher: publish.yml on s0b0lev/gitdo

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page