labeler.yml 15 KB

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