Convert roadmaps to GitHub issues
Project description
Gitscaffold – Roadmaps to GitHub Issues
Gitscaffold is a command-line tool and GitHub Action that converts structured roadmap files (YAML/JSON) into GitHub issues and milestones.
Installation:
pip install gitscaffold
CLI Usage
As an installed package
After installing, the gitscaffold command is available:
# Create GitHub issues from a roadmap file
gitscaffold create ROADMAP.yml --repo owner/repo --token $GITHUB_TOKEN
# Validate without creating issues (dry run)
gitscaffold create ROADMAP.yml --repo owner/repo --token $GITHUB_TOKEN --dry-run
Initialize a roadmap template
# Generate an example roadmap file
gitscaffold init example-roadmap.yml
From the source checkout
You can also clone this repository and use the top-level gitscaffold.py script for additional commands:
# Setup GitHub labels, milestones, and (optionally) a project board
./gitscaffold.py setup owner/repo --phase phase-1 --create-project
# Delete all closed issues in a repository
./gitscaffold.py delete-closed owner/repo
# Use GraphQL API for deletion
./gitscaffold.py delete-closed owner/repo --api
# Enrich a single issue or batch enrich via LLM
./gitscaffold.py enrich owner/repo --issue 123 --path ROADMAP.md --apply
./gitscaffold.py enrich owner/repo --batch --path ROADMAP.md --csv output.csv --interactive
# Initialize a new roadmap YAML template
./gitscaffold.py init ROADMAP.yml
For detailed documentation and examples, see the project repository or run:
gitscaffold --help
GitHub Action Usage
Use Gitscaffold as a GitHub Action in your workflow (e.g., .github/workflows/sync-roadmap.yml):
name: Sync Roadmap to Issues
on:
workflow_dispatch:
jobs:
scaffold:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Scaffold
uses: your-org/gitscaffold-action@v0.1.0
with:
roadmap-file: roadmap.yml
repo: ${{ github.repository }}
github-token: ${{ secrets.GITHUB_TOKEN }}
dry-run: 'false'
Releasing
Publishing to PyPI
-
Bump the version in
pyproject.tomlunder the[project]table. -
Commit and tag the release:
git add pyproject.toml git commit -m "Release vX.Y.Z" git tag vX.Y.Z
-
Build distribution packages:
pip install --upgrade build twine python -m build
-
Upload to PyPI:
twine upload dist/*
-
Push commits and tags:
git push origin main --tags
Automating releases with GitHub Actions
Add a workflow file (e.g., .github/workflows/release.yml) to publish on tag push:
name: Publish
on:
push:
tags:
- 'v*.*.*'
jobs:
build-and-publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.x'
- run: pip install --upgrade build twine
- run: python -m build
- uses: pypa/gh-action-pypi-publish@v1
with:
password: ${{ secrets.PYPI_API_TOKEN }}
Ensure you’ve added a PYPI_API_TOKEN secret in your repository settings.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gitscaffold-0.1.1.tar.gz.
File metadata
- Download URL: gitscaffold-0.1.1.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b52e42b0b9864fff0b2ed2d85a9243f2b8b730cbf042f6d14dc1cc3a549d1845
|
|
| MD5 |
b792aa26143203727f940c933c92f60a
|
|
| BLAKE2b-256 |
784b1123c92e14276563a5cd4eaa79b079f576c887756e509f7f697ce65021a2
|
File details
Details for the file gitscaffold-0.1.1-py3-none-any.whl.
File metadata
- Download URL: gitscaffold-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7303adcc940eec33a171c921c9c58113657319860278e7f48f316dfc8546c361
|
|
| MD5 |
1ba622ccf5067698afb399df9756d912
|
|
| BLAKE2b-256 |
b55318d22ce147244db116aafb9c8ce8b72ea3014497698c4fffc903cd34e285
|