-
Notifications
You must be signed in to change notification settings - Fork 176
/
.repoman.yml
175 lines (135 loc) · 5.57 KB
/
.repoman.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
revision: 4
schema-version: 5
owner-ms-alias: adegeo
config:
DocMetadata:
Headers:
- ["---", "#### "]
ParserRegex: "^\\* (.*): (.*)$"
ContentUrlRegex:
- "### Page URL\n\n(.*)"
issues:
unlabeled: "labeled"
labeled:
# Temporary label to mark issues as updated for Quest. The label is instantly removed
- check:
- type: query
value: "length(Issue.Labels[?Name == ':world_map: mapQUEST']) != `0`"
pass:
- labels-remove: [":world_map: mapQUEST"]
# Handle issues with /svc /subsvc labels from label bot
- check:
- type: query
value: "length(Issue.Labels[?contains(Name, '/svc') || contains(Name, '/subsvc')]) != `0`"
# If the issue has a /svc or /subsvc label, it must be categorized otherwise it's considered untriaged
pass:
- check:
- type: query
value: "length(Issue.Labels[?Name == ':pushpin: seQUESTered' || Name == ':world_map: reQUEST' || Name == 'training-module' || Name == 'doc-enhancement' || Name == 'product-question' || Name == 'in-progress' || Name == 'test-issue' || Name == 'kudos' || Name == 'loc' || Name == 'doc-bug' || Name == 'product-feedback' || Name == 'code-of-conduct' || Name == 'support-request' || Name == 'duplicate' || Name == 'resolved-by-customer' || Name == 'docs-experience' || Name == 'doc-provided' || Name == 'doc-idea' || Name == 'needs-more-info']) != `0`"
pass:
- labels-remove: [":watch: Not Triaged"]
fail:
- labels-add: [":watch: Not Triaged"]
# Not an doc issue specifically
fail:
# If the issue is open, then we'll allow some further processing on it. If it's closed, ignore it and let the user do what they want.
- check:
- type: query
value: "Issue.State.StringValue == 'open'"
pass:
- check:
- type: query
value: "length(Issue.Labels[?Name == ':pushpin: seQUESTered' || Name == ':world_map: reQUEST' || Name == 'training-module' || Name == 'video-content'] || Name == 'test-issue') != `0`"
pass:
- labels-remove: [":watch: Not Triaged"]
fail:
- labels-add: [":watch: Not Triaged"]
# Checks for binary/source incompatible checkboxes and adds a label
- check:
- type: query
value: "contains(InstanceData.IssuePrBody, '- [x] **Binary incompatible**') == `true` || contains(InstanceData.IssuePrBody, '- [X] **Binary incompatible**') == `true`"
pass:
- labels-add: ["binary incompatible"]
- check:
- type: query
value: "contains(InstanceData.IssuePrBody, '- [x] **Source incompatible**') == `true` || contains(InstanceData.IssuePrBody, '- [X] **Source incompatible**') == `true`"
pass:
- labels-add: ["source incompatible"]
opened:
# New issue opened, add Not Triaged
- labels-add: [":watch: Not Triaged"]
# Dependabot opened issue, label it
- check:
- type: query
value: "Issue.User.Login == 'dependabot'"
pass:
- labels-add: ["dependencies"]
# Try to detect an empty issue
- check:
- type: comment-body
value: "### Description[\\n\\r]+\\[Enter feedback here\\][\\n\\r]+###"
pass:
- labels-add: ["needs-more-info"]
- labels-remove: [":watch: Not Triaged"]
- close
# Add links to related issues if it's a doc issue
- check:
- type: metadata-exists
- type: variable-exists
name: "document_version_independent_id"
pass:
- link-related-issues
reopened:
# Remove won't fix label
- labels-remove: ["won't fix"]
closed:
# Issue closed, remove in-progress and not triaged labels
- labels-remove: ["in-progress", ":watch: Not Triaged"]
# Check if the issue was closed by the user who opened it
- check:
- type: query
value: "Issue.User.Id == EventPayload.sender.id"
pass:
- labels-add: ["resolved-by-customer"]
- labels-remove: [":watch: Not Triaged"]
pull_request:
reopened: opened
opened:
# Set default sprint for new PRs
- milestone-set: "![sprint]"
- check:
- type: query
value: "PullRequest.Base.Ref != 'live'"
pass:
- files-changed:
- path: "(?i).*dotnet-desktop-guide\/framework\/wpf.*"
run:
- labels-add: ["dotnet-framework/svc", "wpf/subsvc"]
- path: "(?i).*dotnet-desktop-guide\/framework\/winforms.*"
run:
- labels-add: ["dotnet-framework/svc", "winforms/subsvc"]
- path: "(?i).*dotnet-desktop-guide\/net\/wpf.*"
run:
- labels-add: ["dotnet-desktop/svc", "wpf/subsvc"]
- path: "(?i).*dotnet-desktop-guide\/net\/winforms.*"
run:
- labels-add: ["dotnet-desktop/svc", "winforms/subsvc"]
projects_v2_item:
reordered:
- labels-add: [":world_map: mapQUEST"]
edited:
- check:
- type: query
value: "EventPayload.changes.field_value.field_name == 'Priority' || EventPayload.changes.field_value.field_name == 'Size'"
pass:
- labels-add: [":world_map: mapQUEST"]
issue_comment:
created:
# someone creates a comment with #please-review in it, add changes-addressed label
- check:
- type: query
value: "Issue.State.StringValue == 'open' && Issue.User.Id == Comment.User.Id"
- type: comment-body
value: ^#please-review$
pass:
- labels-add: ["changes-addressed"]