func LoadConfig(fs *afero.Afero, logger *io.Logger, opts ContextOpts) (config *GFlowsConfig, err error) {
	exists, err := fs.Exists(opts.ConfigPath)
	if !exists {
		if !opts.AllowNoContext {
			err = errors.New("no gflows context found")
		} else {
			config = &GFlowsConfig{}
			config.Templates.Engine = opts.Engine
			config.Workflows.Defaults.Checks.Schema.URI = "https://json.schemastore.org/github-workflow"
		}
		return
	}
	data, err := fs.ReadFile(opts.ConfigPath)
	if err != nil {
		return
	}
	err = validateConfig(string(data), logger)
	if err != nil {
		return
	}
	config, err = parseConfig(data)
	return
}
LoadConfig - finds and returns the GFlowsConfig
package config
import (
	"errors"
	"fmt"
	"io/ioutil"
	"github.com/jbrunton/gflows/io"
	_ "github.com/jbrunton/gflows/static/statik"
	"github.com/jbrunton/gflows/yamlutil"
	statikFs "github.com/rakyll/statik/fs"
	"github.com/spf13/afero"
	"github.com/thoas/go-funk"
	"github.com/xeipuuv/gojsonschema"
	"gopkg.in/yaml.v2"
)
type GFlowsConfig struct {
	GithubDir string `yaml:"githubDir"`
	Workflows struct {
		Defaults  GFlowsWorkflowConfig
		Overrides map[string]*GFlowsWorkflowConfig
	}
	Templates struct {
		Engine    string
		Defaults  GFlowsTemplateConfig
		Overrides map[string]*GFlowsTemplateConfig
	}
}
type GFlowsWorkflowConfig struct {
	Checks struct {
		Schema struct {
			Enabled *bool
			URI     string `yaml:"uri"`
		}
		Content struct {
			Enabled *bool
		}
	}
}
type GFlowsTemplateConfig struct {
	Libs         []string
	Dependencies []string
}