DEV Community

badcaptain0001
badcaptain0001

Posted on

GitHub Copilot CLI Challenge Git Workflow Automator

GitHub Copilot CLI Challenge Submission

This is a submission for the GitHub Copilot CLI Challenge

What I Built

I built Git Workflow Automator (GWA), a terminal-first Python CLI to simplify common Git workflows.

It provides a single interface for:

  • gwa start (start branch workflow)
  • gwa commit (commit flow)
  • gwa sync (sync with remote)
  • gwa pr (PR workflow)
  • gwa doctor (diagnostics)

I built this because Git workflows are repetitive and easy to break under pressure.

The goal was to reduce friction and make daily Git operations faster from the terminal.

Demo

Run locally:

git clone https://github.com/badcaptain0001/gcli-zero.git
cd gcli-zero
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -U pip setuptools wheel
python -m pip install -e '.[dev]'
pytest -q
gwa --help
Enter fullscreen mode Exit fullscreen mode

My Experience with GitHub Copilot CLI

I used Copilot CLI iteratively while building the project.

Key prompts I used:

  1. Scaffold a Python CLI project from scratch named git-workflow-automator with src package layout, tests folder, pyproject.toml, and a console script named gwa.
  2. Generate minimal starter code for the package and CLI entrypoint using argparse.
  3. Add commands start, commit, sync, pr, and doctor with dry-run support.
  4. Create pydantic-based configuration loading from .gwa.toml with sensible defaults.
  5. Add policy enforcement for branch naming and conventional commit message validation.
  6. Add JSONL audit logging under .git/gwa/audit.jsonl with timestamp, command, status, and metadata.
  7. Create pytest tests for config, policy, audit, and a basic integration flow.
  8. Improve README with installation, usage, and testing instructions.

Copilot CLI sped up scaffolding and first-pass implementation.

I manually reviewed and refined code for behavior, reliability, and test coverage.

Detailed prompt-by-prompt notes are in COPILOT_LOG.md.

Top comments (0)