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.4.tar.gz (27.7 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.4-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: gitdo-0.2.4.tar.gz
  • Upload date:
  • Size: 27.7 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.4.tar.gz
Algorithm Hash digest
SHA256 042ad3eea20a76fbe72758b339e5abbc6d7bd018b0f2da49f406e9ee38e89ad0
MD5 23ddbeac63de6f51e1e5906378360d46
BLAKE2b-256 ed4d0171199e3c480757713e59443871e925016ec0ae534ef15cf871e96916b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitdo-0.2.4.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.4-py3-none-any.whl.

File metadata

  • Download URL: gitdo-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 9.0 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.4-py3-none-any.whl
Algorithm Hash digest
SHA256 e182db41e44723b8e016038b220735434dafcf0f3cbc0e73e3717353d971e91a
MD5 96304e2b3836d02d4eeaf9f2b974b889
BLAKE2b-256 76d9c88f5db9687cf6ae6a05f988c4b818c0086735e3144f106191d623e0abdc

See more details on using hashes here.

Provenance

The following attestation bundles were made for gitdo-0.2.4-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