Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: label PRs with GitHub Action instead of @nodejs-github-bot #38301

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
195 changes: 195 additions & 0 deletions .github/label-pr-config.yml
@@ -0,0 +1,195 @@
## 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-|node_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++, intl
/^src\/uv\./: c++, libuv
/^src\/(?:connect(?:ion)?|pipe|tcp)_/: c++, net
/^src\/node_os/: c++, os
/^src\/(?:node_main|signal_)/: c++, process
/^src\/timer_/: c++, timers
/^src\/(?:CNNICHashWhitelist|node_root_certs|tls_)/: c++, tls
/^src\/tty_/: c++, tty
/^src\/node_url/: c++, url-whatwg
/^src\/node_util/: c++, util
/^src\/(?:node_v8|v8abbr)/: c++, V8 Engine
/^src\/node_contextify/: c++, vm
/^src\/.*win32.*/: c++, windows
/^src\/node_zlib/: c++, zlib
/^src\/tracing/: c++, tracing
/^src\/node_api/: c++, n-api
/^src\/node_http2/: c++, http2, dont-land-on-v6.x
/^src\/node_report/: c++, report
/^src\/node_wasi/: c++, wasi
/^src\/node_worker/: c++, worker
/^src\/quic\/*/: c++, quic, dont-land-on-v14.x, dont-land-on-v12.x
/^src\/node_bob*/: c++, quic, dont-land-on-v14.x, dont-land-on-v12.x

# don't label python files as c++
/^src\/.+\.py$/: lib / src, needs-ci

# 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|ROADMAP|WORKING_GROUPS|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|\.travis\.yml)$/: build, needs-ci
/^tools\/(install\.py|genv8constants\.py|getnodeversion\.py|js2c\.py|utils\.py|configure\.d\/.*)$/: build, needs-ci
/^vcbuild\.bat$/: build, windows, needs-ci
/^(android-)?configure|node\.gyp|common\.gypi$/: build, needs-ci
# more specific tools
/^tools\/gyp/: tools, build, needs-ci
/^tools\/doc\//: tools, doc
/^tools\/icu\//: tools, intl, needs-ci
/^tools\/(?:osx-pkg\.pmdoc|pkgsrc)\//: tools, macos, install
/^tools\/(?:(?:mac)?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\/(code_cache|snapshot|v8_gypfiles)/: needs-ci,
/^tools\/build-addons.js/: needs-ci,
# all other tool changes should be marked as such
/^tools\//: tools
/^\.eslint|\.remark|\.editorconfig/: tools

## 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, post-mortem
/^deps\/v8\//: V8 Engine
/^deps\/uvwasi\//: wasi
/^deps\/nghttp2\/nghttp2\.gyp/: build, http2, dont-land-on-v6.x
/^deps\/nghttp2\//: http2, dont-land-on-v6.x
/^deps\/ngtcp2\//: quic, dont-land-on-v14.x, dont-land-on-v12.x
/^deps\/nghttp3\//: quic, dont-land-on-v14.x, dont-land-on-v12.x
/^deps\/([^/]+)/: $1

## JS subsystems
# Oddities first
/^lib\/(punycode|\w+\/freelist|sys\.js)/: ''
/^lib\/constants\.js$/: lib / src
/^lib\/_(debug_agent|debugger)\.js$/: debugger
/^lib(\/\w+)?\/(_)?link(ed)?list/: timers
/^lib\/\w+\/bootstrap_node/: lib / src
/^lib\/\w+\/v8_prof_/: tools
/^lib\/\w+\/socket_list/: net
/^lib\/\w+\/streams$/: stream
/^lib\/.*http2/: http2, dont-land-on-v6.x
/^lib\/worker_threads.js$/: worker
/^lib\/internal\/url\.js$/: url-whatwg
/^lib\/internal\/modules\/esm/: ES Modules
/^lib\/internal\/quic\/*/: quic, dont-land-on-v14.x, dont-land-on-v12.x

# All other lib/ files map directly
/^lib\/_(\w+)_\w+\.js?$/: $1 # e.g. _(stream)_wrap
/^lib(\/internal)?\/(\w+)\.js?$/: $2 # other .js files
/^lib\/internal\/(\w+)(?:\/|$)/: $1 # internal 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\/cctest\/test_url/: test, url-whatwg
/^test\/addons-napi\//: test, n-api
/^test\/async-hooks\//: test, async_hooks
/^test\/report\//: test, report
/^test\/fixtures\/es-module/: test, ES Modules
/^test\/es-module\//: test, ES Modules

/^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
# specific map for esm.md as it should be labeled 'ES Modules' not 'esm'
/^doc\/api\/esm.md$/: doc, ES Modules
# n-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, n-api
# quic
/^doc\/api\/quic.md$/: doc, quic, dont-land-on-v14.x, dont-land-on-v12.x
# add worker label to PRs that affect doc/api/worker_threads.md
/^doc\/api\/worker_threads.md$/: doc, worker
# 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\//: doc

# more specific benchmarks
/^benchmark\/buffers\//: benchmark, buffer
/^benchmark\/(?:arrays|es)\//: benchmark, V8 Engine
/^benchmark\/_http/: benchmark, http
/^benchmark\/(?:misc|fixtures)\//: benchmark
/^benchmark\/streams\//: benchmark, stream
/^benchmark\/([^/]+)\//: benchmark, $1

/^benchmark\//: benchmark

allJsSubSystems:
- assert
- async_hooks
- buffer
- child_process
- cluster
- console
- crypto
- debugger
- dgram
- dns
- domain
- events
- esm
- fs
- http
- https
- http2
- module
- net
- os
- path
- process
- querystring
- quic
- readline
- repl
- report
- stream
- string_decoder
- timers
- tls
- tty
- url
- util
- v8
- vm
- wasi
- worker
- zlib
14 changes: 14 additions & 0 deletions .github/workflows/label-pr.yml
@@ -0,0 +1,14 @@
name: Label PRs

on:
pull_request_target:
types: [opened]

jobs:
label:
runs-on: ubuntu-latest

steps:
- uses: node/node-pr-labeler@v1
with:
configuration-path: .github/label-pr-config.yml