code: public CompletableFuture<Revision> updateMemberRole(Author author, String projectName,
                                                          User member, ProjectRole projectRole) {
          requireNonNull(author, "author");
          requireNonNull(projectName, "projectName");
          requireNonNull(member, "member");
          requireNonNull(projectRole, "projectRole");
  
          final Change<JsonNode> change = Change.ofJsonPatch(
                  METADATA_JSON,
                  new ReplaceOperation(JsonPointer.compile("/members" + encodeSegment(member.id()) + "/role"),
                                       Jackson.valueToTree(projectRole)).toJsonNode());
          final String commitSummary = "Updates the role of the member '" + member.id() +
                                       "' as '" + projectRole + "' for the project " + projectName;
          return metadataRepo.push(projectName, Project.REPO_DOGMA, author, commitSummary, change);
      }
docs: Updates a {@link ProjectRole} for the specified {@code member} in the specified {@code projectName}.