Skip to content

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):

  • AddonVcsProvenance folds the VCS bearing path onto platform's AddonNode — the same way iam_integrate_oidc folds OIDC fields onto OAuthClientType.
  • MarketplaceSourceMutation adds the source controls (admin-gated): addSource inventories a repository on an existing VcsBridge and points an addon Source at it; scan runs the existing Source.refresh() (→ AddonCatalog reconcile) that discovers addon.toml rows into platform.Addon. Both compose integrate's existing owners (VcsBridge.import_repository, Source); neither re-implements bridge/repo creation or the discovery walk.

AddonVcsProvenance

python
@strawberry_django.type(_Addon, name="AddonNode", extend=True)
class AddonVcsProvenance()

Contributes the VCS bearing path onto platform's AddonNode.

AddonSourceInput

python
@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

python
@strawberry.type
class MarketplaceSourceMutation()

Admin actions that grow and refresh the addon marketplace from VCS sources.

add_source

python
@strawberry.mutation(permission_classes=_ADMIN_PERMISSION_CLASSES)
def add_source(data: AddonSourceInput) -> ActionResult

Inventory a repository on the bridge and point an addon Source at it.

scan

python
@strawberry.mutation(permission_classes=_ADMIN_PERMISSION_CLASSES)
def scan(source_id: PublicID) -> ActionResult

Re-enumerate one addon Source into platform.Addon marketplace rows.

schemas

GraphQL contributions installed by the VCS marketplace addon.

Released under the AGPL-3.0 License.