Skip to main content

Github Connection

GithubConnection

Defines the high-level intent for connecting the platform to a GitHub organization.

Translates the target organization properties into API credentials, and drives the synchronization of teams, memberships, and overarching organization secrets across the infrastructure.

PropertyTypeDescription
apiVersionstring
kindstring
metadatamap
specSpec

Executors

Aggregates runner footprints for CI/CD sizing. Used during the generation of GitHub Actions runners to scale compute based on the number of requested executors across the organization.

PropertyTypeDescription
ubuntuint64
macosint64
windowsint64

ManagedWorkflowsPrivateEntry

PropertyTypeDescription
keystring
valuestring

ManagedWorkflowsPublicEntry

PropertyTypeDescription
keystring
valuestring

RelatedArtifactRegistriesEntry

PropertyTypeDescription
keystring
valueComputedRelatedArtifactRegistry

RelatedExternalRegistriesEntry

PropertyTypeDescription
keystring
valueComputedRelatedExternalRegistry

SecretsEntry

PropertyTypeDescription
keystring
valueComputedGithubSecretRepositories

Spec

Contains the user-defined configuration for the GitHub connection. Instructs the execution engine on which organization to map to, and which users should hold administrative access rights.

PropertyTypeDescription
descriptionstringThis description is optional but will drastically improve the understand of the AI assistant about the structural elements of the organization
ownerstringThe name of the GitHub organization to connect to. This entity acts as the root scope boundary for all repository, team, and secret generation operations performed within this connection.
authenticationMethodstringThe method to use for authenticating with the GitHub API. Choose 'TOKEN' for Personal Access Token or GITHUB_APP for github app installations. The platform will expect a secret named 'github-token' to be present in the Organization for retrieving the necessary API token.
hostnamestringThe hostname of the GitHub instance (e.g., 'github.my-company.com'). This should only be set for GitHub Enterprise Server instances, otherwise it defaults to 'github.com'.
administratorslist of stringA list of GitHub usernames to be granted the 'admin' role in the GitHub organization. Resolves to elevated membership assignments, ensuring explicitly defined operational control over the GitHub entity.

ComputedRelatedArtifactRegistry

Groups an Artifact Registry with a list of dependent repository names.

Used to correlate an environment's registry with the specific application repositories built into it, simplifying the generation of IAM and image paths.

PropertyTypeDescription
repositorieslist of string
registryComputedArtifactRegistry

ComputedRelatedExternalRegistry

Groups an External Registry with a list of dependent repository names.

Associates specific application repositories to a configured external registry.

PropertyTypeDescription
repositorieslist of string
registryComputedExternalRegistry

ComputedGithubSecretRepositories

Represents the computed relationships between a GitHub secret and its target repositories.

This is an internal state object used by the engine to track which repositories a specific GithubSecret manifest has been distributed to during gitops reconciliation.

PropertyTypeDescription
secretKeystringThe name of the secret.
repositorieslist of stringA list of repositories where this secret is configured.

ComputedArtifactRegistry

Represents a computed Artifact Registry resource.

JIT-resolved state of an ArtifactRegistry manifest containing the definitive configuration utilized during the implementation phase.

PropertyTypeDescription
namestringThis value is a direct reflection of 'metadata.name' from this 'ArtifactRegistry' manifest.
typestringThis value is a direct reflection of 'spec.type' from this 'ArtifactRegistry' manifest.
publishUrlstringThis URL is composed based on the 'spec.type' from this 'ArtifactRegistry' manifest.
regionstringThis value is taken from 'spec.region' from this 'ArtifactRegistry' manifest.
permissionsArtifactRegistryAccessPermissionsThis block is a direct reflection of the 'spec.permissions' block from this 'ArtifactRegistry' manifest, with user and group names resolved to their full Google Cloud Identity identifiers.

ComputedExternalRegistry

Represents a computed external container registry dependency.

Resolves the linkage between external registry configurations and the GCP / GitHub secrets containing their authentication credentials.

PropertyTypeDescription
namestringThis value is a direct reflection of 'metadata.name' from the 'ExternalRegistry' manifest.
typestringThis value is a direct reflection of 'spec.type' from the 'ExternalRegistry' manifest.
publishUrlstringThis value is a direct reflection of 'spec.url' from the 'ExternalRegistry' manifest.
authenticationstringThis value is a direct reflection of 'spec.authentication' from the 'ExternalRegistry' manifest.
usernameGcpSecretIdstringThis value is populated by looking up a 'Secret' manifest with a conventional name, typically '<registryName>-username', and retrieving its fully qualified GCP resource StateID.
usernameSourceControlSecretIdstringThis value is populated by looking up a 'GithubSecret' manifest with a conventional name, typically '<registryName>-username', and retrieving its name.
passwordGcpSecretIdstringThis value is populated by looking up a 'Secret' manifest with a conventional name, typically '<registryName>-password', and retrieving its fully qualified GCP resource StateID.
passwordSourceControlSecretIdstringThis value is populated by looking up a 'GithubSecret' manifest with a conventional name, typically '<registryName>-password', and retrieving its name.
regionstring

ArtifactRegistryAccessPermissions

Defines access levels specifically for Artifact Registry repositories.

Maps readers and writers to roles/artifactregistry.reader and roles/artifactregistry.writer respectively on the targeted google_artifact_registry_repository.

PropertyTypeDescription
readersDetailedAccessPermissionsA list of users and groups who are granted read-only access to the repository. Corresponds to the 'roles/artifactregistry.reader' IAM role.
writersDetailedAccessPermissionsA list of users and groups who are granted read and write access to the repository. Corresponds to the 'roles/artifactregistry.writer' IAM role.

DetailedAccessPermissions

Aggregation of specific user and group access definitions.

Refers to lists of OrganizationUser and OrganizationUserGroup manifests that will be parsed to retrieve actual Google Workspace identity emails for IAM binding construction.

PropertyTypeDescription
memberslist of stringA list of 'OrganizationUser' manifest names to be included in this permission set.
groupslist of stringA list of 'OrganizationUserGroup' manifest names to be included in this permission set.