@@ -62,7 +62,10 @@ func (prr *PRRApproval) ApproverForStage(stage Stage) (string, error) {
62
62
return "" , err
63
63
}
64
64
65
- if prr .Alpha == nil && prr .Beta == nil && prr .Stable == nil {
65
+ // KEPs are usually of 2 types:
66
+ // 1. Features that go through Alpha->Beta->Stable
67
+ // 2. Removals that go through Deprecated->Disabled->Removed
68
+ if prr .Alpha == nil && prr .Beta == nil && prr .Stable == nil && prr .Deprecated == nil && prr .Disabled == nil && prr .Removed == nil {
66
69
return "" , ErrPRRMilestonesAllEmpty
67
70
}
68
71
@@ -71,20 +74,37 @@ func (prr *PRRApproval) ApproverForStage(stage Stage) (string, error) {
71
74
if prr .Alpha == nil {
72
75
return "" , ErrPRRMilestoneIsNil
73
76
}
74
-
75
77
return prr .Alpha .Approver , nil
78
+
76
79
case BetaStage :
77
80
if prr .Beta == nil {
78
81
return "" , ErrPRRMilestoneIsNil
79
82
}
80
-
81
83
return prr .Beta .Approver , nil
84
+
82
85
case StableStage :
83
86
if prr .Stable == nil {
84
87
return "" , ErrPRRMilestoneIsNil
85
88
}
86
-
87
89
return prr .Stable .Approver , nil
90
+
91
+ case Deprecated :
92
+ if prr .Deprecated == nil {
93
+ return "" , ErrPRRMilestoneIsNil
94
+ }
95
+ return prr .Deprecated .Approver , nil
96
+
97
+ case Disabled :
98
+ if prr .Disabled == nil {
99
+ return "" , ErrPRRMilestoneIsNil
100
+ }
101
+ return prr .Disabled .Approver , nil
102
+
103
+ case Removed :
104
+ if prr .Removed == nil {
105
+ return "" , ErrPRRMilestoneIsNil
106
+ }
107
+ return prr .Removed .Approver , nil
88
108
}
89
109
90
110
return "" , ErrPRRApproverUnknown
0 commit comments