PathCodeOwners: Flatten the return type (step 2/3) Drop usage of OptionalResultWithMessages: Using OptionalResultWithMessages doesn't make sense since the path code owner computation always returns a result (i.e. the result is not optional). Instead include the debug messages directly into PathCodeOwnersResult. Change-Id: I11c1454d41f8a7ebae956536041bc68fe4e9b0d5 Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchy.java b/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchy.java index 28dd5e1..dfd4fee 100644 --- a/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchy.java +++ b/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerConfigHierarchy.java
@@ -224,7 +224,7 @@ logger.atFine().log("visit code owner config for %s", ownerConfigFolder); boolean visitFurtherCodeOwnerConfigs = pathCodeOwnersVisitor.visit(pathCodeOwners.get()); boolean ignoreParentCodeOwners = - pathCodeOwners.get().resolveCodeOwnerConfig().get().ignoreParentCodeOwners(); + pathCodeOwners.get().resolveCodeOwnerConfig().ignoreParentCodeOwners(); if (ignoreParentCodeOwners) { parentCodeOwnersIgnoredCallback.accept(codeOwnerConfigKey); }
diff --git a/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerResolver.java b/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerResolver.java index 7000959..f6718eb 100644 --- a/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerResolver.java +++ b/java/com/google/gerrit/plugins/codeowners/backend/CodeOwnerResolver.java
@@ -228,13 +228,12 @@ logger.atFine().log( "resolve path code owners (code owner config = %s, path = %s)", pathCodeOwners.getCodeOwnerConfig().key(), pathCodeOwners.getPath()); - OptionalResultWithMessages<PathCodeOwnersResult> pathCodeOwnersResult = - pathCodeOwners.resolveCodeOwnerConfig(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.resolveCodeOwnerConfig(); return resolve( - pathCodeOwnersResult.get().getPathCodeOwners(), - pathCodeOwnersResult.get().getAnnotations(), - pathCodeOwnersResult.get().resolvedImports(), - pathCodeOwnersResult.get().unresolvedImports(), + pathCodeOwnersResult.getPathCodeOwners(), + pathCodeOwnersResult.getAnnotations(), + pathCodeOwnersResult.resolvedImports(), + pathCodeOwnersResult.unresolvedImports(), pathCodeOwnersResult.messages()); } }
diff --git a/java/com/google/gerrit/plugins/codeowners/backend/PathCodeOwners.java b/java/com/google/gerrit/plugins/codeowners/backend/PathCodeOwners.java index 29472a9..07e6e94 100644 --- a/java/com/google/gerrit/plugins/codeowners/backend/PathCodeOwners.java +++ b/java/com/google/gerrit/plugins/codeowners/backend/PathCodeOwners.java
@@ -144,7 +144,7 @@ private final Path path; private final PathExpressionMatcher pathExpressionMatcher; - private OptionalResultWithMessages<PathCodeOwnersResult> pathCodeOwnersResult; + private PathCodeOwnersResult pathCodeOwnersResult; private PathCodeOwners( CodeOwnerMetrics codeOwnerMetrics, @@ -212,7 +212,7 @@ * * @return the resolved code owner config as a {@link PathCodeOwnersResult} */ - public OptionalResultWithMessages<PathCodeOwnersResult> resolveCodeOwnerConfig() { + public PathCodeOwnersResult resolveCodeOwnerConfig() { if (this.pathCodeOwnersResult != null) { return this.pathCodeOwnersResult; } @@ -330,14 +330,13 @@ unresolvedImports.addAll(perFileImportedCodeOwnerConfigs.get().unresolved()); this.pathCodeOwnersResult = - OptionalResultWithMessages.create( - PathCodeOwnersResult.create( - path, - codeOwnerConfig.key(), - ignoreParentCodeOwners, - codeOwnerSets.build(), - resolvedImports.build(), - unresolvedImports.build()), + PathCodeOwnersResult.create( + path, + codeOwnerConfig.key(), + ignoreParentCodeOwners, + codeOwnerSets.build(), + resolvedImports.build(), + unresolvedImports.build(), messages); logger.atFine().log("path code owners result = %s", pathCodeOwnersResult); return this.pathCodeOwnersResult;
diff --git a/java/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersResult.java b/java/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersResult.java index 0c80468..85aa14e 100644 --- a/java/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersResult.java +++ b/java/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersResult.java
@@ -54,6 +54,8 @@ return !unresolvedImports().isEmpty(); } + public abstract ImmutableList<String> messages(); + /** * Gets the code owners from the code owner config that apply to the path. * @@ -106,6 +108,7 @@ .add("codeOwnerSets", codeOwnerSets()) .add("resolvedImports", resolvedImports()) .add("unresolvedImports", unresolvedImports()) + .add("messages", messages()) .toString(); } @@ -116,13 +119,15 @@ boolean ignoreParentCodeOwners, Set<CodeOwnerSet> codeOwnerSets, List<CodeOwnerConfigImport> resolvedImports, - List<CodeOwnerConfigImport> unresolvedImports) { + List<CodeOwnerConfigImport> unresolvedImports, + List<String> messages) { return new AutoValue_PathCodeOwnersResult( path, codeOwnerConfigKey, ignoreParentCodeOwners, ImmutableSet.copyOf(codeOwnerSets), ImmutableList.copyOf(resolvedImports), - ImmutableList.copyOf(unresolvedImports)); + ImmutableList.copyOf(unresolvedImports), + ImmutableList.copyOf(messages)); } }
diff --git a/java/com/google/gerrit/plugins/codeowners/restapi/CheckCodeOwner.java b/java/com/google/gerrit/plugins/codeowners/restapi/CheckCodeOwner.java index 58b072f..84e5faf 100644 --- a/java/com/google/gerrit/plugins/codeowners/restapi/CheckCodeOwner.java +++ b/java/com/google/gerrit/plugins/codeowners/restapi/CheckCodeOwner.java
@@ -176,7 +176,7 @@ messages.add( String.format( "checking code owner config file %s", codeOwnerConfig.key().format(codeOwners))); - OptionalResultWithMessages<PathCodeOwnersResult> pathCodeOwnersResult = + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwnersFactory .createWithoutCache(codeOwnerConfig, absolutePath) .resolveCodeOwnerConfig(); @@ -184,18 +184,17 @@ codeOwnerConfigFileInfosBuilder.add( codeOwnerConfigFileJson.format( codeOwnerConfig, - pathCodeOwnersResult.get().resolvedImports(), - pathCodeOwnersResult.get().unresolvedImports())); + pathCodeOwnersResult.resolvedImports(), + pathCodeOwnersResult.unresolvedImports())); messages.addAll(pathCodeOwnersResult.messages()); pathCodeOwnersResult - .get() .unresolvedImports() .forEach( unresolvedImport -> messages.add(unresolvedImportFormatter.format(unresolvedImport))); Optional<CodeOwnerReference> codeOwnerReference = - pathCodeOwnersResult.get().getPathCodeOwners().stream() + pathCodeOwnersResult.getPathCodeOwners().stream() .filter(cor -> cor.email().equals(email)) .findAny(); if (codeOwnerReference.isPresent() @@ -215,8 +214,7 @@ codeOwnerConfigFilePaths.add(codeOwnerConfigFilePath); } - ImmutableSet<String> localAnnotations = - pathCodeOwnersResult.get().getAnnotationsFor(email); + ImmutableSet<String> localAnnotations = pathCodeOwnersResult.getAnnotationsFor(email); if (!localAnnotations.isEmpty()) { messages.add( String.format("email %s is annotated with %s", email, sort(localAnnotations))); @@ -224,7 +222,7 @@ } } - if (pathCodeOwnersResult.get().getPathCodeOwners().stream() + if (pathCodeOwnersResult.getPathCodeOwners().stream() .anyMatch(cor -> cor.email().equals(CodeOwnerResolver.ALL_USERS_WILDCARD))) { isCodeOwnershipAssignedToAllUsers.set(true); @@ -248,7 +246,7 @@ } ImmutableSet<String> localAnnotations = - pathCodeOwnersResult.get().getAnnotationsFor(CodeOwnerResolver.ALL_USERS_WILDCARD); + pathCodeOwnersResult.getAnnotationsFor(CodeOwnerResolver.ALL_USERS_WILDCARD); if (!localAnnotations.isEmpty()) { messages.add( String.format( @@ -265,12 +263,12 @@ hasRevelantCodeOwnerDefinitions.set(true); } - if (pathCodeOwnersResult.get().ignoreParentCodeOwners()) { + if (pathCodeOwnersResult.ignoreParentCodeOwners()) { messages.add("parent code owners are ignored"); parentCodeOwnersAreIgnored.set(true); } - return !pathCodeOwnersResult.get().ignoreParentCodeOwners(); + return !pathCodeOwnersResult.ignoreParentCodeOwners(); }); boolean isGlobalCodeOwner = false;
diff --git a/javatests/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersResultTest.java b/javatests/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersResultTest.java index d9f6501..d6a431e 100644 --- a/javatests/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersResultTest.java +++ b/javatests/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersResultTest.java
@@ -51,7 +51,8 @@ codeOwnerConfig, CodeOwnerConfig.Key.create(project, "master", "/baz/"), unresolvableCodeOwnerConfigReference, - "test message"))); + "test message")), + ImmutableList.of()); assertThatToStringIncludesAllData(pathCodeOwnersResult, PathCodeOwnersResult.class); } }
diff --git a/javatests/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersTest.java b/javatests/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersTest.java index 7f9492f..f0f53c3 100644 --- a/javatests/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersTest.java +++ b/javatests/com/google/gerrit/plugins/codeowners/backend/PathCodeOwnersTest.java
@@ -235,9 +235,9 @@ CodeOwnerConfig emptyCodeOwnerConfig = createCodeOwnerBuilder().build(); PathCodeOwners pathCodeOwners = pathCodeOwnersFactory.createWithoutCache(emptyCodeOwnerConfig, Path.of("/foo/bar/baz.md")); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().getPathCodeOwners()).isEmpty(); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().resolvedImports()).isEmpty(); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().unresolvedImports()).isEmpty(); + assertThat(pathCodeOwners.resolveCodeOwnerConfig().getPathCodeOwners()).isEmpty(); + assertThat(pathCodeOwners.resolveCodeOwnerConfig().resolvedImports()).isEmpty(); + assertThat(pathCodeOwners.resolveCodeOwnerConfig().unresolvedImports()).isEmpty(); } @Test @@ -248,7 +248,7 @@ .build(); PathCodeOwners pathCodeOwners = pathCodeOwnersFactory.createWithoutCache(codeOwnerConfig, Path.of("/foo/bar/baz.md")); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().getPathCodeOwners()) + assertThat(pathCodeOwners.resolveCodeOwnerConfig().getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); } @@ -286,7 +286,7 @@ .build(); PathCodeOwners pathCodeOwners = pathCodeOwnersFactory.createWithoutCache(codeOwnerConfig, Path.of("/foo/bar/baz.md")); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().getPathCodeOwners()) + assertThat(pathCodeOwners.resolveCodeOwnerConfig().getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); } @@ -307,7 +307,7 @@ .build(); PathCodeOwners pathCodeOwners = pathCodeOwnersFactory.createWithoutCache(codeOwnerConfig, Path.of("/foo/bar/baz.md")); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().getPathCodeOwners()).isEmpty(); + assertThat(pathCodeOwners.resolveCodeOwnerConfig().getPathCodeOwners()).isEmpty(); } } @@ -339,7 +339,7 @@ .build(); PathCodeOwners pathCodeOwners = pathCodeOwnersFactory.createWithoutCache(codeOwnerConfig, Path.of("/foo/bar/baz.md")); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().getPathCodeOwners()) + assertThat(pathCodeOwners.resolveCodeOwnerConfig().getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); } @@ -373,7 +373,7 @@ .build(); PathCodeOwners pathCodeOwners = pathCodeOwnersFactory.createWithoutCache(codeOwnerConfig, Path.of("/foo/bar/baz.md")); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().getPathCodeOwners()) + assertThat(pathCodeOwners.resolveCodeOwnerConfig().getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); } @@ -408,7 +408,7 @@ .build(); PathCodeOwners pathCodeOwners = pathCodeOwnersFactory.createWithoutCache(codeOwnerConfig, Path.of("/foo/bar/baz.md")); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().getPathCodeOwners()) + assertThat(pathCodeOwners.resolveCodeOwnerConfig().getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); } @@ -421,7 +421,7 @@ pathCodeOwnersFactory.createWithoutCache( createCodeOwnerBuilder().setIgnoreParentCodeOwners().build(), Path.of("/foo/bar/baz.md")); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().ignoreParentCodeOwners()).isTrue(); + assertThat(pathCodeOwners.resolveCodeOwnerConfig().ignoreParentCodeOwners()).isTrue(); } @Test @@ -431,7 +431,7 @@ pathCodeOwnersFactory.createWithoutCache( createCodeOwnerBuilder().setIgnoreParentCodeOwners(false).build(), Path.of("/foo/bar/baz.md")); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().ignoreParentCodeOwners()).isFalse(); + assertThat(pathCodeOwners.resolveCodeOwnerConfig().ignoreParentCodeOwners()).isFalse(); } @Test @@ -447,7 +447,7 @@ .build()) .build(), Path.of("/foo.md")); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().ignoreParentCodeOwners()).isTrue(); + assertThat(pathCodeOwners.resolveCodeOwnerConfig().ignoreParentCodeOwners()).isTrue(); } @Test @@ -464,7 +464,7 @@ .build()) .build(), Path.of("/foo.md")); - assertThat(pathCodeOwners.resolveCodeOwnerConfig().get().ignoreParentCodeOwners()).isFalse(); + assertThat(pathCodeOwners.resolveCodeOwnerConfig().ignoreParentCodeOwners()).isFalse(); } @Test @@ -498,7 +498,7 @@ // Expectation: we get the global code owner from the importing code owner config, the // non-resolveable import is silently ignored - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); @@ -557,7 +557,7 @@ // Expectation: we get the global code owner from the importing code owner config, the // import of the non code owner config file is silently ignored - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); @@ -620,7 +620,7 @@ // Expectation: we get the global code owner from the importing code owner config, the // import of the code owner config file with the file extension is silently ignored since it is // not considered as a code owner config file - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); @@ -685,7 +685,7 @@ // Expectation: we get the global code owner from the importing code owner config and the global // code owner from the imported code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -746,7 +746,7 @@ // Expectation: we get the global code owners from the importing and the imported code owner // config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -806,7 +806,7 @@ // Expectation: we get the matching per-file code owners from the importing and the imported // code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -867,7 +867,7 @@ // Expectation: we only get the matching per-file code owners from the importing code owner // config, the per-file code owners from the imported code owner config are not relevant since // they do not match - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); @@ -929,7 +929,7 @@ // Expectation: we only get the matching per-file code owners from the importing code owner // config, the matching per-file code owners from the imported code owner config are not // relevant with import mode GLOBAL_CODE_OWNER_SETS_ONLY - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); @@ -992,7 +992,7 @@ // the matching per-file code owner set in the imported code owner config has the // ignoreGlobalAndParentCodeOwners flag set to true which causes global code owners to be // ignored, in addition this flag causes parent code owners to be ignored - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(user.email()); @@ -1055,7 +1055,7 @@ // per-file code owners from the imported code owner config and its // ignoreGlobalAndParentCodeOwners flag are not relevant since the per-file code owner set does // not match - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); @@ -1118,7 +1118,7 @@ // matching per-file code owners from the imported code owner config and its // ignoreGlobalAndParentCodeOwners flag are not relevant with import mode // GLOBAL_CODE_OWNER_SETS_ONLY - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); @@ -1171,7 +1171,7 @@ // Expectation: ignoreParentCodeOwners is true because the ignoreParentCodeOwners flag in the // imported code owner config is set to true - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.ignoreParentCodeOwners()).isTrue(); assertThat(pathCodeOwnersResult.resolvedImports()) .containsExactly( @@ -1223,7 +1223,7 @@ // Expectation: ignoreParentCodeOwners is false because the ignoreParentCodeOwners flag in the // imported code owner config is not relevant with import mode GLOBAL_CODE_OWNER_SETS_ONLY - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.ignoreParentCodeOwners()).isFalse(); assertThat(pathCodeOwnersResult.resolvedImports()) .containsExactly( @@ -1303,7 +1303,7 @@ // Expectation: we get the global owners from the importing code owner config, the imported code // owner config and the code owner config that is imported by the imported code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email(), user2.email()); @@ -1384,7 +1384,7 @@ // Expectation: we get the global owners from the importing code owner config and the imported // code owner config but not the per file code owner from the code owner config that is imported // by the imported code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -1463,7 +1463,7 @@ // Expectation: we get the global code owners from the importing and the imported code owner // config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -1519,7 +1519,7 @@ assertThat(pathCodeOwners).isPresent(); // Expectation: we get the global owners from the importing and the imported code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -1578,7 +1578,7 @@ // Expectation: we get the global owners from the importing and the imported code owner config // as they were defined at oldRevision - assertThat(pathCodeOwners.get().resolveCodeOwnerConfig().get().getPathCodeOwners()) + assertThat(pathCodeOwners.get().resolveCodeOwnerConfig().getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); } @@ -1623,7 +1623,7 @@ assertThat(pathCodeOwners).isPresent(); // Expectation: we get the global owners from the importing and the imported code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -1664,7 +1664,7 @@ assertThat(pathCodeOwners).isPresent(); // Expectation: we get the global owners from the importing code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); @@ -1722,7 +1722,7 @@ // Expectation: we get the global owners from the importing code owner config, the global code // owners from the imported code owner config are ignored since the project that contains the // code owner config is hidden - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); @@ -1768,8 +1768,8 @@ assertThat(pathCodeOwners).isPresent(); // Expectation: we get the global owners from the importing code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); - assertThat(pathCodeOwners.get().resolveCodeOwnerConfig().get().getPathCodeOwners()) + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); + assertThat(pathCodeOwners.get().resolveCodeOwnerConfig().getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); assertThat(pathCodeOwnersResult.resolvedImports()).isEmpty(); @@ -1824,7 +1824,7 @@ assertThat(pathCodeOwners).isPresent(); // Expectation: we get the global owners from the importing and the imported code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -1886,7 +1886,7 @@ assertThat(pathCodeOwners).isPresent(); // Expectation: we get the global owners from the importing and the imported code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -1941,7 +1941,7 @@ assertThat(pathCodeOwners).isPresent(); // Expectation: we get the global owners from the importing and the imported code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -1998,7 +1998,7 @@ assertThat(pathCodeOwners).isPresent(); // Expectation: we get the global owners from the importing and the imported code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -2045,7 +2045,7 @@ // Expectation: we get the per file code owner from the importing code owner config, the // non-resolveable per file import is silently ignored - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email()); @@ -2120,7 +2120,7 @@ // Expectation: we get the per file code owners from the importing and the global code owner // from the imported code owner config, but not the per file code owner from the imported code // owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -2200,7 +2200,7 @@ // Expectation: we get the global owners from the importing code owner config, the imported code // owner config and the code owner config that is imported by the imported code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email(), user2.email()); @@ -2282,7 +2282,7 @@ // Expectation: we get the global owners from the importing code owner config and the imported // code owner config, but not the per file code owner from the code owner config that is // imported by the imported code owner config - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email()); @@ -2382,7 +2382,7 @@ projectOperations.project(project).getHead("master"), Path.of("/foo.xyz")); assertThat(pathCodeOwners).isPresent(); - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()).isEmpty(); assertThat(pathCodeOwnersResult.resolvedImports()) .containsExactly( @@ -2398,7 +2398,7 @@ projectOperations.project(project).getHead("master"), Path.of("/foo.md")); assertThat(pathCodeOwners).isPresent(); - pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(user.email()); @@ -2419,7 +2419,7 @@ projectOperations.project(project).getHead("master"), Path.of("/foo.txt")); assertThat(pathCodeOwners).isPresent(); - pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(user2.email()); @@ -2601,7 +2601,7 @@ // Expectation: we get the global code owner from the imported code owner config (since it is // imported by a matching per-file rule), the global code owner from the importing code owner // config is ignored (since the matching per-file rule ignores parent and global code owners) - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(user.email()); @@ -2673,7 +2673,7 @@ // owner config and the code owner from the matching per-file rule in the imported code owner // config, the global code owners are ignored since there is a matching per-file rule that // ignores parent and global code owners - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(user.email(), user3.email()); @@ -2747,7 +2747,7 @@ // Expectation: we get the global owners from the importing code owner config and from the // directly and transitively imported code owner configs in the other project - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); assertThat(pathCodeOwnersResult.getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email(), user2.email()); @@ -2823,8 +2823,8 @@ // Expectation: we get the global owners from the importing code owner config and from the // directly and transitively imported code owner configs - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); - assertThat(pathCodeOwners.get().resolveCodeOwnerConfig().get().getPathCodeOwners()) + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); + assertThat(pathCodeOwners.get().resolveCodeOwnerConfig().getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(admin.email(), user.email(), user2.email()); assertThat(pathCodeOwnersResult.resolvedImports()) @@ -2900,8 +2900,8 @@ // Expectation: we get the per-file code owner of the code owner config that is transitively // imported. - PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig().get(); - assertThat(pathCodeOwners.get().resolveCodeOwnerConfig().get().getPathCodeOwners()) + PathCodeOwnersResult pathCodeOwnersResult = pathCodeOwners.get().resolveCodeOwnerConfig(); + assertThat(pathCodeOwners.get().resolveCodeOwnerConfig().getPathCodeOwners()) .comparingElementsUsing(hasEmail()) .containsExactly(mdCodeOwner.email()); assertThat(pathCodeOwnersResult.resolvedImports())