2
0

metadata.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. package config
  2. import (
  3. "github.com/porter-dev/porter/api/server/shared/config/env"
  4. )
  5. type Metadata struct {
  6. Provisioning bool `json:"provisioner"`
  7. Github bool `json:"github"`
  8. BasicLogin bool `json:"basic_login"`
  9. GithubLogin bool `json:"github_login"`
  10. GoogleLogin bool `json:"google_login"`
  11. SlackNotifications bool `json:"slack_notifications"`
  12. Email bool `json:"email"`
  13. Analytics bool `json:"analytics"`
  14. Version string `json:"version"`
  15. Gitlab bool `json:"gitlab"`
  16. }
  17. func MetadataFromConf(sc *env.ServerConf, version string) *Metadata {
  18. return &Metadata{
  19. Provisioning: sc.ProvisionerServerURL != "" && sc.ProvisionerToken != "",
  20. Github: hasGithubAppVars(sc),
  21. GithubLogin: sc.GithubClientID != "" && sc.GithubClientSecret != "" && sc.GithubLoginEnabled,
  22. BasicLogin: sc.BasicLoginEnabled,
  23. GoogleLogin: sc.GoogleClientID != "" && sc.GoogleClientSecret != "",
  24. SlackNotifications: sc.SlackClientID != "" && sc.SlackClientSecret != "",
  25. Email: sc.SendgridAPIKey != "",
  26. Analytics: sc.SegmentClientKey != "",
  27. Version: version,
  28. Gitlab: sc.EnableGitlab,
  29. }
  30. }
  31. func hasGithubAppVars(sc *env.ServerConf) bool {
  32. return sc.GithubAppClientID != "" &&
  33. sc.GithubAppClientSecret != "" &&
  34. sc.GithubAppName != "" &&
  35. sc.GithubAppWebhookSecret != "" &&
  36. sc.GithubAppSecretPath != "" &&
  37. sc.GithubAppID != ""
  38. }