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’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build: update all non-major dependencies #44855

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 27, 2022

WhiteSource Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@typescript-eslint/eslint-plugin 5.10.0 -> 5.10.2 age adoption passing confidence
@typescript-eslint/parser 5.10.0 -> 5.10.2 age adoption passing confidence
browser-sync (source) 2.26.13 -> 2.27.7 age adoption passing confidence
io_bazel_rules_sass 1.41.0 -> 1.49.0 age adoption passing confidence
rollup (source) ~2.65.0 -> ~2.66.0 age adoption passing confidence

Release Notes

typescript-eslint/typescript-eslint (@​typescript-eslint/eslint-plugin)

v5.10.2

Compare Source

Bug Fixes
  • eslint-plugin: [no-restricted-imports] allow relative type imports with patterns configured (#​4494) (4a6d217)

v5.10.1

Compare Source

Note: Version bump only for package @​typescript-eslint/eslint-plugin

typescript-eslint/typescript-eslint (@​typescript-eslint/parser)

v5.10.2

Compare Source

Note: Version bump only for package @​typescript-eslint/parser

v5.10.1

Compare Source

Note: Version bump only for package @​typescript-eslint/parser

BrowserSync/browser-sync

v2.27.7

Compare Source

v2.27.6

Compare Source

v2.27.5

Compare Source

v2.27.4

Compare Source

v2.27.3

Compare Source

v2.27.1

Compare Source

This release adds a feature to address BrowserSync/browser-sync#1882

Sometimes you don't want Browsersync to auto-inject it's connection snippet into your HTML - now you can disable it globally via either a CLI param or the new snippet option :)

browser-sync . --no-snippet

or in any Browsersync configuration

const config = {
  snippet: false,
};

the original request was related to Eleventy usage, so here's how that would look

eleventyConfig.setBrowserSyncConfig({
  snippet: false,
});

v2.26.14

Compare Source

This is a maintenance release to address 2 security related issues (socket.io & axios)

Happy Browsersync'in :)

bazelbuild/rules_sass

v1.49.0

Compare Source

v1.48.0

Compare Source

v1.47.0

Compare Source

v1.46.0

Compare Source

v1.45.2

Compare Source

v1.45.1

Compare Source

v1.45.0

Compare Source

v1.44.0

Compare Source

v1.43.5

Compare Source

v1.41.1

Compare Source

rollup/rollup

v2.66.1

Compare Source

2022-01-25

Bug Fixes
  • Only warn for conflicting names in namespace reexports if it actually causes problems (#​4363)
  • Only allow explicit exports or reexports as synthetic namespaces and hide them from namespace reexports (#​4364)
Pull Requests

v2.66.0

Compare Source

2022-01-22

Features
  • Note if a module has a default export in ModuleInfo to allow writing better proxy modules (#​4356)
  • Add option to wait until all imported ids have been resolved when awaiting this.load (#​4358)
Pull Requests

Configuration

📅 Schedule: "after 1am on Thursday" in timezone America/Tijuana.

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, click this checkbox.

This PR has been generated by WhiteSource Renovate. View repository job log here.

@renovate renovate bot added action: review The PR is still awaiting reviews from at least one requested reviewer area: build & ci Related the build and CI infrastructure of the project target: patch This PR is targeted for the next patch release labels Jan 27, 2022
@ngbot ngbot bot modified the milestone: Backlog Jan 27, 2022
Copy link
Member

@josephperrott josephperrott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

PullApprove Config
####################################################################################
####################################################################################
#                               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.
#
# aikidave
# gkalpak
# josmar-crwdstffng
# ileil
# TeriGlover
# TMDavisGoogle

version: 3

availability:
  users_unavailable:
    - pkozlowski-opensource # OOO as of 2020-09-28

# Meta field that goes unused by PullApprove to allow for defining aliases to be
# used throughout the config.
meta:
  # The following groups have no file based conditions and will be initially `active` on all PRs
  # - `global-approvers`
  # - `global-docs-approvers`
  # - `required-minimum-review`
  #
  # By checking the number of active/pending/rejected groups when these are excluded, we can determine
  # if any other groups are matched.
  #
  # Note: Because all inactive groups start as pending, we are only checking pending and rejected active groups.
  #
  # Also note that the ordering of groups matters in this file. The only groups visible to the current
  # one are those that appear above it.
  no-groups-above-this-pending: &no-groups-above-this-pending len(groups.active.pending.exclude("required-minimum-review").exclude("global-approvers").exclude("global-docs-approvers")) == 0
  no-groups-above-this-rejected: &no-groups-above-this-rejected len(groups.active.rejected.exclude("required-minimum-review").exclude("global-approvers").exclude("global-docs-approvers")) == 0

  can-be-global-approved: &can-be-global-approved '"global-approvers" not in groups.approved'
  can-be-global-docs-approved: &can-be-global-docs-approved '"global-docs-approvers" not in groups.approved'
  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.'

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

  # =========================================================
  # 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:
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
    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:
      users:
        - aikidave # Dave Shevitz
        - alan-agius4 # Alan Agius
        - alxhub # Alex Rickabaugh
        - AndrewKushnir # Andrew Kushnir
        - andrewseguin # Andrew Seguin
        - atscott # Andrew Scott
        - clydin # Charles Lyding
        - crisbeto # Kristiyan Kostadinov
        - devversion # Paul Gschwendtner
        - dgp1130 # Doug Parker
        - dylhunn # Dylan Hunn
        - filipesilva # Filipe Silva
        - gkalpak # Georgios Kalpakas
        - jelbourn # Jeremy Elbourn
        - jessicajaniuk # Jessica Janiuk
        - JiaLiPassion # Jia Li
        - JoostK # Joost Koehoorn
        - josephperrott # Joey Perrott
        - MarkTechson # Mark Thompson (Techson)
        - mgechev # Minko Gechev
        - mmalerba # Miles Malerba
        - pkozlowski-opensource # Pawel Kozlowski
        - Splaktar # Michael Prentice
        - twerske # Emma Twersky
        - zarend # Zach Arend

  # =========================================================
  #  Renovate PRs
  #
  #  All renovate PRs will be assigned to the current
  #  caretakers for review.
  # =========================================================
  renovate-changes:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - author in ["renovate"]
    reviewers:
      teams:
        - angular-caretaker

  # =========================================================
  #  Framework: Animations
  # =========================================================
  fw-animations:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/animations/**',
          'packages/platform-browser/animations/**',
          'aio/content/guide/animations.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'
          ])
    reviewers:
      users:
        - alxhub
        - crisbeto
        - jelbourn
        - jessicajaniuk

  # =========================================================
  #  Framework: Compiler
  # =========================================================
  fw-compiler:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files.exclude('packages/compiler-cli/ngcc/**'), [
          '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 '
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - JoostK

  # =========================================================
  #  Framework: Compiler / ngcc
  # =========================================================
  fw-ngcc:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - files.include('packages/compiler-cli/ngcc/**')
    reviewers:
      users:
        - alxhub
        - gkalpak
        - JoostK

  # =========================================================
  #  Framework: Migrations
  # =========================================================
  fw-migrations:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - files.include("packages/core/schematics/**")
    reviewers:
      users:
        - alxhub
        - crisbeto
        - devversion
        - dylhunn

  # =========================================================
  #  Framework: Core
  # =========================================================
  fw-core:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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/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/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/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/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/entry-components.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/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-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-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/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/template-expression-operators.md',
          'aio/content/examples/template-expression-operators/**',
          'aio/content/guide/pipes.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/singleton-services.md',
          'aio/content/guide/set-document-title.md',
          'aio/content/examples/set-document-title/**',
          'aio/content/images/guide/set-document-title/**',
          'aio/content/guide/sharing-ngmodules.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/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Common
  # =========================================================
  fw-common:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files.exclude("packages/core/schematics/**").exclude("packages/common/http/**"), [
          'packages/common/**',
          'packages/examples/common/**',
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Http
  # =========================================================
  fw-http:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/common/http/**',
          'packages/examples/http/**',
          'aio/content/guide/http.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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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
        - gkalpak
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Forms
  # =========================================================
  fw-forms:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/platform-server/**',
          'aio/content/guide/prerendering.md',
          'aio/content/guide/universal.md',
          'aio/content/examples/universal/**'
          ])
    reviewers:
      users:
        - alan-agius4
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Router
  # =========================================================
  fw-router:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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
        - gkalpak

  # =========================================================
  #  Framework: Upgrade
  # =========================================================
  fw-upgrade:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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
        - gkalpak
        - jessicajaniuk

  # =========================================================
  #  Framework: Testing
  # =========================================================
  fw-testing:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'modules/benchmarks/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Playground
  # =========================================================
  fw-playground:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'modules/playground/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Security
  # =========================================================
  fw-security:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/bazel/**',
          ])
    reviewers:
      users:
        - devversion
        - josephperrott

  # =========================================================
  #  Language Service
  # =========================================================
  language-service:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/zone.js/**',
          'aio/content/guide/zone.md'
          ])
    reviewers:
      users:
        - JiaLiPassion

  # =========================================================
  #  in-memory-web-api
  # =========================================================
  in-memory-web-api:
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/benchpress/**'
          ])
    reviewers:
      users:
        - alxhub
        - josephperrott

  # =========================================================
  #  Integration Tests
  # =========================================================
  integration-tests:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'integration/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - josephperrott
        - pkozlowski-opensource

  # =========================================================
  #  Docs: Contributors
  # =========================================================
  docs-contributors:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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/images/guide/start/**',
          'aio/content/examples/what-is-angular/**',
          'aio/content/guide/what-is-angular.md'
          ])
    reviewers:
      users:
        - aikidave
        - AndrewKushnir
        - jessicajaniuk

  # =========================================================
  #  Docs: Marketing
  # =========================================================
  docs-marketing:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files.exclude("aio/content/marketing/contributors.json"), [
          '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:
        - aikidave
        - MarkTechson
        - mgechev
        - twerske

  # =========================================================
  #  Docs: Observables
  # =========================================================
  docs-observables:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/guide/migration-legacy-message-id.md',
          'aio/content/examples/deprecation-guide/**',
          'aio/content/guide/migration-renderer.md',
          'aio/content/guide/migration-undecorated-classes.md',
          'aio/content/guide/migration-dynamic-flag.md',
          'aio/content/guide/migration-injectable.md',
          'aio/content/guide/migration-localize.md',
          '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/ivy-compatibility.md',
          'aio/content/guide/ivy-compatibility-examples.md'
          ])
    reviewers:
      users:
        - alxhub
        - jelbourn

  # =========================================================
  #  Docs: Angular DevTools
  # =========================================================
  docs-devtools:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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-module-and-target-compiler-options.md',
          'aio/content/guide/migration-update-libraries-tslib.md',
          ])
    reviewers:
      users:
        - alan-agius4
        - clydin
        - dgp1130
        - mgechev

  # =========================================================
  #  Docs: CLI Libraries
  # =========================================================
  docs-libraries:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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-infra
  # =========================================================
  docs-infra:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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/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',
          ])
    reviewers:
      users:
        - alxhub
        - gkalpak
        - josephperrott

  # =========================================================
  #  Angular DevTools
  # =========================================================
  devtools:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'devtools/**',
          ])
    reviewers:
      users:
        - aleksanderbodurri
        - devversion
        - josephperrott
        - mgechev
        - twerske

  # =========================================================
  #  Dev-infra
  # =========================================================
  dev-infra:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          '*',
          '.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/build/**',
          'tools/circular_dependency_test/**',
          'tools/contributing-stats/**',
          'tools/gulp-tasks/**',
          'tools/legacy-saucelabs/**',
          'tools/npm/**',
          'tools/rxjs/**',
          'tools/saucelabs/**',
          'tools/size-tracking/**',
          'tools/source-map-test/**',
          'tools/symbol-extractor/**',
          'tools/testing/**',
          'tools/tslint/**',
          'tools/utils/**',
          'tools/yarn/**',
          'tools/*',
          '**/*.bzl'
          ])
    reviewers:
      users:
        - devversion
        - gkalpak
        - josephperrott

  # =========================================================
  #  Public API
  # =========================================================
  public-api:
    <<: *defaults
    conditions:
      - *no-groups-above-this-pending
      - *no-groups-above-this-rejected
      - *can-be-global-approved
      - >
        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/errors/*.md',
          'aio/content/extended-diagnostics/*.md',
          'aio/content/guide/glossary.md',
          'aio/content/guide/styleguide.md',
          'aio/content/examples/errors/**',
          'aio/content/examples/styleguide/**',
          'aio/content/images/guide/styleguide/*'
          ])
    reviewers:
      users:
        - AndrewKushnir
        - alxhub
        - atscott
        - dylhunn
        - jelbourn
        - jessicajaniuk
        - pkozlowski-opensource
    reviews:
      request: 4 # Request reviews from four people
      required: 3 # Require that three people approve
      reviewed_for: required

  # ================================================
  #  Size tracking
  # ================================================
  size-tracking:
    <<: *defaults
    conditions:
      - *no-groups-above-this-pending
      - *no-groups-above-this-rejected
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'goldens/size-tracking/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jelbourn
        - jessicajaniuk
        - pkozlowski-opensource
    reviews:
      request: 4 # Request reviews from four people
      required: 2 # Require that two people approve
      reviewed_for: required

  # ================================================
  #  Circular dependencies
  # ================================================
  circular-dependencies:
    <<: *defaults
    conditions:
      - *no-groups-above-this-pending
      - *no-groups-above-this-rejected
      - *can-be-global-approved
      - >
        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:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          '.pullapprove.yml'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - andrewseguin
        - dgp1130
        - jelbourn
        - josephperrott

Copy link
Member

@josephperrott josephperrott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

PullApprove Config
####################################################################################
#                               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.
#
# aikidave
# gkalpak
# josmar-crwdstffng
# ileil
# TeriGlover
# TMDavisGoogle

version: 3

availability:
  users_unavailable:
    - pkozlowski-opensource # OOO as of 2020-09-28

# Meta field that goes unused by PullApprove to allow for defining aliases to be
# used throughout the config.
meta:
  # The following groups have no file based conditions and will be initially `active` on all PRs
  # - `global-approvers`
  # - `global-docs-approvers`
  # - `required-minimum-review`
  #
  # By checking the number of active/pending/rejected groups when these are excluded, we can determine
  # if any other groups are matched.
  #
  # Note: Because all inactive groups start as pending, we are only checking pending and rejected active groups.
  #
  # Also note that the ordering of groups matters in this file. The only groups visible to the current
  # one are those that appear above it.
  no-groups-above-this-pending: &no-groups-above-this-pending len(groups.active.pending.exclude("required-minimum-review").exclude("global-approvers").exclude("global-docs-approvers")) == 0
  no-groups-above-this-rejected: &no-groups-above-this-rejected len(groups.active.rejected.exclude("required-minimum-review").exclude("global-approvers").exclude("global-docs-approvers")) == 0

  can-be-global-approved: &can-be-global-approved '"global-approvers" not in groups.approved'
  can-be-global-docs-approved: &can-be-global-docs-approved '"global-docs-approvers" not in groups.approved'
  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.'

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

  # =========================================================
  # 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:
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
    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:
      users:
        - aikidave # Dave Shevitz
        - alan-agius4 # Alan Agius
        - alxhub # Alex Rickabaugh
        - AndrewKushnir # Andrew Kushnir
        - andrewseguin # Andrew Seguin
        - atscott # Andrew Scott
        - clydin # Charles Lyding
        - crisbeto # Kristiyan Kostadinov
        - devversion # Paul Gschwendtner
        - dgp1130 # Doug Parker
        - dylhunn # Dylan Hunn
        - filipesilva # Filipe Silva
        - gkalpak # Georgios Kalpakas
        - jelbourn # Jeremy Elbourn
        - jessicajaniuk # Jessica Janiuk
        - JiaLiPassion # Jia Li
        - JoostK # Joost Koehoorn
        - josephperrott # Joey Perrott
        - MarkTechson # Mark Thompson (Techson)
        - mgechev # Minko Gechev
        - mmalerba # Miles Malerba
        - pkozlowski-opensource # Pawel Kozlowski
        - Splaktar # Michael Prentice
        - twerske # Emma Twersky
        - zarend # Zach Arend

  # =========================================================
  #  Renovate PRs
  #
  #  All renovate PRs will be assigned to the current
  #  caretakers for review.
  # =========================================================
  renovate-changes:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - author in ["renovate[bot]"]
    reviewers:
      teams:
        - angular-caretaker

  # =========================================================
  #  Framework: Animations
  # =========================================================
  fw-animations:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/animations/**',
          'packages/platform-browser/animations/**',
          'aio/content/guide/animations.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'
          ])
    reviewers:
      users:
        - alxhub
        - crisbeto
        - jelbourn
        - jessicajaniuk

  # =========================================================
  #  Framework: Compiler
  # =========================================================
  fw-compiler:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files.exclude('packages/compiler-cli/ngcc/**'), [
          '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 '
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - JoostK

  # =========================================================
  #  Framework: Compiler / ngcc
  # =========================================================
  fw-ngcc:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - files.include('packages/compiler-cli/ngcc/**')
    reviewers:
      users:
        - alxhub
        - gkalpak
        - JoostK

  # =========================================================
  #  Framework: Migrations
  # =========================================================
  fw-migrations:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - files.include("packages/core/schematics/**")
    reviewers:
      users:
        - alxhub
        - crisbeto
        - devversion
        - dylhunn

  # =========================================================
  #  Framework: Core
  # =========================================================
  fw-core:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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/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/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/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/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/entry-components.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/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-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-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/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/template-expression-operators.md',
          'aio/content/examples/template-expression-operators/**',
          'aio/content/guide/pipes.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/singleton-services.md',
          'aio/content/guide/set-document-title.md',
          'aio/content/examples/set-document-title/**',
          'aio/content/images/guide/set-document-title/**',
          'aio/content/guide/sharing-ngmodules.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/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Common
  # =========================================================
  fw-common:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files.exclude("packages/core/schematics/**").exclude("packages/common/http/**"), [
          'packages/common/**',
          'packages/examples/common/**',
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Http
  # =========================================================
  fw-http:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/common/http/**',
          'packages/examples/http/**',
          'aio/content/guide/http.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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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
        - gkalpak
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Forms
  # =========================================================
  fw-forms:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/platform-server/**',
          'aio/content/guide/prerendering.md',
          'aio/content/guide/universal.md',
          'aio/content/examples/universal/**'
          ])
    reviewers:
      users:
        - alan-agius4
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Router
  # =========================================================
  fw-router:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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
        - gkalpak

  # =========================================================
  #  Framework: Upgrade
  # =========================================================
  fw-upgrade:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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
        - gkalpak
        - jessicajaniuk

  # =========================================================
  #  Framework: Testing
  # =========================================================
  fw-testing:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'modules/benchmarks/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Playground
  # =========================================================
  fw-playground:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'modules/playground/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Security
  # =========================================================
  fw-security:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/bazel/**',
          ])
    reviewers:
      users:
        - devversion
        - josephperrott

  # =========================================================
  #  Language Service
  # =========================================================
  language-service:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/zone.js/**',
          'aio/content/guide/zone.md'
          ])
    reviewers:
      users:
        - JiaLiPassion

  # =========================================================
  #  in-memory-web-api
  # =========================================================
  in-memory-web-api:
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/benchpress/**'
          ])
    reviewers:
      users:
        - alxhub
        - josephperrott

  # =========================================================
  #  Integration Tests
  # =========================================================
  integration-tests:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'integration/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - josephperrott
        - pkozlowski-opensource

  # =========================================================
  #  Docs: Contributors
  # =========================================================
  docs-contributors:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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/images/guide/start/**',
          'aio/content/examples/what-is-angular/**',
          'aio/content/guide/what-is-angular.md'
          ])
    reviewers:
      users:
        - aikidave
        - AndrewKushnir
        - jessicajaniuk

  # =========================================================
  #  Docs: Marketing
  # =========================================================
  docs-marketing:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files.exclude("aio/content/marketing/contributors.json"), [
          '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:
        - aikidave
        - MarkTechson
        - mgechev
        - twerske

  # =========================================================
  #  Docs: Observables
  # =========================================================
  docs-observables:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/guide/migration-legacy-message-id.md',
          'aio/content/examples/deprecation-guide/**',
          'aio/content/guide/migration-renderer.md',
          'aio/content/guide/migration-undecorated-classes.md',
          'aio/content/guide/migration-dynamic-flag.md',
          'aio/content/guide/migration-injectable.md',
          'aio/content/guide/migration-localize.md',
          '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/ivy-compatibility.md',
          'aio/content/guide/ivy-compatibility-examples.md'
          ])
    reviewers:
      users:
        - alxhub
        - jelbourn

  # =========================================================
  #  Docs: Angular DevTools
  # =========================================================
  docs-devtools:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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-module-and-target-compiler-options.md',
          'aio/content/guide/migration-update-libraries-tslib.md',
          ])
    reviewers:
      users:
        - alan-agius4
        - clydin
        - dgp1130
        - mgechev

  # =========================================================
  #  Docs: CLI Libraries
  # =========================================================
  docs-libraries:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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-infra
  # =========================================================
  docs-infra:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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/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',
          ])
    reviewers:
      users:
        - alxhub
        - gkalpak
        - josephperrott

  # =========================================================
  #  Angular DevTools
  # =========================================================
  devtools:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'devtools/**',
          ])
    reviewers:
      users:
        - aleksanderbodurri
        - devversion
        - josephperrott
        - mgechev
        - twerske

  # =========================================================
  #  Dev-infra
  # =========================================================
  dev-infra:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          '*',
          '.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/build/**',
          'tools/circular_dependency_test/**',
          'tools/contributing-stats/**',
          'tools/gulp-tasks/**',
          'tools/legacy-saucelabs/**',
          'tools/npm/**',
          'tools/rxjs/**',
          'tools/saucelabs/**',
          'tools/size-tracking/**',
          'tools/source-map-test/**',
          'tools/symbol-extractor/**',
          'tools/testing/**',
          'tools/tslint/**',
          'tools/utils/**',
          'tools/yarn/**',
          'tools/*',
          '**/*.bzl'
          ])
    reviewers:
      users:
        - devversion
        - gkalpak
        - josephperrott

  # =========================================================
  #  Public API
  # =========================================================
  public-api:
    <<: *defaults
    conditions:
      - *no-groups-above-this-pending
      - *no-groups-above-this-rejected
      - *can-be-global-approved
      - >
        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/errors/*.md',
          'aio/content/extended-diagnostics/*.md',
          'aio/content/guide/glossary.md',
          'aio/content/guide/styleguide.md',
          'aio/content/examples/errors/**',
          'aio/content/examples/styleguide/**',
          'aio/content/images/guide/styleguide/*'
          ])
    reviewers:
      users:
        - AndrewKushnir
        - alxhub
        - atscott
        - dylhunn
        - jelbourn
        - jessicajaniuk
        - pkozlowski-opensource
    reviews:
      request: 4 # Request reviews from four people
      required: 3 # Require that three people approve
      reviewed_for: required

  # ================================================
  #  Size tracking
  # ================================================
  size-tracking:
    <<: *defaults
    conditions:
      - *no-groups-above-this-pending
      - *no-groups-above-this-rejected
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'goldens/size-tracking/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jelbourn
        - jessicajaniuk
        - pkozlowski-opensource
    reviews:
      request: 4 # Request reviews from four people
      required: 2 # Require that two people approve
      reviewed_for: required

  # ================================================
  #  Circular dependencies
  # ================================================
  circular-dependencies:
    <<: *defaults
    conditions:
      - *no-groups-above-this-pending
      - *no-groups-above-this-rejected
      - *can-be-global-approved
      - >
        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:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          '.pullapprove.yml'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - andrewseguin
        - dgp1130
        - jelbourn
        - josephperrott

@angular angular deleted a comment from pullapprove bot Jan 27, 2022
@angular angular deleted a comment from pullapprove bot Jan 27, 2022
Copy link
Member

@josephperrott josephperrott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

/pullapprove-test

PullApprove Config
####################################################################################
####################################################################################
#                               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.
#
# aikidave
# gkalpak
# josmar-crwdstffng
# ileil
# TeriGlover
# TMDavisGoogle

version: 3

availability:
  users_unavailable:
    - pkozlowski-opensource # OOO as of 2020-09-28

# Meta field that goes unused by PullApprove to allow for defining aliases to be
# used throughout the config.
meta:
  # The following groups have no file based conditions and will be initially `active` on all PRs
  # - `global-approvers`
  # - `global-docs-approvers`
  # - `required-minimum-review`
  #
  # By checking the number of active/pending/rejected groups when these are excluded, we can determine
  # if any other groups are matched.
  #
  # Note: Because all inactive groups start as pending, we are only checking pending and rejected active groups.
  #
  # Also note that the ordering of groups matters in this file. The only groups visible to the current
  # one are those that appear above it.
  no-groups-above-this-pending: &no-groups-above-this-pending len(groups.active.pending.exclude("required-minimum-review").exclude("global-approvers").exclude("global-docs-approvers")) == 0
  no-groups-above-this-rejected: &no-groups-above-this-rejected len(groups.active.rejected.exclude("required-minimum-review").exclude("global-approvers").exclude("global-docs-approvers")) == 0

  can-be-global-approved: &can-be-global-approved '"global-approvers" not in groups.approved'
  can-be-global-docs-approved: &can-be-global-docs-approved '"global-docs-approvers" not in groups.approved'
  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.'

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

  # =========================================================
  # 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:
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
    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:
      users:
        - aikidave # Dave Shevitz
        - alan-agius4 # Alan Agius
        - alxhub # Alex Rickabaugh
        - AndrewKushnir # Andrew Kushnir
        - andrewseguin # Andrew Seguin
        - atscott # Andrew Scott
        - clydin # Charles Lyding
        - crisbeto # Kristiyan Kostadinov
        - devversion # Paul Gschwendtner
        - dgp1130 # Doug Parker
        - dylhunn # Dylan Hunn
        - filipesilva # Filipe Silva
        - gkalpak # Georgios Kalpakas
        - jelbourn # Jeremy Elbourn
        - jessicajaniuk # Jessica Janiuk
        - JiaLiPassion # Jia Li
        - JoostK # Joost Koehoorn
        - josephperrott # Joey Perrott
        - MarkTechson # Mark Thompson (Techson)
        - mgechev # Minko Gechev
        - mmalerba # Miles Malerba
        - pkozlowski-opensource # Pawel Kozlowski
        - Splaktar # Michael Prentice
        - twerske # Emma Twersky
        - zarend # Zach Arend

  # =========================================================
  #  Renovate PRs
  #
  #  All renovate PRs will be assigned to the current
  #  caretakers for review.
  # =========================================================
  renovate-changes:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - author in ["renovate[bot]"]
    reviewers:
      teams:
        - angular-caretaker

  # =========================================================
  #  Framework: Animations
  # =========================================================
  fw-animations:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/animations/**',
          'packages/platform-browser/animations/**',
          'aio/content/guide/animations.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'
          ])
    reviewers:
      users:
        - alxhub
        - crisbeto
        - jelbourn
        - jessicajaniuk

  # =========================================================
  #  Framework: Compiler
  # =========================================================
  fw-compiler:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files.exclude('packages/compiler-cli/ngcc/**'), [
          '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 '
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - JoostK

  # =========================================================
  #  Framework: Compiler / ngcc
  # =========================================================
  fw-ngcc:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - files.include('packages/compiler-cli/ngcc/**')
    reviewers:
      users:
        - alxhub
        - gkalpak
        - JoostK

  # =========================================================
  #  Framework: Migrations
  # =========================================================
  fw-migrations:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - files.include("packages/core/schematics/**")
    reviewers:
      users:
        - alxhub
        - crisbeto
        - devversion
        - dylhunn

  # =========================================================
  #  Framework: Core
  # =========================================================
  fw-core:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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/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/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/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/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/entry-components.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/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-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-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/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/template-expression-operators.md',
          'aio/content/examples/template-expression-operators/**',
          'aio/content/guide/pipes.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/singleton-services.md',
          'aio/content/guide/set-document-title.md',
          'aio/content/examples/set-document-title/**',
          'aio/content/images/guide/set-document-title/**',
          'aio/content/guide/sharing-ngmodules.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/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Common
  # =========================================================
  fw-common:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files.exclude("packages/core/schematics/**").exclude("packages/common/http/**"), [
          'packages/common/**',
          'packages/examples/common/**',
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Http
  # =========================================================
  fw-http:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/common/http/**',
          'packages/examples/http/**',
          'aio/content/guide/http.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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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
        - gkalpak
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Forms
  # =========================================================
  fw-forms:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/platform-server/**',
          'aio/content/guide/prerendering.md',
          'aio/content/guide/universal.md',
          'aio/content/examples/universal/**'
          ])
    reviewers:
      users:
        - alan-agius4
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Router
  # =========================================================
  fw-router:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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
        - gkalpak

  # =========================================================
  #  Framework: Upgrade
  # =========================================================
  fw-upgrade:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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
        - gkalpak
        - jessicajaniuk

  # =========================================================
  #  Framework: Testing
  # =========================================================
  fw-testing:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'modules/benchmarks/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Playground
  # =========================================================
  fw-playground:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'modules/playground/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - pkozlowski-opensource

  # =========================================================
  #  Framework: Security
  # =========================================================
  fw-security:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/bazel/**',
          ])
    reviewers:
      users:
        - devversion
        - josephperrott

  # =========================================================
  #  Language Service
  # =========================================================
  language-service:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/zone.js/**',
          'aio/content/guide/zone.md'
          ])
    reviewers:
      users:
        - JiaLiPassion

  # =========================================================
  #  in-memory-web-api
  # =========================================================
  in-memory-web-api:
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'packages/benchpress/**'
          ])
    reviewers:
      users:
        - alxhub
        - josephperrott

  # =========================================================
  #  Integration Tests
  # =========================================================
  integration-tests:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'integration/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jessicajaniuk
        - josephperrott
        - pkozlowski-opensource

  # =========================================================
  #  Docs: Contributors
  # =========================================================
  docs-contributors:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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/images/guide/start/**',
          'aio/content/examples/what-is-angular/**',
          'aio/content/guide/what-is-angular.md'
          ])
    reviewers:
      users:
        - aikidave
        - AndrewKushnir
        - jessicajaniuk

  # =========================================================
  #  Docs: Marketing
  # =========================================================
  docs-marketing:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files.exclude("aio/content/marketing/contributors.json"), [
          '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:
        - aikidave
        - MarkTechson
        - mgechev
        - twerske

  # =========================================================
  #  Docs: Observables
  # =========================================================
  docs-observables:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/guide/migration-legacy-message-id.md',
          'aio/content/examples/deprecation-guide/**',
          'aio/content/guide/migration-renderer.md',
          'aio/content/guide/migration-undecorated-classes.md',
          'aio/content/guide/migration-dynamic-flag.md',
          'aio/content/guide/migration-injectable.md',
          'aio/content/guide/migration-localize.md',
          '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/ivy-compatibility.md',
          'aio/content/guide/ivy-compatibility-examples.md'
          ])
    reviewers:
      users:
        - alxhub
        - jelbourn

  # =========================================================
  #  Docs: Angular DevTools
  # =========================================================
  docs-devtools:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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-module-and-target-compiler-options.md',
          'aio/content/guide/migration-update-libraries-tslib.md',
          ])
    reviewers:
      users:
        - alan-agius4
        - clydin
        - dgp1130
        - mgechev

  # =========================================================
  #  Docs: CLI Libraries
  # =========================================================
  docs-libraries:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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-infra
  # =========================================================
  docs-infra:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        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/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/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',
          ])
    reviewers:
      users:
        - alxhub
        - gkalpak
        - josephperrott

  # =========================================================
  #  Angular DevTools
  # =========================================================
  devtools:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - *can-be-global-docs-approved
      - >
        contains_any_globs(files, [
          'devtools/**',
          ])
    reviewers:
      users:
        - aleksanderbodurri
        - devversion
        - josephperrott
        - mgechev
        - twerske

  # =========================================================
  #  Dev-infra
  # =========================================================
  dev-infra:
    <<: *defaults
    conditions:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          '*',
          '.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/build/**',
          'tools/circular_dependency_test/**',
          'tools/contributing-stats/**',
          'tools/gulp-tasks/**',
          'tools/legacy-saucelabs/**',
          'tools/npm/**',
          'tools/rxjs/**',
          'tools/saucelabs/**',
          'tools/size-tracking/**',
          'tools/source-map-test/**',
          'tools/symbol-extractor/**',
          'tools/testing/**',
          'tools/tslint/**',
          'tools/utils/**',
          'tools/yarn/**',
          'tools/*',
          '**/*.bzl'
          ])
    reviewers:
      users:
        - devversion
        - gkalpak
        - josephperrott

  # =========================================================
  #  Public API
  # =========================================================
  public-api:
    <<: *defaults
    conditions:
      - *no-groups-above-this-pending
      - *no-groups-above-this-rejected
      - *can-be-global-approved
      - >
        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/errors/*.md',
          'aio/content/extended-diagnostics/*.md',
          'aio/content/guide/glossary.md',
          'aio/content/guide/styleguide.md',
          'aio/content/examples/errors/**',
          'aio/content/examples/styleguide/**',
          'aio/content/images/guide/styleguide/*'
          ])
    reviewers:
      users:
        - AndrewKushnir
        - alxhub
        - atscott
        - dylhunn
        - jelbourn
        - jessicajaniuk
        - pkozlowski-opensource
    reviews:
      request: 4 # Request reviews from four people
      required: 3 # Require that three people approve
      reviewed_for: required

  # ================================================
  #  Size tracking
  # ================================================
  size-tracking:
    <<: *defaults
    conditions:
      - *no-groups-above-this-pending
      - *no-groups-above-this-rejected
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          'goldens/size-tracking/**'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - atscott
        - dylhunn
        - jelbourn
        - jessicajaniuk
        - pkozlowski-opensource
    reviews:
      request: 4 # Request reviews from four people
      required: 2 # Require that two people approve
      reviewed_for: required

  # ================================================
  #  Circular dependencies
  # ================================================
  circular-dependencies:
    <<: *defaults
    conditions:
      - *no-groups-above-this-pending
      - *no-groups-above-this-rejected
      - *can-be-global-approved
      - >
        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:
      - *can-be-global-approved
      - >
        contains_any_globs(files, [
          '.pullapprove.yml'
          ])
    reviewers:
      users:
        - alxhub
        - AndrewKushnir
        - andrewseguin
        - dgp1130
        - jelbourn
        - josephperrott

@alxhub alxhub added action: merge The PR is ready for merge by the caretaker and removed action: review The PR is still awaiting reviews from at least one requested reviewer labels Jan 31, 2022
@jessicajaniuk
Copy link
Contributor

This PR has conflicts with 13.2.x. I'll update to target:minor and land it. Please create a patch PR targeting 13.2.x to land it there.

@jessicajaniuk jessicajaniuk added target: minor This PR is targeted for the next minor release and removed target: patch This PR is targeted for the next patch release labels Jan 31, 2022
@jessicajaniuk
Copy link
Contributor

This PR was merged into the repository by commit 4c83395.

@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Mar 3, 2022
josmar-crwdstffng pushed a commit to josmar-crwdstffng/angular that referenced this pull request Apr 8, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
action: merge The PR is ready for merge by the caretaker area: build & ci Related the build and CI infrastructure of the project target: minor This PR is targeted for the next minor release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants