From 5e634fcdbbaeecd6baf1efb804bcb15dccc906eb Mon Sep 17 00:00:00 2001 From: Hidde Beydals Date: Fri, 30 Jul 2021 12:47:30 +0200 Subject: [PATCH] Introduce `fake` Git implementation At present it only implements a fake commit, which for example can be used to test commit verification logic. Signed-off-by: Hidde Beydals --- pkg/git/fake/commit.go | 46 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 pkg/git/fake/commit.go diff --git a/pkg/git/fake/commit.go b/pkg/git/fake/commit.go new file mode 100644 index 00000000..60a9b5c0 --- /dev/null +++ b/pkg/git/fake/commit.go @@ -0,0 +1,46 @@ +/* +Copyright 2021 The Flux authors + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package fake + +import ( + "errors" + + corev1 "k8s.io/api/core/v1" +) + +type Commit struct { + valid bool + hash string +} + +func NewCommit(valid bool, hash string) Commit { + return Commit{ + valid: valid, + hash: hash, + } +} + +func (c Commit) Verify(secret corev1.Secret) error { + if !c.valid { + return errors.New("invalid signature") + } + return nil +} + +func (c Commit) Hash() string { + return c.hash +}