labeler.yml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  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/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/HSTS.md,\
  225. docs/HTTP-COOKIES.md,\
  226. docs/libcurl/opts/CURLINFO_COOKIE*,\
  227. docs/libcurl/opts/CURLOPT_COOKIE*,\
  228. docs/libcurl/opts/CURLINFO_HTTP_**,\
  229. docs/libcurl/opts/CURLINFO_REDIRECT*,\
  230. docs/libcurl/opts/CURLINFO_REFER*,\
  231. docs/libcurl/opts/CURLOPT_FOLLOWLOCATION*,\
  232. docs/libcurl/opts/CURLOPT_HSTS*,\
  233. docs/libcurl/opts/CURLOPT_HTTP*,\
  234. docs/libcurl/opts/CURLOPT_POST.*,\
  235. docs/libcurl/opts/CURLOPT_POSTFIELD*,\
  236. docs/libcurl/opts/CURLOPT_POSTREDIR*,\
  237. docs/libcurl/opts/CURLOPT_REDIR*,\
  238. docs/libcurl/opts/CURLOPT_REFER*,\
  239. docs/libcurl/opts/CURLOPT_TRAILER*,\
  240. docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING*,\
  241. lib/cf-https*,\
  242. lib/cf-h1*,\
  243. lib/cf-h2*,\
  244. lib/cookie.*,\
  245. lib/hsts.*,\
  246. lib/http*,\
  247. tests/http*,\
  248. tests/http-server.pl,\
  249. tests/http/*,\
  250. tests/nghttp*\
  251. }"
  252. HTTP/2:
  253. - all:
  254. - changed-files:
  255. - any-glob-to-all-files: "{\
  256. CMake/FindNGHTTP2.cmake,\
  257. CMake/FindQuiche.cmake,\
  258. docs/HTTP2.md,\
  259. docs/libcurl/opts/CURLOPT_STREAM*,\
  260. docs/examples/http2*,\
  261. lib/http2*,\
  262. tests/http2-server.pl\
  263. }"
  264. HTTP/3:
  265. - all:
  266. - changed-files:
  267. - any-glob-to-all-files: "{\
  268. .github/workflows/ngtcp2*,\
  269. .github/workflows/quiche*,\
  270. .github/workflows/osslq*,\
  271. CMake/FindMSH3.cmake,\
  272. CMake/FindNGHTTP3.cmake,\
  273. CMake/FindNGTCP2.cmake,\
  274. docs/HTTP3.md,\
  275. docs/examples/http3*,\
  276. lib/vquic/**,\
  277. tests/http3-server.pl,\
  278. tests/nghttpx.conf\
  279. }"
  280. Hyper:
  281. - all:
  282. - changed-files:
  283. - any-glob-to-all-files: "{\
  284. docs/HYPER.md,\
  285. lib/c-hyper.*\
  286. }"
  287. IMAP:
  288. - all:
  289. - changed-files:
  290. - any-glob-to-all-files: "{\
  291. lib/imap*,\
  292. docs/examples/imap*\
  293. }"
  294. LDAP:
  295. - all:
  296. - changed-files:
  297. - any-glob-to-all-files: "{\
  298. lib/*ldap*\
  299. }"
  300. libcurl API:
  301. - all:
  302. - changed-files:
  303. - any-glob-to-any-file:
  304. - 'docs/libcurl/ABI.md'
  305. - 'docs/libcurl/curl_*.md'
  306. - 'include/curl/**'
  307. logging:
  308. - all:
  309. - changed-files:
  310. - any-glob-to-all-files: "{\
  311. docs/cmdline-opts/trace*,\
  312. docs/libcurl/curl_global_trace*,\
  313. lib/curl_trc*,\
  314. tests/http/test_15_tracing.py\
  315. }"
  316. MIME:
  317. - all:
  318. - changed-files:
  319. - any-glob-to-all-files: "{\
  320. docs/libcurl/curl_form*,\
  321. docs/libcurl/curl_mime_*,\
  322. docs/libcurl/opts/CURLOPT_MIME*,\
  323. docs/libcurl/opts/CURLOPT_HTTPPOST*,\
  324. lib/formdata*,\
  325. lib/mime*,\
  326. src/tool_formparse.*\
  327. }"
  328. MQTT:
  329. - all:
  330. - changed-files:
  331. - any-glob-to-all-files: "{\
  332. docs/MQTT.md,\
  333. lib/mqtt*,\
  334. tests/server/mqttd.c\
  335. }"
  336. name lookup:
  337. - all:
  338. - changed-files:
  339. - any-glob-to-all-files: "{\
  340. docs/examples/resolve.c,\
  341. docs/libcurl/opts/CURLINFO_NAMELOOKUP*,\
  342. docs/libcurl/opts/CURLOPT_DNS*,\
  343. docs/libcurl/opts/CURLOPT_DOH*,\
  344. docs/libcurl/opts/CURLOPT_RESOLVE*,\
  345. lib/asyn*,\
  346. lib/curl_gethostname.*,\
  347. lib/doh*,\
  348. lib/host*,\
  349. lib/idn*,\
  350. lib/inet_pton.*,\
  351. lib/socketpair*,\
  352. tests/server/resolve.c\
  353. }"
  354. POP3:
  355. - all:
  356. - changed-files:
  357. - any-glob-to-all-files: "{\
  358. docs/examples/pop3*,\
  359. lib/pop3.*\
  360. }"
  361. RTMP:
  362. - all:
  363. - changed-files:
  364. - any-glob-to-all-files: "{\
  365. lib/curl_rtmp.*\
  366. }"
  367. RTSP:
  368. - all:
  369. - changed-files:
  370. - any-glob-to-all-files: "{\
  371. docs/libcurl/opts/CURLINFO_RTSP*,\
  372. docs/libcurl/opts/CURLOPT_RTSP*,\
  373. lib/rtsp.*,\
  374. tests/rtspserver.pl,\
  375. tests/server/rtspd.c\
  376. }"
  377. SCP/SFTP:
  378. - all:
  379. - changed-files:
  380. - any-glob-to-all-files: "{\
  381. CMake/FindLibssh2.cmake,\
  382. docs/libcurl/opts/CURLOPT_SSH*,\
  383. docs/examples/sftp*,\
  384. lib/vssh/**,\
  385. tests/sshhelp.pm,\
  386. tests/sshserver.pl\
  387. }"
  388. script:
  389. - all:
  390. - changed-files:
  391. - any-glob-to-all-files: "{\
  392. **/*.pl,\
  393. **/*.sh,\
  394. curl-config.in,\
  395. docs/curl-config.1,\
  396. docs/mk-ca-bundle.1,\
  397. docs/THANKS-filter,\
  398. scripts/**\
  399. }"
  400. SMB:
  401. - all:
  402. - changed-files:
  403. - any-glob-to-all-files: "{\
  404. lib/smb.*,\
  405. tests/smbserver.py\
  406. }"
  407. SMTP:
  408. - all:
  409. - changed-files:
  410. - any-glob-to-all-files: "{\
  411. docs/examples/smtp-*,\
  412. docs/libcurl/opts/CURLOPT_MAIL*,\
  413. lib/smtp.*\
  414. }"
  415. tests:
  416. - all:
  417. - changed-files:
  418. - any-glob-to-any-file:
  419. - 'tests/**'
  420. TFTP:
  421. - all:
  422. - changed-files:
  423. - any-glob-to-all-files: "{\
  424. lib/tftp.*,\
  425. tests/tftpserver.pl,\
  426. tests/server/tftp*\
  427. }"
  428. TLS:
  429. - all:
  430. - changed-files:
  431. - any-glob-to-all-files: "{\
  432. CMake/FindBearSSL.cmake,\
  433. CMake/FindMbedTLS.cmake,\
  434. CMake/FindWolfSSL.cmake,\
  435. CMake/FindRustls.cmake,\
  436. docs/examples/ssl*,\
  437. docs/examples/*ssl.*,\
  438. docs/examples/*tls.*,\
  439. docs/SSL*,\
  440. docs/libcurl/curl_global_sslset*,\
  441. docs/libcurl/opts/CURLINFO_CA*,\
  442. docs/libcurl/opts/CURLINFO_CERT*,\
  443. docs/libcurl/opts/CURLINFO_SSL*,\
  444. docs/libcurl/opts/CURLINFO_TLS*,\
  445. docs/libcurl/opts/CURLOPT_CA*,\
  446. docs/libcurl/opts/CURLOPT_CERT*,\
  447. docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY*,\
  448. docs/libcurl/opts/CURLOPT_SSL*,\
  449. docs/libcurl/opts/CURLOPT_TLS*,\
  450. docs/libcurl/opts/CURLOPT_USE_SSL*,\
  451. lib/vtls/**,\
  452. m4/curl-bearssl.m4,\
  453. m4/curl-gnutls.m4,\
  454. m4/curl-mbedtls.m4,\
  455. m4/curl-openssl.m4,\
  456. m4/curl-rustls.m4,\
  457. m4/curl-schannel.m4,\
  458. m4/curl-sectransp.m4,\
  459. m4/curl-wolfssl.m4\
  460. }"
  461. URL:
  462. - all:
  463. - changed-files:
  464. - any-glob-to-all-files: "{\
  465. docs/libcurl/curl_url*,\
  466. docs/URL-SYNTAX.md,\
  467. docs/examples/parseurl*,\
  468. include/curl/urlapi.h,\
  469. lib/urlapi*\
  470. }"
  471. WebSocket:
  472. - all:
  473. - changed-files:
  474. - any-glob-to-all-files: "{\
  475. docs/WEBSOCKET.md*,\
  476. docs/examples/websocket*,\
  477. docs/libcurl/curl_ws_*,\
  478. docs/libcurl/libcurl-ws*,\
  479. docs/libcurl/opts/CURLOPT_WS_*,\
  480. include/curl/websockets.h,\
  481. lib/ws.*,\
  482. tests/http/clients/ws*,\
  483. tests/http/test_20_websockets.py,\
  484. tests/http/testenv/ws*\
  485. }"
  486. Windows:
  487. - all:
  488. - changed-files:
  489. - any-glob-to-all-files: "{\
  490. appveyor.*,\
  491. .github/workflows/cygwin.yml,\
  492. .github/workflows/windows.yml,\
  493. CMake/Platforms/WindowsCache.cmake,\
  494. lib/*win32*,\
  495. lib/curl_multibyte.*,\
  496. lib/rename.*,\
  497. lib/vtls/schannel*,\
  498. m4/curl-schannel.m4,\
  499. projects/**,\
  500. src/tool_doswin.c,\
  501. winbuild/**,\
  502. lib/libcurl.def\
  503. }"