build: update pullapprove config to better handle global approvals (#36384)

Beginning with this change, global approvals will now require the approver
to include `Reviewed-for: global-approvers`, and a docs global approval
requires `Reviewed-for: global-docs-approvers`.

Historically, providing a review by any member of the global reviewer
groups would automatically be considered a global review.  This change
enforces that global approval should be an intentional, explicit action.

The global-approvers and global-docs-approvers group will not be
requested as reviews by pullapprove.

PR Close #36384
This commit is contained in:
Joey Perrott 2020-03-30 08:25:39 -07:00 committed by Kara Erickson
parent 36535e9abd
commit a555fdba32

View File

@ -97,6 +97,12 @@
version: 3 version: 3
# Meta field that goes unused by PullApprove to allow for defining aliases to be
# used throughout the config.
meta:
1: &can-be-global-approved "\"global-approvers\" not in groups.approved"
2: &can-be-global-docs-approved "\"global-docs-approvers\" not in groups.approved"
# turn on 'draft' support # turn on 'draft' support
# https://docs.pullapprove.com/config/github-api-version/ # https://docs.pullapprove.com/config/github-api-version/
# https://developer.github.com/v3/previews/#draft-pull-requests # https://developer.github.com/v3/previews/#draft-pull-requests
@ -115,11 +121,49 @@ pullapprove_conditions:
groups: groups:
# =========================================================
# Global Approvers
#
# All reviews performed for global approvals require using
# the `Reviewed-for:` specifier to set the approval
# specificity as documented at:
# https://docs.pullapprove.com/reviewed-for/
# =========================================================
global-approvers:
type: optional
reviewers:
teams:
- framework-global-approvers
reviews:
request: 0
required: 1
reviewed_for: required
# =========================================================
# Global Approvers For Docs
#
# All reviews performed for global docs approvals require
# using the `Reviewed-for:` specifier to set the approval
# specificity as documented at:
# https://docs.pullapprove.com/reviewed-for/
# =========================================================
global-docs-approvers:
type: optional
reviewers:
teams:
- framework-global-approvers-for-docs-only-changes
reviews:
request: 0
required: 1
reviewed_for: required
# ========================================================= # =========================================================
# Framework: Animations # Framework: Animations
# ========================================================= # =========================================================
fw-animations: fw-animations:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/animations/**', 'packages/animations/**',
@ -135,9 +179,6 @@ groups:
reviewers: reviewers:
users: users:
- matsko - matsko
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -145,6 +186,8 @@ groups:
# ========================================================= # =========================================================
fw-compiler: fw-compiler:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/compiler/**', 'packages/compiler/**',
@ -161,9 +204,6 @@ groups:
- AndrewKushnir - AndrewKushnir
- JoostK - JoostK
- kara - kara
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -171,6 +211,8 @@ groups:
# ========================================================= # =========================================================
fw-ngcc: fw-ngcc:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/compiler-cli/ngcc/**' 'packages/compiler-cli/ngcc/**'
@ -181,9 +223,6 @@ groups:
- gkalpak - gkalpak
- JoostK - JoostK
- petebacondarwin - petebacondarwin
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -191,6 +230,8 @@ groups:
# ========================================================= # =========================================================
fw-core: fw-core:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/core/**', 'packages/core/**',
@ -300,9 +341,6 @@ groups:
- kara - kara
- mhevery - mhevery
- pkozlowski-opensource - pkozlowski-opensource
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -310,6 +348,8 @@ groups:
# ========================================================= # =========================================================
fw-http: fw-http:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/common/http/**', 'packages/common/http/**',
@ -323,9 +363,6 @@ groups:
users: users:
- alxhub - alxhub
- IgorMinar - IgorMinar
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -333,6 +370,8 @@ groups:
# ========================================================= # =========================================================
fw-elements: fw-elements:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/elements/**', 'packages/elements/**',
@ -344,9 +383,6 @@ groups:
users: users:
- andrewseguin - andrewseguin
- gkalpak - gkalpak
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -354,6 +390,8 @@ groups:
# ========================================================= # =========================================================
fw-forms: fw-forms:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/forms/**', 'packages/forms/**',
@ -377,9 +415,6 @@ groups:
reviewers: reviewers:
users: users:
- AndrewKushnir - AndrewKushnir
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -387,6 +422,8 @@ groups:
# ========================================================= # =========================================================
fw-i18n: fw-i18n:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/core/src/i18n/**', 'packages/core/src/i18n/**',
@ -411,9 +448,6 @@ groups:
- AndrewKushnir - AndrewKushnir
- mhevery - mhevery
- petebacondarwin - petebacondarwin
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -421,6 +455,8 @@ groups:
# ========================================================= # =========================================================
fw-platform-server: fw-platform-server:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/platform-server/**', 'packages/platform-server/**',
@ -431,9 +467,6 @@ groups:
users: users:
- alxhub - alxhub
- kyliau - kyliau
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -441,6 +474,8 @@ groups:
# ========================================================= # =========================================================
fw-router: fw-router:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/router/**', 'packages/router/**',
@ -452,9 +487,6 @@ groups:
reviewers: reviewers:
users: users:
- atscott - atscott
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -462,6 +494,8 @@ groups:
# ========================================================= # =========================================================
fw-server-worker: fw-server-worker:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/service-worker/**', 'packages/service-worker/**',
@ -480,9 +514,6 @@ groups:
- alxhub - alxhub
- gkalpak - gkalpak
- IgorMinar - IgorMinar
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -490,6 +521,8 @@ groups:
# ========================================================= # =========================================================
fw-upgrade: fw-upgrade:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/upgrade/**', 'packages/upgrade/**',
@ -511,9 +544,6 @@ groups:
users: users:
- gkalpak - gkalpak
- petebacondarwin - petebacondarwin
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -521,6 +551,8 @@ groups:
# ========================================================= # =========================================================
fw-testing: fw-testing:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'**/testing/**', '**/testing/**',
@ -533,9 +565,6 @@ groups:
- IgorMinar - IgorMinar
- kara - kara
- pkozlowski-opensource - pkozlowski-opensource
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -543,6 +572,7 @@ groups:
# ========================================================= # =========================================================
fw-benchmarks: fw-benchmarks:
conditions: conditions:
- *can-be-global-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'modules/benchmarks/**' 'modules/benchmarks/**'
@ -552,8 +582,6 @@ groups:
- IgorMinar - IgorMinar
- kara - kara
- pkozlowski-opensource - pkozlowski-opensource
teams:
- ~framework-global-approvers
# ========================================================= # =========================================================
@ -561,6 +589,7 @@ groups:
# ========================================================= # =========================================================
fw-playground: fw-playground:
conditions: conditions:
- *can-be-global-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'modules/playground/**' 'modules/playground/**'
@ -569,8 +598,6 @@ groups:
users: users:
- IgorMinar - IgorMinar
- kara - kara
teams:
- ~framework-global-approvers
# ========================================================= # =========================================================
@ -578,6 +605,8 @@ groups:
# ========================================================= # =========================================================
fw-security: fw-security:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/core/src/sanitization/**', 'packages/core/src/sanitization/**',
@ -592,15 +621,14 @@ groups:
users: users:
- IgorMinar - IgorMinar
- mhevery - mhevery
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
# Bazel # Bazel
# ========================================================= # =========================================================
bazel: bazel:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/bazel/**', 'packages/bazel/**',
@ -611,9 +639,6 @@ groups:
- IgorMinar - IgorMinar
- josephperrott - josephperrott
- kyliau - kyliau
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -621,6 +646,8 @@ groups:
# ========================================================= # =========================================================
language-service: language-service:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/language-service/**', 'packages/language-service/**',
@ -631,9 +658,6 @@ groups:
users: users:
- ayazhafiz - ayazhafiz
- kyliau - kyliau
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -641,6 +665,8 @@ groups:
# ========================================================= # =========================================================
zone-js: zone-js:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/zone.js/**', 'packages/zone.js/**',
@ -650,9 +676,6 @@ groups:
users: users:
- JiaLiPassion - JiaLiPassion
- mhevery - mhevery
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -660,6 +683,8 @@ groups:
# ========================================================= # =========================================================
benchpress: benchpress:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'packages/benchpress/**' 'packages/benchpress/**'
@ -667,9 +692,6 @@ groups:
reviewers: reviewers:
users: users:
- alxhub - alxhub
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -677,6 +699,7 @@ groups:
# ========================================================= # =========================================================
integration-tests: integration-tests:
conditions: conditions:
- *can-be-global-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'integration/**' 'integration/**'
@ -687,8 +710,6 @@ groups:
- josephperrott - josephperrott
- kara - kara
- mhevery - mhevery
teams:
- ~framework-global-approvers
# ========================================================= # =========================================================
@ -696,6 +717,8 @@ groups:
# ========================================================= # =========================================================
docs-getting-started-and-tutorial: docs-getting-started-and-tutorial:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'aio/content/guide/setup-local.md', 'aio/content/guide/setup-local.md',
@ -719,9 +742,6 @@ groups:
- aikidave - aikidave
- IgorMinar - IgorMinar
- StephenFluin - StephenFluin
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -729,6 +749,8 @@ groups:
# ========================================================= # =========================================================
docs-marketing: docs-marketing:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'aio/content/marketing/**', 'aio/content/marketing/**',
@ -742,9 +764,6 @@ groups:
users: users:
- IgorMinar - IgorMinar
- StephenFluin - StephenFluin
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -752,6 +771,8 @@ groups:
# ========================================================= # =========================================================
docs-observables: docs-observables:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'aio/content/guide/observables.md', 'aio/content/guide/observables.md',
@ -768,9 +789,6 @@ groups:
reviewers: reviewers:
users: users:
- alxhub - alxhub
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -778,6 +796,8 @@ groups:
# ========================================================= # =========================================================
docs-packaging-and-releasing: docs-packaging-and-releasing:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'docs/PUBLIC_API.md', 'docs/PUBLIC_API.md',
@ -802,9 +822,6 @@ groups:
users: users:
- IgorMinar - IgorMinar
- kara - kara
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -812,6 +829,8 @@ groups:
# ========================================================= # =========================================================
docs-cli: docs-cli:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'aio/content/cli/**', 'aio/content/cli/**',
@ -833,9 +852,6 @@ groups:
- clydin - clydin
- IgorMinar - IgorMinar
- mgechev - mgechev
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -843,6 +859,8 @@ groups:
# ========================================================= # =========================================================
docs-libraries: docs-libraries:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'aio/content/guide/creating-libraries.md', 'aio/content/guide/creating-libraries.md',
@ -854,9 +872,6 @@ groups:
- alan-agius4 - alan-agius4
- IgorMinar - IgorMinar
- mgechev - mgechev
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -864,6 +879,8 @@ groups:
# ========================================================= # =========================================================
docs-schematics: docs-schematics:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'aio/content/guide/schematics.md', 'aio/content/guide/schematics.md',
@ -877,9 +894,6 @@ groups:
- alan-agius4 - alan-agius4
- IgorMinar - IgorMinar
- mgechev - mgechev
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -887,6 +901,8 @@ groups:
# ========================================================= # =========================================================
docs-infra: docs-infra:
conditions: conditions:
- *can-be-global-approved
- *can-be-global-docs-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'aio/*', 'aio/*',
@ -907,9 +923,6 @@ groups:
- gkalpak - gkalpak
- IgorMinar - IgorMinar
- petebacondarwin - petebacondarwin
teams:
- ~framework-global-approvers
- ~framework-global-approvers-for-docs-only-changes
# ========================================================= # =========================================================
@ -917,6 +930,7 @@ groups:
# ========================================================= # =========================================================
dev-infra: dev-infra:
conditions: conditions:
- *can-be-global-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'*', '*',
@ -980,8 +994,6 @@ groups:
- gkalpak - gkalpak
- IgorMinar - IgorMinar
- josephperrott - josephperrott
teams:
- ~framework-global-approvers
# ========================================================= # =========================================================
@ -989,6 +1001,7 @@ groups:
# ========================================================= # =========================================================
public-api: public-api:
conditions: conditions:
- *can-be-global-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'goldens/public-api/**', 'goldens/public-api/**',
@ -1001,8 +1014,6 @@ groups:
reviewers: reviewers:
users: users:
- IgorMinar - IgorMinar
teams:
- ~framework-global-approvers
# ================================================ # ================================================
@ -1010,6 +1021,7 @@ groups:
# ================================================ # ================================================
size-tracking: size-tracking:
conditions: conditions:
- *can-be-global-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'aio/scripts/_payload-limits.json', 'aio/scripts/_payload-limits.json',
@ -1019,8 +1031,6 @@ groups:
users: users:
- IgorMinar - IgorMinar
- kara - kara
teams:
- ~framework-global-approvers
# ================================================ # ================================================
@ -1028,6 +1038,7 @@ groups:
# ================================================ # ================================================
circular-dependencies: circular-dependencies:
conditions: conditions:
- *can-be-global-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'goldens/packages-circular-deps.json' 'goldens/packages-circular-deps.json'
@ -1037,8 +1048,6 @@ groups:
- IgorMinar - IgorMinar
- josephperrott - josephperrott
- kara - kara
teams:
- ~framework-global-approvers
#################################################################################### ####################################################################################
@ -1050,6 +1059,7 @@ groups:
# ========================================================= # =========================================================
code-ownership: code-ownership:
conditions: conditions:
- *can-be-global-approved
- > - >
contains_any_globs(files, [ contains_any_globs(files, [
'.pullapprove.yml' '.pullapprove.yml'
@ -1057,8 +1067,6 @@ groups:
reviewers: reviewers:
users: users:
- IgorMinar - IgorMinar
teams:
- ~framework-global-approvers
# ==================================================== # ====================================================
@ -1066,6 +1074,7 @@ groups:
# ==================================================== # ====================================================
fallback: fallback:
conditions: conditions:
- *can-be-global-approved
# Groups which are found to have matching conditions are `active` # Groups which are found to have matching conditions are `active`
# according to PullApprove. If no groups are matched and considered # according to PullApprove. If no groups are matched and considered
# active, we still want to have a review occur. # active, we still want to have a review occur.
@ -1073,5 +1082,3 @@ groups:
reviewers: reviewers:
users: users:
- IgorMinar - IgorMinar
teams:
- ~framework-global-approvers