Tnion.SH
Get Started
Tutorial8 min

Deploy private modules with the GitHub App

Connect selected repositories, map branches by environment, and deploy custom Odoo addons.

Before you connect

The Tnion.SH GitHub App is for workspace repository access. It is separate from GitHub OAuth used to sign a person in.

Prepare a repository that contains one or more Odoo addon directories. Each addon should contain a valid __manifest__.py. Decide which branches represent Production, Staging, and Development before configuring the project.

Install the GitHub App

Open workspace settings and start the GitHub integration. GitHub asks which account or organization installs the App and which repositories it may access.

Select only the repositories this workspace needs to deploy. When GitHub returns to Tnion.SH, the installation is associated with the workspace through a short-lived state value.

If the platform reports that the GitHub App is not configured, the Tnion.SH operator must finish the platform-level App configuration before customers can connect repositories.

Select a repository

Open the project Git source settings. Choose a repository visible to the workspace installation. Tnion.SH lists repositories and branches granted to that installation; it does not grant itself access to repositories you did not select in GitHub.

Test the connection before saving the deployment policy. A suspended or removed GitHub installation must be reconnected.

Map environment branches

Store one branch for each stage. The defaults are production, staging, and development, but you can map your own convention:

Code
Production   → main
Staging      → release
Development  → develop

The target environment determines the branch used by a module deployment. Operators do not type an arbitrary branch during the final deploy action.

Deploy and review

Open a provisioned instance and start a Git deployment. Tnion.SH obtains a short-lived installation token, fetches the mapped branch, synchronizes the repository into the mounted addons path, detects addon manifests, updates detected modules, and restarts Odoo.

The deployment records the resulting commit and preserves a stage-by-stage log. Review checkout, module update, and restart output before treating the deployment as complete.