xref: /curl/.github/labeler.yml (revision 8eb98331)
1# Copyright (C) Daniel Fandrich, <dan@coneharvesters.com>, et al.
2#
3# SPDX-License-Identifier: curl
4
5# The workflow configures the .github/workflows/label.yml action
6# to add labels to pull requests. This is not (yet?) a replacement for human
7# triaging, but is intended to add labels to the easy cases. If the matching
8# language becomes more powerful, more cases should be able to be handled.
9#
10# Labels are added in two ways: the any-glob-to-all-files ones are added if all
11# the files fit into the category, and the any-glob-to-any-file ones are added
12# as long as any file matches. The first ones are for "major" categories (the
13# PR is all about that one topic, like HTTP/3), while the second ones are
14# "addendums" that give useful information about a PR that's really mostly
15# something else (e.g. CI if the PR also touches CI jobs).
16#
17# N.B. any-glob-to-all-files is misnamed; it acts like one-glob-to-all-files.
18# Therefore, to get any-glob-to-all-files semantics with multiple matching
19# patterns, they must be joined with commas to a single string surrounded by
20# braces. For example: '{lib/**,src/**}'.
21#
22# See https://github.com/actions/labeler/ for documentation on this file.
23---
24
25appleOS:
26  - all:
27      - changed-files:
28          - any-glob-to-all-files: "{\
29              .github/workflows/macos.yml,\
30              lib/config-mac.h,\
31              lib/macos*,\
32              lib/vtls/sectransp*,\
33              m4/curl-sectransp.m4\
34              }"
35
36authentication:
37  - all:
38      - changed-files:
39          - any-glob-to-all-files: "{\
40              docs/mk-ca-bundle.1,\
41              docs/libcurl/opts/CURLINFO_HTTPAUTH*,\
42              docs/libcurl/opts/CURLINFO_PROXYAUTH*,\
43              docs/libcurl/opts/CURLOPT_KRB*,\
44              docs/libcurl/opts/CURLOPT_SASL*,\
45              docs/libcurl/opts/CURLOPT_SERVICE_NAME*,\
46              docs/libcurl/opts/CURLOPT_USERNAME*,\
47              docs/libcurl/opts/CURLOPT_USERPWD*,\
48              docs/libcurl/opts/CURLOPT_XOAUTH*,\
49              lib/*gssapi*,\
50              lib/*krb5*,\
51              lib/*ntlm*,\
52              lib/curl_sasl.*,\
53              lib/http_aws*,\
54              lib/http_digest.*,\
55              lib/http_negotiate.*,\
56              lib/vauth/**\
57              }"
58
59build:
60  - all:
61      - changed-files:
62          - any-glob-to-all-files: "{\
63              **/CMakeLists.txt,\
64              **/Makefile.am,\
65              **/Makefile.inc,\
66              **/Makefile.mk,\
67              **/*.m4,\
68              **/*.mk,\
69              *.m4,\
70              docs/INSTALL.cmake,\
71              lib/curl_config.h.cmake,\
72              lib/libcurl*.in,\
73              CMake/**,\
74              CMakeLists.txt,\
75              configure.ac,\
76              m4/**,\
77              Makefile.*,\
78              packages/**,\
79              plan9/**,\
80              projects/**,\
81              winbuild/**,\
82              lib/libcurl.def\
83              }"
84
85CI:
86  - all:
87      - changed-files:
88          - any-glob-to-any-file:
89              - '.circleci/**'
90              - '.github/**'
91              - 'appveyor.*'
92              - 'scripts/ci*'
93              - 'tests/azure.pm'
94              - 'tests/appveyor.pm'
95              - 'tests/CI.md'
96
97cmake:
98  - all:
99      - changed-files:
100          - any-glob-to-all-files: "{\
101              **/CMakeLists.txt,\
102              CMake/**,\
103              docs/INSTALL.cmake,\
104              lib/curl_config.h.cmake\
105              }"
106
107cmdline tool:
108  - all:
109      - changed-files:
110          - any-glob-to-any-file:
111              - 'docs/cmdline-opts/**'
112              - 'src/**'
113
114connecting & proxies:
115  - all:
116      - changed-files:
117          - any-glob-to-all-files: "{\
118              docs/internals/CONNECTION-FILTERS.md,\
119              docs/examples/ipv6.c,\
120              docs/libcurl/opts/CURLINFO_CONNECT*,\
121              docs/libcurl/opts/CURLINFO_PROXY*,\
122              docs/libcurl/opts/CURLOPT_ADDRESS*,\
123              docs/libcurl/opts/CURLOPT_CONNECT*,\
124              docs/libcurl/opts/CURLOPT_HAPROXY*,\
125              docs/libcurl/opts/CURLOPT_OPENSOCKET*,\
126              docs/libcurl/opts/CURLOPT_PRE_PROXY*,\
127              docs/libcurl/opts/CURLOPT_PROXY*,\
128              docs/libcurl/opts/CURLOPT_SOCKOPT*,\
129              docs/libcurl/opts/CURLOPT_SOCKS*,\
130              docs/libcurl/opts/CURLOPT_TCP*,\
131              docs/libcurl/opts/CURLOPT_TIMEOUT*,\
132              lib/cf-*proxy.*,\
133              lib/cf-socket.*,\
134              lib/cfilters.*,\
135              lib/conncache.*,\
136              lib/connect.*,\
137              lib/http_proxy.*,\
138              lib/if2ip.*,\
139              lib/noproxy.*,\
140              lib/socks.*,\
141              tests/server/socksd.c\
142              }"
143
144cookies:
145  - all:
146      - changed-files:
147          - any-glob-to-all-files: "{\
148              docs/HTTP-COOKIES.md,\
149              docs/cmdline-opts/cookie*,\
150              docs/cmdline-opts/junk-session-cookies.md,\
151              docs/libcurl/opts/CURLINFO_COOKIE*,\
152              docs/libcurl/opts/CURLOPT_COOKIE*,\
153              docs/examples/cookie_interface.c,\
154              lib/cookie.*,\
155              lib/psl.*\
156              }"
157
158cryptography:
159  - all:
160      - changed-files:
161          - any-glob-to-all-files: "{\
162              docs/CIPHERS.md,\
163              docs/RUSTLS.md,\
164              docs/libcurl/opts/CURLOPT_EGDSOCKET*,\
165              lib/*sha256*,\
166              lib/*sha512*,\
167              lib/curl_des.*,\
168              lib/curl_hmac.*,\
169              lib/curl_md?.*,\
170              lib/md?.*,\
171              lib/rand.*\
172              }"
173
174DICT:
175  - all:
176      - changed-files:
177          - any-glob-to-all-files: "{\
178              lib/dict.*,\
179              tests/dictserver.py\
180              }"
181
182documentation:
183  - all:
184      - changed-files:
185          - any-glob-to-all-files: "{\
186              .github/workflows/checkdocs.yml,\
187              .github/scripts/badwords.*,\
188              .github/scripts/cd2cd,\
189              .github/scripts/cd2nroff,\
190              .github/scripts/cdall.pl,\
191              .github/scripts/nroff2cd,\
192              .github/scripts/verify-examples.pl,\
193              .github/scripts/verify-synopsis.pl,\
194              **/*.md,\
195              **/*.txt,\
196              **/*.1,\
197              CHANGES.md,\
198              docs/**,\
199              LICENSES/**,\
200              README,\
201              RELEASE-NOTES,\
202              scripts/cd*\
203              }"
204          - all-globs-to-all-files:
205              # negative matches
206              - '!**/CMakeLists.txt'
207              - '!**/Makefile.am'
208
209FTP:
210  - all:
211      - changed-files:
212          - any-glob-to-all-files: "{\
213              docs/libcurl/opts/CURLINFO_FTP*,\
214              docs/libcurl/opts/CURLOPT_FTP*,\
215              docs/libcurl/opts/CURLOPT_WILDCARDMATCH*,\
216              docs/examples/ftp*,\
217              lib/curl_fnmatch.*,\
218              lib/curl_range.*,\
219              lib/ftp*,\
220              tests/ftp*\
221              }"
222
223GOPHER:
224  - all:
225      - changed-files:
226          - any-glob-to-all-files: "{\
227              lib/gopher*\
228              }"
229
230HTTP:
231  - all:
232      - changed-files:
233          - any-glob-to-all-files: "{\
234              docs/examples/hsts*,\
235              docs/examples/http-*,\
236              docs/examples/httpput*,\
237              docs/examples/https*,\
238              docs/examples/*post*,\
239              docs/HTTP-COOKIES.md,\
240              docs/libcurl/opts/CURLINFO_COOKIE*,\
241              docs/libcurl/opts/CURLOPT_COOKIE*,\
242              docs/libcurl/opts/CURLINFO_HTTP_**,\
243              docs/libcurl/opts/CURLINFO_REDIRECT*,\
244              docs/libcurl/opts/CURLINFO_REFER*,\
245              docs/libcurl/opts/CURLOPT_FOLLOWLOCATION*,\
246              docs/libcurl/opts/CURLOPT_HSTS*,\
247              docs/libcurl/opts/CURLOPT_HTTP*,\
248              docs/libcurl/opts/CURLOPT_POST.*,\
249              docs/libcurl/opts/CURLOPT_POSTFIELD*,\
250              docs/libcurl/opts/CURLOPT_POSTREDIR*,\
251              docs/libcurl/opts/CURLOPT_REDIR*,\
252              docs/libcurl/opts/CURLOPT_REFER*,\
253              docs/libcurl/opts/CURLOPT_TRAILER*,\
254              docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING*,\
255              lib/cf-https*,\
256              lib/cf-h1*,\
257              lib/cf-h2*,\
258              lib/cookie.*,\
259              lib/hsts.*,\
260              lib/http*,\
261              tests/http*,\
262              tests/http-server.pl,\
263              tests/http/*,\
264              tests/nghttp*\
265              }"
266
267HTTP/2:
268  - all:
269      - changed-files:
270          - any-glob-to-all-files: "{\
271              CMake/FindNGHTTP2.cmake,\
272              CMake/FindQuiche.cmake,\
273              docs/libcurl/opts/CURLOPT_STREAM*,\
274              docs/examples/http2*,\
275              lib/http2*,\
276              tests/http2-server.pl\
277              }"
278
279HTTP/3:
280  - all:
281      - changed-files:
282          - any-glob-to-all-files: "{\
283              .github/workflows/ngtcp2*,\
284              .github/workflows/quiche*,\
285              .github/workflows/osslq*,\
286              CMake/FindMSH3.cmake,\
287              CMake/FindNGHTTP3.cmake,\
288              CMake/FindNGTCP2.cmake,\
289              docs/HTTP3.md,\
290              docs/examples/http3*,\
291              lib/vquic/**,\
292              tests/http3-server.pl,\
293              tests/nghttpx.conf\
294              }"
295
296Hyper:
297  - all:
298      - changed-files:
299          - any-glob-to-all-files: "{\
300              docs/HYPER.md,\
301              lib/c-hyper.*\
302              }"
303
304IMAP:
305  - all:
306      - changed-files:
307          - any-glob-to-all-files: "{\
308              lib/imap*,\
309              docs/examples/imap*\
310              }"
311
312LDAP:
313  - all:
314      - changed-files:
315          - any-glob-to-all-files: "{\
316              lib/*ldap*\
317              }"
318
319libcurl API:
320  - all:
321      - changed-files:
322          - any-glob-to-any-file:
323              - 'docs/libcurl/ABI.md'
324              - 'docs/libcurl/curl_*.md'
325              - 'include/curl/**'
326
327logging:
328  - all:
329      - changed-files:
330          - any-glob-to-all-files: "{\
331              docs/cmdline-opts/trace*,\
332              docs/libcurl/curl_global_trace*,\
333              lib/curl_trc*,\
334              tests/http/test_15_tracing.py\
335              }"
336
337MIME:
338  - all:
339      - changed-files:
340          - any-glob-to-all-files: "{\
341              docs/libcurl/curl_form*,\
342              docs/libcurl/curl_mime_*,\
343              docs/libcurl/opts/CURLOPT_MIME*,\
344              docs/libcurl/opts/CURLOPT_HTTPPOST*,\
345              lib/formdata*,\
346              lib/mime*,\
347              src/tool_formparse.*\
348              }"
349
350MQTT:
351  - all:
352      - changed-files:
353          - any-glob-to-all-files: "{\
354              lib/mqtt*,\
355              tests/server/mqttd.c\
356              }"
357
358name lookup:
359  - all:
360      - changed-files:
361          - any-glob-to-all-files: "{\
362              docs/examples/resolve.c,\
363              docs/libcurl/opts/CURLINFO_NAMELOOKUP*,\
364              docs/libcurl/opts/CURLOPT_DNS*,\
365              docs/libcurl/opts/CURLOPT_DOH*,\
366              docs/libcurl/opts/CURLOPT_RESOLVE*,\
367              lib/asyn*,\
368              lib/curl_gethostname.*,\
369              lib/doh*,\
370              lib/host*,\
371              lib/idn*,\
372              lib/inet_pton.*,\
373              lib/socketpair*,\
374              tests/server/resolve.c\
375              }"
376
377POP3:
378  - all:
379      - changed-files:
380          - any-glob-to-all-files: "{\
381              docs/examples/pop3*,\
382              lib/pop3.*\
383              }"
384
385RTMP:
386  - all:
387      - changed-files:
388          - any-glob-to-all-files: "{\
389              lib/curl_rtmp.*\
390              }"
391
392RTSP:
393  - all:
394      - changed-files:
395          - any-glob-to-all-files: "{\
396              docs/libcurl/opts/CURLINFO_RTSP*,\
397              docs/libcurl/opts/CURLOPT_RTSP*,\
398              lib/rtsp.*,\
399              tests/rtspserver.pl,\
400              tests/server/rtspd.c\
401              }"
402
403SCP/SFTP:
404  - all:
405      - changed-files:
406          - any-glob-to-all-files: "{\
407              CMake/FindLibssh2.cmake,\
408              docs/libcurl/opts/CURLOPT_SSH*,\
409              docs/examples/sftp*,\
410              lib/vssh/**,\
411              tests/sshhelp.pm,\
412              tests/sshserver.pl\
413              }"
414
415script:
416  - all:
417      - changed-files:
418          - any-glob-to-all-files: "{\
419              **/*.pl,\
420              **/*.sh,\
421              curl-config.in,\
422              docs/curl-config.1,\
423              docs/mk-ca-bundle.1,\
424              docs/THANKS-filter,\
425              scripts/**\
426              }"
427
428SMB:
429  - all:
430      - changed-files:
431          - any-glob-to-all-files: "{\
432              lib/smb.*,\
433              tests/smbserver.py\
434              }"
435
436SMTP:
437  - all:
438      - changed-files:
439          - any-glob-to-all-files: "{\
440              docs/examples/smtp-*,\
441              docs/libcurl/opts/CURLOPT_MAIL*,\
442              lib/smtp.*\
443              }"
444
445tests:
446  - all:
447      - changed-files:
448          - any-glob-to-any-file:
449              - 'tests/**'
450
451TFTP:
452  - all:
453      - changed-files:
454          - any-glob-to-all-files: "{\
455              lib/tftp.*,\
456              tests/tftpserver.pl,\
457              tests/server/tftp*\
458              }"
459
460TLS:
461  - all:
462      - changed-files:
463          - any-glob-to-all-files: "{\
464              CMake/FindBearSSL.cmake,\
465              CMake/FindMbedTLS.cmake,\
466              CMake/FindWolfSSL.cmake,\
467              CMake/FindRustls.cmake,\
468              docs/examples/ssl*,\
469              docs/examples/*ssl.*,\
470              docs/examples/*tls.*,\
471              docs/SSL*,\
472              docs/libcurl/curl_global_sslset*,\
473              docs/libcurl/opts/CURLINFO_CA*,\
474              docs/libcurl/opts/CURLINFO_CERT*,\
475              docs/libcurl/opts/CURLINFO_SSL*,\
476              docs/libcurl/opts/CURLINFO_TLS*,\
477              docs/libcurl/opts/CURLOPT_CA*,\
478              docs/libcurl/opts/CURLOPT_CERT*,\
479              docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY*,\
480              docs/libcurl/opts/CURLOPT_SSL*,\
481              docs/libcurl/opts/CURLOPT_TLS*,\
482              docs/libcurl/opts/CURLOPT_USE_SSL*,\
483              lib/vtls/**,\
484              m4/curl-bearssl.m4,\
485              m4/curl-gnutls.m4,\
486              m4/curl-mbedtls.m4,\
487              m4/curl-openssl.m4,\
488              m4/curl-rustls.m4,\
489              m4/curl-schannel.m4,\
490              m4/curl-sectransp.m4,\
491              m4/curl-wolfssl.m4\
492              }"
493
494URL:
495  - all:
496      - changed-files:
497          - any-glob-to-all-files: "{\
498              docs/libcurl/curl_url*,\
499              docs/URL-SYNTAX.md,\
500              docs/examples/parseurl*,\
501              include/curl/urlapi.h,\
502              lib/urlapi*\
503              }"
504
505WebSocket:
506  - all:
507      - changed-files:
508          - any-glob-to-all-files: "{\
509              docs/internals/WEBSOCKET.md*,\
510              docs/examples/websocket*,\
511              docs/libcurl/curl_ws_*,\
512              docs/libcurl/libcurl-ws*,\
513              docs/libcurl/opts/CURLOPT_WS_*,\
514              include/curl/websockets.h,\
515              lib/ws.*,\
516              tests/http/clients/ws*,\
517              tests/http/test_20_websockets.py,\
518              tests/http/testenv/ws*\
519              }"
520
521Windows:
522  - all:
523      - changed-files:
524          - any-glob-to-all-files: "{\
525              appveyor.*,\
526              .github/workflows/windows.yml,\
527              CMake/Platforms/WindowsCache.cmake,\
528              lib/*win32*,\
529              lib/curl_multibyte.*,\
530              lib/rename.*,\
531              lib/vtls/schannel*,\
532              m4/curl-schannel.m4,\
533              projects/**,\
534              src/tool_doswin.c,\
535              winbuild/**,\
536              lib/libcurl.def\
537              }"
538