@@ -64,45 +64,31 @@ func (g *GitRepositoryGenerator) Generate(ctx context.Context, sg *templatesv1.G
64
64
}
65
65
66
66
func (g * GitRepositoryGenerator ) generateParamsFromGitFiles (ctx context.Context , sg * templatesv1.GitOpsSetGenerator , ks * templatesv1.GitOpsSet ) ([]map [string ]any , error ) {
67
- var gr sourcev1.GitRepository
68
- repoName := client.ObjectKey {Name : sg .GitRepository .RepositoryRef , Namespace : ks .GetNamespace ()}
69
- if err := g .Client .Get (ctx , repoName , & gr ); err != nil {
70
- return nil , fmt .Errorf ("could not load GitRepository: %w" , err )
71
- }
72
-
73
- // No artifact? nothing to generate...
74
- if gr .Status .Artifact == nil {
75
- g .Logger .Info ("GitRepository does not have an artifact" , "repository" , repoName )
76
- return nil , generators .ArtifactError ("GitRepository" , repoName )
67
+ repo , err := g .loadGitRepository (ctx , sg .GitRepository , ks )
68
+ if err != nil {
69
+ return nil , err
77
70
}
78
71
79
- g .Logger .Info ("fetching archive URL" , "repoURL" , gr .Spec .URL , "artifactURL" , gr .Status .Artifact .URL ,
80
- "digest" , gr .Status .Artifact .Digest , "revision" , gr .Status .Artifact .Revision )
72
+ g .Logger .Info ("fetching archive URL" , "repoURL" , repo .Spec .URL , "artifactURL" , repo .Status .Artifact .URL ,
73
+ "digest" , repo .Status .Artifact .Digest , "revision" , repo .Status .Artifact .Revision )
81
74
82
75
parser := parser .NewRepositoryParser (g .Logger , g .Fetcher )
83
76
84
- return parser .GenerateFromFiles (ctx , gr .Status .Artifact .URL , gr .Status .Artifact .Digest , sg .GitRepository .Files )
77
+ return parser .GenerateFromFiles (ctx , repo .Status .Artifact .URL , repo .Status .Artifact .Digest , sg .GitRepository .Files )
85
78
}
86
79
87
80
func (g * GitRepositoryGenerator ) generateParamsFromGitDirectories (ctx context.Context , sg * templatesv1.GitOpsSetGenerator , ks * templatesv1.GitOpsSet ) ([]map [string ]any , error ) {
88
- var gr sourcev1.GitRepository
89
- repoName := client.ObjectKey {Name : sg .GitRepository .RepositoryRef , Namespace : ks .GetNamespace ()}
90
- if err := g .Client .Get (ctx , repoName , & gr ); err != nil {
91
- return nil , fmt .Errorf ("could not load GitRepository: %w" , err )
81
+ repo , err := g .loadGitRepository (ctx , sg .GitRepository , ks )
82
+ if err != nil {
83
+ return nil , err
92
84
}
93
85
94
- // No artifact? nothing to generate...
95
- if gr .Status .Artifact == nil {
96
- g .Logger .Info ("GitRepository does not have an artifact" , "repository" , repoName )
97
- return []map [string ]any {}, nil
98
- }
99
-
100
- g .Logger .Info ("fetching archive URL" , "repoURL" , gr .Spec .URL , "artifactURL" , gr .Status .Artifact .URL ,
101
- "digest" , gr .Status .Artifact .Digest , "revision" , gr .Status .Artifact .Revision )
86
+ g .Logger .Info ("fetching archive URL" , "repoURL" , repo .Spec .URL , "artifactURL" , repo .Status .Artifact .URL ,
87
+ "digest" , repo .Status .Artifact .Digest , "revision" , repo .Status .Artifact .Revision )
102
88
103
89
parser := parser .NewRepositoryParser (g .Logger , g .Fetcher )
104
90
105
- return parser .GenerateFromDirectories (ctx , gr .Status .Artifact .URL , gr .Status .Artifact .Digest , sg .GitRepository .Directories )
91
+ return parser .GenerateFromDirectories (ctx , repo .Status .Artifact .URL , repo .Status .Artifact .Digest , sg .GitRepository .Directories )
106
92
}
107
93
108
94
// Interval is an implementation of the Generator interface.
@@ -111,3 +97,20 @@ func (g *GitRepositoryGenerator) generateParamsFromGitDirectories(ctx context.Co
111
97
func (g * GitRepositoryGenerator ) Interval (sg * templatesv1.GitOpsSetGenerator ) time.Duration {
112
98
return generators .NoRequeueInterval
113
99
}
100
+
101
+ func (g * GitRepositoryGenerator ) loadGitRepository (ctx context.Context , gen * templatesv1.GitRepositoryGenerator , ks * templatesv1.GitOpsSet ) (* sourcev1.GitRepository , error ) {
102
+ repoName := client.ObjectKey {Name : gen .RepositoryRef , Namespace : ks .GetNamespace ()}
103
+
104
+ var gr sourcev1.GitRepository
105
+ if err := g .Client .Get (ctx , repoName , & gr ); err != nil {
106
+ return nil , fmt .Errorf ("could not load GitRepository: %w" , err )
107
+ }
108
+
109
+ // No artifact? nothing to generate...
110
+ if gr .Status .Artifact == nil {
111
+ g .Logger .Info ("GitRepository does not have an artifact" , "repository" , repoName )
112
+ return nil , generators .ArtifactError ("GitRepository" , repoName )
113
+ }
114
+
115
+ return & gr , nil
116
+ }
0 commit comments