mirror of
https://github.com/angular/angular
synced 2026-05-24 09:28:37 +00:00
1402 lines
52 KiB
YAML
1402 lines
52 KiB
YAML
####################################################################################
|
|
####################################################################################
|
|
# Angular Code Ownership #
|
|
####################################################################################
|
|
####################################################################################
|
|
#
|
|
# Configuration of code ownership and review approvals for the angular/angular repo.
|
|
#
|
|
# More info: https://docs.pullapprove.com/
|
|
#
|
|
# =========================================================
|
|
# General rules / philosophy
|
|
# =========================================================
|
|
#
|
|
# - We trust that people do the right thing and won't approve changes they don't feel confident reviewing
|
|
# - We enforce that only approved PRs are merged ensuring that unreviewed code isn't accidentally merged
|
|
# - We distribute approval rights as much as possible to help us scale better
|
|
# - Groups have one or two global approvers groups as fallbacks:
|
|
# - @angular/fw-global-approvers: for approving minor changes, large-scale refactorings, and emergency situations.
|
|
# - @angular/fw-global-approvers-for-docs-only-changes: for approving minor documentation-only changes that don't require engineering review
|
|
# - A small number of file groups have very limited number of reviewers because incorrect changes to the files they guard would have serious consequences (e.g. security, public api)
|
|
#
|
|
# Configuration nuances:
|
|
#
|
|
# - This configuration works in conjunction with the protected branch settings that require all changes to be made via pull requests with at least one approval.
|
|
# - This approval can come from an appropriate codeowner, or any repo collaborator (person with write access) if the PR is authored by a codeowner.
|
|
# - All groups whose pullapprove rules are matched will be required for overall approval.
|
|
#
|
|
# NOTE:
|
|
# In the case of emergency, the repo administrators which include the current angular caretaker
|
|
# can bypass this reviewer approval requirement, this is expected as a last resort and to be
|
|
# done exceedingly sparingly.
|
|
|
|
####################################################################################
|
|
# GitHub usernames
|
|
####################################################################################
|
|
# See reviewer list under `required-minimum-review` group. Team member names and
|
|
# usernames are managed there.
|
|
|
|
####################################################################################
|
|
# Approval Groups
|
|
####################################################################################
|
|
# =========================================================
|
|
# @angular/framework-global-approvers
|
|
# =========================================================
|
|
# Used for approving minor changes, large-scale refactorings, and in emergency situations.
|
|
#
|
|
# alxhub
|
|
# jelbourn
|
|
# josephperrott
|
|
#
|
|
# =========================================================
|
|
# @angular/framework-global-approvers-for-docs-only-changes
|
|
# =========================================================
|
|
# Used for approving minor documentation-only changes that don't require engineering review.
|
|
|
|
version: 3
|
|
|
|
availability:
|
|
users_unavailable: []
|
|
|
|
# Meta field that goes unused by PullApprove to allow for defining aliases to be
|
|
# used throughout the config.
|
|
meta:
|
|
# Note: Because all inactive groups start as pending, we are only checking pending and rejected active groups.
|
|
no-groups-above-this-pending: &no-groups-above-this-pending len(groups.active.pending.exclude("required-minimum-review")) == 0
|
|
no-groups-above-this-rejected: &no-groups-above-this-rejected len(groups.active.rejected.exclude("required-minimum-review")) == 0
|
|
|
|
defaults: &defaults
|
|
reviews:
|
|
# Authors provide their approval implicitly, this approval allows for a reviewer
|
|
# from a group not to need a review specifically for an area of the repository
|
|
# they own. This is coupled with the `required-minimum-review` group which requires
|
|
# that all PRs are reviewed by at least one team member who is not the author of
|
|
# the PR.
|
|
author_value: 1
|
|
|
|
# turn on 'draft' support
|
|
# https://docs.pullapprove.com/config/github-api-version/
|
|
# https://developer.github.com/v3/previews/#draft-pull-requests
|
|
github_api_version: 'shadow-cat-preview'
|
|
|
|
# https://docs.pullapprove.com/config/overrides/
|
|
# Note that overrides are processed in order.
|
|
overrides:
|
|
# For PRs which are still being worked on, either still in draft mode or indicated through WIP in
|
|
# title or label, PullApprove stays in a pending state until its ready for review.
|
|
- if: "draft or 'WIP' in title or 'PR state: WIP' in labels"
|
|
status: pending
|
|
explanation: 'Waiting to send reviews as PR is WIP'
|
|
# Disable PullApprove on specific PRs by adding the `PullApprove: disable` label
|
|
- if: "'PullApprove: disable' in labels"
|
|
status: success
|
|
explanation: "PullApprove skipped because of 'PullApprove: disable' label"
|
|
# If no file matching based groups are active, report this pull request as failing. Most likely,
|
|
# the PR author would need to update the PullApprove config, or create new group.
|
|
- if: len(groups.active.exclude("required-minimum-review").exclude("global-*")) == 0 and len(groups.approved.include("global-*")) == 0
|
|
status: failure
|
|
explanation: 'At least one group must match this PR. Please update an existing review group, or create a new group.'
|
|
# If any global dev-infra approval is given the status should be passing.
|
|
- if: len(groups.approved.include("global-dev-infra-approvers")) == 1
|
|
status: success
|
|
explanation: 'Passing as globally approved by dev-infra'
|
|
# If any global docs approval is given the status should be passing.
|
|
- if: len(groups.approved.include("global-docs-approvers")) == 1
|
|
status: success
|
|
explanation: 'Passing as globally approved by docs'
|
|
# If any global approval is given the status should be passing.
|
|
- if: len(groups.approved.include("global-approvers")) == 1
|
|
status: success
|
|
explanation: 'Passing as globally approved by global approvers'
|
|
|
|
groups:
|
|
# =========================================================
|
|
# Framework: Animations
|
|
# =========================================================
|
|
fw-animations:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/animations/**/{*,.*}',
|
|
'packages/platform-browser/animations/**/{*,.*}',
|
|
'aio/content/guide/animations.md',
|
|
'aio/content/guide/add-an-animation.md',
|
|
'aio/content/guide/animate-state-style.md',
|
|
'aio/content/guide/animation-api-summary.md',
|
|
'aio/content/guide/understanding-angular-animation.md',
|
|
'aio/content/examples/animations/**/{*,.*}',
|
|
'aio/content/images/guide/animations/**/{*,.*}',
|
|
'aio/content/guide/complex-animation-sequences.md',
|
|
'aio/content/guide/reusable-animations.md',
|
|
'aio/content/guide/route-animations.md',
|
|
'aio/content/guide/transition-and-triggers.md',
|
|
'aio/content/guide/animations-attach-to-html-template.md',
|
|
'aio/content/guide/animation-transition-timing.md'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- crisbeto
|
|
- ~jelbourn
|
|
- jessicajaniuk
|
|
|
|
# =========================================================
|
|
# Framework: Compiler
|
|
# =========================================================
|
|
fw-compiler:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/compiler/**/{*,.*}',
|
|
'packages/examples/compiler/**/{*,.*}',
|
|
'aio/content/examples/angular-compiler-options/**/{*,.*}',
|
|
'packages/compiler-cli/**/{*,.*}',
|
|
'aio/content/guide/angular-compiler-options.md',
|
|
'aio/content/guide/aot-compiler.md',
|
|
'aio/content/guide/aot-metadata-errors.md',
|
|
'aio/content/guide/template-typecheck.md',
|
|
'aio/content/extended-diagnostics/*.md'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- crisbeto
|
|
- devversion
|
|
- dylhunn
|
|
- JoostK
|
|
|
|
# =========================================================
|
|
# Framework: Migrations
|
|
# =========================================================
|
|
fw-migrations:
|
|
<<: *defaults
|
|
conditions:
|
|
- files.include("packages/core/schematics/*")
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- crisbeto
|
|
- devversion
|
|
- dylhunn
|
|
- jessicajaniuk
|
|
- AndrewKushnir
|
|
|
|
# =========================================================
|
|
# Framework: Core
|
|
# =========================================================
|
|
fw-core:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files.exclude("packages/core/schematics/*"), [
|
|
'packages/core/**/{*,.*}',
|
|
'packages/examples/core/**/{*,.*}',
|
|
'packages/platform-browser/**/{*,.*}',
|
|
'packages/examples/platform-browser/**/{*,.*}',
|
|
'packages/platform-browser-dynamic/**/{*,.*}',
|
|
'packages/docs/**/{*,.*}',
|
|
'aio/content/guide/accessibility.md',
|
|
'aio/content/examples/accessibility/**/{*,.*}',
|
|
'aio/content/guide/architecture-components.md',
|
|
'aio/content/guide/architecture-modules.md',
|
|
'aio/content/guide/architecture-next-steps.md',
|
|
'aio/content/guide/architecture-services.md',
|
|
'aio/content/guide/architecture.md',
|
|
'aio/content/examples/architecture/**/{*,.*}',
|
|
'aio/content/guide/rxjs-interop.md',
|
|
'aio/content/images/guide/architecture/**/{*,.*}',
|
|
'aio/content/guide/attribute-directives.md',
|
|
'aio/content/examples/attribute-directives/**/{*,.*}',
|
|
'aio/content/images/guide/attribute-directives/**/{*,.*}',
|
|
'aio/content/guide/bootstrapping.md',
|
|
'aio/content/examples/bootstrapping/**/{*,.*}',
|
|
'aio/content/guide/change-detection.md',
|
|
'aio/content/guide/change-detection-zone-pollution.md',
|
|
'aio/content/guide/change-detection-slow-computations.md',
|
|
'aio/content/guide/change-detection-skipping-subtrees.md',
|
|
'aio/content/images/guide/change-detection/**/{*,.*}',
|
|
'aio/content/guide/class-binding.md',
|
|
'aio/content/guide/cheatsheet.md',
|
|
'aio/content/guide/component-interaction.md',
|
|
'aio/content/examples/component-interaction/**/{*,.*}',
|
|
'aio/content/images/guide/component-interaction/**/{*,.*}',
|
|
'aio/content/guide/component-overview.md',
|
|
'aio/content/errors/*.md',
|
|
'aio/content/examples/errors/**/{*,.*}',
|
|
'aio/content/examples/component-overview/**/{*,.*}',
|
|
'aio/content/guide/component-styles.md',
|
|
'aio/content/guide/developer-guide-overview.md',
|
|
'aio/content/guide/view-encapsulation.md',
|
|
'aio/content/examples/component-styles/**/{*,.*}',
|
|
'aio/content/examples/content-projection/**/{*,.*}',
|
|
'aio/content/guide/content-projection.md',
|
|
'aio/content/guide/creating-injectable-service.md',
|
|
'aio/content/guide/dependency-injection-overview.md',
|
|
'aio/content/guide/dependency-injection.md',
|
|
'aio/content/examples/dependency-injection/**/{*,.*}',
|
|
'aio/content/images/guide/dependency-injection/**/{*,.*}',
|
|
'aio/content/guide/dependency-injection-in-action.md',
|
|
'aio/content/examples/dependency-injection-in-action/**/{*,.*}',
|
|
'aio/content/images/guide/dependency-injection-in-action/**/{*,.*}',
|
|
'aio/content/guide/dependency-injection-navtree.md',
|
|
'aio/content/guide/dependency-injection-providers.md',
|
|
'aio/content/guide/dependency-injection-context.md',
|
|
'aio/content/guide/lightweight-injection-tokens.md',
|
|
'aio/content/guide/displaying-data.md',
|
|
'aio/content/examples/displaying-data/**/{*,.*}',
|
|
'aio/content/images/guide/displaying-data/**/{*,.*}',
|
|
'aio/content/guide/dynamic-component-loader.md',
|
|
'aio/content/examples/dynamic-component-loader/**/{*,.*}',
|
|
'aio/content/images/guide/dynamic-component-loader/**/{*,.*}',
|
|
'aio/content/guide/example-apps-list.md',
|
|
'aio/content/guide/feature-modules.md',
|
|
'aio/content/examples/feature-modules/**/{*,.*}',
|
|
'aio/content/images/guide/feature-modules/**/{*,.*}',
|
|
'aio/content/guide/frequent-ngmodules.md',
|
|
'aio/content/images/guide/frequent-ngmodules/**/{*,.*}',
|
|
'aio/content/guide/hierarchical-dependency-injection.md',
|
|
'aio/content/examples/hierarchical-dependency-injection/**/{*,.*}',
|
|
'aio/content/guide/image-directive.md',
|
|
'aio/content/guide/image-directive-setup.md',
|
|
'aio/content/examples/providers-viewproviders/**/{*,.*}',
|
|
'aio/content/examples/resolution-modifiers/**/{*,.*}',
|
|
'aio/content/guide/lazy-loading-ngmodules.md',
|
|
'aio/content/examples/lazy-loading-ngmodules/**/{*,.*}',
|
|
'aio/content/images/guide/lazy-loading-ngmodules/**/{*,.*}',
|
|
'aio/content/guide/lifecycle-hooks.md',
|
|
'aio/content/examples/lifecycle-hooks/**/{*,.*}',
|
|
'aio/content/images/guide/lifecycle-hooks/**/{*,.*}',
|
|
'aio/content/examples/ngcontainer/**/{*,.*}',
|
|
'aio/content/guide/ngmodules.md',
|
|
'aio/content/examples/ngmodules/**/{*,.*}',
|
|
'aio/content/guide/ngmodule-api.md',
|
|
'aio/content/guide/ngmodule-faq.md',
|
|
'aio/content/guide/ngmodule-vs-jsmodule.md',
|
|
'aio/content/guide/module-types.md',
|
|
'aio/content/guide/template-overview.md',
|
|
'aio/content/guide/template-syntax.md',
|
|
'aio/content/guide/built-in-template-functions.md',
|
|
'aio/content/examples/built-in-template-functions/**/{*,.*}',
|
|
'aio/content/guide/event-binding.md',
|
|
'aio/content/guide/event-binding-concepts.md',
|
|
'aio/content/examples/event-binding/**/{*,.*}',
|
|
'aio/content/guide/interpolation.md',
|
|
'aio/content/examples/interpolation/**/{*,.*}',
|
|
'aio/content/examples/template-syntax/**/{*,.*}',
|
|
'aio/content/images/guide/template-syntax/**/{*,.*}',
|
|
'aio/content/guide/binding-overview.md',
|
|
'aio/content/guide/binding-syntax.md',
|
|
'aio/content/examples/binding-syntax/**/{*,.*}',
|
|
'aio/content/guide/property-binding.md',
|
|
'aio/content/examples/property-binding/**/{*,.*}',
|
|
'aio/content/guide/property-binding-best-practices.md',
|
|
'aio/content/guide/attribute-binding.md',
|
|
'aio/content/examples/attribute-binding/**/{*,.*}',
|
|
'aio/content/guide/two-way-binding.md',
|
|
'aio/content/examples/two-way-binding/**/{*,.*}',
|
|
'aio/content/guide/built-in-directives.md',
|
|
'aio/content/guide/directive-composition-api.md',
|
|
'aio/content/examples/built-in-directives/**/{*,.*}',
|
|
'aio/content/images/guide/built-in-directives/**/{*,.*}',
|
|
'aio/content/guide/template-reference-variables.md',
|
|
'aio/content/examples/template-reference-variables/**/{*,.*}',
|
|
'aio/content/guide/inputs-outputs.md',
|
|
'aio/content/examples/inputs-outputs/**/{*,.*}',
|
|
'aio/content/images/guide/inputs-outputs/**/{*,.*}',
|
|
'aio/content/guide/understanding-template-expr-overview.md',
|
|
'aio/content/guide/template-expression-operators.md',
|
|
'aio/content/examples/template-expression-operators/**/{*,.*}',
|
|
'aio/content/guide/pipes.md',
|
|
'aio/content/guide/pipes-custom-data-trans.md',
|
|
'aio/content/guide/pipes-overview.md',
|
|
'aio/content/guide/pipe-precedence.md',
|
|
'aio/content/guide/pipes-transform-data.md',
|
|
'aio/content/guide/pipe-template.md',
|
|
'aio/content/examples/pipes/**/{*,.*}',
|
|
'aio/content/images/guide/pipes/**/{*,.*}',
|
|
'aio/content/guide/providers.md',
|
|
'aio/content/examples/providers/**/{*,.*}',
|
|
'aio/content/images/guide/providers/**/{*,.*}',
|
|
'aio/content/guide/signal-queries.md',
|
|
'aio/content/guide/singleton-services.md',
|
|
'aio/content/guide/signal-inputs.md',
|
|
'aio/content/guide/sharing-ngmodules.md',
|
|
'aio/content/guide/standalone-components.md',
|
|
'aio/content/guide/standalone-migration.md',
|
|
'aio/content/guide/structural-directives.md',
|
|
'aio/content/examples/structural-directives/**/{*,.*}',
|
|
'aio/content/guide/svg-in-templates.md',
|
|
'aio/content/guide/style-precedence.md',
|
|
'aio/content/images/guide/structural-directives/**/{*,.*}',
|
|
'aio/content/guide/template-statements.md',
|
|
'aio/content/guide/understanding-angular-overview.md',
|
|
'aio/content/guide/user-input.md',
|
|
'aio/content/examples/user-input/**/{*,.*}',
|
|
'aio/content/images/guide/user-input/**/{*,.*}',
|
|
'aio/content/guide/view-encapsulation.md',
|
|
'aio/content/examples/view-encapsulation/**/{*,.*}',
|
|
'aio/content/images/guide/view-encapsulation/**/{*,.*}',
|
|
'aio/content/special-elements/**/{*,.*}',
|
|
'aio/content/blocks/**/{*,.*}',
|
|
'aio/content/guide/hydration.md',
|
|
'aio/content/guide/defer.md',
|
|
'aio/content/guide/signals.md',
|
|
'aio/content/guide/control_flow.md',
|
|
'aio/content/guide/model-inputs.md',
|
|
'aio/content/examples/injection-token/**/{*,.*}',
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- crisbeto
|
|
- devversion
|
|
- dylhunn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
|
|
# =========================================================
|
|
# Framework: Common
|
|
# =========================================================
|
|
fw-common:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files.exclude("packages/common/http/*"), [
|
|
'packages/common/**/{*,.*}',
|
|
'packages/examples/common/**/{*,.*}',
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- dylhunn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
|
|
# =========================================================
|
|
# Framework: Http
|
|
# =========================================================
|
|
fw-http:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/common/http/**/{*,.*}',
|
|
'packages/examples/http/**/{*,.*}',
|
|
'aio/content/guide/understanding-communicating-with-http.md',
|
|
'aio/content/guide/http-configure-http-url-parameters.md',
|
|
'aio/content/guide/http-handle-request-errors.md',
|
|
'aio/content/guide/http-intercept-requests-and-responses.md',
|
|
'aio/content/guide/http-interceptor-use-cases.md',
|
|
'aio/content/guide/http-make-jsonp-request.md',
|
|
'aio/content/guide/http-optimize-server-interaction.md',
|
|
'aio/content/guide/http-pass-metadata-to-interceptors.md',
|
|
'aio/content/guide/http-request-data-from-server.md',
|
|
'aio/content/guide/http-security-xsrf-protection.md',
|
|
'aio/content/guide/http-send-data-to-server.md',
|
|
'aio/content/guide/http-server-communication.md',
|
|
'aio/content/guide/http-setup-server-communication.md',
|
|
'aio/content/guide/http-test-requests.md',
|
|
'aio/content/guide/http-track-show-request-progress.md',
|
|
'aio/content/examples/http/**/{*,.*}',
|
|
'aio/content/images/guide/http/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- dylhunn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
|
|
# =========================================================
|
|
# Framework: Elements
|
|
# =========================================================
|
|
fw-elements:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/elements/**/{*,.*}',
|
|
'aio/content/examples/elements/**/{*,.*}',
|
|
'aio/content/images/guide/elements/**/{*,.*}',
|
|
'aio/content/guide/elements.md'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- andrewseguin
|
|
- atscott
|
|
- dylhunn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
|
|
# =========================================================
|
|
# Framework: Forms
|
|
# =========================================================
|
|
fw-forms:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/forms/**/{*,.*}',
|
|
'packages/examples/forms/**/{*,.*}',
|
|
'aio/content/guide/forms.md',
|
|
'aio/content/examples/forms/**/{*,.*}',
|
|
'aio/content/images/guide/forms/**/{*,.*}',
|
|
'aio/content/guide/forms-overview.md',
|
|
'aio/content/examples/forms-overview/**/{*,.*}',
|
|
'aio/content/images/guide/forms-overview/**/{*,.*}',
|
|
'aio/content/guide/form-validation.md',
|
|
'aio/content/guide/typed-forms.md',
|
|
'aio/content/examples/form-validation/**/{*,.*}',
|
|
'aio/content/images/guide/form-validation/**/{*,.*}',
|
|
'aio/content/guide/dynamic-form.md',
|
|
'aio/content/examples/dynamic-form/**/{*,.*}',
|
|
'aio/content/images/guide/dynamic-form/**/{*,.*}',
|
|
'aio/content/guide/reactive-forms.md',
|
|
'aio/content/examples/reactive-forms/**/{*,.*}',
|
|
'aio/content/images/guide/reactive-forms/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- AndrewKushnir
|
|
- dylhunn
|
|
|
|
# =========================================================
|
|
# Framework: i18n
|
|
# =========================================================
|
|
fw-i18n:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/core/src/i18n/**/{*,.*}',
|
|
'packages/core/src/render3/i18n/**/{*,.*}',
|
|
'packages/core/src/render3/instructions/i18n.ts',
|
|
'packages/core/src/render3/interfaces/i18n.ts',
|
|
'packages/common/locales/**/{*,.*}',
|
|
'packages/common/src/i18n/**/{*,.*}',
|
|
'packages/common/src/pipes/date_pipe.ts',
|
|
'packages/common/src/pipes/i18n_plural_pipe.ts',
|
|
'packages/common/src/pipes/i18n_select_pipe.ts',
|
|
'packages/common/src/pipes/number_pipe.ts',
|
|
'packages/compiler/src/i18n/**/{*,.*}',
|
|
'packages/compiler/src/render3/view/i18n/**/{*,.*}',
|
|
'packages/compiler-cli/src/extract_i18n.ts',
|
|
'packages/localize/**/{*,.*}',
|
|
'aio/content/guide/i18n-overview.md',
|
|
'aio/content/guide/i18n-common-overview.md',
|
|
'aio/content/guide/i18n-common-add-package.md',
|
|
'aio/content/guide/i18n-common-locale-id.md',
|
|
'aio/content/guide/i18n-common-format-data-locale.md',
|
|
'aio/content/guide/i18n-common-prepare.md',
|
|
'aio/content/guide/i18n-common-translation-files.md',
|
|
'aio/content/guide/i18n-common-merge.md',
|
|
'aio/content/guide/i18n-common-deploy.md',
|
|
'aio/content/guide/i18n-example.md',
|
|
'aio/content/guide/i18n-optional-overview.md',
|
|
'aio/content/guide/i18n-optional-manual-runtime-locale.md',
|
|
'aio/content/guide/i18n-optional-import-global-variants.md',
|
|
'aio/content/guide/i18n-optional-manage-marked-text.md',
|
|
'aio/content/examples/i18n/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- AndrewKushnir
|
|
- dgp1130
|
|
|
|
# =========================================================
|
|
# Framework: Platform Server
|
|
# =========================================================
|
|
fw-platform-server:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/platform-server/**/{*,.*}',
|
|
'aio/content/guide/prerendering.md',
|
|
'aio/content/guide/ssr.md',
|
|
'aio/content/examples/ssr/**/{*,.*}',
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alan-agius4
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- dylhunn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
|
|
# =========================================================
|
|
# Framework: Router
|
|
# =========================================================
|
|
fw-router:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/router/**/{*,.*}',
|
|
'packages/examples/router/**/{*,.*}',
|
|
'aio/content/guide/router.md',
|
|
'aio/content/guide/router-tutorial.md',
|
|
'aio/content/guide/router-tutorial-toh.md',
|
|
'aio/content/guide/routing-overview.md',
|
|
'aio/content/guide/router-reference.md',
|
|
'aio/content/examples/router-tutorial/**/{*,.*}',
|
|
'aio/content/examples/router/**/{*,.*}',
|
|
'aio/content/images/guide/router/**/{*,.*}',
|
|
'aio/content/guide/routing-with-urlmatcher.md',
|
|
'aio/content/examples/routing-with-urlmatcher/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- AndrewKushnir
|
|
- atscott
|
|
|
|
# =========================================================
|
|
# Framework: Service Worker
|
|
# =========================================================
|
|
fw-service-worker:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/service-worker/**/{*,.*}',
|
|
'packages/examples/service-worker/**/{*,.*}',
|
|
'aio/content/guide/service-worker-getting-started.md',
|
|
'aio/content/examples/service-worker-getting-started/**/{*,.*}',
|
|
'aio/content/guide/app-shell.md',
|
|
'aio/content/guide/service-worker-communications.md',
|
|
'aio/content/guide/service-worker-config.md',
|
|
'aio/content/guide/service-worker-devops.md',
|
|
'aio/content/guide/service-worker-intro.md',
|
|
'aio/content/guide/service-worker-notifications.md',
|
|
'aio/content/images/guide/service-worker/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
|
|
# =========================================================
|
|
# Framework: Upgrade
|
|
# =========================================================
|
|
fw-upgrade:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/upgrade/**/{*,.*}',
|
|
'packages/common/upgrade/**/{*,.*}',
|
|
'packages/examples/upgrade/**/{*,.*}',
|
|
'aio/content/guide/upgrade.md',
|
|
'aio/content/examples/upgrade-lazy-load-ajs/**/{*,.*}',
|
|
'aio/content/examples/upgrade-module/**/{*,.*}',
|
|
'aio/content/images/guide/upgrade/**/{*,.*}',
|
|
'aio/content/examples/upgrade-phonecat-1-typescript/**/{*,.*}',
|
|
'aio/content/examples/upgrade-phonecat-2-hybrid/**/{*,.*}',
|
|
'aio/content/examples/upgrade-phonecat-3-final/**/{*,.*}',
|
|
'aio/content/guide/upgrade-performance.md',
|
|
'aio/content/guide/upgrade-setup.md',
|
|
'aio/content/guide/ajs-quick-reference.md',
|
|
'aio/content/examples/ajs-quick-reference/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- jessicajaniuk
|
|
|
|
# =========================================================
|
|
# Framework: Testing
|
|
# =========================================================
|
|
fw-testing:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files.exclude('packages/compiler-cli/*').exclude('packages/language-service/*').exclude('packages/service-worker/*'), [
|
|
'packages/**/testing/**/{*,.*}',
|
|
'aio/content/guide/testing.md',
|
|
'aio/content/guide/test-debugging.md',
|
|
'aio/content/guide/testing-attribute-directives.md',
|
|
'aio/content/guide/testing-code-coverage.md',
|
|
'aio/content/guide/testing-components-basics.md',
|
|
'aio/content/guide/testing-components-scenarios.md',
|
|
'aio/content/guide/testing-pipes.md',
|
|
'aio/content/guide/testing-services.md',
|
|
'aio/content/guide/testing-utility-apis.md',
|
|
'aio/content/examples/testing/**/{*,.*}',
|
|
'aio/content/images/guide/testing/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- dylhunn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
|
|
# =========================================================
|
|
# Framework: Benchmarks
|
|
# =========================================================
|
|
fw-benchmarks:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'modules/benchmarks/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- dylhunn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
|
|
# =========================================================
|
|
# Framework: Playground
|
|
# =========================================================
|
|
fw-playground:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'modules/playground/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- dylhunn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
|
|
# =========================================================
|
|
# Framework: Security
|
|
# =========================================================
|
|
fw-security:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/core/src/sanitization/**/{*,.*}',
|
|
'packages/core/test/linker/security_integration_spec.ts',
|
|
'packages/compiler/src/schema/**/{*,.*}',
|
|
'packages/platform-browser/src/security/**/{*,.*}',
|
|
'packages/tsconfig-tsec-base.json',
|
|
'packages/tsec-exemption.json',
|
|
'tools/tsec.bzl',
|
|
'aio/content/guide/security.md',
|
|
'aio/content/examples/security/**/{*,.*}',
|
|
'aio/content/images/guide/security/**/{*,.*}',
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- jelbourn
|
|
- josephperrott
|
|
- pkozlowski-opensource
|
|
reviews:
|
|
request: -1 # request reviews from everyone
|
|
required: 2 # require at least 2 approvals
|
|
reviewed_for: required
|
|
|
|
# =========================================================
|
|
# Bazel
|
|
# =========================================================
|
|
bazel:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/bazel/**/{*,.*}',
|
|
])
|
|
reviewers:
|
|
users:
|
|
- devversion
|
|
- josephperrott
|
|
|
|
# =========================================================
|
|
# Language Service
|
|
# =========================================================
|
|
language-service:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/language-service/**/{*,.*}',
|
|
'aio/content/guide/language-service.md',
|
|
'aio/content/images/guide/language-service/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- atscott
|
|
|
|
# =========================================================
|
|
# zone.js
|
|
# =========================================================
|
|
zone-js:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/zone.js/**/{*,.*}',
|
|
'aio/content/guide/zone.md'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- JiaLiPassion
|
|
|
|
# =========================================================
|
|
# in-memory-web-api
|
|
# =========================================================
|
|
in-memory-web-api:
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/misc/angular-in-memory-web-api/**/{*,.*}',
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- crisbeto
|
|
- dylhunn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
|
|
# =========================================================
|
|
# Benchpress
|
|
# =========================================================
|
|
benchpress:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/benchpress/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- devversion
|
|
- josephperrott
|
|
- pkozlowski-opensource
|
|
|
|
# =========================================================
|
|
# Integration Tests
|
|
# =========================================================
|
|
integration-tests:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'integration/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- dylhunn
|
|
- jessicajaniuk
|
|
- josephperrott
|
|
- pkozlowski-opensource
|
|
|
|
# =========================================================
|
|
# Docs: Contributors
|
|
# =========================================================
|
|
docs-contributors:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'aio/content/marketing/contributors.json',
|
|
'aio/content/images/bios/**/{*,.*}',
|
|
])
|
|
reviewers:
|
|
users:
|
|
- MarkTechson
|
|
- mgechev
|
|
- twerske
|
|
|
|
# =========================================================
|
|
# Docs: Gettings Started & Tutorial
|
|
# =========================================================
|
|
docs-getting-started-and-tutorial:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'aio/content/guide/setup-local.md',
|
|
'aio/content/images/guide/setup-local/**/{*,.*}',
|
|
'aio/content/tutorial/**/{*,.*}',
|
|
'aio/content/images/guide/toh/**/{*,.*}',
|
|
'aio/content/demos/first-app/**/{*,.*}',
|
|
'aio/content/examples/first-app-*/**/{*,.*}',
|
|
'aio/content/images/guide/faa/**/{*,.*}',
|
|
'aio/content/examples/toh-pt0/**/{*,.*}',
|
|
'aio/content/examples/toh-pt1/**/{*,.*}',
|
|
'aio/content/examples/toh-pt2/**/{*,.*}',
|
|
'aio/content/examples/toh-pt3/**/{*,.*}',
|
|
'aio/content/examples/toh-pt4/**/{*,.*}',
|
|
'aio/content/examples/toh-pt5/**/{*,.*}',
|
|
'aio/content/examples/toh-pt6/**/{*,.*}',
|
|
'aio/content/examples/getting-started-v0/**/{*,.*}',
|
|
'aio/content/examples/getting-started/**/{*,.*}',
|
|
'aio/content/start/**/{*,.*}',
|
|
'aio/content/guide/quick-start.md',
|
|
'aio/content/images/guide/start/**/{*,.*}',
|
|
'aio/content/examples/what-is-angular/**/{*,.*}',
|
|
'aio/content/guide/what-is-angular.md'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- AndrewKushnir
|
|
- jessicajaniuk
|
|
|
|
# =========================================================
|
|
# Docs: Marketing
|
|
# =========================================================
|
|
docs-marketing:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files.exclude("aio/content/marketing/contributors.json"), [
|
|
'aio/content/examples/marketing-first-app/**/{*,.*}',
|
|
'aio/content/guide/roadmap.md',
|
|
'aio/content/marketing/**/{*,.*}',
|
|
'aio/content/images/marketing/**/{*,.*}',
|
|
'aio/content/file-not-found.md',
|
|
'aio/content/license.md',
|
|
'aio/content/navigation.json'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- MarkTechson
|
|
- mgechev
|
|
- twerske
|
|
|
|
# =========================================================
|
|
# Docs: Observables
|
|
# =========================================================
|
|
docs-observables:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'aio/content/guide/observables.md',
|
|
'aio/content/examples/observables/**/{*,.*}',
|
|
'aio/content/guide/comparing-observables.md',
|
|
'aio/content/examples/comparing-observables/**/{*,.*}',
|
|
'aio/content/guide/observables-in-angular.md',
|
|
'aio/content/examples/observables-in-angular/**/{*,.*}',
|
|
'aio/content/guide/practical-observable-usage.md',
|
|
'aio/content/examples/practical-observable-usage/**/{*,.*}',
|
|
'aio/content/guide/rx-library.md',
|
|
'aio/content/examples/rx-library/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- atscott
|
|
- dylhunn
|
|
|
|
# =========================================================
|
|
# Docs: Packaging, Tooling, Releasing
|
|
# =========================================================
|
|
docs-packaging-and-releasing:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'docs/PUBLIC_API.md',
|
|
'docs/RELEASE_SCHEDULE.md',
|
|
'aio/content/guide/npm-packages.md',
|
|
'aio/content/guide/browser-support.md',
|
|
'aio/content/guide/releases.md',
|
|
'aio/content/guide/updating.md',
|
|
'aio/content/guide/deprecations.md',
|
|
'aio/content/examples/deprecation-guide/**/{*,.*}',
|
|
'aio/content/guide/migration-module-with-providers.md',
|
|
'aio/content/guide/static-query-migration.md',
|
|
'aio/content/guide/update-to-latest-version.md',
|
|
'aio/content/guide/versions.md',
|
|
'aio/content/guide/update-to-version-14.md',
|
|
'aio/content/guide/update-to-version-15.md',
|
|
'aio/content/guide/update-to-version-16.md',
|
|
'aio/content/guide/update-to-version-17.md',
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- jessicajaniuk
|
|
- jelbourn
|
|
|
|
# =========================================================
|
|
# Docs: Angular DevTools
|
|
# =========================================================
|
|
docs-devtools:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'aio/content/guide/devtools.md',
|
|
'aio/content/images/guide/devtools/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- MarkTechson
|
|
- mgechev
|
|
- twerske
|
|
|
|
# =========================================================
|
|
# Tooling: Compiler API shared with Angular CLI
|
|
#
|
|
# Changing this API might break Angular CLI, so we require
|
|
# the CLI team to approve changes here.
|
|
# =========================================================
|
|
tooling-cli-shared-api:
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'packages/compiler-cli/private/tooling.ts',
|
|
'packages/localize/tools/index.ts'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alan-agius4
|
|
- clydin
|
|
- dgp1130
|
|
reviews:
|
|
request: -1 # request reviews from everyone
|
|
required: 2 # require at least 2 approvals
|
|
reviewed_for: required
|
|
|
|
# =========================================================
|
|
# Docs: CLI
|
|
# =========================================================
|
|
docs-cli:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'aio/content/cli/**/{*,.*}',
|
|
'aio/content/guide/typescript-configuration.md',
|
|
'aio/content/examples/setup/**/{*,.*}',
|
|
'aio/content/guide/build.md',
|
|
'aio/content/images/guide/build/**/{*,.*}',
|
|
'aio/content/images/guide/cli/**/{*,.*}',
|
|
'aio/content/guide/cli-builder.md',
|
|
'aio/content/examples/cli-builder/**/{*,.*}',
|
|
'aio/content/guide/deployment.md',
|
|
'aio/content/images/guide/deployment/**/{*,.*}',
|
|
'aio/content/guide/file-structure.md',
|
|
'aio/content/guide/ivy.md',
|
|
'aio/content/guide/strict-mode.md',
|
|
'aio/content/guide/web-worker.md',
|
|
'aio/content/guide/workspace-config.md',
|
|
'aio/content/guide/migration-solution-style-tsconfig.md',
|
|
'aio/content/guide/migration-update-libraries-tslib.md',
|
|
'aio/content/guide/esbuild.md',
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alan-agius4
|
|
- clydin
|
|
- dgp1130
|
|
- mgechev
|
|
|
|
# =========================================================
|
|
# Docs: CLI Libraries
|
|
# =========================================================
|
|
docs-libraries:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'aio/content/examples/angular-linker-plugin/webpack.config.mjs',
|
|
'aio/content/guide/creating-libraries.md',
|
|
'aio/content/guide/libraries.md',
|
|
'aio/content/guide/using-libraries.md',
|
|
'aio/content/guide/angular-package-format.md'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alan-agius4
|
|
- alxhub
|
|
- mgechev
|
|
|
|
# =========================================================
|
|
# Docs: Schematics
|
|
# =========================================================
|
|
docs-schematics:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'aio/content/guide/schematics.md',
|
|
'aio/content/guide/schematics-authoring.md',
|
|
'aio/content/guide/schematics-for-libraries.md',
|
|
'aio/content/images/guide/schematics/**/{*,.*}',
|
|
'aio/content/examples/schematics-for-libraries/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alan-agius4
|
|
- dylhunn
|
|
- mgechev
|
|
|
|
# =========================================================
|
|
# Docs: Angular Dev Site
|
|
# =========================================================
|
|
angular-dev:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'adev/**/{.*,*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- josephperrott
|
|
- jelbourn
|
|
- bencodezen
|
|
- jessicajaniuk
|
|
- dylhunn
|
|
- AndrewKushnir
|
|
- alxhub
|
|
- crisbeto
|
|
- atscott
|
|
- pkozlowski-opensource
|
|
- ~JeanMeche
|
|
|
|
# =========================================================
|
|
# Docs-infra
|
|
# =========================================================
|
|
docs-infra:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'aio/{*,.*}',
|
|
'aio/aio-builds-setup/**/{*,.*}',
|
|
'aio/content/cli-src/**/{*,.*}',
|
|
'aio/content/examples/{*,.*}',
|
|
'aio/scripts/**/{*,.*}',
|
|
'aio/src/**/{*,.*}',
|
|
'aio/tests/**/{*,.*}',
|
|
'aio/tools/**/{*,.*}',
|
|
'aio/tools/examples/shared/boilerplate/cli/.vscode/**/{*,.*}',
|
|
'aio/content/BUILD.bazel',
|
|
'aio/content/images/guide/contributors-guide/**/{*,.*}',
|
|
'aio/content/guide/contributors-guide-overview.md',
|
|
'aio/content/guide/docs-style-guide.md',
|
|
'aio/content/examples/docs-style-guide/**/{*,.*}',
|
|
'aio/content/images/guide/docs-style-guide/**/{*,.*}',
|
|
'aio/content/guide/docs-lint-errors.md',
|
|
'aio/content/images/guide/docs-lint-errors/**/{*,.*}',
|
|
'aio/content/guide/localized-documentation.md',
|
|
'aio/content/guide/localizing-angular.md',
|
|
'aio/content/guide/reviewing-content.md',
|
|
'aio/content/guide/updating-content-github-ui.md',
|
|
'aio/content/guide/updating-search-keywords.md',
|
|
'aio/content/guide/doc-build-test.md',
|
|
'aio/content/guide/doc-edit-finish.md',
|
|
'aio/content/guide/doc-editing.md',
|
|
'aio/content/guide/doc-github-tasks.md',
|
|
'aio/content/guide/doc-pr-open.md',
|
|
'aio/content/guide/doc-pr-prep.md',
|
|
'aio/content/guide/doc-pr-update.md',
|
|
'aio/content/guide/doc-prepare-to-edit.md',
|
|
'aio/content/guide/doc-select-issue.md',
|
|
'aio/content/guide/doc-tasks.md',
|
|
'aio/content/guide/doc-update-overview.md',
|
|
'aio/content/guide/doc-update-start.md',
|
|
'aio/content/guide/docs-lint-errors.md',
|
|
'aio/content/images/guide/preparing-to-edit-docs/**/{*,.*}',
|
|
'aio/content/images/guide/github-for-docs/**/{*,.*}',
|
|
'aio/content/images/guide/doc-update-start/**/{*,.*}',
|
|
'aio/content/images/guide/doc-update-overview/**/{*,.*}',
|
|
'aio/content/images/guide/doc-pr-update/**/{*,.*}',
|
|
'aio/content/images/guide/doc-pr-prep/**/{*,.*}',
|
|
'aio/content/images/guide/doc-pr-open/**/{*,.*}',
|
|
'aio/content/images/guide/doc-github-tasks/**/{*,.*}',
|
|
'aio/content/images/guide/doc-prepare-to-edit/**/{*,.*}',
|
|
])
|
|
reviewers:
|
|
users:
|
|
- AndrewKushnir
|
|
- jessicajaniuk
|
|
- josephperrott
|
|
|
|
# =========================================================
|
|
# Angular DevTools
|
|
# =========================================================
|
|
devtools:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'devtools/**/{*,.*}',
|
|
])
|
|
reviewers:
|
|
users:
|
|
- AleksanderBodurri
|
|
- devversion
|
|
- dgp1130
|
|
- josephperrott
|
|
- mgechev
|
|
- twerske
|
|
- ~JeanMeche
|
|
|
|
# =========================================================
|
|
# Dev-infra
|
|
# =========================================================
|
|
dev-infra:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files.exclude('.pullapprove.yml'), [
|
|
'{*,.*}',
|
|
'.circleci/**/{*,.*}',
|
|
'.devcontainer/**/{*,.*}',
|
|
'.github/**/{*,.*}',
|
|
'.husky/**/{*,.*}',
|
|
'.ng-dev/**/{*,.*}',
|
|
'.vscode/**/{*,.*}',
|
|
'.yarn/**/{*,.*}',
|
|
'docs/*.md',
|
|
'docs/images/**/{*,.*}',
|
|
'goldens/{*,.*}',
|
|
'goldens/public-api/manage.js',
|
|
'modules/{*,.*}',
|
|
'packages/{*,.*}',
|
|
'packages/examples/test-utils/**/{*,.*}',
|
|
'packages/private/**/{*,.*}',
|
|
'packages/examples/{*,.*}',
|
|
'scripts/**/{*,.*}',
|
|
'third_party/**/{*,.*}',
|
|
'tools/bazel-repo-patches/**/{*,.*}',
|
|
'tools/circular_dependency_test/**/{*,.*}',
|
|
'tools/contributing-stats/**/{*,.*}',
|
|
'tools/esm-interop/**/{*,.*}',
|
|
'tools/gulp-tasks/**/{*,.*}',
|
|
'tools/legacy-saucelabs/**/{*,.*}',
|
|
'tools/manual_api_docs/**/{*,.*}',
|
|
'tools/npm-patches/**/{*,.*}',
|
|
'tools/rxjs/**/{*,.*}',
|
|
'tools/saucelabs-daemon/**/{*,.*}',
|
|
'tools/saucelabs/**/{*,.*}',
|
|
'tools/symbol-extractor/**/{*,.*}',
|
|
'tools/testing/**/{*,.*}',
|
|
'tools/tslint/**/{*,.*}',
|
|
'tools/utils/**/{*,.*}',
|
|
'tools/yarn/**/{*,.*}',
|
|
'tools/{*,.*}',
|
|
'**/*.bzl'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- devversion
|
|
- josephperrott
|
|
|
|
# =========================================================
|
|
# Public API
|
|
# =========================================================
|
|
public-api:
|
|
<<: *defaults
|
|
conditions:
|
|
- *no-groups-above-this-pending
|
|
- *no-groups-above-this-rejected
|
|
- >
|
|
contains_any_globs(files.exclude("goldens/public-api/manage.js"), [
|
|
'goldens/public-api/**/{*,.*}',
|
|
'docs/NAMING.md',
|
|
'aio/content/guide/angular-package-format.md',
|
|
'aio/content/guide/glossary.md',
|
|
'aio/content/guide/styleguide.md',
|
|
'aio/content/examples/styleguide/**/{*,.*}',
|
|
'aio/content/images/guide/styleguide/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- AndrewKushnir
|
|
- alxhub
|
|
- atscott
|
|
- dylhunn
|
|
- ~jelbourn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
reviews:
|
|
request: 3 # Request reviews from 3 people
|
|
required: 2 # Require that 2 people approve
|
|
reviewed_for: required
|
|
|
|
# ================================================
|
|
# Size tracking
|
|
# ================================================
|
|
size-tracking:
|
|
<<: *defaults
|
|
conditions:
|
|
- *no-groups-above-this-pending
|
|
- *no-groups-above-this-rejected
|
|
- >
|
|
contains_any_globs(files, [
|
|
'goldens/size-tracking/**/{*,.*}'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- dylhunn
|
|
- ~jelbourn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
reviews:
|
|
request: 2 # Request reviews from 2 people
|
|
required: 1 # Require that 1 person approve
|
|
reviewed_for: required
|
|
|
|
# ================================================
|
|
# Circular dependencies
|
|
# ================================================
|
|
circular-dependencies:
|
|
<<: *defaults
|
|
conditions:
|
|
- *no-groups-above-this-pending
|
|
- *no-groups-above-this-rejected
|
|
- >
|
|
contains_any_globs(files, [
|
|
'goldens/circular-deps/packages.json'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- atscott
|
|
- dylhunn
|
|
- ~jelbourn
|
|
- jessicajaniuk
|
|
- pkozlowski-opensource
|
|
|
|
####################################################################################
|
|
# Special Cases
|
|
####################################################################################
|
|
|
|
# =========================================================
|
|
# Code Ownership
|
|
# =========================================================
|
|
code-ownership:
|
|
<<: *defaults
|
|
conditions:
|
|
- >
|
|
contains_any_globs(files, [
|
|
'.pullapprove.yml'
|
|
])
|
|
reviewers:
|
|
users:
|
|
- alxhub
|
|
- AndrewKushnir
|
|
- andrewseguin
|
|
- dgp1130
|
|
- ~jelbourn
|
|
- jessicajaniuk
|
|
- josephperrott
|
|
|
|
####################################################################################
|
|
# Override managed result groups
|
|
#
|
|
# Groups which are only used to determine the value of an override are managed at
|
|
# the bottom of the list as they will set a status on the PR directly, they
|
|
# therefore can always be process last without concern.
|
|
####################################################################################
|
|
|
|
# =========================================================
|
|
# 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
|
|
|
|
# =========================================================
|
|
# Global Approvers For Dev-Infra changes
|
|
#
|
|
# All reviews performed for global dev-infra approvals
|
|
# require using the `Reviewed-for:` specifier to set the
|
|
# approval specificity as documented at:
|
|
# https://docs.pullapprove.com/reviewed-for/
|
|
# =========================================================
|
|
global-dev-infra-approvers:
|
|
type: optional
|
|
reviewers:
|
|
teams:
|
|
- dev-infra-framework
|
|
reviews:
|
|
request: 0
|
|
required: 1
|
|
reviewed_for: required
|
|
|
|
# =========================================================
|
|
# Require review on all PRs
|
|
#
|
|
# All PRs require at least one review. This rule will not
|
|
# request any reviewers, however will require that at least
|
|
# one review is provided before the group is satisfied.
|
|
# =========================================================
|
|
required-minimum-review:
|
|
reviews:
|
|
request: 0 # Do not request any reviews from the reviewer group
|
|
required: 1 # Require that all PRs have approval from at least one of the users in the group
|
|
author_value: 0 # The author of the PR cannot provide an approval for themself
|
|
reviewed_for: ignored # All reviews apply to this group whether noted via Reviewed-for or not
|
|
reviewers:
|
|
teams:
|
|
# Any member of the team can provide a review to perform the minimum review required
|
|
- team
|