CLI tool to manage GitHub Project V2 sprints for the ciroos-ai engineering board.
- Python 3.10+
- uv (
curl -LsSf https://astral.sh/uv/install.sh | sh)
# Ubuntu/Debian
sudo apt install gh
# macOS
brew install gh
# Other: https://github.com/cli/cli/blob/trunk/docs/install_linux.mdgh auth loginSelect GitHub.com, HTTPS, and authenticate via browser. Then add the project scope:
gh auth refresh -s projectVerify:
gh auth statusYou should see project in the scopes list.
git clone <repo-url>
cd SprintManagerNo dependencies to install -- the tool uses Python stdlib only.
uv run python sprint_manager.py list-sprints # last 12 sprints
uv run python sprint_manager.py list-sprints --count 5 # last 5 sprintsuv run python sprint_manager.py contributors # all project contributors
uv run python sprint_manager.py contributors --sprint 26.1.4 # per-sprint with done/open stats
uv run python sprint_manager.py contributors --sprint last # last completed sprintuv run python sprint_manager.py issues 26.1.4 # by sprint title
uv run python sprint_manager.py issues current # current active sprint
uv run python sprint_manager.py issues last # last completed sprint
uv run python sprint_manager.py issues 26.1.4 --users alice # single user
uv run python sprint_manager.py issues 26.1.4 --users alice,bob # multiple usersMove all non-Done issues from the last completed sprint to the current sprint:
uv run python sprint_manager.py migrate --dry-run # preview first
uv run python sprint_manager.py migrate # execute migrationSpecify source/target sprints:
uv run python sprint_manager.py migrate --from 26.1.3 --to 26.2.1Migrate specific users' issues:
uv run python sprint_manager.py migrate --users alice --dry-run
uv run python sprint_manager.py migrate --users alice,bob- Sprint references accept a title (e.g.
26.1.4),current(first active sprint), orlast(most recent completed sprint). migrateskips issues with status Done -- only open work carries forward.- Use
--dry-runto preview before making changes. - The tool paginates through all project items (can take a moment on large boards).