mirror of https://github.com/fluxcd/flux2.git
				
				
				
			Add gpg key path and passphrase as args
Signed-off-by: Somtochi Onyekwere <somtochionyekwere@gmail.com>pull/1854/head
							parent
							
								
									b9ceceada4
								
							
						
					
					
						commit
						0beab87f5b
					
				| @ -0,0 +1,37 @@ | ||||
| package git | ||||
| 
 | ||||
| // Option is a some configuration that modifies options for a commit.
 | ||||
| type Option interface { | ||||
| 	// ApplyToCommit applies this configuration to a given commit option.
 | ||||
| 	ApplyToCommit(*CommitOptions) | ||||
| } | ||||
| 
 | ||||
| // CommitOptions contains options for making a commit.
 | ||||
| type CommitOptions struct { | ||||
| 	*GPGSigningInfo | ||||
| } | ||||
| 
 | ||||
| // GPGSigningInfo contains information for signing a commit.
 | ||||
| type GPGSigningInfo struct { | ||||
| 	PrivateKeyPath string | ||||
| 	Passphrase     string | ||||
| 	KeyID          string | ||||
| } | ||||
| 
 | ||||
| type GpgSigningOption struct { | ||||
| 	*GPGSigningInfo | ||||
| } | ||||
| 
 | ||||
| func (w GpgSigningOption) ApplyToCommit(in *CommitOptions) { | ||||
| 	in.GPGSigningInfo = w.GPGSigningInfo | ||||
| } | ||||
| 
 | ||||
| func WithGpgSigningOption(path, passphrase, keyID string) Option { | ||||
| 	return GpgSigningOption{ | ||||
| 		GPGSigningInfo: &GPGSigningInfo{ | ||||
| 			PrivateKeyPath: path, | ||||
| 			Passphrase:     passphrase, | ||||
| 			KeyID:          keyID, | ||||
| 		}, | ||||
| 	} | ||||
| } | ||||
| @ -0,0 +1,66 @@ | ||||
| // +build unit
 | ||||
| 
 | ||||
| package gogit | ||||
| 
 | ||||
| import ( | ||||
| 	"testing" | ||||
| 
 | ||||
| 	"github.com/fluxcd/flux2/internal/bootstrap/git" | ||||
| ) | ||||
| 
 | ||||
| func TestGetOpenPgpEntity(t *testing.T) { | ||||
| 	tests := []struct { | ||||
| 		name       string | ||||
| 		keyPath    string | ||||
| 		passphrase string | ||||
| 		id         string | ||||
| 		expectErr  bool | ||||
| 	}{ | ||||
| 		{ | ||||
| 			name:       "no default key id given", | ||||
| 			keyPath:    "testdata/private.key", | ||||
| 			passphrase: "flux", | ||||
| 			id:         "", | ||||
| 			expectErr:  false, | ||||
| 		}, | ||||
| 		{ | ||||
| 			name:       "key id given", | ||||
| 			keyPath:    "testdata/private.key", | ||||
| 			passphrase: "flux", | ||||
| 			id:         "0619327DBD777415", | ||||
| 			expectErr:  false, | ||||
| 		}, | ||||
| 		{ | ||||
| 			name:       "wrong key id", | ||||
| 			keyPath:    "testdata/private.key", | ||||
| 			passphrase: "flux", | ||||
| 			id:         "0619327DBD777416", | ||||
| 			expectErr:  true, | ||||
| 		}, | ||||
| 		{ | ||||
| 			name:       "wrong password", | ||||
| 			keyPath:    "testdata/private.key", | ||||
| 			passphrase: "fluxe", | ||||
| 			id:         "0619327DBD777415", | ||||
| 			expectErr:  true, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	for _, tt := range tests { | ||||
| 		t.Run(tt.name, func(t *testing.T) { | ||||
| 			gpgInfo := git.GPGSigningInfo{ | ||||
| 				PrivateKeyPath: tt.keyPath, | ||||
| 				Passphrase:     tt.passphrase, | ||||
| 				KeyID:          tt.id, | ||||
| 			} | ||||
| 
 | ||||
| 			_, err := getOpenPgpEntity(gpgInfo) | ||||
| 			if err != nil && !tt.expectErr { | ||||
| 				t.Errorf("unexpected error: %s", err) | ||||
| 			} | ||||
| 			if err == nil && tt.expectErr { | ||||
| 				t.Errorf("expected error when %s", tt.name) | ||||
| 			} | ||||
| 		}) | ||||
| 	} | ||||
| } | ||||
											
												Binary file not shown.
											
										
									
								
					Loading…
					
					
				
		Reference in New Issue