¡Bienvenido a TechCrafted API, la plataforma que automatiza la recopilación de métricas de GitHub y la generación de contenido técnico listo para publicar!
El servicio expone una API REST construida con FastAPI y respaldada por SQLAlchemy, de modo que puedas consultar, almacenar y enriquecer datos de repositorios, así como generar artículos con tecnología de IA de forma sencilla y escalable.
| Funcionalidad | Descripción |
|---|---|
| Extracción inteligente de datos | Consume la API de GitHub y persiste estadísticas de tráfico, estrellas, forks, watchers y más. |
| Generación de artículos con IA | Combina OpenAI y plantillas internas para crear entradas de blog optimizadas en Markdown. |
| Pipeline asíncrono y desacoplado | Tareas de larga duración se ejecutan de manera no bloqueante, garantizando alto rendimiento. |
| Observabilidad total | Logging granular y hooks SQL para medir y trazar cada consulta. |
| Listo para producción | Imagen Docker ligera, orquestación con Jenkins y health-checks incorporados. |
- Desarrolladores que deseen integrar métricas de sus repositorios en dashboards personalizados.
- Equipos de marketing técnico que necesiten contenido actualizado y basado en datos reales.
- Start-ups que quieran automatizar informes de rendimiento de proyectos open-source.
- Blogs y comunidades que busquen aumentar la cadencia de publicación con artículos generados por IA.
┌─────────┐ ┌── build ──┐
│ Jenkins │ ────► │ Blog Page │
[GitHub API] └─────────┘ └───────────┘
│ ▲ ▲
▼ │ │
┌────────┐ ╔═══════════╗ ┌──────────┐
│ github │ ────► ║ FastAPI ║ ───► │ database │
└────────┘ ╚═══════════╝ └──────────┘
▲ │
│ ▼
┌─────────────────┐ [SQLITE]
[OpenAI] ────► │ techAI Pipeline │
└─────────────────┘
- Python ≥ 3.11
virtualenv- Docker ≥ 24 (opcional, recomendado para despliegues)
- Claves de acceso a GitHub y OpenAI (variables de entorno)
# 1. Clona el repositorio
$ git clone https://github.com/TechCrafted-dev/Backend.git
$ cd techcrafted-api
# 2. Crea y activa un entorno virtual
$ python -m venv .venv
$ source .venv/bin/activate
# 3. Instala dependencias
$ pip install -r requirements.txt
# 4. Configura tus variables de entorno y ajustes
# Copia el archivo de ejemplo y añade tus claves de API
$ cp .env.example .env
# Renombra el archivo config_template.json a config.json
# Edita config.json con tus ajustes específicos.
# 5. Inicia la API
# El script utiliza la configuración definida en main.py, que no activa la recarga automática.
$ python main.py
La API utiliza el sistema de logging nativo de Python y está configurada para ofrecer un control granular sobre la salida de cada módulo.
- Configuración Centralizada: Toda la configuración de logging se gestiona en
modules/config.py. - Niveles Personalizables: Puedes personalizar los niveles de logging para cada componente (
main,database,techAI,httpx, etc.) directamente desde el archivodata/config.jsonsin necesidad de modificar el código.
Para ajustar los niveles, añade un objeto LOGGER a tu data/config.json así:
{
"GITEA": {
"...": "..."
},
"LOGGER": {
"main": "DEBUG",
"database": "WARNING",
"httpx": "WARNING"
}
}Los niveles de logging soportados son DEBUG, INFO, WARNING, ERROR, y CRITICAL. Al iniciar, la aplicación informará qué niveles personalizados se han cargado.
$ docker build -t techcrafted-api:latest .
$ mkdir -p ${HOME}/techcrafted-api/data
$ docker run -d -p 3000:3000 \
--restart unless-stopped \
-v ${HOME}/techcrafted-api/data:/modules/data \
techcrafted-api:latest| Método | Ruta | Descripción |
|---|---|---|
| GET | /health |
Comprobación de estado de la aplicación. |
| GET | /github_user |
Devuelve los datos de usuario en GitHub. |
| GET | /repos |
Lista los repositorios almacenados. |
| POST | /repos |
Fuerza la actualización de métricas de los repositorios. |
| GET | /posts |
Devuelve los artículos generados. |
| POST | /posts/update_all |
Regenera los post si han habido cambios en el repositio |
Descubre el resto en el SWAGGER una vez que la API esté corriendo.
- Obtén los repositorios de GitHub
POST /repos. - Se actualiza la base de datos con los datos más recientes.
- Se invoca
POST /posts. - Se arma un esquema del artículo (outline) de forma dinámica.
- OpenAI produce un borrador extenso.
- Se pule el Markdown y se guarda en la base de datos.
- El endpoint responde con el URL o ID del nuevo post.
- Compatibilidad con GitLab y Bitbucket.
- Sistema de cache con Redis.
- Plugin para publicar directamente en plataformas de blogging.
- Panel web con visualización de métricas.
- Haz un fork y crea tu rama:
git checkout -b feature/mi-mejora - Sigue la guía de estilo PEP 8 y añade pruebas si procede.
- Envía un pull request describiendo claramente el cambio.
- ¡Disfruta del open-source!
Distribuido bajo la licencia GPL 3.0. Consulta el archivo LICENSE para más información.
¿Dudas o sugerencias? Abre un issue o contacta al mantenedor principal.
¡Gracias por interesarte en TechCrafted API!