@@ -32,6 +32,7 @@ import (
3232 "sigs.k8s.io/controller-runtime/pkg/client"
3333
3434 "github.com/fluxcd/pkg/auth/azure"
35+ "github.com/fluxcd/pkg/auth/github"
3536 "github.com/fluxcd/pkg/git"
3637 "github.com/fluxcd/pkg/git/gogit"
3738 sourcev1 "github.com/fluxcd/source-controller/api/v1"
@@ -162,13 +163,15 @@ func configurePush(cfg *gitSrcCfg, gitSpec *imagev1.GitSpec, checkoutRef *source
162163}
163164
164165func getAuthOpts (ctx context.Context , c client.Client , repo * sourcev1.GitRepository ) (* git.AuthOptions , error ) {
166+ var authSecret corev1.Secret
165167 var data map [string ][]byte
166168 var err error
167169 if repo .Spec .SecretRef != nil {
168- data , err = getSecretData (ctx , c , repo .Spec .SecretRef .Name , repo .GetNamespace ())
170+ authSecret , err = getSecret (ctx , c , repo .Spec .SecretRef .Name , repo .GetNamespace ())
169171 if err != nil {
170172 return nil , fmt .Errorf ("failed to get auth secret '%s/%s': %w" , repo .GetNamespace (), repo .Spec .SecretRef .Name , err )
171173 }
174+ data = authSecret .Data
172175 }
173176
174177 u , err := url .Parse (repo .Spec .URL )
@@ -181,13 +184,21 @@ func getAuthOpts(ctx context.Context, c client.Client, repo *sourcev1.GitReposit
181184 return nil , fmt .Errorf ("failed to configure authentication options: %w" , err )
182185 }
183186
184- if repo .GetProvider () == sourcev1 .GitProviderAzure {
187+ switch repo .GetProvider () {
188+ case sourcev1 .GitProviderAzure :
185189 opts .ProviderOpts = & git.ProviderOptions {
186190 Name : sourcev1 .GitProviderAzure ,
187191 AzureOpts : []azure.OptFunc {
188192 azure .WithAzureDevOpsScope (),
189193 },
190194 }
195+ case sourcev1 .GitProviderGitHub :
196+ opts .ProviderOpts = & git.ProviderOptions {
197+ Name : sourcev1 .GitProviderGitHub ,
198+ GitHubOpts : []github.OptFunc {
199+ github .WithSecret (authSecret ),
200+ },
201+ }
191202 }
192203
193204 return opts , nil
@@ -199,10 +210,11 @@ func getProxyOpts(ctx context.Context, c client.Client, repo *sourcev1.GitReposi
199210 }
200211 name := repo .Spec .ProxySecretRef .Name
201212 namespace := repo .GetNamespace ()
202- proxyData , err := getSecretData (ctx , c , name , namespace )
213+ proxySecret , err := getSecret (ctx , c , name , namespace )
203214 if err != nil {
204215 return nil , fmt .Errorf ("failed to get proxy secret '%s/%s': %w" , namespace , name , err )
205216 }
217+ proxyData := proxySecret .Data
206218 address , ok := proxyData ["address" ]
207219 if ! ok {
208220 return nil , fmt .Errorf ("invalid proxy secret '%s/%s': key 'address' is missing" , namespace , name )
@@ -218,11 +230,12 @@ func getProxyOpts(ctx context.Context, c client.Client, repo *sourcev1.GitReposi
218230
219231func getSigningEntity (ctx context.Context , c client.Client , namespace string , gitSpec * imagev1.GitSpec ) (* openpgp.Entity , error ) {
220232 secretName := gitSpec .Commit .SigningKey .SecretRef .Name
221- secretData , err := getSecretData (ctx , c , secretName , namespace )
233+ secret , err := getSecret (ctx , c , secretName , namespace )
222234 if err != nil {
223235 return nil , fmt .Errorf ("could not find signing key secret '%s': %w" , secretName , err )
224236 }
225237
238+ secretData := secret .Data
226239 data , ok := secretData [signingSecretKey ]
227240 if ! ok {
228241 return nil , fmt .Errorf ("signing key secret '%s' does not contain a 'git.asc' key" , secretName )
@@ -251,14 +264,14 @@ func getSigningEntity(ctx context.Context, c client.Client, namespace string, gi
251264 return entity , nil
252265}
253266
254- func getSecretData (ctx context.Context , c client.Client , name , namespace string ) (map [ string ][] byte , error ) {
267+ func getSecret (ctx context.Context , c client.Client , name , namespace string ) (corev1. Secret , error ) {
255268 key := types.NamespacedName {
256269 Namespace : namespace ,
257270 Name : name ,
258271 }
259272 var secret corev1.Secret
260273 if err := c .Get (ctx , key , & secret ); err != nil {
261- return nil , err
274+ return secret , err
262275 }
263- return secret . Data , nil
276+ return secret , nil
264277}
0 commit comments