labeler.yml 16 KB

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