xref: /curl/.github/labeler.yml (revision fc3e1cbc)
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              **/*.m4,\
67              **/*.mk,\
68              *.m4,\
69              docs/INSTALL.cmake,\
70              lib/curl_config.h.cmake,\
71              lib/libcurl*.in,\
72              CMake/**,\
73              CMakeLists.txt,\
74              configure.ac,\
75              m4/**,\
76              Makefile.*,\
77              packages/**,\
78              plan9/**,\
79              projects/**,\
80              winbuild/**,\
81              lib/libcurl.def\
82              }"
83
84CI:
85  - all:
86      - changed-files:
87          - any-glob-to-any-file:
88              - '.circleci/**'
89              - '.github/**'
90              - 'appveyor.*'
91              - 'scripts/ci*'
92              - 'tests/azure.pm'
93              - 'tests/appveyor.pm'
94              - 'tests/CI.md'
95
96cmake:
97  - all:
98      - changed-files:
99          - any-glob-to-all-files: "{\
100              **/CMakeLists.txt,\
101              CMake/**,\
102              docs/INSTALL.cmake,\
103              lib/curl_config.h.cmake\
104              }"
105
106cmdline tool:
107  - all:
108      - changed-files:
109          - any-glob-to-any-file:
110              - 'docs/cmdline-opts/**'
111              - 'src/**'
112
113connecting & proxies:
114  - all:
115      - changed-files:
116          - any-glob-to-all-files: "{\
117              docs/internals/CONNECTION-FILTERS.md,\
118              docs/examples/ipv6.c,\
119              docs/libcurl/opts/CURLINFO_CONNECT*,\
120              docs/libcurl/opts/CURLINFO_PROXY*,\
121              docs/libcurl/opts/CURLOPT_ADDRESS*,\
122              docs/libcurl/opts/CURLOPT_CONNECT*,\
123              docs/libcurl/opts/CURLOPT_HAPROXY*,\
124              docs/libcurl/opts/CURLOPT_OPENSOCKET*,\
125              docs/libcurl/opts/CURLOPT_PRE_PROXY*,\
126              docs/libcurl/opts/CURLOPT_PROXY*,\
127              docs/libcurl/opts/CURLOPT_SOCKOPT*,\
128              docs/libcurl/opts/CURLOPT_SOCKS*,\
129              docs/libcurl/opts/CURLOPT_TCP*,\
130              docs/libcurl/opts/CURLOPT_TIMEOUT*,\
131              lib/cf-*proxy.*,\
132              lib/cf-socket.*,\
133              lib/cfilters.*,\
134              lib/conncache.*,\
135              lib/connect.*,\
136              lib/http_proxy.*,\
137              lib/if2ip.*,\
138              lib/noproxy.*,\
139              lib/socks.*,\
140              tests/server/socksd.c\
141              }"
142
143cookies:
144  - all:
145      - changed-files:
146          - any-glob-to-all-files: "{\
147              docs/HTTP-COOKIES.md,\
148              docs/cmdline-opts/cookie*,\
149              docs/cmdline-opts/junk-session-cookies.md,\
150              docs/libcurl/opts/CURLINFO_COOKIE*,\
151              docs/libcurl/opts/CURLOPT_COOKIE*,\
152              docs/examples/cookie_interface.c,\
153              lib/cookie.*,\
154              lib/psl.*\
155              }"
156
157cryptography:
158  - all:
159      - changed-files:
160          - any-glob-to-all-files: "{\
161              docs/CIPHERS.md,\
162              docs/RUSTLS.md,\
163              docs/libcurl/opts/CURLOPT_EGDSOCKET*,\
164              lib/*sha256*,\
165              lib/*sha512*,\
166              lib/curl_des.*,\
167              lib/curl_hmac.*,\
168              lib/curl_md?.*,\
169              lib/md?.*,\
170              lib/rand.*\
171              }"
172
173DICT:
174  - all:
175      - changed-files:
176          - any-glob-to-all-files: "{\
177              lib/dict.*,\
178              tests/dictserver.py\
179              }"
180
181documentation:
182  - all:
183      - changed-files:
184          - any-glob-to-all-files: "{\
185              .github/workflows/checkdocs.yml,\
186              .github/scripts/badwords.*,\
187              .github/scripts/cd2cd,\
188              .github/scripts/cd2nroff,\
189              .github/scripts/cdall.pl,\
190              .github/scripts/nroff2cd,\
191              .github/scripts/verify-examples.pl,\
192              .github/scripts/verify-synopsis.pl,\
193              **/*.md,\
194              **/*.txt,\
195              **/*.1,\
196              CHANGES.md,\
197              docs/**,\
198              LICENSES/**,\
199              README,\
200              RELEASE-NOTES,\
201              scripts/cd*\
202              }"
203          - all-globs-to-all-files:
204              # negative matches
205              - '!**/CMakeLists.txt'
206              - '!**/Makefile.am'
207
208FTP:
209  - all:
210      - changed-files:
211          - any-glob-to-all-files: "{\
212              docs/libcurl/opts/CURLINFO_FTP*,\
213              docs/libcurl/opts/CURLOPT_FTP*,\
214              docs/libcurl/opts/CURLOPT_WILDCARDMATCH*,\
215              docs/examples/ftp*,\
216              lib/curl_fnmatch.*,\
217              lib/curl_range.*,\
218              lib/ftp*,\
219              tests/ftp*\
220              }"
221
222GOPHER:
223  - all:
224      - changed-files:
225          - any-glob-to-all-files: "{\
226              lib/gopher*\
227              }"
228
229HTTP:
230  - all:
231      - changed-files:
232          - any-glob-to-all-files: "{\
233              docs/examples/hsts*,\
234              docs/examples/http-*,\
235              docs/examples/httpput*,\
236              docs/examples/https*,\
237              docs/examples/*post*,\
238              docs/HTTP-COOKIES.md,\
239              docs/libcurl/opts/CURLINFO_COOKIE*,\
240              docs/libcurl/opts/CURLOPT_COOKIE*,\
241              docs/libcurl/opts/CURLINFO_HTTP_**,\
242              docs/libcurl/opts/CURLINFO_REDIRECT*,\
243              docs/libcurl/opts/CURLINFO_REFER*,\
244              docs/libcurl/opts/CURLOPT_FOLLOWLOCATION*,\
245              docs/libcurl/opts/CURLOPT_HSTS*,\
246              docs/libcurl/opts/CURLOPT_HTTP*,\
247              docs/libcurl/opts/CURLOPT_POST.*,\
248              docs/libcurl/opts/CURLOPT_POSTFIELD*,\
249              docs/libcurl/opts/CURLOPT_POSTREDIR*,\
250              docs/libcurl/opts/CURLOPT_REDIR*,\
251              docs/libcurl/opts/CURLOPT_REFER*,\
252              docs/libcurl/opts/CURLOPT_TRAILER*,\
253              docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING*,\
254              lib/cf-https*,\
255              lib/cf-h1*,\
256              lib/cf-h2*,\
257              lib/cookie.*,\
258              lib/hsts.*,\
259              lib/http*,\
260              tests/http*,\
261              tests/http-server.pl,\
262              tests/http/*,\
263              tests/nghttp*\
264              }"
265
266HTTP/2:
267  - all:
268      - changed-files:
269          - any-glob-to-all-files: "{\
270              CMake/FindNGHTTP2.cmake,\
271              CMake/FindQuiche.cmake,\
272              docs/libcurl/opts/CURLOPT_STREAM*,\
273              docs/examples/http2*,\
274              lib/http2*,\
275              tests/http2-server.pl\
276              }"
277
278HTTP/3:
279  - all:
280      - changed-files:
281          - any-glob-to-all-files: "{\
282              .github/workflows/ngtcp2*,\
283              .github/workflows/quiche*,\
284              .github/workflows/osslq*,\
285              CMake/FindMSH3.cmake,\
286              CMake/FindNGHTTP3.cmake,\
287              CMake/FindNGTCP2.cmake,\
288              docs/HTTP3.md,\
289              docs/examples/http3*,\
290              lib/vquic/**,\
291              tests/http3-server.pl,\
292              tests/nghttpx.conf\
293              }"
294
295IMAP:
296  - all:
297      - changed-files:
298          - any-glob-to-all-files: "{\
299              lib/imap*,\
300              docs/examples/imap*\
301              }"
302
303LDAP:
304  - all:
305      - changed-files:
306          - any-glob-to-all-files: "{\
307              lib/*ldap*\
308              }"
309
310libcurl API:
311  - all:
312      - changed-files:
313          - any-glob-to-any-file:
314              - 'docs/libcurl/ABI.md'
315              - 'docs/libcurl/curl_*.md'
316              - 'include/curl/**'
317
318logging:
319  - all:
320      - changed-files:
321          - any-glob-to-all-files: "{\
322              docs/cmdline-opts/trace*,\
323              docs/libcurl/curl_global_trace*,\
324              lib/curl_trc*,\
325              tests/http/test_15_tracing.py\
326              }"
327
328MIME:
329  - all:
330      - changed-files:
331          - any-glob-to-all-files: "{\
332              docs/libcurl/curl_form*,\
333              docs/libcurl/curl_mime_*,\
334              docs/libcurl/opts/CURLOPT_MIME*,\
335              docs/libcurl/opts/CURLOPT_HTTPPOST*,\
336              lib/formdata*,\
337              lib/mime*,\
338              src/tool_formparse.*\
339              }"
340
341MQTT:
342  - all:
343      - changed-files:
344          - any-glob-to-all-files: "{\
345              lib/mqtt*,\
346              tests/server/mqttd.c\
347              }"
348
349name lookup:
350  - all:
351      - changed-files:
352          - any-glob-to-all-files: "{\
353              docs/examples/resolve.c,\
354              docs/libcurl/opts/CURLINFO_NAMELOOKUP*,\
355              docs/libcurl/opts/CURLOPT_DNS*,\
356              docs/libcurl/opts/CURLOPT_DOH*,\
357              docs/libcurl/opts/CURLOPT_RESOLVE*,\
358              lib/asyn*,\
359              lib/curl_gethostname.*,\
360              lib/doh*,\
361              lib/host*,\
362              lib/idn*,\
363              lib/inet_pton.*,\
364              lib/socketpair*,\
365              tests/server/resolve.c\
366              }"
367
368POP3:
369  - all:
370      - changed-files:
371          - any-glob-to-all-files: "{\
372              docs/examples/pop3*,\
373              lib/pop3.*\
374              }"
375
376RTMP:
377  - all:
378      - changed-files:
379          - any-glob-to-all-files: "{\
380              lib/curl_rtmp.*\
381              }"
382
383RTSP:
384  - all:
385      - changed-files:
386          - any-glob-to-all-files: "{\
387              docs/libcurl/opts/CURLINFO_RTSP*,\
388              docs/libcurl/opts/CURLOPT_RTSP*,\
389              lib/rtsp.*,\
390              tests/rtspserver.pl,\
391              tests/server/rtspd.c\
392              }"
393
394SCP/SFTP:
395  - all:
396      - changed-files:
397          - any-glob-to-all-files: "{\
398              CMake/FindLibssh2.cmake,\
399              docs/libcurl/opts/CURLOPT_SSH*,\
400              docs/examples/sftp*,\
401              lib/vssh/**,\
402              tests/sshhelp.pm,\
403              tests/sshserver.pl\
404              }"
405
406script:
407  - all:
408      - changed-files:
409          - any-glob-to-all-files: "{\
410              **/*.pl,\
411              **/*.sh,\
412              curl-config.in,\
413              docs/curl-config.1,\
414              docs/mk-ca-bundle.1,\
415              docs/THANKS-filter,\
416              scripts/**\
417              }"
418
419SMB:
420  - all:
421      - changed-files:
422          - any-glob-to-all-files: "{\
423              lib/smb.*,\
424              tests/smbserver.py\
425              }"
426
427SMTP:
428  - all:
429      - changed-files:
430          - any-glob-to-all-files: "{\
431              docs/examples/smtp-*,\
432              docs/libcurl/opts/CURLOPT_MAIL*,\
433              lib/smtp.*\
434              }"
435
436tests:
437  - all:
438      - changed-files:
439          - any-glob-to-any-file:
440              - 'tests/**'
441
442TFTP:
443  - all:
444      - changed-files:
445          - any-glob-to-all-files: "{\
446              lib/tftp.*,\
447              tests/tftpserver.pl,\
448              tests/server/tftp*\
449              }"
450
451TLS:
452  - all:
453      - changed-files:
454          - any-glob-to-all-files: "{\
455              CMake/FindBearSSL.cmake,\
456              CMake/FindMbedTLS.cmake,\
457              CMake/FindWolfSSL.cmake,\
458              CMake/FindRustls.cmake,\
459              docs/examples/ssl*,\
460              docs/examples/*ssl.*,\
461              docs/examples/*tls.*,\
462              docs/SSL*,\
463              docs/libcurl/curl_global_sslset*,\
464              docs/libcurl/opts/CURLINFO_CA*,\
465              docs/libcurl/opts/CURLINFO_CERT*,\
466              docs/libcurl/opts/CURLINFO_SSL*,\
467              docs/libcurl/opts/CURLINFO_TLS*,\
468              docs/libcurl/opts/CURLOPT_CA*,\
469              docs/libcurl/opts/CURLOPT_CERT*,\
470              docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY*,\
471              docs/libcurl/opts/CURLOPT_SSL*,\
472              docs/libcurl/opts/CURLOPT_TLS*,\
473              docs/libcurl/opts/CURLOPT_USE_SSL*,\
474              lib/vtls/**,\
475              m4/curl-bearssl.m4,\
476              m4/curl-gnutls.m4,\
477              m4/curl-mbedtls.m4,\
478              m4/curl-openssl.m4,\
479              m4/curl-rustls.m4,\
480              m4/curl-schannel.m4,\
481              m4/curl-sectransp.m4,\
482              m4/curl-wolfssl.m4\
483              }"
484
485URL:
486  - all:
487      - changed-files:
488          - any-glob-to-all-files: "{\
489              docs/libcurl/curl_url*,\
490              docs/URL-SYNTAX.md,\
491              docs/examples/parseurl*,\
492              include/curl/urlapi.h,\
493              lib/urlapi*\
494              }"
495
496WebSocket:
497  - all:
498      - changed-files:
499          - any-glob-to-all-files: "{\
500              docs/internals/WEBSOCKET.md*,\
501              docs/examples/websocket*,\
502              docs/libcurl/curl_ws_*,\
503              docs/libcurl/libcurl-ws*,\
504              docs/libcurl/opts/CURLOPT_WS_*,\
505              include/curl/websockets.h,\
506              lib/ws.*,\
507              tests/http/clients/ws*,\
508              tests/http/test_20_websockets.py,\
509              tests/http/testenv/ws*\
510              }"
511
512Windows:
513  - all:
514      - changed-files:
515          - any-glob-to-all-files: "{\
516              appveyor.*,\
517              .github/workflows/windows.yml,\
518              CMake/Platforms/WindowsCache.cmake,\
519              lib/*win32*,\
520              lib/curl_multibyte.*,\
521              lib/rename.*,\
522              lib/vtls/schannel*,\
523              m4/curl-schannel.m4,\
524              projects/**,\
525              src/tool_doswin.c,\
526              winbuild/**,\
527              lib/libcurl.def\
528              }"
529