@@ -11,7 +11,9 @@ import (
1111 "cuelang.org/go/cue/cuecontext"
1212 "github.com/input-output-hk/catalyst-forge/lib/project/blueprint"
1313 "github.com/input-output-hk/catalyst-forge/lib/project/injector"
14+ "github.com/input-output-hk/catalyst-forge/lib/project/providers"
1415 "github.com/input-output-hk/catalyst-forge/lib/project/schema"
16+ "github.com/input-output-hk/catalyst-forge/lib/project/secrets"
1517 "github.com/input-output-hk/catalyst-forge/lib/tools/earthfile"
1618 "github.com/input-output-hk/catalyst-forge/lib/tools/git"
1719 "github.com/input-output-hk/catalyst-forge/lib/tools/walker"
@@ -46,6 +48,13 @@ func (p *DefaultProjectLoader) Load(projectPath string) (Project, error) {
4648 return Project {}, fmt .Errorf ("failed to find git root: %w" , err )
4749 }
4850
51+ p .logger .Info ("Loading blueprint" , "path" , projectPath )
52+ rbp , err := p .blueprintLoader .Load (projectPath , gitRoot )
53+ if err != nil {
54+ p .logger .Error ("Failed to load blueprint" , "error" , err , "path" , projectPath )
55+ return Project {}, fmt .Errorf ("failed to load blueprint: %w" , err )
56+ }
57+
4958 p .logger .Info ("Loading repository" , "path" , gitRoot )
5059 rl := git .NewCustomDefaultRepoLoader (p .fs )
5160 repo , err := rl .Load (gitRoot )
@@ -54,13 +63,6 @@ func (p *DefaultProjectLoader) Load(projectPath string) (Project, error) {
5463 return Project {}, fmt .Errorf ("failed to load repository: %w" , err )
5564 }
5665
57- p .logger .Info ("Loading blueprint" , "path" , projectPath )
58- rbp , err := p .blueprintLoader .Load (projectPath , gitRoot )
59- if err != nil {
60- p .logger .Error ("Failed to load blueprint" , "error" , err , "path" , projectPath )
61- return Project {}, fmt .Errorf ("failed to load blueprint: %w" , err )
62- }
63-
6466 efPath := filepath .Join (projectPath , "Earthfile" )
6567 exists , err := afero .Exists (p .fs , efPath )
6668 if err != nil {
@@ -128,19 +130,22 @@ func (p *DefaultProjectLoader) Load(projectPath string) (Project, error) {
128130 p .logger .Debug ("No git tag found" )
129131 }
130132
133+ partialProject := Project {
134+ Earthfile : ef ,
135+ Name : name ,
136+ Path : projectPath ,
137+ RawBlueprint : rbp ,
138+ Repo : repo ,
139+ RepoRoot : gitRoot ,
140+ Tag : tag ,
141+ ctx : p .ctx ,
142+ logger : p .logger ,
143+ }
144+
131145 p .logger .Info ("Gathering runtime data" )
132146 runtimeData := make (map [string ]cue.Value )
133147 for _ , r := range p .runtimes {
134- d := r .Load (& Project {
135- Earthfile : ef ,
136- Path : projectPath ,
137- RawBlueprint : rbp ,
138- Repo : repo ,
139- RepoRoot : gitRoot ,
140- Tag : tag ,
141- ctx : p .ctx ,
142- logger : p .logger ,
143- })
148+ d := r .Load (& partialProject )
144149
145150 for k , v := range d {
146151 runtimeData [k ] = v
@@ -187,18 +192,23 @@ func NewDefaultProjectLoader(
187192 }
188193
189194 ctx := cuecontext .New ()
195+ fs := afero .NewOsFs ()
190196 bl := blueprint .NewDefaultBlueprintLoader (ctx , logger )
191197 rl := git .NewDefaultRepoLoader ()
198+ store := secrets .NewDefaultSecretStore ()
199+ ghp := providers .NewGithubProvider (fs , logger , & store )
192200 return DefaultProjectLoader {
193201 blueprintLoader : & bl ,
194202 ctx : ctx ,
195- fs : afero . NewOsFs () ,
203+ fs : fs ,
196204 injectors : []injector.BlueprintInjector {
197205 injector .NewBlueprintEnvInjector (ctx , logger ),
198206 },
199207 logger : logger ,
200208 repoLoader : & rl ,
201- runtimes : GetDefaultRuntimes (logger ),
209+ runtimes : []RuntimeData {
210+ NewGitRuntime (& ghp , logger ),
211+ },
202212 }
203213}
204214
0 commit comments