Skip to content

Commit

Permalink
feat: add BaseGitStatus methods & const for git file
Browse files Browse the repository at this point in the history
Signed-off-by: jzli <[email protected]>
  • Loading branch information
jzli committed Dec 6, 2023
1 parent 8c2c1a2 commit 72e094f
Show file tree
Hide file tree
Showing 3 changed files with 84 additions and 0 deletions.
28 changes: 28 additions & 0 deletions apis/meta/v1alpha1/buildmetadata_funcs.go
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,34 @@ func (b *BaseGitStatus) GetValWithKey(ctx context.Context, path *field.Path) map
return stringReplacements
}

// IsPR returns true if GitStatus is a pull request
func (b *BaseGitStatus) IsPR() bool {
return b.PullRequest != nil && b.PullRequest.ID != ""
}

// Init initializes the zero BaseGitStatus
func (b *BaseGitStatus) Init() *BaseGitStatus {
if b == nil {
b = &BaseGitStatus{}
}
if b.Revision == nil {
b.Revision = &GitRevision{}
}
if b.LastCommit == nil {
b.LastCommit = &BuildGitCommitStatus{}
}
if b.PullRequest == nil {
b.PullRequest = &BuildGitPullRequestStatus{}
}
if b.Branch == nil {
b.Branch = &BuildGitBranchStatus{}
}
if b.Target == nil {
b.Target = &BuildGitBranchStatus{}
}
return b
}

func (b *BuildRunGitStatus) GetValWithKey(ctx context.Context, path *field.Path) map[string]string {
if b == nil {
b = &BuildRunGitStatus{}
Expand Down
53 changes: 53 additions & 0 deletions apis/meta/v1alpha1/buildmetadata_funcs_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,3 +120,56 @@ var _ = Describe("Test.BuildRunGitStatus.GetValWithKey", func() {
})

})

var _ = Describe("Test.BaseGitStatus", func() {
Context("Init", func() {
It("should initialize a nil BaseGitStatus", func() {
var baseGitStatus *BaseGitStatus
baseGitStatus = baseGitStatus.Init()
Expect(baseGitStatus).ToNot(BeNil())
Expect(baseGitStatus.Revision).ToNot(BeNil())
Expect(baseGitStatus.LastCommit).ToNot(BeNil())
Expect(baseGitStatus.PullRequest).ToNot(BeNil())
Expect(baseGitStatus.Branch).ToNot(BeNil())
Expect(baseGitStatus.Target).ToNot(BeNil())
})

It("should initialize a non-nil BaseGitStatus", func() {
baseGitStatus := &BaseGitStatus{}
baseGitStatus = baseGitStatus.Init()
Expect(baseGitStatus).ToNot(BeNil())
Expect(baseGitStatus.Revision).ToNot(BeNil())
Expect(baseGitStatus.LastCommit).ToNot(BeNil())
Expect(baseGitStatus.PullRequest).ToNot(BeNil())
Expect(baseGitStatus.Branch).ToNot(BeNil())
Expect(baseGitStatus.Target).ToNot(BeNil())
})
})

Context("IsPR", func() {
It("should return true if GitStatus is a pull request", func() {
baseGitStatus := &BaseGitStatus{
PullRequest: &BuildGitPullRequestStatus{
ID: "123",
},
}
Expect(baseGitStatus.IsPR()).To(BeTrue())
})

It("should return false if GitStatus is not a pull request", func() {
baseGitStatus := &BaseGitStatus{
PullRequest: nil,
}
Expect(baseGitStatus.IsPR()).To(BeFalse())
})

It("should return false if GitStatus is a pull request but ID is empty", func() {
baseGitStatus := &BaseGitStatus{
PullRequest: &BuildGitPullRequestStatus{
ID: "",
},
}
Expect(baseGitStatus.IsPR()).To(BeFalse())
})
})
})
3 changes: 3 additions & 0 deletions apis/meta/v1alpha1/gitbase_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,9 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

// DefaultGitFilePath default git file path
const DefaultGitFilePath = ".git/katanomi.git.json"

// GitUserBaseInfo user base info
type GitUserBaseInfo struct {
// Name is the login Name
Expand Down

0 comments on commit 72e094f

Please sign in to comment.