{"id":31572239,"url":"https://github.com/8infinitecloud/notion-api-integration-github","last_synced_at":"2026-05-09T05:33:29.263Z","repository":{"id":313850660,"uuid":"1053140351","full_name":"8infinitecloud/notion-api-integration-github","owner":"8infinitecloud","description":"[PREVIEW] Sincroniza repositorios de GitHub con Notion: estrellas, issues y actividad.","archived":false,"fork":false,"pushed_at":"2025-09-09T04:35:27.000Z","size":1704,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-05T13:51:30.307Z","etag":null,"topics":["github","notion"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/8infinitecloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-09T03:42:24.000Z","updated_at":"2025-09-09T04:43:41.000Z","dependencies_parsed_at":"2025-09-09T06:45:47.949Z","dependency_job_id":"f32e82a6-2a55-4773-b67a-5ff83ab865c0","html_url":"https://github.com/8infinitecloud/notion-api-integration-github","commit_stats":null,"previous_names":["8infinitecloud/notion-api-integration-github"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/8infinitecloud/notion-api-integration-github","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8infinitecloud%2Fnotion-api-integration-github","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8infinitecloud%2Fnotion-api-integration-github/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8infinitecloud%2Fnotion-api-integration-github/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8infinitecloud%2Fnotion-api-integration-github/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/8infinitecloud","download_url":"https://codeload.github.com/8infinitecloud/notion-api-integration-github/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/8infinitecloud%2Fnotion-api-integration-github/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32808475,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-08T08:22:46.396Z","status":"online","status_checked_at":"2026-05-09T02:00:06.633Z","response_time":123,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["github","notion"],"created_at":"2025-10-05T13:50:24.868Z","updated_at":"2026-05-09T05:33:29.232Z","avatar_url":"https://github.com/8infinitecloud.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GitHub to Notion Sync\n\nSincroniza automáticamente tus repositorios de GitHub con una base de datos de Notion, generando insights y métricas útiles.\n\n## 🚀 Características\n\n- Sincronización automática de repositorios públicos y privados\n- Extracción de métricas: estrellas, forks, issues, lenguajes\n- Análisis de insights: actividad reciente, estadísticas de lenguajes\n- Integración completa con Notion para visualización y reportes\n\n## 📋 Requisitos\n\n- Node.js 16+\n- Cuenta de GitHub\n- Workspace de Notion\n- Tokens de acceso para ambas plataformas\n\n## ⚡ Instalación\n\n1. **Clona el repositorio:**\n```bash\ngit clone \u003ctu-repo\u003e\ncd github-notion-sync\n```\n\n2. **Instala dependencias:**\n```bash\nnpm install\n```\n\n3. **Configura variables de entorno:**\n```bash\ncp .env.example .env\n```\n\n## 🔧 Configuración\n\n### 1. Token de GitHub\n- Ve a https://github.com/settings/tokens\n- Genera un nuevo token (classic)\n- Permisos necesarios: `repo`, `user`\n- Copia el token a `.env`\n\n### 2. Token de Notion\n- Ve a https://www.notion.so/my-integrations\n- Crea nueva integración\n- Copia el token a `.env`\n\n### 3. Base de datos de Notion\nCrea una base de datos con estas propiedades:\n\n| Propiedad | Tipo | Descripción |\n|-----------|------|-------------|\n| Name | Title | Nombre del repositorio |\n| Description | Text | Descripción del repo |\n| Language | Select | Lenguaje principal |\n| Stars | Number | Número de estrellas |\n| Forks | Number | Número de forks |\n| Issues | Number | Issues abiertas |\n| Size (KB) | Number | Tamaño en KB |\n| Created | Date | Fecha de creación |\n| Updated | Date | Última actualización |\n| URL | URL | Link al repositorio |\n| Private | Checkbox | Si es privado |\n| Topics | Multi-select | Tags del repo |\n\n### 4. Archivo .env\n```env\nNOTION_TOKEN=secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nGITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\nNOTION_DATABASE_ID=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n```\n\n## 🏃‍♂️ Uso\n\n### Sincronización manual\n```bash\nnpm run sync\n```\n\n### Sincronización automática con GitHub Actions\n\nEl proyecto incluye un GitHub Action que se ejecuta automáticamente:\n\n- **Diariamente a las 9:00 AM UTC**\n- **Manualmente** desde la pestaña Actions\n\n#### Configurar secrets en GitHub:\n1. Ve a tu repositorio → Settings → Secrets and variables → Actions\n2. Agrega estos secrets:\n   - `NOTION_TOKEN`: Tu token de Notion\n   - `GB_TOKEN`: Tu token de GitHub\n   - `NOTION_DATABASE_ID`: ID de tu base de datos\n\n#### Ejecución manual:\n- Ve a Actions → \"Sync GitHub Repos to Notion\" → \"Run workflow\"\n\n### Programar sincronización local (alternativa)\n```bash\n0 9 * * * cd /ruta/al/proyecto \u0026\u0026 npm run sync\n```\n\n## 📊 Insights Generados\n\nEl script genera automáticamente:\n\n- **Total de repositorios**\n- **Estadísticas de lenguajes** (top 5)\n- **Total de estrellas** y promedio\n- **Repositorio más popular**\n- **Actividad reciente** (últimos 30 días)\n\n## 📁 Estructura del Proyecto\n\n```\n├── github-notion-sync.js    # Clase principal\n├── sync.js                  # Script de ejecución\n├── package.json            # Dependencias\n├── .env.example           # Template de configuración\n└── README.md             # Documentación\n```\n\n## 🔄 Casos de Uso en Notion\n\nUna vez sincronizado, puedes:\n\n- **Dashboards:** Crear vistas por lenguaje, popularidad, fecha\n- **Reportes:** Generar informes automáticos de actividad\n- **Portfolio:** Mostrar proyectos destacados\n- **Análisis:** Identificar patrones en tu desarrollo\n- **Planificación:** Priorizar mantenimiento de repos\n\n## 🛠️ Personalización\n\n### Agregar nuevas métricas\nModifica el método `getRepositories()` en `github-notion-sync.js`:\n\n```javascript\n// Ejemplo: agregar commits recientes\nconst commits = await this.github.rest.repos.listCommits({\n  owner: repo.owner.login,\n  repo: repo.name,\n  per_page: 1\n});\n```\n\n### Filtrar repositorios\nAgrega filtros en `getRepositories()`:\n\n```javascript\nreturn repos.data\n  .filter(repo =\u003e !repo.fork) // Excluir forks\n  .filter(repo =\u003e repo.stargazers_count \u003e 0) // Solo con estrellas\n  .map(repo =\u003e ({...}));\n```\n\n## 🚨 Troubleshooting\n\n### Error de autenticación\n- Verifica que los tokens sean válidos\n- Asegúrate de que la integración de Notion tenga acceso a la base de datos\n\n### Límites de API\n- GitHub: 5000 requests/hora\n- Notion: 3 requests/segundo\n\n### Base de datos no encontrada\n- Verifica el `NOTION_DATABASE_ID`\n- Confirma que la integración tenga permisos\n\n## 📝 Licencia\n\nMIT License - Úsalo libremente para tus proyectos.\n\n## 🤝 Contribuciones\n\n¡Las contribuciones son bienvenidas! Abre un issue o envía un PR.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F8infinitecloud%2Fnotion-api-integration-github","html_url":"https://awesome.ecosyste.ms/projects/github.com%2F8infinitecloud%2Fnotion-api-integration-github","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2F8infinitecloud%2Fnotion-api-integration-github/lists"}