docs(orchestrator): comprehensive documentation update for LTS version#532
docs(orchestrator): comprehensive documentation update for LTS version#532frostebite wants to merge 20 commits intomainfrom
Conversation
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughDocumentation 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
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
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 | 🟡 MinorUse 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 | 🟡 MinorTighten 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 | 🟡 MinorFix 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 | 🟡 MinorClarify 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
targetPlatformis used but not documented in the linked reference.The minimal example requires
targetPlatform, but the linked API Reference currently documentsproviderStrategyandgitPrivateTokenwithout defining validtargetPlatformvalues. Please addtargetPlatformtodocs/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 | 🟡 MinorUse official “GitHub” capitalization in the label.
Line 3 usesGithub; the standard brand capitalization isGitHub.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 | 🟡 MinorUpdate 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 | 🟡 MinorFix 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 | 🟡 MinorCorrect 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 willAlso 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 | 🟡 MinorCorrect 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 willAlso 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 | 🟡 MinorUse 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 | 🟡 MinorTighten wording for clarity and naming consistency.
Line 3 and Line 6 read awkwardly and switch from
Orchestratorto lowercaseorchestrator. 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 | 🟡 MinorFix 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 | 🟡 MinorUse TypeScript primitive
numberinstead of boxedNumber.Line 96 should use
number; documentingNumbercan 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 | 🟡 MinorMinor wording fix: hyphenate compound adjective.
Line 155 should be
Comma-separated listfor 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 | 🟡 MinorFix 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 | 🟡 MinorUse canonical product capitalization in category label.
Line 3 should use
GitHubinstead ofGithubfor 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 | 🟡 MinorFix user-facing copy typos and casing for consistency.
There are a few text issues in changed content: Line 12 (
first class→first-class), Line 14 (syncronize→synchronize), Line 22 (effeciency→efficiency), 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 | 🟡 MinorPlease clean up spelling/hyphenation and heading casing in changed copy.
Line 12 (
first class→first-class), Line 14 (syncronize→synchronize), Line 22 (effeciency→efficiency), 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 | 🟡 MinorGrammar 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 | 🟡 MinorGrammar 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 | 🟡 MinorGrammar 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 | 🟡 MinorUse
containerMemoryandcontainerCputo match API reference documentation.The API reference at
versioned_docs/version-2/03-github-orchestrator/04-api-reference.mdxdocumentscontainerCpuandcontainerMemoryas the standard parameters for specifying CPU and Memory resources. This example should use these documented parameter names instead oforchestratorMemoryandorchestratorCpu.🤖 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
@mainin 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
📒 Files selected for processing (91)
README.mddocs/03-github-cloud-runner/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdxdocs/03-github-orchestrator/01-introduction.mdxdocs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdxdocs/03-github-orchestrator/02-getting-started.mdxdocs/03-github-orchestrator/03-examples/01-command-line.mdxdocs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdxdocs/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdxdocs/03-github-orchestrator/03-examples/02-github-examples/_category_.yamldocs/03-github-orchestrator/03-examples/_category_.yamldocs/03-github-orchestrator/04-api-reference.mdxdocs/03-github-orchestrator/06-advanced-topics/01-caching.mdxdocs/03-github-orchestrator/06-advanced-topics/02-retained-workspace.mdxdocs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdxdocs/03-github-orchestrator/06-advanced-topics/04-configuration-override.mdxdocs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/01-custom-job.mdxdocs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/03-command-hooks.mdxdocs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/04-container-hooks.mdxdocs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/05-premade-container-jobs.mdxdocs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/_category_.yamldocs/03-github-orchestrator/06-advanced-topics/05-logging.mdxdocs/03-github-orchestrator/06-advanced-topics/06-secrets.mdxdocs/03-github-orchestrator/06-advanced-topics/07-custom-providers.mdxdocs/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdxdocs/03-github-orchestrator/06-advanced-topics/09-gitlab/_category_.yamldocs/03-github-orchestrator/06-advanced-topics/10-github/01-github-checks.mdxdocs/03-github-orchestrator/06-advanced-topics/10-github/_category_.yamldocs/03-github-orchestrator/06-advanced-topics/_category_.yamldocs/03-github-orchestrator/_category_.yamldocs/09-troubleshooting/common-issues.mdxdocs/12-self-hosting/01-overview.mdxdocs/12-self-hosting/02-host-types.mdxversioned_docs/version-2/03-github-cloud-runner/06-advanced-topics/01-caching.mdxversioned_docs/version-2/03-github-cloud-runner/06-advanced-topics/03-garbage-collection.mdxversioned_docs/version-2/03-github-cloud-runner/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdxversioned_docs/version-2/03-github-orchestrator/01-introduction.mdxversioned_docs/version-2/03-github-orchestrator/02-game-ci-vs-orchestrator.mdxversioned_docs/version-2/03-github-orchestrator/02-getting-started.mdxversioned_docs/version-2/03-github-orchestrator/03-examples/01-command-line.mdxversioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdxversioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdxversioned_docs/version-2/03-github-orchestrator/03-examples/02-github-examples/_category_.yamlversioned_docs/version-2/03-github-orchestrator/03-examples/_category_.yamlversioned_docs/version-2/03-github-orchestrator/04-api-reference.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/01-caching.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/02-retained-workspace.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-configuration-override.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-custom-hooks/01-custom-job.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-custom-hooks/03-command-hooks.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-custom-hooks/04-container-hooks.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-custom-hooks/05-premade-container-jobs.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/04-custom-hooks/_category_.yamlversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/05-logging.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/06-secrets.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/09-gitlab/_category_.yamlversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/10-github/01-github-checks.mdxversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/10-github/_category_.yamlversioned_docs/version-2/03-github-orchestrator/06-advanced-topics/_category_.yamlversioned_docs/version-2/03-github-orchestrator/_category_.yamlversioned_docs/version-2/09-troubleshooting/common-issues.mdxversioned_docs/version-3/03-github-cloud-runner/02-getting-started.mdxversioned_docs/version-3/03-github-cloud-runner/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdxversioned_docs/version-3/03-github-orchestrator/01-introduction.mdxversioned_docs/version-3/03-github-orchestrator/02-game-ci-vs-orchestrator.mdxversioned_docs/version-3/03-github-orchestrator/02-getting-started.mdxversioned_docs/version-3/03-github-orchestrator/03-examples/01-command-line.mdxversioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdxversioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdxversioned_docs/version-3/03-github-orchestrator/03-examples/02-github-examples/_category_.yamlversioned_docs/version-3/03-github-orchestrator/03-examples/_category_.yamlversioned_docs/version-3/03-github-orchestrator/04-api-reference.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/01-caching.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/02-retained-workspace.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-configuration-override.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-custom-hooks/01-custom-job.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-custom-hooks/03-command-hooks.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-custom-hooks/04-container-hooks.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-custom-hooks/05-premade-container-jobs.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/04-custom-hooks/_category_.yamlversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/05-logging.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/06-secrets.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/09-gitlab/_category_.yamlversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/10-github/01-github-checks.mdxversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/10-github/_category_.yamlversioned_docs/version-3/03-github-orchestrator/06-advanced-topics/_category_.yamlversioned_docs/version-3/03-github-orchestrator/_category_.yamlversioned_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 <noreply@anthropic.com>
74e5507 to
3dac016
Compare
|
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 <noreply@anthropic.com>
There was a problem hiding this comment.
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 | 🟠 MajorUpdate 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@v4instead 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-actionsRequires workflow permissions:
id-token: writeandcontents: read. The IAM role must trusttoken.actions.githubusercontent.comwith appropriate conditions on the OIDC token'ssubclaim.Keep static
AWS_ACCESS_KEY_ID/AWS_SECRET_ACCESS_KEYas 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 addinguseCleanupCronto 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 disknote 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
📒 Files selected for processing (26)
docs/03-github-orchestrator/01-introduction.mdxdocs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdxdocs/03-github-orchestrator/03-examples/01-command-line.mdxdocs/03-github-orchestrator/03-examples/02-github-examples/02-aws.mdxdocs/03-github-orchestrator/03-examples/02-github-examples/03-kubernetes.mdxdocs/03-github-orchestrator/04-api-reference.mdxdocs/03-github-orchestrator/06-advanced-topics/01-caching.mdxdocs/03-github-orchestrator/06-advanced-topics/02-retained-workspace.mdxdocs/03-github-orchestrator/06-advanced-topics/03-garbage-collection.mdxdocs/03-github-orchestrator/06-advanced-topics/04-configuration-override.mdxdocs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/01-custom-job.mdxdocs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/03-command-hooks.mdxdocs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/04-container-hooks.mdxdocs/03-github-orchestrator/06-advanced-topics/04-custom-hooks/05-premade-container-jobs.mdxdocs/03-github-orchestrator/06-advanced-topics/05-logging.mdxdocs/03-github-orchestrator/06-advanced-topics/06-secrets.mdxdocs/03-github-orchestrator/06-advanced-topics/07-providers/01-overview.mdxdocs/03-github-orchestrator/06-advanced-topics/07-providers/02-custom-providers.mdxdocs/03-github-orchestrator/06-advanced-topics/07-providers/03-community-providers.mdxdocs/03-github-orchestrator/06-advanced-topics/07-providers/04-github-integration.mdxdocs/03-github-orchestrator/06-advanced-topics/07-providers/05-gitlab-integration.mdxdocs/03-github-orchestrator/06-advanced-topics/07-providers/_category_.yamldocs/03-github-orchestrator/06-advanced-topics/09-gitlab/01-introduction-gitlab.mdxdocs/03-github-orchestrator/06-advanced-topics/09-gitlab/_category_.yamldocs/03-github-orchestrator/06-advanced-topics/10-github/01-github-checks.mdxdocs/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
| 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` | |
There was a problem hiding this comment.
🧩 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)
- 256 (.25 vCPU) → 512 MiB, 1 GB, 2 GB (Linux) (docs.aws.amazon.com)
- 512 (.5 vCPU) → 1–4 GB (1 GB increments) (Linux) (docs.aws.amazon.com)
- 1024 (1 vCPU) → 2–8 GB (1 GB increments) (Linux, Windows) (docs.aws.amazon.com)
- 2048 (2 vCPU) → 4–16 GB (1 GB increments) (Linux, Windows) (docs.aws.amazon.com)
- 4096 (4 vCPU) → 8–30 GB (1 GB increments) (Linux, Windows) (docs.aws.amazon.com)
- 8192 (8 vCPU) → 16–60 GB (4 GB increments) (Linux only; requires Fargate platform 1.4.0+) (docs.aws.amazon.com)
- 16384 (16 vCPU) → 32–120 GB (8 GB increments) (Linux only; requires Fargate platform 1.4.0+) (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:
- 1: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html
- 2: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html
- 3: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html
- 4: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html
- 5: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html
- 6: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html
- 7: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html
- 8: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html
- 9: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-cpu-memory-error.html
🌐 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.
| 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}` | |
There was a problem hiding this comment.
🧩 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/configoutput=..., orAWS_DEFAULT_OUTPUT). [2], [3] -
get-secret-valueoutput shape: JSON object that includes fields likeARN,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.
docs/03-github-orchestrator/07-advanced-topics/05-hooks/04-container-hooks.mdx
Show resolved
Hide resolved
Content already merged into the providers section at 07-providers/05-gitlab-integration.mdx Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…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 <noreply@anthropic.com>
- 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 <noreply@anthropic.com>
Link to container-hooks page instead of the hooks directory. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
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-managerpreset should return only the secret valueLine 31 currently returns the full JSON payload. For parameter injection, extract
SecretStringas 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 | 🟠 MajorRemove stale
GitSHAfallback fromGITHUB_REFdocs.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_TARGETandRELEASE_BRANCHappear 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 aligningsidebar_labelwith the H1 title.Line 2 uses
Game-CI vs Orchestratorwhile Line 5 isStandard 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 useGIT_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
📒 Files selected for processing (27)
docs/03-github-orchestrator/01-introduction.mdxdocs/03-github-orchestrator/02-game-ci-vs-orchestrator.mdxdocs/03-github-orchestrator/02-getting-started.mdxdocs/03-github-orchestrator/03-examples/01-command-line.mdxdocs/03-github-orchestrator/04-api-reference.mdxdocs/03-github-orchestrator/05-providers/01-overview.mdxdocs/03-github-orchestrator/05-providers/02-aws.mdxdocs/03-github-orchestrator/05-providers/03-kubernetes.mdxdocs/03-github-orchestrator/05-providers/04-local-docker.mdxdocs/03-github-orchestrator/05-providers/05-local.mdxdocs/03-github-orchestrator/05-providers/06-custom-providers.mdxdocs/03-github-orchestrator/05-providers/07-community-providers.mdxdocs/03-github-orchestrator/05-providers/08-github-integration.mdxdocs/03-github-orchestrator/05-providers/09-gitlab-integration.mdxdocs/03-github-orchestrator/05-providers/_category_.yamldocs/03-github-orchestrator/06-secrets.mdxdocs/03-github-orchestrator/07-advanced-topics/01-caching.mdxdocs/03-github-orchestrator/07-advanced-topics/02-retained-workspace.mdxdocs/03-github-orchestrator/07-advanced-topics/03-garbage-collection.mdxdocs/03-github-orchestrator/07-advanced-topics/04-hooks/01-custom-job.mdxdocs/03-github-orchestrator/07-advanced-topics/04-hooks/03-command-hooks.mdxdocs/03-github-orchestrator/07-advanced-topics/04-hooks/04-container-hooks.mdxdocs/03-github-orchestrator/07-advanced-topics/04-hooks/05-premade-container-jobs.mdxdocs/03-github-orchestrator/07-advanced-topics/04-hooks/_category_.yamldocs/03-github-orchestrator/07-advanced-topics/05-configuration-override.mdxdocs/03-github-orchestrator/07-advanced-topics/06-logging.mdxdocs/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
| ~14 GB disk Configurable CPU, memory, disk | ||
| Fixed resources Scales to zero when idle |
There was a problem hiding this comment.
🧩 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-latestis: a GitHub-hosted Linux VM image label (currently alongsideubuntu-24.04andubuntu-22.04). Each job gets a fresh VM (except the special single‑CPUubuntu-slimrunner), 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, andGITHUB_EVENT_PATHto 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, diskAlternatively, 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.
| ~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`. | |
There was a problem hiding this comment.
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`.
| | 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). | |
There was a problem hiding this comment.
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.
| - 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 |
There was a problem hiding this comment.
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.
| - 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.
| - Resource allocation summaries (CPU, memory, disk) | ||
| - Directory structure via `tree` | ||
| - Environment variable listing | ||
| - Disk usage snapshots (`df -h`, `du -sh`) |
There was a problem hiding this comment.
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.
| - 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.
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 <noreply@anthropic.com>
Equalize box widths and arrow spacing for consistent rendering. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…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 <noreply@anthropic.com>
…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 <noreply@anthropic.com>
Shows each provider side-by-side with its key trait instead of a decision flowchart. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Set Advanced Topics position to 7.0 so it renders after Secrets (position 6 from filename). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Update title and all cross-references across container hooks, command hooks, and GitHub Actions examples. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- 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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
- 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 <noreply@anthropic.com>
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 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Cross-references — unity-builder code PRsThe 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 <noreply@anthropic.com>
…(resolve conflicts: keep restructured content from #532, drop old-path typo fixes)
|
Consolidated into #541 (docs: LTS 2.0.0 — Combined Documentation). Updated for standalone @game-ci/orchestrator architecture. |

Summary
Major documentation overhaul for the Orchestrator section covering structure, content, cross-linking, and presentation.
Structure Changes
05-providers/) with dedicated pages for each provider: AWS, Kubernetes, Local Docker, Local, Custom Providers, Community Providers, GitHub Integration, GitLab Integration06-secrets.mdx) — no longer buried in Advanced Topicscustom-hookstohooksexamples/github-examples/directory (AWS/K8s moved to Providers)advanced-topics/providers/directory (promoted to top-level)New Pages
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)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 implementation05-providers/07-community-providers.mdx) — empty list with a code-block template and direct "Edit this file on GitHub" link for PR submissions05-providers/01-overview.mdx) — table of all 4 built-in providers with links to setup guides05-providers/04-local-docker.mdx) — dedicated page with GitHub Actions and CLI examples05-providers/05-local.mdx) — dedicated page with usage examples07-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 integrationContent Additions
rclone-upload-build,rclone-pull-build,rclone-upload-cache,rclone-pull-cachesteam-deploy-client,steam-deploy-projectwith required secretsAPI Reference Overhaul
orchestratorRepoName,githubOwner,allowDirtyBuild,postBuildSteps,preBuildSteps,customHookFiles,customCommandHooks,useCleanupCronAWS_FORCE_PROVIDER,ORCHESTRATOR_AWS_STACK_WAIT_TIME,PURGE_REMOTE_BUILDER_CACHE,GIT_PRIVATE_TOKENCross-Linking
Presentation
{/* */}comment symbols that rendered as visible textFinal Directory Structure
Test plan
Generated with Claude Code