MCPcopy Create free account
hub / github.com/github/gh-aw / extractSecretsFromConfig

Function extractSecretsFromConfig

pkg/cli/secrets.go:66–100  ·  view source on GitHub ↗

extractSecretsFromConfig extracts all required secrets from an MCP server config

(config parser.RegistryMCPServerConfig)

Source from the content-addressed store, hash-verified

64
65// extractSecretsFromConfig extracts all required secrets from an MCP server config
66func extractSecretsFromConfig(config parser.RegistryMCPServerConfig) []SecretInfo {
67 secretsLog.Printf("Extracting secrets from MCP config: command=%s", config.Command)
68 var secrets []SecretInfo
69 seen := make(map[string]struct {
70 })
71
72 // Extract from HTTP headers
73 for key, value := range config.Headers {
74 secretName := workflow.ExtractSecretName(value)
75 if secretName != "" && !setutil.Contains(seen, secretName) {
76 secrets = append(secrets, SecretInfo{
77 Name: secretName,
78 EnvKey: key,
79 })
80 seen[secretName] = struct {
81 }{}
82 }
83 }
84
85 // Extract from environment variables
86 for key, value := range config.Env {
87 secretName := workflow.ExtractSecretName(value)
88 if secretName != "" && !setutil.Contains(seen, secretName) {
89 secrets = append(secrets, SecretInfo{
90 Name: secretName,
91 EnvKey: key,
92 })
93 seen[secretName] = struct {
94 }{}
95 }
96 }
97
98 secretsLog.Printf("Extracted %d secrets from config", len(secrets))
99 return secrets
100}
101
102// checkSecretsAvailability checks which secrets are available and where
103func checkSecretsAvailability(secrets []SecretInfo, useActionsSecrets bool) []SecretInfo {

Callers 2

validateServerSecretsFunction · 0.85

Calls 3

ExtractSecretNameFunction · 0.92
ContainsFunction · 0.92
PrintfMethod · 0.45

Tested by 1