@velion-solutions/github-projects
v0.1.5
Published
Reusable library and CLI to manage GitHub Projects, labels, issues, and markdown-driven backlog synchronization.
Downloads
791
Readme
GitHub Projects
Librería reusable y CLI para sincronizar backlog versionado en Markdown con GitHub Issues y GitHub Projects.
Objetivo
Permitir que cualquier repo consumidor mantenga su backlog como documentos versionados y publique ese estado en GitHub de forma reproducible, automatizable y auditable.
Capacidades actuales
- crear o reutilizar un GitHub Project a partir de configuración compartida
- crear y actualizar fields del project
- crear y actualizar labels estáticos y derivados en el repositorio destino
- empujar documentos
EP-*.mdyUS-*.mdhacia issues y project items conpush - sincronizar un documento puntual con
push issue - actualizar o reconstruir Markdown local desde issues y project items administrados con
pull - mantener relaciones padre/hijo mediante bloques administrados en el body del issue
- validar documentación antes de sincronizar
- autocorregir headings, aliases simples de frontmatter y
doc_idmal ordenados cuando el padre es inequívoco - emitir salidas JSON para validación,
push,pully sincronización completa
Inicio rápido
Pasos mínimos para poner a funcionar un repo consumidor:
- instalar el paquete en el repo consumidor
- crear
docs/epics/project.env - crear
docs/epics/github-projects.yml - crear una épica y una historia con frontmatter válido
- validar documentos
- inicializar o reconciliar el project
- hacer
pushde la iniciativa
Lo mínimo que necesitas definir:
docs/epics/project.envconPROJECT_OWNER,PROJECT_TITLEy opcionalmentePROJECT_NUMBERdocs/epics/github-projects.ymlcon repository, include patterns y reglas de sync- al menos una épica y una historia con
doc_id,type,title,status,priorityyparent_idcuando aplique - opcionalmente
issue_statesi quieres controlar apertura o cierre del issue además delstatusdel project
Ejemplo de arranque:
yarn add -D file:../github-projects
github-projects validate docs --fix --json
github-projects push project --dry-run
github-projects push project
github-projects push initiative --initiative EP-01-initiative-one --dry-run --fix-docs
github-projects push initiative --initiative EP-01-initiative-one --fix-docsNavegación
- índice de documentación: docs/README.md
- configuración detallada: docs/CONFIGURATION.md
- convención documental: config/PROJECT_SYNC_CONVENTIONS.md
- operación diaria, ejemplos JSON y troubleshooting: docs/OPERATIONS.md
Requisitos
- Node.js 20+
- Yarn 1.x
- GitHub CLI
ghinstalado y autenticado - scope
projecthabilitado enghpara mutaciones reales sobre GitHub Projects
Instalación
Instalación local desde un repo consumidor vecino:
yarn add -D file:../github-projectsInstalación desde npm:
npm install -D @velion-solutions/github-projectso con Yarn:
yarn add -D @velion-solutions/github-projectsReleases
El paquete usa release-it para manejar versión, tag git y publicación a npm.
Comandos disponibles:
yarn release:dry-run
yarn releaseyarn release ejecuta este flujo:
- valida con
yarn test,yarn typecheckyyarn build - actualiza la versión en
package.json - crea commit y tag
vX.Y.Z - publica en npm con acceso público
Antes de correrlo necesitas:
- working tree limpio en git
- permisos de publicación sobre
@velion-solutions/github-projects npm loginválido o token con permisos de publish
Scripts típicos en el repo consumidor:
{
"scripts": {
"github-projects:push:project": "github-projects push project",
"github-projects:push:initiative": "github-projects push initiative",
"github-projects:push:issue": "github-projects push issue",
"github-projects:push:labels": "github-projects push labels",
"github-projects:push:all": "github-projects push all --fix-docs",
"github-projects:pull:initiative": "github-projects pull initiative",
"github-projects:pull:issue": "github-projects pull issue",
"github-projects:pull:all": "github-projects pull all",
"github-projects:validate:docs": "github-projects validate docs"
}
}Convención mínima
La convención detallada vive en config/PROJECT_SYNC_CONVENTIONS.md. En el README solo queda el resumen operativo:
doc_ides la identidad estable del documentoparent_ides la relación padre recomendada- en historias,
doc_iddebe terminar conparent_id - el título visible del issue usa una versión compacta derivada del
doc_id
Comandos principales
push: familia de comandos para sincronizar hacia GitHub sin duplicar operadorespull: familia de comandos para reconstruir o actualizar Markdown local desde GitHubvalidate: familia de comandos de validación local
Los ejemplos completos, salidas JSON y flujos operativos viven en docs/OPERATIONS.md.
Uso como librería
El paquete también expone funciones para ejecución desde scripts Node. El ejemplo completo de uso programático vive en docs/OPERATIONS.md.
Fuera de alcance actual
- importación arbitraria de issues no administrados por
github-projectscuando no tienenDoc IDni metadata suficiente - resolución automática de conflictos cuando Markdown local y GitHub divergen al mismo tiempo
- manejo de dependencias entre múltiples repositorios en una sola operación
- publicación automática a npm
Checklist de cambio
- actualizar este README si cambia la forma de consumir el paquete
- actualizar docs/CONFIGURATION.md si cambia la resolución de configuración o las reglas de
pull - actualizar docs/OPERATIONS.md si cambian comandos, JSON o troubleshooting
- validar
yarn typecheck - validar
yarn build - validar al menos un flujo
--dry-runcuando cambie el comportamiento de sincronización
