From ce07c4f4ca47eebb53815aaa361a24ea46dc3757 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Wed, 07 May 2014 10:27:14 -0400
Subject: [PATCH] Ensure the repository model ref list is refreshed on ref creation or deletion
---
src/main/java/com/gitblit/utils/RpcUtils.java | 135 ++++++++++++++++++++++++++++++--------------
1 files changed, 92 insertions(+), 43 deletions(-)
diff --git a/src/main/java/com/gitblit/utils/RpcUtils.java b/src/main/java/com/gitblit/utils/RpcUtils.java
index cd80fc4..5e577fb 100644
--- a/src/main/java/com/gitblit/utils/RpcUtils.java
+++ b/src/main/java/com/gitblit/utils/RpcUtils.java
@@ -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
@@ -205,7 +205,7 @@
/**
* Send a revised version of the repository model to the Gitblit server.
- *
+ *
* @param repository
* @param serverUrl
* @param account
@@ -221,7 +221,7 @@
/**
* Delete a repository from the Gitblit server.
- *
+ *
* @param repository
* @param serverUrl
* @param account
@@ -235,25 +235,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 +300,7 @@
/**
* Send a revised version of the user model to the Gitblit server.
- *
+ *
* @param user
* @param serverUrl
* @param account
@@ -285,7 +316,7 @@
/**
* Deletes a user from the Gitblit server.
- *
+ *
* @param user
* @param serverUrl
* @param account
@@ -299,8 +330,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 +365,7 @@
/**
* Send a revised version of the team model to the Gitblit server.
- *
+ *
* @param team
* @param serverUrl
* @param account
@@ -332,7 +381,7 @@
/**
* Deletes a team from the Gitblit server.
- *
+ *
* @param team
* @param serverUrl
* @param account
@@ -347,7 +396,7 @@
/**
* Retrieves the list of users that can access the specified repository.
- *
+ *
* @param repository
* @param serverUrl
* @param account
@@ -361,10 +410,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 +421,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 +430,7 @@
/**
* Sets the repository user access permissions
- *
+ *
* @param repository
* @param permissions
* @param serverUrl
@@ -396,10 +445,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 +462,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 +473,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 +482,7 @@
/**
* Sets the repository team access permissions
- *
+ *
* @param repository
* @param permissions
* @param serverUrl
@@ -448,11 +497,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 +520,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 +538,7 @@
/**
* Retrieves the list of federation proposals.
- *
+ *
* @param serverUrl
* @param account
* @param password
@@ -507,7 +556,7 @@
/**
* Retrieves the list of federation repository sets.
- *
+ *
* @param serverUrl
* @param account
* @param password
@@ -524,7 +573,7 @@
/**
* Retrieves the settings of the Gitblit server.
- *
+ *
* @param serverUrl
* @param account
* @param password
@@ -541,7 +590,7 @@
/**
* Update the settings on the Gitblit server.
- *
+ *
* @param settings
* the settings to update
* @param serverUrl
@@ -558,7 +607,7 @@
/**
* Retrieves the server status object.
- *
+ *
* @param serverUrl
* @param account
* @param password
@@ -575,7 +624,7 @@
/**
* Retrieves a map of local branches in the Gitblit server keyed by
* repository.
- *
+ *
* @param serverUrl
* @param account
* @param password
@@ -592,7 +641,7 @@
/**
* Retrieves a list of available branch feeds in the Gitblit server.
- *
+ *
* @param serverUrl
* @param account
* @param password
@@ -616,7 +665,7 @@
/**
* Do the specified administrative action on the Gitblit server.
- *
+ *
* @param request
* @param name
* the name of the object (may be null)
--
Gitblit v1.9.1