Skip to content

docs(orchestrator): comprehensive documentation update for LTS version#532

Closed
frostebite wants to merge 20 commits intomainfrom
document-provider-plugins
Closed

docs(orchestrator): comprehensive documentation update for LTS version#532
frostebite wants to merge 20 commits intomainfrom
document-provider-plugins

Conversation

@frostebite
Copy link
Member

@frostebite frostebite commented Mar 5, 2026

Summary

Major documentation overhaul for the Orchestrator section covering structure, content, cross-linking, and presentation.

Structure Changes

  • Providers promoted to top-level section (05-providers/) with dedicated pages for each provider: AWS, Kubernetes, Local Docker, Local, Custom Providers, Community Providers, GitHub Integration, GitLab Integration
  • Secrets promoted to top-level (06-secrets.mdx) — no longer buried in Advanced Topics
  • Configuration Override merged into Secrets as "Pull Secrets" section — eliminated a standalone page that was really about secret management
  • Hooks directory renamed from custom-hooks to hooks
  • Premade Container Hooks renamed to "Built-In Hooks" (file and all references)
  • Custom Job moved from hooks subdirectory to top-level Advanced Topics
  • Removed old examples/github-examples/ directory (AWS/K8s moved to Providers)
  • Removed old advanced-topics/providers/ directory (promoted to top-level)
  • Removed outdated Deno support section

New Pages

  • GitHub Actions examples (03-examples/02-github-actions.mdx) — complete, copy-paste workflow files for every provider (AWS, K8s, Local Docker), plus patterns for async mode, garbage collection, multi-platform matrix builds, retained workspaces, and container hooks (S3 + Steam)
  • Custom Providers (05-providers/06-custom-providers.mdx) — full guide to the plugin system: loading providers from GitHub repos, NPM packages, or local paths, with the ProviderInterface contract and example implementation
  • Community Providers (05-providers/07-community-providers.mdx) — empty list with a code-block template and direct "Edit this file on GitHub" link for PR submissions
  • Providers overview (05-providers/01-overview.mdx) — table of all 4 built-in providers with links to setup guides
  • Local Docker (05-providers/04-local-docker.mdx) — dedicated page with GitHub Actions and CLI examples
  • Local (05-providers/05-local.mdx) — dedicated page with usage examples
  • Load Balancing (07-advanced-topics/07-load-balancing.mdx) — how to route builds across multiple providers using GitHub Actions scripting: platform routing, branch routing, runner availability fallback, weighted distribution, and async mode integration

Content Additions

  • Premade rclone hooksrclone-upload-build, rclone-pull-build, rclone-upload-cache, rclone-pull-cache
  • Steam deployment hookssteam-deploy-client, steam-deploy-project with required secrets
  • S3/rclone workspace locking documentation in the caching page
  • Automatic cleanup cron documentation for AWS garbage collection
  • ASCII diagrams added to 11 pages: introduction, game-ci-vs-orchestrator, providers overview, AWS, custom providers, GitHub integration, secrets (pull flow), caching, retained workspaces, container hooks, garbage collection, logging, and load balancing

API Reference Overhaul

  • Converted all parameters from code blocks to proper markdown tables
  • Added missing parameters: orchestratorRepoName, githubOwner, allowDirtyBuild, postBuildSteps, preBuildSteps, customHookFiles, customCommandHooks, useCleanupCron
  • Added missing environment variables: AWS_FORCE_PROVIDER, ORCHESTRATOR_AWS_STACK_WAIT_TIME, PURGE_REMOTE_BUILDER_CACHE, GIT_PRIVATE_TOKEN
  • Renamed "Configuration Override" section to "Pull Secrets" with link to Secrets page
  • Added actual default values where they were missing

Cross-Linking

  • Introduction links to providers, hooks, getting started, platforms, and community providers
  • API Reference links to caching, hooks, provider pages, and secrets
  • Provider pages link to caching, hooks, and API Reference sections
  • Getting Started links to provider setup guides and secrets
  • GitHub Integration links to API Reference for parameters and modes
  • Advanced Topics pages cross-reference each other and link to API Reference
  • All old broken paths fixed

Presentation

  • Tightened language across all pages — shorter, clearer, less bloated
  • All ASCII diagrams use plain text only (no emoji) for consistent monospace alignment
  • Renamed page title to "Standard Game-CI vs Orchestrator Mode" with sidebar label "Game-CI vs Orchestrator"
  • Removed all WIP/preview/release-status notices (project is stable)
  • Fixed floating {/* */} comment symbols that rendered as visible text

Final Directory Structure

docs/03-github-orchestrator/
  01-introduction.mdx
  02-game-ci-vs-orchestrator.mdx
  02-getting-started.mdx
  03-examples/
    01-command-line.mdx
    02-github-actions.mdx
  04-api-reference.mdx
  05-providers/
    01-overview.mdx
    02-aws.mdx
    03-kubernetes.mdx
    04-local-docker.mdx
    05-local.mdx
    06-custom-providers.mdx
    07-community-providers.mdx
    08-github-integration.mdx
    09-gitlab-integration.mdx
  06-secrets.mdx
  07-advanced-topics/
    01-caching.mdx
    02-retained-workspace.mdx
    03-custom-job.mdx
    04-garbage-collection.mdx
    05-hooks/
      03-command-hooks.mdx
      04-container-hooks.mdx
      05-built-in-hooks.mdx
    06-logging.mdx
    07-load-balancing.mdx

Test plan

  • All pages render in the Docusaurus sidebar with correct hierarchy
  • Cross-links work (providers, hooks, secrets, API reference anchors)
  • GitHub Actions example workflows are valid YAML
  • Community providers "Edit this file" GitHub link points to the correct path
  • Prettier formatting passes
  • ASCII diagrams render correctly in monospace (no emoji width issues)
  • Load balancing page examples are valid YAML

Generated with Claude Code

@github-actions
Copy link

github-actions bot commented Mar 5, 2026

Cat Gif

@coderabbitai
Copy link

coderabbitai bot commented Mar 5, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Documentation restructuring for the GitHub Orchestrator, converting narrative content to table-driven formats with emoji headers, reorganizing advanced topics and examples, adding comprehensive provider documentation, and removing GitLab integration sections across multiple documentation versions.

Changes

Cohort / File(s) Summary
API Reference Consolidation
docs/03-github-orchestrator/04-api-reference.mdx
Converted narrative configuration and parameter sections into structured tables with emoji-prefixed headings (⚙️, 🔧, 📋, etc.), replacing inline code blocks and multi-section documentation with uniform parameter definition tables including defaults and descriptions.
Core Documentation Updates
docs/03-github-orchestrator/01-introduction.mdx, 02-game-ci-vs-orchestrator.mdx, 02-getting-started.mdx
Updated titles, expanded functional descriptions with cloud-first narrative, introduced visual diagrams, removed lengthy release sections, reorganized external links with emoji headers, and updated provider/platform presentation from tables to narrative bullets.
Examples Reorganization
docs/03-github-orchestrator/03-examples/01-command-line.mdx, 03-examples/02-github-examples/02-aws.mdx, 03-examples/02-github-examples/03-kubernetes.mdx
Rewrote terminology (CLI flags), added Install and Usage sections with explicit command examples, replaced Deno-related content with practical examples (list-resources, watch, garbage-collect), updated GitHub Actions version references (v4), and expanded CPU/memory tables with concrete parameter values.
Providers Section Creation
docs/03-github-orchestrator/05-providers/01-overview.mdx, 02-aws.mdx, 03-kubernetes.mdx, 04-local-docker.mdx, 05-local.mdx, 06-custom-providers.mdx, 07-community-providers.mdx, 08-github-integration.mdx, 09-gitlab-integration.mdx, _category_.yaml
New comprehensive provider documentation section with built-in providers (AWS Fargate, Kubernetes, Local Docker, Local), custom provider guide with interface definitions and caching behavior, community provider submission process, and GitLab/GitHub integration guides; updated category metadata (position 2.0→5.0, label "GitHub"→"Providers").
Advanced Topics Restructuring
docs/03-github-orchestrator/06-advanced-topics/01-caching.mdx, 02-retained-workspace.mdx, 03-garbage-collection.mdx, 04-configuration-override.mdx, 04-custom-hooks/01-custom-job.mdx, 03-command-hooks.mdx, 04-container-hooks.mdx, 05-premade-container-jobs.mdx, 05-logging.mdx, 06-secrets.mdx, _category_.yaml (hooks)
Replaced narrative content with structured tables and diagrams; introduced terminology shifts (two caching "strategies" vs. modes), explicit parameter tables (maxRetainedWorkspaces, garbageMaxAge), workspace locking details, pre-built hook descriptions (S3, Rclone, Steam), provider-specific log transport flows (Kubernetes/AWS), and secrets management guidance; changed "Custom Hooks" label to "Hooks".
Advanced Topics Expansion
docs/03-github-orchestrator/07-advanced-topics/01-caching.mdx, 02-retained-workspace.mdx, 03-garbage-collection.mdx, 04-hooks/01-custom-job.mdx, 03-command-hooks.mdx, 04-container-hooks.mdx, 05-premade-container-jobs.mdx, 05-configuration-override.mdx, 06-logging.mdx
New files with comprehensive documentation of caching strategies, retained workspace configuration, garbage collection parameters, custom/command/container hooks with YAML examples, configuration override with secret manager presets (gcp-secret-manager, aws-secret-manager), and logging transport flows with debug options.
Secrets & Integration Documentation
docs/03-github-orchestrator/06-secrets.mdx, 07-advanced-topics/05-configuration-override.mdx
Added provider-native secrets guidance (Kubernetes Secrets, AWS Secrets Manager mounted as environment variables), Configuration Override feature with runtime external source retrieval, built-in presets for secret managers, and references to external credential management.
GitLab Integration Removal
docs/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx, _category_.yaml, versioned_docs/version-2/.../09-gitlab/01-introduction-gitlab.mdx, _category_.yaml, versioned_docs/version-3/.../09-gitlab/01-introduction-gitlab.mdx, _category_.yaml
Removed GitLab introduction documentation and category metadata from docs and versioned documentation (version-2 and version-3), eliminating references to GitLab CLI usage mode.
GitHub Integration Reorganization
docs/03-github-orchestrator/06-advanced-topics/10-github/01-github-checks.mdx, _category_.yaml
Removed GitHub Checks documentation and GitHub Integration category metadata; consolidated GitHub integration into providers section (05-providers/08-github-integration.mdx) with checks and async mode features.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~22 minutes

Possibly related PRs

Suggested reviewers

  • webbertakken
  • davidmfinol

Poem

🐰 Hops through docs with glee so bright,
Tables gleaming, headers alight,
Emoji crowns on every page,
Orchestrator's golden age!
Clear and structured, now we see,
Documentation poetry!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The PR description comprehensively covers all required sections: Summary, Structure Changes, New Pages, Content Additions, API Reference Overhaul, Cross-Linking, Presentation, and Final Directory Structure. The description clearly articulates the scope and intent of the documentation overhaul.
Title check ✅ Passed The title clearly describes the main change: a comprehensive documentation update for the Orchestrator, specifically for an LTS version. It accurately reflects the extensive restructuring, new content additions, and presentation improvements documented in the PR summary.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch document-provider-plugins

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Note

Due to the large number of review comments, Critical, Major severity comments were prioritized as inline comments.

🟡 Minor comments (23)
versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx-6-6 (1)

6-6: ⚠️ Potential issue | 🟡 Minor

Use consistent product capitalization (Orchestrator).

Line 6 uses lowercase “orchestrator”; elsewhere this doc uses “Orchestrator”. Keep this term consistent.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx`
at line 6, Replace the lowercase term "orchestrator" in the sentence "It is
possible a resource doesn't get deleted by orchestrator." with the capitalized
product name "Orchestrator" so the document uses consistent product
capitalization (update the phrase to "It is possible a resource doesn't get
deleted by Orchestrator.").
versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx-3-4 (1)

3-4: ⚠️ Potential issue | 🟡 Minor

Tighten redundant wording in the intro sentence.

Line 3–4 repeats the creation concept immediately after already stating Orchestrator creates workloads. Consider simplifying to avoid redundancy and improve readability.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx`
around lines 3 - 4, Remove the redundant second sentence "Resources have to be
created." and tighten the intro to a single clear sentence: keep or slightly
rephrase the existing sentence that starts "Orchestrator creates, manages and
destroys cloud workloads you request." (e.g., "Orchestrator creates, manages,
and destroys the cloud workloads you request.") so the paragraph is concise and
non-repetitive.
docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx-6-6 (1)

6-6: ⚠️ Potential issue | 🟡 Minor

Fix wording and product-name capitalization for consistency.

Use “the Orchestrator” (capitalized) and prefer plural phrasing (“resources may not be deleted…”) to avoid the singular mismatch.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx` at
line 6, Replace the sentence "It is possible a resource doesn't get deleted by
orchestrator after a failed or interrupted build." with a corrected,
consistently capitalized and pluralized version: "It is possible resources may
not be deleted by the Orchestrator after a failed or interrupted build." Ensure
"Orchestrator" is capitalized and the phrasing uses plural "resources may not be
deleted" to match project style and avoid singular mismatch.
docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx-3-4 (1)

3-4: ⚠️ Potential issue | 🟡 Minor

Clarify the introductory sentence.

“Resources have to be created.” is vague/tautological here and reads awkwardly in context. Consider rewriting to explain the lifecycle tie-in (creation → potential orphaning → cleanup).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx`
around lines 3 - 4, The sentence "Resources have to be created." is vague and
awkward; replace it in
docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx with a
clearer line that ties resource lifecycle to garbage collection (for example:
explain that the orchestrator creates cloud resources for workloads, those
resources can become orphaned after failures or cancellations, and the garbage
collection process identifies and cleans up such orphaned resources). Locate the
exact sentence "Resources have to be created." and rewrite it to explicitly
state the lifecycle flow (creation → potential orphaning → cleanup) and why
garbage collection is needed.
docs/03-github-orchestrator/02-getting-started.mdx-29-31 (1)

29-31: ⚠️ Potential issue | 🟡 Minor

targetPlatform is used but not documented in the linked reference.

The minimal example requires targetPlatform, but the linked API Reference currently documents providerStrategy and gitPrivateToken without defining valid targetPlatform values. Please add targetPlatform to docs/03-github-orchestrator/04-api-reference.mdx (or link to where its accepted values are defined) to avoid a dead-end in this flow.

Also applies to: 34-34

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/02-getting-started.mdx` around lines 29 - 31, Add
documentation for the configuration key targetPlatform to the API reference (the
same section that documents providerStrategy and gitPrivateToken): describe that
targetPlatform is a required/optional config key, list the accepted enum values
(e.g., StandaloneLinux64, StandaloneWindows64, StandaloneMac64 — include any
other supported platform tokens), show a short example usage matching the
getting-started snippet, and add a cross-reference or link to the canonical list
of supported platform identifiers so users aren’t left unsure of valid values.
docs/03-github-orchestrator/_category_.yaml-3-3 (1)

3-3: ⚠️ Potential issue | 🟡 Minor

Use official “GitHub” capitalization in the label.
Line 3 uses Github; the standard brand capitalization is GitHub.

Proposed fix
-label: Github (Orchestrator)
+label: GitHub (Orchestrator)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/_category_.yaml` at line 3, Update the YAML label
value to use the official GitHub capitalization: change the label string in
_category_.yaml from "Github (Orchestrator)" to "GitHub (Orchestrator)"; locate
the label key in the file (label: Github (Orchestrator)) and replace the value
while preserving surrounding formatting.
versioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx-51-51 (1)

51-51: ⚠️ Potential issue | 🟡 Minor

Update link text to Kubernetes to match the linked file.

Line 51 still says “AWS Pipeline,” but the destination is orchestrator-k8s-pipeline.yml. The label should reflect Kubernetes.

✏️ Proposed wording fix
-[Orchestrator GitHub sourcecode for AWS Pipeline](https://github.com/game-ci/unity-builder/blob/main/.github/workflows/orchestrator-k8s-pipeline.yml).
+[Orchestrator GitHub source code for Kubernetes Pipeline](https://github.com/game-ci/unity-builder/blob/main/.github/workflows/orchestrator-k8s-pipeline.yml).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@versioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx`
at line 51, Change the link label text that currently reads "Orchestrator GitHub
sourcecode for AWS Pipeline" so it correctly reflects the target file
orchestrator-k8s-pipeline.yml; update the bracketed link text to mention
"Kubernetes" (e.g., "Orchestrator GitHub sourcecode for Kubernetes Pipeline") in
version-3/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx
where the link to orchestrator-k8s-pipeline.yml is defined.
versioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx-51-51 (1)

51-51: ⚠️ Potential issue | 🟡 Minor

Fix link label to match the Kubernetes workflow target.

Line 51 labels this as an AWS pipeline, but the URL points to orchestrator-k8s-pipeline.yml. Please align the label to Kubernetes to avoid confusion.

✏️ Proposed wording fix
-[Orchestrator GitHub sourcecode for AWS Pipeline](https://github.com/game-ci/unity-builder/blob/main/.github/workflows/orchestrator-k8s-pipeline.yml).
+[Orchestrator GitHub source code for Kubernetes Pipeline](https://github.com/game-ci/unity-builder/blob/main/.github/workflows/orchestrator-k8s-pipeline.yml).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@versioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx`
at line 51, Update the link label that currently reads "Orchestrator GitHub
sourcecode for AWS Pipeline" to correctly reference Kubernetes; locate the
markdown line containing the URL
"https://github.com/game-ci/unity-builder/blob/main/.github/workflows/orchestrator-k8s-pipeline.yml"
and change the visible label to something like "Orchestrator GitHub sourcecode
for Kubernetes pipeline" so the label matches the target file name
"orchestrator-k8s-pipeline.yml".
versioned_docs/version-3/03-github-orchestrator/04-api-reference.mdx-20-20 (1)

20-20: ⚠️ Potential issue | 🟡 Minor

Correct grammar/spelling in mode and sync descriptions.

Line 20 should read “an Orchestrator build”, and Line 83 should use “synchronize”.

✍️ Suggested fix
-_runs a orchestrator build_
+_runs an Orchestrator build_

-Used to syncronize the repository to the Orchestrator job. If parameters are not provided, will
+Used to synchronize the repository to the Orchestrator job. If parameters are not provided, it will

Also applies to: 83-84

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@versioned_docs/version-3/03-github-orchestrator/04-api-reference.mdx` at line
20, Update the phrasing in the documentation: change the italicized phrase
"_runs a orchestrator build_" to "_runs an Orchestrator build_" (capitalize
"Orchestrator" and use "an"), and in the mode/sync description where the word
"sync" is used (around the "sync" references at lines 83-84) replace "sync" with
"synchronize" to use correct grammar; ensure both edits preserve existing
emphasis/formatting.
versioned_docs/version-2/03-github-orchestrator/04-api-reference.mdx-20-20 (1)

20-20: ⚠️ Potential issue | 🟡 Minor

Correct grammar/spelling in mode and sync descriptions.

Line 20 should read “an Orchestrator build”, and Line 83 should use “synchronize”.

✍️ Suggested fix
-_runs a orchestrator build_
+_runs an Orchestrator build_

-Used to syncronize the repository to the Orchestrator job. If parameters are not provided, will
+Used to synchronize the repository to the Orchestrator job. If parameters are not provided, it will

Also applies to: 83-84

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@versioned_docs/version-2/03-github-orchestrator/04-api-reference.mdx` at line
20, Replace the incorrect phrases in the document: change "a orchestrator build"
to "an Orchestrator build" (capitalize Orchestrator) wherever that phrase
appears, and change the mode/sync description wording to use "synchronize"
(replace any "sync" or British "synchronise" with "synchronize") so the mode and
sync descriptions read correctly.
versioned_docs/version-3/03-github-orchestrator/01-introduction.mdx-33-33 (1)

33-33: ⚠️ Potential issue | 🟡 Minor

Use consistent product capitalization in headings.

Line 33 should use Orchestrator (capital O) for consistency with the rest of the docs.

✍️ Suggested fix
-## Why not orchestrator?
+## Why not Orchestrator?
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@versioned_docs/version-3/03-github-orchestrator/01-introduction.mdx` at line
33, Update the heading "## Why not orchestrator?" to use consistent product
capitalization by changing "orchestrator" to "Orchestrator" so the heading reads
"## Why not Orchestrator?", ensuring it matches other references to the product
in the docs.
versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx-3-6 (1)

3-6: ⚠️ Potential issue | 🟡 Minor

Tighten wording for clarity and naming consistency.

Line 3 and Line 6 read awkwardly and switch from Orchestrator to lowercase orchestrator. Please rephrase to keep the flow clear and product naming consistent.

✍️ Suggested wording
-Orchestrator creates, manages and destroys cloud workloads you request. Resources have to be
-created.
+Orchestrator creates, manages, and destroys the cloud workloads you request.

-It is possible a resource doesn't get deleted by orchestrator.
+Sometimes a resource may not be deleted by Orchestrator.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx`
around lines 3 - 6, The wording is inconsistent and awkward: replace the
sentences that switch between "Orchestrator" and "orchestrator" (the phrases on
lines starting with "Orchestrator creates, manages and destroys cloud workloads
you request. Resources have to be created." and "It is possible a resource
doesn't get deleted by orchestrator.") with clearer, consistent phrasing that
always uses the product name "Orchestrator" and tighter grammar — e.g., reword
to something like "Orchestrator creates, manages, and destroys the cloud
workloads you request. Occasionally a resource may not be deleted by
Orchestrator." — update the two sentences in the function/section text that
reference Orchestrator to match this style.
versioned_docs/version-3/03-github-orchestrator/01-introduction.mdx-11-15 (1)

11-15: ⚠️ Potential issue | 🟡 Minor

Fix spelling/hyphenation in core intro copy.

Line 12 should be “first-class”, and Line 14 should be “synchronize”.

✍️ Suggested fix
-Orchestrator provides first class support for the Unity game engine.**
+Orchestrator provides first-class support for the Unity game engine.**

-Orchestrator uses git to track and syncronize your projects and uses native cloud services such as
+Orchestrator uses git to track and synchronize your projects and uses native cloud services such as
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@versioned_docs/version-3/03-github-orchestrator/01-introduction.mdx` around
lines 11 - 15, Update the two typos in the intro paragraph: change the phrase
"first class support for the Unity game engine" to "first-class support for the
Unity game engine" and correct "syncronize" to "synchronize" wherever it appears
(the sentences containing "Orchestrator provides first class support..." and
"Orchestrator uses git to track and syncronize your projects..."); ensure only
the hyphenation and spelling are changed and spacing/punctuation remains
consistent.
docs/03-github-orchestrator/06-advanced-topics/07-custom-providers.mdx-93-99 (1)

93-99: ⚠️ Potential issue | 🟡 Minor

Use TypeScript primitive number instead of boxed Number.

Line 96 should use number; documenting Number can mislead provider authors and produce non-idiomatic typings.

🔧 Suggested fix
-    olderThan: Number,
+    olderThan: number,
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/06-advanced-topics/07-custom-providers.mdx`
around lines 93 - 99, The documentation signature for garbageCollect uses the
boxed type Number for the olderThan parameter; update the signature for
garbageCollect(filter: string, previewOnly: boolean, olderThan: number,
fullCache: boolean, baseDependencies: boolean): Promise<string> so olderThan is
the TypeScript primitive number (change the olderThan type from Number to
number) in the garbageCollect declaration to avoid misleading typings for
provider authors.
docs/03-github-orchestrator/04-api-reference.mdx-155-155 (1)

155-155: ⚠️ Potential issue | 🟡 Minor

Minor wording fix: hyphenate compound adjective.

Line 155 should be Comma-separated list for correct grammar.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/04-api-reference.mdx` at line 155, Update the
phrase that documents the parameter list for readInputOverrideCommand: replace
the unhyphenated "Comma separated list of parameters to apply with
`readInputOverrideCommand`" with the grammatically correct hyphenated form
"Comma-separated list of parameters to apply with `readInputOverrideCommand`" so
the compound adjective is proper.
docs/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx-50-51 (1)

50-51: ⚠️ Potential issue | 🟡 Minor

Fix mislabeled pipeline name in Kubernetes doc.

Line 51 says AWS Pipeline, but this page and linked workflow are Kubernetes-specific (orchestrator-k8s-pipeline.yml).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx`
around lines 50 - 51, The doc text incorrectly labels the linked workflow as
"AWS Pipeline"; update the sentence referencing "Orchestrator GitHub sourcecode
for AWS Pipeline" to instead reference the correct Kubernetes pipeline name
(e.g., "Orchestrator GitHub sourcecode for Kubernetes Pipeline" or mention
"orchestrator-k8s-pipeline.yml") so the label matches the linked file name
`orchestrator-k8s-pipeline.yml`.
versioned_docs/version-2/03-github-orchestrator/_category_.yaml-3-3 (1)

3-3: ⚠️ Potential issue | 🟡 Minor

Use canonical product capitalization in category label.

Line 3 should use GitHub instead of Github for consistency with official naming.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@versioned_docs/version-2/03-github-orchestrator/_category_.yaml` at line 3,
Update the YAML category label value to use the canonical product
capitalization: change the label key value from "Github (Orchestrator)" to
"GitHub (Orchestrator)" so the 'label' field uses the official "GitHub"
spelling.
versioned_docs/version-2/03-github-orchestrator/01-introduction.mdx-11-15 (1)

11-15: ⚠️ Potential issue | 🟡 Minor

Fix user-facing copy typos and casing for consistency.

There are a few text issues in changed content: Line 12 (first classfirst-class), Line 14 (syncronizesynchronize), Line 22 (effeciencyefficiency), and Line 33 heading casing (Why not Orchestrator?) to match the rest of the page.

Suggested copy edits
- Orchestrator provides first class support for the Unity game engine.**
+ Orchestrator provides first-class support for the Unity game engine.**

- Orchestrator uses git to track and syncronize your projects and uses native cloud services such as
+ Orchestrator uses git to track and synchronize your projects and uses native cloud services such as

-      effeciency
+      efficiency

-## Why not orchestrator?
+## Why not Orchestrator?

Also applies to: 20-23, 33-35

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@versioned_docs/version-2/03-github-orchestrator/01-introduction.mdx` around
lines 11 - 15, Fix the user-facing copy typos and heading casing for
consistency: change "first class" to "first-class" in the sentence "Orchestrator
provides first class support for the Unity game engine.", correct "syncronize"
to "synchronize" in the sentence beginning "Orchestrator uses git to track and
syncronize your projects", fix "effeciency" to "efficiency" wherever it appears
(e.g., the block around lines 20-23), and change the heading "Why not
Orchestrator?" to sentence-case "Why Not Orchestrator?" to match other headings
on the page.
docs/03-github-orchestrator/01-introduction.mdx-11-15 (1)

11-15: ⚠️ Potential issue | 🟡 Minor

Please clean up spelling/hyphenation and heading casing in changed copy.

Line 12 (first classfirst-class), Line 14 (syncronizesynchronize), Line 22 (effeciencyefficiency), and Line 33 (Why not Orchestrator?) need small consistency fixes.

Also applies to: 20-23, 33-35

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/01-introduction.mdx` around lines 11 - 15, Fix
the typos and heading casing across the changed copy: replace "first class" with
"first-class" (e.g. in the sentence "Orchestrator provides first class
support..."), correct "syncronize" to "synchronize", correct "effeciency" to
"efficiency", and change the heading "Why not Orchestrator?" to title case "Why
Not Orchestrator?"; apply these replacements consistently in the affected blocks
(lines around the 11–15 and 20–23 changes and the 33–35 heading area) so wording
and hyphenation are consistent throughout the document.
versioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx-27-27 (1)

27-27: ⚠️ Potential issue | 🟡 Minor

Grammar issue: missing "to".

Same issue as in the version-2 docs—the sentence is missing "to" between "Orchestrator" and "access".

Proposed fix
-_Note:_ _This enables Orchestrator access AWS._
+_Note:_ _This enables Orchestrator to access AWS._
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@versioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx`
at line 27, Update the sentence "_Note:_ _This enables Orchestrator access
AWS._" to insert the missing preposition "to" so it reads "_Note:_ _This enables
Orchestrator to access AWS._"; locate the exact string in the version-3 GitHub
orchestrator AWS example (the note on line containing "This enables Orchestrator
access AWS") and correct the wording accordingly.
versioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx-27-27 (1)

27-27: ⚠️ Potential issue | 🟡 Minor

Grammar issue: missing "to".

The sentence is missing the word "to" between "Orchestrator" and "access".

Proposed fix
-_Note:_ _This enables Orchestrator access AWS._
+_Note:_ _This enables Orchestrator to access AWS._
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@versioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx`
at line 27, Fix the grammar in the note sentence that currently reads "_Note:_
_This enables Orchestrator access AWS._" by inserting the missing word "to" so
it reads "_Note:_ _This enables Orchestrator to access AWS._"; update the text
in the markdown content where that exact sentence appears.
docs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx-27-27 (1)

27-27: ⚠️ Potential issue | 🟡 Minor

Grammar issue: missing "to".

Same issue as in the versioned docs—add "to" for grammatical correctness.

Proposed fix
-_Note:_ _This enables Orchestrator access AWS._
+_Note:_ _This enables Orchestrator to access AWS._
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx` at
line 27, The sentence "This enables Orchestrator access AWS." is missing the
preposition "to"; update the string to "This enables Orchestrator to access
AWS." so the line in the docs (the snippet containing that sentence) reads
correctly.
versioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx-48-49 (1)

48-49: ⚠️ Potential issue | 🟡 Minor

Use containerMemory and containerCpu to match API reference documentation.

The API reference at versioned_docs/version-2/03-github-orchestrator/04-api-reference.mdx documents containerCpu and containerMemory as the standard parameters for specifying CPU and Memory resources. This example should use these documented parameter names instead of orchestratorMemory and orchestratorCpu.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@versioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx`
around lines 48 - 49, Replace the nonstandard keys orchestratorMemory and
orchestratorCpu in the AWS example with the documented parameter names
containerMemory and containerCpu; update the entries where orchestratorMemory
appears to containerMemory and where orchestratorCpu appears to containerCpu so
the example matches the API reference (refer to the keys
orchestratorMemory/orchestratorCpu -> containerMemory/containerCpu).
🧹 Nitpick comments (5)
docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx (1)

26-31: Consider pinning the GitHub Action to a stable version tag.

Using @main in docs can lead to non-reproducible behavior as examples age. A release tag/SHA would be more stable for users.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx`
around lines 26 - 31, Update the example GitHub Action reference that currently
uses "uses: game-ci/unity-builder@main" to pin to a stable release (e.g., a
specific tag like `@vX.Y.Z` or a commit SHA) so examples remain reproducible;
locate the "uses: game-ci/unity-builder@main" line in the garbage collection
example and replace the "@main" ref with the chosen tag or SHA and update any
accompanying text to mention that a pinned version is recommended.
docs/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx (1)

1-3: Consider linking “Command Line mode” to the relevant docs page.
Line 3 references Command Line mode; adding a link would improve navigation.

Optional docs UX improvement
-You can use GitLab with Orchestrator via the Command Line mode.
+You can use GitLab with Orchestrator via the [Command Line mode](../../03-examples/01-command-line).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@docs/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx`
around lines 1 - 3, Update the sentence that references "Command Line mode" in
the "GitLab Introduction" content to hyperlink that phrase to the existing
Command Line mode documentation page; replace the plain text "Command Line mode"
with a link to the relevant docs URL or internal doc slug so readers can click
through directly from this section.
docs/03-github-orchestrator/06-advanced-topics/07-custom-providers.mdx (1)

111-147: Make the “complete example” explicitly implement the interface.

Since this section is framed as a full implementation example, adding implements ProviderInterface (plus typed params) will make it self-validating and less error-prone for copy/paste users.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/06-advanced-topics/07-custom-providers.mdx`
around lines 111 - 147, Update the example class so it explicitly implements
ProviderInterface and add typed parameters to the constructor and each method
(e.g., implement ProviderInterface on class MyProvider and type the constructor
param buildParameters and method params like setupWorkflow(buildGuid: string,
buildParameters: BuildParametersType, branchName: string, defaultSecretsArray:
SecretType[]), runTaskInWorkflow(...), cleanupWorkflow(...),
garbageCollect(...), listResources(), listWorkflow(), watchWorkflow()); ensure
the class signature and each method signature match the ProviderInterface
members so the example type-checks and is safe to copy/paste.
versioned_docs/version-2/03-github-orchestrator/04-api-reference.mdx (1)

221-221: Prefer a version-pinned external reference in versioned docs.

Line 221 links to orchestrator-develop, which is mutable. For versioned docs, linking to a tag/commit for that doc version avoids drift over time.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@versioned_docs/version-2/03-github-orchestrator/04-api-reference.mdx` at line
221, The link in
versioned_docs/version-2/03-github-orchestrator/04-api-reference.mdx points to
the mutable branch "orchestrator-develop"; update that reference to a commit
hash or a release tag corresponding to this docs version (replace the URL
containing "orchestrator-develop" with a permanent tag/commit URL for the same
file) so the versioned docs remain stable over time.
versioned_docs/version-3/03-github-orchestrator/04-api-reference.mdx (1)

221-221: Prefer a version-pinned external reference in versioned docs.

Line 221 links to orchestrator-develop, which can change independently of this versioned page. A tag/commit link would keep the reference stable.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@versioned_docs/version-3/03-github-orchestrator/04-api-reference.mdx` at line
221, Replace the unstable branch link that points to "orchestrator-develop" with
a version-pinned reference (a tag or specific commit SHA) so the docs remain
stable; update the markdown link target currently referencing
"https://github.com/game-ci/unity-builder/blob/orchestrator-develop/action.yml"
to the corresponding release tag or a specific commit URL (e.g., replace
"orchestrator-develop" with the chosen tag name or commit SHA) while keeping the
same display text or adjusting it to indicate the pinned version.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/03-github-orchestrator/04-api-reference.mdx`:
- Around line 144-156: Update the command-line example that still uses the old
flags --inputPullCommand and --pullInputList to use the new option names
readInputOverrideCommand and readInputFromOverrideList; locate the example that
demonstrates passing an input override on the command line (the example
referenced near the command-line usage block) and replace the old flags with the
new ones, ensuring the example includes the required `{0}` placeholder for
readInputOverrideCommand and shows a comma-separated value for
readInputFromOverrideList.

In `@docs/03-github-orchestrator/06-advanced-topics/01-caching.mdx`:
- Around line 8-9: Change the documented parameter name to match the API
reference exactly: replace occurrences of "MaxRetainedWorkspaces" with
"maxRetainedWorkspaces" in the caching docs so users won’t misconfigure the API;
update the sentence that currently reads with MaxRetainedWorkspaces to use the
exact camelCase identifier maxRetainedWorkspaces and leave surrounding
explanation unchanged.

---

Minor comments:
In `@docs/03-github-orchestrator/_category_.yaml`:
- Line 3: Update the YAML label value to use the official GitHub capitalization:
change the label string in _category_.yaml from "Github (Orchestrator)" to
"GitHub (Orchestrator)"; locate the label key in the file (label: Github
(Orchestrator)) and replace the value while preserving surrounding formatting.

In `@docs/03-github-orchestrator/01-introduction.mdx`:
- Around line 11-15: Fix the typos and heading casing across the changed copy:
replace "first class" with "first-class" (e.g. in the sentence "Orchestrator
provides first class support..."), correct "syncronize" to "synchronize",
correct "effeciency" to "efficiency", and change the heading "Why not
Orchestrator?" to title case "Why Not Orchestrator?"; apply these replacements
consistently in the affected blocks (lines around the 11–15 and 20–23 changes
and the 33–35 heading area) so wording and hyphenation are consistent throughout
the document.

In `@docs/03-github-orchestrator/02-getting-started.mdx`:
- Around line 29-31: Add documentation for the configuration key targetPlatform
to the API reference (the same section that documents providerStrategy and
gitPrivateToken): describe that targetPlatform is a required/optional config
key, list the accepted enum values (e.g., StandaloneLinux64,
StandaloneWindows64, StandaloneMac64 — include any other supported platform
tokens), show a short example usage matching the getting-started snippet, and
add a cross-reference or link to the canonical list of supported platform
identifiers so users aren’t left unsure of valid values.

In `@docs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx`:
- Line 27: The sentence "This enables Orchestrator access AWS." is missing the
preposition "to"; update the string to "This enables Orchestrator to access
AWS." so the line in the docs (the snippet containing that sentence) reads
correctly.

In
`@docs/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx`:
- Around line 50-51: The doc text incorrectly labels the linked workflow as "AWS
Pipeline"; update the sentence referencing "Orchestrator GitHub sourcecode for
AWS Pipeline" to instead reference the correct Kubernetes pipeline name (e.g.,
"Orchestrator GitHub sourcecode for Kubernetes Pipeline" or mention
"orchestrator-k8s-pipeline.yml") so the label matches the linked file name
`orchestrator-k8s-pipeline.yml`.

In `@docs/03-github-orchestrator/04-api-reference.mdx`:
- Line 155: Update the phrase that documents the parameter list for
readInputOverrideCommand: replace the unhyphenated "Comma separated list of
parameters to apply with `readInputOverrideCommand`" with the grammatically
correct hyphenated form "Comma-separated list of parameters to apply with
`readInputOverrideCommand`" so the compound adjective is proper.

In `@docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx`:
- Line 6: Replace the sentence "It is possible a resource doesn't get deleted by
orchestrator after a failed or interrupted build." with a corrected,
consistently capitalized and pluralized version: "It is possible resources may
not be deleted by the Orchestrator after a failed or interrupted build." Ensure
"Orchestrator" is capitalized and the phrasing uses plural "resources may not be
deleted" to match project style and avoid singular mismatch.
- Around line 3-4: The sentence "Resources have to be created." is vague and
awkward; replace it in
docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx with a
clearer line that ties resource lifecycle to garbage collection (for example:
explain that the orchestrator creates cloud resources for workloads, those
resources can become orphaned after failures or cancellations, and the garbage
collection process identifies and cleans up such orphaned resources). Locate the
exact sentence "Resources have to be created." and rewrite it to explicitly
state the lifecycle flow (creation → potential orphaning → cleanup) and why
garbage collection is needed.

In `@docs/03-github-orchestrator/06-advanced-topics/07-custom-providers.mdx`:
- Around line 93-99: The documentation signature for garbageCollect uses the
boxed type Number for the olderThan parameter; update the signature for
garbageCollect(filter: string, previewOnly: boolean, olderThan: number,
fullCache: boolean, baseDependencies: boolean): Promise<string> so olderThan is
the TypeScript primitive number (change the olderThan type from Number to
number) in the garbageCollect declaration to avoid misleading typings for
provider authors.

In `@versioned_docs/version-2/03-github-orchestrator/_category_.yaml`:
- Line 3: Update the YAML category label value to use the canonical product
capitalization: change the label key value from "Github (Orchestrator)" to
"GitHub (Orchestrator)" so the 'label' field uses the official "GitHub"
spelling.

In `@versioned_docs/version-2/03-github-orchestrator/01-introduction.mdx`:
- Around line 11-15: Fix the user-facing copy typos and heading casing for
consistency: change "first class" to "first-class" in the sentence "Orchestrator
provides first class support for the Unity game engine.", correct "syncronize"
to "synchronize" in the sentence beginning "Orchestrator uses git to track and
syncronize your projects", fix "effeciency" to "efficiency" wherever it appears
(e.g., the block around lines 20-23), and change the heading "Why not
Orchestrator?" to sentence-case "Why Not Orchestrator?" to match other headings
on the page.

In
`@versioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx`:
- Line 27: Fix the grammar in the note sentence that currently reads "_Note:_
_This enables Orchestrator access AWS._" by inserting the missing word "to" so
it reads "_Note:_ _This enables Orchestrator to access AWS._"; update the text
in the markdown content where that exact sentence appears.
- Around line 48-49: Replace the nonstandard keys orchestratorMemory and
orchestratorCpu in the AWS example with the documented parameter names
containerMemory and containerCpu; update the entries where orchestratorMemory
appears to containerMemory and where orchestratorCpu appears to containerCpu so
the example matches the API reference (refer to the keys
orchestratorMemory/orchestratorCpu -> containerMemory/containerCpu).

In
`@versioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx`:
- Line 51: Update the link label that currently reads "Orchestrator GitHub
sourcecode for AWS Pipeline" to correctly reference Kubernetes; locate the
markdown line containing the URL
"https://github.com/game-ci/unity-builder/blob/main/.github/workflows/orchestrator-k8s-pipeline.yml"
and change the visible label to something like "Orchestrator GitHub sourcecode
for Kubernetes pipeline" so the label matches the target file name
"orchestrator-k8s-pipeline.yml".

In `@versioned_docs/version-2/03-github-orchestrator/04-api-reference.mdx`:
- Line 20: Replace the incorrect phrases in the document: change "a orchestrator
build" to "an Orchestrator build" (capitalize Orchestrator) wherever that phrase
appears, and change the mode/sync description wording to use "synchronize"
(replace any "sync" or British "synchronise" with "synchronize") so the mode and
sync descriptions read correctly.

In
`@versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx`:
- Line 6: Replace the lowercase term "orchestrator" in the sentence "It is
possible a resource doesn't get deleted by orchestrator." with the capitalized
product name "Orchestrator" so the document uses consistent product
capitalization (update the phrase to "It is possible a resource doesn't get
deleted by Orchestrator.").
- Around line 3-4: Remove the redundant second sentence "Resources have to be
created." and tighten the intro to a single clear sentence: keep or slightly
rephrase the existing sentence that starts "Orchestrator creates, manages and
destroys cloud workloads you request." (e.g., "Orchestrator creates, manages,
and destroys the cloud workloads you request.") so the paragraph is concise and
non-repetitive.

In `@versioned_docs/version-3/03-github-orchestrator/01-introduction.mdx`:
- Line 33: Update the heading "## Why not orchestrator?" to use consistent
product capitalization by changing "orchestrator" to "Orchestrator" so the
heading reads "## Why not Orchestrator?", ensuring it matches other references
to the product in the docs.
- Around line 11-15: Update the two typos in the intro paragraph: change the
phrase "first class support for the Unity game engine" to "first-class support
for the Unity game engine" and correct "syncronize" to "synchronize" wherever it
appears (the sentences containing "Orchestrator provides first class support..."
and "Orchestrator uses git to track and syncronize your projects..."); ensure
only the hyphenation and spelling are changed and spacing/punctuation remains
consistent.

In
`@versioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx`:
- Line 27: Update the sentence "_Note:_ _This enables Orchestrator access AWS._"
to insert the missing preposition "to" so it reads "_Note:_ _This enables
Orchestrator to access AWS._"; locate the exact string in the version-3 GitHub
orchestrator AWS example (the note on line containing "This enables Orchestrator
access AWS") and correct the wording accordingly.

In
`@versioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx`:
- Line 51: Change the link label text that currently reads "Orchestrator GitHub
sourcecode for AWS Pipeline" so it correctly reflects the target file
orchestrator-k8s-pipeline.yml; update the bracketed link text to mention
"Kubernetes" (e.g., "Orchestrator GitHub sourcecode for Kubernetes Pipeline") in
version-3/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx
where the link to orchestrator-k8s-pipeline.yml is defined.

In `@versioned_docs/version-3/03-github-orchestrator/04-api-reference.mdx`:
- Line 20: Update the phrasing in the documentation: change the italicized
phrase "_runs a orchestrator build_" to "_runs an Orchestrator build_"
(capitalize "Orchestrator" and use "an"), and in the mode/sync description where
the word "sync" is used (around the "sync" references at lines 83-84) replace
"sync" with "synchronize" to use correct grammar; ensure both edits preserve
existing emphasis/formatting.

In
`@versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx`:
- Around line 3-6: The wording is inconsistent and awkward: replace the
sentences that switch between "Orchestrator" and "orchestrator" (the phrases on
lines starting with "Orchestrator creates, manages and destroys cloud workloads
you request. Resources have to be created." and "It is possible a resource
doesn't get deleted by orchestrator.") with clearer, consistent phrasing that
always uses the product name "Orchestrator" and tighter grammar — e.g., reword
to something like "Orchestrator creates, manages, and destroys the cloud
workloads you request. Occasionally a resource may not be deleted by
Orchestrator." — update the two sentences in the function/section text that
reference Orchestrator to match this style.

---

Nitpick comments:
In `@docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx`:
- Around line 26-31: Update the example GitHub Action reference that currently
uses "uses: game-ci/unity-builder@main" to pin to a stable release (e.g., a
specific tag like `@vX.Y.Z` or a commit SHA) so examples remain reproducible;
locate the "uses: game-ci/unity-builder@main" line in the garbage collection
example and replace the "@main" ref with the chosen tag or SHA and update any
accompanying text to mention that a pinned version is recommended.

In `@docs/03-github-orchestrator/06-advanced-topics/07-custom-providers.mdx`:
- Around line 111-147: Update the example class so it explicitly implements
ProviderInterface and add typed parameters to the constructor and each method
(e.g., implement ProviderInterface on class MyProvider and type the constructor
param buildParameters and method params like setupWorkflow(buildGuid: string,
buildParameters: BuildParametersType, branchName: string, defaultSecretsArray:
SecretType[]), runTaskInWorkflow(...), cleanupWorkflow(...),
garbageCollect(...), listResources(), listWorkflow(), watchWorkflow()); ensure
the class signature and each method signature match the ProviderInterface
members so the example type-checks and is safe to copy/paste.

In
`@docs/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx`:
- Around line 1-3: Update the sentence that references "Command Line mode" in
the "GitLab Introduction" content to hyperlink that phrase to the existing
Command Line mode documentation page; replace the plain text "Command Line mode"
with a link to the relevant docs URL or internal doc slug so readers can click
through directly from this section.

In `@versioned_docs/version-2/03-github-orchestrator/04-api-reference.mdx`:
- Line 221: The link in
versioned_docs/version-2/03-github-orchestrator/04-api-reference.mdx points to
the mutable branch "orchestrator-develop"; update that reference to a commit
hash or a release tag corresponding to this docs version (replace the URL
containing "orchestrator-develop" with a permanent tag/commit URL for the same
file) so the versioned docs remain stable over time.

In `@versioned_docs/version-3/03-github-orchestrator/04-api-reference.mdx`:
- Line 221: Replace the unstable branch link that points to
"orchestrator-develop" with a version-pinned reference (a tag or specific commit
SHA) so the docs remain stable; update the markdown link target currently
referencing
"https://github.com/game-ci/unity-builder/blob/orchestrator-develop/action.yml"
to the corresponding release tag or a specific commit URL (e.g., replace
"orchestrator-develop" with the chosen tag name or commit SHA) while keeping the
same display text or adjusting it to indicate the pinned version.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f437680b-0921-471e-920b-3e663746d60f

📥 Commits

Reviewing files that changed from the base of the PR and between 4c1af4f and 74e5507.

📒 Files selected for processing (91)
  • README.md
  • docs/03-github-cloud-runner/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx
  • docs/03-github-orchestrator/01-introduction.mdx
  • docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx
  • docs/03-github-orchestrator/02-getting-started.mdx
  • docs/03-github-orchestrator/03-examples/01-command-line.mdx
  • docs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx
  • docs/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx
  • docs/03-github-orchestrator/03-examples/02-github-examples/_category_.yaml
  • docs/03-github-orchestrator/03-examples/_category_.yaml
  • docs/03-github-orchestrator/04-api-reference.mdx
  • docs/03-github-orchestrator/06-advanced-topics/01-caching.mdx
  • docs/03-github-orchestrator/06-advanced-topics/02-retained-workspace.mdx
  • docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx
  • docs/03-github-orchestrator/06-advanced-topics/04-configuration-override.mdx
  • docs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/01-custom-job.mdx
  • docs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/03-command-hooks.mdx
  • docs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/04-container-hooks.mdx
  • docs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/05-premade-container-jobs.mdx
  • docs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/_category_.yaml
  • docs/03-github-orchestrator/06-advanced-topics/05-logging.mdx
  • docs/03-github-orchestrator/06-advanced-topics/06-secrets.mdx
  • docs/03-github-orchestrator/06-advanced-topics/07-custom-providers.mdx
  • docs/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx
  • docs/03-github-orchestrator/06-advanced-topics/09-gitlab/_category_.yaml
  • docs/03-github-orchestrator/06-advanced-topics/10-github/01-github-checks.mdx
  • docs/03-github-orchestrator/06-advanced-topics/10-github/_category_.yaml
  • docs/03-github-orchestrator/06-advanced-topics/_category_.yaml
  • docs/03-github-orchestrator/_category_.yaml
  • docs/09-troubleshooting/common-issues.mdx
  • docs/12-self-hosting/01-overview.mdx
  • docs/12-self-hosting/02-host-types.mdx
  • versioned_docs/version-2/03-github-cloud-runner/06-advanced-topics/01-caching.mdx
  • versioned_docs/version-2/03-github-cloud-runner/06-advanced-topics/03-garbage-collection.mdx
  • versioned_docs/version-2/03-github-cloud-runner/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx
  • versioned_docs/version-2/03-github-orchestrator/01-introduction.mdx
  • versioned_docs/version-2/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx
  • versioned_docs/version-2/03-github-orchestrator/02-getting-started.mdx
  • versioned_docs/version-2/03-github-orchestrator/03-examples/01-command-line.mdx
  • versioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx
  • versioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx
  • versioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/_category_.yaml
  • versioned_docs/version-2/03-github-orchestrator/03-examples/_category_.yaml
  • versioned_docs/version-2/03-github-orchestrator/04-api-reference.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/01-caching.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/02-retained-workspace.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-configuration-override.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-custom-hooks/01-custom-job.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-custom-hooks/03-command-hooks.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-custom-hooks/04-container-hooks.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-custom-hooks/05-premade-container-jobs.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-custom-hooks/_category_.yaml
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/05-logging.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/06-secrets.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/09-gitlab/_category_.yaml
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/10-github/01-github-checks.mdx
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/10-github/_category_.yaml
  • versioned_docs/version-2/03-github-orchestrator/06-advanced-topics/_category_.yaml
  • versioned_docs/version-2/03-github-orchestrator/_category_.yaml
  • versioned_docs/version-2/09-troubleshooting/common-issues.mdx
  • versioned_docs/version-3/03-github-cloud-runner/02-getting-started.mdx
  • versioned_docs/version-3/03-github-cloud-runner/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx
  • versioned_docs/version-3/03-github-orchestrator/01-introduction.mdx
  • versioned_docs/version-3/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx
  • versioned_docs/version-3/03-github-orchestrator/02-getting-started.mdx
  • versioned_docs/version-3/03-github-orchestrator/03-examples/01-command-line.mdx
  • versioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx
  • versioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx
  • versioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/_category_.yaml
  • versioned_docs/version-3/03-github-orchestrator/03-examples/_category_.yaml
  • versioned_docs/version-3/03-github-orchestrator/04-api-reference.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/01-caching.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/02-retained-workspace.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-configuration-override.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-custom-hooks/01-custom-job.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-custom-hooks/03-command-hooks.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-custom-hooks/04-container-hooks.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-custom-hooks/05-premade-container-jobs.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-custom-hooks/_category_.yaml
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/05-logging.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/06-secrets.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/09-gitlab/_category_.yaml
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/10-github/01-github-checks.mdx
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/10-github/_category_.yaml
  • versioned_docs/version-3/03-github-orchestrator/06-advanced-topics/_category_.yaml
  • versioned_docs/version-3/03-github-orchestrator/_category_.yaml
  • versioned_docs/version-3/09-troubleshooting/common-issues.mdx
💤 Files with no reviewable changes (6)
  • versioned_docs/version-2/03-github-cloud-runner/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx
  • versioned_docs/version-3/03-github-cloud-runner/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx
  • versioned_docs/version-2/03-github-cloud-runner/06-advanced-topics/03-garbage-collection.mdx
  • versioned_docs/version-3/03-github-cloud-runner/02-getting-started.mdx
  • docs/03-github-cloud-runner/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx
  • versioned_docs/version-2/03-github-cloud-runner/06-advanced-topics/01-caching.mdx

Document how to use custom providers via GitHub repos, NPM packages,
or local paths. Covers the ProviderInterface, supported source formats,
caching behavior, and a full example implementation. Also updates the
API reference to mention custom providers under providerStrategy.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@frostebite frostebite force-pushed the document-provider-plugins branch from 74e5507 to 3dac016 Compare March 5, 2026 04:57
@github-actions
Copy link

github-actions bot commented Mar 5, 2026

Visit the preview URL for this PR (updated for commit 7b370f1):

https://game-ci-5559f--pr532-document-provider-pl-jylk5max.web.app

(expires Thu, 12 Mar 2026 07:23:30 GMT)

🔥 via Firebase Hosting GitHub Action 🌎

Sign: 1f0574f15f83e11bfc148eae8646486a6d0e078b

- Restructure providers into dedicated section with overview, custom
  providers, community providers (with GitHub edit link), and
  GitHub/GitLab integration pages
- Rewrite API reference with proper tables, all missing parameters
  (orchestratorRepoName, githubOwner, allowDirtyBuild, postBuildSteps,
  preBuildSteps, customHookFiles, customCommandHooks, useCleanupCron),
  and environment variables (AWS_FORCE_PROVIDER, PURGE_REMOTE_BUILDER_CACHE,
  ORCHESTRATOR_AWS_STACK_WAIT_TIME, GIT_PRIVATE_TOKEN)
- Document premade rclone hooks and Steam deployment hooks
- Add S3/rclone workspace locking documentation
- Tighten language across all pages for clarity
- Add ASCII diagrams to introduction, caching, logging, and config override
- Add tasteful emoji to section headers
- Rename "Game-CI vs Orchestrator" to "Standard Game-CI vs Orchestrator Mode"
- Remove outdated Deno section from command line docs
- Improve examples with proper tables, workflow snippets, and cross-links

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@frostebite frostebite changed the title Document custom provider plugin system Comprehensive orchestrator documentation overhaul Mar 5, 2026
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx (1)

10-27: 🛠️ Refactor suggestion | 🟠 Major

Update AWS credentials example to prioritize OIDC role-assumption over static keys

AWS and GitHub recommend using OpenID Connect (OIDC) role assumption as the default approach for aws-actions/configure-aws-credentials@v4 instead of long-lived access keys. Update lines 10-26 to show the OIDC approach first:

Suggested OIDC example
- name: Configure AWS Credentials (OIDC)
  uses: aws-actions/configure-aws-credentials@v4
  with:
    aws-region: eu-west-2
    role-to-assume: arn:aws:iam::ACCOUNT_ID:role/GITHUB_OIDC_ROLE_NAME
    role-session-name: github-actions

Requires workflow permissions: id-token: write and contents: read. The IAM role must trust token.actions.githubusercontent.com with appropriate conditions on the OIDC token's sub claim.

Keep static AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY as a fallback section for legacy setups.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx` around
lines 10 - 27, Update the AWS credentials docs to present the OIDC
role-assumption example first by replacing the current GitHub Actions snippet
with an OIDC example using aws-actions/configure-aws-credentials@v4 and the
fields role-to-assume and role-session-name (e.g., role-to-assume:
arn:aws:iam::ACCOUNT_ID:role/GITHUB_OIDC_ROLE_NAME, role-session-name:
github-actions), add a short note that workflows require permissions id-token:
write and contents: read and that the IAM role must trust
token.actions.githubusercontent.com with appropriate sub-claim conditions, and
then keep the existing static AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY snippet
as a labeled fallback section for legacy setups.
🧹 Nitpick comments (5)
docs/03-github-orchestrator/06-advanced-topics/01-caching.mdx (1)

43-43: Add period after "etc" for American English style.

The abbreviation "etc." should include a period before the closing parenthesis.

✏️ Suggested fix
-| Rclone   | `rclone`          | Flexible cloud storage via [rclone](https://rclone.org). Supports 70+ backends (Google Cloud, Azure Blob, Backblaze, SFTP, etc). |
+| Rclone   | `rclone`          | Flexible cloud storage via [rclone](https://rclone.org). Supports 70+ backends (Google Cloud, Azure Blob, Backblaze, SFTP, etc.). |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/06-advanced-topics/01-caching.mdx` at line 43,
The table row for Rclone currently ends with "etc)" without the period; update
the MDX line that contains "| Rclone   | `rclone`          | Flexible cloud
storage via [rclone](https://rclone.org). Supports 70+ backends (Google Cloud,
Azure Blob, Backblaze, SFTP, etc)." to include the period in the abbreviation so
it reads "... SFTP, etc.)." — edit the text inside the table cell (the Rclone
row) to change "etc)" to "etc.)."
docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx (1)

26-36: Consider adding useCleanupCron to the Parameters table.

The Automatic Cleanup section references useCleanupCron (enabled by default), but it's not listed in the Parameters table above. For completeness and quick reference, consider adding it to the table.

📝 Suggested addition to Parameters table
 | Parameter       | Default | Description                                           |
 | --------------- | ------- | ----------------------------------------------------- |
 | `garbageMaxAge` | `24`    | Maximum age in hours before resources are cleaned up. |
+| `useCleanupCron`| `true`  | Create an AWS CloudFormation cron job to automatically clean up old resources. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx`
around lines 26 - 36, Add the missing useCleanupCron parameter to the Parameters
table so docs match the Automatic Cleanup section: update the table that
currently lists garbageMaxAge to also include `useCleanupCron` (noting its
default is enabled/true and a short description like "Enable CloudFormation cron
job to automatically clean up old ECS resources when using the AWS provider").
Ensure the table row uses the same formatting as `garbageMaxAge` and mentions
that it is enabled by default.
docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx (1)

28-29: Consider avoiding hardcoded runner capacity values.

The ~14 GB disk note may become stale. Prefer a relative statement (limited fixed disk) or a link to the CI provider’s current limits page.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx` around lines 28 -
29, Replace the hardcoded "~14 GB disk" runner capacity note in the
"02-game-ci-vs-orchestrator.mdx" content (the line containing "~14 GB disk" and
the nearby "Fixed resources" statement) with a relative description like
"limited fixed disk" or a link to the CI provider's up-to-date limits page;
update the wording to avoid specific numeric values so it doesn't become stale
and optionally add a parenthetical or footnote pointing to the provider's
official limits URL for precision.
docs/03-github-orchestrator/01-introduction.mdx (1)

41-69: Add a “last updated” date for release-status tables.

These status snapshots are useful but time-sensitive. Adding an explicit “Last updated” date will reduce ambiguity when statuses change.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/01-introduction.mdx` around lines 41 - 69, Add an
explicit "Last updated" date for the release-status content under the "## 📦
Release Status" section: insert a concise date line (e.g., "Last updated:
2026-03-05") in ISO format directly beneath the Provider Support table and the
Platform Support table (or as a single date line immediately below the Release
Status heading if you prefer one shared timestamp) so readers know when those
status snapshots were recorded; update the date whenever the tables in this
section are changed.
docs/03-github-orchestrator/06-advanced-topics/07-providers/05-gitlab-integration.mdx (1)

18-22: Pin the cloned Orchestrator source for reproducible pipelines.

Line 18 currently clones a moving target. Pinning a tag/branch prevents silent breakage in user pipelines.

Suggested docs update
-    - git clone https://github.com/game-ci/unity-builder.git /tmp/game-ci
+    - git clone --depth 1 --branch v4 https://github.com/game-ci/unity-builder.git /tmp/game-ci
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@docs/03-github-orchestrator/06-advanced-topics/07-providers/05-gitlab-integration.mdx`
around lines 18 - 22, The docs currently clone the Orchestrator source as a
moving target using the plain "git clone" command; change that to pin a specific
tag or branch (e.g., use git clone --branch <tag-or-branch> --single-branch or
clone then git checkout <tag>) so the example is reproducible and stable; update
the example invocation that follows (the yarn install and yarn run cli -m
cli-build --projectPath $CI_PROJECT_DIR --providerStrategy aws --gitPrivateToken
$GIT_TOKEN lines) to remain the same but note that they run against the pinned
source referenced by the git clone command.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx`:
- Around line 31-45: Update the AWS Fargate CPU/memory table and surrounding
text to explicitly state units are in MiB (e.g., "1024 MiB = 1 GiB") and that
memory values within the listed ranges must be specified in 1024 MiB increments
(so not every integer in the range is allowed). Locate the table identified by
the headers "CPU (`containerCpu`) | Memory (`containerMemory`)" and the
preceding sentences about CPU/memory formats and add a short caption or
parenthetical note clarifying both the MiB unit and the 1024 MiB increment rule
for each ranged entry.

In `@docs/03-github-orchestrator/04-api-reference.mdx`:
- Line 49: Update the docs to remove the incorrect reference to the non-existent
parameter "GitSHA" in the GITHUB_REF description: change the fallback wording so
it only mentions actual inputs (e.g., "branch") or remove the fallback clause
entirely, and clarify that GITHUB_REF is a GitHub Actions runtime environment
variable rather than an action input; adjust the line mentioning `GITHUB_REF`,
`branch`, and `GitSHA` accordingly so only real parameters are referenced.

In
`@docs/03-github-orchestrator/06-advanced-topics/04-configuration-override.mdx`:
- Line 31: Update the `aws-secret-manager` preset command entry so it extracts
the secret value (SecretString) as plain text rather than returning the full
JSON object; modify the command string shown for `aws-secret-manager` (currently
`aws secretsmanager get-secret-value --secret-id {0}`) to include `--query
SecretString --output text` so the orchestrator receives only the secret value
for parameter injection.

In
`@docs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/04-container-hooks.mdx`:
- Around line 17-18: The sentence currently implies inline hook definitions;
update the wording to clarify these options reference files rather than inline
commands by rephrasing to something like: "Reference hook files to run
before/after build via preBuildContainerHooks and postBuildContainerHooks, or
specify files from .game-ci/container-hooks/ using containerHookFiles." Ensure
the terms preBuildContainerHooks, postBuildContainerHooks, and
containerHookFiles are used to avoid inline-vs-file confusion.

---

Outside diff comments:
In `@docs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx`:
- Around line 10-27: Update the AWS credentials docs to present the OIDC
role-assumption example first by replacing the current GitHub Actions snippet
with an OIDC example using aws-actions/configure-aws-credentials@v4 and the
fields role-to-assume and role-session-name (e.g., role-to-assume:
arn:aws:iam::ACCOUNT_ID:role/GITHUB_OIDC_ROLE_NAME, role-session-name:
github-actions), add a short note that workflows require permissions id-token:
write and contents: read and that the IAM role must trust
token.actions.githubusercontent.com with appropriate sub-claim conditions, and
then keep the existing static AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY snippet
as a labeled fallback section for legacy setups.

---

Nitpick comments:
In `@docs/03-github-orchestrator/01-introduction.mdx`:
- Around line 41-69: Add an explicit "Last updated" date for the release-status
content under the "## 📦 Release Status" section: insert a concise date line
(e.g., "Last updated: 2026-03-05") in ISO format directly beneath the Provider
Support table and the Platform Support table (or as a single date line
immediately below the Release Status heading if you prefer one shared timestamp)
so readers know when those status snapshots were recorded; update the date
whenever the tables in this section are changed.

In `@docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx`:
- Around line 28-29: Replace the hardcoded "~14 GB disk" runner capacity note in
the "02-game-ci-vs-orchestrator.mdx" content (the line containing "~14 GB disk"
and the nearby "Fixed resources" statement) with a relative description like
"limited fixed disk" or a link to the CI provider's up-to-date limits page;
update the wording to avoid specific numeric values so it doesn't become stale
and optionally add a parenthetical or footnote pointing to the provider's
official limits URL for precision.

In `@docs/03-github-orchestrator/06-advanced-topics/01-caching.mdx`:
- Line 43: The table row for Rclone currently ends with "etc)" without the
period; update the MDX line that contains "| Rclone   | `rclone`          |
Flexible cloud storage via [rclone](https://rclone.org). Supports 70+ backends
(Google Cloud, Azure Blob, Backblaze, SFTP, etc)." to include the period in the
abbreviation so it reads "... SFTP, etc.)." — edit the text inside the table
cell (the Rclone row) to change "etc)" to "etc.)."

In `@docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx`:
- Around line 26-36: Add the missing useCleanupCron parameter to the Parameters
table so docs match the Automatic Cleanup section: update the table that
currently lists garbageMaxAge to also include `useCleanupCron` (noting its
default is enabled/true and a short description like "Enable CloudFormation cron
job to automatically clean up old ECS resources when using the AWS provider").
Ensure the table row uses the same formatting as `garbageMaxAge` and mentions
that it is enabled by default.

In
`@docs/03-github-orchestrator/06-advanced-topics/07-providers/05-gitlab-integration.mdx`:
- Around line 18-22: The docs currently clone the Orchestrator source as a
moving target using the plain "git clone" command; change that to pin a specific
tag or branch (e.g., use git clone --branch <tag-or-branch> --single-branch or
clone then git checkout <tag>) so the example is reproducible and stable; update
the example invocation that follows (the yarn install and yarn run cli -m
cli-build --projectPath $CI_PROJECT_DIR --providerStrategy aws --gitPrivateToken
$GIT_TOKEN lines) to remain the same but note that they run against the pinned
source referenced by the git clone command.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4da84219-0092-4fa7-8d66-3fa9be113744

📥 Commits

Reviewing files that changed from the base of the PR and between 3dac016 and d706850.

📒 Files selected for processing (26)
  • docs/03-github-orchestrator/01-introduction.mdx
  • docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx
  • docs/03-github-orchestrator/03-examples/01-command-line.mdx
  • docs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx
  • docs/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdx
  • docs/03-github-orchestrator/04-api-reference.mdx
  • docs/03-github-orchestrator/06-advanced-topics/01-caching.mdx
  • docs/03-github-orchestrator/06-advanced-topics/02-retained-workspace.mdx
  • docs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdx
  • docs/03-github-orchestrator/06-advanced-topics/04-configuration-override.mdx
  • docs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/01-custom-job.mdx
  • docs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/03-command-hooks.mdx
  • docs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/04-container-hooks.mdx
  • docs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/05-premade-container-jobs.mdx
  • docs/03-github-orchestrator/06-advanced-topics/05-logging.mdx
  • docs/03-github-orchestrator/06-advanced-topics/06-secrets.mdx
  • docs/03-github-orchestrator/06-advanced-topics/07-providers/01-overview.mdx
  • docs/03-github-orchestrator/06-advanced-topics/07-providers/02-custom-providers.mdx
  • docs/03-github-orchestrator/06-advanced-topics/07-providers/03-community-providers.mdx
  • docs/03-github-orchestrator/06-advanced-topics/07-providers/04-github-integration.mdx
  • docs/03-github-orchestrator/06-advanced-topics/07-providers/05-gitlab-integration.mdx
  • docs/03-github-orchestrator/06-advanced-topics/07-providers/_category_.yaml
  • docs/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx
  • docs/03-github-orchestrator/06-advanced-topics/09-gitlab/_category_.yaml
  • docs/03-github-orchestrator/06-advanced-topics/10-github/01-github-checks.mdx
  • docs/03-github-orchestrator/06-advanced-topics/10-github/_category_.yaml
💤 Files with no reviewable changes (4)
  • docs/03-github-orchestrator/06-advanced-topics/10-github/01-github-checks.mdx
  • docs/03-github-orchestrator/06-advanced-topics/10-github/category.yaml
  • docs/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdx
  • docs/03-github-orchestrator/06-advanced-topics/09-gitlab/category.yaml
✅ Files skipped from review due to trivial changes (6)
  • docs/03-github-orchestrator/06-advanced-topics/07-providers/category.yaml
  • docs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/03-command-hooks.mdx
  • docs/03-github-orchestrator/06-advanced-topics/07-providers/01-overview.mdx
  • docs/03-github-orchestrator/06-advanced-topics/07-providers/02-custom-providers.mdx
  • docs/03-github-orchestrator/06-advanced-topics/07-providers/04-github-integration.mdx
  • docs/03-github-orchestrator/06-advanced-topics/07-providers/03-community-providers.mdx

Comment on lines +31 to +45
AWS Fargate only accepts specific CPU/memory combinations. Values use the format `1024 = 1 vCPU` or
`1 GB`. Do not include the vCPU or GB suffix.

Refer to [Configuration page](../../api-reference) or the [example below](#example).
See the full list:
[AWS Fargate Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size)

### Allowed CPU/Memory Combinations
Common combinations:

There are some limitations to the CPU and Memory parameters. AWS will only accept the following
combinations:
[AWS Fargate Documentation, Allowed CPU and memory values (Task Definitions)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size)
| CPU (`containerCpu`) | Memory (`containerMemory`) |
| -------------------- | -------------------------- |
| `256` (0.25 vCPU) | `512`, `1024`, `2048` |
| `512` (0.5 vCPU) | `1024` – `4096` |
| `1024` (1 vCPU) | `2048` – `8192` |
| `2048` (2 vCPU) | `4096` – `16384` |
| `4096` (4 vCPU) | `8192` – `30720` |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

AWS Fargate task definition CPU memory combinations valid values 2024 2025

💡 Result:

Valid AWS Fargate (ECS) task-level cpu / memory combinations (the allowed values are fixed pairs, not arbitrary) are: (docs.aws.amazon.com)

Notes:

  • In task definition JSON, memory is specified in MiB (e.g., 1 GB = 1024 MiB). (docs.aws.amazon.com)

Citations:


🌐 Web query:

AWS ECS Fargate CPU units 256 512 1024 2048 4096 memory MiB valid increments

💡 Result:

Valid ECS Fargate task-level cpu/memory combinations (memory in MiB) are:

cpu (CPU units) vCPU Valid memory (MiB) Increment rule
256 0.25 512, 1024, 2048 fixed set
512 0.5 1024, 2048, 3072, 4096 fixed set
1024 1 2048, 3072, 4096, 5120, 6144, 7168, 8192 fixed set (adds 1 GiB steps from 2–8 GiB)
2048 2 4096–16384 +1024 MiB (1 GiB) steps
4096 4 8192–30720 +1024 MiB (1 GiB) steps

Sources: AWS ECS developer guide / troubleshooting table for Fargate CPU+memory validity. [1], [2]

References
[1] https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html
[2] https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html


Clarify Fargate memory increment rules and units to prevent invalid configurations

Lines 31–33 and the table at lines 42–45 correctly represent AWS Fargate's valid CPU/memory combinations, but the range notation (e.g., 1024 – 4096) risks ambiguity—users may assume any value in the range is accepted, when in fact only 1 GiB (1024 MiB) increments are valid. Additionally, the wording "1 GB" should clarify that task definitions require values in MiB (e.g., 1024 MiB = 1 GiB).

Recommend making the increment rule explicit in the table or caption to prevent deployment failures from unsupported memory values.

Suggested documentation clarification
 AWS Fargate only accepts specific CPU/memory combinations. Values use the format `1024 = 1 vCPU` or
-`1 GB`. Do not include the vCPU or GB suffix.
+`1 GiB (1024 MiB)`. Do not include the vCPU, GB, or GiB suffix.
+
+**Memory values must be in MiB and increment by 1 GiB (1024 MiB) for CPU ≥ 512.**

 | CPU (`containerCpu`) | Memory (`containerMemory`) |
 | -------------------- | -------------------------- |
 | `256` (0.25 vCPU)    | `512`, `1024`, `2048`      |
-| `512` (0.5 vCPU)     | `1024` – `4096`            |
-| `1024` (1 vCPU)      | `2048` – `8192`            |
-| `2048` (2 vCPU)      | `4096` – `16384`           |
-| `4096` (4 vCPU)      | `8192` – `30720`           |
+| `512` (0.5 vCPU)     | `1024` – `4096` (1024 MiB increments) |
+| `1024` (1 vCPU)      | `2048` – `8192` (1024 MiB increments) |
+| `2048` (2 vCPU)      | `4096` – `16384` (1024 MiB increments) |
+| `4096` (4 vCPU)      | `8192` – `30720` (1024 MiB increments) |
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
AWS Fargate only accepts specific CPU/memory combinations. Values use the format `1024 = 1 vCPU` or
`1 GB`. Do not include the vCPU or GB suffix.
Refer to [Configuration page](../../api-reference) or the [example below](#example).
See the full list:
[AWS Fargate Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size)
### Allowed CPU/Memory Combinations
Common combinations:
There are some limitations to the CPU and Memory parameters. AWS will only accept the following
combinations:
[AWS Fargate Documentation, Allowed CPU and memory values (Task Definitions)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size)
| CPU (`containerCpu`) | Memory (`containerMemory`) |
| -------------------- | -------------------------- |
| `256` (0.25 vCPU) | `512`, `1024`, `2048` |
| `512` (0.5 vCPU) | `1024``4096` |
| `1024` (1 vCPU) | `2048``8192` |
| `2048` (2 vCPU) | `4096``16384` |
| `4096` (4 vCPU) | `8192``30720` |
AWS Fargate only accepts specific CPU/memory combinations. Values use the format `1024 = 1 vCPU` or
`1 GiB (1024 MiB)`. Do not include the vCPU, GB, or GiB suffix.
**Memory values must be in MiB and increment by 1 GiB (1024 MiB) for CPU ≥ 512.**
See the full list:
[AWS Fargate Task Definitions](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#task_size)
Common combinations:
| CPU (`containerCpu`) | Memory (`containerMemory`) |
| -------------------- | -------------------------- |
| `256` (0.25 vCPU) | `512`, `1024`, `2048` |
| `512` (0.5 vCPU) | `1024``4096` (1024 MiB increments) |
| `1024` (1 vCPU) | `2048``8192` (1024 MiB increments) |
| `2048` (2 vCPU) | `4096``16384` (1024 MiB increments) |
| `4096` (4 vCPU) | `8192``30720` (1024 MiB increments) |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdx` around
lines 31 - 45, Update the AWS Fargate CPU/memory table and surrounding text to
explicitly state units are in MiB (e.g., "1024 MiB = 1 GiB") and that memory
values within the listed ranges must be specified in 1024 MiB increments (so not
every integer in the range is allowed). Locate the table identified by the
headers "CPU (`containerCpu`) | Memory (`containerMemory`)" and the preceding
sentences about CPU/memory formats and add a short caption or parenthetical note
clarifying both the MiB unit and the 1024 MiB increment rule for each ranged
entry.

| Preset | Expands to |
| -------------------- | ----------------------------------------------------- |
| `gcp-secret-manager` | `gcloud secrets versions access 1 --secret="{0}"` |
| `aws-secret-manager` | `aws secretsmanager get-secret-value --secret-id {0}` |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

AWS CLI secretsmanager get-secret-value default output format and how to extract SecretString

💡 Result:

  • Default output format (AWS CLI): json (unless overridden by --output, ~/.aws/config output=..., or AWS_DEFAULT_OUTPUT). [2], [3]

  • get-secret-value output shape: JSON object that includes fields like ARN, Name, VersionId, and (if it’s a string secret) SecretString (often itself a JSON-encoded string). [1]

Extract SecretString

aws secretsmanager get-secret-value --secret-id MySecret --query SecretString --output text

[1], [2]

If SecretString contains JSON and you want a specific key (example: password)

aws secretsmanager get-secret-value --secret-id MySecret --query SecretString --output text \
| jq -r '.password'

(The AWS docs also explicitly suggest using jq for advanced JSON filtering.) [2]

Set a different default output (optional)

export AWS_DEFAULT_OUTPUT=text
# or in ~/.aws/config:
# [default]
# output=text

[2], [3]

Sources: [1] get-secret-value CLI reference, [2] AWS CLI output formats doc, [3] AWS CLI configuration variables doc.


AWS preset command returns full JSON, not the secret value.

Line 31 should extract SecretString as plain text to ensure the orchestrator receives the actual secret value, not a JSON object. The command should include --query SecretString --output text to output only the secret value for parameter injection.

Suggested docs correction
-| `aws-secret-manager` | `aws secretsmanager get-secret-value --secret-id {0}` |
+| `aws-secret-manager` | `aws secretsmanager get-secret-value --secret-id {0} --query SecretString --output text` |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/06-advanced-topics/04-configuration-override.mdx`
at line 31, Update the `aws-secret-manager` preset command entry so it extracts
the secret value (SecretString) as plain text rather than returning the full
JSON object; modify the command string shown for `aws-secret-manager` (currently
`aws secretsmanager get-secret-value --secret-id {0}`) to include `--query
SecretString --output text` so the orchestrator receives only the secret value
for parameter injection.

frostebite and others added 3 commits March 5, 2026 05:53
Content already merged into the providers section at
07-providers/05-gitlab-integration.mdx

Co-Authored-By: Claude Opus 4.6 <[email protected]>
…e cross-linking

- Promote Providers from Advanced Topics to top-level section (05-providers/)
  with dedicated pages for AWS, Kubernetes, Local Docker, Local, Custom, Community,
  GitHub Integration, and GitLab Integration
- Move Secrets out of Advanced Topics to top-level (06-secrets.mdx)
- Rename custom-hooks to hooks throughout
- Remove all WIP/preview/release-status notices (project is stable)
- Fix floating {/* */} comment symbols in community-providers (use code block template)
- Update ASCII diagram in Game-CI vs Orchestrator to show CLI/any CI dispatch
- Add sidebar_label frontmatter for Game-CI vs Orchestrator page
- Add comprehensive cross-linking across all orchestrator docs:
  - Introduction links to providers, hooks, getting started, platforms
  - API Reference links to caching, hooks, providers, configuration override
  - Provider pages link to caching, hooks, API Reference sections
  - Getting Started links to provider setup guides and secrets
  - GitHub Integration links to API Reference for parameters and modes
  - Advanced Topics pages cross-reference each other and API Reference
- Fix all broken links from old directory structure
- Delete old directories (examples/github-examples, advanced-topics/providers)
- Run Prettier on all files

Co-Authored-By: Claude Opus 4.6 <[email protected]>
- Merge configuration-override.mdx content into secrets.mdx as a section
- Delete standalone configuration-override page
- Rename "Configuration Override" to "Pull Secrets" in API reference
- Update all cross-links (command-line, GitLab integration, API reference)
- Fix logging: "Orchestrator job (Fargate task)" instead of "Fargate tasks"

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@frostebite frostebite changed the title Comprehensive orchestrator documentation overhaul Comprehensive Orchestrator documentation overhaul Mar 5, 2026
Link to container-hooks page instead of the hooks directory.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

♻️ Duplicate comments (2)
docs/03-github-orchestrator/07-advanced-topics/05-configuration-override.mdx (1)

31-31: ⚠️ Potential issue | 🟠 Major

aws-secret-manager preset should return only the secret value

Line 31 currently returns the full JSON payload. For parameter injection, extract SecretString as text (--query SecretString --output text) so the override value is usable directly.

Suggested docs fix
-| `aws-secret-manager` | `aws secretsmanager get-secret-value --secret-id {0}` |
+| `aws-secret-manager` | `aws secretsmanager get-secret-value --secret-id {0} --query SecretString --output text` |
AWS CLI `secretsmanager get-secret-value`: what is the default output, and what is the recommended command to return only `SecretString` as plain text?
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/07-advanced-topics/05-configuration-override.mdx`
at line 31, Update the `aws-secret-manager` preset so it returns only the secret
value instead of the full JSON payload: replace the current command `aws
secretsmanager get-secret-value --secret-id {0}` (referenced as the
`aws-secret-manager` preset) with a command that queries SecretString and
outputs plain text by adding `--query SecretString --output text`, ensuring the
override value is usable directly.
docs/03-github-orchestrator/04-api-reference.mdx (1)

49-49: ⚠️ Potential issue | 🟠 Major

Remove stale GitSHA fallback from GITHUB_REF docs.

Line 49 still references GitSHA, which is not a valid documented input and can mislead copy/paste usage. This was previously flagged and appears reintroduced.

Suggested doc fix
-| `GITHUB_REF`        | _(auto)_ | Git ref to build. Falls back to `branch` or `GitSHA` parameters.    |
+| `GITHUB_REF`        | _(auto)_ | GitHub Actions runtime ref to build (`${{ github.ref }}` / `GITHUB_REF`). |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/04-api-reference.mdx` at line 49, Update the docs
entry for `GITHUB_REF` to remove the stale `GitSHA` fallback reference: edit the
line that currently reads "`GITHUB_REF` ... Falls back to `branch` or `GitSHA`
parameters." and remove `GitSHA` so it only mentions the valid fallback (e.g.,
"`branch`"); ensure the symbol `GITHUB_REF` remains and no other references to
`GitSHA` are reintroduced in that table row.
🧹 Nitpick comments (6)
docs/03-github-orchestrator/07-advanced-topics/04-hooks/05-premade-container-jobs.mdx (1)

40-46: Consider clarifying secrets vs. configuration parameters.

BUILD_GUID_TARGET and RELEASE_BRANCH appear to be build configuration values rather than sensitive credentials. If they don't require secrecy, consider documenting them separately from the authentication secrets, or add a note explaining why they're stored as secrets (e.g., if they vary per environment).

📝 Suggested clarification
 Uses the `steamcmd/steamcmd` Docker image. Requires the following secrets to be configured:
 
+**Authentication secrets:**
 - `STEAM_USERNAME`, `STEAM_PASSWORD`
-- `STEAM_APPID`
 - `STEAM_SSFN_FILE_NAME`, `STEAM_SSFN_FILE_CONTENTS`
 - `STEAM_CONFIG_VDF_1` through `STEAM_CONFIG_VDF_4`
-- `BUILD_GUID_TARGET`, `RELEASE_BRANCH`
+
+**Build configuration (can also be secrets):**
+- `STEAM_APPID`
+- `BUILD_GUID_TARGET`, `RELEASE_BRANCH`
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In
`@docs/03-github-orchestrator/07-advanced-topics/04-hooks/05-premade-container-jobs.mdx`
around lines 40 - 46, Update the documentation to clearly separate sensitive
credentials from non-secret build configuration: split the current secrets list
into two lists—one for authentication secrets (STEAM_USERNAME, STEAM_PASSWORD,
STEAM_SSFN_FILE_NAME, STEAM_SSFN_FILE_CONTENTS, STEAM_CONFIG_VDF_1 through
STEAM_CONFIG_VDF_4) and a second for build/config parameters (BUILD_GUID_TARGET,
RELEASE_BRANCH); if BUILD_GUID_TARGET or RELEASE_BRANCH must remain secrets, add
a short note explaining why they are stored as secrets and when they vary by
environment or should be protected.
docs/03-github-orchestrator/07-advanced-topics/02-retained-workspace.mdx (1)

21-28: Align example token naming with the dedicated private-token docs.

To avoid confusion between the built-in workflow token and a dedicated private Git token, consider using a purpose-specific secret name in the example.

Proposed doc tweak
 - uses: game-ci/unity-builder@v4
   with:
     providerStrategy: aws
     maxRetainedWorkspaces: 3
     targetPlatform: StandaloneLinux64
-    gitPrivateToken: ${{ secrets.GITHUB_TOKEN }}
+    gitPrivateToken: ${{ secrets.GIT_PRIVATE_TOKEN }}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/07-advanced-topics/02-retained-workspace.mdx`
around lines 21 - 28, Replace the generic built-in token name in the example so
it matches the dedicated private-token docs: in the workflow block using
game-ci/unity-builder@v4 update the gitPrivateToken example value from ${{
secrets.GITHUB_TOKEN }} to a purpose-specific secret (e.g., ${{
secrets.UNITY_PRIVATE_TOKEN }} or ${{ secrets.GAMECI_PRIVATE_TOKEN }}) and
ensure the surrounding text mentions that this secret must be a dedicated
personal or machine token stored in repository secrets.
docs/03-github-orchestrator/06-secrets.mdx (1)

18-19: Disambiguate external-source import vs provider-native injection.

Line 18-19 can be slightly clearer that this section is about importing into parameters, not the runtime injection path described above.

✏️ Suggested wording tweak
-For pulling secrets from external sources (e.g. GCP Secret Manager, AWS Secrets Manager) into
-Orchestrator parameters, see [Configuration Override](advanced-topics/configuration-override).
+To pull secrets from external sources into Orchestrator parameters, see
+[Configuration Override](advanced-topics/configuration-override).
+This is separate from the provider-native secret injection flow described above.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/06-secrets.mdx` around lines 18 - 19, Clarify
that this paragraph refers to importing external secrets into Orchestrator
parameters (not runtime provider-native injection) by rewording the sentence
starting "For pulling secrets from external sources..." to explicitly state
"importing secrets into Orchestrator parameters (Configuration Override)" and
add a short qualifier referencing the separate runtime injection path described
above so readers understand these are two distinct flows; keep the link to
[Configuration Override] intact.
docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx (2)

2-5: Consider aligning sidebar_label with the H1 title.

Line 2 uses Game-CI vs Orchestrator while Line 5 is Standard Game-CI vs Orchestrator Mode. Keeping these aligned improves navigation consistency.

Proposed tweak
-sidebar_label: Game-CI vs Orchestrator
+sidebar_label: Standard Game-CI vs Orchestrator Mode
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx` around lines 2 -
5, Update the frontmatter `sidebar_label` to match the H1 title so navigation is
consistent: change `sidebar_label: Game-CI vs Orchestrator` to `sidebar_label:
Standard Game-CI vs Orchestrator Mode` (or alternatively adjust the H1 to match
`sidebar_label`), ensuring the `sidebar_label` string and the page H1 are
identical.

9-12: Wording is slightly mixed between multi-platform and GitHub-specific guidance.

Lines 9-10 describe CI-platform-agnostic behavior, but Line 12 narrows to GitHub limits only. Consider keeping the “Best for” line platform-neutral or explicitly saying “GitHub-hosted runners”.

Proposed tweak
-**Best for:** Small to medium projects that fit within GitHub's resource limits.
+**Best for:** Small to medium projects that fit within your CI platform's resource limits.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx` around lines 9 -
12, The "Best for" line is GitHub-specific while the preceding sentence is
CI-platform-agnostic; update the "Best for" sentence in the Game CI section so
it matches the neutral phrasing. Locate the block containing "Game CI provides
Docker images and GitHub Actions..." and replace "Best for: Small to medium
projects that fit within GitHub's resource limits." with a platform-neutral
variant such as "Best for: Small to medium projects that fit within your CI
platform's resource limits." or explicitly mention "GitHub-hosted runners" if
you intend to keep it GitHub-specific.
docs/03-github-orchestrator/05-providers/09-gitlab-integration.mdx (1)

22-26: Use one token variable name consistently in this example.

Line 22 uses $GIT_TOKEN, while surrounding orchestrator docs use GIT_PRIVATE_TOKEN. Aligning names avoids avoidable setup mistakes.

Proposed doc fix
-      --gitPrivateToken $GIT_TOKEN
+      --gitPrivateToken $GIT_PRIVATE_TOKEN
   variables:
+    GIT_PRIVATE_TOKEN: $GIT_PRIVATE_TOKEN
     AWS_ACCESS_KEY_ID: $AWS_ACCESS_KEY_ID
     AWS_SECRET_ACCESS_KEY: $AWS_SECRET_ACCESS_KEY
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/05-providers/09-gitlab-integration.mdx` around
lines 22 - 26, The example uses two different token names which is confusing:
replace the $GIT_TOKEN usage with the consistent name used elsewhere
(GIT_PRIVATE_TOKEN) so the command/flag (--gitPrivateToken) and the CI variable
(GIT_PRIVATE_TOKEN) match; update the example where $GIT_TOKEN appears to use
$GIT_PRIVATE_TOKEN to align with surrounding orchestrator docs and avoid setup
errors.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx`:
- Around line 33-34: Replace the hardcoded "~14 GB disk" note with a generic,
non-versioned phrase and/or a link to GitHub docs: update the text line that
currently reads "~14 GB disk" (near the runner spec rows) to something like
"GitHub-hosted runner disk (varies by image; see GitHub-hosted runners
documentation)" and add a hyperlink to
https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
so the docs do not drift when runner specs change.

In `@docs/03-github-orchestrator/04-api-reference.mdx`:
- Line 24: Update the CLI-only parameters table to document the cachePullFrom
parameter referenced by the `cache-pull` mode: add an entry describing
`cachePullFrom` (expected values/format and purpose) alongside the `cache-pull`
row, and repeat the same addition where the second table appears (around the
block referenced by lines 137-143) so the CLI docs mention `cachePullFrom`
consistently for `cache-pull`.
- Around line 55-64: Update the description for the `containerHookFiles`
parameter to state it accepts either local filenames from
`.game-ci/container-hooks/` or premade hook names (as documented in the premade
container jobs guide), e.g., change the text for `containerHookFiles` to
explicitly mention "local filenames or premade hook names" and point readers to
the premade hooks docs for examples.

In `@docs/03-github-orchestrator/05-providers/_category_.yaml`:
- Line 2: The sidebar `position` value is duplicated (`position: 5.0`), causing
ordering conflicts; update the `position` key in this category file (currently
`position: 5.0`) to a unique sibling value (e.g., `5.1` or `6.0`) that does not
match the other category's `position` so the generated sidebar ordering is
deterministic.

In `@docs/03-github-orchestrator/05-providers/09-gitlab-integration.mdx`:
- Around line 18-21: The CI example currently clones the unity-builder default
branch (the line starting with "git clone
https://github.com/game-ci/unity-builder.git /tmp/game-ci"), which is
non-deterministic; update the example to pin to a specific immutable revision by
changing the clone step to fetch a fixed tag/commit (or accept an env var like
UNITY_BUILDER_REV) and ensure subsequent commands ("cd /tmp/game-ci && yarn
install" and "yarn run cli -m cli-build --projectPath $CI_PROJECT_DIR
--providerStrategy aws") run against that pinned revision; document the variable
or include the explicit tag/commit in the example so users get a reproducible,
supply-chain-safe workflow.

In `@docs/03-github-orchestrator/07-advanced-topics/06-logging.mdx`:
- Around line 31-34: Update the "Environment variable listing" bullet so it
explicitly requires redaction or names-only output rather than printing raw
values; locate the list item text "Environment variable listing" in the
docs/03-github-orchestrator/07-advanced-topics/06-logging.mdx content and
replace it with wording such as "Environment variable listing (redact values or
output names only)" to prevent leaking secrets/tokens in CI or debug logs.

---

Duplicate comments:
In `@docs/03-github-orchestrator/04-api-reference.mdx`:
- Line 49: Update the docs entry for `GITHUB_REF` to remove the stale `GitSHA`
fallback reference: edit the line that currently reads "`GITHUB_REF` ... Falls
back to `branch` or `GitSHA` parameters." and remove `GitSHA` so it only
mentions the valid fallback (e.g., "`branch`"); ensure the symbol `GITHUB_REF`
remains and no other references to `GitSHA` are reintroduced in that table row.

In
`@docs/03-github-orchestrator/07-advanced-topics/05-configuration-override.mdx`:
- Line 31: Update the `aws-secret-manager` preset so it returns only the secret
value instead of the full JSON payload: replace the current command `aws
secretsmanager get-secret-value --secret-id {0}` (referenced as the
`aws-secret-manager` preset) with a command that queries SecretString and
outputs plain text by adding `--query SecretString --output text`, ensuring the
override value is usable directly.

---

Nitpick comments:
In `@docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx`:
- Around line 2-5: Update the frontmatter `sidebar_label` to match the H1 title
so navigation is consistent: change `sidebar_label: Game-CI vs Orchestrator` to
`sidebar_label: Standard Game-CI vs Orchestrator Mode` (or alternatively adjust
the H1 to match `sidebar_label`), ensuring the `sidebar_label` string and the
page H1 are identical.
- Around line 9-12: The "Best for" line is GitHub-specific while the preceding
sentence is CI-platform-agnostic; update the "Best for" sentence in the Game CI
section so it matches the neutral phrasing. Locate the block containing "Game CI
provides Docker images and GitHub Actions..." and replace "Best for: Small to
medium projects that fit within GitHub's resource limits." with a
platform-neutral variant such as "Best for: Small to medium projects that fit
within your CI platform's resource limits." or explicitly mention "GitHub-hosted
runners" if you intend to keep it GitHub-specific.

In `@docs/03-github-orchestrator/05-providers/09-gitlab-integration.mdx`:
- Around line 22-26: The example uses two different token names which is
confusing: replace the $GIT_TOKEN usage with the consistent name used elsewhere
(GIT_PRIVATE_TOKEN) so the command/flag (--gitPrivateToken) and the CI variable
(GIT_PRIVATE_TOKEN) match; update the example where $GIT_TOKEN appears to use
$GIT_PRIVATE_TOKEN to align with surrounding orchestrator docs and avoid setup
errors.

In `@docs/03-github-orchestrator/06-secrets.mdx`:
- Around line 18-19: Clarify that this paragraph refers to importing external
secrets into Orchestrator parameters (not runtime provider-native injection) by
rewording the sentence starting "For pulling secrets from external sources..."
to explicitly state "importing secrets into Orchestrator parameters
(Configuration Override)" and add a short qualifier referencing the separate
runtime injection path described above so readers understand these are two
distinct flows; keep the link to [Configuration Override] intact.

In `@docs/03-github-orchestrator/07-advanced-topics/02-retained-workspace.mdx`:
- Around line 21-28: Replace the generic built-in token name in the example so
it matches the dedicated private-token docs: in the workflow block using
game-ci/unity-builder@v4 update the gitPrivateToken example value from ${{
secrets.GITHUB_TOKEN }} to a purpose-specific secret (e.g., ${{
secrets.UNITY_PRIVATE_TOKEN }} or ${{ secrets.GAMECI_PRIVATE_TOKEN }}) and
ensure the surrounding text mentions that this secret must be a dedicated
personal or machine token stored in repository secrets.

In
`@docs/03-github-orchestrator/07-advanced-topics/04-hooks/05-premade-container-jobs.mdx`:
- Around line 40-46: Update the documentation to clearly separate sensitive
credentials from non-secret build configuration: split the current secrets list
into two lists—one for authentication secrets (STEAM_USERNAME, STEAM_PASSWORD,
STEAM_SSFN_FILE_NAME, STEAM_SSFN_FILE_CONTENTS, STEAM_CONFIG_VDF_1 through
STEAM_CONFIG_VDF_4) and a second for build/config parameters (BUILD_GUID_TARGET,
RELEASE_BRANCH); if BUILD_GUID_TARGET or RELEASE_BRANCH must remain secrets, add
a short note explaining why they are stored as secrets and when they vary by
environment or should be protected.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 72ba2c50-e04d-4907-b845-609a079742e9

📥 Commits

Reviewing files that changed from the base of the PR and between 172ae89 and c95128d.

📒 Files selected for processing (27)
  • docs/03-github-orchestrator/01-introduction.mdx
  • docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx
  • docs/03-github-orchestrator/02-getting-started.mdx
  • docs/03-github-orchestrator/03-examples/01-command-line.mdx
  • docs/03-github-orchestrator/04-api-reference.mdx
  • docs/03-github-orchestrator/05-providers/01-overview.mdx
  • docs/03-github-orchestrator/05-providers/02-aws.mdx
  • docs/03-github-orchestrator/05-providers/03-kubernetes.mdx
  • docs/03-github-orchestrator/05-providers/04-local-docker.mdx
  • docs/03-github-orchestrator/05-providers/05-local.mdx
  • docs/03-github-orchestrator/05-providers/06-custom-providers.mdx
  • docs/03-github-orchestrator/05-providers/07-community-providers.mdx
  • docs/03-github-orchestrator/05-providers/08-github-integration.mdx
  • docs/03-github-orchestrator/05-providers/09-gitlab-integration.mdx
  • docs/03-github-orchestrator/05-providers/_category_.yaml
  • docs/03-github-orchestrator/06-secrets.mdx
  • docs/03-github-orchestrator/07-advanced-topics/01-caching.mdx
  • docs/03-github-orchestrator/07-advanced-topics/02-retained-workspace.mdx
  • docs/03-github-orchestrator/07-advanced-topics/03-garbage-collection.mdx
  • docs/03-github-orchestrator/07-advanced-topics/04-hooks/01-custom-job.mdx
  • docs/03-github-orchestrator/07-advanced-topics/04-hooks/03-command-hooks.mdx
  • docs/03-github-orchestrator/07-advanced-topics/04-hooks/04-container-hooks.mdx
  • docs/03-github-orchestrator/07-advanced-topics/04-hooks/05-premade-container-jobs.mdx
  • docs/03-github-orchestrator/07-advanced-topics/04-hooks/_category_.yaml
  • docs/03-github-orchestrator/07-advanced-topics/05-configuration-override.mdx
  • docs/03-github-orchestrator/07-advanced-topics/06-logging.mdx
  • docs/03-github-orchestrator/07-advanced-topics/_category_.yaml
✅ Files skipped from review due to trivial changes (11)
  • docs/03-github-orchestrator/07-advanced-topics/03-garbage-collection.mdx
  • docs/03-github-orchestrator/07-advanced-topics/04-hooks/03-command-hooks.mdx
  • docs/03-github-orchestrator/05-providers/07-community-providers.mdx
  • docs/03-github-orchestrator/07-advanced-topics/04-hooks/category.yaml
  • docs/03-github-orchestrator/07-advanced-topics/04-hooks/04-container-hooks.mdx
  • docs/03-github-orchestrator/07-advanced-topics/04-hooks/01-custom-job.mdx
  • docs/03-github-orchestrator/05-providers/05-local.mdx
  • docs/03-github-orchestrator/05-providers/04-local-docker.mdx
  • docs/03-github-orchestrator/07-advanced-topics/01-caching.mdx
  • docs/03-github-orchestrator/05-providers/02-aws.mdx
  • docs/03-github-orchestrator/02-getting-started.mdx
🚧 Files skipped from review as they are similar to previous changes (2)
  • docs/03-github-orchestrator/01-introduction.mdx
  • docs/03-github-orchestrator/03-examples/01-command-line.mdx

Comment on lines +33 to +34
~14 GB disk Configurable CPU, memory, disk
Fixed resources Scales to zero when idle
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🌐 Web query:

GitHub Actions ubuntu-latest runner disk space ephemeral storage specifications official

💡 Result:

Official GitHub-hosted ubuntu-latest (standard) runner specs + ephemeral storage

  • What ubuntu-latest is: a GitHub-hosted Linux VM image label (currently alongside ubuntu-24.04 and ubuntu-22.04). Each job gets a fresh VM (except the special single‑CPU ubuntu-slim runner), so the machine and its local disk are ephemeral (not preserved between jobs). [1]

  • Hardware / disk (SSD) for ubuntu-latest (x64):

    • Public repositories: 4 vCPU, 16 GB RAM, 14 GB SSD. [1]
    • Private repositories: 2 vCPU, 8 GB RAM, 14 GB SSD. [1]
  • Filesystem locations (official guidance): GitHub says paths are not static; use environment variables like GITHUB_WORKSPACE, HOME, and GITHUB_EVENT_PATH to reference where files live during a run. [1]

Source: GitHub Docs — GitHub-hosted runners reference (spec tables + filesystem notes). [1]


~14 GB disk is vulnerable to drift as GitHub upgrades runner specs—use generic wording instead.

The current ubuntu-latest specification is 14 GB SSD (per official GitHub documentation), but hardcoding capacity in docs creates maintenance risk. If GitHub upgrades runner specs in the future, this reference becomes outdated and misleading for build planning.

Consider:

-  ~14 GB disk                  Configurable CPU, memory, disk
+  Limited runner disk          Configurable CPU, memory, disk

Alternatively, reference the GitHub-hosted runners documentation directly instead of repeating specs inline.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
~14 GB disk Configurable CPU, memory, disk
Fixed resources Scales to zero when idle
Limited runner disk Configurable CPU, memory, disk
Fixed resources Scales to zero when idle
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdx` around lines 33 -
34, Replace the hardcoded "~14 GB disk" note with a generic, non-versioned
phrase and/or a link to GitHub docs: update the text line that currently reads
"~14 GB disk" (near the runner spec rows) to something like "GitHub-hosted
runner disk (varies by image; see GitHub-hosted runners documentation)" and add
a hyperlink to
https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners
so the docs do not drift when runner specs change.

| `watch` | Follow logs of a running workflow. |
| `garbage-collect` | Clean up old resources. See [Garbage Collection](advanced-topics/garbage-collection). |
| `cache-push` | Push to the caching directory. Uses `cachePushTo`. |
| `cache-pull` | Pull from the caching directory. Uses `cachePullFrom`. |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Document cachePullFrom in CLI-only parameters.

Line 24 states cache-pull uses cachePullFrom, but the CLI-only table omits that parameter, which makes the mode harder to use correctly.

Suggested table addition
 | `cachePushFrom`    | Local directory to push cache from.                  |
 | `cachePushTo`      | Remote path to push cache to.                        |
+| `cachePullFrom`    | Remote path to pull cache from.                      |
 | `artifactName`     | Name for the build artifact.                         |

Also applies to: 137-143

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/04-api-reference.mdx` at line 24, Update the
CLI-only parameters table to document the cachePullFrom parameter referenced by
the `cache-pull` mode: add an entry describing `cachePullFrom` (expected
values/format and purpose) alongside the `cache-pull` row, and repeat the same
addition where the second table appears (around the block referenced by lines
137-143) so the CLI docs mention `cachePullFrom` consistently for `cache-pull`.

Comment on lines +55 to +64
| Parameter | Default | Description |
| ------------------------- | ------- | ----------------------------------------------------------------------------------------------------------- |
| `containerHookFiles` | — | Names of [container hook](advanced-topics/hooks/container-hooks) files from `.game-ci/container-hooks/`. |
| `customHookFiles` | — | Names of custom hook files from `.game-ci/hooks/`. |
| `customCommandHooks` | — | Inline [command hooks](advanced-topics/hooks/command-hooks) as YAML. |
| `postBuildSteps` | — | Post-build job in YAML format with keys: `image`, `secrets`, `command`. |
| `preBuildSteps` | — | Pre-build job (after repo setup, before build) in YAML format. |
| `postBuildContainerHooks` | — | Container hook files to run after the build step. |
| `preBuildContainerHooks` | — | Container hook files to run before the build step. |
| `customJob` | — | Custom job YAML to override the default build workflow. See [Custom Job](advanced-topics/hooks/custom-job). |
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Clarify that containerHookFiles supports premade hook names.

Line 57 currently reads as local-file-only. That conflicts with docs/03-github-orchestrator/07-advanced-topics/04-hooks/05-premade-container-jobs.mdx (Lines 1-46), where premade hooks are passed by name.

Suggested wording tweak
-| `containerHookFiles`      | —       | Names of [container hook](advanced-topics/hooks/container-hooks) files from `.game-ci/container-hooks/`.    |
+| `containerHookFiles`      | —       | [Container hooks](advanced-topics/hooks/container-hooks) to run. Accepts premade hook names (for example `rclone-upload-build`) and local files from `.game-ci/container-hooks/`. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/04-api-reference.mdx` around lines 55 - 64,
Update the description for the `containerHookFiles` parameter to state it
accepts either local filenames from `.game-ci/container-hooks/` or premade hook
names (as documented in the premade container jobs guide), e.g., change the text
for `containerHookFiles` to explicitly mention "local filenames or premade hook
names" and point readers to the premade hooks docs for examples.

Comment on lines +18 to +21
- git clone https://github.com/game-ci/unity-builder.git /tmp/game-ci
- cd /tmp/game-ci && yarn install
- >
yarn run cli -m cli-build --projectPath $CI_PROJECT_DIR --providerStrategy aws
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Pin the cloned unity-builder revision in the CI example.

The example executes code from the default branch, which is non-deterministic and increases supply-chain risk for users copying this workflow.

Proposed doc fix
-    - git clone https://github.com/game-ci/unity-builder.git /tmp/game-ci
+    - git clone --depth 1 --branch v4 https://github.com/game-ci/unity-builder.git /tmp/game-ci
     - cd /tmp/game-ci && yarn install
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- git clone https://github.com/game-ci/unity-builder.git /tmp/game-ci
- cd /tmp/game-ci && yarn install
- >
yarn run cli -m cli-build --projectPath $CI_PROJECT_DIR --providerStrategy aws
- git clone --depth 1 --branch v4 https://github.com/game-ci/unity-builder.git /tmp/game-ci
- cd /tmp/game-ci && yarn install
- >
yarn run cli -m cli-build --projectPath $CI_PROJECT_DIR --providerStrategy aws
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/05-providers/09-gitlab-integration.mdx` around
lines 18 - 21, The CI example currently clones the unity-builder default branch
(the line starting with "git clone https://github.com/game-ci/unity-builder.git
/tmp/game-ci"), which is non-deterministic; update the example to pin to a
specific immutable revision by changing the clone step to fetch a fixed
tag/commit (or accept an env var like UNITY_BUILDER_REV) and ensure subsequent
commands ("cd /tmp/game-ci && yarn install" and "yarn run cli -m cli-build
--projectPath $CI_PROJECT_DIR --providerStrategy aws") run against that pinned
revision; document the variable or include the explicit tag/commit in the
example so users get a reproducible, supply-chain-safe workflow.

Comment on lines +31 to +34
- Resource allocation summaries (CPU, memory, disk)
- Directory structure via `tree`
- Environment variable listing
- Disk usage snapshots (`df -h`, `du -sh`)
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Avoid recommending raw environment variable dumps in debug logs.

Line 33 currently implies printing environment variables directly. In CI contexts, this can leak secrets/tokens and create a privacy/compliance risk. Please explicitly require redaction (or names-only output).

Suggested doc-safe wording
- - Environment variable listing
+ - Sanitized environment metadata (variable names only; sensitive values redacted)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Resource allocation summaries (CPU, memory, disk)
- Directory structure via `tree`
- Environment variable listing
- Disk usage snapshots (`df -h`, `du -sh`)
- Resource allocation summaries (CPU, memory, disk)
- Directory structure via `tree`
- Sanitized environment metadata (variable names only; sensitive values redacted)
- Disk usage snapshots (`df -h`, `du -sh`)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@docs/03-github-orchestrator/07-advanced-topics/06-logging.mdx` around lines
31 - 34, Update the "Environment variable listing" bullet so it explicitly
requires redaction or names-only output rather than printing raw values; locate
the list item text "Environment variable listing" in the
docs/03-github-orchestrator/07-advanced-topics/06-logging.mdx content and
replace it with wording such as "Environment variable listing (redact values or
output names only)" to prevent leaking secrets/tokens in CI or debug logs.

frostebite and others added 12 commits March 5, 2026 06:18
Complete workflow examples for every provider and common patterns:
- Minimal workflow, AWS Fargate, Kubernetes, Local Docker
- Async mode with GitHub Checks
- Scheduled garbage collection
- Multi-platform matrix builds
- Retained workspaces for faster rebuilds
- Container hooks (S3 upload + Steam deploy)
- Required secrets tables and cross-links to all relevant docs

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Equalize box widths and arrow spacing for consistent rendering.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
…ned workspaces

- Custom Providers: plugin loading flow (source → fetch → ProviderInterface)
- GitHub Integration: async mode lifecycle (dispatch → return → Check updates)
- Retained Workspaces: workspace locking across concurrent builds

Co-Authored-By: Claude Opus 4.6 <[email protected]>
…roviders overview

- Container Hooks: build pipeline with pre/post hook execution points
- Garbage Collection: resource lifecycle (normal cleanup vs stale → GC)
- AWS: CloudFormation resource stack (ECS, S3, CloudWatch, Kinesis)
- Providers Overview: decision flowchart for choosing a provider

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Shows each provider side-by-side with its key trait instead of
a decision flowchart.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Set Advanced Topics position to 7.0 so it renders after
Secrets (position 6 from filename).

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Update title and all cross-references across container hooks,
command hooks, and GitHub Actions examples.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
- Rename premade-container-jobs.mdx to built-in-hooks.mdx (fixes URL slug)
- Update all links from premade-container-jobs to built-in-hooks
- Rename "Pre-built Hooks" section header to "Built-In Hooks"
- Move Custom Job from hooks/ to advanced-topics/ (it's not a hook)
- Rename "Custom Jobs" to "Custom Job" (singular)
- Update API reference link to advanced-topics/custom-job
- Fix numbering conflicts in advanced-topics
- Fix retained workspace diagram alignment (remove emoji, align box walls)

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Remove emoji characters from diagrams (variable width across platforms
makes alignment impossible). Fix box wall alignment, arrow connections,
and consistent spacing in all 11 diagrams:
- Introduction (architecture overview)
- Caching (standard vs retained)
- Providers overview (4-across comparison)
- Container hooks (build pipeline)
- GitHub integration (async mode lifecycle)
- AWS (CloudFormation resource stack)
- Secrets (pull flow)
- Logging (log pipeline)
- Garbage collection (resource lifecycle)
- Custom providers (plugin loading)
- Retained workspaces (already fixed)

Co-Authored-By: Claude Opus 4.6 <[email protected]>
Documents how to route builds across multiple providers using
GitHub Actions scripting: platform-based routing, branch-based
routing, runner availability fallback, weighted distribution,
and async mode integration.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
- Storage page: documents project files, build output, caches,
  S3 and rclone backends, LZ4 compression, workspace locking,
  large packages, and container file system layout
- Architecture page: describes build lifecycle, core components,
  provider system, workflow composition, hook system, configuration
  resolution, remote client, CLI modes, and source code map
- Caching page: add Build Caching section explaining automatic
  build output caching based on cache key

Co-Authored-By: Claude Opus 4.6 <[email protected]>
The box previously said "GitHub Actions" which contradicted the
"Your Machine / CI" header. Now lists GitHub Actions, GitLab CI,
CLI, etc. to reflect that Orchestrator works from any entry point.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@frostebite frostebite changed the title Comprehensive Orchestrator documentation overhaul Comprehensive Orchestrator documentation update for LTS version Mar 5, 2026
@frostebite
Copy link
Member Author

Cross-references — unity-builder code PRs

The following unity-builder PRs implement features documented here:

Additional in-repo documentation PRs in unity-builder:

New Jobs page explains the build lifecycle, job types (build, test,
custom editor method, custom job, async), pre/post build phases, and
execution by provider. Gives users a conceptual overview before diving
into advanced topics.

New LFS Agents page documents elastic-git-storage built-in support with
auto-install, version pinning, multiple storage backends, and custom
agent configuration.

Renamed api-reference from 04 to 05 to accommodate the new Jobs page.

Co-Authored-By: Claude Opus 4.6 <[email protected]>
@frostebite frostebite changed the title Comprehensive Orchestrator documentation update for LTS version docs(orchestrator): comprehensive documentation update for LTS version Mar 5, 2026
frostebite added a commit that referenced this pull request Mar 5, 2026
…(resolve conflicts: keep restructured content from #532, drop old-path typo fixes)
@frostebite frostebite mentioned this pull request Mar 5, 2026
3 tasks
@frostebite
Copy link
Member Author

Consolidated into #541 (docs: LTS 2.0.0 — Combined Documentation). Updated for standalone @game-ci/orchestrator architecture.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant