Github Repository Template
GithubRepositoryTemplate
Defines a reusable template for creating new GitHub repositories.
Declares a baseline (visibility, branching strategy, license, PR template, code owners, and access) that a GithubRepository can reference by name. The engine resolves this template's prefixed name, license content, and PR template content into its computed block. Note: this manifest's executor currently provisions no GitHub resource on its own, and a referencing repository consumes only the resolved template name; the remaining baseline fields are captured for schema/AI context and future template application.
| Property | Type | Description |
|---|---|---|
| apiVersion | string | API schema version. Pins the manifest to a specific schema contract for backward-compatibility. Must be the constant lowops.manifests.v1. |
| kind | string | Resource kind discriminator. Identifies this document as a GithubRepositoryTemplate so the engine routes it to the correct defaulter, validator, computer, and executor. Must be the constant GithubRepositoryTemplate. |
| metadata | map | Classification labels and graph linkage. Free-form key/value pairs used to classify the manifest. Certain reserved keys (e.g. name, organization) are read by the engine to resolve this manifest's identity and its parent GithubConnection/Organization in the dependency graph. |
| spec | Spec | Desired template definition. The authoritative, user-authored specification for this template. See Spec. |
Spec
User-provided template definition.
The reusable baseline stamped onto repositories derived from this template: visibility, name, branching strategy, license, pull request template, code owners, and access permissions.
| Property | Type | Description |
|---|---|---|
| public | bool | Repository visibility for derived repositories. NOT YET IMPLEMENTED. Declared in the schema but currently ignored by the engine (no consumer reads it; the template's executor is a no-op). Intended future behavior: when true, repositories derived from this template are public; otherwise private. |
| description | string | Human-readable description of this template. Optional free text describing the purpose of this template. Not propagated onto any provisioned GitHub resource; it exists purely as documentation and as context for AI assistants reasoning about the organization's structure. |
| name | string | Template repository name. The template repository's name on GitHub, used verbatim; when omitted, the manifest's metadata.name is used instead. This is the whole of the computed repository_name — no prefix or other decoration is applied. |
| strategy | string | Branching strategy baseline. NOT YET IMPLEMENTED. Constrained by schema validation to GIT_FLOW, GITHUB_FLOW, or TRUNK_BASED, but currently ignored by the engine (no consumer reads it). Intended future behavior: pre-configure branch protection rules on derived repositories. On a concrete GithubRepository, the equivalent strategy field is fully applied. |
| codeOwners | list of CodeOwnersEntry | Code owners baseline for derived repositories. NOT YET IMPLEMENTED. Declared in the schema (map of path pattern to owners) but currently ignored by the engine (no consumer reads it). Code-owner aggregation is instead driven by permissions. Intended future behavior: seed the .github/CODEOWNERS file of derived repositories. |
| pullRequest | PullRequestConfig | Pull request template selection. References a GithubPullRequestTemplate whose content is validated and resolved into this template's computed pull_request_template. See PullRequestConfig. |
| license | string | License selection. Name of a GithubLicense manifest whose content is validated and resolved into this template's computed license. |
| permissions | AccessPermissions | Access permissions baseline. Users and groups granted admin, write, or read access. The executor does not apply these as repository permissions (it is a no-op); however, the admin/contributor groups and members here feed the parent Organization's aggregated code-owner set via the manifest hierarchy. |
CodeOwnerEntry
Code-owner assignment for a repository path.
A set of owners keyed by path pattern in the enclosing code_owners map, intended to seed a .github/CODEOWNERS file in derived repositories.
| Property | Type | Description |
|---|---|---|
| owners | list of string | GitHub team names or user handles that own the path. The owner identities associated with the map key (path pattern) for this entry. |
CodeOwnersEntry
| Property | Type | Description |
|---|---|---|
| key | string | |
| value | CodeOwnerEntry |
PullRequestConfig
Pull request template reference.
Selects the GithubPullRequestTemplate whose content seeds the derived repository's pull request template. See the template field.
| Property | Type | Description |
|---|---|---|
| template | string | Name of the referenced GithubPullRequestTemplate manifest. The referenced manifest's Markdown content is resolved into this template's computed pull_request_template. Validated to reference an existing GithubPullRequestTemplate under the same connection. |
AccessPermissions
Core definition for assigning administrative and viewer privileges across the platform.
Used by the engine to compute the final IAM policies (google_folder_iam_binding, etc.), aggregating individual user and group definitions to role assignments.
| Property | Type | Description |
|---|---|---|
| administrators | DetailedAccessPermissions | Administrators. Users and groups granted administrative privileges on the asset. Exact rights are resource-dependent but typically confer full control. See DetailedAccessPermissions. |
| contributors | DetailedAccessPermissions | Contributors. Users and groups granted contributor privileges on the asset. Exact rights are resource-dependent but typically confer read and write access. See DetailedAccessPermissions. |
| viewers | DetailedAccessPermissions | Viewers. Users and groups granted viewer privileges on the asset. Exact rights are resource-dependent but typically confer read-only access. See DetailedAccessPermissions. |
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.
| Property | Type | Description |
|---|---|---|
| members | list of string | A list of 'OrganizationUser' manifest names to be included in this permission set. |
| groups | list of string | A list of 'OrganizationUserGroup' manifest names to be included in this permission set. |