Skip to content

angee.platform_integrate_vcs.models

Marketplace models — VCS provenance on platform.Addon + the addon source kind.

CatalogProvenance

python
class CatalogProvenance(AngeeModel)

VCS provenance folded onto platform.Addon (the integrate Source extension pattern).

Records the integrate Source a row was discovered from and its bearing directory within the repo. The composer folds these columns into the one Addon table — an installed/local row gains them once a marketplace sync has seen it in a repo; a REMOTE row always carries them.

Meta

python
class Meta()

Abstract extension base composed into platform.Addon.

AddonCatalogManager

python
class AddonCatalogManager(AngeeManager)

Owns the reconcile of marketplace rows from an addon Source.

sync_from_source

python
def sync_from_source(source: Any) -> int

Discover addon.toml under source and reconcile platform.Addon rows.

Mirrors TemplateManager.sync_from_source but writes into platform.Addon (the one marketplace registry), tier-scoped so it never fights platform's own reconcile: an addon already materialised (in available_addons) gets only its provenance set — platform owns that row's source/state. One not materialised becomes a REMOTE/DISABLED row. REMOTE rows from this source no longer discovered are marked REMOVED. Runs under system_context.

AddonCatalog

python
class AddonCatalog(AngeeModel)

The addon source kind — discovers marketplace rows into platform.Addon.

A table-less binding (managed = False): its source_kind registers the kind with integrate's Source dispatch (so source.refresh() and a bridge sync route here), and its manager owns the reconcile. The rows it produces live in platform.Addon — the marketplace is one registry, not a parallel table.

source_kind

Binds the addon source kind to this model (see integrate.Source).

Meta

python
class Meta()

Table-less dispatch binding for the addon source kind.

Released under the AGPL-3.0 License.