diff --git a/.ci/scripts/prepare_tool.sh b/.ci/scripts/prepare_tool.sh
index 1095e21..f93694b 100644
--- a/.ci/scripts/prepare_tool.sh
+++ b/.ci/scripts/prepare_tool.sh
@@ -4,7 +4,7 @@
 # found in the LICENSE file.
 
 # To set FETCH_HEAD for "git merge-base" to work
-git fetch origin master
+git fetch origin main
 
 cd script/tool
 dart pub get
diff --git a/.cirrus.yml b/.cirrus.yml
index 73d26b5..699ec26 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -86,9 +86,6 @@
         - dart pub run test
     - name: publishable
       env:
-        # TODO (mvanbeusekom): Temporary override to "stable" because of failure on "master".
-        # Remove override once https://github.com/dart-lang/pub/issues/3152 is resolved.
-        CHANNEL: stable
         CHANGE_DESC: "$TMPDIR/change-description.txt"
       version_check_script:
         # For pre-submit, pass the PR description to the script to allow for
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
index e19d8e1..9fe5a37 100644
--- a/.github/PULL_REQUEST_TEMPLATE.md
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -21,9 +21,9 @@
 If you need help, consider asking for advice on the #hackers-new channel on [Discord].
 
 <!-- Links -->
-[Contributor Guide]: https://github.com/flutter/plugins/blob/master/CONTRIBUTING.md
+[Contributor Guide]: https://github.com/flutter/plugins/blob/main/CONTRIBUTING.md
 [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene
-[relevant style guides]: https://github.com/flutter/plugins/blob/master/CONTRIBUTING.md#style
+[relevant style guides]: https://github.com/flutter/plugins/blob/main/CONTRIBUTING.md#style
 [CLA]: https://cla.developers.google.com/
 [flutter/tests]: https://github.com/flutter/tests
 [breaking change policy]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes
@@ -31,5 +31,5 @@
 [pub versioning philosophy]: https://dart.dev/tools/pub/versioning
 [exempt from version changes]: https://github.com/flutter/flutter/wiki/Contributing-to-Plugins-and-Packages#version-and-changelog-updates
 [following repository CHANGELOG style]: https://github.com/flutter/flutter/wiki/Contributing-to-Plugins-and-Packages#changelog-style
-[the auto-formatter]: https://github.com/flutter/plugins/blob/master/script/tool/README.md#format-code
+[the auto-formatter]: https://github.com/flutter/plugins/blob/main/script/tool/README.md#format-code
 [test-exempt]: https://github.com/flutter/flutter/wiki/Tree-hygiene#tests
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 5251820..c2d44d5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,6 +1,6 @@
 # Contributing to Flutter Plugins
 
-[![Build Status](https://api.cirrus-ci.com/github/flutter/plugins.svg)](https://cirrus-ci.com/github/flutter/plugins/master)
+[![Build Status](https://api.cirrus-ci.com/github/flutter/plugins.svg)](https://cirrus-ci.com/github/flutter/plugins/main)
 
 _See also: [Flutter's code of conduct](https://github.com/flutter/flutter/blob/master/CODE_OF_CONDUCT.md)_
 
@@ -35,7 +35,7 @@
 - [C++](https://google.github.io/styleguide/cppguide.html) formatted with `clang-format`
   - **Note**: The Linux plugins generally follow idiomatic GObject-based C
     style. See [the engine style
-    notes](https://github.com/flutter/engine/blob/master/CONTRIBUTING.md#style)
+    notes](https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style)
     for more details, and exceptions.
 - [Java](https://google.github.io/styleguide/javaguide.html) formatted with
   `google-java-format`
diff --git a/README.md b/README.md
index cc6543d..edcffe2 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 # Flutter plugins
 
-[![Build Status](https://api.cirrus-ci.com/github/flutter/plugins.svg)](https://cirrus-ci.com/github/flutter/plugins/master)
+[![Build Status](https://api.cirrus-ci.com/github/flutter/plugins.svg)](https://cirrus-ci.com/github/flutter/plugins/main)
 [![Release Status](https://github.com/flutter/plugins/actions/workflows/release.yml/badge.svg)](https://github.com/flutter/plugins/actions/workflows/release.yml)
 
 This repo is a companion repo to the main [flutter
@@ -34,7 +34,7 @@
 to the [pub repository](https://pub.dev/).
 
 If you wish to contribute a change to any of the existing plugins in this repo,
-please review our [contribution guide](https://github.com/flutter/plugins/blob/master/CONTRIBUTING.md),
+please review our [contribution guide](https://github.com/flutter/plugins/blob/main/CONTRIBUTING.md),
 and send a [pull request](https://github.com/flutter/plugins/pulls).
 
 ## Plugins
diff --git a/packages/camera/camera/README.md b/packages/camera/camera/README.md
index ec9d737..610b717 100644
--- a/packages/camera/camera/README.md
+++ b/packages/camera/camera/README.md
@@ -59,7 +59,7 @@
 
 ### Handling Lifecycle states
 
-As of version [0.5.0](https://github.com/flutter/plugins/blob/master/packages/camera/CHANGELOG.md#050) of the camera plugin, lifecycle changes are no longer handled by the plugin. This means developers are now responsible to control camera resources when the lifecycle state is updated. Failure to do so might lead to unexpected behavior (for example as described in issue [#39109](https://github.com/flutter/flutter/issues/39109)). Handling lifecycle changes can be done by overriding the `didChangeAppLifecycleState` method like so:
+As of version [0.5.0](https://github.com/flutter/plugins/blob/main/packages/camera/CHANGELOG.md#050) of the camera plugin, lifecycle changes are no longer handled by the plugin. This means developers are now responsible to control camera resources when the lifecycle state is updated. Failure to do so might lead to unexpected behavior (for example as described in issue [#39109](https://github.com/flutter/flutter/issues/39109)). Handling lifecycle changes can be done by overriding the `didChangeAppLifecycleState` method like so:
 
 <?code-excerpt "main.dart (AppLifecycle)"?>
 ```dart
diff --git a/packages/camera/camera_web/lib/src/shims/dart_ui_fake.dart b/packages/camera/camera_web/lib/src/shims/dart_ui_fake.dart
index 8757ca2..40d8f19 100644
--- a/packages/camera/camera_web/lib/src/shims/dart_ui_fake.dart
+++ b/packages/camera/camera_web/lib/src/shims/dart_ui_fake.dart
@@ -11,10 +11,10 @@
 // ignore_for_file: camel_case_types
 
 /// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L62
+/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L62
 class platformViewRegistry {
   /// Shim for registerViewFactory
-  /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L72
+  /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L72
   static bool registerViewFactory(
       String viewTypeId, html.Element Function(int viewId) viewFactory) {
     return false;
@@ -22,10 +22,10 @@
 }
 
 /// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L12
+/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L12
 class webOnlyAssetManager {
   /// Shim for getAssetUrl.
-  /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45
+  /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L45
   static String getAssetUrl(String asset) => '';
 }
 
diff --git a/packages/camera/camera_windows/CHANGELOG.md b/packages/camera/camera_windows/CHANGELOG.md
index 0f3bf44..f84e442 100644
--- a/packages/camera/camera_windows/CHANGELOG.md
+++ b/packages/camera/camera_windows/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.1.0+2
+
+* Updates references to the obsolete master branch.
+
 ## 0.1.0+1
 
 * Removes unnecessary imports.
diff --git a/packages/camera/camera_windows/pubspec.yaml b/packages/camera/camera_windows/pubspec.yaml
index fe655b0..b519668 100644
--- a/packages/camera/camera_windows/pubspec.yaml
+++ b/packages/camera/camera_windows/pubspec.yaml
@@ -1,8 +1,8 @@
 name: camera_windows
 description: A Flutter plugin for getting information about and controlling the camera on Windows.
-repository: https://github.com/flutter/plugins/tree/master/packages/camera/camera_windows
+repository: https://github.com/flutter/plugins/tree/main/packages/camera/camera_windows
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+camera%22
-version: 0.1.0+1
+version: 0.1.0+2
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/e2e/README.md b/packages/e2e/README.md
index e86126e..89c81f8 100644
--- a/packages/e2e/README.md
+++ b/packages/e2e/README.md
@@ -1,3 +1,3 @@
 # e2e (deprecated)
 
-This package has been moved to [integration_test](https://github.com/flutter/plugins/tree/master/packages/integration_test).
+This package has been moved to [`integration_test` in the Flutter SDK](https://github.com/flutter/flutter/tree/master/packages/integration_test).
diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java
index a1cdd97..a8ddfc6 100644
--- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java
+++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/DartVmService.java
@@ -42,7 +42,7 @@
  * An implementation of the Espresso-Flutter testing protocol by using the testing APIs exposed by
  * Dart VM service protocol.
  *
- * @see <a href="https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md">Dart VM
+ * @see <a href="https://github.com/dart-lang/sdk/blob/main/runtime/vm/service/service.md">Dart VM
  *     Service Protocol</a>.
  */
 public final class DartVmService implements FlutterTestingProtocol {
diff --git a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/GetVmResponse.java b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/GetVmResponse.java
index 94cac36..0f4815c 100644
--- a/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/GetVmResponse.java
+++ b/packages/espresso/android/src/main/java/androidx/test/espresso/flutter/internal/protocol/impl/GetVmResponse.java
@@ -15,7 +15,7 @@
 
 /**
  * Represents a response of a <a
- * href="https://github.com/dart-lang/sdk/blob/master/runtime/vm/service/service.md#getvm">getVM()</a>
+ * href="https://github.com/dart-lang/sdk/blob/main/runtime/vm/service/service.md#getvm">getVM()</a>
  * request.
  */
 public class GetVmResponse {
diff --git a/packages/file_selector/file_selector_macos/CHANGELOG.md b/packages/file_selector/file_selector_macos/CHANGELOG.md
index 19724a5..e909fe5 100644
--- a/packages/file_selector/file_selector_macos/CHANGELOG.md
+++ b/packages/file_selector/file_selector_macos/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.8.2+2
+
+* Updates references to the obsolete master branch.
+
 ## 0.8.2+1
 
 * Removes unnecessary imports.
diff --git a/packages/file_selector/file_selector_macos/pubspec.yaml b/packages/file_selector/file_selector_macos/pubspec.yaml
index e6f8e9b..8c6d1f7 100644
--- a/packages/file_selector/file_selector_macos/pubspec.yaml
+++ b/packages/file_selector/file_selector_macos/pubspec.yaml
@@ -1,8 +1,8 @@
 name: file_selector_macos
 description: macOS implementation of the file_selector plugin.
-repository: https://github.com/flutter/plugins/tree/master/packages/file_selector/file_selector_macos
+repository: https://github.com/flutter/plugins/tree/main/packages/file_selector/file_selector_macos
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+file_selector%22
-version: 0.8.2+1
+version: 0.8.2+2
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/file_selector/file_selector_windows/CHANGELOG.md b/packages/file_selector/file_selector_windows/CHANGELOG.md
index c242717..d3278a5 100644
--- a/packages/file_selector/file_selector_windows/CHANGELOG.md
+++ b/packages/file_selector/file_selector_windows/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.8.2+2
+
+* Updates references to the obsolete master branch.
+
 ## 0.8.2+1
 
 * Removes unnecessary imports.
diff --git a/packages/file_selector/file_selector_windows/pubspec.yaml b/packages/file_selector/file_selector_windows/pubspec.yaml
index 3ca5680..7c933b2 100644
--- a/packages/file_selector/file_selector_windows/pubspec.yaml
+++ b/packages/file_selector/file_selector_windows/pubspec.yaml
@@ -1,8 +1,8 @@
 name: file_selector_windows
 description: Windows implementation of the file_selector plugin.
-repository: https://github.com/flutter/plugins/tree/master/packages/file_selector/file_selector_windows
+repository: https://github.com/flutter/plugins/tree/main/packages/file_selector/file_selector_windows
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+file_selector%22
-version: 0.8.2+1
+version: 0.8.2+2
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui_fake.dart b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui_fake.dart
index 8757ca2..40d8f19 100644
--- a/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui_fake.dart
+++ b/packages/google_maps_flutter/google_maps_flutter_web/lib/src/shims/dart_ui_fake.dart
@@ -11,10 +11,10 @@
 // ignore_for_file: camel_case_types
 
 /// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L62
+/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L62
 class platformViewRegistry {
   /// Shim for registerViewFactory
-  /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L72
+  /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L72
   static bool registerViewFactory(
       String viewTypeId, html.Element Function(int viewId) viewFactory) {
     return false;
@@ -22,10 +22,10 @@
 }
 
 /// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L12
+/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L12
 class webOnlyAssetManager {
   /// Shim for getAssetUrl.
-  /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45
+  /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L45
   static String getAssetUrl(String asset) => '';
 }
 
diff --git a/packages/google_sign_in/google_sign_in/CHANGELOG.md b/packages/google_sign_in/google_sign_in/CHANGELOG.md
index ad21ee2..d3f0bda 100644
--- a/packages/google_sign_in/google_sign_in/CHANGELOG.md
+++ b/packages/google_sign_in/google_sign_in/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 5.3.3
+
+* Updates references to the obsolete master branch.
+
 ## 5.3.2
 
 * Enables mocking models by changing overridden operator == parameter type from `dynamic` to `Object`.
diff --git a/packages/google_sign_in/google_sign_in/README.md b/packages/google_sign_in/google_sign_in/README.md
index 2d6fa7c..5ede3be 100644
--- a/packages/google_sign_in/google_sign_in/README.md
+++ b/packages/google_sign_in/google_sign_in/README.md
@@ -126,4 +126,4 @@
 ## Example
 
 Find the example wiring in the
-[Google sign-in example application](https://github.com/flutter/plugins/blob/master/packages/google_sign_in/google_sign_in/example/lib/main.dart).
+[Google sign-in example application](https://github.com/flutter/plugins/blob/main/packages/google_sign_in/google_sign_in/example/lib/main.dart).
diff --git a/packages/google_sign_in/google_sign_in/pubspec.yaml b/packages/google_sign_in/google_sign_in/pubspec.yaml
index 6862a55..9ea09dd 100644
--- a/packages/google_sign_in/google_sign_in/pubspec.yaml
+++ b/packages/google_sign_in/google_sign_in/pubspec.yaml
@@ -3,7 +3,7 @@
   for signing in with a Google account on Android and iOS.
 repository: https://github.com/flutter/plugins/tree/main/packages/google_sign_in/google_sign_in
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22
-version: 5.3.2
+version: 5.3.3
 
 
 environment:
diff --git a/packages/google_sign_in/google_sign_in_ios/ios/google_sign_in_ios.podspec b/packages/google_sign_in/google_sign_in_ios/ios/google_sign_in_ios.podspec
index 18a2135..4e30709 100644
--- a/packages/google_sign_in/google_sign_in_ios/ios/google_sign_in_ios.podspec
+++ b/packages/google_sign_in/google_sign_in_ios/ios/google_sign_in_ios.podspec
@@ -11,7 +11,7 @@
   s.homepage         = 'https://github.com/flutter/plugins/tree/main/packages/google_sign_in'
   s.license          = { :type => 'BSD', :file => '../LICENSE' }
   s.author           = { 'Flutter Team' => 'flutter-dev@googlegroups.com' }
-  s.source           = { :http => 'https://github.com/flutter/plugins/tree/master/packages/google_sign_in/google_sign_in_ios' }
+  s.source           = { :http => 'https://github.com/flutter/plugins/tree/main/packages/google_sign_in/google_sign_in_ios' }
   s.source_files = 'Classes/**/*.{h,m}'
   s.public_header_files = 'Classes/**/*.h'
   s.module_map = 'Classes/FLTGoogleSignInPlugin.modulemap'
diff --git a/packages/google_sign_in/google_sign_in_web/CHANGELOG.md b/packages/google_sign_in/google_sign_in_web/CHANGELOG.md
index 9a6b076..672b1b2 100644
--- a/packages/google_sign_in/google_sign_in_web/CHANGELOG.md
+++ b/packages/google_sign_in/google_sign_in_web/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.10.1+3
+
+* Updates references to the obsolete master branch.
+
 ## 0.10.1+2
 
 * Minor fixes for new analysis options.
diff --git a/packages/google_sign_in/google_sign_in_web/README.md b/packages/google_sign_in/google_sign_in_web/README.md
index 463603e..6f6dcf2 100644
--- a/packages/google_sign_in/google_sign_in_web/README.md
+++ b/packages/google_sign_in/google_sign_in_web/README.md
@@ -79,19 +79,19 @@
 
 ## Example
 
-Find the example wiring in the [Google sign-in example application](https://github.com/flutter/plugins/blob/master/packages/google_sign_in/google_sign_in/example/lib/main.dart).
+Find the example wiring in the [Google sign-in example application](https://github.com/flutter/plugins/blob/main/packages/google_sign_in/google_sign_in/example/lib/main.dart).
 
 ## API details
 
-See the [google_sign_in.dart](https://github.com/flutter/plugins/blob/master/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart) for more API details.
+See the [google_sign_in.dart](https://github.com/flutter/plugins/blob/main/packages/google_sign_in/google_sign_in/lib/google_sign_in.dart) for more API details.
 
 ## Contributions and Testing
 
 Tests are crucial for contributions to this package. All new contributions should be reasonably tested.
 
-**Check the [`test/README.md` file](https://github.com/flutter/plugins/blob/master/packages/google_sign_in/google_sign_in_web/test/README.md)** for more information on how to run tests on this package.
+**Check the [`test/README.md` file](https://github.com/flutter/plugins/blob/main/packages/google_sign_in/google_sign_in_web/test/README.md)** for more information on how to run tests on this package.
 
-Contributions to this package are welcome. Read the [Contributing to Flutter Plugins](https://github.com/flutter/plugins/blob/master/CONTRIBUTING.md) guide to get started.
+Contributions to this package are welcome. Read the [Contributing to Flutter Plugins](https://github.com/flutter/plugins/blob/main/CONTRIBUTING.md) guide to get started.
 
 ## Issues and feedback
 
diff --git a/packages/google_sign_in/google_sign_in_web/pubspec.yaml b/packages/google_sign_in/google_sign_in_web/pubspec.yaml
index a270af9..907cc90 100644
--- a/packages/google_sign_in/google_sign_in_web/pubspec.yaml
+++ b/packages/google_sign_in/google_sign_in_web/pubspec.yaml
@@ -3,7 +3,7 @@
   for signing in with a Google account on Android, iOS and Web.
 repository: https://github.com/flutter/plugins/tree/main/packages/google_sign_in/google_sign_in_web
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+google_sign_in%22
-version: 0.10.1+2
+version: 0.10.1+3
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/in_app_purchase/in_app_purchase/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase/CHANGELOG.md
index 6f0d487..61fd745 100644
--- a/packages/in_app_purchase/in_app_purchase/CHANGELOG.md
+++ b/packages/in_app_purchase/in_app_purchase/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 3.0.5
+
+* Updates references to the obsolete master branch.
+
 ## 3.0.4
 
 * Minor fixes for new analysis options.
diff --git a/packages/in_app_purchase/in_app_purchase/README.md b/packages/in_app_purchase/in_app_purchase/README.md
index 258eba7..8986b9d 100644
--- a/packages/in_app_purchase/in_app_purchase/README.md
+++ b/packages/in_app_purchase/in_app_purchase/README.md
@@ -10,10 +10,10 @@
 | **Support** | SDK 16+ | 9.0+ |
 
 <p>
-  <img src="https://github.com/flutter/plugins/blob/master/packages/in_app_purchase/in_app_purchase/doc/iap_ios.gif?raw=true"
+  <img src="https://github.com/flutter/plugins/blob/main/packages/in_app_purchase/in_app_purchase/doc/iap_ios.gif?raw=true"
     alt="An animated image of the iOS in-app purchase UI" height="400"/>
   &nbsp;&nbsp;&nbsp;&nbsp;
-  <img src="https://github.com/flutter/plugins/blob/master/packages/in_app_purchase/in_app_purchase/doc/iap_android.gif?raw=true"
+  <img src="https://github.com/flutter/plugins/blob/main/packages/in_app_purchase/in_app_purchase/doc/iap_android.gif?raw=true"
    alt="An animated image of the Android in-app purchase UI" height="400"/>
 </p>
 
@@ -41,7 +41,7 @@
 > to a particular store.
 
 For a list of steps for configuring in-app purchases in both stores, see the
-[example app README](https://github.com/flutter/plugins/blob/master/packages/in_app_purchase/in_app_purchase/example/README.md).
+[example app README](https://github.com/flutter/plugins/blob/main/packages/in_app_purchase/in_app_purchase/example/README.md).
 
 Once you've configured your in-app purchases in their respective stores, you
 can start using the plugin. Two basic options are available:
@@ -426,4 +426,4 @@
 ## Contributing to this plugin
 
 If you would like to contribute to the plugin, check out our
-[contribution guide](https://github.com/flutter/plugins/blob/master/CONTRIBUTING.md).
+[contribution guide](https://github.com/flutter/plugins/blob/main/CONTRIBUTING.md).
diff --git a/packages/in_app_purchase/in_app_purchase/pubspec.yaml b/packages/in_app_purchase/in_app_purchase/pubspec.yaml
index 23d771c..8503b22 100644
--- a/packages/in_app_purchase/in_app_purchase/pubspec.yaml
+++ b/packages/in_app_purchase/in_app_purchase/pubspec.yaml
@@ -2,7 +2,7 @@
 description: A Flutter plugin for in-app purchases. Exposes APIs for making in-app purchases through the App Store and Google Play.
 repository: https://github.com/flutter/plugins/tree/main/packages/in_app_purchase/in_app_purchase
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22
-version: 3.0.4
+version: 3.0.5
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md
index 05c2952..b7069cf 100644
--- a/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md
+++ b/packages/in_app_purchase/in_app_purchase_android/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.2.2+7
+
+* Updates references to the obsolete master branch.
+
 ## 0.2.2+6
 
 * Enables mocking models by changing overridden operator == parameter type from `dynamic` to `Object`.
diff --git a/packages/in_app_purchase/in_app_purchase_android/README.md b/packages/in_app_purchase/in_app_purchase_android/README.md
index d64fbfb..423c075 100644
--- a/packages/in_app_purchase/in_app_purchase_android/README.md
+++ b/packages/in_app_purchase/in_app_purchase_android/README.md
@@ -21,7 +21,7 @@
 watch the filesystem for changes.
 
 If you would like to contribute to the plugin, check out our
-[contribution guide](https://github.com/flutter/plugins/blob/master/CONTRIBUTING.md).
+[contribution guide](https://github.com/flutter/plugins/blob/main/CONTRIBUTING.md).
 
 
 [1]: https://pub.dev/packages/in_app_purchase
diff --git a/packages/in_app_purchase/in_app_purchase_android/android/src/main/java/io/flutter/plugins/inapppurchase/MethodCallHandlerImpl.java b/packages/in_app_purchase/in_app_purchase_android/android/src/main/java/io/flutter/plugins/inapppurchase/MethodCallHandlerImpl.java
index 23b9cb6..adad84b 100644
--- a/packages/in_app_purchase/in_app_purchase_android/android/src/main/java/io/flutter/plugins/inapppurchase/MethodCallHandlerImpl.java
+++ b/packages/in_app_purchase/in_app_purchase_android/android/src/main/java/io/flutter/plugins/inapppurchase/MethodCallHandlerImpl.java
@@ -42,7 +42,7 @@
 
   private static final String TAG = "InAppPurchasePlugin";
   private static final String LOAD_SKU_DOC_URL =
-      "https://github.com/flutter/plugins/blob/master/packages/in_app_purchase/in_app_purchase/README.md#loading-products-for-sale";
+      "https://github.com/flutter/plugins/blob/main/packages/in_app_purchase/in_app_purchase/README.md#loading-products-for-sale";
 
   @Nullable private BillingClient billingClient;
   private final BillingClientFactory billingClientFactory;
diff --git a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml
index 1099c3a..b9a2b86 100644
--- a/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml
+++ b/packages/in_app_purchase/in_app_purchase_android/pubspec.yaml
@@ -2,7 +2,7 @@
 description: An implementation for the Android platform of the Flutter `in_app_purchase` plugin. This uses the Android BillingClient APIs.
 repository: https://github.com/flutter/plugins/tree/main/packages/in_app_purchase/in_app_purchase_android
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22
-version: 0.2.2+6
+version: 0.2.2+7
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
diff --git a/packages/in_app_purchase/in_app_purchase_storekit/CHANGELOG.md b/packages/in_app_purchase/in_app_purchase_storekit/CHANGELOG.md
index 365c713..30448ae 100644
--- a/packages/in_app_purchase/in_app_purchase_storekit/CHANGELOG.md
+++ b/packages/in_app_purchase/in_app_purchase_storekit/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.3.0+9
+
+* Updates references to the obsolete master branch.
+
 ## 0.3.0+8
 
 * Fixes a memory leak on iOS.
diff --git a/packages/in_app_purchase/in_app_purchase_storekit/README.md b/packages/in_app_purchase/in_app_purchase_storekit/README.md
index e9585f3..76e2854 100644
--- a/packages/in_app_purchase/in_app_purchase_storekit/README.md
+++ b/packages/in_app_purchase/in_app_purchase_storekit/README.md
@@ -21,7 +21,7 @@
 watch the filesystem for changes.
 
 If you would like to contribute to the plugin, check out our
-[contribution guide](https://github.com/flutter/plugins/blob/master/CONTRIBUTING.md).
+[contribution guide](https://github.com/flutter/plugins/blob/main/CONTRIBUTING.md).
 
 
 [1]: ../in_app_purchase
diff --git a/packages/in_app_purchase/in_app_purchase_storekit/pubspec.yaml b/packages/in_app_purchase/in_app_purchase_storekit/pubspec.yaml
index b154ff3..fab5218 100644
--- a/packages/in_app_purchase/in_app_purchase_storekit/pubspec.yaml
+++ b/packages/in_app_purchase/in_app_purchase_storekit/pubspec.yaml
@@ -2,7 +2,7 @@
 description: An implementation for the iOS platform of the Flutter `in_app_purchase` plugin. This uses the StoreKit Framework.
 repository: https://github.com/flutter/plugins/tree/main/packages/in_app_purchase/in_app_purchase_storekit
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22
-version: 0.3.0+8
+version: 0.3.0+9
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
diff --git a/packages/integration_test/README.md b/packages/integration_test/README.md
index 6bf3881..83c4adb 100644
--- a/packages/integration_test/README.md
+++ b/packages/integration_test/README.md
@@ -16,256 +16,3 @@
 
 For the latest documentation, see [Integration
 testing](https://flutter.dev/docs/testing/integration-tests).
-
-## Old instructions
-
-This package enables self-driving testing of Flutter code on devices and emulators.
-It adapts flutter_test results into a format that is compatible with `flutter drive`
-and native Android instrumentation testing.
-
-## Usage
-
-Add a dependency on the `integration_test` and `flutter_test` package in the
-`dev_dependencies` section of `pubspec.yaml`. For plugins, do this in the
-`pubspec.yaml` of the example app.
-
-Create a `integration_test/` directory for your package. In this directory,
-create a `<name>_test.dart`, using the following as a starting point to make
-assertions.
-
-Note: You should only use `testWidgets` to declare your tests, or errors will not be reported correctly.
-
-```dart
-import 'package:flutter_test/flutter_test.dart';
-import 'package:integration_test/integration_test.dart';
-
-void main() {
-  IntegrationTestWidgetsFlutterBinding.ensureInitialized();
-
-  testWidgets("failing test example", (WidgetTester tester) async {
-    expect(2 + 2, equals(5));
-  });
-}
-```
-
-### Driver Entrypoint
-
-An accompanying driver script will be needed that can be shared across all
-integration tests. Create a file named `integration_test.dart` in the
-`test_driver/` directory with the following contents:
-
-```dart
-import 'package:integration_test/integration_test_driver.dart';
-
-Future<void> main() => integrationDriver();
-```
-
-You can also use different driver scripts to customize the behavior of the app
-under test. For example, `FlutterDriver` can also be parameterized with
-different [options](https://api.flutter.dev/flutter/flutter_driver/FlutterDriver/connect.html).
-See the [extended driver](https://github.com/flutter/flutter/blob/master/packages/integration_test/example/test_driver/extended_integration_test.dart) for an example.
-
-### Package Structure
-
-Your package should have a structure that looks like this:
-
-```
-lib/
-  ...
-integration_test/
-  foo_test.dart
-  bar_test.dart
-test/
-  # Other unit tests go here.
-test_driver/
-  integration_test.dart
-```
-
-[Example](https://github.com/flutter/plugins/tree/master/packages/integration_test/example)
-
-## Using Flutter Driver to Run Tests
-
-These tests can be launched with the `flutter drive` command.
-
-To run the `integration_test/foo_test.dart` test with the
-`test_driver/integration_test.dart` driver, use the following command:
-
-```sh
-flutter drive \
-  --driver=test_driver/integration_test.dart \
-  --target=integration_test/foo_test.dart
-```
-
-### Web
-
-Make sure you have [enabled web support](https://flutter.dev/docs/get-started/web#set-up)
-then [download and run](https://flutter.dev/docs/cookbook/testing/integration/introduction#6b-web)
-the web driver in another process.
-
-Use following command to execute the tests:
-
-```sh
-flutter drive \
-  --driver=test_driver/integration_test.dart \
-  --target=integration_test/foo_test.dart \
-  -d web-server
-```
-
-## Android Device Testing
-
-Create an instrumentation test file in your application's
-**android/app/src/androidTest/java/com/example/myapp/** directory (replacing
-com, example, and myapp with values from your app's package name). You can name
-this test file `MainActivityTest.java` or another name of your choice.
-
-```java
-package com.example.myapp;
-
-import androidx.test.rule.ActivityTestRule;
-import dev.flutter.plugins.integration_test.FlutterTestRunner;
-import org.junit.Rule;
-import org.junit.runner.RunWith;
-
-@RunWith(FlutterTestRunner.class)
-public class MainActivityTest {
-  @Rule
-  public ActivityTestRule<MainActivity> rule = new ActivityTestRule<>(MainActivity.class, true, false);
-}
-```
-
-Update your application's **myapp/android/app/build.gradle** to make sure it
-uses androidx's version of `AndroidJUnitRunner` and has androidx libraries as a
-dependency.
-
-```gradle
-android {
-  ...
-  defaultConfig {
-    ...
-    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
-  }
-}
-
-dependencies {
-    testImplementation 'junit:junit:4.12'
-
-    // https://developer.android.com/jetpack/androidx/releases/test/#1.2.0
-    androidTestImplementation 'androidx.test:runner:1.2.0'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
-}
-```
-
-To run `integration_test/foo_test.dart` on a local Android device (emulated or
-physical):
-
-```sh
-./gradlew app:connectedAndroidTest -Ptarget=`pwd`/../integration_test/foo_test.dart
-```
-
-## Firebase Test Lab
-
-If this is your first time testing with Firebase Test Lab, you'll need to follow
-the guides in the [Firebase test lab
-documentation](https://firebase.google.com/docs/test-lab/?gclid=EAIaIQobChMIs5qVwqW25QIV8iCtBh3DrwyUEAAYASAAEgLFU_D_BwE)
-to set up a project.
-
-To run a test on Android devices using Firebase Test Lab, use gradle commands to build an
-instrumentation test for Android, after creating `androidTest` as suggested in the last section.
-
-```bash
-pushd android
-# flutter build generates files in android/ for building the app
-flutter build apk
-./gradlew app:assembleAndroidTest
-./gradlew app:assembleDebug -Ptarget=<path_to_test>.dart
-popd
-```
-
-Upload the build apks Firebase Test Lab, making sure to replace <PATH_TO_KEY_FILE>,
-<PROJECT_NAME>, <RESULTS_BUCKET>, and <RESULTS_DIRECTORY> with your values.
-
-```bash
-gcloud auth activate-service-account --key-file=<PATH_TO_KEY_FILE>
-gcloud --quiet config set project <PROJECT_NAME>
-gcloud firebase test android run --type instrumentation \
-  --app build/app/outputs/apk/debug/app-debug.apk \
-  --test build/app/outputs/apk/androidTest/debug/app-debug-androidTest.apk\
-  --timeout 2m \
-  --results-bucket=<RESULTS_BUCKET> \
-  --results-dir=<RESULTS_DIRECTORY>
-```
-
-You can pass additional parameters on the command line, such as the
-devices you want to test on. See
-[gcloud firebase test android run](https://cloud.google.com/sdk/gcloud/reference/firebase/test/android/run).
-
-## iOS Device Testing
-
-Open `ios/Runner.xcworkspace` in Xcode. Create a test target if you
-do not already have one via `File > New > Target...` and select `Unit Testing Bundle`.
-Change the `Product Name` to `RunnerTests`. Make sure `Target to be Tested` is set to `Runner` and language is set to `Objective-C`.
-Select `Finish`.
-Make sure that the **iOS Deployment Target** of `RunnerTests` within the **Build Settings** section is the same as `Runner`.
-
-Add the new test target to `ios/Podfile` by embedding in the existing `Runner` target.
-
-```ruby
-target 'Runner' do
-  # Do not change existing lines.
-  ...
-
-  target 'RunnerTests' do
-    inherit! :search_paths
-  end
-end
-```
-
-To build `integration_test/foo_test.dart` from the command line, run:
-```sh
-flutter build ios --config-only integration_test/foo_test.dart
-```
-
-In Xcode, add a test file called `RunnerTests.m` (or any name of your choice) to the new target and
-replace the file:
-
-```objective-c
-@import XCTest;
-@import integration_test;
-
-INTEGRATION_TEST_IOS_RUNNER(RunnerTests)
-```
-
-Run `Product > Test` to run the integration tests on your selected device.
-
-To deploy it to Firebase Test Lab you can follow these steps:
-
-Execute this script at the root of your Flutter app:
-
-```sh
-output="../build/ios_integ"
-product="build/ios_integ/Build/Products"
-dev_target="14.3"
-
-# Pass --simulator if building for the simulator.
-flutter build ios integration_test/foo_test.dart --release
-
-pushd ios
-xcodebuild -workspace Runner.xcworkspace -scheme Runner -config Flutter/Release.xcconfig -derivedDataPath $output -sdk iphoneos build-for-testing
-popd
-
-pushd $product
-zip -r "ios_tests.zip" "Release-iphoneos" "Runner_iphoneos$dev_target-arm64.xctestrun"
-popd
-```
-
-You can verify locally that your tests are successful by running the following command:
-
-```sh
-xcodebuild test-without-building -xctestrun "build/ios_integ/Build/Products/Runner_iphoneos14.3-arm64.xctestrun" -destination id=<YOUR_DEVICE_ID>
-```
-
-Once everything is ok, you can upload the resulting zip to Firebase Test Lab (change the model with your values):
-
-```sh
-gcloud firebase test ios run --test "build/ios_integ/ios_tests.zip" --device model=iphone11pro,version=14.1,locale=fr_FR,orientation=portrait
-```
diff --git a/packages/local_auth/local_auth_android/CHANGELOG.md b/packages/local_auth/local_auth_android/CHANGELOG.md
index f18e76b..df9c8b8 100644
--- a/packages/local_auth/local_auth_android/CHANGELOG.md
+++ b/packages/local_auth/local_auth_android/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.5
+
+* Updates references to the obsolete master branch.
+
 ## 1.0.4
 
 * Minor fixes for new analysis options.
diff --git a/packages/local_auth/local_auth_android/pubspec.yaml b/packages/local_auth/local_auth_android/pubspec.yaml
index 0feea23..ec4eaab 100644
--- a/packages/local_auth/local_auth_android/pubspec.yaml
+++ b/packages/local_auth/local_auth_android/pubspec.yaml
@@ -1,8 +1,8 @@
 name: local_auth_android
 description: Android implementation of the local_auth plugin.
-repository: https://github.com/flutter/plugins/tree/master/packages/local_auth/local_auth_android
+repository: https://github.com/flutter/plugins/tree/main/packages/local_auth/local_auth_android
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22
-version: 1.0.4
+version: 1.0.5
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
diff --git a/packages/local_auth/local_auth_ios/CHANGELOG.md b/packages/local_auth/local_auth_ios/CHANGELOG.md
index d448367..4b8e065 100644
--- a/packages/local_auth/local_auth_ios/CHANGELOG.md
+++ b/packages/local_auth/local_auth_ios/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.7
+
+* Updates references to the obsolete master branch.
+
 ## 1.0.6
 
 * Suppresses warnings for pre-iOS-11 codepaths.
diff --git a/packages/local_auth/local_auth_ios/pubspec.yaml b/packages/local_auth/local_auth_ios/pubspec.yaml
index f491dfb..043d84e 100644
--- a/packages/local_auth/local_auth_ios/pubspec.yaml
+++ b/packages/local_auth/local_auth_ios/pubspec.yaml
@@ -1,8 +1,8 @@
 name: local_auth_ios
 description: iOS implementation of the local_auth plugin.
-repository: https://github.com/flutter/plugins/tree/master/packages/local_auth/local_auth_ios
+repository: https://github.com/flutter/plugins/tree/main/packages/local_auth/local_auth_ios
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22
-version: 1.0.6
+version: 1.0.7
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
diff --git a/packages/local_auth/local_auth_platform_interface/CHANGELOG.md b/packages/local_auth/local_auth_platform_interface/CHANGELOG.md
index 10020be..387a200 100644
--- a/packages/local_auth/local_auth_platform_interface/CHANGELOG.md
+++ b/packages/local_auth/local_auth_platform_interface/CHANGELOG.md
@@ -1,5 +1,6 @@
-## NEXT
+## 1.0.4
 
+* Updates references to the obsolete master branch.
 * Removes unnecessary imports.
 
 ## 1.0.3
diff --git a/packages/local_auth/local_auth_platform_interface/pubspec.yaml b/packages/local_auth/local_auth_platform_interface/pubspec.yaml
index ee6c1e9..a4ad682 100644
--- a/packages/local_auth/local_auth_platform_interface/pubspec.yaml
+++ b/packages/local_auth/local_auth_platform_interface/pubspec.yaml
@@ -1,10 +1,10 @@
 name: local_auth_platform_interface
 description: A common platform interface for the local_auth plugin.
-repository: https://github.com/flutter/plugins/tree/master/packages/local_auth/local_auth_platform_interface
+repository: https://github.com/flutter/plugins/tree/main/packages/local_auth/local_auth_platform_interface
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22
 # NOTE: We strongly prefer non-breaking changes, even at the expense of a
 # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
-version: 1.0.3
+version: 1.0.4
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
diff --git a/packages/local_auth/local_auth_windows/CHANGELOG.md b/packages/local_auth/local_auth_windows/CHANGELOG.md
index 7cf171f..f6c5e90 100644
--- a/packages/local_auth/local_auth_windows/CHANGELOG.md
+++ b/packages/local_auth/local_auth_windows/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 1.0.1
+
+* Updates references to the obsolete master branch.
+
 ## 1.0.0
 
 * Initial release of Windows support.
diff --git a/packages/local_auth/local_auth_windows/pubspec.yaml b/packages/local_auth/local_auth_windows/pubspec.yaml
index 9edeffb..b42a4f8 100644
--- a/packages/local_auth/local_auth_windows/pubspec.yaml
+++ b/packages/local_auth/local_auth_windows/pubspec.yaml
@@ -1,8 +1,8 @@
 name: local_auth_windows
 description: Windows implementation of the local_auth plugin.
-repository: https://github.com/flutter/plugins/tree/master/packages/local_auth/local_auth_windows
+repository: https://github.com/flutter/plugins/tree/main/packages/local_auth/local_auth_windows
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+local_auth%22
-version: 1.0.0
+version: 1.0.1
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
@@ -23,4 +23,4 @@
 
 dev_dependencies:
   flutter_test:
-    sdk: flutter
\ No newline at end of file
+    sdk: flutter
diff --git a/packages/path_provider/path_provider/CHANGELOG.md b/packages/path_provider/path_provider/CHANGELOG.md
index 0567b7e..6f345f8 100644
--- a/packages/path_provider/path_provider/CHANGELOG.md
+++ b/packages/path_provider/path_provider/CHANGELOG.md
@@ -1,5 +1,6 @@
-## NEXT
+## 2.0.11
 
+* Updates references to the obsolete master branch.
 * Fixes integration test permission issue on recent versions of macOS.
 
 ## 2.0.10
diff --git a/packages/path_provider/path_provider/README.md b/packages/path_provider/path_provider/README.md
index e79234f..3a52e3e 100644
--- a/packages/path_provider/path_provider/README.md
+++ b/packages/path_provider/path_provider/README.md
@@ -43,4 +43,4 @@
 `path_provider` now uses a `PlatformInterface`, meaning that not all platforms share a single `PlatformChannel`-based implementation.
 With that change, tests should be updated to mock `PathProviderPlatform` rather than `PlatformChannel`.
 
-See this `path_provider` [test](https://github.com/flutter/plugins/blob/master/packages/path_provider/path_provider/test/path_provider_test.dart) for an example.
+See this `path_provider` [test](https://github.com/flutter/plugins/blob/main/packages/path_provider/path_provider/test/path_provider_test.dart) for an example.
diff --git a/packages/path_provider/path_provider/pubspec.yaml b/packages/path_provider/path_provider/pubspec.yaml
index 1e73497..272cb44 100644
--- a/packages/path_provider/path_provider/pubspec.yaml
+++ b/packages/path_provider/path_provider/pubspec.yaml
@@ -2,7 +2,7 @@
 description: Flutter plugin for getting commonly used locations on host platform file systems, such as the temp and app data directories.
 repository: https://github.com/flutter/plugins/tree/main/packages/path_provider/path_provider
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+path_provider%22
-version: 2.0.10
+version: 2.0.11
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
diff --git a/packages/path_provider/path_provider_macos/macos/path_provider_macos.podspec b/packages/path_provider/path_provider_macos/macos/path_provider_macos.podspec
index 1f28f2b..14c4682 100644
--- a/packages/path_provider/path_provider_macos/macos/path_provider_macos.podspec
+++ b/packages/path_provider/path_provider_macos/macos/path_provider_macos.podspec
@@ -11,7 +11,7 @@
   s.homepage         = 'https://github.com/flutter/plugins/tree/main/packages/path_provider/path_provider_macos'
   s.license          = { :type => 'BSD', :file => '../LICENSE' }
   s.author           = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' }
-  s.source           = { :http => 'https://github.com/flutter/plugins/tree/master/packages/path_provider/path_provider_macos' }
+  s.source           = { :http => 'https://github.com/flutter/plugins/tree/main/packages/path_provider/path_provider_macos' }
   s.source_files = 'Classes/**/*'
   s.dependency 'FlutterMacOS'
 
diff --git a/packages/quick_actions/quick_actions_android/CHANGELOG.md b/packages/quick_actions/quick_actions_android/CHANGELOG.md
index 56accc9..35f9c9f 100644
--- a/packages/quick_actions/quick_actions_android/CHANGELOG.md
+++ b/packages/quick_actions/quick_actions_android/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.6.0+11
+
+* Updates references to the obsolete master branch.
+
 ## 0.6.0+10
 
 * Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors
@@ -5,4 +9,4 @@
 
 ## 0.6.0+9
 
-* Switches to a package-internal implementation of the platform interface.
\ No newline at end of file
+* Switches to a package-internal implementation of the platform interface.
diff --git a/packages/quick_actions/quick_actions_android/README.md b/packages/quick_actions/quick_actions_android/README.md
index caeb943..8b7fc88 100644
--- a/packages/quick_actions/quick_actions_android/README.md
+++ b/packages/quick_actions/quick_actions_android/README.md
@@ -13,5 +13,5 @@
 
 [1]: https://pub.dev/packages/quick_actions
 [2]: https://flutter.dev/docs/development/packages-and-plugins/developing-packages#endorsed-federated-plugin
-[3]: https://github.com/flutter/plugins/blob/master/CONTRIBUTING.md
+[3]: https://github.com/flutter/plugins/blob/main/CONTRIBUTING.md
 
diff --git a/packages/quick_actions/quick_actions_android/pubspec.yaml b/packages/quick_actions/quick_actions_android/pubspec.yaml
index 4ddbc79..fa39e36 100644
--- a/packages/quick_actions/quick_actions_android/pubspec.yaml
+++ b/packages/quick_actions/quick_actions_android/pubspec.yaml
@@ -2,7 +2,7 @@
 description: An implementation for the Android platform of the Flutter `quick_actions` plugin.
 repository: https://github.com/flutter/plugins/tree/main/packages/quick_actions/quick_actions_android
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22
-version: 0.6.0+10
+version: 0.6.0+11
 
 environment:
   sdk: ">=2.15.0 <3.0.0"
diff --git a/packages/quick_actions/quick_actions_ios/CHANGELOG.md b/packages/quick_actions/quick_actions_ios/CHANGELOG.md
index 56accc9..35f9c9f 100644
--- a/packages/quick_actions/quick_actions_ios/CHANGELOG.md
+++ b/packages/quick_actions/quick_actions_ios/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.6.0+11
+
+* Updates references to the obsolete master branch.
+
 ## 0.6.0+10
 
 * Fixes library_private_types_in_public_api, sort_child_properties_last and use_key_in_widget_constructors
@@ -5,4 +9,4 @@
 
 ## 0.6.0+9
 
-* Switches to a package-internal implementation of the platform interface.
\ No newline at end of file
+* Switches to a package-internal implementation of the platform interface.
diff --git a/packages/quick_actions/quick_actions_ios/README.md b/packages/quick_actions/quick_actions_ios/README.md
index a0c3698..e33b9ec 100644
--- a/packages/quick_actions/quick_actions_ios/README.md
+++ b/packages/quick_actions/quick_actions_ios/README.md
@@ -13,4 +13,4 @@
 
 [1]: https://pub.dev/packages/quick_actions
 [2]: https://flutter.dev/docs/development/packages-and-plugins/developing-packages#endorsed-federated-plugin
-[3]: https://github.com/flutter/plugins/blob/master/CONTRIBUTING.md
\ No newline at end of file
+[3]: https://github.com/flutter/plugins/blob/main/CONTRIBUTING.md
diff --git a/packages/quick_actions/quick_actions_ios/pubspec.yaml b/packages/quick_actions/quick_actions_ios/pubspec.yaml
index 47748b9..4dc91f4 100644
--- a/packages/quick_actions/quick_actions_ios/pubspec.yaml
+++ b/packages/quick_actions/quick_actions_ios/pubspec.yaml
@@ -2,7 +2,7 @@
 description: An implementation for the iOS platform of the Flutter `quick_actions` plugin.
 repository: https://github.com/flutter/plugins/tree/main/packages/quick_actions/quick_actions_ios
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+in_app_purchase%22
-version: 0.6.0+10
+version: 0.6.0+11
 
 environment:
   sdk: ">=2.15.0 <3.0.0"
diff --git a/packages/shared_preferences/shared_preferences_macos/macos/shared_preferences_macos.podspec b/packages/shared_preferences/shared_preferences_macos/macos/shared_preferences_macos.podspec
index df140fb..590b0c3 100644
--- a/packages/shared_preferences/shared_preferences_macos/macos/shared_preferences_macos.podspec
+++ b/packages/shared_preferences/shared_preferences_macos/macos/shared_preferences_macos.podspec
@@ -11,7 +11,7 @@
   s.homepage         = 'https://github.com/flutter/plugins/tree/main/packages/shared_preferences/shared_preferences_macos'
   s.license          = { :type => 'BSD', :file => '../LICENSE' }
   s.author           = { 'Flutter Team' => 'flutter-dev@googlegroups.com' }
-  s.source           = { :http => 'https://github.com/flutter/plugins/tree/master/packages/shared_preferences/shared_preferences_macos' }
+  s.source           = { :http => 'https://github.com/flutter/plugins/tree/main/packages/shared_preferences/shared_preferences_macos' }
   s.source_files = 'Classes/**/*'
   s.dependency 'FlutterMacOS'
 
diff --git a/packages/url_launcher/url_launcher_ios/ios/url_launcher_ios.podspec b/packages/url_launcher/url_launcher_ios/ios/url_launcher_ios.podspec
index e22ba3d..1c0e819 100644
--- a/packages/url_launcher/url_launcher_ios/ios/url_launcher_ios.podspec
+++ b/packages/url_launcher/url_launcher_ios/ios/url_launcher_ios.podspec
@@ -11,7 +11,7 @@
   s.homepage         = 'https://github.com/flutter/plugins/tree/main/packages/url_launcher'
   s.license          = { :type => 'BSD', :file => '../LICENSE' }
   s.author           = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' }
-  s.source           = { :http => 'https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher_ios' }
+  s.source           = { :http => 'https://github.com/flutter/plugins/tree/main/packages/url_launcher/url_launcher_ios' }
   s.documentation_url = 'https://pub.dev/packages/url_launcher'
   s.source_files = 'Classes/**/*'
   s.public_header_files = 'Classes/**/*.h'
diff --git a/packages/url_launcher/url_launcher_macos/macos/url_launcher_macos.podspec b/packages/url_launcher/url_launcher_macos/macos/url_launcher_macos.podspec
index 408df1f..270adc6 100644
--- a/packages/url_launcher/url_launcher_macos/macos/url_launcher_macos.podspec
+++ b/packages/url_launcher/url_launcher_macos/macos/url_launcher_macos.podspec
@@ -11,7 +11,7 @@
   s.homepage         = 'https://github.com/flutter/plugins/tree/main/packages/url_launcher/url_launcher_macos'
   s.license          = { :type => 'BSD', :file => '../LICENSE' }
   s.author           = { 'Flutter Team' => 'flutter-dev@googlegroups.com' }
-  s.source           = { :http => 'https://github.com/flutter/plugins/tree/master/packages/url_launcher/url_launcher_macos' }
+  s.source           = { :http => 'https://github.com/flutter/plugins/tree/main/packages/url_launcher/url_launcher_macos' }
   s.source_files     = 'Classes/**/*'
   s.dependency 'FlutterMacOS'
 
diff --git a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_fake.dart b/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_fake.dart
index f51dce9..ec46f27 100644
--- a/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_fake.dart
+++ b/packages/url_launcher/url_launcher_web/lib/src/shims/dart_ui_fake.dart
@@ -11,10 +11,10 @@
 // ignore_for_file: camel_case_types
 
 /// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L62
+/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L62
 class platformViewRegistry {
   /// Shim for registerViewFactory
-  /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L72
+  /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L72
   static bool registerViewFactory(
       String viewTypeId, html.Element Function(int viewId) viewFactory,
       {bool isVisible = true}) {
@@ -23,10 +23,10 @@
 }
 
 /// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L12
+/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L12
 class webOnlyAssetManager {
   /// Shim for getAssetUrl.
-  /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45
+  /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L45
   static String getAssetUrl(String asset) => '';
 }
 
diff --git a/packages/video_player/video_player/CHANGELOG.md b/packages/video_player/video_player/CHANGELOG.md
index 8dca057..02ff312 100644
--- a/packages/video_player/video_player/CHANGELOG.md
+++ b/packages/video_player/video_player/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.4.4
+
+* Updates references to the obsolete master branch.
+
 ## 2.4.3
 
 * Fixes Android to correctly display videos recorded in landscapeRight (https://github.com/flutter/flutter/issues/60327).
diff --git a/packages/video_player/video_player/README.md b/packages/video_player/video_player/README.md
index 91c1bde..c870688 100644
--- a/packages/video_player/video_player/README.md
+++ b/packages/video_player/video_player/README.md
@@ -8,7 +8,7 @@
 |-------------|---------|------|-------|
 | **Support** | SDK 16+ | 9.0+ | Any\* |
 
-![The example app running in iOS](https://github.com/flutter/plugins/blob/master/packages/video_player/video_player/doc/demo_ipod.gif?raw=true)
+![The example app running in iOS](https://github.com/flutter/plugins/blob/main/packages/video_player/video_player/doc/demo_ipod.gif?raw=true)
 
 ## Installation
 
diff --git a/packages/video_player/video_player/pubspec.yaml b/packages/video_player/video_player/pubspec.yaml
index 8b2fc57..2672399 100644
--- a/packages/video_player/video_player/pubspec.yaml
+++ b/packages/video_player/video_player/pubspec.yaml
@@ -3,7 +3,7 @@
   widgets on Android, iOS, and web.
 repository: https://github.com/flutter/plugins/tree/main/packages/video_player/video_player
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
-version: 2.4.3
+version: 2.4.4
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
diff --git a/packages/video_player/video_player_android/CHANGELOG.md b/packages/video_player/video_player_android/CHANGELOG.md
index d5acda4..beabb23 100644
--- a/packages/video_player/video_player_android/CHANGELOG.md
+++ b/packages/video_player/video_player_android/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.3.6
+
+* Updates references to the obsolete master branch.
+
 ## 2.3.5
 
 * Sets rotationCorrection for videos recorded in landscapeRight (https://github.com/flutter/flutter/issues/60327).
diff --git a/packages/video_player/video_player_android/CONTRIBUTING.md b/packages/video_player/video_player_android/CONTRIBUTING.md
index 8dfec9f..e06f223 100644
--- a/packages/video_player/video_player_android/CONTRIBUTING.md
+++ b/packages/video_player/video_player_android/CONTRIBUTING.md
@@ -25,7 +25,7 @@
 you that you're using an override. If you do this, you will need to
 publish pigeon before you can land the updates to this package, since
 the CI tests run the analysis using latest published version of
-pigeon, not your version or the version on master.
+pigeon, not your version or the version on `main`.
 
 In either case, the configuration will be obtained automatically from the
 `pigeons/messages.dart` file (see `ConfigurePigeon` at the top of that file).
diff --git a/packages/video_player/video_player_android/pubspec.yaml b/packages/video_player/video_player_android/pubspec.yaml
index 367b95e..0b63046 100644
--- a/packages/video_player/video_player_android/pubspec.yaml
+++ b/packages/video_player/video_player_android/pubspec.yaml
@@ -1,8 +1,8 @@
 name: video_player_android
 description: Android implementation of the video_player plugin.
-repository: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player_android
+repository: https://github.com/flutter/plugins/tree/main/packages/video_player/video_player_android
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
-version: 2.3.5
+version: 2.3.6
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
diff --git a/packages/video_player/video_player_avfoundation/CHANGELOG.md b/packages/video_player/video_player_avfoundation/CHANGELOG.md
index 6ab5398..90d8ee6 100644
--- a/packages/video_player/video_player_avfoundation/CHANGELOG.md
+++ b/packages/video_player/video_player_avfoundation/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.3.5
+
+* Updates references to the obsolete master branch.
+
 ## 2.3.4
 
 * Removes unnecessary imports.
diff --git a/packages/video_player/video_player_avfoundation/CONTRIBUTING.md b/packages/video_player/video_player_avfoundation/CONTRIBUTING.md
index 8dfec9f..e06f223 100644
--- a/packages/video_player/video_player_avfoundation/CONTRIBUTING.md
+++ b/packages/video_player/video_player_avfoundation/CONTRIBUTING.md
@@ -25,7 +25,7 @@
 you that you're using an override. If you do this, you will need to
 publish pigeon before you can land the updates to this package, since
 the CI tests run the analysis using latest published version of
-pigeon, not your version or the version on master.
+pigeon, not your version or the version on `main`.
 
 In either case, the configuration will be obtained automatically from the
 `pigeons/messages.dart` file (see `ConfigurePigeon` at the top of that file).
diff --git a/packages/video_player/video_player_avfoundation/pubspec.yaml b/packages/video_player/video_player_avfoundation/pubspec.yaml
index 380d834..c00f4ba 100644
--- a/packages/video_player/video_player_avfoundation/pubspec.yaml
+++ b/packages/video_player/video_player_avfoundation/pubspec.yaml
@@ -1,8 +1,8 @@
 name: video_player_avfoundation
 description: iOS implementation of the video_player plugin.
-repository: https://github.com/flutter/plugins/tree/master/packages/video_player/video_player_avfoundation
+repository: https://github.com/flutter/plugins/tree/main/packages/video_player/video_player_avfoundation
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
-version: 2.3.4
+version: 2.3.5
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
diff --git a/packages/video_player/video_player_platform_interface/CHANGELOG.md b/packages/video_player/video_player_platform_interface/CHANGELOG.md
index 4304fd4..2229bf3 100644
--- a/packages/video_player/video_player_platform_interface/CHANGELOG.md
+++ b/packages/video_player/video_player_platform_interface/CHANGELOG.md
@@ -1,5 +1,6 @@
-## NEXT
+## 5.1.3
 
+* Updates references to the obsolete master branch.
 * Removes unnecessary imports.
 
 ## 5.1.2
diff --git a/packages/video_player/video_player_platform_interface/CONTRIBUTING.md b/packages/video_player/video_player_platform_interface/CONTRIBUTING.md
index dbbfbf6..4108ae0 100644
--- a/packages/video_player/video_player_platform_interface/CONTRIBUTING.md
+++ b/packages/video_player/video_player_platform_interface/CONTRIBUTING.md
@@ -39,7 +39,7 @@
 you that you're using an override. If you do this, you will need to
 publish pigeon before you can land the updates to this package, since
 the CI tests run the analysis using latest published version of
-pigeon, not your version or the version on master.
+pigeon, not your version or the version on `main`.
 
 In either case, the configuration will be obtained automatically from
 the `pigeons/messages.dart` file (see `configurePigeon` at the bottom
diff --git a/packages/video_player/video_player_platform_interface/pubspec.yaml b/packages/video_player/video_player_platform_interface/pubspec.yaml
index 7a18568..8644c45 100644
--- a/packages/video_player/video_player_platform_interface/pubspec.yaml
+++ b/packages/video_player/video_player_platform_interface/pubspec.yaml
@@ -4,7 +4,7 @@
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+video_player%22
 # NOTE: We strongly prefer non-breaking changes, even at the expense of a
 # less-clean API. See https://flutter.dev/go/platform-interface-breaking-changes
-version: 5.1.2
+version: 5.1.3
 
 environment:
   sdk: ">=2.12.0 <3.0.0"
diff --git a/packages/video_player/video_player_web/lib/src/shims/dart_ui_fake.dart b/packages/video_player/video_player_web/lib/src/shims/dart_ui_fake.dart
index 8757ca2..40d8f19 100644
--- a/packages/video_player/video_player_web/lib/src/shims/dart_ui_fake.dart
+++ b/packages/video_player/video_player_web/lib/src/shims/dart_ui_fake.dart
@@ -11,10 +11,10 @@
 // ignore_for_file: camel_case_types
 
 /// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L62
+/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L62
 class platformViewRegistry {
   /// Shim for registerViewFactory
-  /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L72
+  /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L72
   static bool registerViewFactory(
       String viewTypeId, html.Element Function(int viewId) viewFactory) {
     return false;
@@ -22,10 +22,10 @@
 }
 
 /// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L12
+/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L12
 class webOnlyAssetManager {
   /// Shim for getAssetUrl.
-  /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45
+  /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L45
   static String getAssetUrl(String asset) => '';
 }
 
diff --git a/packages/webview_flutter/webview_flutter/CHANGELOG.md b/packages/webview_flutter/webview_flutter/CHANGELOG.md
index 31c16da..f7500e5 100644
--- a/packages/webview_flutter/webview_flutter/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter/CHANGELOG.md
@@ -1,3 +1,7 @@
+## NEXT
+
+* Updates references to the obsolete master branch.
+
 ## 3.0.4
 
 * Minor fixes for new analysis options.
@@ -186,7 +190,7 @@
 performing better on iOS. Flutter 1.22 no longer requires adding the
 `io.flutter.embedded_views_preview` flag to `Info.plist`.
 
-* Added support for Hybrid Composition on Android (see opt-in instructions in [README](https://github.com/flutter/plugins/blob/master/packages/webview_flutter/README.md#android))
+* Added support for Hybrid Composition on Android (see opt-in instructions in [README](https://github.com/flutter/plugins/blob/main/packages/webview_flutter/README.md#android))
   * Lowered the required Android API to 19 (was previously 20): [#23728](https://github.com/flutter/flutter/issues/23728).
   * Fixed the following issues:
     * 🎹 Keyboard: [#41089](https://github.com/flutter/flutter/issues/41089), [#36478](https://github.com/flutter/flutter/issues/36478), [#51254](https://github.com/flutter/flutter/issues/51254), [#50716](https://github.com/flutter/flutter/issues/50716), [#55724](https://github.com/flutter/flutter/issues/55724),  [#56513](https://github.com/flutter/flutter/issues/56513), [#56515](https://github.com/flutter/flutter/issues/56515), [#61085](https://github.com/flutter/flutter/issues/61085), [#62205](https://github.com/flutter/flutter/issues/62205), [#62547](https://github.com/flutter/flutter/issues/62547), [#58943](https://github.com/flutter/flutter/issues/58943), [#56361](https://github.com/flutter/flutter/issues/56361), [#56361](https://github.com/flutter/flutter/issues/42902), [#40716](https://github.com/flutter/flutter/issues/40716), [#37989](https://github.com/flutter/flutter/issues/37989), [#27924](https://github.com/flutter/flutter/issues/27924).
diff --git a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md
index 70e9369..ee1186a 100644
--- a/packages/webview_flutter/webview_flutter_android/CHANGELOG.md
+++ b/packages/webview_flutter/webview_flutter_android/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 2.8.10
+
+* Updates references to the obsolete master branch.
+
 ## 2.8.9
 
 * Updates Gradle to 7.2.1.
diff --git a/packages/webview_flutter/webview_flutter_android/README.md b/packages/webview_flutter/webview_flutter_android/README.md
index 04cbde2..80f1f6e 100644
--- a/packages/webview_flutter/webview_flutter_android/README.md
+++ b/packages/webview_flutter/webview_flutter_android/README.md
@@ -41,5 +41,5 @@
 [2]: https://flutter.dev/docs/development/packages-and-plugins/developing-packages#endorsed-federated-plugin
 [3]: https://pub.dev/packages/pigeon
 [4]: https://pub.dev/packages/mockito
-[5]: https://github.com/flutter/plugins/blob/master/CONTRIBUTING.md
+[5]: https://github.com/flutter/plugins/blob/main/CONTRIBUTING.md
 
diff --git a/packages/webview_flutter/webview_flutter_android/pubspec.yaml b/packages/webview_flutter/webview_flutter_android/pubspec.yaml
index 873d3f7..2a32a83 100644
--- a/packages/webview_flutter/webview_flutter_android/pubspec.yaml
+++ b/packages/webview_flutter/webview_flutter_android/pubspec.yaml
@@ -2,7 +2,7 @@
 description: A Flutter plugin that provides a WebView widget on Android.
 repository: https://github.com/flutter/plugins/tree/main/packages/webview_flutter/webview_flutter_android
 issue_tracker: https://github.com/flutter/flutter/issues?q=is%3Aissue+is%3Aopen+label%3A%22p%3A+webview%22
-version: 2.8.9
+version: 2.8.10
 
 environment:
   sdk: ">=2.14.0 <3.0.0"
diff --git a/packages/webview_flutter/webview_flutter_web/lib/shims/dart_ui_fake.dart b/packages/webview_flutter/webview_flutter_web/lib/shims/dart_ui_fake.dart
index 8757ca2..40d8f19 100644
--- a/packages/webview_flutter/webview_flutter_web/lib/shims/dart_ui_fake.dart
+++ b/packages/webview_flutter/webview_flutter_web/lib/shims/dart_ui_fake.dart
@@ -11,10 +11,10 @@
 // ignore_for_file: camel_case_types
 
 /// Shim for web_ui engine.PlatformViewRegistry
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L62
+/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L62
 class platformViewRegistry {
   /// Shim for registerViewFactory
-  /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/ui.dart#L72
+  /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/ui.dart#L72
   static bool registerViewFactory(
       String viewTypeId, html.Element Function(int viewId) viewFactory) {
     return false;
@@ -22,10 +22,10 @@
 }
 
 /// Shim for web_ui engine.AssetManager.
-/// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L12
+/// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L12
 class webOnlyAssetManager {
   /// Shim for getAssetUrl.
-  /// https://github.com/flutter/engine/blob/master/lib/web_ui/lib/src/engine/assets.dart#L45
+  /// https://github.com/flutter/engine/blob/main/lib/web_ui/lib/src/engine/assets.dart#L45
   static String getAssetUrl(String asset) => '';
 }
 
diff --git a/script/install_chromium.sh b/script/install_chromium.sh
index b7d7876..0d360fe 100755
--- a/script/install_chromium.sh
+++ b/script/install_chromium.sh
@@ -11,7 +11,7 @@
 #
 # Chromium builds can be located here: https://commondatastorage.googleapis.com/chromium-browser-snapshots/index.html?prefix=Linux_x64/
 #
-# Check: https://github.com/flutter/engine/blob/master/lib/web_ui/dev/browser_lock.yaml
+# Check: https://github.com/flutter/engine/blob/main/lib/web_ui/dev/browser_lock.yaml
 readonly CHROMIUM_BUILD=929514
 
 # The correct ChromeDriver is distributed alongside the chromium build above, as
diff --git a/script/tool/README.md b/script/tool/README.md
index cc9621f..d3beb53 100644
--- a/script/tool/README.md
+++ b/script/tool/README.md
@@ -178,4 +178,4 @@
 - Update the tool's pubspec.yaml and CHANGELOG
 - Publish the tool
 - Update the pinned version in
-  [flutter/packages](https://github.com/flutter/packages/blob/master/.cirrus.yml)
+  [flutter/packages](https://github.com/flutter/packages/blob/main/.cirrus.yml)
diff --git a/script/tool/lib/src/pubspec_check_command.dart b/script/tool/lib/src/pubspec_check_command.dart
index 3598a39..79ef1e1 100644
--- a/script/tool/lib/src/pubspec_check_command.dart
+++ b/script/tool/lib/src/pubspec_check_command.dart
@@ -191,6 +191,11 @@
         errorMessages
             .add('The "repository" link should end with the package path.');
       }
+
+      if (pubspec.repository!.path.contains('/master/')) {
+        errorMessages
+            .add('The "repository" link should use "main", not "master".');
+      }
     }
 
     if (pubspec.homepage != null) {
diff --git a/script/tool/test/pubspec_check_command_test.dart b/script/tool/test/pubspec_check_command_test.dart
index fbe31c7..2c254ca 100644
--- a/script/tool/test/pubspec_check_command_test.dart
+++ b/script/tool/test/pubspec_check_command_test.dart
@@ -27,6 +27,7 @@
   String name, {
   bool isPlugin = false,
   bool includeRepository = true,
+  String repositoryBranch = 'main',
   String? repositoryPackagesDirRelativePath,
   bool includeHomepage = false,
   bool includeIssueTracker = true,
@@ -38,7 +39,7 @@
     'flutter',
     if (isPlugin) 'plugins' else 'packages',
     'tree',
-    'main',
+    repositoryBranch,
     'packages',
     repositoryPath,
   ];
@@ -328,7 +329,7 @@
       );
     });
 
-    test('fails when repository is incorrect', () async {
+    test('fails when repository package name is incorrect', () async {
       final RepositoryPackage plugin =
           createFakePlugin('plugin', packagesDir, examples: <String>[]);
 
@@ -355,6 +356,33 @@
       );
     });
 
+    test('fails when repository uses master instead of main', () async {
+      final RepositoryPackage plugin =
+          createFakePlugin('plugin', packagesDir, examples: <String>[]);
+
+      plugin.pubspecFile.writeAsStringSync('''
+${_headerSection('plugin', isPlugin: true, repositoryBranch: 'master')}
+${_environmentSection()}
+${_flutterSection(isPlugin: true)}
+${_dependenciesSection()}
+${_devDependenciesSection()}
+''');
+
+      Error? commandError;
+      final List<String> output = await runCapturingPrint(
+          runner, <String>['pubspec-check'], errorHandler: (Error e) {
+        commandError = e;
+      });
+
+      expect(commandError, isA<ToolExit>());
+      expect(
+        output,
+        containsAllInOrder(<Matcher>[
+          contains('The "repository" link should use "main", not "master".'),
+        ]),
+      );
+    });
+
     test('fails when issue tracker is missing', () async {
       final RepositoryPackage plugin =
           createFakePlugin('plugin', packagesDir, examples: <String>[]);
