interactive-git-versioneer 0.10.4__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- interactive_git_versioneer-0.10.4/.github/workflows/auto-tag.yml +37 -0
- interactive_git_versioneer-0.10.4/.gitignore +17 -0
- interactive_git_versioneer-0.10.4/CHANGELOG.md +87 -0
- interactive_git_versioneer-0.10.4/CITATION.cff +8 -0
- interactive_git_versioneer-0.10.4/LICENSE +21 -0
- interactive_git_versioneer-0.10.4/PKG-INFO +144 -0
- interactive_git_versioneer-0.10.4/README.md +124 -0
- interactive_git_versioneer-0.10.4/docs/_assets/igv-quick_demo.gif +0 -0
- interactive_git_versioneer-0.10.4/docs/api.md +11 -0
- interactive_git_versioneer-0.10.4/docs/index.md +17 -0
- interactive_git_versioneer-0.10.4/docs/modules/core_ai.md +24 -0
- interactive_git_versioneer-0.10.4/docs/modules/core_git_ops.md +24 -0
- interactive_git_versioneer-0.10.4/docs/modules/releases.md +18 -0
- interactive_git_versioneer-0.10.4/docs/modules/tagger.md +17 -0
- interactive_git_versioneer-0.10.4/docs/troubleshooting-cicd.md +48 -0
- interactive_git_versioneer-0.10.4/docs/usage.md +31 -0
- interactive_git_versioneer-0.10.4/jenkins/configure-igv.sh +30 -0
- interactive_git_versioneer-0.10.4/jenkins/deploy.sh +67 -0
- interactive_git_versioneer-0.10.4/mkdocs.yml +24 -0
- interactive_git_versioneer-0.10.4/pyproject.toml +36 -0
- interactive_git_versioneer-0.10.4/setup.cfg +4 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/__init__.py +48 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/config/__init__.py +23 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/config/config.py +100 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/config/menu.py +630 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/core/__init__.py +57 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/core/ai.py +209 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/core/git_ops.py +189 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/core/models.py +29 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/core/ui.py +544 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/core/version_ops.py +151 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/main.py +304 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/releases/__init__.py +1 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/releases/changelog_actions.py +970 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/releases/changelog_gen.py +299 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/releases/changelog_progress.py +71 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/releases/gh_auth.py +113 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/releases/gh_releases.py +921 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/releases/menus.py +444 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/releases/sync.py +163 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/tags/__init__.py +101 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/tags/actions.py +629 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/tags/ai.py +347 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/tags/menus.py +444 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/tags/tagger.py +971 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer/tags/views.py +470 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer.egg-info/PKG-INFO +144 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer.egg-info/SOURCES.txt +54 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer.egg-info/dependency_links.txt +1 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer.egg-info/entry_points.txt +2 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer.egg-info/requires.txt +6 -0
- interactive_git_versioneer-0.10.4/src/interactive_git_versioneer.egg-info/top_level.txt +1 -0
- interactive_git_versioneer-0.10.4/tests/__init__.py +0 -0
- interactive_git_versioneer-0.10.4/tests/test_config.py +71 -0
- interactive_git_versioneer-0.10.4/tests/test_git_ops.py +113 -0
- interactive_git_versioneer-0.10.4/tests/test_models.py +51 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: interactive-git-versioneer Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
tag:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
permissions:
|
|
12
|
+
contents: write
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
with:
|
|
16
|
+
fetch-depth: 0
|
|
17
|
+
|
|
18
|
+
- uses: actions/setup-python@v5
|
|
19
|
+
with:
|
|
20
|
+
python-version: '3.11'
|
|
21
|
+
cache: 'pip'
|
|
22
|
+
|
|
23
|
+
- name: Install package
|
|
24
|
+
run: pip install -e .
|
|
25
|
+
|
|
26
|
+
- name: Configure API
|
|
27
|
+
run: |
|
|
28
|
+
python -m interactive_git_versioneer.main config set OPENAI.key "${{ secrets.GROQ_API_KEY }}"
|
|
29
|
+
python -m interactive_git_versioneer.main config set OPENAI.baseURL "https://api.groq.com/openai/v1"
|
|
30
|
+
python -m interactive_git_versioneer.main config set OPENAI.model "llama-3.3-70b-versatile"
|
|
31
|
+
|
|
32
|
+
- name: Dry run (validate)
|
|
33
|
+
run: python -m interactive_git_versioneer.main tag --auto --dry-run
|
|
34
|
+
|
|
35
|
+
- name: Create and push tags
|
|
36
|
+
if: success()
|
|
37
|
+
run: python -m interactive_git_versioneer.main tag --auto --push
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
*Automatically generated with AI on 2026-02-05 23:59*
|
|
6
|
+
|
|
7
|
+
## [v0.10.4] - 2026-02-05
|
|
8
|
+
|
|
9
|
+
### 🔧 Cambios varios
|
|
10
|
+
- Actualiza la visualización de la versión en la etiquetadora
|
|
11
|
+
|
|
12
|
+
## [v0.10.3] - 2026-02-05
|
|
13
|
+
|
|
14
|
+
Actualiza la documentación con el registro de cambios y la versión.
|
|
15
|
+
|
|
16
|
+
## [v0.10.2] - 2026-02-05
|
|
17
|
+
|
|
18
|
+
### 🔧 Cambios varios
|
|
19
|
+
- Establecer la estructura y configuración inicial del proyecto
|
|
20
|
+
|
|
21
|
+
## [v0.10.1] - 2026-02-05
|
|
22
|
+
|
|
23
|
+
### Cambios importantes
|
|
24
|
+
- Agrega una demostración rápida de IGV en formato GIF a la documentación.
|
|
25
|
+
|
|
26
|
+
## [v0.10.0] - 2026-02-05
|
|
27
|
+
|
|
28
|
+
Agrega una configuración de MkDocs para mejorar la documentación.
|
|
29
|
+
|
|
30
|
+
## [v0.9.0] - 2026-02-05
|
|
31
|
+
|
|
32
|
+
### Cambios clave
|
|
33
|
+
- Agrega flujo de trabajo de autoetiquetado para la integración continua en la construcción.
|
|
34
|
+
|
|
35
|
+
## [v0.8.2] - 2026-02-05
|
|
36
|
+
|
|
37
|
+
### Mejoras y Cambios
|
|
38
|
+
- Agrega pruebas para configuración, operaciones de git y modelos.
|
|
39
|
+
|
|
40
|
+
## [v0.8.1] - 2026-02-05
|
|
41
|
+
|
|
42
|
+
### Cambios importantes
|
|
43
|
+
- Agregue documentación para los módulos principales.
|
|
44
|
+
|
|
45
|
+
## [v0.8.0] - 2026-02-05
|
|
46
|
+
|
|
47
|
+
### Nuevas Características
|
|
48
|
+
- Agrega scripts de despliegue y configuración para igv en Jenkins
|
|
49
|
+
|
|
50
|
+
## [v0.7.1] - 2026-02-05
|
|
51
|
+
|
|
52
|
+
### Cambios importantes
|
|
53
|
+
- Agrega documentación para Interactive Git Versioneer
|
|
54
|
+
|
|
55
|
+
## [v0.7.0] - 2026-02-05
|
|
56
|
+
|
|
57
|
+
### Nuevas Características
|
|
58
|
+
- Agrega gestión de etiquetas interactiva y generación de etiquetas impulsada por inteligencia artificial.
|
|
59
|
+
|
|
60
|
+
## [v0.6.0] - 2026-02-05
|
|
61
|
+
|
|
62
|
+
- Agrega funcionalidad de gestión de lanzamientos y registro de cambios.
|
|
63
|
+
|
|
64
|
+
## [v0.5.0] - 2026-02-05
|
|
65
|
+
|
|
66
|
+
### Nuevas Características
|
|
67
|
+
- Agrega funcionalidad central para interactive-git-versioneer
|
|
68
|
+
|
|
69
|
+
## [v0.4.0] - 2026-02-05
|
|
70
|
+
|
|
71
|
+
Agrega un módulo de configuración para interactive-git-versioneer.
|
|
72
|
+
|
|
73
|
+
## [v0.3.0] - 2026-02-05
|
|
74
|
+
|
|
75
|
+
- Agrega una interfaz de línea de comandos interactiva de Git Versioneer con funcionalidad de configuración y etiquetado.
|
|
76
|
+
|
|
77
|
+
## [v0.2.0] - 2026-02-05
|
|
78
|
+
|
|
79
|
+
Agrega la estructura y documentación inicial del proyecto.
|
|
80
|
+
|
|
81
|
+
## [v0.1.0] - 2026-02-05
|
|
82
|
+
|
|
83
|
+
Crea el repositorio con el commit inicial.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
*This changelog was generated with AI and follows the format of [Keep a Changelog](https://keepachangelog.com/es/1.0.0/)*
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Alexis E. Millanao Lepileo (alexis.millanao@protonmail.com)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: interactive-git-versioneer
|
|
3
|
+
Version: 0.10.4
|
|
4
|
+
Summary: InteractiveGitVersioneer - Gestor interactivo de versiones Git con soporte para tags, releases de GitHub y generación de mensajes con IA (Groq/OpenAI). Incluye modo CI/CD para pipelines automatizados.
|
|
5
|
+
Author-email: amillanaol <alexis.millanao@protonmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Classifier: Programming Language :: Python :: 3
|
|
8
|
+
Classifier: Operating System :: OS Independent
|
|
9
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
10
|
+
Classifier: Environment :: Console
|
|
11
|
+
Requires-Python: >=3.7
|
|
12
|
+
Description-Content-Type: text/markdown
|
|
13
|
+
License-File: LICENSE
|
|
14
|
+
Requires-Dist: GitPython>=3.1.0
|
|
15
|
+
Requires-Dist: openai>=1.0.0
|
|
16
|
+
Provides-Extra: dev
|
|
17
|
+
Requires-Dist: pytest>=7.0.0; extra == "dev"
|
|
18
|
+
Requires-Dist: pytest-cov>=4.0.0; extra == "dev"
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
|
|
21
|
+
# InteractiveGitVersioneer
|
|
22
|
+
|
|
23
|
+
[](https://pypi.org/project/interactive-git-versioneer/)
|
|
24
|
+
[](https://www.python.org/)
|
|
25
|
+
[](https://opensource.org/licenses/MIT)
|
|
26
|
+
[](https://github.com/amillanaol/interactive-git-versioneer/actions/workflows/auto-tag.yml)
|
|
27
|
+
|
|
28
|
+
CLI para gestión de versiones semánticas con IA. Crea tags, genera changelogs y publica releases en GitHub de forma interactiva o automatizada.
|
|
29
|
+
## Quick Demo
|
|
30
|
+
|
|
31
|
+
Aquí se mostrará un GIF animado ilustrando el flujo interactivo de `InteractiveGitVersioneer`.
|
|
32
|
+
|
|
33
|
+

|
|
34
|
+
|
|
35
|
+
Gestor interactivo de versiones Git con soporte para tags, releases de GitHub y generación de mensajes con IA (Groq/OpenAI). Incluye modo CI/CD para pipelines automatizados.
|
|
36
|
+
|
|
37
|
+
## Características Principales
|
|
38
|
+
|
|
39
|
+
- **Gestión de Tags**: Menú guiado para crear y gestionar etiquetas de versión
|
|
40
|
+
- **Gestión de Releases**: Crear releases en GitHub, generar changelogs
|
|
41
|
+
- **Inspección Automática**: Detecta commits sin tag
|
|
42
|
+
- **Simulación Segura**: Modos "dry run" para previsualizar cambios
|
|
43
|
+
- **Generación con IA**: Integración Groq/OpenAI para mensajes automáticos
|
|
44
|
+
- **Arquitectura Modular**: Sistema de menús extensible
|
|
45
|
+
|
|
46
|
+
## Instalación Rápida
|
|
47
|
+
|
|
48
|
+
**Requisitos:** Python >= 3.7, GitPython >= 3.1.0, openai >= 1.0.0
|
|
49
|
+
**Opcional:** GitHub CLI (`gh`) para funciones de releases
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
git clone https://github.com/amillanaol/interactive-git-versioneer.git
|
|
53
|
+
cd interactive-git-versioneer
|
|
54
|
+
pip install -e .
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Uso Básico
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
# Ejecutar menú interactivo principal
|
|
61
|
+
igv
|
|
62
|
+
```
|
|
63
|
+
> Para más comandos consultar el [artículo de comandos disponibles](./docs/comandos-disponibles.md)
|
|
64
|
+
|
|
65
|
+
**Navegación rápida:** `Supr`/`Esc` para volver, `q` para salir.
|
|
66
|
+
|
|
67
|
+
## Estructura del Menú
|
|
68
|
+
|
|
69
|
+
```
|
|
70
|
+
GESTOR DE VERSIONES GIT
|
|
71
|
+
├── 1. Gestionar Commits
|
|
72
|
+
│ ├── Ver lista de commits
|
|
73
|
+
│ ├── Procesar commits individualmente
|
|
74
|
+
│ ├── Ver preview de tags pendientes
|
|
75
|
+
│ ├── Auto-generar todos los tags con IA
|
|
76
|
+
│ ├── Aplicar tags
|
|
77
|
+
│ └── Volver
|
|
78
|
+
├── 2. Gestionar Tags
|
|
79
|
+
│ ├── Ver último tag
|
|
80
|
+
│ ├── Ver tags locales
|
|
81
|
+
│ ├── Ver tags remotos
|
|
82
|
+
│ ├── Modificar tag (submenú paginado)
|
|
83
|
+
│ ├── Eliminar tag local
|
|
84
|
+
│ ├── Eliminar tag remoto
|
|
85
|
+
│ ├── Sincronizar con repositorio remoto
|
|
86
|
+
│ ├── Generar tags con IA
|
|
87
|
+
│ └── Volver al menú principal
|
|
88
|
+
├── 3. Gestionar Releases
|
|
89
|
+
│ ├── Autenticar con GitHub
|
|
90
|
+
│ ├── Crear release en GitHub
|
|
91
|
+
│ ├── Generar changelogs
|
|
92
|
+
│ ├── Ver releases existentes
|
|
93
|
+
│ ├── Modificar un release existente
|
|
94
|
+
│ ├── Eliminar un release existente
|
|
95
|
+
│ ├── Sincronizar con remoto
|
|
96
|
+
│ └── Volver al menú principal
|
|
97
|
+
├── 4. Gestionar Changelogs
|
|
98
|
+
│ ├── Previsualizar changelog
|
|
99
|
+
│ ├── Continuar changelog (manualmente)
|
|
100
|
+
│ ├── Continuar changelog (automático con IA)
|
|
101
|
+
│ ├── Modificar changelogs
|
|
102
|
+
│ ├── Reconstruir todos los changelogs (con IA)
|
|
103
|
+
│ └── Volver
|
|
104
|
+
├── 5. Configuración
|
|
105
|
+
│ ├── Ver configuración actual
|
|
106
|
+
│ ├── Configurar IA (Groq/OpenAI)
|
|
107
|
+
│ ├── Añadir alias 'igv' al sistema
|
|
108
|
+
│ ├── Ayuda - Comandos CLI
|
|
109
|
+
│ └── Volver al menú principal
|
|
110
|
+
└── 6. Salir
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Documentación Completa
|
|
114
|
+
|
|
115
|
+
- [Resumen de Documentación](./docs/01-entrada-navegacion/RESUMEN-DOCUMENTACION.md)
|
|
116
|
+
- [Mapa Visual de Documentación](./docs/01-entrada-navegacion/MAPA-VISUAL-DOCUMENTACION.md)
|
|
117
|
+
- [Changelog Completo](./docs/03-desarrollo/CHANGELOG.md)
|
|
118
|
+
- [Documentación de Completitud](./docs/05-referencia/DOCUMENTACION-COMPLETADA.md)
|
|
119
|
+
- [Migración de Nomenclatura](./docs/05-referencia/MIGRACION-NOMENCLATURA.md)
|
|
120
|
+
|
|
121
|
+
### Documentación por Audiencia
|
|
122
|
+
|
|
123
|
+
- [Guía de Uso - Comandos Básicos](./docs/02-usuario/usuario-inicio-comandos-basicos.md)
|
|
124
|
+
- [Integración IA - Configuración Groq](./docs/04-configuracion/configuracion-ia-groq-integracion.md)
|
|
125
|
+
- [Referencia - Menú Interactivo](./docs/02-usuario/usuario-referencia-menu-opciones.md)
|
|
126
|
+
|
|
127
|
+
### Guías de Ejecución
|
|
128
|
+
|
|
129
|
+
- [Instrucciones de Ejecución Real](./docs/guia-ejecucion-simulacion/instrucciones-ejecucion-real.md)
|
|
130
|
+
- [Simulación "Dry Run"](./docs/guia-ejecucion-simulacion/simulacion-dry-run.md)
|
|
131
|
+
- [Simulación "Full Dry Run"](./docs/guia-ejecucion-simulacion/simulacion-full-dry-run.md)
|
|
132
|
+
|
|
133
|
+
### Estrategia de Versionado
|
|
134
|
+
|
|
135
|
+
- [Plan de Etiquetado de Versiones](./docs/plan-versionado-analisis/plan-etiquetado-versiones.md)
|
|
136
|
+
- [Resumen Visual de Versiones](./docs/plan-versionado-analisis/resumen-visual-versiones.md)
|
|
137
|
+
|
|
138
|
+
## Licencia
|
|
139
|
+
|
|
140
|
+
Este proyecto se distribuye bajo la Licencia MIT. Consulte el archivo [LICENSE](./LICENSE) para más información.
|
|
141
|
+
|
|
142
|
+
## Contribuciones
|
|
143
|
+
|
|
144
|
+
Las contribuciones son bienvenidas. Por favor, abra un *issue* para discutir los cambios propuestos o envíe un *pull request*.
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
# InteractiveGitVersioneer
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/interactive-git-versioneer/)
|
|
4
|
+
[](https://www.python.org/)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](https://github.com/amillanaol/interactive-git-versioneer/actions/workflows/auto-tag.yml)
|
|
7
|
+
|
|
8
|
+
CLI para gestión de versiones semánticas con IA. Crea tags, genera changelogs y publica releases en GitHub de forma interactiva o automatizada.
|
|
9
|
+
## Quick Demo
|
|
10
|
+
|
|
11
|
+
Aquí se mostrará un GIF animado ilustrando el flujo interactivo de `InteractiveGitVersioneer`.
|
|
12
|
+
|
|
13
|
+

|
|
14
|
+
|
|
15
|
+
Gestor interactivo de versiones Git con soporte para tags, releases de GitHub y generación de mensajes con IA (Groq/OpenAI). Incluye modo CI/CD para pipelines automatizados.
|
|
16
|
+
|
|
17
|
+
## Características Principales
|
|
18
|
+
|
|
19
|
+
- **Gestión de Tags**: Menú guiado para crear y gestionar etiquetas de versión
|
|
20
|
+
- **Gestión de Releases**: Crear releases en GitHub, generar changelogs
|
|
21
|
+
- **Inspección Automática**: Detecta commits sin tag
|
|
22
|
+
- **Simulación Segura**: Modos "dry run" para previsualizar cambios
|
|
23
|
+
- **Generación con IA**: Integración Groq/OpenAI para mensajes automáticos
|
|
24
|
+
- **Arquitectura Modular**: Sistema de menús extensible
|
|
25
|
+
|
|
26
|
+
## Instalación Rápida
|
|
27
|
+
|
|
28
|
+
**Requisitos:** Python >= 3.7, GitPython >= 3.1.0, openai >= 1.0.0
|
|
29
|
+
**Opcional:** GitHub CLI (`gh`) para funciones de releases
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
git clone https://github.com/amillanaol/interactive-git-versioneer.git
|
|
33
|
+
cd interactive-git-versioneer
|
|
34
|
+
pip install -e .
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Uso Básico
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Ejecutar menú interactivo principal
|
|
41
|
+
igv
|
|
42
|
+
```
|
|
43
|
+
> Para más comandos consultar el [artículo de comandos disponibles](./docs/comandos-disponibles.md)
|
|
44
|
+
|
|
45
|
+
**Navegación rápida:** `Supr`/`Esc` para volver, `q` para salir.
|
|
46
|
+
|
|
47
|
+
## Estructura del Menú
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
GESTOR DE VERSIONES GIT
|
|
51
|
+
├── 1. Gestionar Commits
|
|
52
|
+
│ ├── Ver lista de commits
|
|
53
|
+
│ ├── Procesar commits individualmente
|
|
54
|
+
│ ├── Ver preview de tags pendientes
|
|
55
|
+
│ ├── Auto-generar todos los tags con IA
|
|
56
|
+
│ ├── Aplicar tags
|
|
57
|
+
│ └── Volver
|
|
58
|
+
├── 2. Gestionar Tags
|
|
59
|
+
│ ├── Ver último tag
|
|
60
|
+
│ ├── Ver tags locales
|
|
61
|
+
│ ├── Ver tags remotos
|
|
62
|
+
│ ├── Modificar tag (submenú paginado)
|
|
63
|
+
│ ├── Eliminar tag local
|
|
64
|
+
│ ├── Eliminar tag remoto
|
|
65
|
+
│ ├── Sincronizar con repositorio remoto
|
|
66
|
+
│ ├── Generar tags con IA
|
|
67
|
+
│ └── Volver al menú principal
|
|
68
|
+
├── 3. Gestionar Releases
|
|
69
|
+
│ ├── Autenticar con GitHub
|
|
70
|
+
│ ├── Crear release en GitHub
|
|
71
|
+
│ ├── Generar changelogs
|
|
72
|
+
│ ├── Ver releases existentes
|
|
73
|
+
│ ├── Modificar un release existente
|
|
74
|
+
│ ├── Eliminar un release existente
|
|
75
|
+
│ ├── Sincronizar con remoto
|
|
76
|
+
│ └── Volver al menú principal
|
|
77
|
+
├── 4. Gestionar Changelogs
|
|
78
|
+
│ ├── Previsualizar changelog
|
|
79
|
+
│ ├── Continuar changelog (manualmente)
|
|
80
|
+
│ ├── Continuar changelog (automático con IA)
|
|
81
|
+
│ ├── Modificar changelogs
|
|
82
|
+
│ ├── Reconstruir todos los changelogs (con IA)
|
|
83
|
+
│ └── Volver
|
|
84
|
+
├── 5. Configuración
|
|
85
|
+
│ ├── Ver configuración actual
|
|
86
|
+
│ ├── Configurar IA (Groq/OpenAI)
|
|
87
|
+
│ ├── Añadir alias 'igv' al sistema
|
|
88
|
+
│ ├── Ayuda - Comandos CLI
|
|
89
|
+
│ └── Volver al menú principal
|
|
90
|
+
└── 6. Salir
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Documentación Completa
|
|
94
|
+
|
|
95
|
+
- [Resumen de Documentación](./docs/01-entrada-navegacion/RESUMEN-DOCUMENTACION.md)
|
|
96
|
+
- [Mapa Visual de Documentación](./docs/01-entrada-navegacion/MAPA-VISUAL-DOCUMENTACION.md)
|
|
97
|
+
- [Changelog Completo](./docs/03-desarrollo/CHANGELOG.md)
|
|
98
|
+
- [Documentación de Completitud](./docs/05-referencia/DOCUMENTACION-COMPLETADA.md)
|
|
99
|
+
- [Migración de Nomenclatura](./docs/05-referencia/MIGRACION-NOMENCLATURA.md)
|
|
100
|
+
|
|
101
|
+
### Documentación por Audiencia
|
|
102
|
+
|
|
103
|
+
- [Guía de Uso - Comandos Básicos](./docs/02-usuario/usuario-inicio-comandos-basicos.md)
|
|
104
|
+
- [Integración IA - Configuración Groq](./docs/04-configuracion/configuracion-ia-groq-integracion.md)
|
|
105
|
+
- [Referencia - Menú Interactivo](./docs/02-usuario/usuario-referencia-menu-opciones.md)
|
|
106
|
+
|
|
107
|
+
### Guías de Ejecución
|
|
108
|
+
|
|
109
|
+
- [Instrucciones de Ejecución Real](./docs/guia-ejecucion-simulacion/instrucciones-ejecucion-real.md)
|
|
110
|
+
- [Simulación "Dry Run"](./docs/guia-ejecucion-simulacion/simulacion-dry-run.md)
|
|
111
|
+
- [Simulación "Full Dry Run"](./docs/guia-ejecucion-simulacion/simulacion-full-dry-run.md)
|
|
112
|
+
|
|
113
|
+
### Estrategia de Versionado
|
|
114
|
+
|
|
115
|
+
- [Plan de Etiquetado de Versiones](./docs/plan-versionado-analisis/plan-etiquetado-versiones.md)
|
|
116
|
+
- [Resumen Visual de Versiones](./docs/plan-versionado-analisis/resumen-visual-versiones.md)
|
|
117
|
+
|
|
118
|
+
## Licencia
|
|
119
|
+
|
|
120
|
+
Este proyecto se distribuye bajo la Licencia MIT. Consulte el archivo [LICENSE](./LICENSE) para más información.
|
|
121
|
+
|
|
122
|
+
## Contribuciones
|
|
123
|
+
|
|
124
|
+
Las contribuciones son bienvenidas. Por favor, abra un *issue* para discutir los cambios propuestos o envíe un *pull request*.
|
|
Binary file
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# API Reference
|
|
2
|
+
|
|
3
|
+
Esta página usa `mkdocstrings` para renderizar la documentación de la API a partir de los docstrings.
|
|
4
|
+
|
|
5
|
+
::: interactive_git_versioneer
|
|
6
|
+
|
|
7
|
+
Si deseas limitar módulos o personalizar la vista, copia esta página y usa `:::` apuntando a módulos concretos, por ejemplo:
|
|
8
|
+
|
|
9
|
+
```md
|
|
10
|
+
::: interactive_git_versioneer.core.git_ops
|
|
11
|
+
```
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Interactive Git Versioneer
|
|
2
|
+
|
|
3
|
+
Bienvenido a la documentación de **Interactive Git Versioneer**.
|
|
4
|
+
|
|
5
|
+
Este sitio contiene:
|
|
6
|
+
|
|
7
|
+
- Guía de uso rápida
|
|
8
|
+
- Referencia API generada desde los docstrings (con mkdocstrings)
|
|
9
|
+
|
|
10
|
+
Para generar la documentación localmente, instala las dependencias y ejecuta:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
pip install mkdocs mkdocstrings[python]
|
|
14
|
+
mkdocs serve
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Consulta la sección **API** para la referencia automática de la librería.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Core: AI Helpers
|
|
2
|
+
|
|
3
|
+
Descripción: utilidades para integrar con APIs de IA (OpenAI/Groq). Contiene funciones
|
|
4
|
+
para crear el cliente y generar mensajes/tipos de versión.
|
|
5
|
+
|
|
6
|
+
Funciones clave:
|
|
7
|
+
|
|
8
|
+
- `get_openai_client()` — Inicializa y devuelve el cliente configurado.
|
|
9
|
+
- `generate_tag_message(commit_message, commit_diff, version_type, ...)` — Genera un mensaje de tag.
|
|
10
|
+
- `determine_version_type(commit_message, commit_diff)` — Clasifica (major/minor/patch) y devuelve una razón.
|
|
11
|
+
|
|
12
|
+
Ejemplo de uso:
|
|
13
|
+
|
|
14
|
+
```python
|
|
15
|
+
from interactive_git_versioneer.core.ai import generate_tag_message, determine_version_type
|
|
16
|
+
|
|
17
|
+
vtype, reason = determine_version_type("Add feature X", "diff...")
|
|
18
|
+
msg = generate_tag_message("Add feature X", "diff...", vtype)
|
|
19
|
+
print(vtype, reason)
|
|
20
|
+
print(msg)
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Notas:
|
|
24
|
+
- Requiere configuración `OPENAI.key` y `OPENAI.baseURL` en la configuración del proyecto.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# Core: Git Operations
|
|
2
|
+
|
|
3
|
+
Descripción: funciones de bajo nivel para interactuar con repositorios Git (envolviendo GitPython).
|
|
4
|
+
|
|
5
|
+
Funciones clave:
|
|
6
|
+
|
|
7
|
+
- `get_git_repo()` — Obtiene el `Repo` actual (lanza SystemExit si no es repo).
|
|
8
|
+
- `parse_version(tag)` — Parsea una etiqueta en `(major, minor, patch)`.
|
|
9
|
+
- `get_last_tag(repo)` — Devuelve el último tag disponible.
|
|
10
|
+
- `get_untagged_commits(repo)` — Lista commits posteriores al último tag.
|
|
11
|
+
- `get_commit_diff(repo, commit_hash)` — Obtiene el diff de un commit.
|
|
12
|
+
|
|
13
|
+
Ejemplo de uso:
|
|
14
|
+
|
|
15
|
+
```python
|
|
16
|
+
from interactive_git_versioneer.core.git_ops import get_git_repo, get_untagged_commits
|
|
17
|
+
|
|
18
|
+
repo = get_git_repo()
|
|
19
|
+
commits = get_untagged_commits(repo)
|
|
20
|
+
for c in commits:
|
|
21
|
+
print(c.hash, c.message)
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Consulta la sección **API** para detalles generados desde docstrings.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Releases: Gestión de releases y changelogs
|
|
2
|
+
|
|
3
|
+
Descripción: herramientas para integrar con releases remotos (p. ej. GitHub) y generar changelogs.
|
|
4
|
+
|
|
5
|
+
Funciones y flujos principales:
|
|
6
|
+
|
|
7
|
+
- `run_releases_menu(repo)` — Menú interactivo para releases.
|
|
8
|
+
- `run_changelog_submenu(repo)` — Submenú para generación/edición/guardado de changelogs.
|
|
9
|
+
- `action_generate_all_changelogs_with_ai(repo, rebuild=False)` — Regenera changelogs usando IA.
|
|
10
|
+
|
|
11
|
+
Ejemplo de uso (interactivo):
|
|
12
|
+
|
|
13
|
+
```python
|
|
14
|
+
from interactive_git_versioneer.tags.tagger import run_interactive_tagger
|
|
15
|
+
run_interactive_tagger()
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Consejo: Usa `mkdocstrings` API para ver firma completa y ejemplos de cada función.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Tags: Tagger interactivo
|
|
2
|
+
|
|
3
|
+
Descripción: interfaz y utilidades para gestionar tags localmente y en remoto.
|
|
4
|
+
|
|
5
|
+
Funciones y comandos relevantes:
|
|
6
|
+
|
|
7
|
+
- `run_interactive_tagger(dry_run=False, push=False)` — Interfaz principal interactiva.
|
|
8
|
+
- `run_auto_tagger(dry_run=False, push=False, version_type="auto")` — Modo no interactivo (CI).
|
|
9
|
+
- `manage_tags_interactive(repo, dry_run=False, push=False)` — Submenú para modificar tags.
|
|
10
|
+
|
|
11
|
+
Ejemplo (modo automático):
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
igv tag --auto --push
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Para más detalles de parámetros y retornos, revisa la referencia API.
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Guía de Resolución de Problemas CI/CD - Interactive Git Versioneer
|
|
2
|
+
|
|
3
|
+
## ¿Qué necesito? → ¿Dónde lo busco?
|
|
4
|
+
|
|
5
|
+
| Necesidad | Ubicación |
|
|
6
|
+
|-----------|-----------|
|
|
7
|
+
| Configurar API keys en GitHub | Repository Settings → Secrets and variables → Actions |
|
|
8
|
+
| Ver configuración del workflow | [.github/workflows/auto-tag.yml](../.github/workflows/auto-tag.yml) |
|
|
9
|
+
| Validar configuración local | `python -m interactive_git_versioneer.main config set` |
|
|
10
|
+
| Ejecutar prueba local | `python -m interactive_git_versioneer.main tag --auto --dry-run` |
|
|
11
|
+
|
|
12
|
+
## Configuración de Secrets en GitHub
|
|
13
|
+
|
|
14
|
+
| Secreto | Valor Requerido | Propósito |
|
|
15
|
+
|---------|----------------|-----------|
|
|
16
|
+
| GROQ_API_KEY | API key de Groq | Autenticación con servicio IA |
|
|
17
|
+
| (opcional) OPENAI.key | API key de OpenAI | Alternativa a Groq |
|
|
18
|
+
|
|
19
|
+
### Pasos de Configuración
|
|
20
|
+
|
|
21
|
+
1. Navegar al repositorio en GitHub
|
|
22
|
+
2. Settings → Secrets and variables → Actions
|
|
23
|
+
3. New repository secret
|
|
24
|
+
4. Ingresar nombre y valor del secreto
|
|
25
|
+
5. Confirmar creación
|
|
26
|
+
|
|
27
|
+
## Problema → Solución
|
|
28
|
+
|
|
29
|
+
| Problema | Solución |
|
|
30
|
+
|----------|----------|
|
|
31
|
+
| "Configuración de IA incompleta" | Verificar que GROQ_API_KEY exista en secrets de GitHub |
|
|
32
|
+
| "Error: Process completed with exit code 1" | Validar formato correcto del workflow en líneas 26-30 |
|
|
33
|
+
| Falla en paso "Configure API" | Confirmar variables de entorno en el contenedor CI/CD |
|
|
34
|
+
| No se ejecuta tagging automático | Revisar permisos: contents: write en línea 12 |
|
|
35
|
+
|
|
36
|
+
## Referencias del Código
|
|
37
|
+
|
|
38
|
+
| Funcionalidad | Archivo | Línea |
|
|
39
|
+
|---------------|---------|-------|
|
|
40
|
+
| Workflow CI/CD | `.github/workflows/auto-tag.yml` | 26-37 |
|
|
41
|
+
| Configuración API | Módulo main | Líneas config |
|
|
42
|
+
| Ejecución tagging | Módulo main | Líneas tag |
|
|
43
|
+
|
|
44
|
+
## Versión
|
|
45
|
+
|
|
46
|
+
| Versión | Generado | Estado | Comentarios |
|
|
47
|
+
|---------|----------|--------|-------------|
|
|
48
|
+
| 1.0 | 2025-02-05 | Activo | Guía inicial para problemas CI/CD con secrets de GitHub |
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Uso rápido
|
|
2
|
+
|
|
3
|
+
## Instalación
|
|
4
|
+
|
|
5
|
+
1. Clona el repositorio
|
|
6
|
+
2. Instala el paquete en editable (recomendado para desarrollo):
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
pip install -e .
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Comandos principales
|
|
13
|
+
|
|
14
|
+
- `igv` — interfaz principal (menú interactivo)
|
|
15
|
+
- `igv tag` — subcomandos de tagging (si están expuestos)
|
|
16
|
+
|
|
17
|
+
## Configuración de IA (opcional)
|
|
18
|
+
|
|
19
|
+
Configura las claves con `igv config set`:
|
|
20
|
+
|
|
21
|
+
- `OPENAI.key` — API key
|
|
22
|
+
- `OPENAI.baseURL` — URL base del proveedor
|
|
23
|
+
|
|
24
|
+
## Generar documentación
|
|
25
|
+
|
|
26
|
+
Instala MkDocs y mkdocstrings y ejecuta:
|
|
27
|
+
|
|
28
|
+
```bash
|
|
29
|
+
pip install mkdocs mkdocstrings[python]
|
|
30
|
+
mkdocs build
|
|
31
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# =============================================================================
|
|
3
|
+
# Script de configuración post-despliegue para igv
|
|
4
|
+
# Credenciales de API (Groq/OpenAI)
|
|
5
|
+
# =============================================================================
|
|
6
|
+
|
|
7
|
+
set -e
|
|
8
|
+
|
|
9
|
+
VENV_DIR="/opt/igv/venv"
|
|
10
|
+
|
|
11
|
+
# Activar entorno virtual
|
|
12
|
+
source "${VENV_DIR}/bin/activate"
|
|
13
|
+
|
|
14
|
+
# Configurar Groq API (las variables vienen de Jenkins credentials)
|
|
15
|
+
if [ -n "${GROQ_API_KEY}" ]; then
|
|
16
|
+
echo "Configurando Groq API..."
|
|
17
|
+
igv config set OPENAI.key "${GROQ_API_KEY}"
|
|
18
|
+
igv config set OPENAI.baseURL "https://api.groq.com/openai/v1"
|
|
19
|
+
igv config set OPENAI.model "llama-3.3-70b-versatile"
|
|
20
|
+
echo "Configuración de API completada"
|
|
21
|
+
else
|
|
22
|
+
echo "ADVERTENCIA: GROQ_API_KEY no está definida"
|
|
23
|
+
fi
|
|
24
|
+
|
|
25
|
+
# Mostrar configuración actual (sin mostrar la key completa)
|
|
26
|
+
echo ""
|
|
27
|
+
echo "Configuración actual:"
|
|
28
|
+
igv config list
|
|
29
|
+
|
|
30
|
+
deactivate
|