Zum Inhalt springen

Dokumentation / Code und Addons

Addon-Repositories

GitHub-Repositories mit Odoo-Addons verbinden.

Addon-Repositories sind GitHub-Repositories, die ein oder mehrere Odoo-Addons enthalten. Wenn du ein Repository mit calmo.cloud verbindest, machst du dessen Addons für die Bereitstellung auf deinen Diensten verfügbar.

Repository verbinden #

1. GitHub-Integration einrichten #

Bevor du Repositories verbindest, musst du die calmo.cloud GitHub App auf dem GitHub-Konto oder der Organisation installieren, dem die Repositories gehören:

  1. Öffne in der Seitenleiste Developer → GitHub Installations und klicke auf Connect GitHub.
  2. GitHub fragt, auf welchem Konto die App installiert werden soll und auf welche Repositories sie zugreifen darf. Wähle die Repositories mit deinen Addons aus und bestätige.
  3. Du wirst zurück zu calmo.cloud geleitet, wo die Installation geprüft und aufgelistet wird. Wiederhole das für jedes GitHub-Konto bzw. jede Organisation, aus der du deployst.

Wurde die App bereits auf GitHub installiert, nutze Add Manually und gib ihre Installations-ID ein.

2. Repository hinzufügen #

Gehe in der Seitenleiste zu Addon-Repositories und klicke auf Neues Repository.

3. Repository auswählen #

Wähle ein Repository aus deiner GitHub-Organisation. calmo.cloud wird es nach Odoo-Addons durchsuchen.

4. Entdeckte Addons überprüfen #

calmo.cloud listet alle im Repository gefundenen Addons auf, einschliesslich:

  • Addon-Name und -Beschreibung
  • Unterstützte Odoo-Versionen
  • Abhängigkeiten

Repositories synchronisieren #

Wenn du neue Commits in dein GitHub-Repository pushst, kannst du die Änderungen in calmo.cloud synchronisieren, um neue Addons oder aktualisierte Versionen zu entdecken. calmo.cloud verfolgt:

  • Commit-SHAs — Welche exakte Version des Codes bereitgestellt ist
  • Addon-Versionen — Kompatibilität pro Odoo-Version
  • Externe Abhängigkeiten — Benötigte Python-Pakete oder Systembibliotheken

Repository zu einem Dienst hinzufügen #

Im Tab Repositories eines Dienstes fügen Add Repository und Attach dem Dienst ein Repository hinzu, und Deploy Addons holt später die Addons nach, die seitdem ins Repository gepusht wurden. Jede dieser Aktionen liest zuerst das Repository auf GitHub und kopiert dann jedes Addon, das der Dienst noch nicht hat. Addons, die schon auf dem Dienst sind, werden dabei nicht aktualisiert.

Der Tab zeigt für jedes Repository, wie weit das gekommen ist:

  • Addons zählt die im Repository gefundenen Addons, auf allen Branches.
  • On this service zählt die Addons des Repositorys, die auf diesem Dienst sind.
  • Discovery zeigt, wie das letzte Lesen des Repositorys für diesen Dienst lief: Queued, Reading GitHub, Completed oder Failed. Fahre mit der Maus darüber, um zu sehen, wie viele Addons mit Code für die Odoo-Version des Dienstes gefunden und wie viele davon zum Deployment eingereiht wurden, oder warum das Lesen fehlschlug.

Jedes eingereihte Addon wird danach als Aktion „Deploy addon“ mit seinem technischen Namen auf den Dienst kopiert; das verfolgst du im Tab Actions. Ist sie erfolgreich, liegt das Addon auf dem Dienst, ist in Odoo aber noch nicht installiert; siehe Das Modul installieren.

Schlägt das Lesen fehl, wird aus dem Repository nichts deployt. Behebe die Ursache und klicke erneut auf Deploy Addons:

Discovery meldet Was zu tun ist
Der Branch wurde auf GitHub nicht gefunden Prüfe, ob der Branch im Repository existiert. Der Dienst liest seinen Branch-Override, sonst den Branch des Repositorys für die Odoo-Version des Dienstes (siehe unten). Ein privates Repository braucht ausserdem Zugriff der calmo.cloud GitHub App.
GitHub hat den Zugriff auf das Repository verweigert Prüfe auf GitHub, ob die calmo.cloud GitHub App für den Eigentümer des Repositorys noch installiert ist und auf das Repository zugreifen darf.
Das Rate-Limit von GitHub ist erreicht Warte bis zur genannten Uhrzeit und deploye die Addons dann erneut.
GitHub konnte nicht gelesen werden GitHub hat nicht geantwortet. Versuche es in ein paar Minuten noch einmal.

Ein fehlgeschlagenes Lesen wird ausserdem in der Timeline des Dienstes festgehalten. Die API und KI-Assistenten sehen dasselbe als discovery und addons_on_service bei den Repositories des Dienstes (siehe MCP-Server).

Neues Repository auf GitHub anlegen #

Haben deine Addons noch kein Repository, etwa Module, die du im Odoo App Store gekauft hast, legt calmo.cloud eines für dich an. Klicke im Tab Repositories eines Dienstes auf Add Repository, schalte Create a new private repository on GitHub ein, wähle die GitHub-Organisation und gib einen Namen ein.

calmo.cloud

  1. legt das Repository auf GitHub an, privat, in dieser Organisation,
  2. macht seinen ersten Commit, ein README, auf einem Branch, der nach der Odoo-Version des Dienstes benannt ist, zum Beispiel 19.0; GitHub macht ihn zum Standard-Branch,
  3. fügt es dem Dienst hinzu.

Das neue Repository hat noch keine Addons, deshalb zeigt Discovery Completed ohne Fund. Füge mit Add Module daneben Module aus dem Odoo App Store oder einem ZIP hinzu, im Early Access (siehe Module aus dem Odoo App Store oder einem ZIP hinzufügen), oder pushe deine Module in den Branch, jedes in einem eigenen Ordner auf oberster Ebene des Repositorys, und klicke auf Deploy Addons.

Zum Anlegen braucht es:

  • Eine GitHub-Organisation. Die calmo.cloud GitHub App kann in einem persönlichen GitHub-Konto keine Repositories anlegen. Lege das Repository dort selbst an und füge es als bestehendes hinzu.
  • Die Berechtigung „Repository creation“. Um Repositories anzulegen, fragt die calmo.cloud GitHub App zusätzlich zu ihren bisherigen Berechtigungen nach Repository creation. Damit kann die App Repositories nur anlegen, nicht ihre Einstellungen ändern oder sie löschen. Ein Owner der Organisation muss sie auf GitHub genehmigen: Öffne in der Organisation Settings → GitHub Apps, klicke neben calmo.cloud auf Configure und akzeptiere die angefragten Berechtigungen. Bis dahin schlägt das Anlegen mit einem entsprechenden Hinweis fehl; alles andere funktioniert weiter wie bisher. Möchtest du diese Berechtigung nicht erteilen, lege das Repository selbst auf GitHub an: privat, mit mindestens einem Commit (ein README genügt) auf einem Branch, der nach der Odoo-Version des Dienstes benannt ist, zum Beispiel 19.0. Gib der calmo.cloud GitHub App Zugriff darauf und füge es als bestehendes Repository hinzu.

Gibt es in der Organisation schon ein Repository mit diesem Namen, wird nichts angelegt. Füge dann das bestehende Repository hinzu.

Die API und KI-Assistenten legen ein Repository genauso an, mit create_on_github, wenn sie einem Dienst oder deinem Team ein Repository hinzufügen (siehe MCP-Server). Mit einem API-Token braucht das die Berechtigung Manage repositories. Wird es deinem Team statt einem Dienst hinzugefügt, bekommt das neue Repository den Branch, den die Anfrage nennt. Ein Branch, der nicht nach einer Odoo-Version benannt ist, etwa main, wird als Branch des Repositorys für jede Odoo-Version eingetragen (siehe Eigene Branch-Namen pro Odoo-Version), damit jeder Dienst, dem das Repository hinzugefügt wird, von ihm deployt.

Eigene Branch-Namen pro Odoo-Version #

Standardmässig geht calmo.cloud davon aus, dass ein Repository die Odoo-Versionsnummer als Branch-Namen verwendet — also 18.0 für Odoo 18 und 19.0 für Odoo 19. Die meisten Repositories (einschliesslich OCA) folgen dieser Konvention.

Manche Teams verwenden andere Branch-Namen — zum Beispiel v18 und v19 oder 18 und 19. Damit calmo.cloud aus diesen Branches synchronisieren und deployen kann, kannst du den Branch-Namen pro Odoo-Version am Repository konfigurieren.

Trage auf der Bearbeitungsseite des Repositories im Abschnitt Branch names per Odoo version den Branch ein, den dieses Repository für die jeweilige Odoo-Version verwendet. Lass ein Feld leer, um auf die Odoo-Version selbst zurückzufallen (z. B. 18.0).

Beispiel: Ein Repository, dessen Odoo-18-Branch v18 und Odoo-19-Branch v19 heisst, würde so konfiguriert:

  • Odoo 18.0 Branch: v18
  • Odoo 19.0 Branch: v19

Nach dem Speichern sucht die nächste Synchronisation Addons auf den konfigurierten Branches und Deployments verwenden diese Branches standardmässig.

Branch-Overrides pro Service oder pro Addon (für Feature-Branches und Preview-Deployments) haben weiterhin Vorrang vor dem Repository-Standard — die Einstellung pro Version ändert nur, worauf calmo.cloud zurückgreift, wenn kein Override gesetzt ist.

Repositories verwalten #

Von der Repository-Detailseite aus kannst du:

  • Alle Addons im Repository anzeigen
  • Sehen, welche Dienste Addons aus diesem Repository bereitgestellt haben
  • Synchronisieren, um die neuesten Änderungen von GitHub abzurufen
  • Das Repository entfernen, wenn es nicht mehr benötigt wird