-
Notifications
You must be signed in to change notification settings - Fork 83
/
repository.go
95 lines (86 loc) · 2.63 KB
/
repository.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
package repository
import (
"time"
"github.com/jonboulle/clockwork"
"github.com/openshift-pipelines/pipelines-as-code/pkg/apis/pipelinesascode/v1alpha1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"knative.dev/pkg/apis/duck/v1beta1"
)
type RepoTestcreationOpts struct {
Name string
URL string
InstallNamespace string
SecretName string
WebhookSecretName string
ProviderURL string
CreateTime metav1.Time
RepoStatus []v1alpha1.RepositoryRunStatus
}
func NewRepo(opts RepoTestcreationOpts) *v1alpha1.Repository {
cw := clockwork.NewFakeClock()
if opts.RepoStatus == nil {
opts.RepoStatus = []v1alpha1.RepositoryRunStatus{
{
Status: v1beta1.Status{},
PipelineRunName: "pipelinerun5",
StartTime: &metav1.Time{Time: cw.Now().Add(-56 * time.Minute)},
CompletionTime: &metav1.Time{Time: cw.Now().Add(-55 * time.Minute)},
},
{
Status: v1beta1.Status{},
PipelineRunName: "pipelinerun4",
StartTime: &metav1.Time{Time: cw.Now().Add(-46 * time.Minute)},
CompletionTime: &metav1.Time{Time: cw.Now().Add(-45 * time.Minute)},
},
{
Status: v1beta1.Status{},
PipelineRunName: "pipelinerun3",
StartTime: &metav1.Time{Time: cw.Now().Add(-36 * time.Minute)},
CompletionTime: &metav1.Time{Time: cw.Now().Add(-35 * time.Minute)},
},
{
Status: v1beta1.Status{},
PipelineRunName: "pipelinerun2",
StartTime: &metav1.Time{Time: cw.Now().Add(-26 * time.Minute)},
CompletionTime: &metav1.Time{Time: cw.Now().Add(-25 * time.Minute)},
},
{
Status: v1beta1.Status{},
PipelineRunName: "pipelinerun1",
StartTime: &metav1.Time{Time: cw.Now().Add(-16 * time.Minute)},
CompletionTime: &metav1.Time{Time: cw.Now().Add(-15 * time.Minute)},
},
}
}
repo := &v1alpha1.Repository{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: opts.Name,
Namespace: opts.InstallNamespace,
CreationTimestamp: opts.CreateTime,
},
Spec: v1alpha1.RepositorySpec{
URL: opts.URL,
},
Status: opts.RepoStatus,
}
if opts.SecretName != "" || opts.ProviderURL != "" || opts.WebhookSecretName != "" {
repo.Spec.GitProvider = &v1alpha1.GitProvider{
Secret: &v1alpha1.Secret{},
}
}
if opts.SecretName != "" {
repo.Spec.GitProvider.Secret = &v1alpha1.Secret{
Name: opts.SecretName,
}
}
if opts.ProviderURL != "" {
repo.Spec.GitProvider.URL = opts.ProviderURL
}
if opts.WebhookSecretName != "" {
repo.Spec.GitProvider.WebhookSecret = &v1alpha1.Secret{
Name: opts.WebhookSecretName,
}
}
return repo
}