-
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy path.triage-policies.yml
266 lines (234 loc) · 8.04 KB
/
.triage-policies.yml
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
---
# Here we define rules about our issue and merge requests triange.
# See https://gitlab.com/gitlab-org/gitlab-triage
resource_rules:
issues:
rules:
# Stale issues:
- name: Comment stale issues
conditions:
date:
attribute: updated_at
condition: older_than
interval_type: days
interval: 80
forbidden_labels:
- "validation:stale"
state: opened
actions:
labels:
- "validation:stale"
comment: |
This issue has been open for too long (since {{updated_at}}).
And is still not resolved. Maybe no one needs it?
It would be closed in 10 days automatically.
In case you really need this issue,
tell me so by writing "This is still on scope".
And remove ~"validation:stale" label.
In case it is ok to be closed, just do not touch it.
And it will be automatically closed. Or close it right way.
Thanks!
CC {{author}} {{assignees}}
- name: Close stale issues
conditions:
date:
attribute: updated_at
condition: older_than
interval_type: days
interval: 10
labels:
- "validation:stale"
state: opened
actions:
status: close
remove_labels:
- "validation:stale"
comment: |
Closed as stale. Create a new issue in case you will need this.
/unassign
/remove_milestone
/remove_estimate
/remove_due_date
/clear_weight
/lock
# Validation:
- name: Validate that all issues have labels
conditions:
labels:
- No label
state: opened
actions:
labels:
- "validation:labels"
comment: |
This issue is unlabeled.
Please, clarify it. CC {{author}}
Steps to clarify it.
1. Add proper label to it
2. Remove ~"validation:labels" label
- name: Validate that all issues have description
conditions:
state: opened
ruby: |
not resource["description"] or resource["description"] == ""
actions:
labels:
- "validation:invalid"
comment: |
This issue is invalid, since it does not have any description.
Open a new one.
# Estimates:
- name: Label issues without an estimate
conditions:
ruby: |
resource["time_stats"]["time_estimate"] == 0
forbidden_labels:
- "validation:estimate"
state: opened
actions:
labels:
- "validation:estimate"
comment: |
This issue is not estimated.
{{author}}, ping your architect to do it.
Then label ~"validation:estimate"
will be removed automatically for you.
- name: Unlabel issues with an estimate
conditions:
ruby: |
resource["time_stats"]["time_estimate"] != 0
labels:
- "validation:estimate"
state: opened
actions:
remove_labels:
- "validation:estimate"
# Deadlines:
- name: Mildly comment deadlines
conditions:
ruby: |
resource["due_date"] and DateTime.now + 7 >= resource["due_date"]
forbidden_labels:
- "deadline:soft"
- "deadline:hard"
- "deadline:miss"
state: opened
actions:
labels:
- "deadline:soft"
comment: |
The issue's deadline is coming. Better resolve it.
CC {{author}} {{assignees}}
- name: Strongly comment deadlines
conditions:
ruby: |
resource["due_date"] and DateTime.now + 3 >= resource["due_date"]
forbidden_labels:
- "deadline:hard"
- "deadline:miss"
state: opened
actions:
labels:
- "deadline:hard"
remove_labels:
- "deadline:soft"
comment: |
This issue is now on fire! :fire: Quick actions are required.
Global ping for all! {{author}} {{assignees}}
- name: Sadly comment missed deadlines
conditions:
ruby: |
resource["due_date"] and DateTime.now >= resource["due_date"]
forbidden_labels:
- "deadline:miss"
state: opened
actions:
labels:
- "deadline:miss"
remove_labels:
- "deadline:hard"
- "deadline:soft"
comment: |
The deadline was missed.
This incident will be reported to the stakeholders.
Status of this task needs to be discussed further.
Most likely, it still makes sense to finish it,
but it might be already useless.
# Invalid issues:
- name: Close invalid issues
conditions:
state: opened
labels:
- validation:invalid
actions:
status: close
comment: |
Hey, looks like your issue is invalid.
Please, make sure that your know
[how to work with issues](https://wemake.services/meta/rsdp/creating-issues/).
Create a new one if you have something to report / suggest.
In case you have any questions, please ask them in a new issue.
Label it as ~"documentation" and assign your architect.
/unassign
/remove_milestone
/remove_estimate
/remove_due_date
/clear_weight
/lock
merge_requests:
rules:
# Long merge requests and code reviews:
- name: Comment stale merge requests
conditions:
ruby: |
DateTime.now >= DateTime.parse(
resource["updated_at"]
) + (3.0 / 24) and not resource["work_in_progress"]
state: opened
forbidden_labels:
- "validation:stale"
actions:
labels:
- "validation:stale"
comment: |
Looks like this merge request is stale.
It was last updated at {{updated_at}}
Why no one is working on it?
How can this be resolved?
1. {{author}}, mark it a WIP if it has "Work in Progress" state.
Use `/wip` command to do that.
Then remove ~"validation:stale" label
2. Ping the reviewer to submit a review,
if there's one and it is a right time for that {{assignee}}
3. In case you cannot receive a single review
for more than two hours, ping your architect
4. Merge it if possible. Make sure to rebase it.
Or assign our merge bot (@kira\-bot) to rebase / merge it for you
5. Apply ~"validation:invalid" label in case it was created by a mistake
# Copy metadata from issue to merge request:
- name: Copy metadata from the original issue
conditions:
state: opened
labels:
- No Label
actions:
comment: |
/copy_metadata ##{resource["source_branch"][/issue-(\d+)/, 1]}
# Invalid merge requests:
- name: Close invalid merge requests
conditions:
state: opened
labels:
- validation:invalid
actions:
status: close
comment: |
Hey, looks like your merge request is invalid.
Please, make sure that your know
[how to work with merge requests](https://wemake.services/meta/rsdp/creating-merge-requests/).
Create a new one if you have something to submit.
In case you have any questions, please ask them in a new issue.
Label it as ~"documentation" and assign your architect.
/unassign
/remove_milestone
/lock