in internal/google/adc.go [119:155]
func AppDefaultCredentials() (string, error) {
adcPath, err := exec.Command(
"gcloud", "info", "--format", "value(config.paths.global_config_dir)",
).Output()
filePath := strings.Trim(string(adcPath), "\n")
filePath += "/" + adcJsonName
if err != nil {
return "", err
}
email, err := findToken(filePath)
if err != nil {
fmt.Println("\nNo default credentials found - authorizing with Google")
authCmd := exec.Command(
"gcloud", "auth", "application-default", "login",
"--no-launch-browser",
)
authCmd.Stdout = os.Stdout
authCmd.Stderr = os.Stderr
authCmd.Stdin = os.Stdin
if err := authCmd.Run(); err != nil {
fmt.Printf("Error starting gcloud command: %v\n", err)
return "", err
}
// need to refresh adc context to get email now that we're auth'd
email, _ = findToken(filePath)
} else {
fmt.Println("\nFound default Google credentials - skipping")
}
return email, nil
}