OdooWiki OCA HUB

Github Connector

github_connector folder_open OCA/interface-git open_in_new
Connector Licencia: AGPL-3

Este módulo te permite:

  • Obtener en Odoo información social de Github (Organizations, Teams, Users)
  • Obtener en Odoo información de la estructura del código de Github (Repositories, Branches)
  • Descargar el código fuente desde Github
  • Analizar el código del repositorio a partir de reglas creadas previamente

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 18.0

Conecta Odoo con GitHub para importar y mantener sincronizados organizaciones, equipos, miembros, repositorios y ramas, descargar el código fuente localmente y analizar estadísticas de código por reglas.

Este módulo añade un área de GitHub en Odoo donde puedes almacenar y sincronizar información de GitHub. Puedes crear organizaciones, repositorios y equipos directamente desde Odoo o importarlos por nombre, y luego usar los botones de sincronización para actualizar miembros, repositorios, equipos y ramas desde GitHub.

  • Las organizaciones muestran sus miembros, repositorios, equipos y series, con recuentos y botones para abrir las listas relacionadas.
  • Los repositorios muestran ramas, equipos y un indicador 'ignored'; los repositorios ignorados no se sincronizan para ramas ni descarga de código.
  • Las ramas se pueden descargar a una carpeta local y analizar. Las reglas de análisis (con patrones de ruta) cuentan líneas de código, documentación y vacías usando la herramienta cloc, y los resultados se almacenan por regla.
  • Los trabajos programados pueden actualizar automáticamente organizaciones/equipos, listas de ramas, descargar código y analizar ramas.
  • Los partners (contactos) están vinculados a equipos y organizaciones de GitHub, con un indicador para cuentas bot.
  • Un parámetro de configuración o el archivo de configuración de Odoo debe contener un token de acceso de GitHub; de lo contrario, la sincronización genera un error.
  • Los asistentes te permiten crear un nuevo repositorio o equipo en GitHub desde Odoo.

El módulo toca res.partner, github.organization, github.repository, github.repository.branch, github.team, las reglas de análisis y sus informes.

Depende de

baseweb

Menús que añade

Repository branch analysis ruleGithubGithub Communitymenu_github_organizationmenu_github_teammenu_res_partnerGithub Repositorymenu_github_repositorymenu_github_repository_branchSettingsSync ObjectCreate Team in GithubCreate Repo in GithubAnalysis rulesAnalysis rule groupsReportsmenu_branch_by_seriemenu_size_by_serie
Modelos y campos (17)
  • github.team · modelo nuevoname, privacy, parent_id (Parent Team), github_url (Github URL), description, partner_ids (Members), partner_qty (Number of Members), complete_name, repository_ids (Repositories), repository_qty (Number of Repositories), organization_id (Organization)
  • res.partner · modelo nuevois_bot_account (Is Bot Github Account), github_team_qty (Number of Teams), organization_ids (Organizations), organization_qty (Number of Organizations), github_team_partner_ids (Teams)
  • github.repository · modelo nuevoname, color (Color Index), website, team_ids (Teams), team_qty (Number of Teams), is_ignored, description, complete_name, organization_id (Organization), analysis_rule_ids (Analysis Rules), repository_branch_ids (Branches), repository_branch_qty (Number of Branches), inhibit_inherited_rules (Inhibit inherited rules)
  • wizard.create.team · modelo nuevoname, privacy, description, organization_id, wizard_partner_ids (Team Members), wizard_repository_ids (Team Repositories)
  • github.organization · modelo nuevoname (Organization Name), email, image, location, team_ids (Teams), team_qty (Number of Teams), member_ids (Members), member_qty (Number of Members), description, website_url, ci_url_pattern (CI URL Pattern), repository_ids (Repositories), repository_qty (Number of Repositories), analysis_rule_ids (Analysis Rules), coverage_url_pattern (Coverage URL Pattern), organization_serie_ids (Organization Series), organization_serie_qty (Number of Series), ignored_repository_names (Ignored Repositories)
  • github.team.partner · modelo nuevorole, team_id (Team), partner_id (Member), context_search_default_team_id, context_search_default_partner_id
  • github.analysis.rule · modelo nuevoname, paths, group_id (Group)
  • abstract.github.model · modelo nuevogithub_url (Github URL), github_name (Github Technical Name), github_write_date (Last Write Date on Github), github_create_date (Create Date on Github), github_id_external (Github Id), github_last_sync_date (Last Sync Date with Github)
  • github.team.repository · modelo nuevoteam_id (Team), permission, repository_id (Repository), context_search_default_team_id, context_search_default_repository_id
  • github.repository.branch · modelo nuevoname, size (Size (Byte) ), state, ci_url (CI URL), mb_size (Size (Megabyte)), github_url (Github URL), local_path, coverage_url (Coverage URL), complete_name, repository_id (Repository), sequence_serie (Sequence Serie), organization_id (Organization), analysis_rule_ids (Analysis Rules), last_analyze_date, last_download_date, organization_serie_id (Organization Serie), analysis_rule_info_ids (Analysis Rules (info)), inhibit_inherited_rules (Inhibit inherited rules)
  • wizard.create.repository · modelo nuevoname, website, description, organization_id
  • wizard.load.github.model · modelo nuevoname (Github Name), github_type (Github Type Name), child_update (Update Child Objects)
  • github.organization.serie · modelo nuevoname, sequence, organization_id (Organization)
  • github.analysis.rule.group · modelo nuevoname
  • github.analysis.rule.info.mixin · modelo nuevogroup_id (Group), code_count (# Code), empty_count (# Empty), total_count (# Total), scanned_files, analysis_rule_id (Analysis Rule), documentation_count (# Doc.)
  • github.repository.branch.rule.info · modelo nuevorepository_branch_id (Repository Branch)
  • github.repository.branch.rule.info.report · modelo nuevogroup_id (Group), code_count (# Code), empty_count (# Empty), total_count (# Total), repository_id (Repository), scanned_files, analysis_rule_id (Analysis Rule), documentation_count (# Documentation), repository_branch_id (Repository Branch), organization_serie_id (Organization serie)

Texto generado por IA (DeepSeek) al leer el código de la versión 18.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. El módulo es muy grande y solo se ha leído una parte del código. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 7 confirmadas, 2 sin información de 9 versiones.

Fuentes · Odoo 17.0

Confirmado el 2026-11-03 en la rama 17.0 de OCA/interface-git.

terminal Instalación y uso

Documentación de OCA · Odoo 18.0

Para instalar este addon, necesita instalar algunas dependencias de python

sudo pip install PyGitHub
sudo apt install cloc
sudo pip install pathspec
sudo pip install GitPython

El código fuente de Analysis se genera mediante

Una vez instalado, debe:

  • Abrir su archivo odoo.conf y añadir ajustes adicionales para indicar las credenciales de Github y la ruta local donde se descargará el código fuente:
  • source_code_local_path = /workspace/source_code/

Nota: puede definir la ruta como variable de entorno usando la clave SOURCE_CODE_LOCAL_PATH

Nota: asegúrese de que el proceso de Odoo tiene acceso de lectura / escritura en esa carpeta

> - github_token = your_github_access_token

Nota: La autenticación login/password ha quedado obsoleta en GitHub.

  • Vaya a 'Settings' / 'Technical' / 'Parameters' / 'System Parameters' y defina los siguientes valores:
  • github.max_try: número de llamadas a la API antes de que se genere un error. Cuanto más inestable/lenta sea su conexión, mayor debería ser este valor
  • git.partial_commit_during_analysis: Establezca en True si desea confirmar el resultado del análisis en la base de datos después de cada análisis de repositorio. Recomendamos establecer en True cuando realice la descarga inicial (potencialmente con muchos repositorios) para reducir el tamaño de la transacción
  • Vaya al formulario de su(s) usuario(s) para añadirlos a los nuevos grupos 'Connector Github Manager'. Los miembros de este grupo tendrán la posibilidad de ejecutar la sincronización de Github.

Technical Information

Este módulo proporciona 4 crons que puede habilitar:

  • Synchronize All Organizations and Teams (cron_update_organization)
  • Synchronize Branches List for All repositories (cron_update_branch_list)
  • Download Source Code for All Github Branches (cron_download_code)
  • Analyze Source Code for All Github Branches (cron_analyze_code)

Carga inicial desde Github

Para obtener información de Github, debe:

  • ir a 'Github' / 'Settings' / 'Sync Object'
  • Seleccionar el tipo de objeto que desea sincronizar y su nombre de Gthub
  • Una vez hecho para su(s) organización(es), vaya a 'Github' / 'Github Commnunity' / 'Organizations'
  • Opcionalmente, una vez creada la organización, puede crear series para sus proyectos. Vaya a 'Github' / 'Organizations' / haga clic en su organización / pestañas 'Organization Series'

Seleccionar ramas a descargar

Esta configuración evitará descargar ramas no deseadas, descargando solo las ramas principales (releases):

  • En la pestaña 'Settings', establezca los repositorios que no desea descargar (o los repositorios que desea descargar). Si se establece 'Specific repositories', el valor de 'Ignored Repositories' se ignora.
  • En la pestaña 'Settings', establezca la URL de los 'External Services' que utiliza para Continuous Integration y Coverage.
  • Una vez hecho, haga clic en los botones 'Syncs', para sincronizar repositorios, equipos y miembros. (Este proceso puede tardar un tiempo dependiendo de su tamaño)

Sincronización de equipos / miembros

Puede sincronizar los equipos de miembros:

  • Vaya a 'Teams' / vista de árbol / 'Actions' / 'Update from Github'.
  • En cada equipo, puede ver la lista de miembros y el rol de los miembros
  • En cada equipo, puede ver la lista de repositorios pero no los permisos del equipo. (Consulte la sección 'Known Issues')

Sincronización de repositorios

Puede sincronizar las ramas de sus repositorios:

  • Vaya a 'Repositories' / vista de árbol / 'Actions' / 'Update from Github'
  • En cada repositorio, puede ver la lista de ramas principales y el tamaño del código fuente.

Obtener el código fuente

Finalmente, puede descargar localmente el código fuente de todas sus ramas:

  • Vaya a 'Repository Branches' / vista de árbol / 'Actions' / 'Download and Analyse Source Code'.
  • En la vista de árbol puede actualizar manualmente el código fuente o refrescar el análisis.

Análisis del código fuente

Es posible crear reglas de análisis personalizadas que se relacionen con una organización de GitHub, un repositorio de GitHub y/o una rama de repositorio de GitHub para analizar el código.

  • Vaya a 'Settings' / 'Analysis rule groups' y cree registros que permitan organizar las reglas
  • Vaya a 'Settings' / 'Analysis rules' y cree reglas, por ejemplo:

> 1. Name: All code, Group: General, Paths: * > 2. Name: Python code, Group: General, Paths: *.py > 3. Name: Xml code, Group: General, Paths: *.xml > 4. Name: Repository 1, Group: Custom, Paths: /path/

Nota: El campo Paths en 'Analysis rule' permite poner múltiples rutas por línea, el formato de ruta es según

  • Vaya a GitHub \> GitHub Community \> Organizations y defina reglas de Analysis (opcional)
  • Vaya a GitHub \> GitHub Repository \> Repositories y defina reglas de Analysis (opcional)
  • Vaya a GitHub \> GitHub Repository \> Repository Branches y defina reglas de Analysis (opcional)

El análisis del código fuente se ejecuta cuando el botón 'Update Source Code Analysis' en algún 'Repository Branch', obtiene todas las reglas de Analysis (Repository + Organization) y analiza el código y genera información sobre él. Otra opción para el análisis del código fuente está en el cron llamado 'Analyze Source Code for All Github Branches'

Puede ver en 'Repository Branch' / 'Code Analysis' la información obtenida de las reglas de análisis.

Creación de datos en Github

Tiene la posibilidad de crear dos elementos en Github directamente desde Odoo

  • Equipos:
  • Vaya a 'Settings' / 'Create Team in Github'.
  • Establezca la información y haga clic en Create in Github.
  • Odoo intentará crear el equipo. Si el derecho de acceso y los datos son correctos, la creación se realizará directamente en Github
  • Posteriormente, se realizará una sincronización, para crear el equipo correspondiente en la instancia de Odoo.
  • Repositorios:
  • Vaya a 'Settings' / 'Create Team in Github'.
  • Establezca la información y haga clic en Create in Github.

Nota

El análisis en este módulo es básico: por el momento, solo proporciona el tamaño de las ramas.

No obstante, puede desarrollar un módulo Odoo Custom extra para extender la función de análisis y obtener estadísticas extra, dependiendo de sus necesidades.

De esa forma, puede ver el módulo github_connector_odoo, si sus repositorios contienen módulos de Odoo.

Informes

Este módulo proporciona varios informes

Branches by Serie

Sizes by Serie

Repository branch analysis rule

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.