From 4ef60d7a963fdadaa69db98df7844314c2ceb693 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Sat, 12 Nov 2011 09:01:25 -0500
Subject: [PATCH] Documentation.
---
src/com/gitblit/utils/RpcUtils.java | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 112 insertions(+), 8 deletions(-)
diff --git a/src/com/gitblit/utils/RpcUtils.java b/src/com/gitblit/utils/RpcUtils.java
index 715ecb5..387433a 100644
--- a/src/com/gitblit/utils/RpcUtils.java
+++ b/src/com/gitblit/utils/RpcUtils.java
@@ -27,7 +27,10 @@
import com.gitblit.models.FederationModel;
import com.gitblit.models.FederationProposal;
import com.gitblit.models.FederationSet;
+import com.gitblit.models.FeedModel;
import com.gitblit.models.RepositoryModel;
+import com.gitblit.models.ServerSettings;
+import com.gitblit.models.ServerStatus;
import com.gitblit.models.UserModel;
import com.google.gson.reflect.TypeToken;
@@ -40,6 +43,9 @@
public class RpcUtils {
public static final Type NAMES_TYPE = new TypeToken<Collection<String>>() {
+ }.getType();
+
+ public static final Type SETTINGS_TYPE = new TypeToken<Map<String, String>>() {
}.getType();
private static final Type REPOSITORIES_TYPE = new TypeToken<Map<String, RepositoryModel>>() {
@@ -55,6 +61,9 @@
}.getType();
private static final Type SETS_TYPE = new TypeToken<Collection<FederationSet>>() {
+ }.getType();
+
+ private static final Type BRANCHES_TYPE = new TypeToken<Map<String, Collection<String>>>() {
}.getType();
/**
@@ -137,6 +146,10 @@
*/
public static boolean createRepository(RepositoryModel repository, String serverUrl,
String account, char[] password) throws IOException {
+ // ensure repository name ends with .git
+ if (!repository.name.endsWith(".git")) {
+ repository.name += ".git";
+ }
return doAction(RpcRequest.CREATE_REPOSITORY, null, repository, serverUrl, account,
password);
@@ -294,7 +307,7 @@
List<FederationModel> list = new ArrayList<FederationModel>(registrations);
return list;
}
-
+
/**
* Retrieves the list of federation proposals.
*
@@ -304,15 +317,15 @@
* @return a collection of FederationProposal objects
* @throws IOException
*/
- public static List<FederationProposal> getFederationProposals(String serverUrl,
- String account, char[] password) throws IOException {
+ public static List<FederationProposal> getFederationProposals(String serverUrl, String account,
+ char[] password) throws IOException {
String url = asLink(serverUrl, RpcRequest.LIST_FEDERATION_PROPOSALS);
Collection<FederationProposal> proposals = JsonUtils.retrieveJson(url, PROPOSALS_TYPE,
account, password);
List<FederationProposal> list = new ArrayList<FederationProposal>(proposals);
return list;
}
-
+
/**
* Retrieves the list of federation repository sets.
*
@@ -322,16 +335,107 @@
* @return a collection of FederationSet objects
* @throws IOException
*/
- public static List<FederationSet> getFederationSets(String serverUrl,
- String account, char[] password) throws IOException {
+ public static List<FederationSet> getFederationSets(String serverUrl, String account,
+ char[] password) throws IOException {
String url = asLink(serverUrl, RpcRequest.LIST_FEDERATION_SETS);
- Collection<FederationSet> sets = JsonUtils.retrieveJson(url, SETS_TYPE,
- account, password);
+ Collection<FederationSet> sets = JsonUtils.retrieveJson(url, SETS_TYPE, account, password);
List<FederationSet> list = new ArrayList<FederationSet>(sets);
return list;
}
/**
+ * Retrieves the settings of the Gitblit server.
+ *
+ * @param serverUrl
+ * @param account
+ * @param password
+ * @return an Settings object
+ * @throws IOException
+ */
+ public static ServerSettings getSettings(String serverUrl, String account, char[] password)
+ throws IOException {
+ String url = asLink(serverUrl, RpcRequest.LIST_SETTINGS);
+ ServerSettings settings = JsonUtils.retrieveJson(url, ServerSettings.class, account,
+ password);
+ return settings;
+ }
+
+ /**
+ * Update the settings on the Gitblit server.
+ *
+ * @param settings
+ * the settings to update
+ * @param serverUrl
+ * @param account
+ * @param password
+ * @return true if the action succeeded
+ * @throws IOException
+ */
+ public static boolean updateSettings(Map<String, String> settings, String serverUrl,
+ String account, char[] password) throws IOException {
+ return doAction(RpcRequest.EDIT_SETTINGS, null, settings, serverUrl, account, password);
+
+ }
+
+ /**
+ * Retrieves the server status object.
+ *
+ * @param serverUrl
+ * @param account
+ * @param password
+ * @return an ServerStatus object
+ * @throws IOException
+ */
+ public static ServerStatus getStatus(String serverUrl, String account, char[] password)
+ throws IOException {
+ String url = asLink(serverUrl, RpcRequest.LIST_STATUS);
+ ServerStatus status = JsonUtils.retrieveJson(url, ServerStatus.class, account, password);
+ return status;
+ }
+
+ /**
+ * Retrieves a map of local branches in the Gitblit server keyed by
+ * repository.
+ *
+ * @param serverUrl
+ * @param account
+ * @param password
+ * @return
+ * @throws IOException
+ */
+ public static Map<String, Collection<String>> getBranches(String serverUrl, String account,
+ char[] password) throws IOException {
+ String url = asLink(serverUrl, RpcRequest.LIST_BRANCHES);
+ Map<String, Collection<String>> branches = JsonUtils.retrieveJson(url, BRANCHES_TYPE,
+ account, password);
+ return branches;
+ }
+
+ /**
+ * Retrieves a list of available branch feeds in the Gitblit server.
+ *
+ * @param serverUrl
+ * @param account
+ * @param password
+ * @return
+ * @throws IOException
+ */
+ public static List<FeedModel> getBranchFeeds(String serverUrl, String account, char[] password)
+ throws IOException {
+ List<FeedModel> feeds = new ArrayList<FeedModel>();
+ Map<String, Collection<String>> allBranches = getBranches(serverUrl, account, password);
+ for (Map.Entry<String, Collection<String>> entry : allBranches.entrySet()) {
+ for (String branch : entry.getValue()) {
+ FeedModel feed = new FeedModel();
+ feed.repository = entry.getKey();
+ feed.branch = branch;
+ feeds.add(feed);
+ }
+ }
+ return feeds;
+ }
+
+ /**
* Do the specified administrative action on the Gitblit server.
*
* @param request
--
Gitblit v1.9.1