Mide el crecimiento de documentación en un repositorio Git
Project description
doc-meter
Mide el crecimiento de documentación en un repositorio Git a lo largo del tiempo. Itera sobre los commits, filtra archivos de documentación por extensión, acumula líneas netas y genera una gráfica de crecimiento — incluyendo comentarios en código fuente como indicador de documentación técnica.
Instalación
pip install -r requirements.txt
Requisitos: Python 3.10+ y Git en el PATH.
Uso
# Análisis básico — solo resumen en consola
python doc_meter.py /ruta/al/repo
# Guardar gráfica como imagen
python doc_meter.py /ruta/al/repo --output salida.png
# Agrupar por mes, solo branch main
python doc_meter.py /ruta/al/repo --interval month --branch main --output salida.png
# Solo resumen en consola (sin análisis de comentarios)
python doc_meter.py /ruta/al/repo --no-comments
# Exportar datos a CSV
python doc_meter.py /ruta/al/repo --output-csv datos.csv
# Gráfica y CSV al mismo tiempo
python doc_meter.py /ruta/al/repo --output salida.png --output-csv datos.csv
# Limitar a un rango de fechas
python doc_meter.py /ruta/al/repo --begin 2024-01-01 --end 2024-12-31 --output salida.png
# Solo desde una fecha (hasta hoy)
python doc_meter.py /ruta/al/repo --begin 2023-06-01 --output-csv datos.csv
Opciones
| Argumento | Descripción | Default |
|---|---|---|
repo |
Ruta al repositorio Git | (requerido) |
--interval |
Agrupación temporal: day, week, month |
week |
--branch |
Branch a analizar | branch actual |
--output, -o |
Ruta para guardar la gráfica. Si se omite, no se genera gráfica. | — |
--output-csv |
Ruta para exportar los datos como CSV | — |
--begin |
Fecha de inicio del análisis (YYYY-MM-DD) |
hace un año |
--end |
Fecha de fin del análisis (YYYY-MM-DD) |
hoy |
--extensions |
Extensiones de documentación | ver lista abajo |
--no-comments |
Omitir análisis de comentarios en código fuente | — |
Extensiones de documentación detectadas por defecto:
.adoc .asc .asciidoc .ipynb .markdown .md .mdx .org .plantuml .puml .qmd .rst .tex .txt .wiki
Lenguajes analizados para comentarios: Python, JavaScript/TypeScript, C#, Java, C/C++, Go, Rust, Kotlin, Swift, Scala, Dart, Ruby, Shell, SQL, Lua, HTML, CSS/SCSS y más.
Salida
Consola: commits procesados, período, líneas añadidas/eliminadas/netas y total acumulado de comentarios en código.
Gráfica de dos paneles:
- Superior: crecimiento acumulado, una línea por extensión de documentación + línea total (negra gruesa) + línea de comentarios en código fuente (naranja punteada).
- Inferior: cambio neto por período (verde = crecimiento, rojo = reducción).
CSV (con --output-csv): una fila por período con las columnas date, total_docs, net_docs, una columna por cada extensión detectada y comments_src si se analizaron comentarios.
Ejemplo
Uso como GitHub Action
Publica el repositorio en GitHub y referencia la acción en cualquier workflow:
steps:
- name: Checkout (full history)
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Medir crecimiento de documentación
uses: {owner}/doc-meter@v1
with:
repo: . # directorio del repo (default: .)
interval: month # day | week | month
output: docs_growth.png # si se omite, no se genera gráfica
output-csv: docs_growth.csv
begin: '2024-01-01' # opcional
# end: '2024-12-31' # opcional, default: hoy
# branch: main # opcional
# no-comments: 'true' # opcional
fetch-depth: 0es obligatorio: sin élgit logsolo ve el commit más reciente.
Inputs
| Input | Descripción | Default |
|---|---|---|
repo |
Ruta al repositorio a analizar | . |
interval |
Agrupación temporal: day, week, month |
week |
branch |
Branch a analizar | branch actual |
output |
Ruta de la gráfica PNG | — (sin gráfica) |
output-csv |
Ruta del CSV de datos | — |
begin |
Fecha de inicio (YYYY-MM-DD) |
hace un año |
end |
Fecha de fin (YYYY-MM-DD) |
hoy |
no-comments |
'true' para omitir análisis de comentarios |
'false' |
python-version |
Versión de Python a usar | 3.12 |
CI / GitHub Pages
El repositorio incluye un workflow de GitHub Actions (.github/workflows/doc-meter.yml) que se ejecuta automáticamente en cada push a main:
- Clona el repositorio con historial completo (
fetch-depth: 0). - Instala las dependencias.
- Ejecuta
doc_meter.pysobre el propio repo con agrupación mensual y generadocs_growth.png+docs_growth.csv. - Construye una página
index.htmlque embebe la gráfica y muestra los datos en tabla. - Publica todo en GitHub Pages usando el entorno oficial
github-pages.
El resultado queda disponible en:
https://PunteriaCero.github.io/doc-meter/
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 doc_meter-0.1.0.tar.gz.
File metadata
- Download URL: doc_meter-0.1.0.tar.gz
- Upload date:
- Size: 9.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82166117c37e908c84964be617bf247d6274af4db964da2b1107b5386fbf11d2
|
|
| MD5 |
c2da712b350f150fe8e7c64d60ea0150
|
|
| BLAKE2b-256 |
0c6852347f8863fc69908b2e1c6786f54d3ccee71729fb71f28be3dfd0dc5e2f
|
File details
Details for the file doc_meter-0.1.0-py3-none-any.whl.
File metadata
- Download URL: doc_meter-0.1.0-py3-none-any.whl
- Upload date:
- Size: 9.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4caabd629e8ee6f6d658220232bbc718ec732c4b25f2463cd9e31d1ad4712543
|
|
| MD5 |
210be1c09f661b649bde146024395ac2
|
|
| BLAKE2b-256 |
b3d9f830d9b31a8c919edbb25447362330629aa064c69da105c28abe1928d02c
|