Terragrunt is a flexible orchestration tool that allows Infrastructure as Code written in OpenTofu/Terraform to scale.
This report summarizes scanner evidence for gruntwork-io/terragrunt, a Go project with 9,909 GitHub stars. SynthScan examined 459,023 lines of code across 1790 source files, recording 462 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 1.7 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 425 finding(s).
Are imports declared and package/API names verified? 3 finding(s).
Are wrappers, guards, and repeated structures necessary? 44 finding(s).
Which changes need focused human review? 462 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 462 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/integration_scaffold_test.go | 26 | // scaffoldModuleURL returns the canonical scaffold-module source on the | COMMENT |
| MEDIUM | test/integration_scaffold_test.go | 610 | // Verify the pre-existing file was not modified by scaffold's formatting step. | COMMENT |
| MEDIUM⚡ | test/integration_scaffold_ssh_test.go | 21 | // sshScaffoldModuleURL is the SSH-form source for scaffold-module | COMMENT |
| MEDIUM⚡ | test/integration_scaffold_ssh_test.go | 26 | return "git::" + m.SSHURL + "//test/fixtures/scaffold/scaffold-module" | CODE |
| MEDIUM⚡ | test/integration_scaffold_ssh_test.go | 29 | // sshScaffoldTemplateModule is the SSH-form source for the scaffold | COMMENT |
| MEDIUM⚡ | test/integration_scaffold_ssh_test.go | 34 | return "git::" + m.SSHURL + "//test/fixtures/scaffold/module-with-template" | CODE |
| MEDIUM⚡ | test/integration_scaffold_ssh_test.go | 38 | // scaffold external-template/template fixture, which it asks the server | COMMENT |
| MEDIUM⚡ | test/integration_scaffold_ssh_test.go | 43 | return "git::" + m.SSHURL + "//test/fixtures/scaffold/external-template/template" | CODE |
| MEDIUM | test/integration_scaffold_ssh_test.go | 95 | // internal/cli/commands/scaffold/source_url_test.go, so this | COMMENT |
| MEDIUM | test/integration_scaffold_ssh_test.go | 96 | // integration test now just verifies that scaffold runs end-to-end | COMMENT |
| MEDIUM | test/integration_scaffold_ssh_test.go | 147 | // scaffold's source_url_test; this test now just verifies the | COMMENT |
| MEDIUM | test/integration_scaffold_ssh_test.go | 148 | // var-file plumbing reaches scaffold and EnableRootInclude=false | COMMENT |
| MEDIUM | test/helpers/git_server.go | 215 | // subpaths (e.g. "test/fixtures/scaffold/scaffold-module") and | COMMENT |
| MEDIUM | test/helpers/git_server.go | 228 | // branches at the new HEAD (so a `scaffold` source resolved to the | COMMENT |
| MEDIUM | internal/runner/run/no_dot_terragrunt_cache_e2e_test.go | 247 | // newNoDotTerragruntCacheOpts returns scaffold options with the no-dot-terragrunt-cache experiment enabled. | COMMENT |
| MEDIUM | internal/cli/flags/shared/scaffold.go | 18 | // NewScaffoldingFlags creates the flags shared between catalog and scaffold commands. | COMMENT |
| MEDIUM | internal/cli/commands/commands.go | 103 | scaffold.NewCommand(l, opts, v), // scaffold | CODE |
| MEDIUM | internal/cli/commands/catalog/portal_test.go | 42 | // string a scaffold is generated from. | COMMENT |
| MEDIUM | internal/cli/commands/catalog/portal_test.go | 478 | // componentSources returns the source strings a scaffold would be generated | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/model_test.go | 230 | // the interactive scaffold key (`s`) on a copyable component transitions | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/model_test.go | 276 | // Lowercase s = interactive scaffold flow. | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/model_test.go | 389 | // placeholder scaffold, no form in between. | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/model_test.go | 581 | // scaffold finishing with a file list names those files in the exit callout. | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/model_test.go | 729 | // TestModelScaffoldFailureQuitsWithError verifies that a failed scaffold | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/scaffold_test.go | 24 | // tea.Program, so the tea.Exec scaffold command runs against a local module. | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/update.go | 339 | // Discard further input while the scaffold subprocess is running; | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/update.go | 399 | // ScaffoldFinishedMsg is delivered when a scaffold subprocess completes. | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/update.go | 424 | // scaffold or copy action. action is a verb phrase ("scaffolding component", | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/update.go | 566 | // scaffold run, naming the files that were actually generated. When | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/update.go | 606 | // scaffoldFileListCap is how many generated paths the post-scaffold callout | COMMENT |
| MEDIUM⚡ | internal/cli/commands/catalog/tui/update.go | 679 | // and (for module/template) the prepared scaffold.Plan, or (for unit/stack) | COMMENT |
| MEDIUM⚡ | internal/cli/commands/catalog/tui/update.go | 689 | // like a scaffold or copy failure: stash a styled message and quit. | COMMENT |
| MEDIUM⚡ | internal/cli/commands/catalog/tui/update.go | 695 | // scaffold from. | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/update.go | 709 | // parsing variables via scaffold.Prepare; for unit/stack it means reading | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/update.go | 729 | // discoverModuleFields prepares the scaffold for a module/template and | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/update.go | 822 | // abandonForm releases any prepared scaffold.Plan and clears the form | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/update.go | 848 | // scaffoldComponentPlaceholderCmd schedules a planless scaffold run, which | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/keys.go | 77 | // interactive scaffold form; the placeholder-only flow is reachable from | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/keys.go | 133 | // Run the interactive scaffold flow (s). | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/copy.go | 24 | // `scaffold` command drives too. | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/copy.go | 101 | // scaffold emits its output. | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/keys_test.go | 43 | // The previous design split scaffold across `s` (validated) and `S` | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/scaffold.go | 15 | // via the scaffold package. When plan is non-nil the command takes the | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/scaffold.go | 40 | // WithPlan attaches a prepared scaffold.Plan and the user-supplied HCL | COMMENT |
| MEDIUM⚡ | internal/cli/commands/catalog/tui/model.go | 67 | // work (e.g. scaffold.Prepare downloading sources) propagates the | COMMENT |
| MEDIUM⚡ | internal/cli/commands/catalog/tui/model.go | 76 | // and is handed down to the scaffold/copy/form-discovery leaves. | COMMENT |
| MEDIUM⚡ | internal/cli/commands/catalog/tui/model.go | 82 | // the pager and form so scaffold and "view source" know their target | COMMENT |
| MEDIUM⚡ | internal/cli/commands/catalog/tui/model.go | 86 | // scaffold) matched while in the list view. | COMMENT |
| MEDIUM⚡ | internal/cli/commands/catalog/tui/model.go | 110 | // from scaffold-variable discovery. | COMMENT |
| MEDIUM⚡ | internal/cli/commands/catalog/tui/model.go | 114 | // or the scaffold is consumed. | COMMENT |
| MEDIUM⚡ | internal/cli/commands/catalog/tui/model.go | 119 | // terminalErr is the failure that ended the session (a scaffold, copy, | COMMENT |
| MEDIUM⚡ | internal/cli/commands/catalog/tui/model.go | 128 | // entrypoint, so scaffold and form-discovery leaves run against the | COMMENT |
| MEDIUM | internal/cli/commands/catalog/tui/model.go | 147 | // State is the current view (list, pager, form, or scaffold). | COMMENT |
| MEDIUM | internal/cli/commands/hcl/format/format.go | 166 | // This is used by scaffold to format only the files that were generated by boilerplate. | COMMENT |
| MEDIUM | internal/cli/commands/scaffold/scaffold_test.go | 501 | // Apply catalog config settings to options (simulating scaffold.Run behavior) | COMMENT |
| MEDIUM | internal/cli/commands/scaffold/scaffold.go | 53 | // DefaultBoilerplateConfig is the boilerplate config used to scaffold a unit. | COMMENT |
| MEDIUM | internal/cli/commands/scaffold/scaffold.go | 149 | // Plan captures the state of a scaffold preparation: the source module has | COMMENT |
| MEDIUM | internal/cli/commands/scaffold/scaffold.go | 223 | // scaffold only in empty directories | COMMENT |
| MEDIUM | internal/cli/commands/scaffold/scaffold.go | 349 | // Generate renders the prepared scaffold into the output directory. When | COMMENT |
| MEDIUM | internal/cli/commands/scaffold/scaffold.go | 523 | // It is the non-interactive entry point used by the CLI scaffold command and | COMMENT |
| 29 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .golangci.yml | 281 | text: venv|vfs\.DetectFSKind|process arguments | COMMENT |
| LOW | test/integration_provider_cache_lockfile_tf_test.go | 21 | // `providers lock -platform=...` and no preexisting lock file) populates | COMMENT |
| LOW | test/integration_aws_oidc_test.go | 221 | // TestAWSReadTerragruntAuthProviderCmdWithOIDCChainedAssumeRole verifies chained role assumption | COMMENT |
| LOW | test/integration_regressions_tf_test.go | 541 | // ├── bastion/ <- Run from here, has dependency on module2 | COMMENT |
| LOW | test/integration_render_expansion_test.go | 41 | } | COMMENT |
| LOW | test/integration_render_expansion_test.go | 61 | skip_outputs = true | COMMENT |
| LOW | test/integration_regressions_test.go | 61 | // is properly detected even when used in an included config with expose = true. | COMMENT |
| LOW | test/integration_regressions_test.go | 101 | // - Exposed include blocks with generate blocks | COMMENT |
| LOW | test/fuzz_cli_test.go | 101 | "catalog": {}, | COMMENT |
| LOW | test/fuzz_cli_test.go | 121 | // may be mutated, so the parser also sees broken input. | COMMENT |
| LOW | test/fuzz_cli_test.go | 221 | } | COMMENT |
| LOW | test/integration_runner_pool_test.go | 361 | require.NoError(t, err) | COMMENT |
| LOW | test/helpers/package.go | 81 | COMMENT | |
| LOW | test/helpers/git_server.go | 61 | COMMENT | |
| LOW | test/helpers/git_server_ssh.go | 41 | COMMENT | |
| LOW | test/helpers/git_server_ssh.go | 201 | COMMENT | |
| LOW | test/helpers/venvtest/venvtest.go | 41 | memConfigDir = Root("/venvtest/config") | COMMENT |
| LOW | test/helpers/venvtest/venvtest.go | 121 | // NewOSWithEmptyEnv returns the OS-backed bundle with an empty environment, so | COMMENT |
| LOW | internal/cas/gitstore.go | 21 | COMMENT | |
| LOW | internal/cas/gitstore.go | 41 | COMMENT | |
| LOW | internal/cas/gitstore.go | 61 | // Each per-URL repository is gated by an exclusive flock because pack-file | COMMENT |
| LOW | internal/cas/gitstore.go | 181 | // [GitStoreRepo.Hash]. Any rawRef `git rev-parse` accepts works. | COMMENT |
| LOW | internal/cas/gitstore.go | 341 | } | COMMENT |
| LOW | internal/cas/store.go | 41 | COMMENT | |
| LOW | internal/cas/hcl_rewrite.go | 41 | UpdateSourceWithCAS bool | COMMENT |
| LOW | internal/cas/telemetry.go | 21 | COMMENT | |
| LOW | internal/cas/telemetry.go | 41 | COMMENT | |
| LOW | internal/cas/testserver_test.go | 41 | // startTestServer returns the URL of a package-shared Git server | COMMENT |
| LOW | internal/cas/testserver_test.go | 61 | // partition state by URL stay isolated from each other. | COMMENT |
| LOW | internal/cas/local.go | 21 | ) | COMMENT |
| LOW | internal/cas/local.go | 101 | // content-addressed hash over (relpath, mode, file-content-hash) triples. The | COMMENT |
| LOW | internal/cas/clone_e2e_test.go | 121 | COMMENT | |
| LOW | internal/cas/cas.go | 41 | COMMENT | |
| LOW | internal/cas/cas.go | 141 | // back while it is fresh, so a later process can resolve a source without | COMMENT |
| LOW | internal/cas/cas.go | 261 | // rejects SCP form, so any encoding scheme that round-trips through | COMMENT |
| LOW | internal/cas/cas.go | 301 | // from the ref git fetch selects rather than the ref that was asked for | COMMENT |
| LOW | internal/cas/cas.go | 921 | // otherwise. Lets downstream code skip a redundant rev-parse. | COMMENT |
| LOW | internal/cas/probecache.go | 21 | // ProbeModeOnline serves a persisted probe that is still within its | COMMENT |
| LOW | internal/cas/probecache.go | 41 | // the directory every entry is filed under, so the two cannot drift. | COMMENT |
| LOW | internal/cas/probecache.go | 61 | ProbedAt time.Time `json:"probed_at"` | COMMENT |
| LOW | internal/cas/probecache.go | 81 | // store, so a later process can skip the probe for a source whose TTL has | COMMENT |
| LOW | internal/cas/stacks.go | 61 | // Cleanup removes the temporary directory when called. | COMMENT |
| LOW | internal/cas/source.go | 41 | // upstream, such as an object version or an exact module version. A | COMMENT |
| LOW | internal/cas/source.go | 81 | // suggestedKey is the probe-derived cache key, or empty when the probe | COMMENT |
| LOW | internal/cas/source.go | 101 | // answers: concurrent callers coalesce onto one probe, and a recorded | COMMENT |
| LOW | internal/cas/source.go | 121 | // cas_fetch_source span (e.g. the git path adds "branch"). | COMMENT |
| LOW | internal/cas/source.go | 141 | // failure is returned as it stands, so a source that can no longer supply | COMMENT |
| LOW | internal/cas/source.go | 521 | // (or any persisted answer when offline). | COMMENT |
| LOW | internal/cas/source.go | 701 | COMMENT | |
| LOW | internal/cas/errors.go | 41 | // ErrAbsoluteSource is returned when an update_source_with_cas source is an absolute path | COMMENT |
| LOW | internal/cas/errors.go | 161 | // it means an entry was removed out from under it. | COMMENT |
| LOW | internal/getter/oci.go | 281 | type OCINewStoreFunc func(ctx context.Context, registryDomain, repositoryName string) (OCIRepositoryStore, error) | COMMENT |
| LOW | internal/getter/tfr.go | 21 | COMMENT | |
| LOW | internal/getter/objectstore.go | 21 | ) | COMMENT |
| LOW | internal/getter/filecopy.go | 21 | COMMENT | |
| LOW | internal/getter/casgetter_forced_test.go | 21 | // TestCASGetter_ForcedThreadedToInnerClient pins the wiring fix that | COMMENT |
| LOW | internal/getter/defaults.go | 201 | // detection. | COMMENT |
| LOW | internal/getter/defaults.go | 301 | COMMENT | |
| LOW | internal/getter/doc.go | 1 | // Package getter is Terragrunt's single integration point with the | COMMENT |
| LOW | internal/getter/doc.go | 21 | // internal/cas for the CAS getters). | COMMENT |
| 228 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | internal/cli/commands/scaffold/scaffold.go | 77 | # -------------------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | internal/cli/commands/scaffold/scaffold.go | 79 | # -------------------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | internal/cli/commands/scaffold/scaffold.go | 97 | # -------------------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM | internal/cli/commands/scaffold/scaffold.go | 100 | # -------------------------------------------------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 5 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 7 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 11 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 13 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 56 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 62 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 76 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 86 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 128 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 132 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 140 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 143 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 148 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 150 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 193 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 196 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 201 | # ============================================================== | COMMENT |
| MEDIUM⚡ | docs/public/robots.txt | 203 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 36 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 42 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 112 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 117 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 226 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 228 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 266 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 268 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 324 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 327 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 344 | # ============================================================== | COMMENT |
| MEDIUM | docs/public/robots.txt | 346 | # ============================================================== | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/integration_docs_tf_test.go | 220 | // Step 1: Generate the stack | COMMENT |
| LOW | test/integration_docs_tf_test.go | 236 | // Step 2: Apply the stack to create state files | COMMENT |
| LOW | test/integration_docs_tf_test.go | 279 | // Step 3: Clean and regenerate the stack | COMMENT |
| LOW | test/integration_docs_tf_test.go | 299 | // Step 4: Verify that existing state is recognized after regeneration | COMMENT |
| LOW | test/integration_docs_tf_test.go | 310 | // Step 5: Destroy resources to clean up | COMMENT |
| LOW⚡ | test/integration_tf_test.go | 4712 | // Step 1: Create plan with custom name (no .tfplan extension) | COMMENT |
| LOW⚡ | test/integration_tf_test.go | 4719 | // Step 2: Apply using the custom plan file name | COMMENT |
| LOW | internal/cli/flags/flag_opts.go | 51 | // NOTE: This function is currently unused but retained for future flag deprecation needs. | COMMENT |
| LOW | internal/queue/queue_test.go | 1048 | // Step 1: Only C should be ready (it has no dependents) | COMMENT |
| LOW⚡ | internal/queue/queue_test.go | 1062 | // Step 2: After C is destroyed, B should be ready (but NOT A yet, as A is a dependency of B) | COMMENT |
| LOW⚡ | internal/queue/queue_test.go | 1071 | // Step 3: After B is destroyed, A should be ready | COMMENT |
| LOW⚡ | internal/queue/queue_test.go | 1080 | // Step 4: All entries should be finished | COMMENT |
| LOW | internal/queue/queue_test.go | 1113 | // Step 1: Only C should be ready | COMMENT |
| LOW | internal/queue/queue_test.go | 1133 | // Step 2: B should now be ready even though C failed | COMMENT |
| LOW | internal/queue/queue_test.go | 1147 | // Step 3: After B succeeds, A should be ready | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/integration_docs_tf_test.go | 220 | // Step 1: Generate the stack | COMMENT |
| LOW | test/integration_docs_tf_test.go | 236 | // Step 2: Apply the stack to create state files | COMMENT |
| LOW | test/integration_docs_tf_test.go | 279 | // Step 3: Clean and regenerate the stack | COMMENT |
| LOW | test/integration_docs_tf_test.go | 299 | // Step 4: Verify that existing state is recognized after regeneration | COMMENT |
| LOW | test/integration_docs_tf_test.go | 310 | // Step 5: Destroy resources to clean up | COMMENT |
| LOW⚡ | test/integration_tf_test.go | 4712 | // Step 1: Create plan with custom name (no .tfplan extension) | COMMENT |
| LOW⚡ | test/integration_tf_test.go | 4719 | // Step 2: Apply using the custom plan file name | COMMENT |
| LOW | internal/queue/queue_test.go | 1048 | // Step 1: Only C should be ready (it has no dependents) | COMMENT |
| LOW⚡ | internal/queue/queue_test.go | 1062 | // Step 2: After C is destroyed, B should be ready (but NOT A yet, as A is a dependency of B) | COMMENT |
| LOW⚡ | internal/queue/queue_test.go | 1071 | // Step 3: After B is destroyed, A should be ready | COMMENT |
| LOW⚡ | internal/queue/queue_test.go | 1080 | // Step 4: All entries should be finished | COMMENT |
| LOW | internal/queue/queue_test.go | 1113 | // Step 1: Only C should be ready | COMMENT |
| LOW | internal/queue/queue_test.go | 1133 | // Step 2: B should now be ready even though C failed | COMMENT |
| LOW | internal/queue/queue_test.go | 1147 | // Step 3: After B succeeds, A should be ready | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | test/integration_test.go | 306 | // This makes the test more robust. | COMMENT |
| MEDIUM | …rnal/vendored/opentofu/upstream/lang/funcs/datetime.go | 195 | // be robust here. | COMMENT |
| MEDIUM | internal/glob/glob_test.go | 320 | // ElementsMatch ignores order, so the assertion is robust to walker | COMMENT |
| MEDIUM | pkg/config/dependency.go | 1831 | // To make parsing robust to either, isolate the first JSON object in the buffer. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/src/components/vendored/starlight/rehype-file-tree.ts | 187 | function getFileIconTypeFromExtension(fileName: string) { | CODE |
| LOW | …/src/components/vendored/starlight/rehype-file-tree.ts | 240 | function throwFileTreeValidationError(message: string): never { | CODE |
| LOW | docs/src/lib/changelog.ts | 294 | function transformWithinGuarantees(input: string): string { | CODE |
| LOW | docs/src/lib/changelog.ts | 306 | function transformAsidesToGitHubAlerts(input: string): string { | CODE |
| LOW | docs/src/lib/page-to-markdown.ts | 93 | .use(function improveExpressiveCodeHandling() { | CODE |
| LOW | docs/src/lib/page-to-markdown.ts | 327 | export async function componentToSimpleMarkdown( | CODE |
| LOW | docs/src/lib/commands/sidebar/index.ts | 29 | function organizeCommandsIntoGroups(flatCommandItems: (SidebarItem & { originalPath: string })[]): SidebarItem[] { | CODE |
| LOW | docs/src/lib/commands/sidebar/index.ts | 60 | function insertCommandsIntoSidebar( | CODE |
| LOW | docs/src/lib/commands/sidebar/index.ts | 102 | async function expandAutogenerateDirectory(directory: string): Promise<SidebarItem[]> { | CODE |
| LOW | docs/src/lib/commands/sidebar/index.ts | 160 | async function populateAutogeneratedSections(items: SidebarItem[]): Promise<SidebarItem[]> { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/release/check-release-exists.sh | 20 | # Check if release exists using gh CLI (only care about exit code) | COMMENT |
| LOW | .github/scripts/release/lib-release-config.sh | 94 | # Check if config file exists | COMMENT |
| LOW | .github/scripts/release/verify-assets-uploaded.sh | 52 | # Check if file exists in release | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | test/helpers/git_server_ssh.go | 231 | {key: "user.email", value: "test@test.com"}, | CODE |
| LOW | test/helpers/test_helpers.go | 117 | cmd = exec.CommandContext(ctx, "git", "config", "user.email", "test@test.com") | CODE |
| LOW | internal/cli/commands/hcl/validate/validate_test.go | 124 | return vexec.Result{Stdout: []byte(`{"envs":{"AWS_ACCESS_KEY_ID":"fake-key"}}`)} | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | internal/cli/commands/info/strict/command.go | 2 | // Example usage: | COMMENT |
| LOW | docs/tests/install_test.sh | 4 | # Usage: | COMMENT |