# Copyright (C) Daniel Fandrich, <dan@coneharvesters.com>, et al.
#
# SPDX-License-Identifier: curl

# The workflow configures the .github/workflows/label.yml action
# to add labels to pull requests. This is not (yet?) a replacement for human
# triaging, but is intended to add labels to the easy cases. If the matching
# language becomes more powerful, more cases should be able to be handled.
#
# The biggest low-hanging problem is this:
# It looks like there's no way of specifying that a label be added if *all* the
# files match *any* one of a number of globs. This feature request is tracked
# in https://github.com/actions/labeler/issues/423

authentication:
- all: ['docs/mk-ca-bundle.1']
- all: ['docs/libcurl/opts/CURLINFO_HTTPAUTH*']
- all: ['docs/libcurl/opts/CURLINFO_PROXYAUTH*']
- all: ['docs/libcurl/opts/CURLOPT_KRB*']
- all: ['docs/libcurl/opts/CURLOPT_SASL*']
- all: ['docs/libcurl/opts/CURLOPT_SERVICE_NAME*']
- all: ['docs/libcurl/opts/CURLOPT_USERNAME*']
- all: ['docs/libcurl/opts/CURLOPT_USERPWD*']
- all: ['docs/libcurl/opts/CURLOPT_XOAUTH*']
- all: ['lib/*gssapi*']
- all: ['lib/*krb5*']
- all: ['lib/*ntlm*']
- all: ['lib/curl_sasl.*']
- all: ['lib/http_aws*']
- all: ['lib/http_digest.*']
- all: ['lib/http_negotiate.*']
- all: ['lib/vauth/**']
- all: ['tests/server/fake_ntlm.c']

build:
- all: ['**/CMakeLists.txt']
- all: ['**/Makefile.am']
- all: ['**/Makefile.inc']
- all: ['**/Makefile.mk']
- all: ['**/*.m4']
- all: ['**/*.mk']
- all: ['lib/libcurl*.in']
- all: ['CMake/**']
- all: ['configure.ac']
- all: ['m4/**']
- all: ['MacOSX-Framework']
- all: ['packages/**']
- all: ['plan9/**']
- all: ['projects/**']
- all: ['winbuild/**']

CI:
- any: ['.azure-pipelines.yml']
- any: ['.circleci/**']
- any: ['.cirrus.yml']
- any: ['.github/**']
- any: ['appveyor.yml']
- any: ['tests/azure.pm']
- any: ['tests/appveyor.pm']
- any: ['tests/CI.pm']

cmake:
- all: ['**/CMakeLists.txt']
- all: ['CMake/**']

cmdline tool:
- any: ['docs/cmdline-opts/**']
- any: ['src/**']

connecting & proxies:
- all: ['docs/CONNECTION-FILTERS.md']
- all: ['docs/libcurl/opts/CURLINFO_CONNECT*']
- all: ['docs/libcurl/opts/CURLINFO_PROXY*']
- all: ['docs/libcurl/opts/CURLOPT_ADDRESS*']
- all: ['docs/libcurl/opts/CURLOPT_CONNECT*']
- all: ['docs/libcurl/opts/CURLOPT_HAPROXY*']
- all: ['docs/libcurl/opts/CURLOPT_OPENSOCKET*']
- all: ['docs/libcurl/opts/CURLOPT_PRE_PROXY*']
- all: ['docs/libcurl/opts/CURLOPT_PROXY*']
- all: ['docs/libcurl/opts/CURLOPT_SOCKOPT*']
- all: ['docs/libcurl/opts/CURLOPT_SOCKS*']
- all: ['docs/libcurl/opts/CURLOPT_TCP*']
- all: ['docs/libcurl/opts/CURLOPT_TIMEOUT*']
- all: ['lib/cf-*proxy.*']
- all: ['lib/cf-socket.*']
- all: ['lib/cfilters.*']
- all: ['lib/conncache.*']
- all: ['lib/connect.*']
- all: ['lib/http_proxy.*']
- all: ['lib/if2ip.*']
- all: ['lib/noproxy.*']
- all: ['lib/socks.*']
- all: ['tests/server/socksd.c']

cookies:
- all: ['docs/HTTP-COOKIES.md']
- all: ['docs/libcurl/opts/CURLINFO_COOKIE*']
- all: ['docs/libcurl/opts/CURLOPT_COOKIE*']
- all: ['lib/cookie.*']
- all: ['lib/psl.*']

cryptography:
- all: ['docs/CIPHERS.md']
- all: ['docs/RUSTLS.md']
- all: ['docs/libcurl/opts/CURLOPT_EGDSOCKET*']
- all: ['lib/*sha256*']
- all: ['lib/curl_des.*']
- all: ['lib/curl_hmac.*']
- all: ['lib/curl_md?.*']
- all: ['lib/md?.*']
- all: ['lib/rand.*']

DICT:
- all: ['lib/dict.*']
- all: ['tests/dictserver.py']

documentation:
- all: ['**/*.md']
- all: ['**/*.txt', '!**/CMakeLists.txt']
- all: ['**/*.1']
- all: ['**/*.3']
- all: ['CHANGES']
- all: ['docs/**', '!docs/examples/**']
- all: ['GIT-INFO']
- all: ['LICENSES/**']
- all: ['README']
- all: ['RELEASE-NOTES']

FTP:
- all: ['docs/libcurl/opts/CURLINFO_FTP*']
- all: ['docs/libcurl/opts/CURLOPT_FTP*']
- all: ['docs/libcurl/opts/CURLOPT_WILDCARDMATCH*']
- all: ['lib/curl_fnmatch.*']
- all: ['lib/curl_range.*']
- all: ['lib/ftp*']
- all: ['tests/ftp*']

GOPHER:
- all: ['lib/gopher*']

HTTP:
- all: ['docs/HSTS.md']
- all: ['docs/HTTP-COOKIES.md']
- all: ['docs/libcurl/opts/CURLINFO_COOKIE*']
- all: ['docs/libcurl/opts/CURLOPT_COOKIE*']
- all: ['docs/libcurl/opts/CURLINFO_HTTP_**']
- all: ['docs/libcurl/opts/CURLINFO_REDIRECT*']
- all: ['docs/libcurl/opts/CURLINFO_REFER*']
- all: ['docs/libcurl/opts/CURLOPT_FOLLOWLOCATION*']
- all: ['docs/libcurl/opts/CURLOPT_HSTS*']
- all: ['docs/libcurl/opts/CURLOPT_HTTP*']
- all: ['docs/libcurl/opts/CURLOPT_POST.*']
- all: ['docs/libcurl/opts/CURLOPT_POSTFIELD*']
- all: ['docs/libcurl/opts/CURLOPT_POSTREDIR*']
- all: ['docs/libcurl/opts/CURLOPT_REDIR*']
- all: ['docs/libcurl/opts/CURLOPT_REFER*']
- all: ['docs/libcurl/opts/CURLOPT_TRAILER*']
- all: ['docs/libcurl/opts/CURLOPT_TRANSFER_ENCODING*']
- all: ['lib/cf-https*']
- all: ['lib/cf-h1*']
- all: ['lib/cf-h2*']
- all: ['lib/cookie.*']
- all: ['lib/http*']
- all: ['tests/http*']
- all: ['tests/http-server.pl']
- all: ['tests/http/*']
- all: ['tests/nghttp*']
- all: ['tests/tests-httpd/*']

HTTP/2:
- all: ['docs/HTTP2.md']
- all: ['docs/libcurl/opts/CURLOPT_STREAM*']
- all: ['lib/http2*']
- all: ['tests/http2-server.pl']

HTTP/3:
- all: ['.github/workflows/ngtcp2*']
- all: ['.github/workflows/pytest.yml']
- all: ['docs/HTTP3.md']
- all: ['lib/vquic/**']
- all: ['tests/http3-server.pl']
- all: ['tests/nghttpx.conf']

Hyper:
- all: ['lib/c-hyper.*']

IMAP:
- all: ['lib/imap*']

LDAP:
- all: ['lib/*ldap*']

libcurl API:
- all: ['docs/libcurl/ABI.md']
- any: ['include/curl/**']

MIME:
- all: ['docs/libcurl/curl_mime_*']
- all: ['docs/libcurl/opts/CURLOPT_MIME*']
- all: ['lib/mime*']

MQTT:
- all: ['docs/MQTT.md']
- all: ['lib/mqtt*']
- all: ['tests/server/mqttd.c']

name lookup:
- all: ['docs/libcurl/opts/CURLINFO_NAMELOOKUP*']
- all: ['docs/libcurl/opts/CURLOPT_DNS*']
- all: ['docs/libcurl/opts/CURLOPT_DOH*']
- all: ['docs/libcurl/opts/CURLOPT_RESOLVE*']
- all: ['lib/asyn*']
- all: ['lib/curl_gethostname.*']
- all: ['lib/doh*']
- all: ['lib/host*']
- all: ['lib/idn*']
- all: ['lib/inet_pton.*']
- all: ['lib/socketpair*']
- all: ['tests/server/resolve.c']

POP3:
- all: ['lib/pop3.*']

RTMP:
- all: ['lib/curl_rtmp.*']

RTSP:
- all: ['docs/libcurl/opts/CURLINFO_RTSP*']
- all: ['docs/libcurl/opts/CURLOPT_RTSP*']
- all: ['lib/rtsp.*']
- all: ['tests/rtspserver.pl']
- all: ['tests/server/rtspd.c']

SCP/SFTP:
- all: ['docs/libcurl/opts/CURLOPT_SSH*']
- all: ['lib/vssh/**']
- all: ['tests/sshhelp.pm']
- all: ['tests/sshserver.pl']

script:
- all: ['**/*.pl']
- all: ['**/*.sh']
- all: ['curl-config.in']
- all: ['docs/curl-config.1']
- all: ['docs/mk-ca-bundle.1']
- all: ['docs/THANKS-filter']
- all: ['scripts/**']

SMB:
- all: ['lib/smb.*']
- all: ['tests/smbserver.py']

SMTP:
- all: ['docs/libcurl/opts/CURLOPT_MAIL*']
- all: ['lib/smtp.*']

tests:
- any: ['tests/**']

TFTP:
- all: ['lib/tftp.*']
- all: ['tests/tftpserver.pl']
- all: ['tests/server/tftp*']

TLS:
- all: ['docs/HYPER.md']
- all: ['docs/SSL*']
- all: ['docs/libcurl/opts/CURLINFO_CA*']
- all: ['docs/libcurl/opts/CURLINFO_CERT*']
- all: ['docs/libcurl/opts/CURLINFO_SSL*']
- all: ['docs/libcurl/opts/CURLINFO_TLS*']
- all: ['docs/libcurl/opts/CURLOPT_CA*']
- all: ['docs/libcurl/opts/CURLOPT_CERT*']
- all: ['docs/libcurl/opts/CURLOPT_PINNEDPUBLICKEY*']
- all: ['docs/libcurl/opts/CURLOPT_SSL*']
- all: ['docs/libcurl/opts/CURLOPT_TLS*']
- all: ['docs/libcurl/opts/CURLOPT_USE_SSL*']
- all: ['lib/vtls/**']

URL:
- all: ['docs/libcurl/curl_url*']
- all: ['docs/URL-SYNTAX.md']
- all: ['include/curl/urlapi.h']
- all: ['lib/urlapi*']

WebSocket:
- all: ['docs/WEBSOCKET.md*']
- all: ['docs/libcurl/opts/CURLOPT_WS_*']
- all: ['docs/libcurl/curl_ws_*']
- all: ['include/curl/websockets.h']
- all: ['lib/ws.*']

Windows:
- all: ['CMake/Platforms/WindowsCache.cmake']
- all: ['lib/*win32*']
- all: ['lib/curl_multibyte.*']
- all: ['lib/rename.*']
- all: ['lib/vtls/schannel*']
- all: ['m4/curl-schannel.m4']
- all: ['projects/**']
- all: ['src/tool_doswin.c']
- all: ['winbuild/**']
