code: @Patch("/metadata/{projectName}/repos/{repoName}/perm/users/{memberId}")
      @Consumes("application/json-patch+json")
      public CompletableFuture<Revision> updateSpecificUserPermission(@Param("projectName") String projectName,
                                                                      @Param("repoName") String repoName,
                                                                      @Param("memberId") String memberId,
                                                                      JsonPatch jsonPatch,
                                                                      Author author) {
          final ReplaceOperation operation = ensureSingleReplaceOperation(jsonPatch, "/permissions");
          final Collection<Permission> permissions = Jackson.convertValue(operation.value(), permissionsTypeRef);
          final User member = new User(loginNameNormalizer.apply(urlDecode(memberId)));
          return mds.findPermissions(projectName, repoName, member)
                    .thenCompose(unused -> mds.updatePerUserPermission(author,
                                                                       projectName, repoName, member,
                                                                       permissions));
      }
docs: PATCH /metadata/{projectName}/repos/{repoName}/perm/users/{memberId}
  
  <p>Updates {@link Permission}s for the specified {@code memberId} of the specified {@code repoName}
  in the specified {@code projectName}.