Merge "Add push option to skip code owner config validation on demand"
diff --git a/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerSubmitRule.java b/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerSubmitRule.java
index 011e8cf..ea0f38a 100644
--- a/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerSubmitRule.java
+++ b/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerSubmitRule.java
@@ -18,8 +18,8 @@
 
 import com.google.common.collect.ImmutableList;
 import com.google.common.flogger.FluentLogger;
+import com.google.gerrit.entities.LegacySubmitRequirement;
 import com.google.gerrit.entities.SubmitRecord;
-import com.google.gerrit.entities.SubmitRequirement;
 import com.google.gerrit.extensions.annotations.Exports;
 import com.google.gerrit.extensions.restapi.ResourceConflictException;
 import com.google.gerrit.extensions.restapi.RestApiException;
@@ -51,8 +51,11 @@
     }
   }
 
-  private static final SubmitRequirement SUBMIT_REQUIREMENT =
-      SubmitRequirement.builder().setFallbackText("Code Owners").setType("code-owners").build();
+  private static final LegacySubmitRequirement SUBMIT_REQUIREMENT =
+      LegacySubmitRequirement.builder()
+          .setFallbackText("Code Owners")
+          .setType("code-owners")
+          .build();
 
   private final CodeOwnersPluginConfiguration codeOwnersPluginConfiguration;
   private final CodeOwnerApprovalCheck codeOwnerApprovalCheck;
diff --git a/java/com/google/gerrit/plugins/codeowners/backend/findowners/FindOwnersCodeOwnerConfigParser.java b/java/com/google/gerrit/plugins/codeowners/backend/findowners/FindOwnersCodeOwnerConfigParser.java
index 7a4261a..5ddbb9a 100644
--- a/java/com/google/gerrit/plugins/codeowners/backend/findowners/FindOwnersCodeOwnerConfigParser.java
+++ b/java/com/google/gerrit/plugins/codeowners/backend/findowners/FindOwnersCodeOwnerConfigParser.java
@@ -48,7 +48,7 @@
  * OWNERS} files as they are used by the {@code find-owners} plugin.
  *
  * <p>The syntax is described at in the {@code find-owners} plugin documentation at:
- * https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/resources/Documentation/syntax.md
+ * https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/syntax.md
  *
  * <p>Comment lines are silently ignored.
  *
diff --git a/java/com/google/gerrit/plugins/codeowners/testing/SubmitRequirementInfoSubject.java b/java/com/google/gerrit/plugins/codeowners/testing/LegacySubmitRequirementInfoSubject.java
similarity index 68%
rename from java/com/google/gerrit/plugins/codeowners/testing/SubmitRequirementInfoSubject.java
rename to java/com/google/gerrit/plugins/codeowners/testing/LegacySubmitRequirementInfoSubject.java
index dbe7848..9c8d2cb 100644
--- a/java/com/google/gerrit/plugins/codeowners/testing/SubmitRequirementInfoSubject.java
+++ b/java/com/google/gerrit/plugins/codeowners/testing/LegacySubmitRequirementInfoSubject.java
@@ -18,27 +18,27 @@
 import com.google.common.truth.FailureMetadata;
 import com.google.common.truth.StringSubject;
 import com.google.common.truth.Subject;
-import com.google.gerrit.extensions.common.SubmitRequirementInfo;
+import com.google.gerrit.extensions.common.LegacySubmitRequirementInfo;
 import com.google.gerrit.truth.ListSubject;
 import java.util.Collection;
 
-/** {@link Subject} for doing assertions on {@link SubmitRequirementInfo}s. */
-public class SubmitRequirementInfoSubject extends Subject {
-  public static ListSubject<SubmitRequirementInfoSubject, SubmitRequirementInfo>
-      assertThatCollection(Collection<SubmitRequirementInfo> submitRequirementInfos) {
+/** {@link Subject} for doing assertions on {@link LegacySubmitRequirementInfo}s. */
+public class LegacySubmitRequirementInfoSubject extends Subject {
+  public static ListSubject<LegacySubmitRequirementInfoSubject, LegacySubmitRequirementInfo>
+      assertThatCollection(Collection<LegacySubmitRequirementInfo> submitRequirementInfos) {
     return ListSubject.assertThat(
         ImmutableList.copyOf(submitRequirementInfos), submitRecordRequirementInfos());
   }
 
-  private static Factory<SubmitRequirementInfoSubject, SubmitRequirementInfo>
+  private static Factory<LegacySubmitRequirementInfoSubject, LegacySubmitRequirementInfo>
       submitRecordRequirementInfos() {
-    return SubmitRequirementInfoSubject::new;
+    return LegacySubmitRequirementInfoSubject::new;
   }
 
-  private final SubmitRequirementInfo submitRequirementInfo;
+  private final LegacySubmitRequirementInfo submitRequirementInfo;
 
-  private SubmitRequirementInfoSubject(
-      FailureMetadata metadata, SubmitRequirementInfo submitRequirementInfo) {
+  private LegacySubmitRequirementInfoSubject(
+      FailureMetadata metadata, LegacySubmitRequirementInfo submitRequirementInfo) {
     super(metadata, submitRequirementInfo);
     this.submitRequirementInfo = submitRequirementInfo;
   }
@@ -58,7 +58,7 @@
     return check("fallbackText()").that(submitRequirementInfo().fallbackText);
   }
 
-  private SubmitRequirementInfo submitRequirementInfo() {
+  private LegacySubmitRequirementInfo submitRequirementInfo() {
     isNotNull();
     return submitRequirementInfo;
   }
diff --git a/java/com/google/gerrit/plugins/codeowners/testing/SubmitRequirementSubject.java b/java/com/google/gerrit/plugins/codeowners/testing/LegacySubmitRequirementSubject.java
similarity index 68%
rename from java/com/google/gerrit/plugins/codeowners/testing/SubmitRequirementSubject.java
rename to java/com/google/gerrit/plugins/codeowners/testing/LegacySubmitRequirementSubject.java
index 7ffd31c..8a2fb99 100644
--- a/java/com/google/gerrit/plugins/codeowners/testing/SubmitRequirementSubject.java
+++ b/java/com/google/gerrit/plugins/codeowners/testing/LegacySubmitRequirementSubject.java
@@ -17,17 +17,19 @@
 import com.google.common.truth.FailureMetadata;
 import com.google.common.truth.StringSubject;
 import com.google.common.truth.Subject;
-import com.google.gerrit.entities.SubmitRequirement;
+import com.google.gerrit.entities.LegacySubmitRequirement;
 
-/** {@link Subject} for doing assertions on {@link SubmitRequirement}s. */
-public class SubmitRequirementSubject extends Subject {
-  public static Factory<SubmitRequirementSubject, SubmitRequirement> submitRecordRequirements() {
-    return SubmitRequirementSubject::new;
+/** {@link Subject} for doing assertions on {@link LegacySubmitRequirement}s. */
+public class LegacySubmitRequirementSubject extends Subject {
+  public static Factory<LegacySubmitRequirementSubject, LegacySubmitRequirement>
+      submitRecordRequirements() {
+    return LegacySubmitRequirementSubject::new;
   }
 
-  private final SubmitRequirement submitRequirement;
+  private final LegacySubmitRequirement submitRequirement;
 
-  private SubmitRequirementSubject(FailureMetadata metadata, SubmitRequirement submitRequirement) {
+  private LegacySubmitRequirementSubject(
+      FailureMetadata metadata, LegacySubmitRequirement submitRequirement) {
     super(metadata, submitRequirement);
     this.submitRequirement = submitRequirement;
   }
@@ -42,7 +44,7 @@
     return check("fallbackText()").that(submitRequirement().fallbackText());
   }
 
-  private SubmitRequirement submitRequirement() {
+  private LegacySubmitRequirement submitRequirement() {
     isNotNull();
     return submitRequirement;
   }
diff --git a/java/com/google/gerrit/plugins/codeowners/testing/SubmitRecordSubject.java b/java/com/google/gerrit/plugins/codeowners/testing/SubmitRecordSubject.java
index 7b45e8b..aa727b5 100644
--- a/java/com/google/gerrit/plugins/codeowners/testing/SubmitRecordSubject.java
+++ b/java/com/google/gerrit/plugins/codeowners/testing/SubmitRecordSubject.java
@@ -14,14 +14,14 @@
 
 package com.google.gerrit.plugins.codeowners.testing;
 
-import static com.google.gerrit.plugins.codeowners.testing.SubmitRequirementSubject.submitRecordRequirements;
+import static com.google.gerrit.plugins.codeowners.testing.LegacySubmitRequirementSubject.submitRecordRequirements;
 import static com.google.gerrit.truth.ListSubject.elements;
 
 import com.google.common.truth.FailureMetadata;
 import com.google.common.truth.StringSubject;
 import com.google.common.truth.Subject;
+import com.google.gerrit.entities.LegacySubmitRequirement;
 import com.google.gerrit.entities.SubmitRecord;
-import com.google.gerrit.entities.SubmitRequirement;
 import com.google.gerrit.truth.ListSubject;
 import com.google.gerrit.truth.OptionalSubject;
 import java.util.Optional;
@@ -64,7 +64,8 @@
   }
 
   /** Returns a {@link ListSubject} for the submit requirements. */
-  public ListSubject<SubmitRequirementSubject, SubmitRequirement> hasSubmitRequirementsThat() {
+  public ListSubject<LegacySubmitRequirementSubject, LegacySubmitRequirement>
+      hasSubmitRequirementsThat() {
     return check("submitRequirements()")
         .about(elements())
         .thatCustom(submitRecord().requirements, submitRecordRequirements());
diff --git a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnerSubmitRuleIT.java b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnerSubmitRuleIT.java
index cf6e515..eb7e53f 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnerSubmitRuleIT.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/acceptance/api/CodeOwnerSubmitRuleIT.java
@@ -16,7 +16,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.gerrit.plugins.codeowners.testing.CodeOwnerStatusInfoSubject.assertThat;
-import static com.google.gerrit.plugins.codeowners.testing.SubmitRequirementInfoSubject.assertThatCollection;
+import static com.google.gerrit.plugins.codeowners.testing.LegacySubmitRequirementInfoSubject.assertThatCollection;
 import static com.google.gerrit.testing.GerritJUnit.assertThrows;
 
 import com.google.common.collect.ImmutableList;
@@ -39,7 +39,7 @@
 import com.google.gerrit.plugins.codeowners.acceptance.AbstractCodeOwnersIT;
 import com.google.gerrit.plugins.codeowners.api.CodeOwnerStatusInfo;
 import com.google.gerrit.plugins.codeowners.common.CodeOwnerStatus;
-import com.google.gerrit.plugins.codeowners.testing.SubmitRequirementInfoSubject;
+import com.google.gerrit.plugins.codeowners.testing.LegacySubmitRequirementInfoSubject;
 import com.google.gerrit.plugins.codeowners.util.JgitPath;
 import com.google.inject.Inject;
 import org.eclipse.jgit.lib.ObjectId;
@@ -119,7 +119,7 @@
     assertThat(changeInfo.submittable).isFalse();
 
     // Check the submit requirement.
-    SubmitRequirementInfoSubject submitRequirementInfoSubject =
+    LegacySubmitRequirementInfoSubject submitRequirementInfoSubject =
         assertThatCollection(changeInfo.requirements).onlyElement();
     submitRequirementInfoSubject.hasStatusThat().isEqualTo("NOT_READY");
     submitRequirementInfoSubject.hasFallbackTextThat().isEqualTo("Code Owners");
@@ -172,7 +172,7 @@
     assertThat(changeInfo.submittable).isFalse();
 
     // Check the submit requirement.
-    SubmitRequirementInfoSubject submitRequirementInfoSubject =
+    LegacySubmitRequirementInfoSubject submitRequirementInfoSubject =
         assertThatCollection(changeInfo.requirements).onlyElement();
     submitRequirementInfoSubject.hasStatusThat().isEqualTo("NOT_READY");
     submitRequirementInfoSubject.hasFallbackTextThat().isEqualTo("Code Owners");
@@ -222,7 +222,7 @@
     assertThat(changeInfo.submittable).isTrue();
 
     // Check the submit requirement.
-    SubmitRequirementInfoSubject submitRequirementInfoSubject =
+    LegacySubmitRequirementInfoSubject submitRequirementInfoSubject =
         assertThatCollection(changeInfo.requirements).onlyElement();
     submitRequirementInfoSubject.hasStatusThat().isEqualTo("OK");
     submitRequirementInfoSubject.hasFallbackTextThat().isEqualTo("Code Owners");
@@ -262,7 +262,7 @@
     approve(changeId);
 
     // Check the submit requirement.
-    SubmitRequirementInfoSubject submitRequirementInfoSubject =
+    LegacySubmitRequirementInfoSubject submitRequirementInfoSubject =
         assertThatCollection(gApi.changes().id(changeId).get().requirements).onlyElement();
     submitRequirementInfoSubject.hasStatusThat().isEqualTo("OK");
     submitRequirementInfoSubject.hasFallbackTextThat().isEqualTo("Code Owners");
@@ -299,7 +299,7 @@
     assertThat(changeInfo.submittable).isFalse();
 
     // Check that the submit requirement.
-    SubmitRequirementInfoSubject submitRequirementInfoSubject =
+    LegacySubmitRequirementInfoSubject submitRequirementInfoSubject =
         assertThatCollection(changeInfo.requirements).onlyElement();
     submitRequirementInfoSubject.hasStatusThat().isEqualTo("NOT_READY");
     submitRequirementInfoSubject.hasFallbackTextThat().isEqualTo("Code Owners");
@@ -342,7 +342,7 @@
         .isTrue();
 
     // Check the submit requirement.
-    SubmitRequirementInfoSubject submitRequirementInfoSubject =
+    LegacySubmitRequirementInfoSubject submitRequirementInfoSubject =
         assertThatCollection(changeInfo.requirements).onlyElement();
     submitRequirementInfoSubject.hasStatusThat().isEqualTo("OK");
     submitRequirementInfoSubject.hasFallbackTextThat().isEqualTo("Code Owners");
@@ -487,7 +487,7 @@
         .isTrue();
 
     // Check the submit requirement.
-    SubmitRequirementInfoSubject submitRequirementInfoSubject =
+    LegacySubmitRequirementInfoSubject submitRequirementInfoSubject =
         assertThatCollection(changeInfo.requirements).onlyElement();
     submitRequirementInfoSubject.hasStatusThat().isEqualTo("OK");
     submitRequirementInfoSubject.hasFallbackTextThat().isEqualTo("Code Owners");
diff --git a/javatests/com/google/gerrit/plugins/codeowners/acceptance/batch/CodeOwnerSubmitRuleBatchIT.java b/javatests/com/google/gerrit/plugins/codeowners/acceptance/batch/CodeOwnerSubmitRuleBatchIT.java
index 9a06ccb..4235792 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/acceptance/batch/CodeOwnerSubmitRuleBatchIT.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/acceptance/batch/CodeOwnerSubmitRuleBatchIT.java
@@ -2,7 +2,7 @@
 
 import static com.google.common.truth.Truth.assertThat;
 import static com.google.gerrit.acceptance.testsuite.project.TestProjectUpdate.allowLabel;
-import static com.google.gerrit.plugins.codeowners.testing.SubmitRequirementInfoSubject.assertThatCollection;
+import static com.google.gerrit.plugins.codeowners.testing.LegacySubmitRequirementInfoSubject.assertThatCollection;
 import static com.google.gerrit.server.group.SystemGroupBackend.REGISTERED_USERS;
 
 import com.google.gerrit.acceptance.LightweightPluginDaemonTest;
@@ -13,7 +13,7 @@
 import com.google.gerrit.acceptance.testsuite.request.RequestScopeOperations;
 import com.google.gerrit.extensions.client.ListChangesOption;
 import com.google.gerrit.extensions.common.ChangeInfo;
-import com.google.gerrit.plugins.codeowners.testing.SubmitRequirementInfoSubject;
+import com.google.gerrit.plugins.codeowners.testing.LegacySubmitRequirementInfoSubject;
 import com.google.inject.Inject;
 import org.eclipse.jgit.internal.storage.dfs.InMemoryRepository;
 import org.eclipse.jgit.junit.TestRepository;
@@ -54,7 +54,7 @@
     assertThat(changeInfo.submittable).isFalse();
 
     // Check the submit requirement.
-    SubmitRequirementInfoSubject submitRequirementInfoSubject =
+    LegacySubmitRequirementInfoSubject submitRequirementInfoSubject =
         assertThatCollection(changeInfo.requirements).onlyElement();
     submitRequirementInfoSubject.hasStatusThat().isEqualTo("NOT_READY");
     submitRequirementInfoSubject.hasFallbackTextThat().isEqualTo("Code Owners");
diff --git a/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerSubmitRuleTest.java b/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerSubmitRuleTest.java
index e493e40..8c18b66 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerSubmitRuleTest.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnerSubmitRuleTest.java
@@ -27,8 +27,8 @@
 import com.google.gerrit.entities.Change;
 import com.google.gerrit.plugins.codeowners.acceptance.AbstractCodeOwnersTest;
 import com.google.gerrit.plugins.codeowners.acceptance.testsuite.CodeOwnerConfigOperations;
+import com.google.gerrit.plugins.codeowners.testing.LegacySubmitRequirementSubject;
 import com.google.gerrit.plugins.codeowners.testing.SubmitRecordSubject;
-import com.google.gerrit.plugins.codeowners.testing.SubmitRequirementSubject;
 import com.google.gerrit.plugins.codeowners.util.JgitPath;
 import com.google.gerrit.server.query.change.ChangeData;
 import com.google.inject.Inject;
@@ -89,7 +89,7 @@
     SubmitRecordSubject submitRecordSubject =
         assertThatOptional(codeOwnerSubmitRule.evaluate(changeData)).value();
     submitRecordSubject.hasStatusThat().isNotReady();
-    SubmitRequirementSubject submitRequirementSubject =
+    LegacySubmitRequirementSubject submitRequirementSubject =
         submitRecordSubject.hasSubmitRequirementsThat().onlyElement();
     submitRequirementSubject.hasTypeThat().isEqualTo("code-owners");
     submitRequirementSubject.hasFallbackTextThat().isEqualTo("Code Owners");
@@ -115,7 +115,7 @@
     SubmitRecordSubject submitRecordSubject =
         assertThatOptional(codeOwnerSubmitRule.evaluate(changeData)).value();
     submitRecordSubject.hasStatusThat().isOk();
-    SubmitRequirementSubject submitRequirementSubject =
+    LegacySubmitRequirementSubject submitRequirementSubject =
         submitRecordSubject.hasSubmitRequirementsThat().onlyElement();
     submitRequirementSubject.hasTypeThat().isEqualTo("code-owners");
     submitRequirementSubject.hasFallbackTextThat().isEqualTo("Code Owners");
diff --git a/resources/Documentation/alternative-plugins.md b/resources/Documentation/alternative-plugins.md
index d3723a1..adcd3ab 100644
--- a/resources/Documentation/alternative-plugins.md
+++ b/resources/Documentation/alternative-plugins.md
@@ -9,7 +9,7 @@
 
 **Status:** deprecated, from Gerrit 3.4 on the `code-owners` plugin should be used instead\
 **Repository:** [plugins/find-owners](https://gerrit-review.googlesource.com/admin/repos/plugins/find-owners)\
-**Documentation:** [about](https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/resources/Documentation/about.md), [syntax](https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/resources/Documentation/syntax.md), [REST API](https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/resources/Documentation/rest-api.md), [config](https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/resources/Documentation/config.md)
+**Documentation:** [about](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/about.md), [syntax](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/syntax.md), [REST API](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/rest-api.md), [config](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/config.md)
 
 ### <a id="findOwnersCompatibility">Compatibility with the code-owners plugin
 
@@ -39,7 +39,7 @@
     * Including an `OWNERS` file from another directory in the same project or
       from another project on the same host is possible (same branch is assumed).
     * File globs can be used.
-    * See [documentation](https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/resources/Documentation/syntax.md) for the supported syntax.
+    * See [documentation](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/syntax.md) for the supported syntax.
 <br><br>
 * Prolog rule to prevent submitting changes without owner approvals.
     * A change can be exempted from owners approval by setting a footer in the
@@ -52,23 +52,23 @@
     * Owner approval is granted by voting on the `Code-Review` label.
 <br><br>
 * REST endpoints:
-    * [Action](https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/java/com/googlesource/gerrit/plugins/findowners/Action.java) REST endpoint:
+    * [Action](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/java/com/googlesource/gerrit/plugins/findowners/Action.java) REST endpoint:
         * `GET /changes/<change-id>/revisions/<revision-id>/find-owners`
-        * returns a [RestResult](https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/java/com/googlesource/gerrit/plugins/findowners/RestResult.java) which contains:
+        * returns a [RestResult](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/java/com/googlesource/gerrit/plugins/findowners/RestResult.java) which contains:
             * a file to list of owners map
             * a list of owner infos with weight infos
             * fields for debugging
             * fields for change, patch set, current reviewers and changed files
-    * [GetOwners](https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/java/com/googlesource/gerrit/plugins/findowners/GetOwners.java) REST endpoint:
+    * [GetOwners](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/java/com/googlesource/gerrit/plugins/findowners/GetOwners.java) REST endpoint:
         * `GET /changes/<change-id>/owners`
         * Delegates to Action REST endpoint (see above)
-    * Also see [REST endpoint documentation](https://gerrit.googlesource.com/plugins/find-owners/+/master/src/main/resources/Documentation/rest-api.md)
+    * Also see [REST endpoint documentation](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/rest-api.md)
 
 ## <a id="owners">owners plugin + owners-autoassign plugin
 
 **Status:** maintained by the Gerrit open source community (no Google involvement)\
 **Repository:** [plugins/owners](https://gerrit-review.googlesource.com/admin/repos/plugins/owners)\
-**Documentation:** [readme](https://gerrit.googlesource.com/plugins/owners/+/master/README.md), [config & syntax](https://gerrit.googlesource.com/plugins/owners/+/master/owners/src/main/resources/Documentation/config.md)
+**Documentation:** [readme](https://gerrit.googlesource.com/plugins/owners/+/HEAD/README.md), [config & syntax](https://gerrit.googlesource.com/plugins/owners/+/HEAD/owners/src/main/resources/Documentation/config.md)
 
 ### <a id="ownersCompatibility">Compatibility with the code-owners plugin
 
@@ -97,7 +97,7 @@
     * Inheritance from parent directories is supported and can be disabled.
     * Regular expressions can be used.
     * Syntax is based on YAML.
-    * See [documentation](https://gerrit.googlesource.com/plugins/owners/+/master/owners/src/main/resources/Documentation/config.md) for the supported syntax.
+    * See [documentation](https://gerrit.googlesource.com/plugins/owners/+/HEAD/owners/src/main/resources/Documentation/config.md) for the supported syntax.
 <br><br>
 * Prolog rule to prevent submitting changes without code owner approvals.
     * The label on which code owners must vote is configurable.
diff --git a/resources/Documentation/setup-guide.md b/resources/Documentation/setup-guide.md
index 5281427..451daed 100644
--- a/resources/Documentation/setup-guide.md
+++ b/resources/Documentation/setup-guide.md
@@ -376,7 +376,7 @@
 If the `find-owners` plugin has been used so far, you likely want to
 disable/uninstall it after the `code-owners` plugin has been set up. Before
 doing this it is important to remove all usages of the [find-owners Prolog
-predicates](https://gerrit.googlesource.com/plugins/find-owners/+/refs/heads/master/src/main/resources/Documentation/config.md#submit-rules-and-filters)
+predicates](https://gerrit.googlesource.com/plugins/find-owners/+/HEAD/src/main/resources/Documentation/config.md#submit-rules-and-filters)
 from all Prolog submit rules and filters. If the find-owners Prolog predicates
 are still used when the `find-owners` plugin is disabled/uninstalled, they can
 no longer be resolved which breaks the submit rules using them. If submit rules
diff --git a/ui/code-owners-api.js b/ui/code-owners-api.js
index e9a0227..e186ede 100644
--- a/ui/code-owners-api.js
+++ b/ui/code-owners-api.js
@@ -78,7 +78,7 @@
   /**
    * Returns a promise fetching the owner statuses for all files within the change.
    *
-   * @doc https://gerrit.googlesource.com/plugins/code-owners/+/refs/heads/master/resources/Documentation/rest-api.md#change-endpoints
+   * @doc https://gerrit.googlesource.com/plugins/code-owners/+/HEAD/resources/Documentation/rest-api.md#change-endpoints
    * @param {string} changeId
    */
   listOwnerStatus(changeId) {
@@ -88,7 +88,7 @@
   /**
    * Returns a promise fetching the owners for a given path.
    *
-   * @doc https://gerrit.googlesource.com/plugins/code-owners/+/refs/heads/master/resources/Documentation/rest-api.md#list-code-owners-for-path-in-branch
+   * @doc https://gerrit.googlesource.com/plugins/code-owners/+/HEAD/resources/Documentation/rest-api.md#list-code-owners-for-path-in-branch
    * @param {string} changeId
    * @param {string} path
    */
@@ -102,7 +102,7 @@
   /**
    * Returns a promise fetching the owners config for a given path.
    *
-   * @doc https://gerrit.googlesource.com/plugins/code-owners/+/refs/heads/master/resources/Documentation/rest-api.md#branch-endpoints
+   * @doc https://gerrit.googlesource.com/plugins/code-owners/+/HEAD/resources/Documentation/rest-api.md#branch-endpoints
    * @param {string} project
    * @param {string} branch
    * @param {string} path
@@ -118,7 +118,7 @@
   /**
    * Returns a promise fetching the owners config for a given branch.
    *
-   * @doc https://gerrit.googlesource.com/plugins/code-owners/+/refs/heads/master/resources/Documentation/rest-api.md#branch-endpoints
+   * @doc https://gerrit.googlesource.com/plugins/code-owners/+/HEAD/resources/Documentation/rest-api.md#branch-endpoints
    * @param {string} project
    * @param {string} branch
    */
diff --git a/ui/owner-requirement.js b/ui/owner-requirement.js
index 6bc3465..6ba53b6 100644
--- a/ui/owner-requirement.js
+++ b/ui/owner-requirement.js
@@ -85,7 +85,7 @@
             </template>
             <template is="dom-if" if="[[model.branchConfig.no_code_owners_defined]]">
               <span>No code-owners file</span>
-              <a href="https://gerrit.googlesource.com/plugins/code-owners/+/master/resources/Documentation/user-guide.md#how-to-submit-changes-with-files-that-have-no-code-owners" target="_blank">
+              <a href="https://gerrit.googlesource.com/plugins/code-owners/+/HEAD/resources/Documentation/user-guide.md#how-to-submit-changes-with-files-that-have-no-code-owners" target="_blank">
                 <iron-icon icon="gr-icons:help-outline"
                   title="Documentation about submitting changes with files that have no code owners?"></iron-icon>
               </a>
diff --git a/ui/suggest-owners-trigger.js b/ui/suggest-owners-trigger.js
index 05b01a5..427fef6 100644
--- a/ui/suggest-owners-trigger.js
+++ b/ui/suggest-owners-trigger.js
@@ -58,7 +58,7 @@
           <a on-click="_reportBugClick" href="https://bugs.chromium.org/p/gerrit/issues/entry?template=code-owners-plugin" target="_blank">
             <iron-icon icon="gr-icons:bug" title="report a problem"></iron-icon>
           </a>
-          <a on-click="_reportDocClick" href="https://gerrit.googlesource.com/plugins/code-owners/+/master/resources/Documentation/how-to-use.md" target="_blank">
+          <a on-click="_reportDocClick" href="https://gerrit.googlesource.com/plugins/code-owners/+/HEAD/resources/Documentation/how-to-use.md" target="_blank">
             <iron-icon icon="gr-icons:help-outline" title="read documentation"></iron-icon>
           </a>
         </span>
diff --git a/ui/suggest-owners.js b/ui/suggest-owners.js
index c3ea6cf..2304523 100644
--- a/ui/suggest-owners.js
+++ b/ui/suggest-owners.js
@@ -297,7 +297,7 @@
               <template is="dom-if" if="[[!_areOwnersFound(suggestion.owners)]]">
                 <div class="no-owners-content">
                   <span>Not found</span>
-                  <a on-click="_reportDocClick" href="https://gerrit.googlesource.com/plugins/code-owners/+/master/resources/Documentation/how-to-use.md#no-code-owners-found" target="_blank">
+                  <a on-click="_reportDocClick" href="https://gerrit.googlesource.com/plugins/code-owners/+/HEAD/resources/Documentation/how-to-use.md#no-code-owners-found" target="_blank">
                     <iron-icon icon="gr-icons:help-outline" title="read documentation"></iron-icon>
                   </a>
                 </div>