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