node/.github/label-pr-config.yml

211 lines
6.8 KiB
YAML

## Order of entries in this map *does* matter for the resolved labels
## earlier entries override later entries
subSystemLabels:
# src subsystems
/^src\/async_wrap/: c++, async_wrap
/^src\/(?:base64|node_buffer|string_)/: c++, buffer
/^src\/cares/: c++, cares
/^src\/(?:process_wrap|spawn_)/: c++, child_process
/^src\/(?:node_)?crypto/: c++, crypto
/^src\/debug_/: c++, debugger
/^src\/udp_/: c++, dgram
/^src\/(?:fs_|node_file|node_stat_watcher)/: c++, fs
/^src\/node_http_parser/: c++, http_parser
/^src\/node_i18n/: c++, i18n-api
/^src\/uv\./: c++, libuv
/^src\/(?:connect(?:ion)?|pipe|tcp)_/: c++, net
/^src\/node_os/: c++, os
/^src\/(?:node_main|signal_)/: c++, process
/^src\/timer[_s]/: c++, timers
/^src\/node_root_certs/: c++, tls
/^src\/tty_/: c++, tty
/^src\/node_url/: c++, whatwg-url
/^src\/node_util/: c++, util
/^src\/node_v8/: c++, v8 engine
/^src\/node_contextify/: c++, vm
/^src\/node_zlib/: c++, zlib
/^src\/tracing/: c++, tracing
/^src\/(?:node_api|js_native_api)/: c++, node-api
/^src\/node_http2/: c++, http2
/^src\/node_report/: c++, report
/^src\/node_wasi/: c++, wasi
/^src\/node_worker/: c++, worker
/^src\/quic\/*/: c++, quic
/^src\/node_bob*/: c++, quic
/^src\/node_sea/: single-executable
/^src\/node_sqlite.*/: c++, sqlite
# Properly label changes to V8 inspector integration-related files
/^src\/inspector_/: c++, inspector, needs-ci
# Don't want to label it a C++ update when we're "only" bumping the Node.js version
/^src\/(?!node_version\.h)/: c++
# BUILDING.md should be marked as 'build' in addition to 'doc'
/^BUILDING\.md$/: build, doc
# 'meta' is a very specific label for things that are policy and or meta-info related
/^(?:[A-Z]+$|CODE_OF_CONDUCT|GOVERNANCE|CHANGELOG|\.mail|\.git.+)/: meta
# Things that edit top-level .md files are always a doc change
/^\w+\.md$/: doc
# Different variants of Makefile and build files
/^(?:tools\/)?(?:Makefile|BSDmakefile|create_android_makefiles)$/: build, needs-ci
/^tools\/(?:install\.py|getnodeversion\.py|js2c\.py|utils\.py|configure\.d\/.*)$/: build, python, needs-ci
/^vcbuild\.bat$/: build, windows, needs-ci
/^(?:android-)?configure|node\.gyp|common\.gypi$/: build, needs-ci
# More specific tools
/^tools\/gyp/: tools, build, gyp, needs-ci
/^tools\/doc\//: tools, doc
/^tools\/icu\//: tools, i18n-api, icu, needs-ci
/^tools\/osx-/: tools, macos
/^tools\/test-npm/: tools, test, npm
/^tools\/test/: tools, test
/^tools\/(?:certdata|mkssldef|mk-ca-bundle)/: tools, openssl, tls
/^tools\/msvs\//: tools, windows, install, needs-ci
/^tools\/[^/]+\.bat$/: tools, windows, needs-ci
/^tools\/make-v8/: tools, v8 engine, needs-ci
/^tools\/v8_gypfiles/: tools, v8 engine, needs-ci
/^tools\/snapshot/: needs-ci
/^tools\/build-addons.mjs/: needs-ci
# All other tool changes should be marked as such
/^tools\//: tools
/^eslint\.config|\.editorconfig/: tools
/^typings\//: typings
## Dependencies
# libuv needs an explicit mapping, as the ordinary /deps/ mapping below would
# end up as libuv changes labeled with 'uv' (which is a non-existing label)
/^deps\/uv\//: libuv
/^deps\/v8\/tools\/gen-postmortem-metadata\.py/: v8 engine, python, post-mortem
/^deps\/v8\//: v8 engine
/^deps\/uvwasi\//: wasi
/^deps\/npm\//: npm, fast-track
/^deps\/nghttp2\/nghttp2\.gyp/: build, http2
/^deps\/nghttp2\//: http2
/^deps\/ngtcp2\//: quic
/^deps\/amaro\//: strip-types
/^deps\/([^/]+)/: dependencies, $1
## JS subsystems
# Oddities first
/^lib\/(?:punycode|\w+\/freelist|sys\.js)/: ''
/^lib\/constants\.js$/: lib / src
/^lib\/internal\/debugger$/: debugger
/^lib\/internal\/linkedlist\.js$/: timers
/^lib\/internal\/bootstrap/: lib / src
/^lib\/internal\/v8_prof_/: tools
/^lib\/internal\/socket(?:_list|address)\.js$/: net
/^lib\/(_stream.*|internal\/streams\/.*|stream\.js|stream\/.*)$/: stream
/^lib\/.*http2/: http2
/^lib\/worker_threads.js$/: worker
/^lib\/test.js$/: test_runner
/^lib\/internal\/url\.js$/: whatwg-url
/^lib\/internal\/modules\/esm/: esm
/^lib\/internal\/modules/: module
/^lib\/internal\/webstreams/: web streams
/^lib\/internal\/test_runner/: test_runner
# All other lib/ files map directly
/^lib\/_(\w+)_\w+\.js?$/: $1 # e.g. _(stream)_wrap
/^lib(?:\/internal)?\/(\w+)\.js?$/: $1 # Other .js files
/^lib(?:\/internal)?\/(\w+)(?:\/|$)/: $1 # Subfolders
exlusiveLabels:
# More specific tests
/^test\/addons\//: test, addons
/^test\/debugger/: test, debugger
/^test\/doctool\//: test, doc, tools
/^test\/timers/: test, timers
/^test\/pseudo-tty\//: test, tty
/^test\/inspector/: test, inspector
/^test\/cctest\/test_inspector/: test, inspector
/^test\/node-api\//: test, node-api
/^test\/js-native-api\//: test, node-api
/^test\/async-hooks\//: test, async_hooks
/^test\/report\//: test, report
/^test\/fixtures\/es-module/: test, esm
/^test\/es-module\//: test, esm
/^test\/fixtures\/wpt\/streams\//: test, web streams
/^test\/fixtures\/typescript/: test, strip-types
/^test\//: test
# Specific map for webcrypto.md as it should be labeled 'crypto'
/^doc\/api\/webcrypto.md$/: doc, crypto
# Specific map for modules.md as it should be labeled 'module' not 'modules'
/^doc\/api\/modules.md$/: doc, module
# node-api is treated separately since it is not a JS core module but is still
# considered a subsystem of sorts
/^doc\/api\/n-api.md$/: doc, node-api
# Add worker label to PRs that affect doc/api/worker_threads.md
/^doc\/api\/worker_threads.md$/: doc, worker
# test_runner documentation
/^doc\/api\/test.md$/: doc, test_runner
# Automatically tag JS subsystem-specific API doc changes
/^doc\/api\/(\w+)\.md$/: doc, $1
# Add deprecations label to PRs that affect doc/api/deprecations.md
/^doc\/api\/deprecations.md$/: doc, deprecations
/^doc\/changelogs\//: release
# Specific map for typescript.md as it should be labeled 'strip-types'
/^doc\/api\/typescript.md$/: doc, strip-types
/^doc\//: doc
# More specific benchmarks
/^benchmark\/buffers\//: benchmark, buffer
/^benchmark\/es\//: benchmark, v8 engine
/^benchmark\/_http/: benchmark, http
/^benchmark\/(?:misc|fixtures)\//: benchmark
/^benchmark\/streams\//: benchmark, stream
/^benchmark\/url\//: benchmark, url, whatwg-url
/^benchmark\/([^/]+)\//: benchmark, $1
/^benchmark\//: benchmark, performance
allJsSubSystems:
- assert
- async_hooks
- buffer
- child_process
- cluster
- console
- crypto
- debugger
- dgram
- diagnostics_channel
- dns
- domain
- events
- esm
- fs
- http
- https
- http2
- inspector
- module
- net
- os
- path
- perf_hooks
- process
- punycode
- querystring
- quic
- readline
- repl
- report
- sqlite
- stream
- string_decoder
- strip-types
- timers
- tls
- trace_events
- tty
- typings
- url
- util
- v8
- vm
- wasi
- worker
- zlib