Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rename CliConfiguration to AtmosConfiguration #867

Merged
merged 2 commits into from
Dec 18, 2024

Conversation

mcalhoun
Copy link
Member

@mcalhoun mcalhoun commented Dec 18, 2024

what

Rename CliConfiguration to AtmosConfiguration

why

For more clarity about what the struct actually represents

Summary by CodeRabbit

  • Bug Fixes

    • Updated error handling to use AtmosConfiguration instead of CliConfiguration across multiple commands, ensuring consistent logging and error reporting.
  • New Features

    • Enhanced configuration handling by transitioning from CliConfiguration to AtmosConfiguration, improving clarity and maintainability in the codebase.
  • Refactor

    • Renamed variables and updated function signatures to reflect the new configuration structure, ensuring consistent usage of atmosConfig throughout the application.
  • Tests

    • Updated test files to reflect changes in variable naming from cliConfig to atmosConfig, maintaining test functionality while improving clarity.

@mcalhoun mcalhoun requested a review from a team as a code owner December 18, 2024 17:48
@mcalhoun mcalhoun added patch A minor, backward compatible change no-release Do not create a new release (wait for additional code changes) labels Dec 18, 2024
Copy link
Contributor

coderabbitai bot commented Dec 18, 2024

📝 Walkthrough

Walkthrough

This pull request introduces a comprehensive refactoring of the Atmos CLI configuration handling, systematically replacing schema.CliConfiguration with schema.AtmosConfiguration across multiple files and functions. The changes primarily focus on renaming configuration variables, updating function signatures, and ensuring consistent configuration context throughout the codebase.

Changes

File/Path Change Summary
cmd/ Renamed cliConfig to atmosConfig in multiple command files, updated error handling to use schema.AtmosConfiguration
internal/exec/ Extensive modifications to function signatures, replacing cliConfig with atmosConfig and updating configuration references
main.go Updated error logging to use schema.AtmosConfiguration
pkg/ Minor adjustments to configuration variable naming in test and implementation files

Sequence Diagram

sequenceDiagram
    participant CLI as Atmos CLI
    participant Config as Configuration Handler
    participant Cmd as Command Executor
    participant Logger as Error Logger

    CLI->>Config: Initialize AtmosConfiguration
    Config-->>CLI: Configuration Object
    CLI->>Cmd: Execute Command
    Cmd->>Logger: Log Errors with AtmosConfiguration
    Logger-->>Cmd: Error Logged
    Cmd-->>CLI: Command Result
Loading

Possibly related PRs

Suggested Labels

patch

Suggested Reviewers

  • hans-d
  • aknysh
  • Gowiem
  • osterman

By Spartan decree, we have systematically fortified our configuration handling! The code stands stronger, more consistent, and ready for battle. 🛡️

Tip

CodeRabbit's docstrings feature is now available as part of our Early Access Program! Simply use the command @coderabbitai generate docstrings to have CodeRabbit automatically generate docstrings for your pull request. We would love to hear your feedback on Discord.


Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR. (Beta)
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary or @auto-summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @auto-title anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🔭 Outside diff range comments (1)
internal/exec/shell_utils.go (1)

Shell prompt template requires security hardening

The code uses Go's template package without any security measures:

  • No input validation for the shell prompt template
  • No template function restrictions
  • Uses template.Must which panics on malformed templates
  • Template output is directly injected into PS1 environment variable

Recommendations:

  • Add input validation for the shell prompt template
  • Use template.New().Option("missingkey=error") to fail on undefined variables
  • Consider using a custom template escape function for shell-safe output
  • Handle template parsing errors gracefully instead of using template.Must
🔗 Analysis chain

Line range hint 202-220: Verify shell prompt template injection safety.

The custom shell prompt template should be validated to prevent potential command injection through malicious template data.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for potential command injection patterns in shell prompt templates
rg -g '*.{yaml,yml}' '(?i)components\.terraform\.shell\.prompt.*(\$|`|\()'

Length of output: 76


Script:

#!/bin/bash
# Let's check the actual configuration files for shell prompt patterns
fd -e yaml -e yml | xargs cat | rg -i 'shell:\s*\n.*prompt:'

# Let's also check the code for how the shell prompt is processed
ast-grep --pattern 'Shell struct {
  $$$
  Prompt $_
  $$$
}'

# Check for any validation or sanitization of the prompt
rg -A 5 'Shell.*Prompt' 

Length of output: 1477


Script:

#!/bin/bash
# Let's check how the template is processed and if there's any validation
ast-grep --pattern 'template.Must(template.New($_).Parse($_))'

# Let's also check for any template-related security measures
rg -A 3 'template\.' internal/exec/shell_utils.go

# Check if there are any template escape functions defined
ast-grep --pattern 'func $_($_) template.FuncMap {'

Length of output: 374

🧹 Nitpick comments (17)
internal/exec/aws_eks_update_kubeconfig.go (1)

132-132: Method name mismatch.
Method name InitCliConfig still hints at CliConfiguration. Consider renaming to reflect AtmosConfiguration for clarity.

internal/exec/utils.go (1)

409-410: Potentially large YAML printing.
Converts atmosConfig to YAML, potentially large logs. If memory or performance become issues, consider partial logging.

pkg/aws/aws_eks_update_kubeconfig_test.go (1)

7-8: Clean variable renaming and import organization!

The renaming from cliConfig to atmosConfig is consistent with the PR objective. The import reordering improves readability.

Consider adding a comment explaining the cluster name pattern for better test documentation.

 func TestClusterNamePattern(t *testing.T) {
+	// Test that cluster name is correctly formatted according to the pattern:
+	// {namespace}-{tenant}-{environment}-{stage}-{attributes}-eks-cluster
 	atmosConfig, err := cfg.InitCliConfig(schema.ConfigAndStacksInfo{}, true)

Also applies to: 16-16, 33-33

internal/exec/describe_workflows.go (1)

17-17: LGTM! Clean variable renaming.

The variable renaming from cliConfig to atmosConfig is consistent with the new configuration type and improves code clarity by better reflecting its purpose.

Consider adding a brief comment above the atmosConfig declaration to document its purpose and relationship to the workflow description functionality.

Also applies to: 50-50

internal/exec/describe_component.go (1)

70-70: LGTM! Configuration updates are well-structured

The changes correctly implement the new configuration type and maintain consistent naming. However, there's a minor opportunity for improvement.

Consider updating the function name InitCliConfig in the cfg package to InitAtmosConfig for complete naming consistency. This would align with the new AtmosConfiguration type name.

-atmosConfig, err := cfg.InitCliConfig(configAndStacksInfo, true)
+atmosConfig, err := cfg.InitAtmosConfig(configAndStacksInfo, true)

Also applies to: 76-76, 79-79

cmd/root.go (1)

90-96: Consider adding error context.

While the error handling is correct, consider adding more context to help users understand what went wrong during configuration initialization.

 atmosConfig, initErr = cfg.InitCliConfig(schema.ConfigAndStacksInfo{}, false)
 if initErr != nil && !errors.Is(initErr, cfg.NotFound) {
     if isVersionCommand() {
-        u.LogTrace(schema.AtmosConfiguration{}, fmt.Sprintf("warning: CLI configuration 'atmos.yaml' file not found. Error: %s", initErr))
+        u.LogTrace(schema.AtmosConfiguration{}, fmt.Sprintf("warning: Atmos configuration 'atmos.yaml' file not found in any of the search paths. Error: %s", initErr))
     } else {
         u.LogErrorAndExit(schema.AtmosConfiguration{}, initErr)
     }
 }
internal/exec/describe_affected.go (1)

149-157: Consider extracting verbose logging setup.

The verbose logging setup logic could be extracted into a helper function for better reusability.

+func setupVerboseLogging(atmosConfig *schema.AtmosConfiguration, logger *l.Logger) error {
+    atmosConfig.Logs.Level = u.LogLevelTrace
+    return logger.SetLogLevel(l.LogLevelTrace)
+}

 if verbose {
-    atmosConfig.Logs.Level = u.LogLevelTrace
-    err := logger.SetLogLevel(l.LogLevelTrace)
+    err := setupVerboseLogging(&atmosConfig, logger)
     if err != nil {
         return DescribeAffectedCmdArgs{}, err
     }
 }
internal/exec/validate_component.go (2)

113-113: Consider consolidating debug logging.

The debug logging statements could be consolidated into a helper function to reduce code duplication.

+func logValidationDebug(atmosConfig schema.AtmosConfiguration, componentName, schemaType, schemaPath, description string) {
+    u.LogDebug(atmosConfig, fmt.Sprintf("\nValidating the component '%s' using '%s' file '%s'", componentName, schemaType, schemaPath))
+    if description != "" {
+        u.LogDebug(atmosConfig, description)
+    }
+}

-u.LogDebug(atmosConfig, fmt.Sprintf("\nValidating the component '%s' using '%s' file '%s'", componentName, schemaType, schemaPath))
+logValidationDebug(atmosConfig, componentName, schemaType, schemaPath, "")

Also applies to: 115-115, 160-160, 163-163, 166-166


200-200: Consider extracting schema path resolution logic.

The schema path resolution logic could be extracted into a helper function for better maintainability.

+func resolveSchemaPath(atmosConfig schema.AtmosConfiguration, schemaType, schemaPath string) string {
+    switch schemaType {
+    case "jsonschema":
+        return filepath.Join(atmosConfig.BasePath, atmosConfig.Schemas.JsonSchema.BasePath, schemaPath)
+    case "opa":
+        return filepath.Join(atmosConfig.BasePath, atmosConfig.Schemas.Opa.BasePath, schemaPath)
+    default:
+        return schemaPath
+    }
+}

-switch schemaType {
-case "jsonschema":
-    {
-        filePath = filepath.Join(atmosConfig.BasePath, atmosConfig.Schemas.JsonSchema.BasePath, schemaPath)
-    }
-case "opa":
-    {
-        filePath = filepath.Join(atmosConfig.BasePath, atmosConfig.Schemas.Opa.BasePath, schemaPath)
-    }
-}
+filePath = resolveSchemaPath(atmosConfig, schemaType, schemaPath)

Also applies to: 204-204, 231-231

internal/exec/vendor_model_component.go (2)

Line range hint 115-122: Consider additional security measures for temporary directory.

While the code sets directory permissions to 0700, consider adding additional security measures:

  1. Use a more specific prefix for better tracking
  2. Validate the temp directory path
-tempDir, err := os.MkdirTemp("", fmt.Sprintf("atmos-vendor-%d-*", time.Now().Unix()))
+tempDir, err := os.MkdirTemp("", fmt.Sprintf("atmos-vendor-%s-%d-*", p.name, time.Now().Unix()))

144-147: Enhance error message for OCI image processing.

The error message could be more descriptive to help with troubleshooting.

-		return fmt.Errorf("Failed to process OCI image %s error %s", p.name, err)
+		return fmt.Errorf("Failed to process OCI image '%s': %v. Please ensure the image exists and is accessible", p.name, err)
internal/exec/template_utils.go (1)

165-183: Consider consolidating delimiter validation.

The delimiter validation logic could be extracted into a separate function for better maintainability and reuse.

+func validateDelimiters(delimiters []string) error {
+    if len(delimiters) != 2 || delimiters[0] == "" || delimiters[1] == "" {
+        return fmt.Errorf("invalid delimiters config: %v\ndelimiters must be an array with two non-empty string items", delimiters)
+    }
+    return nil
+}
internal/exec/stack_utils.go (1)

167-169: Consider using path.Join for cross-platform compatibility.

While filepath.Join works, consider using path.Join for paths that are used in configuration and might be shared across different platforms.

-			componentPath = filepath.Join(atmosConfig.BasePath, atmosConfig.Components.Terraform.BasePath, stackComponentSection)
+			componentPath = path.Join(atmosConfig.BasePath, atmosConfig.Components.Terraform.BasePath, stackComponentSection)
internal/exec/terraform_utils.go (1)

Line range hint 89-116: Consider extracting backend file generation into a separate function.

The backend file generation logic in execTerraformOutput is quite lengthy and could be extracted into a dedicated function for better maintainability.

+func generateBackendFile(atmosConfig schema.AtmosConfiguration, componentPath string, backendTypeSection string, backendSection map[string]any, terraformWorkspace string) error {
+    backendFileName := filepath.Join(componentPath, "backend.tf.json")
+    u.LogTrace(atmosConfig, "\nWriting the backend config to file:")
+    u.LogTrace(atmosConfig, backendFileName)
+
+    componentBackendConfig, err := generateComponentBackendConfig(backendTypeSection, backendSection, terraformWorkspace)
+    if err != nil {
+        return err
+    }
+
+    err = u.WriteToFileAsJSON(backendFileName, componentBackendConfig, 0644)
+    if err != nil {
+        return err
+    }
+
+    u.LogTrace(atmosConfig, "\nWrote the backend config to file:")
+    u.LogTrace(atmosConfig, backendFileName)
+    return nil
+}
internal/exec/shell_utils.go (1)

Line range hint 175-184: Consider using constants for environment variable names.

The ATMOS_SHLVL environment variable is used in multiple places. Consider defining it as a constant to prevent typos and improve maintainability.

+const (
+    AtmosShellLevelEnv = "ATMOS_SHLVL"
+)
cmd/cmd_utils.go (1)

Line range hint 169-191: Consider consolidating error handling.

The error handling pattern is repeated multiple times with similar structure. Consider extracting this into a helper function to reduce code duplication.

+func logErrorAndExitWithMessage(atmosConfig schema.AtmosConfiguration, message string) {
+    u.LogError(atmosConfig, errors.New("invalid command"))
+    u.LogInfo(atmosConfig, message)
+    os.Exit(1)
+}
internal/exec/vendor_utils.go (1)

Line range hint 141-172: Consider enhancing error handling for base path validation.

While the configuration parameter renaming is correct, consider adding validation for the base path configuration to ensure it's properly set before use.

 func ReadAndProcessVendorConfigFile(
   atmosConfig schema.AtmosConfiguration,
   vendorConfigFile string,
   checkGlobalConfig bool,
 ) (schema.AtmosVendorConfig, bool, string, error) {
+  if atmosConfig.BasePath == "" {
+    return schema.AtmosVendorConfig{}, false, "", fmt.Errorf("base path configuration is required")
+  }
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 05606ad and 7528650.

📒 Files selected for processing (82)
  • cmd/atlantis_generate_repo_config.go (1 hunks)
  • cmd/aws_eks_update_kubeconfig.go (2 hunks)
  • cmd/cmd_utils.go (14 hunks)
  • cmd/completion.go (2 hunks)
  • cmd/describe_affected.go (1 hunks)
  • cmd/describe_component.go (2 hunks)
  • cmd/describe_config.go (1 hunks)
  • cmd/describe_dependents.go (2 hunks)
  • cmd/describe_stacks.go (1 hunks)
  • cmd/describe_workflows.go (1 hunks)
  • cmd/docs.go (4 hunks)
  • cmd/helmfile.go (1 hunks)
  • cmd/helmfile_generate_varfile.go (2 hunks)
  • cmd/list_components.go (1 hunks)
  • cmd/list_stacks.go (1 hunks)
  • cmd/pro_lock.go (1 hunks)
  • cmd/pro_unlock.go (1 hunks)
  • cmd/root.go (5 hunks)
  • cmd/terraform.go (1 hunks)
  • cmd/terraform_generate_backend.go (2 hunks)
  • cmd/terraform_generate_backends.go (1 hunks)
  • cmd/terraform_generate_varfile.go (2 hunks)
  • cmd/terraform_generate_varfiles.go (2 hunks)
  • cmd/validate_component.go (2 hunks)
  • cmd/validate_stacks.go (1 hunks)
  • cmd/vendor_diff.go (1 hunks)
  • cmd/vendor_pull.go (1 hunks)
  • cmd/version.go (3 hunks)
  • cmd/workflow.go (1 hunks)
  • internal/exec/atlantis_generate_repo_config.go (16 hunks)
  • internal/exec/atlantis_utils.go (2 hunks)
  • internal/exec/atmos.go (3 hunks)
  • internal/exec/aws_eks_update_kubeconfig.go (5 hunks)
  • internal/exec/describe_affected.go (3 hunks)
  • internal/exec/describe_affected_utils.go (49 hunks)
  • internal/exec/describe_component.go (1 hunks)
  • internal/exec/describe_config.go (1 hunks)
  • internal/exec/describe_dependents.go (6 hunks)
  • internal/exec/describe_stacks.go (11 hunks)
  • internal/exec/describe_workflows.go (2 hunks)
  • internal/exec/file_utils.go (1 hunks)
  • internal/exec/helmfile.go (10 hunks)
  • internal/exec/helmfile_generate_varfile.go (2 hunks)
  • internal/exec/help.go (1 hunks)
  • internal/exec/oci_utils.go (4 hunks)
  • internal/exec/path_utils.go (3 hunks)
  • internal/exec/pro.go (1 hunks)
  • internal/exec/shell_utils.go (12 hunks)
  • internal/exec/spacelift_utils.go (2 hunks)
  • internal/exec/stack_processor_utils.go (48 hunks)
  • internal/exec/stack_utils.go (3 hunks)
  • internal/exec/tar_utils.go (3 hunks)
  • internal/exec/template_funcs.go (1 hunks)
  • internal/exec/template_funcs_component.go (3 hunks)
  • internal/exec/template_funcs_gomplate_datasource.go (2 hunks)
  • internal/exec/template_utils.go (7 hunks)
  • internal/exec/terraform.go (20 hunks)
  • internal/exec/terraform_clean.go (11 hunks)
  • internal/exec/terraform_generate_backend.go (3 hunks)
  • internal/exec/terraform_generate_backends.go (8 hunks)
  • internal/exec/terraform_generate_varfile.go (2 hunks)
  • internal/exec/terraform_generate_varfiles.go (8 hunks)
  • internal/exec/terraform_utils.go (7 hunks)
  • internal/exec/utils.go (16 hunks)
  • internal/exec/validate_component.go (9 hunks)
  • internal/exec/validate_stacks.go (9 hunks)
  • internal/exec/vendor_component_utils.go (7 hunks)
  • internal/exec/vendor_model.go (13 hunks)
  • internal/exec/vendor_model_component.go (9 hunks)
  • internal/exec/vendor_utils.go (19 hunks)
  • internal/exec/workflow.go (3 hunks)
  • internal/exec/workflow_utils.go (9 hunks)
  • internal/exec/yaml_func_exec.go (1 hunks)
  • internal/exec/yaml_func_store.go (1 hunks)
  • internal/exec/yaml_func_template.go (1 hunks)
  • internal/exec/yaml_func_terraform_output.go (5 hunks)
  • internal/exec/yaml_func_utils.go (3 hunks)
  • main.go (1 hunks)
  • pkg/atlantis/atlantis_generate_repo_config_test.go (4 hunks)
  • pkg/aws/aws_eks_update_kubeconfig.go (1 hunks)
  • pkg/aws/aws_eks_update_kubeconfig_test.go (2 hunks)
  • pkg/component/component_processor.go (2 hunks)
⛔ Files not processed due to max files limit (27)
  • pkg/config/cache.go
  • pkg/config/config.go
  • pkg/config/utils.go
  • pkg/describe/describe_affected_test.go
  • pkg/describe/describe_dependents_test.go
  • pkg/describe/describe_stacks.go
  • pkg/describe/describe_stacks_test.go
  • pkg/generate/terraform_generate_varfiles_test.go
  • pkg/list/list_components_test.go
  • pkg/list/list_stacks_test.go
  • pkg/logger/logger.go
  • pkg/logger/logger_test.go
  • pkg/merge/merge.go
  • pkg/merge/merge_test.go
  • pkg/schema/schema.go
  • pkg/spacelift/spacelift_stack_processor.go
  • pkg/stack/stack_processor.go
  • pkg/stack/stack_processor_test.go
  • pkg/utils/hcl_utils.go
  • pkg/utils/json_utils.go
  • pkg/utils/log_utils.go
  • pkg/utils/yaml_utils.go
  • pkg/validate/validate_component_test.go
  • pkg/validate/validate_stacks_test.go
  • pkg/vender/component_vendor_test.go
  • pkg/vender/vendor_config_test.go
  • pkg/workflow/workflow_test.go
🧰 Additional context used
📓 Learnings (7)
cmd/helmfile_generate_varfile.go (1)
Learnt from: Listener430
PR: cloudposse/atmos#825
File: internal/exec/helmfile_generate_varfile.go:28-31
Timestamp: 2024-12-07T16:16:13.038Z
Learning: In `internal/exec/helmfile_generate_varfile.go`, the `--help` command (`./atmos helmfile generate varfile --help`) works correctly without requiring stack configurations, and the only change needed was to make `ProcessCommandLineArgs` exportable by capitalizing its name.
cmd/version.go (1)
Learnt from: Listener430
PR: cloudposse/atmos#844
File: cmd/version.go:34-44
Timestamp: 2024-12-13T15:28:13.630Z
Learning: In `cmd/version.go`, when handling the `--check` flag in the `versionCmd`, avoid using `CheckForAtmosUpdateAndPrintMessage(cliConfig)` as it updates the cache timestamp, which may not be desired in this context.
internal/exec/help.go (1)
Learnt from: Listener430
PR: cloudposse/atmos#825
File: internal/exec/helmfile_generate_varfile.go:28-31
Timestamp: 2024-12-07T16:16:13.038Z
Learning: In `internal/exec/helmfile_generate_varfile.go`, the `--help` command (`./atmos helmfile generate varfile --help`) works correctly without requiring stack configurations, and the only change needed was to make `ProcessCommandLineArgs` exportable by capitalizing its name.
internal/exec/helmfile_generate_varfile.go (1)
Learnt from: Listener430
PR: cloudposse/atmos#825
File: internal/exec/helmfile_generate_varfile.go:28-31
Timestamp: 2024-12-07T16:16:13.038Z
Learning: In `internal/exec/helmfile_generate_varfile.go`, the `--help` command (`./atmos helmfile generate varfile --help`) works correctly without requiring stack configurations, and the only change needed was to make `ProcessCommandLineArgs` exportable by capitalizing its name.
internal/exec/describe_stacks.go (1)
Learnt from: Cerebrovinny
PR: cloudposse/atmos#764
File: internal/exec/describe_stacks.go:289-295
Timestamp: 2024-11-13T21:37:07.852Z
Learning: In the `internal/exec/describe_stacks.go` file of the `atmos` project written in Go, avoid extracting the stack name handling logic into a helper function within the `ExecuteDescribeStacks` method, even if the logic appears duplicated.
internal/exec/terraform_utils.go (2)
Learnt from: aknysh
PR: cloudposse/atmos#775
File: internal/exec/template_funcs_component.go:157-159
Timestamp: 2024-11-12T05:52:05.088Z
Learning: In the Go code for `componentFunc` in `internal/exec/template_funcs_component.go`, the function `cleanTerraformWorkspace` does not return errors, and it's acceptable if the file does not exist. Therefore, error handling for `cleanTerraformWorkspace` is not needed.
Learnt from: aknysh
PR: cloudposse/atmos#810
File: internal/exec/terraform_utils.go:40-213
Timestamp: 2024-12-03T05:18:49.169Z
Learning: In the context of the Atmos project, it's acceptable for functions like `execTerraformOutput` to remain as single functions if they perform a single purpose, such as retrieving Terraform outputs for a component in a stack, even if the function is lengthy.
cmd/cmd_utils.go (1)
Learnt from: Listener430
PR: cloudposse/atmos#844
File: cmd/version.go:34-44
Timestamp: 2024-12-13T15:28:13.630Z
Learning: In `cmd/version.go`, when handling the `--check` flag in the `versionCmd`, avoid using `CheckForAtmosUpdateAndPrintMessage(cliConfig)` as it updates the cache timestamp, which may not be desired in this context.
🔇 Additional comments (189)
internal/exec/aws_eks_update_kubeconfig.go (10)

126-126: Rename variable is consistent.
Renaming the variable from cliConfig to atmosConfig aligns with the PR objective.


137-137: Solid boundary check.
Ensures the stack name pattern is properly defined. No issues found.


146-146: Clear function call.
Passes atmosConfig to retrieve stack name pattern. Looks good.


160-161: Consistent usage of atmosConfig.
Switched references from cliConfig to atmosConfig in ProcessStacks and directory assignment. No concerns.


164-165: Graceful fallback logic.
Helmfile path fallback is updated to use atmosConfig. This is correct.


178-178: String format usage.
Constructs kubeconfig path using new config path reference. Implementation is correct.


182-182: Token replacement.
Replaces tokens with cluster name from Atmos config. Straightforward and aligned with the rename.


187-187: Profile token replacement.
Updates AWS profile logic to rely on atmosConfig fields. Implementation is valid.


227-227: Shell command execution reference updated.
Ensures the command runs with the correct configuration. This is consistent with the PR objective.


234-234: Logging is consistent.
Uses LogDebug with the updated atmosConfig. No issues here.

internal/exec/utils.go (26)

229-229: Helper usage.
Injecting an empty AtmosConfiguration is consistent with the rename but consider verifying future expansions.


247-247: Renamed function parameter.
Switched to atmosConfig in FindStacksMap. Good alignment with Atmos naming.


254-257: Straightforward arguments.
Passes atmosConfig fields to ProcessYAMLConfigFiles. No immediate issues noted.


273-273: Function signature alignment.
ProcessStacks now uses schema.AtmosConfiguration. Matches the PR objective.


293-293: Query usage.
Calls FindStacksMap with updated atmosConfig usage. Good consistency.


299-299: Conditional logging.
Refers to atmosConfig.Logs.Level for trace. Implementation remains the same besides rename.


301-301: Sub-check for directory-based stacks.
No concerns, logic unchanged aside from variable rename.


306-307: Trace logs.
Calls u.LogTrace and PrintAsYAMLToFileDescriptor with new config. This is aligned.


314-314: Directory check fallback.
Ensures correct handling for directory-based stack type. This looks good.


335-335: Injects atmosConfig into context.
Retrieves stack name pattern properly. No issues to address.


359-360: Template logic.
Processes name template from the new config struct. Implementation consistent.


365-365: Pattern fallback.
Uses updated config for stack name pattern. Valid approach.


371-371: Token usage.
Uses GetStackNamePattern with atmosConfig. No concerns.


392-392: Debug log with new config.
Ensures the correct config context is used.


429-429: Error exit references new config.
Usage of u.LogErrorAndExit is consistent.


447-450: Atmos CLI config injection.
Exposes base_path, components, stacks, workflows from atmosConfig. Straightforward.


475-475: Workspace building.
Uses the updated atmosConfig in BuildTerraformWorkspace. No functional concerns.


498-498: Template processing.
Injects atmosConfig for deeper template usage. Best practice remains intact.


507-507: Failure logging.
u.LogErrorAndExit with the updated config ensures consistent logging.


512-512: Template toggling.
Checks if the new config has templates enabled. Implementation is correct.


519-519: Error exit with new config reference.
No additional concerns.


522-522: Custom YAML tag processing.
Uses atmosConfig to handle custom tags. Aligned with rename.


576-576: Spacelift stack reference.
Leverages new config for stack name. Looks good.


585-585: Atlantis project name generation.
No issues with the switch to atmosConfig.


641-641: Merging config.
Calls m.Merge with atmosConfig. Behavior remains consistent.


Line range hint 653-653: Environment merging.
Combines environment sections with the new config. Implementation is valid.

main.go (1)

12-12: Runtime error logging.
Switched to schema.AtmosConfiguration for LogErrorAndExit. This fully aligns with the rename.

pkg/aws/aws_eks_update_kubeconfig.go (1)

15-15: LGTM! Clean type update.

The change from schema.CliConfiguration{} to schema.AtmosConfiguration{} is consistent with the PR objective and maintains the same error logging behavior.

internal/exec/describe_config.go (1)

23-23: Strong variable renaming consistency!

The renaming from cliConfig to atmosConfig is applied consistently across both the variable declaration and its usage. The changes maintain the existing functionality while improving naming clarity.

Also applies to: 28-28

internal/exec/yaml_func_template.go (1)

13-13: Excellent comprehensive type updates!

The changes thoroughly update all references from CliConfiguration to AtmosConfiguration, including:

  • Function parameter type
  • Trace logging usage
  • Error logging usage

The consistency in these changes helps maintain clean and clear code.

Also applies to: 17-17, 22-22

internal/exec/yaml_func_exec.go (1)

13-27: Clean and consistent renaming implementation!

The changes from cliConfig to atmosConfig are well-executed throughout the function, maintaining consistency with the PR objective. All parameter usages, including logging and error handling, have been properly updated.

cmd/describe_config.go (1)

20-20: Solid error handling update!

The configuration type change in the error handling is consistent with the PR objective, maintaining the same error handling pattern.

cmd/pro_unlock.go (1)

23-23: Clean error handling update!

The configuration type change aligns perfectly with the PR objective. The presence of checkAtmosConfig() before the operation provides additional validation.

Let's verify the implementation of checkAtmosConfig():

✅ Verification successful

Validation confirms proper configuration check!

The checkAtmosConfig() implementation in cmd_utils.go is solid and performs essential validation:

  • Initializes CLI configuration
  • Verifies stacks directory existence
  • Provides helpful error messages and setup instructions if validation fails
  • Supports optional stack validation control through functional options

The error handling update in pro_unlock.go is correctly positioned after this validation check, maintaining a robust execution flow.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for the checkAtmosConfig implementation
ast-grep --pattern 'func checkAtmosConfig() {
  $$$
}'

Length of output: 56


Script:

#!/bin/bash
# Let's try a broader search for the function name
rg -A 5 "func.*checkAtmosConfig"

# Also search for any calls to this function
rg "checkAtmosConfig\(\)"

# Let's also check the file content to understand the context
cat cmd/pro_unlock.go

Length of output: 2274


Script:

#!/bin/bash
# Let's check the implementation details of checkAtmosConfig in cmd_utils.go
cat cmd/cmd_utils.go

Length of output: 16050

internal/exec/template_funcs_gomplate_datasource.go (1)

16-17: Clean and consistent renaming!

The parameter renaming from cliConfig to atmosConfig is applied consistently throughout the function, maintaining the same functionality while improving clarity.

Also applies to: 33-33

cmd/completion.go (1)

6-7: Solid error handling update!

The change from schema.CliConfiguration{} to schema.AtmosConfiguration{} in the error handling is consistent with the PR objective. The schema import is correctly added.

Also applies to: 35-35

cmd/validate_stacks.go (1)

25-25: LGTM! Clean configuration type update.

The change from schema.CliConfiguration{} to schema.AtmosConfiguration{} is consistent with the PR objective. The error handling pattern remains solid.

internal/exec/yaml_func_store.go (1)

12-12: Strong work on the comprehensive configuration rename!

The changes consistently update all instances from cliConfig to atmosConfig, including:

  • Function parameter
  • Error handling calls
  • Store access

The core logic remains rock-solid while achieving the rename objective.

Also applies to: 18-18, 23-23, 29-29, 32-32, 37-37

cmd/pro_lock.go (1)

23-23: LGTM! Solid configuration type update.

The change from schema.CliConfiguration{} to schema.AtmosConfiguration{} maintains consistency with the PR objective while preserving the error handling pattern.

internal/exec/file_utils.go (2)

12-16: LGTM! Clean parameter type update.

The renaming from CliConfiguration to AtmosConfiguration is properly implemented while maintaining the existing error handling logic.


21-23: LGTM! Consistent configuration type usage.

The error logging now uses AtmosConfiguration{} consistently with the rest of the codebase.

cmd/terraform_generate_backend.go (2)

23-23: LGTM! Error handling updated correctly.

Configuration type properly updated in error handling while maintaining the same error reporting behavior.


34-34: LGTM! Consistent error handling update.

The initialization error handling follows the same pattern, correctly using AtmosConfiguration.

internal/exec/template_funcs.go (4)

19-21: LGTM! Function signature and initialization properly updated.

The FuncMap function signature and the initialization of AtmosFuncs correctly reflect the new configuration type.


28-31: LGTM! Struct field properly renamed.

The AtmosFuncs struct field has been correctly updated to use the new configuration type.


34-34: LGTM! Method references consistently updated.

Both Component and GomplateDatasource methods now correctly reference the renamed configuration field.

Also applies to: 38-38


Line range hint 1-1: Verify complete removal of old configuration type.

Let's ensure no instances of CliConfiguration remain in the codebase.

✅ Verification successful

All instances of CliConfiguration have been successfully replaced

The search results confirm that there are no remaining instances of the old type name CliConfiguration in the codebase. All references have been properly updated to use AtmosConfiguration instead.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for any remaining instances of CliConfiguration
rg "CliConfiguration" --type go

Length of output: 31


Script:

#!/bin/bash
# Let's do a more thorough search with case-insensitive flag and partial matches
rg -i "cli.*config" --type go

# Also search for potential camelCase variations
rg -i "cliconfig" --type go

# Let's also check for any CLI-related type definitions
ast-grep --pattern 'type $_ struct {
  $$$
}'

Length of output: 66015

cmd/vendor_diff.go (1)

23-23: LGTM! Clean configuration type update.

The change from CliConfiguration to AtmosConfiguration is consistent with the PR objective and maintains the existing error handling pattern.

cmd/describe_workflows.go (1)

27-27: LGTM! Clean configuration type update.

The change from CliConfiguration to AtmosConfiguration is consistent with the PR objective and maintains the existing error handling pattern.

cmd/helmfile_generate_varfile.go (1)

23-23: LGTM! Clean configuration type updates.

Both instances of the change from CliConfiguration to AtmosConfiguration are consistent with the PR objective and maintain the existing error handling patterns.

Also applies to: 35-35

cmd/terraform_generate_varfile.go (1)

23-23: LGTM! Clean configuration type update.

The changes correctly update the error handling to use schema.AtmosConfiguration{}, maintaining consistency with the PR's objective. The modification is straightforward and doesn't alter the error handling behavior.

Also applies to: 35-35

cmd/workflow.go (1)

27-27: LGTM! Consistent configuration type update.

The error handling has been correctly updated to use schema.AtmosConfiguration{}, maintaining alignment with the codebase's new configuration type.

cmd/helmfile.go (2)

32-32: LGTM! Error handling updated consistently.

The error handling has been updated to use schema.AtmosConfiguration{} consistently in both locations.

Also applies to: 45-45


37-37: Verify atmosConfig variable definition.

The atmosConfig variable is used here but its definition is not visible in the provided code.

✅ Verification successful

atmosConfig is properly defined and used throughout the codebase

The atmosConfig variable is defined as a global variable in cmd/root.go with type schema.AtmosConfiguration. It's properly initialized in multiple command handlers using config.InitCliConfig() before being passed to CheckForAtmosUpdateAndPrintMessage(). The usage in helmfile.go is consistent with the rest of the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for atmosConfig definition in the codebase
rg -B 5 -A 2 'atmosConfig.*:=|var atmosConfig' cmd/

Length of output: 2365


Script:

#!/bin/bash
# Let's check how atmosConfig is being used in helmfile.go for more context
rg -B 5 -A 2 'CheckForAtmosUpdateAndPrintMessage' cmd/

Length of output: 2143

cmd/describe_dependents.go (1)

24-24: LGTM! Error handling updated consistently.

The error handling has been updated to use schema.AtmosConfiguration{} in both locations, maintaining consistency with the codebase-wide changes.

Also applies to: 38-38

cmd/list_components.go (1)

29-29: LGTM! Configuration variable renamed consistently.

The configuration variable has been renamed from cliConfig to atmosConfig consistently in both the initialization and usage.

Also applies to: 35-35

✅ Verification successful

These commands will help us verify:

  1. The function signature and return type
  2. The location of the function definition
  3. The usage context to ensure consistency

Function signature and usage verified successfully

The verification confirms that:

  • InitCliConfig returns (schema.AtmosConfiguration, error)
  • The variable renaming from cliConfig to atmosConfig is consistent across all usages
  • The function is used correctly in the reviewed file
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Verify the InitCliConfig function signature to ensure it returns AtmosConfiguration
ast-grep --pattern 'func InitCliConfig($params) ($ret_type, error) {
  $$$
}'

Length of output: 79


Script:

#!/bin/bash
# Let's try a different approach to find the InitCliConfig function
rg "func InitCliConfig" -A 2

Length of output: 389


Script:

#!/bin/bash
# Also search for the file that contains this function
fd "config.go" --type f --exec rg "func InitCliConfig" {} \;

Length of output: 187


Script:

#!/bin/bash
# Check the actual usage context
rg "InitCliConfig" -B 1 -A 1

Length of output: 13988

cmd/terraform.go (2)

33-33: LGTM! Configuration type updates are consistent.

The changes from schema.CliConfiguration{} to schema.AtmosConfiguration{} align with the PR objective.

Also applies to: 47-47


39-39: Verify the atmosConfig variable definition.

The atmosConfig variable is used here but its definition isn't visible in the current context.

✅ Verification successful

The atmosConfig variable is properly defined and used

The variable atmosConfig is defined as a global variable in cmd/root.go:

var atmosConfig schema.AtmosConfiguration

It is initialized during CLI configuration in cmd/root.go:

atmosConfig, initErr = cfg.InitCliConfig(schema.ConfigAndStacksInfo{}, false)

The usage in cmd/terraform.go is valid as it references this global variable.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for atmosConfig definition in the codebase
rg -A 2 "atmosConfig\s*:?=" cmd/

Length of output: 34


Script:

#!/bin/bash
# Let's try a broader search for atmosConfig usage and definition
rg -B 3 -A 3 "atmosConfig" cmd/

# Also search for any struct or type definitions that might contain atmosConfig
ast-grep --pattern 'type $_ struct {
  $$$
  atmosConfig $_
  $$$
}'

# Let's also check for function parameters that might pass atmosConfig
ast-grep --pattern 'func $_($_atmosConfig$_ $_) {
  $$$
}'

Length of output: 18881

cmd/vendor_pull.go (1)

24-24: LGTM! Configuration type update is consistent.

The change from schema.CliConfiguration{} to schema.AtmosConfiguration{} aligns with the PR objective.

cmd/describe_component.go (1)

23-23: LGTM! Configuration type updates are consistent.

The changes from schema.CliConfiguration{} to schema.AtmosConfiguration{} align with the PR objective.

Also applies to: 37-37

cmd/list_stacks.go (1)

30-30: LGTM! Clean variable renaming.

The renaming from cliConfig to atmosConfig is consistent with the PR objective and maintains the existing functionality.

Also applies to: 36-36

cmd/version.go (1)

28-28: LGTM! Consistent type updates.

The schema type changes from CliConfiguration{} to AtmosConfiguration{} in error logging are consistent with the PR objective.

Also applies to: 39-39, 43-43

internal/exec/atlantis_utils.go (1)

15-15: LGTM! Clean parameter type update.

The change from CliConfiguration to AtmosConfiguration in the function signature and project template access is consistent and maintains the existing functionality.

Also applies to: 30-30

internal/exec/helmfile_generate_varfile.go (1)

37-37: LGTM! Consistent renaming of configuration variable.

The renaming from cliConfig to atmosConfig has been applied consistently throughout the file, maintaining the existing functionality while improving clarity.

Also applies to: 42-42, 58-58, 62-62, 64-65, 72-73

internal/exec/terraform_generate_varfile.go (1)

37-37: LGTM! Parallel structure with helmfile_generate_varfile.go.

The renaming follows the same pattern as helmfile_generate_varfile.go, maintaining consistency across similar command implementations.

Also applies to: 42-42, 58-58, 62-62, 64-65, 72-73

internal/exec/tar_utils.go (1)

17-17: LGTM! Function signature and logging updated consistently.

The renaming has been properly applied to both the function signature and internal logging calls.

Let's verify the type usage across the codebase:

Also applies to: 45-45, 87-87

✅ Verification successful

Type change from CliConfiguration to AtmosConfiguration has been properly applied across the codebase

The search results confirm that:

  • No instances of CliConfiguration type remain in the codebase
  • AtmosConfiguration is consistently used throughout the project
  • The type is properly imported from the schema package in all relevant files
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Verify consistent usage of AtmosConfiguration type
# Check for any remaining instances of CliConfiguration
rg "CliConfiguration" --type go

# Check for proper usage of AtmosConfiguration
rg "AtmosConfiguration" --type go

Length of output: 19457

internal/exec/yaml_func_utils.go (1)

12-12: Clean and consistent parameter renaming!

The renaming from cliConfig to atmosConfig has been applied consistently across all function signatures and usages. The changes maintain the existing functionality while improving naming clarity.

Also applies to: 16-16, 20-20, 30-30, 59-59, 66-66, 68-68, 70-70, 72-72

pkg/atlantis/atlantis_generate_repo_config_test.go (1)

15-15: Test cases properly updated with new configuration name!

All test cases have been correctly updated to use atmosConfig instead of cliConfig, maintaining test coverage and clarity.

Also applies to: 18-18, 21-21, 45-45, 49-49, 61-61, 65-65, 77-77, 81-81

cmd/validate_component.go (2)

29-29: Error handling properly updated with new configuration type!

The error handling has been correctly updated to use schema.AtmosConfiguration{}, maintaining consistency with the rename while preserving error handling functionality.

Also applies to: 48-48


29-29: Verify complete removal of old configuration type

Let's ensure no instances of CliConfiguration remain in the codebase.

Also applies to: 48-48

✅ Verification successful

Rename to AtmosConfiguration is complete and consistent

The search results confirm that CliConfiguration has been completely removed from the codebase, and all configuration-related code consistently uses AtmosConfiguration. No instances of the old type name remain.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for any remaining instances of CliConfiguration
echo "Checking for remaining instances of CliConfiguration..."
rg "CliConfiguration" --type go

# Search for any potential mismatches between type and variable names
echo "Checking for potential inconsistencies in configuration naming..."
rg "Config.*schema\.(Cli|Atmos)Configuration" --type go

Length of output: 13881

internal/exec/terraform_generate_backend.go (1)

38-38: LGTM! Consistent renaming of configuration variable

The renaming from cliConfig to atmosConfig has been applied consistently throughout the file, maintaining the original functionality while improving clarity about the configuration's purpose.

Also applies to: 43-43, 61-61, 63-64, 79-80, 86-87

internal/exec/template_funcs_component.go (1)

17-18: LGTM! Function signature and internal references updated consistently

The function signature and all internal references have been properly updated from cliConfig to atmosConfig, maintaining consistent error handling and logging throughout the function.

Also applies to: 25-26, 29-29, 32-32, 34-34, 60-60, 75-76, 79-79, 81-81

pkg/component/component_processor.go (2)

26-26: LGTM! Consistent configuration renaming across both functions

The renaming from cliConfig to atmosConfig has been applied consistently throughout both ProcessComponentInStack and ProcessComponentFromContext functions, including all error handling and logging calls.

Also applies to: 28-28, 33-33, 36-36, 38-38, 62-62, 64-64, 68-68, 70-70, 74-74, 76-76


Line range hint 17-87: Verify complete renaming coverage across the codebase

Let's verify that all instances of CliConfiguration have been renamed to AtmosConfiguration across the entire codebase.

✅ Verification successful

Renaming verification complete - all instances properly updated

The codebase shows consistent usage of AtmosConfiguration throughout, with no remaining instances of CliConfiguration. The few occurrences of "cliConfig" found are in different contexts (template settings, yaml output) and are not related to the type renaming.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any remaining instances of CliConfiguration

# Search for any remaining instances of CliConfiguration
echo "Checking for remaining instances of CliConfiguration..."
rg "CliConfiguration"

# Search for any potential mismatches between cliConfig and atmosConfig
echo "Checking for potential mismatches in variable naming..."
rg "cliConfig"

Length of output: 826


Script:

#!/bin/bash
# Let's verify the complete renaming by checking both old and new terms in different contexts

# Check for any AtmosConfiguration usage
echo "Checking AtmosConfiguration usage..."
rg "AtmosConfiguration"

# Check for any remaining CLI config related terms that might need updating
echo "Checking CLI config related terms..."
rg -i "cli.?config" -g "!*.md" -g "!*.txt"

# Check specific variable naming patterns
echo "Checking variable naming patterns..."
ast-grep --pattern 'var $_ AtmosConfiguration'

Length of output: 60701

cmd/describe_stacks.go (1)

23-23: LGTM! Clean configuration type update

The change from CliConfiguration{} to AtmosConfiguration{} is consistent with the PR objective and maintains the existing error handling pattern.

internal/exec/oci_utils.go (1)

23-23: LGTM! Thorough and consistent configuration updates

All instances of the configuration type have been updated consistently throughout the function, including:

  • Function signature
  • Deferred cleanup call
  • Error logging
  • Tarball extraction calls

The parameter rename to atmosConfig also improves code clarity.

Also applies to: 30-30, 63-63, 87-87, 96-96

internal/exec/workflow.go (1)

29-29: LGTM! Consistent renaming of configuration variable

The renaming from cliConfig to atmosConfig has been applied consistently throughout the file, maintaining the same functionality while improving clarity about the configuration's purpose.

Also applies to: 36-36, 82-82, 122-122

cmd/terraform_generate_varfiles.go (1)

23-23: LGTM! Consistent usage of AtmosConfiguration in error handling

Error handling has been properly updated to use schema.AtmosConfiguration{}, maintaining consistency with the renamed configuration type.

Also applies to: 61-61

cmd/terraform_generate_backends.go (2)

23-23: LGTM! Consistent usage of AtmosConfiguration in error handling

Error handling has been properly updated to use schema.AtmosConfiguration{}, maintaining consistency with the renamed configuration type.


Line range hint 1-65: Verify complete migration from CliConfiguration to AtmosConfiguration

Let's ensure all instances of CliConfiguration have been properly renamed across the codebase.

✅ Verification successful

Migration from CliConfiguration to AtmosConfiguration is complete

The codebase search shows that all instances have been successfully migrated to AtmosConfiguration. There are no remaining occurrences of CliConfiguration, and AtmosConfiguration is consistently used throughout the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Description: Check for any remaining instances of CliConfiguration

echo "Checking for remaining instances of CliConfiguration..."
rg "CliConfiguration" --type go

echo "Verifying all instances of AtmosConfiguration..."
rg "AtmosConfiguration" --type go

Length of output: 19685

internal/exec/path_utils.go (2)

11-11: LGTM! Consistent parameter renaming in constructTerraformComponentWorkingDir

The parameter renaming from cliConfig to atmosConfig is consistent with the PR objective. The function maintains its original logic while using the new configuration type.

Also applies to: 13-14


45-45: LGTM! Consistent parameter renaming across all utility functions

The renaming has been consistently applied across all path construction functions:

  • constructTerraformComponentVarfilePath
  • constructTerraformComponentPlanfilePath
  • constructHelmfileComponentWorkingDir
  • constructHelmfileComponentVarfilePath

The changes maintain the original functionality while using the new configuration type.

Also applies to: 53-53, 55-55, 61-61, 63-64, 82-82, 84-84

cmd/aws_eks_update_kubeconfig.go (1)

18-18: LGTM! Error handling updated to use AtmosConfiguration

The error handling has been updated to use the new configuration type while maintaining the original functionality. Documentation has been appropriately updated to reflect these changes.

Also applies to: 22-22, 40-40

cmd/describe_affected.go (1)

23-23: LGTM! Error handling updated to use AtmosConfiguration

The error handling has been consistently updated to use the new configuration type while maintaining the original functionality.

internal/exec/spacelift_utils.go (1)

86-86: LGTM! Clean rename from cliConfig to atmosConfig

The changes consistently rename the configuration parameter while maintaining the existing functionality. The updates properly reflect the new type schema.AtmosConfiguration and all its usages.

Also applies to: 104-105, 110-110

internal/exec/yaml_func_terraform_output.go (1)

18-18: LGTM! Thorough and consistent renaming across all functions

The changes systematically update all references from cliConfig to atmosConfig across multiple functions while preserving the existing error handling and logging patterns. The rename maintains consistency with the new type schema.AtmosConfiguration.

Also applies to: 22-22, 26-26, 46-46, 50-50, 58-59, 64-64, 71-71, 77-77, 80-80, 82-82, 87-87, 92-92, 103-103, 114-114, 125-125

cmd/docs.go (1)

37-37: LGTM! Complete and consistent configuration updates

The changes thoroughly update all configuration-related code:

  • Error handling consistently uses schema.AtmosConfiguration{}
  • Configuration initialization properly uses the new type
  • Path construction and settings access are correctly updated

Also applies to: 39-39, 44-44, 62-62, 65-65, 68-68, 74-74, 76-76, 82-82, 92-92, 97-97, 100-101, 121-121

internal/exec/pro.go (1)

37-37: LGTM! Consistent variable renaming

The renaming from cliConfig to atmosConfig is applied consistently and maintains the existing functionality.

Also applies to: 42-42

internal/exec/atmos.go (1)

37-37: LGTM! Comprehensive variable renaming

The renaming from cliConfig to atmosConfig is consistently applied across all function calls while preserving the existing functionality.

Also applies to: 44-44, 119-119, 131-131

cmd/atlantis_generate_repo_config.go (2)

23-23: LGTM! Consistent type renaming in error logging

The update from schema.CliConfiguration{} to schema.AtmosConfiguration{} in error logging maintains consistency with the configuration type renaming.


23-23: Verify complete renaming across codebase

Let's ensure no instances of CliConfiguration remain in the codebase.

✅ Verification successful

Renaming is consistent across the codebase

The search results confirm that CliConfiguration has been completely replaced with AtmosConfiguration throughout the codebase. All instances now use the new type name consistently, and there are no remaining references to the old CliConfiguration type.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for any remaining instances of CliConfiguration
echo "Searching for remaining instances of CliConfiguration..."
rg "CliConfiguration" --type go

# Search for any potential mismatches between cliConfig variable and AtmosConfiguration type
echo "Checking for potential mismatches between variable names and types..."
rg "cliConfig.*AtmosConfiguration|AtmosConfiguration.*cliConfig" --type go

Length of output: 380


Script:

#!/bin/bash
# Let's try a more comprehensive search for both old and new configuration types
echo "Searching for AtmosConfiguration..."
ast-grep --pattern 'type AtmosConfiguration struct { $$$ }'

echo "Searching for any configuration-related types..."
ast-grep --pattern 'type $_ struct { $$$ }' | grep -i "config"

# Let's also check for any usage patterns
echo "Checking usage patterns..."
rg "schema\.(Atmos|Cli)Configuration" -A 2

Length of output: 49919

cmd/root.go (3)

21-21: LGTM! Variable renamed for better clarity.

The renaming from cliConfig to atmosConfig better reflects its purpose as the main configuration structure for Atmos.


55-55: LGTM! Error handling updated consistently.

Error handling has been updated to use the new AtmosConfiguration type consistently.

Also applies to: 60-60


109-116: LGTM! Command processing updated consistently.

The command processing logic has been updated to use atmosConfig consistently when processing custom commands and aliases.

internal/exec/describe_affected.go (2)

19-19: LGTM! Field type updated consistently.

The CLIConfig field type has been updated to AtmosConfiguration in the DescribeAffectedCmdArgs struct.


43-47: LGTM! Configuration initialization and validation updated.

The configuration initialization and validation logic has been updated to use atmosConfig consistently.

Also applies to: 52-52

internal/exec/validate_component.go (2)

24-24: LGTM! Configuration initialization updated.

The configuration initialization has been updated to use atmosConfig consistently.


72-72: LGTM! Function signatures updated consistently.

All function signatures have been updated to use AtmosConfiguration type consistently.

Also applies to: 85-85, 88-88, 96-96

internal/exec/vendor_model_component.go (1)

33-33: LGTM! Consistent parameter renaming across functions.

The parameter renaming from cliConfig to atmosConfig is consistently applied across all functions, aligning with the PR objectives.

Also applies to: 65-65, 109-109, 179-179

internal/exec/template_utils.go (1)

65-77: LGTM! Clean configuration parameter update.

The transition from cliConfig to atmosConfig is well-implemented, maintaining the same functionality while improving naming clarity.

internal/exec/stack_utils.go (1)

14-26: LGTM! Clean configuration parameter update.

The transition from cliConfig to atmosConfig is consistently implemented, maintaining the same functionality.

internal/exec/terraform_utils.go (2)

Line range hint 19-24: LGTM! Function signature and implementation updated correctly.

The checkTerraformConfig function has been properly updated to use AtmosConfiguration.


33-37: LGTM! Consistent parameter update and logging changes.

The cleanTerraformWorkspace function correctly implements the configuration type change.

internal/exec/workflow_utils.go (2)

234-235: LGTM! Clean UI integration with configuration changes.

The ExecuteWorkflowUI function has been properly updated to use AtmosConfiguration and maintains clean separation of concerns.


146-149: Ensure path traversal protection for workflow paths.

The path joining logic should be verified to prevent potential path traversal attacks when handling workflow base paths.

✅ Verification successful

Path handling implementation is secure against traversal attacks

The implementation has multiple layers of protection:

  • Uses filepath.IsAbs() to properly detect absolute paths
  • Validates directory existence with IsDirectory() check
  • Employs os.Stat() for file system validation before access
  • Properly joins paths using filepath.Join() which normalizes paths and handles separators correctly
  • Base paths are validated early in the workflow execution

The code follows secure path handling practices and includes appropriate validation checks before file access.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Check for path traversal prevention in workflow path handling
ast-grep --pattern 'filepath.Join($base, $path)' 

Length of output: 50


Script:

#!/bin/bash
# Let's check the entire workflow_utils.go file to understand the path handling
rg -A 5 "BasePath" internal/exec/workflow_utils.go

# Also check for any path sanitization or validation functions
ast-grep --pattern 'func $name($$$) {
  $$$
  filepath.$$$
  $$$
}'

# Check for IsPathAbsolute implementation
rg -A 5 "IsPathAbsolute" --type go

Length of output: 2969


Script:

#!/bin/bash
# Let's check for path cleaning or validation before usage
rg -B 2 -A 2 "Clean|ToSlash|FromSlash|Rel|\.Clean" pkg/utils/file_utils.go

# Check if there's any validation of path components
rg -B 2 -A 2 "filepath\.Base|filepath\.Dir|strings\.Contains\(\$.*\.\$.*,\s*\"\.\.\"\)" --type go

# Check for any file access validation
rg -B 2 -A 2 "EvalSymlinks|os\.Stat|os\.Lstat" pkg/utils/file_utils.go

Length of output: 6338

internal/exec/describe_dependents.go (1)

23-23: LGTM! Consistent renaming from CliConfiguration to AtmosConfiguration

The changes maintain consistency with the PR objective while preserving the existing functionality.

Also applies to: 28-28, 56-56, 227-227, 251-251, 258-258

internal/exec/vendor_model.go (1)

65-65: LGTM! Thorough and consistent renaming in vendor model

The changes systematically update all references from CliConfiguration to AtmosConfiguration while maintaining the vendor functionality.

Also applies to: 77-77, 237-237, 329-329

internal/exec/helmfile.go (2)

31-31: LGTM! Configuration handling updates are thorough and consistent

The changes properly update all configuration references while maintaining the existing validation logic and error messages.

Also applies to: 275-295


Line range hint 23-295: Verify complete migration from CliConfiguration

Let's ensure no references to the old configuration type remain.

✅ Verification successful

Migration to AtmosConfiguration is complete and verified

The search results confirm that all references to CliConfiguration have been completely removed from the codebase, and AtmosConfiguration is consistently used throughout. No legacy references remain.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for any remaining references to CliConfiguration
rg "CliConfiguration" --type go

# Search for any remaining references to cliConfig variable
rg "\bcliConfig\b" --type go

Length of output: 62


Script:

#!/bin/bash
# Let's try a more comprehensive search for any configuration-related patterns
# Search for AtmosConfiguration usage
echo "=== Searching for AtmosConfiguration ==="
ast-grep --pattern 'type AtmosConfiguration struct'

echo -e "\n=== Searching for atmosConfig variable usage ==="
rg "atmosConfig\s+\w*\s*(?:schema\.)?AtmosConfiguration" --type go

echo -e "\n=== Checking imports of schema package ==="
rg "schema\." --type go -A 1

Length of output: 66257

internal/exec/help.go (1)

13-13: LGTM! Parameter rename aligns with the PR objectives.

The renaming of cliConfig to atmosConfig is consistent with the broader refactoring effort.

internal/exec/terraform_generate_varfiles.go (7)

24-24: LGTM! Command execution setup properly updated.

The initialization and execution flow correctly use the renamed configuration type.

Also applies to: 65-65


70-70: LGTM! Function signature updated consistently.

The parameter type change from CliConfiguration to AtmosConfiguration is properly reflected in the function signature.

Also applies to: 76-76


163-164: LGTM! Path construction uses correct configuration fields.

The base path construction correctly uses the renamed configuration structure.


201-207: LGTM! Stack name handling logic maintained.

The stack name generation logic properly uses the renamed configuration while maintaining the existing functionality.


249-249: LGTM! Template processing updated with proper error handling.

The template processing and error handling correctly use the renamed configuration structure.

Also applies to: 262-269


272-272: LGTM! File operations properly updated.

The file processing operations correctly use the renamed configuration structure.

Also applies to: 318-318


326-330: LGTM! Logging operations consistently updated.

Debug logging calls properly use the renamed configuration structure.

internal/exec/terraform_generate_backends.go (7)

24-24: LGTM! Command execution setup properly updated.

The initialization and execution flow correctly use the renamed configuration type.

Also applies to: 65-65


70-70: LGTM! Function signature updated consistently.

The parameter type change from CliConfiguration to AtmosConfiguration is properly reflected in the function signature.

Also applies to: 76-76


164-165: LGTM! Path construction uses correct configuration fields.

The base path construction correctly uses the renamed configuration structure.


202-208: LGTM! Stack name handling logic maintained.

The stack name generation logic properly uses the renamed configuration while maintaining the existing functionality.


233-233: LGTM! Template processing updated with proper error handling.

The template processing and error handling correctly use the renamed configuration structure.

Also applies to: 246-253


256-256: LGTM! File operations properly updated.

The file processing operations correctly use the renamed configuration structure.

Also applies to: 323-323


336-336: LGTM! Backend configuration writing properly updated.

The backend configuration writing operations correctly use the renamed configuration structure.

Also applies to: 341-341

internal/exec/vendor_component_utils.go (3)

38-53: LGTM! Clean parameter renaming.

The function signature and internal references have been consistently updated from cliConfig to atmosConfig.


Line range hint 105-161: LGTM! Consistent logging updates.

The function has been properly updated to use atmosConfig for all logging operations while maintaining the original functionality.


Line range hint 192-349: LGTM! Proper warning log updates.

The function has been correctly updated to use atmosConfig for warning logs while preserving the original behavior.

internal/exec/validate_stacks.go (1)

Line range hint 31-111: LGTM! Comprehensive configuration updates.

All functions have been systematically updated to use atmosConfig, maintaining consistency throughout the validation logic.

Also applies to: 123-160

internal/exec/terraform_clean.go (1)

Line range hint 282-477: LGTM! Thorough logging updates.

All functions have been systematically updated to use atmosConfig for configuration and logging operations while preserving the original cleaning functionality.

cmd/cmd_utils.go (2)

40-40: LGTM! Function signature and error handling updates are consistent.

The renaming from cliConfig to atmosConfig has been properly applied across the function signatures and error handling calls.

Also applies to: 72-72, 142-148


377-385: Verify the config initialization and directory check.

The config initialization and directory check are critical paths. Ensure all callers are prepared for the updated error handling.

✅ Verification successful

All callers properly handle InitCliConfig errors

Based on the search results, all callers of InitCliConfig consistently check and handle errors appropriately. The error handling follows these patterns:

  • Command-line tools use LogErrorAndExit or print error messages
  • Internal packages return errors for proper propagation
  • Test files assert nil errors as expected
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for all InitCliConfig calls to verify they're updated
rg "InitCliConfig\(" -A 2

Length of output: 12805

internal/exec/terraform.go (2)

39-39: LGTM! Logging updates are consistent.

The config initialization and debug logging have been properly updated to use atmosConfig.

Also applies to: 250-252


300-301: Verify auto-approve flag handling.

The auto-approve flag handling is a critical path that affects terraform apply operations. Ensure the behavior remains consistent with the new config structure.

✅ Verification successful

Let me verify the auto-approve flag implementation further by checking the initialization and usage of the autoApproveFlag constant.


Let me check how the UseTerraformPlan flag is handled in relation to auto-approve to ensure complete verification.


Auto-approve flag handling is correctly implemented

The auto-approve behavior is properly integrated with the config structure and maintains consistency by:

  • Correctly checking both the ApplyAutoApprove config flag and UseTerraformPlan status
  • Only applying auto-approve for apply subcommand when not using plan files
  • Properly handling the -auto-approve flag addition to prevent duplicates
  • Maintaining the expected behavior when using plan files by not adding auto-approve
🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for auto-approve flag usage
rg "ApplyAutoApprove" -A 3

Length of output: 2124


Script:

#!/bin/bash
# Search for autoApproveFlag definition and usage
rg "autoApproveFlag" -A 2

# Check for any other auto-approve related flags or constants
rg "-auto-approve" -A 2

Length of output: 1435


Script:

#!/bin/bash
# Search for UseTerraformPlan usage
rg "UseTerraformPlan" -A 3

# Check the struct definition containing UseTerraformPlan
ast-grep --pattern 'type $_ struct {
  $$$
  UseTerraformPlan $_
  $$$
}'

Length of output: 8975

internal/exec/atlantis_generate_repo_config.go (3)

Line range hint 136-179: LGTM! Function signatures are consistently updated.

The ExecuteAtlantisGenerateRepoConfigAffectedOnly function has been properly updated to use atmosConfig.


480-492: LGTM! Workflow and path handling are properly updated.

The workflow template and path handling logic has been correctly updated to use the new config structure.


Line range hint 247-308: Verify template resolution logic.

The template resolution is a critical path that affects Atlantis configuration generation. Ensure all template paths are properly resolved with the new config structure.

✅ Verification successful

Let me gather more information about the template resolution logic to ensure completeness.


Template resolution logic is properly implemented and follows the documented hierarchy.

The verification shows that the template resolution follows a clear priority order:

  • Command-line template arguments take highest precedence
  • Component-level settings.atlantis.project_template takes second priority
  • Component-level settings.atlantis.project_template_name takes third priority
  • All paths properly fall back to the global templates defined in atmos.yaml

The code correctly handles all cases with appropriate error messages when templates are not found, and the implementation matches the documented behavior in the codebase.

🏁 Scripts executed

The following scripts were executed for the analysis:

Script:

#!/bin/bash
# Search for template resolution patterns
rg "ProjectTemplates\[" -A 3
rg "ConfigTemplates\[" -A 3

Length of output: 3224


Script:

#!/bin/bash
# Search for template-related struct definitions and interfaces
ast-grep --pattern 'type $_ struct {
  $$$
  ProjectTemplates $$$
  $$$
}'

# Search for template processing functions
rg "func.*[Tt]emplate" -A 3

# Look for any template validation or processing logic
rg "settings.atlantis" -A 3

Length of output: 34731

internal/exec/vendor_utils.go (3)

Line range hint 37-125: LGTM! Configuration parameter renaming is consistent.

The changes correctly rename the configuration parameter from cliConfig to atmosConfig while preserving the existing logic and control flow.


405-405: LGTM! Logging updates are consistent.

The logging statements have been systematically updated to use the new atmosConfig parameter while maintaining the same logging behavior and verbosity levels.

Also applies to: 408-409, 467-468, 475-476, 483-484, 495-496, 499-499, 502-502, 504-504


516-516: LGTM! Function signatures consistently updated.

All function signatures have been systematically updated to use atmosConfig schema.AtmosConfiguration instead of cliConfig schema.CliConfiguration, maintaining consistency across the codebase.

Also applies to: 537-537, 542-542, 1004-1004, 1051-1051, 1058-1058, 1066-1066, 1082-1082, 1177-1177, 1219-1219, 1269-1269, 1313-1313, 1319-1319, 1349-1349, 1355-1355, 1392-1392, 1418-1418, 1425-1425, 1432-1432, 1447-1447, 1454-1454, 1461-1461

internal/exec/describe_stacks.go (1)

23-23: LGTM! Configuration updates are consistent.

The changes in describe_stacks.go correctly implement the configuration type renaming while preserving all existing functionality.

Also applies to: 28-28, 98-98, 121-121, 131-131, 269-270, 277-277, 321-321, 342-342, 355-355, 362-362, 365-365, 462-463, 470-470

internal/exec/describe_affected_utils.go (1)

35-35: LGTM! Configuration updates are thorough and consistent.

The changes in describe_affected_utils.go systematically implement the configuration type renaming across all functions while maintaining the existing functionality.

Also applies to: 47-47, 75-75, 77-77, 88-88, 90-90, 130-130, 132-132, 137-137, 156-156, 160-160, 180-180, 190-190, 209-209, 212-212, 240-240, 257-257, 276-276, 283-283, 308-308, 312-312, 332-332, 365-365, 383-383, 395-395, 408-409, 411-411, 435-437, 439-441, 447-447, 452-452, 459-460, 467-468, 475-476, 483-484, 495-496, 499-502, 504-504, 510-510, 527-527, 566-566, 586-586, 599-599, 616-616, 629-629, 655-655, 681-681, 707-707, 766-766, 806-806, 826-826, 839-839, 865-865, 891-891, 917-917, 976-976, 1004-1004, 1051-1051, 1058-1058, 1066-1066, 1082-1082, 1177-1177, 1185-1185, 1187-1187, 1219-1219, 1223-1223, 1269-1269, 1313-1314, 1319-1319, 1349-1350, 1355-1355, 1392-1392, 1418-1418, 1425-1425, 1432-1432, 1447-1447, 1454-1454, 1461-1461

internal/exec/stack_processor_utils.go (39)

34-34: Renaming parameter to atmosConfig
Renaming this parameter from cliConfig to atmosConfig is consistent with the PR objectives and improves clarity.


74-74: Parameter usage updated
Usage of atmosConfig in this function call aligns well with the new naming convention. No issues found.


104-104: Renamed parameter in ProcessStackConfig
The usage of atmosConfig here is properly updated to match the new struct name.


154-154: Function signature updated
Introducing the atmosConfig schema.AtmosConfiguration parameter reflects the intended rename throughout.


216-216: Maintains consistent logging references
The reference to atmosConfig.Logs.Level ensures logs remain accessible for debugging in trace or debug mode.


226-226: Consistent debug-level check
Retaining the same check with atmosConfig.Logs.Level fosters logging uniformity.


318-318: Merge call refactored
The updated Merge(atmosConfig, ...) references the newly renamed struct field. Looks good.


327-327: Merge usage alignment
This retains functional parity with the renamed configuration object.


428-428: Merge with atmosConfig
No logical changes besides referencing atmosConfig. This is consistent with the rename.


436-436: Calling ProcessYAMLConfigFile with atmosConfig
Nicely updated invocation. Clean rename adherence.


457-457: Error handling block
This line is referencing the existing logic; no issues are introduced.


466-466: Merge call updated
Again, usage of the updated atmosConfig is valid and aligned with the refactor.


516-516: Deep-merge with atmosConfig
Preserving the same merge functionality with the new parameter name.


528-528: Renamed parameter in ProcessStackConfig
Consistent naming across function signatures. No functional concerns observed.


629-629: Merge call with updated config (globalAndTerraformVars)
The parameter rename is carried forward here without issues.


641-641: Merge usage (globalAndTerraformSettings)
Continues the consistent rename of cliConfig to atmosConfig.


653-653: Merge usage (globalAndTerraformEnv)
The function call is accurately referencing the new struct name.


716-716: Merge call (globalAndHelmfileVars)
Same rename-based improvement; everything looks solid.


728-728: Merge call (globalAndHelmfileSettings)
Inline with the new atmosConfig. Good to see consistency.


740-740: Merge call (globalAndHelmfileEnv)
No inherent logic changes, just referencing the correct object name.


923-923: ProcessBaseComponentConfig usage
Renamed parameter ensures the function aligns with the new naming, no regressions spotted.


991-991: ProcessBaseComponentConfig call
Propagation of atmosConfig for base components remains the same in functionality.


1022-1022: Merging finalComponentVars
Passing atmosConfig to the merge function is consistent with the rename.


1034-1034: Merging finalComponentSettings
No issues found in referencing atmosConfig.


1046-1046: Merging finalComponentEnv
All merges remain straightforward with the updated configuration.


1058-1058: Merging finalComponentProviders
Appropriate reflection of the newly updated struct name.


1163-1163: Merging finalComponentRemoteStateBackendSection
Accurate usage of atmosConfig in the merge.


1176-1176: Merging finalComponentRemoteStateBackendSectionMerged
Properly passing the renamed struct param. Looks fine.


1201-1202: Terraform command defaults
These lines confirm the default to "terraform" or read from atmosConfig. No issues.


1239-1239: processSettingsIntegrationsGithub
Renamed configuration object is used properly.


1516-1517: Helmfile command defaults
Similar logic to Terraform; fallback to "helmfile" or atmosConfig setting. Looks good.


1814-1814: CreateComponentStackMap signature
Renaming parameter here matches the broader changes.


1846-1846: ProcessYAMLConfigFile invocation
No functional change beyond referencing atmosConfig.


1864-1864: ProcessStackConfig invocation
Continues the rename usage with atmosConfig.


1943-1943: ProcessBaseComponentConfig signature
Renaming ensures internal consistency.


1994-1994: Further ProcessBaseComponentConfig usage
Keeps the rename uniform across code.


2040-2040: Chaining ProcessBaseComponentConfig
Again, properly passes atmosConfig to the recursive call.


2128-2149: Applying merges for base components
All references to atmosConfig for merges (vars, settings, env, providers) remain in line with the renamed struct.


Line range hint 2162-2172: More merges for backend and remote_state_backend
Consistent usage of atmosConfig in merging backend configurations.

cmd/version.go Show resolved Hide resolved
@mcalhoun mcalhoun enabled auto-merge (squash) December 18, 2024 20:48
@mcalhoun mcalhoun merged commit fe637fa into main Dec 18, 2024
29 checks passed
@mcalhoun mcalhoun deleted the chore/rename-CliConfiguration-to-AtmosConfiguration branch December 18, 2024 21:30
Copy link

These changes were released in v1.131.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-release Do not create a new release (wait for additional code changes) patch A minor, backward compatible change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants