github_connector
Connect Odoo with GitHub to synchronize organizations, teams, repositories, and branches while downloading and analyzing source code with configurable rules.
Key Features
- abstract.github.model: Centralizes GitHub API access, data mapping, duplicate prevention, and shared sync/create helpers for all GitHub-linked models.
- configuration: Uses GitHub token and source_code_local_path (or environment variable) plus retry and partial-commit settings to control API access and repository cloning behavior.
- github.organization: Synchronizes organizations from GitHub with members, repositories, teams, descriptive metadata, and aggregated counts.
- github.organization: Lets admins ignore specific repositories, define organization series, and set CI/coverage URL patterns to govern branch selection and external links.
- github.repository: Syncs repositories under organizations, inherits or overrides analysis rules, exposes team access lists, and allows creating repositories directly on GitHub.
- github.repository: Keeps branch lists aligned with organization series and computes ignore flags so only selected branches are downloaded or analyzed.
- github.repository.branch: Maintains branch records with series sequencing, computed local clone paths, and derived coverage/CI/GitHub URLs.
- github.repository.branch: Downloads and refreshes branch source code locally, tracking download state and timestamps.
- github.repository.branch: Analyzes branch code with cloc using inherited pathspec rules, storing code/documentation/empty counts and size metrics.
- github.analysis.rule: Defines grouped analysis rules with gitignore-style path patterns to drive which files are considered during analysis.
- github.team: Synchronizes GitHub teams with privacy, members and roles, repository permissions, and supports creating teams on GitHub from Odoo.
- res.partner: Tracks GitHub users with avatars, bot flag, organization/team memberships, and prevents duplicate GitHub logins.
- github.team.partner: Stores team membership entries with member or maintainer roles for filtering and reporting.
- github.team.repository: Records repository permissions per team with read/write/admin levels synchronized from GitHub.
- wizard.load.github.model: Offers a wizard to create organizations, repositories, or users by GitHub name with optional child object updates.
- wizard.create.team: Provides a wizard to create GitHub teams from Odoo and preload members and repositories into the new team.
- wizard.create.repository: Provides a wizard to create GitHub repositories from Odoo using organization, description, and homepage details.
- automation: Supplies cron jobs to update organizations and teams, refresh repository branches, download code, and launch branch analyses in batch.
- reporting: Includes reports for branches by series, repository sizes by series, and branch analysis rule details.