Skip to content

Commit 9dc4f04

Browse files
committed
api: validate status and stage
1 parent c9dc769 commit 9dc4f04

File tree

7 files changed

+54
-43
lines changed

7 files changed

+54
-43
lines changed

api/proposal.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,12 @@ func (k *KEPHandler) Validate(p *Proposal) []error {
259259
if errs := k.validatePRRApprovers(p); errs != nil {
260260
allErrs = append(allErrs, errs...)
261261
}
262+
if err := p.Status.IsValid(); err != nil {
263+
allErrs = append(allErrs, err)
264+
}
265+
if err := p.Stage.IsValid(); err != nil {
266+
allErrs = append(allErrs, err)
267+
}
262268
return allErrs
263269
}
264270

pkg/repo/repo_test.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,20 @@ func TestProposalValidate(t *testing.T) {
9494
fmt.Errorf("invalid prr-approver: not-a-prr-approver"),
9595
},
9696
},
97+
{
98+
name: "invalid KEP: status does not exist",
99+
file: "testdata/invalid-status.yaml",
100+
errs: []error{
101+
fmt.Errorf("invalid status: monkeys, should be one of %v", api.ValidStatuses),
102+
},
103+
},
104+
{
105+
name: "invalid KEP: stage does not exist",
106+
file: "testdata/invalid-stage.yaml",
107+
errs: []error{
108+
fmt.Errorf("invalid stage: monkeys, should be one of %v", api.ValidStages),
109+
},
110+
},
97111
}
98112

99113
parser := api.KEPHandler{}
Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,10 @@
1-
title: Hierarchical Namespace Controller As A Subproject
2-
kep-number: 1687
1+
title: does-not-matter
2+
kep-number: 1234
33
authors:
4-
- "@rjbez17"
5-
- "@adrianludwin"
4+
- "@alice"
5+
- "@beth"
66
owning-sig: not-a-sig
7-
participating-sigs:
8-
- sig-auth
9-
reviewers:
10-
- "TBD"
117
approvers:
12-
- "@mikedanese"
13-
- "@deads2k"
14-
- "@liggitt"
15-
creation-date: 2020-04-14
16-
last-updated: 2020-04-15
17-
stage: "alpha"
8+
- "@dorothy"
189
status: provisional
10+
stage: beta
Lines changed: 8 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,12 @@
1-
title: Hierarchical Namespace Controller As A Subproject
2-
kep-number: 1687
1+
title: whatever
2+
kep-number: 4321
33
authors:
4-
- "@rjbez17"
5-
- "@adrianludwin"
6-
owning-sig: sig-architecture
7-
participating-sigs:
8-
- sig-auth
9-
reviewers:
10-
- "TBD"
11-
approvers:
12-
- "@mikedanese"
13-
- "@deads2k"
14-
- "@liggitt"
4+
- "@alice"
5+
- "@beth"
6+
owning-sig: sig-api-machinery
157
prr-approvers:
168
- not-a-prr-approver
17-
creation-date: 2020-04-14
18-
last-updated: 2020-04-15
19-
stage: "alpha"
9+
approvers:
10+
- "@dorothy"
2011
status: provisional
12+
stage: beta

pkg/repo/testdata/invalid-stage.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
title: i like monkeys
2+
kep-number: 2345
3+
authors:
4+
- "@alice"
5+
- "@beth"
6+
owning-sig: sig-api-machinery
7+
approvers:
8+
- "@dorothy"
9+
status: provisional
10+
stage: monkeys

pkg/repo/testdata/invalid-status.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
title: i like monkeys
2+
kep-number: 2345
3+
authors:
4+
- "@alice"
5+
- "@beth"
6+
owning-sig: sig-api-machinery
7+
approvers:
8+
- "@dorothy"
9+
status: monkeys
10+
stage: beta

pkg/repo/testdata/valid-kep-minimum.yaml

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,7 @@ authors:
44
- "@alice"
55
- "@beth"
66
owning-sig: sig-api-machinery
7-
participating-sigs:
8-
- sig-api-machinery
9-
- sig-architecture
10-
reviewers:
11-
- "@carol"
127
approvers:
138
- "@dorothy"
14-
creation-date: 2018-04-15
15-
last-updated: 2018-04-24
169
status: provisional
17-
1810
stage: beta
19-
latest-milestone: "v1.19"
20-
milestone:
21-
alpha: "v1.19"
22-
beta: "v1.20"
23-
stable: "v1.22"

0 commit comments

Comments
 (0)