xref: /curl/.github/labeler.yml (revision 9eafc115)
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, there must be a single glob
19# with all matching patterns within braces.
20#
21# See https://github.com/actions/labeler/ for documentation on this file.
22
23appleOS:
24  - all:
25      - changed-files:
26          - any-glob-to-all-files:
27              - '{.github/workflows/macos.yml,lib/config-mac.h,lib/macos*,lib/vtls/sectransp*,m4/curl-sectransp.m4}'
28
29authentication:
30  - all:
31      - changed-files:
32          - any-glob-to-all-files:
33              - '{docs/mk-ca-bundle.1,docs/libcurl/opts/CURLINFO_HTTPAUTH*,docs/libcurl/opts/CURLINFO_PROXYAUTH*,docs/libcurl/opts/CURLOPT_KRB*,docs/libcurl/opts/CURLOPT_SASL*,docs/libcurl/opts/CURLOPT_SERVICE_NAME*,docs/libcurl/opts/CURLOPT_USERNAME*,docs/libcurl/opts/CURLOPT_USERPWD*,docs/libcurl/opts/CURLOPT_XOAUTH*,lib/*gssapi*,lib/*krb5*,lib/*ntlm*,lib/curl_sasl.*,lib/http_aws*,lib/http_digest.*,lib/http_negotiate.*,lib/vauth/**,tests/server/fake_ntlm.c}'
34
35build:
36  - all:
37      - changed-files:
38          - any-glob-to-all-files:
39              - '{**/CMakeLists.txt,**/Makefile.am,**/Makefile.inc,**/Makefile.mk,**/*.m4,**/*.mk,*.m4,docs/INSTALL.cmake,lib/curl_config.h.cmake,lib/libcurl*.in,CMake/**,CMakeLists.txt,configure.ac,m4/**,Makefile.*,packages/**,plan9/**,projects/**,winbuild/**,libcurl.def}'
40
41CI:
42  - all:
43      - changed-files:
44          - any-glob-to-any-file:
45              - '.azure-pipelines.yml'
46              - '.circleci/**'
47              - '.cirrus.yml'
48              - '.github/**'
49              - 'appveyor.*'
50              - 'scripts/ci*'
51              - 'tests/azure.pm'
52              - 'tests/appveyor.pm'
53              - 'tests/CI.md'
54
55cmake:
56  - all:
57      - changed-files:
58          - any-glob-to-all-files:
59              - '{**/CMakeLists.txt,CMake/**,docs/INSTALL.cmake,lib/curl_config.h.cmake}'
60
61cmdline tool:
62  - all:
63      - changed-files:
64          - any-glob-to-any-file:
65              - 'docs/cmdline-opts/**'
66              - 'src/**'
67
68connecting & proxies:
69  - all:
70      - changed-files:
71          - any-glob-to-all-files:
72              - '{docs/CONNECTION-FILTERS.md,docs/examples/ipv6.c,docs/libcurl/opts/CURLINFO_CONNECT*,docs/libcurl/opts/CURLINFO_PROXY*,docs/libcurl/opts/CURLOPT_ADDRESS*,docs/libcurl/opts/CURLOPT_CONNECT*,docs/libcurl/opts/CURLOPT_HAPROXY*,docs/libcurl/opts/CURLOPT_OPENSOCKET*,docs/libcurl/opts/CURLOPT_PRE_PROXY*,docs/libcurl/opts/CURLOPT_PROXY*,docs/libcurl/opts/CURLOPT_SOCKOPT*,docs/libcurl/opts/CURLOPT_SOCKS*,docs/libcurl/opts/CURLOPT_TCP*,docs/libcurl/opts/CURLOPT_TIMEOUT*,lib/cf-*proxy.*,lib/cf-socket.*,lib/cfilters.*,lib/conncache.*,lib/connect.*,lib/http_proxy.*,lib/if2ip.*,lib/noproxy.*,lib/socks.*,tests/server/socksd.c}'
73
74cookies:
75  - all:
76      - changed-files:
77          - any-glob-to-all-files:
78              - '{docs/HTTP-COOKIES.md,docs/cmdline-opts/cookie*,docs/cmdline-opts/junk-session-cookies.md,docs/libcurl/opts/CURLINFO_COOKIE*,docs/libcurl/opts/CURLOPT_COOKIE*,docs/examples/cookie_interface.c,lib/cookie.*,lib/psl.*}'
79
80cryptography:
81  - all:
82      - changed-files:
83          - any-glob-to-all-files:
84              - '{docs/CIPHERS.md,docs/RUSTLS.md,docs/libcurl/opts/CURLOPT_EGDSOCKET*,lib/*sha256*,lib/*sha512*,lib/curl_des.*,lib/curl_hmac.*,lib/curl_md?.*,lib/md?.*,lib/rand.*}'
85
86DICT:
87  - all:
88      - changed-files:
89          - any-glob-to-all-files:
90              - '{lib/dict.*,tests/dictserver.py}'
91
92documentation:
93  - all:
94      - changed-files:
95          - any-glob-to-all-files:
96              - '{.github/workflows/badwords.yml,.github/workflows/man-examples.yml,.github/workflows/synopsis.yml,.github/scripts/badwords.*,.github/scripts/cd2cd,.github/scripts/cd2nroff,.github/scripts/cdall.pl,.github/scripts/nroff2cd,.github/scripts/verify-examples.pl,.github/scripts/verify-synopsis.pl,**/*.md,**/*.txt,**/*.1,CHANGES,docs/**,LICENSES/**,README,RELEASE-NOTES,scripts/cd*}'
97          - all-globs-to-all-files:
98              # negative matches
99              - '!**/CMakeLists.txt'
100              - '!**/Makefile.am'
101
102FTP:
103  - all:
104      - changed-files:
105          - any-glob-to-all-files:
106              - '{docs/libcurl/opts/CURLINFO_FTP*,docs/libcurl/opts/CURLOPT_FTP*,docs/libcurl/opts/CURLOPT_WILDCARDMATCH*,docs/examples/ftp*,lib/curl_fnmatch.*,lib/curl_range.*,lib/ftp*,tests/ftp*'
107
108GOPHER:
109  - all:
110      - changed-files:
111          - any-glob-to-all-files:
112              - '{lib/gopher*}'
113
114HTTP:
115  - all:
116      - changed-files:
117          - any-glob-to-all-files:
118              - '{docs/examples/hsts*,docs/examples/http-*,docs/examples/httpput*,docs/examples/https*,docs/examples/*post*,docs/HSTS.md,docs/HTTP-COOKIES.md,docs/libcurl/opts/CURLINFO_COOKIE*,docs/libcurl/opts/CURLOPT_COOKIE*,docs/libcurl/opts/CURLINFO_HTTP_**,docs/libcurl/opts/CURLINFO_REDIRECT*,docs/libcurl/opts/CURLINFO_REFER*,docs/libcurl/opts/CURLOPT_FOLLOWLOCATION*,docs/libcurl/opts/CURLOPT_HSTS*,docs/libcurl/opts/CURLOPT_HTTP*,docs/libcurl/opts/CURLOPT_POST.*,docs/libcurl/opts/CURLOPT_POSTFIELD*,docs/libcurl/opts/CURLOPT_POSTREDIR*,docs/libcurl/opts/CURLOPT_REDIR*,docs/libcurl/opts/CURLOPT_REFER*,docs/libcurl/opts/CURLOPT_TRAILER*,docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING*,lib/cf-https*,lib/cf-h1*,lib/cf-h2*,lib/cookie.*,lib/http*,tests/http*,tests/http-server.pl,tests/http/*,tests/nghttp*}'
119
120HTTP/2:
121  - all:
122      - changed-files:
123          - any-glob-to-all-files:
124              - '{CMake/FindNGHTTP2.cmake,CMake/FindQUICHE.cmake,docs/HTTP2.md,docs/libcurl/opts/CURLOPT_STREAM*,docs/examples/http2*,lib/http2*,tests/http2-server.pl}'
125
126HTTP/3:
127  - all:
128      - changed-files:
129          - any-glob-to-all-files:
130              - '{.github/workflows/ngtcp2*,.github/workflows/quiche*,.github/workflows/osslq*,CMake/FindMSH3.cmake,CMake/FindNGHTTP3.cmake,CMake/FindNGTCP2.cmake,docs/HTTP3.md,docs/examples/http3*,lib/vquic/**,tests/http3-server.pl,tests/nghttpx.conf}'
131
132Hyper:
133  - all:
134      - changed-files:
135          - any-glob-to-all-files:
136              - '{docs/HYPER.md,lib/c-hyper.*}'
137
138IMAP:
139  - all:
140      - changed-files:
141          - any-glob-to-all-files:
142              - '{lib/imap*,docs/examples/imap*}'
143
144LDAP:
145  - all:
146      - changed-files:
147          - any-glob-to-all-files:
148              - '{lib/*ldap*}'
149
150libcurl API:
151  - all:
152      - changed-files:
153          - any-glob-to-any-file:
154              - 'docs/libcurl/ABI.md'
155              - 'docs/libcurl/curl_*.md'
156              - 'include/curl/**'
157
158logging:
159  - all:
160      - changed-files:
161          - any-glob-to-all-files:
162              - '{docs/cmdline-opts/trace*,docs/libcurl/curl_global_trace*,lib/curl_trc*,tests/http/test_15_tracing.py}'
163
164MIME:
165  - all:
166      - changed-files:
167          - any-glob-to-all-files:
168              - '{docs/libcurl/curl_form*,docs/libcurl/curl_mime_*,docs/libcurl/opts/CURLOPT_MIME*,docs/libcurl/opts/CURLOPT_HTTPPOST*,lib/formdata*,lib/mime*,src/tool_formparse.*}'
169
170MQTT:
171  - all:
172      - changed-files:
173          - any-glob-to-all-files:
174              - '{docs/MQTT.md,lib/mqtt*,tests/server/mqttd.c}'
175
176name lookup:
177  - all:
178      - changed-files:
179          - any-glob-to-all-files:
180              - '{docs/examples/resolve.c,docs/libcurl/opts/CURLINFO_NAMELOOKUP*,docs/libcurl/opts/CURLOPT_DNS*,docs/libcurl/opts/CURLOPT_DOH*,docs/libcurl/opts/CURLOPT_RESOLVE*,lib/asyn*,lib/curl_gethostname.*,lib/doh*,lib/host*,lib/idn*,lib/inet_pton.*,lib/socketpair*,tests/server/resolve.c}'
181
182POP3:
183  - all:
184      - changed-files:
185          - any-glob-to-all-files:
186              - '{docs/examples/pop3*,lib/pop3.*}'
187
188RTMP:
189  - all:
190      - changed-files:
191          - any-glob-to-all-files:
192              - '{lib/curl_rtmp.*}'
193
194RTSP:
195  - all:
196      - changed-files:
197          - any-glob-to-all-files:
198              - '{docs/libcurl/opts/CURLINFO_RTSP*,docs/libcurl/opts/CURLOPT_RTSP*,lib/rtsp.*,tests/rtspserver.pl,tests/server/rtspd.c}'
199
200SCP/SFTP:
201  - all:
202      - changed-files:
203          - any-glob-to-all-files:
204              - '{CMake/FindLibSSH2.cmake,docs/libcurl/opts/CURLOPT_SSH*,docs/examples/sftp*,lib/vssh/**,tests/sshhelp.pm,tests/sshserver.pl}'
205
206script:
207  - all:
208      - changed-files:
209          - any-glob-to-all-files:
210              - '{**/*.pl,**/*.sh,curl-config.in,docs/curl-config.1,docs/mk-ca-bundle.1,docs/THANKS-filter,scripts/**}'
211
212SMB:
213  - all:
214      - changed-files:
215          - any-glob-to-all-files:
216              - '{lib/smb.*,tests/smbserver.py}'
217
218SMTP:
219  - all:
220      - changed-files:
221          - any-glob-to-all-files:
222              - '{docs/examples/smtp-*,docs/libcurl/opts/CURLOPT_MAIL*,lib/smtp.*}'
223
224tests:
225  - all:
226      - changed-files:
227          - any-glob-to-any-file:
228              - 'tests/**'
229
230TFTP:
231  - all:
232      - changed-files:
233          - any-glob-to-all-files:
234              - '{lib/tftp.*,tests/tftpserver.pl,tests/server/tftp*}'
235
236TLS:
237  - all:
238      - changed-files:
239          - any-glob-to-all-files:
240              - '{CMake/FindBearSSL.cmake,CMake/FindMbedTLS.cmake,CMake/FindWolfSSL.cmake,docs/examples/ssl*,docs/examples/*ssl.*,docs/examples/*tls.*,docs/SSL*,docs/libcurl/curl_global_sslset*,docs/libcurl/opts/CURLINFO_CA*,docs/libcurl/opts/CURLINFO_CERT*,docs/libcurl/opts/CURLINFO_SSL*,docs/libcurl/opts/CURLINFO_TLS*,docs/libcurl/opts/CURLOPT_CA*,docs/libcurl/opts/CURLOPT_CERT*,docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY*,docs/libcurl/opts/CURLOPT_SSL*,docs/libcurl/opts/CURLOPT_TLS*,docs/libcurl/opts/CURLOPT_USE_SSL*,lib/vtls/**,m4/curl-bearssl.m4,m4/curl-gnutls.m4,m4/curl-mbedtls.m4,m4/curl-openssl.m4,m4/curl-rustls.m4,m4/curl-schannel.m4,m4/curl-sectransp.m4,m4/curl-wolfssl.m4}'
241
242URL:
243  - all:
244      - changed-files:
245          - any-glob-to-all-files:
246              - '{docs/libcurl/curl_url*,docs/URL-SYNTAX.md,docs/examples/parseurl*,include/curl/urlapi.h,lib/urlapi*}'
247
248WebSocket:
249  - all:
250      - changed-files:
251          - any-glob-to-all-files:
252              - '{docs/WEBSOCKET.md*,docs/examples/websocket*,docs/libcurl/curl_ws_*,docs/libcurl/libcurl-ws*,docs/libcurl/opts/CURLOPT_WS_*,include/curl/websockets.h,lib/ws.*,tests/http/clients/ws*,tests/http/test_20_websockets.py,tests/http/testenv/ws*}'
253
254Windows:
255  - all:
256      - changed-files:
257          - any-glob-to-all-files:
258              - '{appveyor.*,CMake/Platforms/WindowsCache.cmake,lib/*win32*,lib/curl_multibyte.*,lib/rename.*,lib/vtls/schannel*,m4/curl-schannel.m4,projects/**,src/tool_doswin.c,winbuild/**,libcurl.def}'
259