Paul Martin
2016-04-16 eecaad8b8e2c447429c31a01d49260ddd6b4ee03
src/main/java/com/gitblit/utils/RpcUtils.java
@@ -25,11 +25,11 @@
import com.gitblit.Constants;
import com.gitblit.Constants.RpcRequest;
import com.gitblit.GitBlitException.UnknownRequestException;
import com.gitblit.models.RegistrantAccessPermission;
import com.gitblit.models.FederationModel;
import com.gitblit.models.FederationProposal;
import com.gitblit.models.FederationSet;
import com.gitblit.models.FeedModel;
import com.gitblit.models.RegistrantAccessPermission;
import com.gitblit.models.RepositoryModel;
import com.gitblit.models.ServerSettings;
import com.gitblit.models.ServerStatus;
@@ -39,9 +39,9 @@
/**
 * Utility methods for rpc calls.
 *
 *
 * @author James Moger
 *
 *
 */
public class RpcUtils {
@@ -76,7 +76,7 @@
   }.getType();
   /**
    *
    *
    * @param remoteURL
    *            the url of the remote gitblit instance
    * @param req
@@ -88,7 +88,7 @@
   }
   /**
    *
    *
    * @param remoteURL
    *            the url of the remote gitblit instance
    * @param req
@@ -110,7 +110,7 @@
   /**
    * Returns the version of the RPC protocol on the server.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -124,7 +124,7 @@
      try {
         protocol = JsonUtils.retrieveJson(url, Integer.class, account, password);
      } catch (UnknownRequestException e) {
         // v0.7.0 (protocol 1) did not have this request type
         // v0.7.0 (protocol 1) did not have this request type
      }
      return protocol;
   }
@@ -132,7 +132,7 @@
   /**
    * Retrieves a map of the repositories at the remote gitblit instance keyed
    * by the repository clone url.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -149,7 +149,7 @@
   /**
    * Tries to pull the gitblit user accounts from the remote gitblit instance.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -167,7 +167,7 @@
   /**
    * Tries to pull the gitblit team definitions from the remote gitblit
    * instance.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -184,7 +184,7 @@
   /**
    * Create a repository on the Gitblit server.
    *
    *
    * @param repository
    * @param serverUrl
    * @param account
@@ -203,9 +203,23 @@
   }
   /**
    /**
     * Create a fork of a repository.
     *
     * @param repository
     * @return true if the action succeeded
     * @throws IOException
     */
    public static boolean forkRepository(RepositoryModel repository, String serverUrl,
                                        String account, char[] password) throws IOException {
        return doAction(RpcRequest.FORK_REPOSITORY, repository.name, null, serverUrl, account, password);
    }
    /**
    * Send a revised version of the repository model to the Gitblit server.
    *
    *
    * @param repository
    * @param serverUrl
    * @param account
@@ -221,7 +235,7 @@
   /**
    * Delete a repository from the Gitblit server.
    *
    *
    * @param repository
    * @param serverUrl
    * @param account
@@ -235,25 +249,56 @@
            password);
   }
   /**
    * Clears the repository cache on the Gitblit server.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
    * @return true if the action succeeded
    * @throws IOException
    */
   public static boolean clearRepositoryCache(String serverUrl, String account,
   public static boolean clearRepositoryCache(String serverUrl, String account,
         char[] password) throws IOException {
      return doAction(RpcRequest.CLEAR_REPOSITORY_CACHE, null, null, serverUrl, account,
            password);
   }
   /**
    * Reindex all tickets on the Gitblit server.
    *
    * @param serverUrl
    * @param account
    * @param password
    * @return true if the action succeeded
    * @throws IOException
    */
   public static boolean reindexTickets(String serverUrl, String account,
         char[] password) throws IOException {
      return doAction(RpcRequest.REINDEX_TICKETS, null, null, serverUrl, account,
            password);
   }
   /**
    * Reindex tickets for the specified repository on the Gitblit server.
    *
    * @param serverUrl
    * @param repositoryName
    * @param account
    * @param password
    * @return true if the action succeeded
    * @throws IOException
    */
   public static boolean reindexTickets(String serverUrl, String repositoryName,
         String account, char[] password) throws IOException {
      return doAction(RpcRequest.REINDEX_TICKETS, repositoryName, null, serverUrl,
            account, password);
   }
   /**
    * Create a user on the Gitblit server.
    *
    *
    * @param user
    * @param serverUrl
    * @param account
@@ -269,7 +314,7 @@
   /**
    * Send a revised version of the user model to the Gitblit server.
    *
    *
    * @param user
    * @param serverUrl
    * @param account
@@ -285,7 +330,7 @@
   /**
    * Deletes a user from the Gitblit server.
    *
    *
    * @param user
    * @param serverUrl
    * @param account
@@ -299,8 +344,26 @@
   }
   /**
    * Tries to get the specified gitblit user account from the remote gitblit instance.
    * If the username is null or empty, the current user is returned.
    *
    * @param username
    * @param serverUrl
    * @param account
    * @param password
    * @return a UserModel or null
    * @throws IOException
    */
   public static UserModel getUser(String username, String serverUrl, String account, char[] password)
         throws IOException {
      String url = asLink(serverUrl, RpcRequest.GET_USER);
      UserModel model = JsonUtils.retrieveJson(url, UserModel.class, account, password);
      return model;
   }
   /**
    * Create a team on the Gitblit server.
    *
    *
    * @param team
    * @param serverUrl
    * @param account
@@ -316,7 +379,7 @@
   /**
    * Send a revised version of the team model to the Gitblit server.
    *
    *
    * @param team
    * @param serverUrl
    * @param account
@@ -332,7 +395,7 @@
   /**
    * Deletes a team from the Gitblit server.
    *
    *
    * @param team
    * @param serverUrl
    * @param account
@@ -347,7 +410,7 @@
   /**
    * Retrieves the list of users that can access the specified repository.
    *
    *
    * @param repository
    * @param serverUrl
    * @param account
@@ -361,10 +424,10 @@
      Collection<String> list = JsonUtils.retrieveJson(url, NAMES_TYPE, account, password);
      return new ArrayList<String>(list);
   }
   /**
    * Retrieves the list of user access permissions for the specified repository.
    *
    *
    * @param repository
    * @param serverUrl
    * @param account
@@ -372,7 +435,7 @@
    * @return list of User-AccessPermission tuples
    * @throws IOException
    */
   public static List<RegistrantAccessPermission> getRepositoryMemberPermissions(RepositoryModel repository,
   public static List<RegistrantAccessPermission> getRepositoryMemberPermissions(RepositoryModel repository,
         String serverUrl, String account, char [] password) throws IOException {
      String url = asLink(serverUrl, RpcRequest.LIST_REPOSITORY_MEMBER_PERMISSIONS, repository.name);
      Collection<RegistrantAccessPermission> list = JsonUtils.retrieveJson(url, REGISTRANT_PERMISSIONS_TYPE, account, password);
@@ -381,7 +444,7 @@
   /**
    * Sets the repository user access permissions
    *
    *
    * @param repository
    * @param permissions
    * @param serverUrl
@@ -396,10 +459,10 @@
      return doAction(RpcRequest.SET_REPOSITORY_MEMBER_PERMISSIONS, repository.name, permissions, serverUrl,
            account, password);
   }
   /**
    * Retrieves the list of teams that can access the specified repository.
    *
    *
    * @param repository
    * @param serverUrl
    * @param account
@@ -413,10 +476,10 @@
      Collection<String> list = JsonUtils.retrieveJson(url, NAMES_TYPE, account, password);
      return new ArrayList<String>(list);
   }
   /**
    * Retrieves the list of team access permissions for the specified repository.
    *
    *
    * @param repository
    * @param serverUrl
    * @param account
@@ -424,7 +487,7 @@
    * @return list of Team-AccessPermission tuples
    * @throws IOException
    */
   public static List<RegistrantAccessPermission> getRepositoryTeamPermissions(RepositoryModel repository,
   public static List<RegistrantAccessPermission> getRepositoryTeamPermissions(RepositoryModel repository,
         String serverUrl, String account, char [] password) throws IOException {
      String url = asLink(serverUrl, RpcRequest.LIST_REPOSITORY_TEAM_PERMISSIONS, repository.name);
      Collection<RegistrantAccessPermission> list = JsonUtils.retrieveJson(url, REGISTRANT_PERMISSIONS_TYPE, account, password);
@@ -433,7 +496,7 @@
   /**
    * Sets the repository team access permissions
    *
    *
    * @param repository
    * @param permissions
    * @param serverUrl
@@ -448,11 +511,11 @@
      return doAction(RpcRequest.SET_REPOSITORY_TEAM_PERMISSIONS, repository.name, permissions, serverUrl,
            account, password);
   }
   /**
    * Retrieves the list of federation registrations. These are the list of
    * registrations that this Gitblit instance is pulling from.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -471,7 +534,7 @@
   /**
    * Retrieves the list of federation result registrations. These are the
    * results reported back to this Gitblit instance from a federation client.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -489,7 +552,7 @@
   /**
    * Retrieves the list of federation proposals.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -507,7 +570,7 @@
   /**
    * Retrieves the list of federation repository sets.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -524,7 +587,7 @@
   /**
    * Retrieves the settings of the Gitblit server.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -541,7 +604,7 @@
   /**
    * Update the settings on the Gitblit server.
    *
    *
    * @param settings
    *            the settings to update
    * @param serverUrl
@@ -558,7 +621,7 @@
   /**
    * Retrieves the server status object.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -575,7 +638,7 @@
   /**
    * Retrieves a map of local branches in the Gitblit server keyed by
    * repository.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -592,7 +655,7 @@
   /**
    * Retrieves a list of available branch feeds in the Gitblit server.
    *
    *
    * @param serverUrl
    * @param account
    * @param password
@@ -616,7 +679,7 @@
   /**
    * Do the specified administrative action on the Gitblit server.
    *
    *
    * @param request
    * @param name
    *            the name of the object (may be null)