angee.platform_integrate_vcs.schema
GraphQL: VCS provenance + addon-source controls for the marketplace tier.
Two contributions onto the platform console, both one-way (this tier reaches up into platform and integrate; neither references back):
AddonVcsProvenancefolds the VCS bearing path onto platform'sAddonNode— the same wayiam_integrate_oidcfolds OIDC fields ontoOAuthClientType.MarketplaceSourceMutationadds the source controls (admin-gated):addSourceinventories a repository on an existingVcsBridgeand points an addonSourceat it;scanruns the existingSource.refresh()(→AddonCatalogreconcile) that discoversaddon.tomlrows intoplatform.Addon. Both compose integrate's existing owners (VcsBridge.import_repository,Source); neither re-implements bridge/repo creation or the discovery walk.
AddonVcsProvenance
@strawberry_django.type(_Addon, name="AddonNode", extend=True)
class AddonVcsProvenance()Contributes the VCS bearing path onto platform's AddonNode.
AddonSourceInput
@strawberry.input
class AddonSourceInput()Fields accepted when pointing a new addon Source at a repository.
vcs_bridge_id names an existing bridge (a local checkout in dev, or a host bridge); name is the repository's host path (owner/repo). ref/path scope the source within the repo (blank ref resolves to the default branch).
MarketplaceSourceMutation
@strawberry.type
class MarketplaceSourceMutation()Admin actions that grow and refresh the addon marketplace from VCS sources.
add_source
@strawberry.mutation(permission_classes=_ADMIN_PERMISSION_CLASSES)
def add_source(data: AddonSourceInput) -> ActionResultInventory a repository on the bridge and point an addon Source at it.
scan
@strawberry.mutation(permission_classes=_ADMIN_PERMISSION_CLASSES)
def scan(source_id: PublicID) -> ActionResultRe-enumerate one addon Source into platform.Addon marketplace rows.
schemas
GraphQL contributions installed by the VCS marketplace addon.