blob: 1dfcc84b50e31b904a6e1d64f7f0d797900cd922 [file] [log] [blame]
Justin Woodbc0bd6f2020-06-18 13:30:47 -07001version: 3
2
Justin Woodf7b88a12020-06-19 11:56:57 -07003# https://developer.github.com/v3/previews/#draft-pull-requests
Justin Wood4fa42112020-06-19 11:25:14 -07004github_api_version: "shadow-cat-preview"
5
6############################################################
Justin Wood8839e4c2021-10-22 17:27:05 -07007# Overrides
Justin Wood4fa42112020-06-19 11:25:14 -07008############################################################
9
Justin Wood8839e4c2021-10-22 17:27:05 -070010overrides:
11 - if: "'hotfix' in labels"
12 status: success
13 explanation: "Hotfix label added, bypassing reviews"
Justin Wood06747fd2020-07-01 11:36:15 -070014
15 ############################################################
Justin Wood4fa42112020-06-19 11:25:14 -070016 # Draft PRs
17 ############################################################
Justin Wood8839e4c2021-10-22 17:27:05 -070018 - if: "draft or 'WIP' in title"
19 status: pending
20 explanation: "PR is draft, pending review"
21 - if: "draft"
22 status: pending
23 explanation: "PR is draft, pending review"
Justin Wood4fa42112020-06-19 11:25:14 -070024
Justin Wood8839e4c2021-10-22 17:27:05 -070025 ############################################################
26 # License Checks
27 ############################################################
28 - if: "'*license/cla*' not in statuses.successful"
29 status: pending
30 explanation: "CLA must be agreed to by all contributors"
Justin Wood4fa42112020-06-19 11:25:14 -070031
32 ############################################################
33 # Conditions to Skip Review
34 ############################################################
Justin Wood8839e4c2021-10-22 17:27:05 -070035 - if: "base.ref != 'master'"
36 status: success
Justin Wood4fa42112020-06-19 11:25:14 -070037 explanation: "Review not required unless merging to master"
38
39 ############################################################
Justin Woode7c4cd32021-02-02 19:25:23 -080040 # Required status checks
41 ############################################################
Justin Woode4d37202022-08-09 14:01:16 -070042 - if: "'*restyle*' not in statuses.successful"
43 status: failure
44 explanation: "Style must be inline before reviewing can be complete"
Justin Woode7c4cd32021-02-02 19:25:23 -080045
Justin Wood8839e4c2021-10-22 17:27:05 -070046 ############################################################
Justin Woodb4505ac2022-09-07 13:29:32 -070047 # Require Issues
48 ############################################################
Justin Wooda93c7c92023-07-07 14:24:31 -070049 # disabling until we have PRs up to date
50 # - if: "'*issue*' not in statuses.successful"
51 # status: failure
52 # explanation: "An issue is required for all PRs"
Justin Woodb4505ac2022-09-07 13:29:32 -070053
54 ############################################################
Justin Wood8839e4c2021-10-22 17:27:05 -070055 # Fast tracking
56 ############################################################
57 - if: "'fast track' in labels"
58 status: success
59 explanation: "PR has been fast tracked, bypassing reviews"
60
Justin Wood4fa42112020-06-19 11:25:14 -070061############################################################
62# Notifications
63############################################################
64
65notifications:
66 ############################################################
67 # New contributors
68 ############################################################
69 - when: pull_request.opened
70 if: "author_association == 'FIRST_TIME_CONTRIBUTOR'"
71 comment: |
72 Hey @{{ author }}, thanks for the PR! The review will start once
73 the tests and CI checks have passed. If they don't, please review
74 the logs and try to fix the issues (ask for help if you can't
75 figure it out). A reviewer will be assigned once the tests are
76 passing and they'll walk you through getting the PR finished
77 and merged.
78
Justin Woodbc0bd6f2020-06-18 13:30:47 -070079groups:
80 ############################################################
Justin Wood61060a82020-07-21 10:31:53 -070081 # Shared Reviewer Groups
82 ############################################################
83 shared-reviewers-amazon:
84 type: optional
85 conditions:
86 - files.include('*')
87 reviewers:
88 teams: [reviewers-amazon]
Rob Walker856636e2020-09-25 14:27:04 -070089 reviews:
Justin Wood33799832021-09-15 17:57:46 -070090 request: 10
Justin Wood61060a82020-07-21 10:31:53 -070091 shared-reviewers-apple:
92 type: optional
93 conditions:
94 - files.include('*')
95 reviewers:
96 teams: [reviewers-apple]
Rob Walker856636e2020-09-25 14:27:04 -070097 reviews:
Justin Wood33799832021-09-15 17:57:46 -070098 request: 10
Justin Wooda93c7c92023-07-07 14:24:31 -070099 shared-reviewers-bosch:
100 type: optional
101 conditions:
102 - files.include('*')
103 reviewers:
104 teams: [reviewers-bosch]
105 reviews:
106 request: 10
Justin Wood61060a82020-07-21 10:31:53 -0700107 shared-reviewers-comcast:
108 type: optional
109 conditions:
110 - files.include('*')
111 reviewers:
112 teams: [reviewers-comcast]
Rob Walker856636e2020-09-25 14:27:04 -0700113 reviews:
Justin Wood33799832021-09-15 17:57:46 -0700114 request: 10
Justin Wooda93c7c92023-07-07 14:24:31 -0700115 shared-reviewers-dyson:
116 type: optional
117 conditions:
118 - files.include('*')
119 reviewers:
120 teams: [reviewers-dyson]
121 reviews:
122 request: 10
Justin Woodae2d16a2021-12-09 11:33:18 -0800123 shared-reviewers-espressif:
124 type: optional
125 conditions:
126 - files.include('*')
127 reviewers:
128 teams: [reviewers-espressif]
129 reviews:
130 request: 10
Justin Wood61060a82020-07-21 10:31:53 -0700131 shared-reviewers-google:
132 type: optional
133 conditions:
134 - files.include('*')
135 reviewers:
136 teams: [reviewers-google]
Rob Walker856636e2020-09-25 14:27:04 -0700137 reviews:
Justin Wood33799832021-09-15 17:57:46 -0700138 request: 10
Justin Wooda93c7c92023-07-07 14:24:31 -0700139 shared-reviewers-irobot:
140 type: optional
141 conditions:
142 - files.include('*')
143 reviewers:
144 teams: [reviewers-irobot]
145 reviews:
146 request: 10
Justin Woodae2d16a2021-12-09 11:33:18 -0800147 shared-reviewers-lg:
148 type: optional
149 conditions:
150 - files.include('*')
151 reviewers:
152 teams: [reviewers-lg]
153 reviews:
154 request: 10
Justin Wood9e225ac2023-07-20 17:21:36 -0700155 shared-reviewers-logitech:
156 type: optional
157 conditions:
158 - files.include('*')
159 reviewers:
160 teams: [reviewers-logitech]
161 reviews:
Justin Wood6f2f5862023-07-21 09:06:23 -0700162 request: 0 # Requested to be only on demand
Justin Wood4e87eb82021-03-09 14:52:30 -0800163 shared-reviewers-nordic:
164 type: optional
165 conditions:
166 - files.include('*')
167 reviewers:
168 teams: [reviewers-nordic]
169 reviews:
Justin Wood33799832021-09-15 17:57:46 -0700170 request: 10
Justin Wood61060a82020-07-21 10:31:53 -0700171 shared-reviewers-samsung:
172 type: optional
173 conditions:
174 - files.include('*')
175 reviewers:
176 teams: [reviewers-samsung]
Rob Walker856636e2020-09-25 14:27:04 -0700177 reviews:
Justin Wood33799832021-09-15 17:57:46 -0700178 request: 10
Boris Zbarsky805cf4a2023-03-10 18:59:14 -0500179 # shared-reviewers-signify disabled for now, because the reviewers-signify
180 # team is empty and pullapprove seems to mis-handle that badly and treats
181 # _all_ reviewers as being in this group.
182 #
183 # See https://github.com/dropseed/pullapprove/issues/71
184 #
185 # shared-reviewers-signify:
186 # type: optional
187 # conditions:
188 # - files.include('*')
189 # reviewers:
190 # teams: [reviewers-signify]
191 # reviews:
192 # request: 10
Justin Wood4e87eb82021-03-09 14:52:30 -0800193 shared-reviewers-silabs:
194 type: optional
195 conditions:
196 - files.include('*')
197 reviewers:
198 teams: [reviewers-silabs]
199 reviews:
Justin Wood33799832021-09-15 17:57:46 -0700200 request: 10
Andrei Litvin5b657d12023-01-19 09:31:11 -0500201 shared-reviewers-somfy:
202 type: optional
203 conditions:
204 - files.include('*')
205 reviewers:
206 teams: [reviewers-somfy]
207 reviews:
208 request: 10
Justin Woodae2d16a2021-12-09 11:33:18 -0800209 shared-reviewers-tcl:
210 type: optional
211 conditions:
212 - files.include('*')
213 reviewers:
214 teams: [reviewers-tcl]
215 reviews:
Andrei Litvine1cb26c2023-01-18 11:12:09 -0500216 request: 10
Justin Wooda93c7c92023-07-07 14:24:31 -0700217 shared-reviewers-qorvo:
218 type: optional
219 conditions:
220 - files.include('*')
221 reviewers:
222 teams: [reviewers-qorvo]
223 reviews:
224 request: 10
Justin Wood61060a82020-07-21 10:31:53 -0700225
226 ############################################################
Justin Woodbc0bd6f2020-06-18 13:30:47 -0700227 # Base Required Reviewers
228 ############################################################
229 required-reviewers:
Justin Woodb02d5172020-06-19 12:00:56 -0700230 description: >
231 [Required
232 Reviewers](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#review-requirements)
Justin Wooda2c0c6f2020-06-19 12:03:41 -0700233 This is the main group of required reviews for general pull
234 requests.
Justin Woodbc0bd6f2020-06-18 13:30:47 -0700235 type: required
Justin Wood61060a82020-07-21 10:31:53 -0700236 requirements:
Justin Wood566402a2022-02-07 12:20:23 -0800237 - len(groups.approved.include('shared-reviewers-*')) >= 2
Justin Woodbc0bd6f2020-06-18 13:30:47 -0700238 reviews:
Justin Wood61060a82020-07-21 10:31:53 -0700239 required: 0
Justin Wood2d579dd2021-05-17 18:18:33 -0700240 labels:
241 approved: "review - approved"
242 pending: "review - pending"
243 rejected: "review - changed requested"