labeler.yml 15 KB

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