Skip to content

Commit 579b47b

Browse files
committed
docs: add configuration section and reorder README
- Move configuration section before usage - Document multi-profile config.toml structure - Clarify that config and remote providers are planned (not yet implemented) - Add config multi-profile and remote providers to status table - Add usage argument table
1 parent 7a78deb commit 579b47b

1 file changed

Lines changed: 71 additions & 1 deletion

File tree

README.md

Lines changed: 71 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ Git Reports es una herramienta construida en Rust que analiza repositorios Git y
2424
| Análisis de commits ||
2525
| Métricas de contribuidores ||
2626
| Exportación de reportes | 🚧 WIP |
27+
| Configuración multi-perfil (config.toml) | ⏳ Planificado |
28+
| Soporte providers remotos (GitHub/GitLab/Bitbucket) | ⏳ Planificado |
2729
| Visualización web | ⏳ Planificado |
2830

2931
## 🚀 Inicio Rápido
@@ -41,12 +43,80 @@ cd git-reports
4143
cargo build --release
4244
```
4345

44-
### Uso
46+
## ⚙️ Configuración
47+
48+
> **Estado**: ⏳ Planificado — aún no implementado. El diseño de la configuración está definido en [config.toml.example](config.toml.example) como referencia para la implementación futura.
49+
50+
Git Reports trabajará con perfiles: cada uno agrupa un email, un token y una lista de repositorios remotos. Esto permite manejar varias empresas, providers y cuentas desde un único archivo.
51+
52+
### Archivo de configuración
53+
54+
```bash
55+
cp config.toml.example config.toml
56+
```
57+
58+
Estructura de `config.toml`:
59+
60+
```toml
61+
[[profile]]
62+
name = "trabajo"
63+
email = "yo@empresa.com"
64+
token = "ghp_xxxxxxxxxxxxxxxxxxxx" # Personal Access Token del provider
65+
66+
[[profile.repo]]
67+
provider = "github" # github | gitlab | bitbucket
68+
owner = "mi-empresa"
69+
name = "mi-repo"
70+
```
71+
72+
### Múltiples empresas, correos y tokens
73+
74+
Cada `[[profile]]` es una identidad independiente. Puedes tener tantos como necesites:
75+
76+
| Situación | Solución |
77+
|---|---|
78+
| Varias empresas | Un perfil por empresa, cada uno con su email y token |
79+
| Mismo correo en GitHub y Bitbucket | Un perfil por provider, con su propio token |
80+
| Freelance + trabajo + personal | Un perfil por contexto |
81+
82+
```toml
83+
[[profile]]
84+
name = "empresa-a"
85+
email = "yo@empresa-a.com"
86+
token = "ghp_..." # GitHub PAT de empresa-a
87+
[[profile.repo]]
88+
provider = "github"
89+
owner = "empresa-a"
90+
name = "backend-api"
91+
92+
[[profile]]
93+
name = "empresa-b"
94+
email = "yo@empresa-b.com"
95+
token = "glpat-..." # GitLab PAT de empresa-b
96+
[[profile.repo]]
97+
provider = "gitlab"
98+
owner = "empresa-b"
99+
name = "infra-scripts"
100+
```
101+
102+
Ver [config.toml.example](config.toml.example) para un ejemplo completo con todos los casos.
103+
104+
> ⚠️ Agrega `config.toml` a tu `.gitignore` para no exponer tokens.
105+
106+
## 🖥️ Uso
107+
108+
> **Estado actual**: solo analiza repositorios locales ya clonados.
45109
46110
```bash
47111
cargo run --release -- --repo /path/to/repo --output report.json
48112
```
49113

114+
| Argumento | Descripción | Default |
115+
|---|---|---|
116+
| `--repo` | Ruta local al repositorio | `.` |
117+
| `--output` | Archivo JSON de salida ||
118+
| `--period` | Periodo: `week`, `month`, `all` | `week` |
119+
50120
## 🛠️ Stack Tecnológico
51121

52122
- **Lenguaje**: Rust

0 commit comments

Comments
 (0)