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