code: func NewFrom(v Values) *Configuration {
  	c := &Configuration{
  		Os:        EnvironmentOf(mapFetcher(v.Os)),
  		gitConfig: git.NewConfig("", ""),
  		timestamp: time.Now(),
  	}
  	c.Git = &delayedEnvironment{
  		callback: func() Environment {
  			source := &git.ConfigurationSource{
  				Lines: make([]string, 0, len(v.Git)),
  			}
  
  			for key, values := range v.Git {
  				parts := strings.Split(key, ".")
  				isCaseSensitive := len(parts) >= 3
  				hasUpper := strings.IndexFunc(key, unicode.IsUpper) > -1
  
  				// This branch should only ever trigger in
  				// tests, and only if they'd be broken.
  				if !isCaseSensitive && hasUpper {
  					panic(fmt.Sprintf("key %q has uppercase, shouldn't", key))
  				}
  				for _, value := range values {
  					fmt.Printf("Config: %s=%s\n", key, value)
  					source.Lines = append(source.Lines, fmt.Sprintf("%s=%s", key, value))
  				}
  			}
  
  			return c.readGitConfig(source)
  		},
  	}
  	return c
  }
docs: // NewFrom returns a new `*config.Configuration` that reads both its Git
  // and Enviornment-level values from the ones provided instead of the actual
  // `.gitconfig` file or `os.Getenv`, respectively.
  //
  // This method should only be used during testing.