MCPcopy
hub / github.com/PatchMon/PatchMon / configureCreds

Function configureCreds

agent-source-code/cmd/patchmon-agent/commands/config.go:95–142  ·  view source on GitHub ↗
(apiID, apiKey, serverURL string)

Source from the content-addressed store, hash-verified

93}
94
95func configureCreds(apiID, apiKey, serverURL string) error {
96 logger.Info("Setting up credentials...")
97
98 // Validate credentials not empty
99 if strings.TrimSpace(apiID) == "" || strings.TrimSpace(apiKey) == "" {
100 return fmt.Errorf("API ID and API Key must be set")
101 }
102
103 // Validate server URL format
104 if _, err := url.Parse(serverURL); err != nil {
105 return fmt.Errorf("invalid server URL format: %w", err)
106 }
107
108 if !strings.HasPrefix(serverURL, "http://") && !strings.HasPrefix(serverURL, "https://") {
109 return fmt.Errorf("invalid server URL format. Must start with http:// or https://")
110 }
111
112 // Set server URL in config
113 cfg := cfgManager.GetConfig()
114 cfg.PatchmonServer = serverURL
115
116 // Save config
117 if err := cfgManager.SaveConfig(); err != nil {
118 return fmt.Errorf("failed to save config: %w", err)
119 }
120
121 // Save credentials
122 if err := cfgManager.SaveCredentials(apiID, apiKey); err != nil {
123 return fmt.Errorf("failed to save credentials: %w", err)
124 }
125
126 logger.Info("Configuration saved successfully")
127 logger.WithField("path", cfgManager.GetConfigFile()).Info("Config saved")
128 logger.WithField("path", cfg.CredentialsFile).Info("Credentials saved")
129
130 // Test credentials
131 logger.Info("Testing connection...")
132 _, err := pingServer()
133 if err != nil {
134 logger.WithError(err).Error("Connection test failed")
135 return err
136 }
137
138 logger.Info("✅ Connectivity test successful")
139 logger.Info("✅ API credentials are valid")
140
141 return nil
142}

Callers 1

config.goFile · 0.85

Calls 6

pingServerFunction · 0.85
GetConfigMethod · 0.80
SaveConfigMethod · 0.80
SaveCredentialsMethod · 0.80
GetConfigFileMethod · 0.80
ErrorMethod · 0.80

Tested by

no test coverage detected